吴兴华
(中国铁道科学研究院 电子计算技术研究所,北京 100081)
随着我国高铁客运网络的快速发展,铁路旅客服务系统集成平台(简称:旅服平台)已经在全路各高铁车站上线应用,已成为车站最为重要的生产系统之一。旅服平台以向工作人员和旅客提供综合的生产服务和旅客服务为目标,自动接入调度、客票等外部信息,按照统一的接口标准把分离的广播、导向、视频、检票、查询、寄存和时钟等子系统深度集成,提供综合业务操作,实现信息共享和功能联动,提高旅客服务的信息化和自动化水平。
目前,旅服平台现有业务处理方式主要采用业务与服务一对一的消息驱动模式进行控制,即到发管理服务在业务发生时,向广播、引导、检票、接口等子系统数据表发送消息,各子系统按照预编译既定的业务规则进行业务处理,并对底层系统控制器进行控制。系统流程,如图1所示。
此种控制模式下,各子系统数据访问、业务处理相对独立,并无统一的中间环节监控,因此,系统在整体扩展性、响应及时性、可重用性、稳定性方面存在一定的不足。
随着我国互联网、人工智能等新技术的不断成熟和在客运车站应用的不断深入,旅服系统的更新扩展也在不断加快。而目前,旅服平台业务规则均由各子系统应用服务进行预处理,无论旅服系统进行横向扩展(如:新增业务)还是纵向扩展(如:子系统业务增加或变更),都需要重新进行代码编译,扩展较为复杂。
图1 旅服平台业务流程
目前,旅服平台控制广播、引导、检票等子系统响应时间一般要求<2 s,精确度一般要求1 s以内[1]。而系统采用消息驱动方式进行业务处理,各子系统业务规则处理情况各不相同,在一些极端特殊情况下,很难保证系统响应的及时性。
旅服平台系统业务规则处理由各子系统服务完成,而各子系统规则各不相同,对于其他业务可重用性较差。
为保证车站旅服业务的顺利进行,旅服平台一般要求7×24 h运行[1],目前,旅服平台业务规则处理由各子系统服务完成,一旦子系统业务程序报错停止,整个业务会受到影响,稳定性无法保障。
综上所述,旅服平台急需对架构进行优化,设计一套高可扩展、高精度、高稳定性的平台架构。OA架构具有业务流程编排高灵活性、易扩展性、高可重用性等特点,本文从旅服平台核心业务驱动着手,设计实现一套针对旅服集成平台应用服务的中间件,以满足车站日常旅客服务和客运组织的需求。
面向服务架构(SOA,Service-Oriented Architecture)是指为解决在互联网环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件架构。它不是一种语言,也不是一种具体的技术,而是一种架构模式,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互[2]。SOA连接结构如图2所示[3-4]。该结构,描述了面向服务的体系结构的角色、操作和基本构件。
图2 SOA连接结构图
SOA体系结构中的角色包括[5]:
(1)服务请求者; (2)服务提供者;(3)服务代理。
SOA体系结构中的操作包括[6]:
(1)发布;(2)查找和绑定。
SOA体系结构中的构件包括[6]:
服务和服务描述。
SOA层次模型描述了SOA运行时的概念视图,它用一个分层的体系结构展现了SOA计算体系中所需的主要概念元素及其相互关系,用于指导SOA解决方案架构的设计[7-8]。包括:展现层、流程编排层、服务层、组件层和应用层,如图3所示。
图3 SOA层次模型
SOA层次模型具有以下特点[7-8]:
(1)灵活性强、组件化程度高;
(2)易于演化扩展;
(3)易于跟踪和测试;
(4)可重用性好。
旅服平台作为一个高度集成的信息系统,其内部子系统均通过到发业务驱动,且业务各有特点,非常适合采用SOA架构整合优化。
通过分析旅服平台现有的业务情况,文章结合SOA建模思想,设计新的旅服中间件及业务模型,如图4所示。
图4 基于SOA的旅服中间件及业务模型架构图
整个服务层包括:SOA发布中间件、应用服务以及传输协议。其中,SOA发布中间件具有UDDI注册、业务流程编排等功能,中间件获取旅服业务服务注册按业务规则需要进行业务流程编排,并进行服务发布,保证前端展示层设备和应用服务能够查找到需求的业务服务。同时,应用服务采用虚拟化集群方式建设,保障在业务流程编排和业务分配过程中有足够的服务满足应用需求。另外,服务层与展示层通过WebService、TCP、OKHTTP/WEX5等协议进行数据交互,满足前端操作与展示需求。
展示层主要包括:旅服平台、广播、引导等旅服系统前端操作展示设备,它通过服务层查找获取相应的服务满足日常业务需求。
基础数据层主要包括:数据库、数据处理中间件、操作系统等,主要为旅服业务提供支撑服务。
通过基于SOA的旅服中间件设计,新的旅服业务流程,如图5所示。
图5 SOA架构下旅服业务流程
(1)包括虚拟应用服务集群的业务服务1至业务服务N均在SOA发布中间件进行注册。
(2)前端业务情况通过数据库中间件进行数据库访问,进行数据状态增删改查。
(3)所有业务变化通过数据库触发方式发送给SOA中间件,中间件根据业务规则对已注册的应用服务进行编排并进行业务分配。
(4)实现前端设备或系统控制器的控制。
基于SOA的旅服平台中间件采用.NET框架进行设计,数据交互采用SOAP格式,利用Web-Service、TCP、OKHTTP/WEX5等协议进行数据交互。核心代码如下:
public abstract class RunTimeTrigger : RunTimeTcp-Client, IRunTime
{
public abstract bool RunTimeP(DateTime dt);
public virtual void Ini() { }
public virtual bool NonPractice() { return true; }
public virtual bool cmdProc() { return true; }
public delegate bool tcpReceiveHandler(trigtpara bytes);
public event tcpReceiveHandler tcpReceive;
public RunTimeTrigger()
{
timer.Interval = 5000;
timer.Elapsed += new System.Timers.ElapsedEventHa ndler(Connection);
timer.AutoReset = true;
ct.tcpReceive += new ClientThread.tcpReceiveHandler(tcpClientReceive);
}
public bool isMainFine = false;
void timerTcp_Elapsed(object sender, System.Timers.
ElapsedEventArgs e)
{
isMainFine = DA.isMianFine();
}
}
整体实现效果如图6、图7所示,其中,图6主要展示中间件服务注册内容,图7主要展示中间件流程编排和服务处理内容。
图6 中间件注册服务内容
图7 中间件流程编排和服务处理内容
优化后的旅服平台在整体扩展性、响应及时性、可重用性、稳定性方面均有很大的提高。和优化前的系统对比,特点如表1所示。
表1 优化前后旅服平台性能对比
目前,该中间件已经在中国铁路昆明局集团有限公司沪昆线和云桂线、中国铁路呼和浩特局集团有限公司呼张线旅服平台上应用,应用效果良好。
基于SOA中间件优化的旅服平台从各方面性能均得到了极大的提升,同时,业务未来旅服系统横向和纵向发展提供了技术基础。
(1)极大程度提高了新的信息系统接入效率,在互联网条件下,可快速兼容如微信公众号、手机app、物联网监测设备等业务管理。
(2)未来可利用大数据智能分析算法进一步优化业务流程编制过程,进一步提高旅服系统的性能。
参考文献:
[1]国家铁路局.铁路客运服务信息系统设计规范: TB 10074-2016[S]. 北京:国家铁路局,2016.
[2]孙华林,赵正文.基于WebService的面向服务架构(SOA)的探索与研究[J]. 信息技术,2007(1):50-53.
[3]郑秋宁,严云松. 基于SOA的开放式车务综合信息平台架构研究[J]. 铁路计算机应用,2010,19(12):25-29.
[4]杨国元,史天运. 铁路客运管理信息系统总体架构及关键技术研究[J]. 铁路计算机应用,2016,25(3):22-25.
[5]王焕民,陈治理. 基于SOA及Web服务的铁路信息集成系统开发[J]. 铁路计算机应用,2009,18(6):17-20.
[6]黎 英. 基于SOA的铁路信息共享系统研究[J]. 铁路计算机应用,2009,18(8):5-8.
[7]李 军. 一种基于SOA架构的中间件平台的研究与实现[D].哈尔滨:哈尔滨理工大学,2008.
[8]张 春. SOA建模方法研究[D]. 重庆:重庆邮电大学,2011.