王 洋,周 勃,董寶田
(北京交通大學交通運輸學院,北京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.