宋长春
( 1.中国铁道科学研究院,北京 100081;2.中国铁路沈阳局集团有限公司 信息技术所,沈阳 110001 )
铁路企业经过多年的信息化建设,已在各业务领域建成众多的信息系统,在运输生产中发挥着重要的作用,但各个信息系统的运输生产数据都存储在各自的系统内部,无统一共享标准,这为系统间数据互通和信息共享带来了较大的难度。为了打破现有的信息孤岛,实现资源的整合,中国国家铁路集团有限公司(简称:国铁集团)建设的运输信息集成平台(简称:集成平台)提出了开放式的信息共享架构和信息共享管理机制[1]。集成平台数据的采集有多种方式,包括:(1)直接通过基于集成平台的应用获取数据,将原始数据库直接部署在集成平台;(2)通过数据库级共享获取信息;(3)通过业务系统提供的服务调用获取数据;(4)采用报文方式,由信息提供者形成标准格式报文,通过消息队列(MQ,Message Queue)传输方式交换到集成平台等方式[2]。本文利用Webspere MQ技术[3]和可扩展标记语言(XML,Extensible Markup Language)标准建立报文上报规范,利用铁路MQ统一传输平台制定了统一的数据传输方式,通过对报文信息采集方式的研究及实现,提出了一整套切实可行的现存异构系统间信息互通、数据整和的标准规范、采集流程和具体功能。
集成平台通过采集和整合各类运输信息系统的业务和生产数据,建立列车、货车、货物、机车、机车乘务员等运输信息库,集成平台所需的报文类型可分为4大类15小类,分别为:列车(列车出发报文、列车到达报文、列车编成报文、列车解体报文、保留/解保留报文)、车辆(装车报文、卸车报文、运非报文、新车加入报文、车辆退出报文、股道车辆报文)、机车(机车报文、乘务员报文)、股道信息(股道车辆报文)[4]。
站段、铁路局和国铁集团间采用基于MQ的统一传输平台传输报文数据。传输方式为,站段级应用系统通过MQ客户端向所属路局统一传输平台发送报文数据,报文数据自动传输到路局的MQ通信服务器上的本地队列中,铁路局程序从统一传输平台队列中取出报文进行入库处理,形成业务数据;同时,传送到国铁集团统一传输平台队列,国铁集团程序从统一传输平台队列中取出报文,对报文进行入库处理。报文的具体传输方式如图1所示。
图1 报文传输方式示意图
信息交换规范的制定是平台实现的基础,统一传输平台上的数据都必须有明确的定义,严格按照规范执行,以标准格式的XML信息报文来发送和接收[5]。规范要求XML消息报文由MQI(Message Queue Interface)消息头、数据头格式、报文头和报文体组成[6]。MQI消息头确定报文消息的相关信息;数据头格式确定报文消息的接收方等信息;报文头作为报文消息的一部分,标记报文产生点、产生时间等相关信息;报文体为报文消息的主体,包含报文所要求包含的传输信息,根据报文类型的不同而不同。
由于各系统的架构以及开发语言的不同,系统间互通必须遵循上述规范,按照规范的要求在适当的时机发送本系统所产生的业务报文数据。所有交换数据都依据该规范转换成XML标准格式的报文,通过Webspere MQ技术[7]进行分发转送,从而实现跨平台、跨业务应用系统的信息交换和共享[8],在降低系统内部改造成本的同时达到系统间数据共享的目的。
2.1.1 传输报文的消息结构
传输报文的消息结构如图2所示,在此结构中能够获得报文信息的所有相关信息,包括业务系统因业务变化重新发送报告对原有报文进行修正的相关标识等数据信息。
2.1.2 报文具体格式定义
MQI消息头格式由24个字节组成,具体的格式定义如图3所示。
数据头格式由一组字符串组成,最大256字节,具体格式定义如图4所示。
2.1.3 XML数据报文样式
报文体具体数据格式及内容,因报告类型的不同会有所不同,但是格式及结构是一致的,以列车到达报文为例报文体样式如下。
由图5可知报文信息采集流程可分为业务系统、MQ统一传输平台、报告处理平台和集成平台4部分。业务系统是平台底层的各类信息系统,是平台数据的根本来源,每个系统按照报文采集规范约定产生相关的报文,并负责对报文的消息进行更正、撤销等处理;MQ统一传输平台主要负责将业务系统发送的报文进行分发,主要是要根据报文的标识来确定是一级国铁集团落地还是二级路局落地,并记录传输日志;报文采集处理模块主要负责处理各个业务系统上报的报文并形成集成平台所需要的数据[9]。
图2 传输报文结构图
图4 数据头格式具体格式定义示意图
报文采集处理模块运行于整个系统的后台,利用C#语言,采用C/S模式进行开发,数据库管理系统采用Oracle系统。C/S开发模式主要优点有程序运行稳定,降低系统通讯的开销,提高平台数据处理的能力且便于维护人员进行监控及维护。
图5 报文信息采集流程图
报文采集处理模块共有7个功能,分别为:MQ接收落地、落地文件入库、日志查询、参数配置、文件清理、数据库清理和后台监控。落地文件处理方式可根据本局报文量的多少,按照配置文件配置为单进程运行或多进程同时处理报文,提高报文处理效率。
(1)MQ接收落地:由于发送报文的底层业务系统众多,模块接收到的报文信息量较大,因此模块处理报文数据应先将报文信息分发到配置文件指定的文件夹中,避免MQ队列的堵塞。
(2)落地文件处理:此功能主要负责将对应文件夹内的报文进行处理,形成集成平台的业务数据,并记录相关日志。处理过程主要依据报文内容的业务逻辑形成相应的数据,并且在处理过程中对报文内容的合法性和合规性进行校验,从而提高所生成数据的可用性及完整性。
(3)日志查询:此功能可以查询模块生成的相关的处理日志,便于日常维护。
(4)参数配置:对模块的各项参数进行个性化设置,可设置轮循时间、转发机制、目录配置等参数,根据不同的报文数据量以及服务器的配置进行灵活配置。
(5)文件清理:根据模块参数配置定时清理模块所产生的过期报文文件,避免长时间的积压导致文件系统硬盘可用空间不足。
(6)数据库清理:根据模块参数配置定时清理集成平台相关的业务数据以及采集处理模块所产生的过期日志数据。
(7)后台监控:监控MQ队列深度、文件系统磁盘空间信息、报告接收时间等相关信息,提高报文信息采集的稳定性。
(1)数据共享更便捷
XML是基于互联网标准的数据传输规范,通过XML,可以轻松地跨平台、跨系统的实现数据传递[10]和数据共享。
(2)简化业务系统的改造
集成平台涉及到的业务系统众多,如果整体改造,代价大、耗时长,对原有业务也会产生较大影响,但报文信息采集方式的建立,使业务系统的改造降到了最低,减少了对原有系统的影响。
(3)数据传输更安全可靠
报文信息采集基于Webspere MQ消息中间件进行消息传输,消息中间件为不同应用系统之间的数据交互搭建了安全、稳定、高效的桥梁,从而保障了整个体系的传输安全。
运输信息集成平台报文信息采集利用现有的成熟技术,建立了一套完整的跨平台、跨系统的数据整合方案。文中描述的技术规范、采集流程、处理方式和数据访问等技术,将为铁路数据资源整合和铁路大数据[8]的建设提供一套切实有效的数据互通的解决方案。