APP下载

JWMQ在动车组管理信息系统中的应用研究

2015-07-05易明中刘丹凤贾志凯

铁路计算机应用 2015年12期
关键词:中间件结点动车

易明中,刘丹凤,贾志凯,王 宁

(中国铁道科学研究院 电子计算技术研究所,北京 100081)

JWMQ在动车组管理信息系统中的应用研究

易明中,刘丹凤,贾志凯,王 宁

(中国铁道科学研究院 电子计算技术研究所,北京 100081)

JWMQ适用于在多个进程之间传送数据的分布式环境,应用广泛。经改进,JWMQ也被应用于动车组管理信息系统(EMUs-MIS)。为动车组管理信息系统的长期稳定、可靠运行提供了强有力的技术支撑,是动车组管理信息系统的关键技术之一。

JWMQ;中间件;动车组管理信息系统

随着我国高速铁路运输体系的建成,动车组运用检修管理的模式及其信息化建设也在不断发展和完善[1]。目前,动车组管理信息系统(以下简称:系统)的多个模块已通过铁路总公司组织的技术评审,并在现场应用[2]。按照动车组运用维修3级4层的管理体系,系统主要在铁路总公司、铁路局、动车段和运用所4 级部署,各级之间需要不断交互多种信息[3]。通过铁路网络和多种信息技术,实现铁路总公司、铁路局、动车基地(高级修车间)、动车(车辆)段、运用所及主机厂之间的业务协同与信息共享;同时,与动车组车载动态监控系统、主机厂(配件供应商、专业化集中修单位)、铁路总公司及铁路局调度系统实现数据交互[2]。

为了有效地提升系统的健壮性,铁路总公司、铁路局、动车基地(高级修车间)、动车(车辆)段、运用所及主机厂都是各自独立的系统, 采用分布式架构,分别有自己的物理数据库,互不依赖。因此它们之间的数据不能交互和共享,成为信息交互的瓶颈。动车组管理信息系统的关键技术之一,就是通过基于JWMQ 的传输平台来解决这个瓶颈[1]。

另外,由于各运用所和检修车间相互独立,给全段的统一用户人员管理、统一权限管理也带来了很大困难[1]。统一权限管理平台对不同地点(如段、所、车间)登录的人员进行控制,也是通过基于JWMQ的传输平台来解决。既满足了全段的访问需求,也保证了数据的安全性[1]。

1 JWMQ简介

面向消息的中间件(MOM,Message- Oriented-Middleware)能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发。另外,消息中间件不会占用大量的网络带宽,可以跟踪事务,将事务存储到磁盘上,实现网络故障时系统的恢复。消息中间件适用于需要在多个进程之间进行可靠的数据传送的分布式环境[4]。

JWMQ是北京经纬信息技术公司开发的基于消息队列的中间件,JW代表北京经纬信息技术公司,MQ代表Message Queue。JWMQ是Message-Oriented-Middleware (MOM)的中间件。在动车组管理信息系统之前,JWMQ已广泛应用。例如,客票系统、铁路应急平台中数据传输、铁路客车运行安全监控系统(TCDS)、车辆运行状态地面安全监测系统(TPDS)等。

经分析、评估、比较,并经改进,JWMQ也被应用于动车组管理信息系统。

应用于动车组管理信息系统的JWMQ传输平台由1个传输中间件和2个接口程序组成,如图1所示。

图1 动车组管理信息系统的JWMQ架构图

传输中间件即 jwmq.exe ,是最主要的功能模块,结点与结点之间的数据传输都由它完成。接口程序分别是:jw_center_recv.exe,jw_center_send.exe。接口程序不会直接和远端结点发生联系,而是通过本地的传输中间件与远端结点传输文件。向远端结点发送文件时,接口程序将待发送文件拷贝到传输中间件的发送目录下,同时向传输中间件发出消息,要求发往某远端结点;传输中间件接到消息后就将该文件发往指定的远端结点。接收远端结点的文件时,传输中间件将所有来自远端结点的文件都存放在接收目录下;接口程序根据自己的需要取走接收目录下相应的文件。

2 JWMQ在动车组管理信息系统应用中的改进

2.1 防堵塞机制

2.1.1堵塞的数学模型

消息队列对于应用间的结构没有限制,相对于使用它们的应用而言是独立存在的。应用之间可能是“一”对“多”,例如:节点A可向节点、…发送和接收消息;或者是“多”对“一”,例如:节点可向节点B发送和接收消息。但这个“一”往往会成为瓶颈。如果由于某些原因(例如节点A与B1之间的网络中断)导致节点A发往节点B1的发送队列,… 中有一个文件就是发送不到节点B1,那么时间一长,文件就可能堵塞住它之后的所有文件的发送,因而节点B2、… BN就可能接收不到来自节点A的文件。所以必须有某种机制将发送失败的文件踢出发送队列,如图2所示。

2.1.2防堵塞的踢出机制

后台的存储过程周期为P的扫描接收日志表(P$FILE_RECEIVING_LOG),并对文件的发送失败次数(初值为0)进行计数。如果发送了次仍然失败,则须将暂时踢出发送队列,踢进重发队列,以免它堵塞其后的其它文件的发送。为简化算法,通常取为1。

2.1.3防堵塞的重发机制

图2 防堵塞机制原理图

显然,如果节点A与B1之间的网络还未恢复正常,则重发就可能再次堵塞其后的其它文件的发送。所以,不能无限制地被重发。但重发总数Mb1的确定涉及到非常多的因素,例如:节点A与B1之间的网络状况,节点A或B1的服务器的硬盘、CPU、网卡的状况,以及节点A或B1的数据库的状况等等。如果上述状况较好,则即使重发总数Mb1设的小一点,牺牲的重发机会从而减少堵塞其它文件的发送的机会,但仍有较大的机会能被成功从节点A发送到节点B1。反之,若上述状况不好,则应设的大一点,通过较多的重发来保证有较大机会发送成功。但这显然会增加堵塞其它文件的发送的机会。所以,重发总数Mb1的选择实际上是个tradeoff。既要尽可能地给较多的重发机会,又要尽可能地减少堵塞其它文件发送的机会。但在实际应用中,上述状况几乎都不太确定。

2.1.4 防堵塞机制参数的确定

以上仅仅是分析了节点A发往节点B1的队列中有一个文件发送不到B1的情况,但更复杂的情况往往是节点A发往节点B1的发送队列中有多个文件(… )发送不到节点B1。另外,如果节点A发往节点Bi的队列中有一个或多个文件(… )发送不到节点Bi的情况,问题复杂度可能会成指数增长。

为简化算法复杂度,提高实用性,一般选择Nb1=1, Mb1=2,且一次只把最早那一个被暂时踢进重发队列且重发次数m<Mb1的文件放回发送队列。即发送队列中的任何文件(可能会有多个)只要有1次发送失败,就都会被暂时踢出发送队列,踢进重发队列。但下一扫描周期,最早那一个被暂时踢出发送队列且m<Mb1的文件会从重发队列重新放回发送队列重发。如果再次发送失败,则m+1(m初值为0),直至m=Mb1,该文件不再被放回发送队列,永远被踢出了发送队列。重发队列当中次早那一个文件就递补成了最早。因而,所有的文件最终都有2次重发机会,总共有3次发送机会。根据经验,如果3次还发送不出去,那基本说明更多重发已无太多必要,因而这些文件就需要被永远踢出发送队列。

2.2 防丢失机制

当然,某些文件被永远踢出发送队列毕竟可能会丢失某些数据。因此,需要开发报警应用,周期性地自动检测可能的丢失。一旦发现丢失,能及时提醒相关人员去查找并定位丢失,重新生成新的文件来弥补这种丢失。如果多次弥补失败,则问题可能出在其它方面,须通知各方人员会诊。

2.3 转发机制

JWMQ对一个IP地址只认一个数据库实例,所以若同一个IP地址上部署了两个数据库实例,需要考虑如何区分同一IP地址上的两个数据库实例(即对应两个节点)。这就需要用到数据库同义词,即别名。例如,上海动车段和虹桥运用所的前、后台程序共用一个服务器,即共用一个IP地址,通过JWMQ从铁路总公司往该IP地址的文件要么发给上海动车段,要么发给虹桥运用所,不可兼得。因而需给虹桥运用所数据库和上海动车段数据库表取同义词,即别名。虹桥运用所数据库的表别名指向它自己。但上海动车段数据库的表别名却指向虹桥运用所数据库的同名表。所以,发给上海动车段的文件实际上是先发给虹桥运用所,然后再通过别名,将这些文件从虹桥运用所转发给上海动车段,如图3所示。

图3 有转发机制的动车组管理信息系统JWMQ架构图

2.4 防死锁机制

由于动车组管理信息系统的业务的量的增长和质的复杂,各数据库的压力越来越大。因此,很多的传输丢失实际上是因为数据库存在死锁对象。很多时候,某些数据库对象被死锁是因为在等待数据的成功传输,但同时数据库对象被死锁反过来又可能进一步恶化数据的传输,形成恶性循环。严重时可能还会造成传输中断。还需防死锁机制,一旦发现数据库存在死锁对象,立刻处理,迅速恢复JWMQ传输,然后再分析造成死锁的原因。

2.5 实时传输机制

JWMQ毕竟是一种基于队列须排队轮候的传输方式。实时性不能完全得到保证,还需补充实时传输机制,通过触发器和Database Link将须实时传输的数据优先、快速传输出去。

2.6 垃圾文件清除机制

JWMQ是一种基于文件的传输,文件是要传输的数据的载体。当数据通过文件这个载体传输成功后,文件仍保留。这种保留相当于是一种备份,时间一长,这些文件成了垃圾文件。日积月累,垃圾文件会越积越多,严重占用资源,所以设有垃圾文件清除机制。通过定期清除过时的垃圾文件,释放资源,保障JWMQ传输的正常运行。

3 结束语

经过改进的JWMQ传输平台已成功应用于动车组管理信息系统。该平台实用、高效、可信赖,在传输环境复杂的情况下,为动车组管理信息系统的长期稳定可靠运行提供了强有力的技术支撑,是动车组管理信息系统的关键技术之一。

[1] 王 辉,张惟皎,王 治. 动车段动车组管理信息系统架构设计与关键技术分析[J]. 铁路计算机应用,2013,22(1).

[2] 史天运,孙 鹏. 动车组管理信息系统的建设与发展[J]. 铁路计算机应用,2013 ,22(1).

[3] 张莉艳,崔丽新,张惟皎. 动车组管理信息系统信息安全体系研究[J]. 铁路计算机应用,2013,22(1).

[4] G.Wiederhold, Mediators in the Architect of Future Information Systems[J]. IEEE Computer C-25,1992,(1).

[5] 王石生,李 平,王英杰,史 宏. 铁路应急平台中数据传输机制研究与实现[J]. 铁路计算机应用,2010,19 (1).

责任编辑 徐侃春

JWMQ middleware applied to China Electric Multiple Units Management Information System (EMUs-MIS)

YI Mingzhong, LIU Danfeng, JIA Zhikai, WANG Ning
( Institute of Computing Technologies, China Academy of Railway Science, Beijing 100081, China )

JWMQ middleware was suitable for those distributed environments that the data were transmitted between multiple processes and thus was widely used. JWMQ was also used in EMUs-MIS after being improved. It was one of the key technologies for EMUs-MIS and was a strong technology support for the long, stable and reliable running for EMUs-MIS.

JWMQ; middleware; EMUs-MIS

U266.2∶TP39

A

1005-8451(2015)12-0032-04

2015-04-01

易明中,助理研究员;刘丹凤,助理研究员。

猜你喜欢

中间件结点动车
LEACH 算法应用于矿井无线通信的路由算法研究
坐上动车去西藏
基于八数码问题的搜索算法的研究
动车过桥
动车西行记
RFID中间件技术及其应用研究
乐!乘动车,看桂林
基于Android 平台的OSGi 架构中间件的研究与应用
中间件在高速公路领域的应用
一种支持智能环境构建的中间件