消息中间件TongLINK/Q的应用

2014-07-16 00:16侯刚
电脑知识与技术 2014年14期
关键词:队列消息节点

侯刚

摘要:消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。TongTech的TongLINK/Q是依据DTP模型,结合实际应用系统的需求而设计开发的中间件产品,可以满足端到端的通信服务和分布式应用的管理需求,同时提供了节点、消息、队列等各种对象。在金融机构理财与资金信托数据报送系统和跨境人民币信息管理系统中,通过应用TongLINK/Q构建了两级消息传递的架构,实现了金融机构与人民银行之间交易报文的双向交互。

关键词:消息中间件;TongLINK/Q;节点;消息;队列

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)14-3280-03

Abstract: Message Middleware transmits mechanism for irrelevant data exchange on the platform by making use of efficient and reliable information and make integration of distributed system on the basis of data communication. TongLINK/Q of TongTech, based on DTP model, is the middleware product designed and developed based on practical application system needs. It is able to satisfy end-to-end communication service and the requirement of distributed application management, and provide various subjects such as nodes, messages and queues. In financial institutions and capital trust data submission system and cross-border RMB information management system, two-way interaction between financial institutions and Peoples Bank of China can be realized through the application of TongLINK/Q to construct two-stage information transmission framework.

Key words: message middleware; TongLINK/Q; nodes; messages; queues

面向消息的中间件可在分布式环境下扩展进程间的通信,保证数据传送的持久、快速和安全。它的应用不仅满足了跨平台系统集成的需要,同时也减少了系统的开发周期,使得孤立信息应用之间的交互成为可能。TongLINK/Q消息中间件作为众多中间件中的一种,在近些年得到了广泛应用和认可。

1 TongLINK/Q概述

TongLINK/Q 是面向分布式应用的消息传送中间件,它为网络环境下各个节点之间构建虚拟的端到端通道,并以节点为基本运行单位实现数据的收发、端对端消息的传输控制以及网络运行状况的监控。

1.1 节点

节点是TongLINK/Q网络结构中的一个基本运行单位,TongLINK/Q通过节点来唯一的区分网络中的每个通信实体。每个节点只有一个IP地址和一个全局唯一的节点名,并具有自已专用运行环境及配置。根据每个节点在网络中的相对位置,节点分为三种类型,即本地节点、上级节点和下级节点。TongLINK/Q网络通讯平台为处于这个平台上的节点之间建立了一个虚拟的数据通道,称之为TongLINK/Q节点之间的连接。连接的建立均由本地节点向上级节点发起。一个节点可以同时拥有多个上级节点和多个下级节点,通过多上级节点和多下级节点混合使用,可以构造灵活的网络结构。

1.2 消息

在分布式应用中,不同的应用进程之间传递、交换的信息统称为消息。TongLINK/Q系统提供数据报消息(BUF_MSG)、文件(FILE_MSG)消息、事件消息(EVENT_MSG)三种类型。消息的实时传输指消息必须在规定的时间内必须传递到目标节点。TongLINK/Q 在规定时间内提供可靠的传输机制,保证消息传递的实时性和可靠性。消息可靠传输指消息的传递在时间上无特殊的要求,在网络连通的情况下必须保证消息可靠的传递到目标节点。TongLINK/Q 在消息提交后,在遇到可恢复的故障(包括机器故障或网络故障)情况下能够保证消息的可靠传输。传递的消息可以是数据包或文件。

1.3 队列

队列是存储消息的数据结构,分为持久和非持久两种,持久队列在磁盘上有相应的映像,持久队列中存储的消息都为持久消息;非持久队列只存在于内存中,非持久队列中的消息都为非持久消息。每个队列都属于一个队列控制单元(QCU),由QCU负责维护。

TongLINK/Q系统提供的队列类型包括:发送队列,接收队列,事件队列。发往目的地的消息要经由发送队列,由核心从发送队列中取消息进行发送;核心收到消息后,将根据发送方的设置放到相应的接收队列中;事件队列属于一个特殊的接收队列,用于存放TongLINK/Q系统产生的事件。

1.4 队列控制单元

队列控制单元,简称QCU。它是一个节点内相对独立运行单元,由数据缓冲区(发送/接收缓冲区)、队列组成,功能主要是对一组队列以及队列内的消息进行监控和管理。 包括:队列创建、恢复及消息在数据缓冲区和队列之间的转移等。一个节点可拥有多个QCU,每个QCU在运行上相互独立。一个QCU可对应多个发送进程和接收进程。endprint

2 TongLINK/Q应用案例

TongLINK/Q的传输模式包括路由转发、点对点、和发布订阅。相同的网络结构,不同的应用可以选择不同的传输模式。

2.1 案例一

在全国推广的金融机构理财与资金信托数据报送系统中,各地方性金融机构一点接入人民银行网络进行数据报送的工作。数据采集与报送采用直连接口报送方式,统一通过TongLINK/Q同人民银行总行系统进行报文交换,人民银行省级分支行构建的网间互联平台前置负责TongLINK/Q报文的转发。下图为地方性金融机构、人民银行省级分支行、人民银行总行三者之间TongLINK/Q互连结构图。

网间互联平台前置的TongLINK/Q配置中,其上级节点为人民银行总行的理财与资金信托数据报送系统,节点名称为:SERVER_NODE_LCBS,其中LCBS假定为总行节点代码。每个下级节点对应一个金融机构,节点名称为:CLIENT_NODE_XXXX,其中XXXX为节点代码,由人民银行总行统一分配。省级分支行节点在这个互连结构中作为路由(Router)节点在金融机构与人民银行总行之间建立通信通道,仅负责数据的转发,因此没有建立相应的队列,技术实现比较简单。

网络结构中的上下级关系只是节点之间的逻辑关系,下级节点和上级节点之间在建立连接时,是由下级节点主动向上级节点发出连接请求,上级节点决定是否接受此连接请求。省级分支行的节点信息通过TongUser文件进行配置,简单示例如下:

# 本地节点小节

LocalNodeName = ROUTER_XXXX # 本地节点名称

LocalAliasName = # 本地节点别名

LocalPassword = NULL # 本地节点口令

# 上级节点小节

UpName = SERVER_NODE_LCBS # 上级节点名称

NodeIP = 192.168.0.1 # 上级节点IP地址

ConnPort = 10000 # 上级节点连接端口号

LineType = LAN10M # 上级节点线路类型

# 下级节点001

DownName = CLIENT_NODE_0001 # 下级节点名称

DownNodeIP = # 下级节点IP地址

DownConnPort = 0 # 下级节点连接端口号

RegTime = 30 # 等待下级节点注册时间

DownStatus = Active # 下级节点状态

# 下级节点002

DownName = CLIENT_NODE_0002 # 下级节点名称

DownNodeIP = # 下级节点IP地址

DownConnPort = 0 # 下级节点连接端口号

RegTime = 30 # 等待下级节点注册时间

DownStatus = Active # 下级节点状态

2.1 案例二

全国推广的跨境人民币信息管理系统复用案例一中的网络结构,地方性金融机构同样遵循一点接入的模式,通过TongLINK/Q同人民银行总行系统进行报文交换,但省级分支行节点不仅仅作为路由节点,而是需要建立点对点连接来完成TongLINK/Q报文的转发。假定某地方性商业银行的节点代码为10001,该省级人民银行网间互联平台标识为1001,下图为该地方性商业银行、人民银行省级分支行、人民银行总行三者之间TongLINK/Q互连结构图。

人民银行省级分支行网间互联平台前置作为外联机构与总行跨境人民币信息管理系统之间的通信枢纽,接收地方性商业银行的批量报文转发到人民银行总行,或接收人民银行总行的批量报文转发到地方性商业银行。按照命名规范,在人民银行省级分支行网间互联平台前置建立队列控制单元TLQ_RCPMIS_1001_01,建立接收连接Conn100001.1001.B1、远程队列PBC.EXT.BATCH.IN、发送队列PBC.RCPMIS.BATCH.TRAN、发送连接Conn1001.RCPMIS.B1将接收自地方性商业银行的批量报文转发到人民银行总行,建立接收连接ConnRCPMIS.1001.B1、远程队列PBC.100001.BATCH.OUT、发送队列PBC.100001.BATCH.TRAN、发送连接Conn1001.100001.B1将接收自人民银行总行的批量交易报文转发到地方性商业银行。

人民银行省级分支行网间互联平台前置对应总行一个上级节点,下级节点则可能包含多个地方性商业银行。同时,地方性商业银行的加入又是一个循序渐进的过程,并不是一次性的工作。所以在TongLINK/Q前置平台的配置中采用文件和脚本配置相结合的方式,在系统配置文件tlsys.conf中对系统参数进行统一配置,在本例中对应的队列控制单元的配置文件tlqcu_TLQ_RCPMIS_0200_01.conf中对队列、连接等对象进行相应的配置,同时通过以下脚本示例实现商业银行节点的动态增加。

#新增商业银行节点脚本示例

#新增连接

Addchl -qcu TLQ_RCPMIS_1001_01 -cn Conn1001. "商业银行节点代码".B1 -sq PBC."商业银行节点代码".BATCH.TRAN -h "商业银行前置平台IP地址" -p "商业银行前置平台对外服务端口" -mn 20000 -maxms 4194304 -sp 100000

#新增远程队列、发送队列

Addrq -qcu TLQ_RCPMIS_1001_01 -rq PBC. "商业银行节点代码".BATCH.OUT -sq PBC. "商业银行节点代码".BATCH.TRAN -dq PBC. "商业银行节点代码".BATCH.OUT

3 结束语

TongLINK/Q作为能够跨平台运行和交互的消息中间件,为业务应用之间搭建了稳定可靠的沟通桥梁。应用系统可以借助它构造灵活的网络结构,轻松地交换和处理消息,而无需考虑消息传递的具体细节,能够大大降低开发难度,缩短开发周期,节约开发成本。TongLINK/Q的产品易用性和技术优势使其广泛应用于各大、中型企业,并在实际使用中得到了充分的肯定。

参考文献:

[1] 张云勇,张智江,刘锦德,刘韵洁.中间件技术原理与应用[M].北京:清华大学出版社,2004.

[2] 于曦,李丹.面向消息的中间件概述[J].计算机工程与设计,2002,21(4):34-36.

[3] 徐晶,许炜.消息中间件综述[J].计算机工程,2005,31(16):73-76.

[4] 郭胜,许平,王颖,等.中间件技术的研究[J].计算机科学,2004,31(2):155-159,180.

[5] 北京东方通科技公司.中国现代化支付系统的小额支付系统应用案例[OL].http://www.tongtech.com/jjfalb/index_39_155.html.endprint

2 TongLINK/Q应用案例

TongLINK/Q的传输模式包括路由转发、点对点、和发布订阅。相同的网络结构,不同的应用可以选择不同的传输模式。

2.1 案例一

在全国推广的金融机构理财与资金信托数据报送系统中,各地方性金融机构一点接入人民银行网络进行数据报送的工作。数据采集与报送采用直连接口报送方式,统一通过TongLINK/Q同人民银行总行系统进行报文交换,人民银行省级分支行构建的网间互联平台前置负责TongLINK/Q报文的转发。下图为地方性金融机构、人民银行省级分支行、人民银行总行三者之间TongLINK/Q互连结构图。

网间互联平台前置的TongLINK/Q配置中,其上级节点为人民银行总行的理财与资金信托数据报送系统,节点名称为:SERVER_NODE_LCBS,其中LCBS假定为总行节点代码。每个下级节点对应一个金融机构,节点名称为:CLIENT_NODE_XXXX,其中XXXX为节点代码,由人民银行总行统一分配。省级分支行节点在这个互连结构中作为路由(Router)节点在金融机构与人民银行总行之间建立通信通道,仅负责数据的转发,因此没有建立相应的队列,技术实现比较简单。

网络结构中的上下级关系只是节点之间的逻辑关系,下级节点和上级节点之间在建立连接时,是由下级节点主动向上级节点发出连接请求,上级节点决定是否接受此连接请求。省级分支行的节点信息通过TongUser文件进行配置,简单示例如下:

# 本地节点小节

LocalNodeName = ROUTER_XXXX # 本地节点名称

LocalAliasName = # 本地节点别名

LocalPassword = NULL # 本地节点口令

# 上级节点小节

UpName = SERVER_NODE_LCBS # 上级节点名称

NodeIP = 192.168.0.1 # 上级节点IP地址

ConnPort = 10000 # 上级节点连接端口号

LineType = LAN10M # 上级节点线路类型

# 下级节点001

DownName = CLIENT_NODE_0001 # 下级节点名称

DownNodeIP = # 下级节点IP地址

DownConnPort = 0 # 下级节点连接端口号

RegTime = 30 # 等待下级节点注册时间

DownStatus = Active # 下级节点状态

# 下级节点002

DownName = CLIENT_NODE_0002 # 下级节点名称

DownNodeIP = # 下级节点IP地址

DownConnPort = 0 # 下级节点连接端口号

RegTime = 30 # 等待下级节点注册时间

DownStatus = Active # 下级节点状态

2.1 案例二

全国推广的跨境人民币信息管理系统复用案例一中的网络结构,地方性金融机构同样遵循一点接入的模式,通过TongLINK/Q同人民银行总行系统进行报文交换,但省级分支行节点不仅仅作为路由节点,而是需要建立点对点连接来完成TongLINK/Q报文的转发。假定某地方性商业银行的节点代码为10001,该省级人民银行网间互联平台标识为1001,下图为该地方性商业银行、人民银行省级分支行、人民银行总行三者之间TongLINK/Q互连结构图。

人民银行省级分支行网间互联平台前置作为外联机构与总行跨境人民币信息管理系统之间的通信枢纽,接收地方性商业银行的批量报文转发到人民银行总行,或接收人民银行总行的批量报文转发到地方性商业银行。按照命名规范,在人民银行省级分支行网间互联平台前置建立队列控制单元TLQ_RCPMIS_1001_01,建立接收连接Conn100001.1001.B1、远程队列PBC.EXT.BATCH.IN、发送队列PBC.RCPMIS.BATCH.TRAN、发送连接Conn1001.RCPMIS.B1将接收自地方性商业银行的批量报文转发到人民银行总行,建立接收连接ConnRCPMIS.1001.B1、远程队列PBC.100001.BATCH.OUT、发送队列PBC.100001.BATCH.TRAN、发送连接Conn1001.100001.B1将接收自人民银行总行的批量交易报文转发到地方性商业银行。

人民银行省级分支行网间互联平台前置对应总行一个上级节点,下级节点则可能包含多个地方性商业银行。同时,地方性商业银行的加入又是一个循序渐进的过程,并不是一次性的工作。所以在TongLINK/Q前置平台的配置中采用文件和脚本配置相结合的方式,在系统配置文件tlsys.conf中对系统参数进行统一配置,在本例中对应的队列控制单元的配置文件tlqcu_TLQ_RCPMIS_0200_01.conf中对队列、连接等对象进行相应的配置,同时通过以下脚本示例实现商业银行节点的动态增加。

#新增商业银行节点脚本示例

#新增连接

Addchl -qcu TLQ_RCPMIS_1001_01 -cn Conn1001. "商业银行节点代码".B1 -sq PBC."商业银行节点代码".BATCH.TRAN -h "商业银行前置平台IP地址" -p "商业银行前置平台对外服务端口" -mn 20000 -maxms 4194304 -sp 100000

#新增远程队列、发送队列

Addrq -qcu TLQ_RCPMIS_1001_01 -rq PBC. "商业银行节点代码".BATCH.OUT -sq PBC. "商业银行节点代码".BATCH.TRAN -dq PBC. "商业银行节点代码".BATCH.OUT

3 结束语

TongLINK/Q作为能够跨平台运行和交互的消息中间件,为业务应用之间搭建了稳定可靠的沟通桥梁。应用系统可以借助它构造灵活的网络结构,轻松地交换和处理消息,而无需考虑消息传递的具体细节,能够大大降低开发难度,缩短开发周期,节约开发成本。TongLINK/Q的产品易用性和技术优势使其广泛应用于各大、中型企业,并在实际使用中得到了充分的肯定。

参考文献:

[1] 张云勇,张智江,刘锦德,刘韵洁.中间件技术原理与应用[M].北京:清华大学出版社,2004.

[2] 于曦,李丹.面向消息的中间件概述[J].计算机工程与设计,2002,21(4):34-36.

[3] 徐晶,许炜.消息中间件综述[J].计算机工程,2005,31(16):73-76.

[4] 郭胜,许平,王颖,等.中间件技术的研究[J].计算机科学,2004,31(2):155-159,180.

[5] 北京东方通科技公司.中国现代化支付系统的小额支付系统应用案例[OL].http://www.tongtech.com/jjfalb/index_39_155.html.endprint

2 TongLINK/Q应用案例

TongLINK/Q的传输模式包括路由转发、点对点、和发布订阅。相同的网络结构,不同的应用可以选择不同的传输模式。

2.1 案例一

在全国推广的金融机构理财与资金信托数据报送系统中,各地方性金融机构一点接入人民银行网络进行数据报送的工作。数据采集与报送采用直连接口报送方式,统一通过TongLINK/Q同人民银行总行系统进行报文交换,人民银行省级分支行构建的网间互联平台前置负责TongLINK/Q报文的转发。下图为地方性金融机构、人民银行省级分支行、人民银行总行三者之间TongLINK/Q互连结构图。

网间互联平台前置的TongLINK/Q配置中,其上级节点为人民银行总行的理财与资金信托数据报送系统,节点名称为:SERVER_NODE_LCBS,其中LCBS假定为总行节点代码。每个下级节点对应一个金融机构,节点名称为:CLIENT_NODE_XXXX,其中XXXX为节点代码,由人民银行总行统一分配。省级分支行节点在这个互连结构中作为路由(Router)节点在金融机构与人民银行总行之间建立通信通道,仅负责数据的转发,因此没有建立相应的队列,技术实现比较简单。

网络结构中的上下级关系只是节点之间的逻辑关系,下级节点和上级节点之间在建立连接时,是由下级节点主动向上级节点发出连接请求,上级节点决定是否接受此连接请求。省级分支行的节点信息通过TongUser文件进行配置,简单示例如下:

# 本地节点小节

LocalNodeName = ROUTER_XXXX # 本地节点名称

LocalAliasName = # 本地节点别名

LocalPassword = NULL # 本地节点口令

# 上级节点小节

UpName = SERVER_NODE_LCBS # 上级节点名称

NodeIP = 192.168.0.1 # 上级节点IP地址

ConnPort = 10000 # 上级节点连接端口号

LineType = LAN10M # 上级节点线路类型

# 下级节点001

DownName = CLIENT_NODE_0001 # 下级节点名称

DownNodeIP = # 下级节点IP地址

DownConnPort = 0 # 下级节点连接端口号

RegTime = 30 # 等待下级节点注册时间

DownStatus = Active # 下级节点状态

# 下级节点002

DownName = CLIENT_NODE_0002 # 下级节点名称

DownNodeIP = # 下级节点IP地址

DownConnPort = 0 # 下级节点连接端口号

RegTime = 30 # 等待下级节点注册时间

DownStatus = Active # 下级节点状态

2.1 案例二

全国推广的跨境人民币信息管理系统复用案例一中的网络结构,地方性金融机构同样遵循一点接入的模式,通过TongLINK/Q同人民银行总行系统进行报文交换,但省级分支行节点不仅仅作为路由节点,而是需要建立点对点连接来完成TongLINK/Q报文的转发。假定某地方性商业银行的节点代码为10001,该省级人民银行网间互联平台标识为1001,下图为该地方性商业银行、人民银行省级分支行、人民银行总行三者之间TongLINK/Q互连结构图。

人民银行省级分支行网间互联平台前置作为外联机构与总行跨境人民币信息管理系统之间的通信枢纽,接收地方性商业银行的批量报文转发到人民银行总行,或接收人民银行总行的批量报文转发到地方性商业银行。按照命名规范,在人民银行省级分支行网间互联平台前置建立队列控制单元TLQ_RCPMIS_1001_01,建立接收连接Conn100001.1001.B1、远程队列PBC.EXT.BATCH.IN、发送队列PBC.RCPMIS.BATCH.TRAN、发送连接Conn1001.RCPMIS.B1将接收自地方性商业银行的批量报文转发到人民银行总行,建立接收连接ConnRCPMIS.1001.B1、远程队列PBC.100001.BATCH.OUT、发送队列PBC.100001.BATCH.TRAN、发送连接Conn1001.100001.B1将接收自人民银行总行的批量交易报文转发到地方性商业银行。

人民银行省级分支行网间互联平台前置对应总行一个上级节点,下级节点则可能包含多个地方性商业银行。同时,地方性商业银行的加入又是一个循序渐进的过程,并不是一次性的工作。所以在TongLINK/Q前置平台的配置中采用文件和脚本配置相结合的方式,在系统配置文件tlsys.conf中对系统参数进行统一配置,在本例中对应的队列控制单元的配置文件tlqcu_TLQ_RCPMIS_0200_01.conf中对队列、连接等对象进行相应的配置,同时通过以下脚本示例实现商业银行节点的动态增加。

#新增商业银行节点脚本示例

#新增连接

Addchl -qcu TLQ_RCPMIS_1001_01 -cn Conn1001. "商业银行节点代码".B1 -sq PBC."商业银行节点代码".BATCH.TRAN -h "商业银行前置平台IP地址" -p "商业银行前置平台对外服务端口" -mn 20000 -maxms 4194304 -sp 100000

#新增远程队列、发送队列

Addrq -qcu TLQ_RCPMIS_1001_01 -rq PBC. "商业银行节点代码".BATCH.OUT -sq PBC. "商业银行节点代码".BATCH.TRAN -dq PBC. "商业银行节点代码".BATCH.OUT

3 结束语

TongLINK/Q作为能够跨平台运行和交互的消息中间件,为业务应用之间搭建了稳定可靠的沟通桥梁。应用系统可以借助它构造灵活的网络结构,轻松地交换和处理消息,而无需考虑消息传递的具体细节,能够大大降低开发难度,缩短开发周期,节约开发成本。TongLINK/Q的产品易用性和技术优势使其广泛应用于各大、中型企业,并在实际使用中得到了充分的肯定。

参考文献:

[1] 张云勇,张智江,刘锦德,刘韵洁.中间件技术原理与应用[M].北京:清华大学出版社,2004.

[2] 于曦,李丹.面向消息的中间件概述[J].计算机工程与设计,2002,21(4):34-36.

[3] 徐晶,许炜.消息中间件综述[J].计算机工程,2005,31(16):73-76.

[4] 郭胜,许平,王颖,等.中间件技术的研究[J].计算机科学,2004,31(2):155-159,180.

[5] 北京东方通科技公司.中国现代化支付系统的小额支付系统应用案例[OL].http://www.tongtech.com/jjfalb/index_39_155.html.endprint

猜你喜欢
队列消息节点
CM节点控制在船舶上的应用
Analysis of the characteristics of electronic equipment usage distance for common users
基于AutoCAD的门窗节点图快速构建
队列里的小秘密
在队列里
丰田加速驶入自动驾驶队列
抓住人才培养的关键节点
消息
消息
消息