易明中,劉丹鳳,賈志凱,王 寧
(中國鐵道科學研究院 電子計算技術研究所,北京 100081)
JWMQ在動車組管理信息系統中的應用研究
易明中,劉丹鳳,賈志凱,王 寧
(中國鐵道科學研究院 電子計算技術研究所,北京 100081)
JWMQ適用于在多個進程之間傳送數據的分布式環境,應用廣泛。經改進,JWMQ也被應用于動車組管理信息系統(EMUs-MIS)。為動車組管理信息系統的長期穩定、可靠運行提供了強有力的技術支撐,是動車組管理信息系統的關鍵技術之一。
JWMQ;中間件;動車組管理信息系統
隨著我國高速鐵路運輸體系的建成,動車組運用檢修管理的模式及其信息化建設也在不斷發展和完善[1]。目前,動車組管理信息系統(以下簡稱:系統)的多個模塊已通過鐵路總公司組織的技術評審,并在現場應用[2]。按照動車組運用維修3級4層的管理體系,系統主要在鐵路總公司、鐵路局、動車段和運用所4 級部署,各級之間需要不斷交互多種信息[3]。通過鐵路網絡和多種信息技術,實現鐵路總公司、鐵路局、動車基地(高級修車間)、動車(車輛)段、運用所及主機廠之間的業務協同與信息共享;同時,與動車組車載動態監控系統、主機廠(配件供應商、專業化集中修單位)、鐵路總公司及鐵路局調度系統實現數據交互[2]。
為了有效地提升系統的健壯性,鐵路總公司、鐵路局、動車基地(高級修車間)、動車(車輛)段、運用所及主機廠都是各自獨立的系統, 采用分布式架構,分別有自己的物理數據庫,互不依賴。因此它們之間的數據不能交互和共享,成為信息交互的瓶頸。動車組管理信息系統的關鍵技術之一,就是通過基于JWMQ 的傳輸平臺來解決這個瓶頸[1]。
另外,由于各運用所和檢修車間相互獨立,給全段的統一用戶人員管理、統一權限管理也帶來了很大困難[1]。統一權限管理平臺對不同地點(如段、所、車間)登錄的人員進行控制,也是通過基于JWMQ的傳輸平臺來解決。既滿足了全段的訪問需求,也保證了數據的安全性[1]。
面向消息的中間件(MOM,Message- Oriented-Middleware)能夠在客戶和服務器之間提供同步和異步的連接,并且在任何時刻都可以將消息進行傳送或者存儲轉發。另外,消息中間件不會占用大量的網絡帶寬,可以跟蹤事務,將事務存儲到磁盤上,實現網絡故障時系統的恢復。消息中間件適用于需要在多個進程之間進行可靠的數據傳送的分布式環境[4]。
JWMQ是北京經緯信息技術公司開發的基于消息隊列的中間件,JW代表北京經緯信息技術公司,MQ代表Message Queue。JWMQ是Message-Oriented-Middleware (MOM)的中間件。在動車組管理信息系統之前,JWMQ已廣泛應用。例如,客票系統、鐵路應急平臺中數據傳輸、鐵路客車運行安全監控系統(TCDS)、車輛運行狀態地面安全監測系統(TPDS)等。
經分析、評估、比較,并經改進,JWMQ也被應用于動車組管理信息系統。
應用于動車組管理信息系統的JWMQ傳輸平臺由1個傳輸中間件和2個接口程序組成,如圖1所示。

圖1 動車組管理信息系統的JWMQ架構圖
傳輸中間件即 jwmq.exe ,是最主要的功能模塊,結點與結點之間的數據傳輸都由它完成。接口程序分別是:jw_center_recv.exe,jw_center_send.exe。接口程序不會直接和遠端結點發生聯系,而是通過本地的傳輸中間件與遠端結點傳輸文件。向遠端結點發送文件時,接口程序將待發送文件拷貝到傳輸中間件的發送目錄下,同時向傳輸中間件發出消息,要求發往某遠端結點;傳輸中間件接到消息后就將該文件發往指定的遠端結點。接收遠端結點的文件時,傳輸中間件將所有來自遠端結點的文件都存放在接收目錄下;接口程序根據自己的需要取走接收目錄下相應的文件。
2.1 防堵塞機制
2.1.1堵塞的數學模型
消息隊列對于應用間的結構沒有限制,相對于使用它們的應用而言是獨立存在的。應用之間可能是“一”對“多”,例如:節點A可向節點、…發送和接收消息;或者是“多”對“一”,例如:節點可向節點B發送和接收消息。但這個“一”往往會成為瓶頸。如果由于某些原因(例如節點A與B1之間的網絡中斷)導致節點A發往節點B1的發送隊列,… 中有一個文件就是發送不到節點B1,那么時間一長,文件就可能堵塞住它之后的所有文件的發送,因而節點B2、… BN就可能接收不到來自節點A的文件。所以必須有某種機制將發送失敗的文件踢出發送隊列,如圖2所示。
2.1.2防堵塞的踢出機制
后臺的存儲過程周期為P的掃描接收日志表(P$FILE_RECEIVING_LOG),并對文件的發送失敗次數(初值為0)進行計數。如果發送了次仍然失敗,則須將暫時踢出發送隊列,踢進重發隊列,以免它堵塞其后的其它文件的發送。為簡化算法,通常取為1。
2.1.3防堵塞的重發機制

圖2 防堵塞機制原理圖
顯然,如果節點A與B1之間的網絡還未恢復正常,則重發就可能再次堵塞其后的其它文件的發送。所以,不能無限制地被重發。但重發總數Mb1的確定涉及到非常多的因素,例如:節點A與B1之間的網絡狀況,節點A或B1的服務器的硬盤、CPU、網卡的狀況,以及節點A或B1的數據庫的狀況等等。如果上述狀況較好,則即使重發總數Mb1設的小一點,犧牲的重發機會從而減少堵塞其它文件的發送的機會,但仍有較大的機會能被成功從節點A發送到節點B1。反之,若上述狀況不好,則應設的大一點,通過較多的重發來保證有較大機會發送成功。但這顯然會增加堵塞其它文件的發送的機會。所以,重發總數Mb1的選擇實際上是個tradeoff。既要盡可能地給較多的重發機會,又要盡可能地減少堵塞其它文件發送的機會。但在實際應用中,上述狀況幾乎都不太確定。
2.1.4 防堵塞機制參數的確定
以上僅僅是分析了節點A發往節點B1的隊列中有一個文件發送不到B1的情況,但更復雜的情況往往是節點A發往節點B1的發送隊列中有多個文件(… )發送不到節點B1。另外,如果節點A發往節點Bi的隊列中有一個或多個文件(… )發送不到節點Bi的情況,問題復雜度可能會成指數增長。
為簡化算法復雜度,提高實用性,一般選擇Nb1=1, Mb1=2,且一次只把最早那一個被暫時踢進重發隊列且重發次數m<Mb1的文件放回發送隊列。即發送隊列中的任何文件(可能會有多個)只要有1次發送失敗,就都會被暫時踢出發送隊列,踢進重發隊列。但下一掃描周期,最早那一個被暫時踢出發送隊列且m<Mb1的文件會從重發隊列重新放回發送隊列重發。如果再次發送失敗,則m+1(m初值為0),直至m=Mb1,該文件不再被放回發送隊列,永遠被踢出了發送隊列。重發隊列當中次早那一個文件就遞補成了最早。因而,所有的文件最終都有2次重發機會,總共有3次發送機會。根據經驗,如果3次還發送不出去,那基本說明更多重發已無太多必要,因而這些文件就需要被永遠踢出發送隊列。
2.2 防丟失機制
當然,某些文件被永遠踢出發送隊列畢竟可能會丟失某些數據。因此,需要開發報警應用,周期性地自動檢測可能的丟失。一旦發現丟失,能及時提醒相關人員去查找并定位丟失,重新生成新的文件來彌補這種丟失。如果多次彌補失敗,則問題可能出在其它方面,須通知各方人員會診。
2.3 轉發機制
JWMQ對一個IP地址只認一個數據庫實例,所以若同一個IP地址上部署了兩個數據庫實例,需要考慮如何區分同一IP地址上的兩個數據庫實例(即對應兩個節點)。這就需要用到數據庫同義詞,即別名。例如,上海動車段和虹橋運用所的前、后臺程序共用一個服務器,即共用一個IP地址,通過JWMQ從鐵路總公司往該IP地址的文件要么發給上海動車段,要么發給虹橋運用所,不可兼得。因而需給虹橋運用所數據庫和上海動車段數據庫表取同義詞,即別名。虹橋運用所數據庫的表別名指向它自己。但上海動車段數據庫的表別名卻指向虹橋運用所數據庫的同名表。所以,發給上海動車段的文件實際上是先發給虹橋運用所,然后再通過別名,將這些文件從虹橋運用所轉發給上海動車段,如圖3所示。

圖3 有轉發機制的動車組管理信息系統JWMQ架構圖
2.4 防死鎖機制
由于動車組管理信息系統的業務的量的增長和質的復雜,各數據庫的壓力越來越大。因此,很多的傳輸丟失實際上是因為數據庫存在死鎖對象。很多時候,某些數據庫對象被死鎖是因為在等待數據的成功傳輸,但同時數據庫對象被死鎖反過來又可能進一步惡化數據的傳輸,形成惡性循環。嚴重時可能還會造成傳輸中斷。還需防死鎖機制,一旦發現數據庫存在死鎖對象,立刻處理,迅速恢復JWMQ傳輸,然后再分析造成死鎖的原因。
2.5 實時傳輸機制
JWMQ畢竟是一種基于隊列須排隊輪候的傳輸方式。實時性不能完全得到保證,還需補充實時傳輸機制,通過觸發器和Database Link將須實時傳輸的數據優先、快速傳輸出去。
2.6 垃圾文件清除機制
JWMQ是一種基于文件的傳輸,文件是要傳輸的數據的載體。當數據通過文件這個載體傳輸成功后,文件仍保留。這種保留相當于是一種備份,時間一長,這些文件成了垃圾文件。日積月累,垃圾文件會越積越多,嚴重占用資源,所以設有垃圾文件清除機制。通過定期清除過時的垃圾文件,釋放資源,保障JWMQ傳輸的正常運行。
經過改進的JWMQ傳輸平臺已成功應用于動車組管理信息系統。該平臺實用、高效、可信賴,在傳輸環境復雜的情況下,為動車組管理信息系統的長期穩定可靠運行提供了強有力的技術支撐,是動車組管理信息系統的關鍵技術之一。
[1] 王 輝,張惟皎,王 治. 動車段動車組管理信息系統架構設計與關鍵技術分析[J]. 鐵路計算機應用,2013,22(1).
[2] 史天運,孫 鵬. 動車組管理信息系統的建設與發展[J]. 鐵路計算機應用,2013 ,22(1).
[3] 張莉艷,崔麗新,張惟皎. 動車組管理信息系統信息安全體系研究[J]. 鐵路計算機應用,2013,22(1).
[4] G.Wiederhold, Mediators in the Architect of Future Information Systems[J]. IEEE Computer C-25,1992,(1).
[5] 王石生,李 平,王英杰,史 宏. 鐵路應急平臺中數據傳輸機制研究與實現[J]. 鐵路計算機應用,2010,19 (1).
責任編輯 徐侃春
JWMQ middleware applied to China Electric Multiple Units Management Information System (EMUs-MIS)
YI Mingzhong, LIU Danfeng, JIA Zhikai, WANG Ning
( Institute of Computing Technologies, China Academy of Railway Science, Beijing 100081, China )
JWMQ middleware was suitable for those distributed environments that the data were transmitted between multiple processes and thus was widely used. JWMQ was also used in EMUs-MIS after being improved. It was one of the key technologies for EMUs-MIS and was a strong technology support for the long, stable and reliable running for EMUs-MIS.
JWMQ; middleware; EMUs-MIS
U266.2∶TP39
A
1005-8451(2015)12-0032-04
2015-04-01
易明中,助理研究員;劉丹鳳,助理研究員。