时间:2024-07-28
王 洋,周 勃,董宝田
(北京交通大学交通运输学院,北京100044)
铁路运输企业的高效运转必须有一个强有力的信息系统支持。如今,铁路信息系统经过多年的建设和发展,建立了大量的信息系统,如调度指挥系统、客运服务系统以及货物运输管理系统等,覆盖了铁路运营和日常办公的各个方面,取得了很好的收益,但仍无法满足不断产生的各种需求。其中最突出的问题就是不同业务系统之间的互通和互联不畅。这些系统由于存在建设时间有先后,建设时所面临的信息技术资源不同,对系统运行的环境需求不同等因素,系统之间信息资源难以共享,整体效益难以发挥。而随着我国铁路的高速发展,铁路信息化的重要地位日渐突出,迫切需要铁路内部各系统之间互联互通,提高铁路整体的运营效率。
要解决铁路信息系统存在的种种问题,就要找到一种能够跨越具体技术细节,使系统具有良好的开放性和扩展性的方法。面向服务的架构(Service-Oriented Architecture,SOA)能够满足这些要求,研究如何将其应用于铁路信息共享中具有重要意义和作用。
面向服务架构(SOA)是一种设计方法,它指导业务服务在其生命周期(从构思开始,直至停止使用)中的方方面面,同时也提供了一种具有以下特征的IT基础设施:允许不同的应用相互交换数据和参与业务流程,无论使用何种操作系统或采用何种语言[1]。它能把各个应用的功能抽象成服务,通过请求/服务的方式获取跨应用的功能调用和数据获取。其核心技术就是Web服务。
面向Web服务的业务流程执行语言(BPEL 或BPEL4WS)可通过组合、编排和协调 Web 服务自上而下地实现SOA[2] 263-267。BPEL 提供了一种相对简单的方法,可将多个 Web 服务组合到一个新的复合服务(称作业务流程)中。
用业务流程集成的思想构建铁路信息共享平台的SOA,要了解铁路系统内部近40个应用系统都各自发挥什么样的功能,能发布什么样的Web服务,提供什么样的信息来共享。
例如,铁路客票发售与预订系统可以提供剩余票额查询、票价查询以及列车时刻表查询等服务;货运营销与生产管理系统可提供运输计划查询等服务;列车预确报系统可提供列车的车次查询、发报站查询、发报时间查询服务。各系统将本系统的功能作为Web服务发布,同时参与业务流程集成,以生成新的功能。然而,现实的共享需求中还存在着以下情况:
(1)用户需求的信息,并不来自于一个系统,而是多个系统提供的信息的组合;
(2)用户所需的信息,虽然某一系统可以完全提供,但却需要调用该系统的几项服务,才能获取完整的信息结果;
(3)用户需求的信息,虽然某个系统的某项服务可以提供,但用户无法提供调用该服务所需的输入消息,需要根据自身掌握的信息通过其他系统提供的服务获取该输入信息,而且可能需要调用多个服务才能获取。
即使是点对点的信息需求,也可能因信任程度不够,服务无法直接调用。因此,对应服务需在信息共享平台重新封装后由平台发布,再供其他系统调用。
解决以上问题的方式,正是业务流程集成的思想,应用BPEL,将来自不同系统的一个或多个服务进行集成和封装。但根据一定的规则将其集成后可以实现新的并且更粗粒度的服务,用户只要调用该服务,即可自动完成与流程所集成的对应服务的调用,满足其信息共享的需求。各系统提供的服务和集成后的新服务是可重用的,可根据需求再参与其他流程的集成。
铁路信息系统中包含许多应用系统,每个应用系统又可提供多个Web服务,结合铁路信息共享需求,对所有的服务进行封装和集成是一项非常浩大的工程。应用BPEL实现铁路全面信息共享的目标,可谓任重而道远。本文例举2个流程相对简单,但却具有实际意义,可以满足铁路信息共享需求的业务流程集成应用,说明BPEL如何用业务流程集成思想解决铁路信息共享问题的思路。
铁路货物追踪查询业务流程实现后,铁路以外的货主可以实时掌握货物运输过程中的状态,增加客户满意度,从而提高铁路服务质量和整体竞争力。
货物追踪查询需调用的外部Web 服务如下:
(1)车号信息Web服务:通过货票号等信息查询装载了该货物的货车车号。输入参数为货物承运货票号和货物发站名,输出参数为装载着该货物的货车号。
(2)车次信息Web服务:通过货车车辆的车号查询货车最后被编入的列车车次的服务,输入参数为货车的车号,输出参数为该辆货车最后被编入的列车车次。
(3)站名信息Web服务:通过车号查询该车辆最后编入车次的一些其他相关信息,包括发报站、发车时间和解体站。输入参数为货车车号,输出参数为该车辆最后编入车次的发报站、发车时间和解体站。
通过上述服务,货主即可通过货票号等信息,确定其托运的货物目前所在的区段,以及编入的车次等信息。接下来要利用BPEL对上述服务集成,形成新的业务流程,发布新的货物追踪查询Web服务,供货主及其它有需求的人员或系统访问。新业务流程如图1。
其中,SearchLT为调用车号服务的端口名,TrainLT为调用车次服务的端口名, StationLT为调用站名服务的端口名。
目前铁路各货运站的货物运输方式,大都以整车和集装箱业务为主,在拥有大型专用线的车站,几乎全部货运业务都采用整车运输的方式。整车和集装箱运输除了按正常的装车计划装车外,每天还存在着一定数量的计划外装车。计划装车和计划外装车是否被批准发车,需要货运调度员和计划调度员根据实际情况综合考虑,而这个过程需要一段时间。货车批准状态查询功能利用信息系统,使货物的批准状态在车站的用户界面上实时显示,车站工作人员可在第1时间掌握该信息,缩短核对车辆批准的时间,提高车站的工作效率。
图1 货物追踪查询BPEL流程图
货车批准状态查询需要调用的外部Web 服务如下 :
(1)货车信息Web 服务:输入参数为货车的发站名和装车日期,输出参数为该日所装的货车的车号,品名,到站和货物重量。其提供CarriageInfPT端口类型,可使用getCarriageInf操作,实现服务调用。
(2)站名信息Web 服务:通过货车车号查询该车辆最后编入车次的相关信息,包括发报站,发车时间,解体站。本功能只利用发车时间这一参数,与装车时间对比,若发车时间晚于装车时间,则该货车已发出,否则该货车则未发出。
(3)状态查询Web 服务:输入参数为货车的车号及装车时间,输出参数为该辆货车的状态(“已批准”或“未批准”),也输出其他的与货物相关的信息,包括品名,到站和货物重量。通过StatusLT调用状态查询Web服务。
通过以上服务,可实现规划中的货车批准状态查询的功能。车站工作人员可及时掌握货车批准状态信息,提高车站的工作效率。该功能的BPEL流程如图2。
图2 批准状态查询BPEL流程图
用基于SOA的业务流程集成技术解决铁路信息共享问题,可将庞大的铁路信息系统内部各系统提供的信息共享资源有效整合,能够起到推动铁路信息化进程的作用。
本文以实际的铁路信息共享需求为依据,描述了2个简单的BPEL流程实现,用业务流程集成的思想能解决的信息共享问题可涉及到铁路信息共享的方方面面。例如,通过集成客票发售与预订系统的相关服务,可实现客票信息的综合查询;集成工务和电务相关系统发布的施工计划相关的服务,可使车务等其它基层工作人员查询到相关的施工计划,以调整自身生产;通过集成机务系统的相关服务,可让高层调度人员掌握机车运用情况,进而进行运输生产调整。
铁路信息系统能够提供的信息量非常大,通过流程集成的方式有效整合,封装利用,可更好地满足铁路信息共享需求,在铁路信息化的建设中发挥更大的作用。
[1] 郑耀. SOA在铁路信息共享平台中的应用研究[D] .北京:北京交通大学,2007(7-8):1-8.
[2] 毛新生. SOA原理·方法·实践[M] . 北京:电子工业出版社, 2007(3):263-267.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!