胡燕玲 張 寧 陳 宇 胡 冬
(1.南京地鐵建設有限責任公司,210024,南京;2.東南大學智能運輸系統(tǒng)研究中心,210018,南京;3.北京全路通信信號研究設計院有限公司,100073,北京∥第一作者,工程師)
隨著國內(nèi)城市軌道交通線網(wǎng)的日益擴大,城市軌道交通票務管理(售檢票以及結(jié)算等)已成為各軌道運營公司的一項繁瑣而艱難的任務,而信息技術的發(fā)展使得自動售檢票(AFC)系統(tǒng)成為各大城市軌道交通運營單位提高票務管理水平和效益的有效手段。
AFC 系統(tǒng)是基于計算機技術、網(wǎng)絡技術、自動控制技術等技術實現(xiàn)購票、檢票、計費、收費、統(tǒng)計、財務結(jié)算、客流數(shù)據(jù)統(tǒng)計分析等功能的自動化系統(tǒng)[1]。AFC系統(tǒng)是一個城市軌道交通科技水平和管理水平的集中體現(xiàn),能夠?qū)崿F(xiàn)票務管理、運營管理、財務管理、清結(jié)算管理、安全管理、綜合監(jiān)控等功能,因此,AFC 系統(tǒng)的安全、高效運作是城市軌道交通順暢、合理、高效運營的核心,是實現(xiàn)軌道交通社會效益和經(jīng)濟效益的必要保證。
目前,各城市AFC 系統(tǒng)的建設是分線路分階段進行的,不同線路使用的AFC 系統(tǒng)不統(tǒng)一,采用的軟硬件平臺、數(shù)據(jù)庫系統(tǒng)和開發(fā)軟件也不盡相同;各線路AFC 系統(tǒng)自成系統(tǒng),難以進行統(tǒng)一管理和升級、維護,難以做到資源共享、設備共享。
隨著我國城市軌道交通建設步伐的加快,線網(wǎng)的逐步形成,對AFC 系統(tǒng)進行網(wǎng)絡化整合已經(jīng)迫在眉睫。顯然,已建的AFC 系統(tǒng)難以適應城市軌道交通規(guī)范化、網(wǎng)絡化發(fā)展的需要,建立統(tǒng)一、標準化、跨平臺、跨系統(tǒng)的自動售檢票系統(tǒng)應用平臺[2]是未來自動售檢票系統(tǒng)發(fā)展的必然方向。采用通信和數(shù)據(jù)交換技術[3],構(gòu)建可靠、安全、易用、可擴展、互聯(lián)性高的系統(tǒng)架構(gòu),是AFC 系統(tǒng)的要求,也是發(fā)展趨勢。根據(jù)應用業(yè)務發(fā)展需求,本文結(jié)合公共對象請求代理體系結(jié)構(gòu) (Common Object Request Broker Architecture,簡為 CORBA)技術的特點,討論該技術在城市軌道交通AFC 系統(tǒng)中的相關應用。
CORBA 是對象管理組織 (Object Management Group,簡為 OMG)開發(fā)的一種開放式的、不依賴于提供商的、能夠使得網(wǎng)絡上的應用被很好地調(diào)用的一種應用軟件體系結(jié)構(gòu)和對象技術規(guī)范。其核心是一套標準的語言、接口和協(xié)議,以解決分布式計算環(huán)境 (Distributed Computing Environment,簡為DCE)中不同硬件設備和軟件系統(tǒng)的互聯(lián),增強網(wǎng)絡間軟件的互操作性,解決傳統(tǒng)分布式計算模式中存在的問題。它具有跨平臺、跨操作系統(tǒng)、跨語言、跨網(wǎng)絡協(xié)議、跨物理傳輸媒介的特點。它使用了標準的IIOP 協(xié)議(網(wǎng)際ORB 協(xié)議),使得所有來自任何提供商、任何一臺計算機、任何一種操作系統(tǒng)下、任何網(wǎng)絡上的基于CORBA 的應用,能夠協(xié)調(diào)地同另外一個來自不同提供商、不同計算機、不同操作系統(tǒng)、不同網(wǎng)絡上的基于CORBA的應用進行通信。
CORBA 體系框架如圖1所示。在CORBA 體系結(jié)構(gòu)的中心部分是對象請求代理(Object Request Broker,簡為 ORB),程序它作為一個“軟件總線”來連接網(wǎng)絡上的不同對象。在客戶端,ORB提供一個發(fā)送操作調(diào)用的接口;而在服務器端,ORB提供一個將操作調(diào)用傳輸?shù)椒掌鞯腁PI(應用程序編程接口)。ORB 的任務是定位一個合適的服務器,并且通過一個對象適配器(Object Adapter,簡為OA)將操作調(diào)用傳送給服務器,客戶不需要了解服務對象的實現(xiàn)過程以及具體位置。其技術特點主要有以下幾方面[4]:
(1)引入中間件(MiddleWare)作為事務代理,完成客戶機(Client)向服務對象方(Server)提出的業(yè)務請求。
(2)實現(xiàn)客戶與服務對象的完全分開,客戶不需要了解服務對象的實現(xiàn)過程以及具體位置。
(3)提供軟總線機制,使得在任何環(huán)境下、采用任何語言開發(fā)的軟件只要符合接口規(guī)范的定義,均能夠集成到分布式系統(tǒng)中。
(4)CORBA 規(guī)范軟件系統(tǒng)采用面向?qū)ο蟮能浖崿F(xiàn)方法開發(fā)應用系統(tǒng),實現(xiàn)對象內(nèi)部細節(jié)的完整封裝,保留對象方法的對外接口定義。
(5)客戶和服務器之間的接口通過接口定義語言(Interface Definition Language,簡為IDL)來定義,IDL是一種中間定義語言,可以翻譯成C、C++、Java、Delphi等多種語言。IDL 與具體語言無關,是CORBA 支持異構(gòu)系統(tǒng)和獨立開發(fā)應用程序集成的關鍵。
圖1 CORBA 體系框架
其技術優(yōu)勢可以總結(jié)為如下幾個方面:
(1)能夠確保平臺跨計算機、操作系統(tǒng)、網(wǎng)絡提供通信接口。任何系統(tǒng)或者第三方應用程序,只要符合CORBA IIOP通信標準,都可以調(diào)用接口,并獲取相應的信息,其可保證平臺的開放性。
(2)易擴展性。當有新的業(yè)務系統(tǒng)接入時,只需將該系統(tǒng)的業(yè)務接口掛接在CORBA 名稱服務上,客戶端就可以調(diào)用,這使得平臺擴展更加方便。
(3)可伸縮性。當用戶數(shù)量增多時,可以適當增加服務的數(shù)量,比如可以在CORBA IIOP總線上掛接多個名稱服務,每個名稱服務下面都注冊一定數(shù)量的業(yè)務對象,每個服務都可供一定范圍內(nèi)的用戶調(diào)用,這能保證平臺在面對很多用戶訪問時,能夠最大限度地提供所需的信息服務。
(4)可靠性??梢栽?CORBA IIOP 總線上掛接多個備份的服務,一旦一個服務發(fā)生意外終止,CORBA 的失敗轉(zhuǎn)移機制會自動將客戶端調(diào)用轉(zhuǎn)接到另一個服務上,這可以確保平臺在遇到緊急情況時,能提供穩(wěn)定、可靠的服務。
AFC設備使用量大,是乘客與AFC 交互的界面,直接服務于乘客,完成售票、檢票、充值和票務異常處理等功能。設備的狀態(tài)直接影響著城市軌道交通的服務水平和乘客滿意度。車站計算機(Station Computer,簡為SC)系統(tǒng)用來監(jiān)控和配置本地車站設備,采集本地車站設備的數(shù)據(jù),系統(tǒng)連接多個外部設備,通信節(jié)點多。SC 系統(tǒng)接收線路計算機(Line Computer,簡為LC)系統(tǒng)的指令和參數(shù),并下發(fā)到相應的設備;同時將采集的數(shù)據(jù),上傳到LC 系統(tǒng)。從而實現(xiàn)統(tǒng)一管理,對車站的每一臺設備實施監(jiān)督、控制、參數(shù)化、數(shù)據(jù)采集和審計功能。網(wǎng)絡化環(huán)境下底層通信模型的優(yōu)劣會直接影響到AFC系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃?,對AFC系統(tǒng)的性能有著決定性的作用。
線網(wǎng)AFC 系統(tǒng)直接為乘客提供服務,與設備、客流、收益等密切相關,對系統(tǒng)產(chǎn)生的所有數(shù)據(jù)進行完整的集成和挖掘,同時與綜合監(jiān)控等相關系統(tǒng)進行有效的實時通信,實現(xiàn)數(shù)據(jù)交換、信息共享。隨著城市軌道交通AFC 系統(tǒng)技術和業(yè)務的不斷發(fā)展,數(shù)據(jù)傳輸接口也將不斷更新。為適應這種動態(tài)的變化,有效地屏蔽各系統(tǒng)的分布性和系統(tǒng)的異構(gòu)性,使通信可靠、自由、透明,采用跨平臺的通信和數(shù)據(jù)交換軟件技術,構(gòu)造可靠、安全、易用、可擴展和互聯(lián)性高的底層設備通信架構(gòu),是AFC系統(tǒng)的基本要求。
作為一個開放的、標準的分布式對象系統(tǒng)的解決方案,以CORBA 為基礎部署AFC 系統(tǒng),可以不用在意用于實現(xiàn)的平臺和技術。由于CORBA 支持程序的模塊化和軟件的再利用,靈活性較強,可以隨時通過增加一個服務模塊來實現(xiàn)新的功能,而不必對整個系統(tǒng)進行重新編寫和重載[5]。因而CORBA 能夠為應用開發(fā)提供更強大的服務,對底層設備跨平臺提供服務,實現(xiàn)信息傳輸?shù)募嫒菪浴藴驶?,更好地應用于網(wǎng)絡化AFC 系統(tǒng)建設、運營以及日后的維護中,從而能減少重復建設、降低建設成本和加快地鐵建設步伐。
伴隨著城市軌道交通的建設進程,我國AFC系統(tǒng)的建設也經(jīng)歷了啟蒙階段到實踐階段、再到調(diào)整階段的發(fā)展。目前AFC 系統(tǒng)一般采用標準的五層構(gòu)架體系,由系統(tǒng)ACC(清結(jié)算中心)、LC、SC、AFC 設備和票卡組成,采用全封閉的運行方式,以非接觸式IC 卡為車票介質(zhì)。
然而,隨著城市軌道交通線路網(wǎng)絡化的形成、新技術的引入以及國內(nèi)AFC 系統(tǒng)運營經(jīng)驗的積累,人們逐漸認識到AFC 系統(tǒng)五層基本架構(gòu)在不同運營商所轄線路互聯(lián)互通、系統(tǒng)升級改造、資源高效利用上存在一定的局限性,因而對AFC 系統(tǒng)的體系架構(gòu)有了新的要求。很多城市在現(xiàn)有的標準五層構(gòu)架基礎上,衍生出了一些 AFC 系統(tǒng)架構(gòu)變體[6],包括北京多線共用AFC 系統(tǒng)線路中心建設、南京AFC系統(tǒng)區(qū)域中心建設,以及AFC 業(yè)務內(nèi)置型讀寫器應用等。
城市化進程的發(fā)展,乘客對城市軌道交通服務需求的改變和運營商運營管理復雜程度的增大,考慮到網(wǎng)絡化運營所帶來的不同線路承包商的介入,本文選用CORBA 中間件技術作為通信的底層技術,設計和實現(xiàn)AFC 系統(tǒng)中終端設備和車站計算機系統(tǒng)的相關通信架構(gòu)(見圖2)使得上層AFC 系統(tǒng)的實現(xiàn)更加靈活,利于AFC 系統(tǒng)設備的統(tǒng)一管理維護和信息共享,方便網(wǎng)絡化AFC 系統(tǒng)整合。從而適應城市軌道交通發(fā)展的需求,更好地滿足新線建設和網(wǎng)絡化運營的要求。
圖2 基于CORBA 的AFC 系統(tǒng)底層通信架構(gòu)
本文以AFC 系統(tǒng)中的設備監(jiān)控為例,對CORBA 技術的具體應用進行闡述。作為城市軌道交通AFC 系統(tǒng)的一個重要子系統(tǒng),AFC 設備監(jiān)控系統(tǒng)是城市軌道交通面向運營管理服務的重要組成部分,其數(shù)據(jù)流主要包括:設備狀態(tài)、設備事件和設備命令。設備一方面需向數(shù)據(jù)服務器上傳狀態(tài)和事件數(shù)據(jù),另一方面需接收數(shù)據(jù)服務器發(fā)來的命令。監(jiān)控軟件一方面從數(shù)據(jù)服務器中讀取狀態(tài),并向數(shù)據(jù)服務器發(fā)送命令,另一方面需接收數(shù)據(jù)服務器推送的事件信息。CORBA 通信本身是一種發(fā)布/訂閱(Publish/Subscribe)結(jié)構(gòu),每次通信只能由訂閱方發(fā)起,而AFC 系統(tǒng)包含數(shù)千個設備和多個監(jiān)控軟件,監(jiān)控軟件與設備間互為發(fā)布方和訂閱方,進行雙向通信。因而基于CORBA 中間件技術進行了相關的系統(tǒng)開發(fā),首先是進行組件的功能模塊設計,然后按照規(guī)范要求編寫IDL文件,最后通過客戶端和服務器端的編譯機實現(xiàn)函數(shù)功能。
2.2.1 CORBA 應用接口
CORBA 應用借助 IDL 件描述 CORBA 接口。IDL文件中包含模塊、接口、操作和數(shù)據(jù)類型等元素。
2.2.2 CORBA 服務和客戶程序
生成IDL 文件后,需要通過特定的編譯器將IDL文件轉(zhuǎn)換成C/C++或其它語言代碼,并分別編寫客戶端和服務端程序。服務器需提供CORBA接口的一個繼承于該接口的POA(變攜式對象適配器)框架類的實現(xiàn)類來提供CORBA 對象的本地對象實現(xiàn)。對象引用是CORBA 對象在ORB 總線上的唯一標識。不同的ORB 實現(xiàn)對對象引用的封裝可能會有所不同。客戶是通過對象引用來訪問服務器CORBA 對象的,因此客戶首先需獲取服務器CORBA 對象的對象引用。客戶獲得服務器CORBA 對象的對象引用,調(diào)用該對象的接口操作。因此在設備、數(shù)據(jù)庫服務器以及監(jiān)控軟件上都要部署CORBA 的接口服務程序。
2.2.3 數(shù)據(jù)通信連接的建立
設備的注冊流程如圖3所示。
圖3 Server-SLE的CORBA 會話建立的流程圖
(1)Server廣播的UDP(用戶數(shù)據(jù)協(xié)議)包的接收。Server啟動后,在車站局域網(wǎng)通過指定的端口廣播一個包含Server注冊代理管理的CORBA對象引用的UDP 包;設備從指定的端口接收該UDP包,然后根據(jù)包格式的定義,獲取Server注冊代理管理員的IOR(可互操作對象引用)。
(2)設置CORBA 連接。設備根據(jù)取出的IOR獲取Server注冊代理的CORBA 對象,通過調(diào)用相應的Register方法啟動設備的注冊過程,接著設備提供EqRoot對象給Server的注冊代理。
(3)設備的注冊。Server 通過 EqRoot::getData方法獲取設備的MachineID,并驗證其合法性;另外,SC 還可從EqRoot對象獲取EqControl對象,通過命令控制設備,并設置車站上下文。
(4)設備根據(jù)Server同步自身的狀態(tài)。成功注冊后,Server通過調(diào)用bulkRead方法獲得設備的當前狀態(tài);設備驗證是否已裝載最新版本的EOD(設備運行數(shù)據(jù)),以及其操作模式和IP地址是否與Server相同。
(5)會話異常處理。設備注冊失敗后的恢復事件中,進行同上的會話初始化過程。如果會話中斷,設備會周期性地嘗試連接,直到會話恢復,期間設備與Server之間的通信被禁止。
通過獲取CORBA 對象的對象引用,設備在注冊過程中建立與數(shù)據(jù)服務器的雙向通信。監(jiān)控軟件的注冊過程與設備基本相同,當通信連接成功后,就可以使用“推/拉”模式傳輸設備狀態(tài)數(shù)據(jù)、設備事件數(shù)據(jù)和設備命令數(shù)據(jù),直到會話結(jié)束。
CORBA 產(chǎn)品為分布式應用程序的開發(fā)和執(zhí)行提供了一個框架,采用CORBA 軟總線技術,屏蔽了通信底層接口的復雜性,易于實現(xiàn)跨系統(tǒng)平臺、跨網(wǎng)絡、跨硬件的軟件通信,使應用軟件的內(nèi)部數(shù)據(jù)流更清晰,各種服務與客戶端之間可更方便地交互所需要的數(shù)據(jù)。這樣可以讓開發(fā)者專注于構(gòu)建業(yè)務邏輯的實現(xiàn),而不用過多考慮復雜的底層,極大地提高了構(gòu)件開發(fā)的效率。CORBA 的使用為AFC 系統(tǒng)提供了統(tǒng)一標準的協(xié)議與應用程序接口,可運行于多種硬件及OS(操作系統(tǒng))平臺,方便不同的對象進行通信。從而滿足了城市軌道交通AFC 系統(tǒng)網(wǎng)絡化應用的需求,提高了AFC 系統(tǒng)的可擴展性,為日后新線建設預留接口,進而整合不同的線路,減少資源重復配置造成的浪費,實現(xiàn)資源共享、互聯(lián)互通。另外,許多公司和組織在CORBA 技術規(guī)范的基礎上開發(fā)了相關的市場化產(chǎn)品[7-8],使得 CORBA 技術在城市軌道交通AFC 系統(tǒng)中具有廣闊的應用前景,進而推動AFC 系統(tǒng)的模塊化和國產(chǎn)化。
隨著城市軌道交通網(wǎng)絡化的形成,AFC 系統(tǒng)變得越來越復雜。CORBA 技術的應用,不僅方便了軟件系統(tǒng)的建設過程、縮短了開發(fā)周期,而且提高了通信傳輸質(zhì)量和效率,減少了運行維護工作量。另外,CORBA 技術的使用為將來接入OCC(運營控制中心)預留了接口,為系統(tǒng)間集成提供了可能,使AFC 系統(tǒng)架構(gòu)更易于擴展和互聯(lián),可以更好地適應現(xiàn)有和未來AFC 的業(yè)務發(fā)展。
[1]趙時旻.軌道交通自動售檢票系統(tǒng)[M].上海:同濟大學出版社,2007.
[2]王健,張寧,黃亮,等.南京地鐵AFC 系統(tǒng)網(wǎng)絡化建設思路和再思考[J].都市快軌交通,2011,24(1):69.
[3]王健,高朝暉,張寧,等.南京軌道交通線網(wǎng)AFC 系統(tǒng)的數(shù)據(jù)傳輸[J].都市快軌交通,2008,21(5):56.
[4]朱其亮,鄭斌.CORBA 原理及應用[M].北京:北京郵電大學出版社,2001.
[5]李剛,蔣云良.CORBA 技術在現(xiàn)場設備通信中的應用[J].計算機應用研究,2007,24(7):261.
[6]邱華瑞,張寧,徐文,等.城軌交通自動售檢票系統(tǒng)架構(gòu)體系研究[J].都市快軌交通,2014,27(2):86.
[7]黎江,劉凱.軟件中間件技術在自動售檢票系統(tǒng)中的應用[J].鐵路計算機應用,2006,15(01):34.
[8]彭凌祺,趙時旻,蘇厚勤.通信中間件技術在軌道交通AFC系統(tǒng)中的應用研究[J].計算機應用與軟件,2007,24(12):74.
[8]黎江.軌道交通自動售檢票系統(tǒng)可靠性設計探討[J].城市軌道交通研究,2014(8):28.