孫永生,高曉菲,梅瑜華,劉德勇
(浙江眾合科技股份有限公司,杭州 310051)
?
重載鐵路調度優化系統內部通信關鍵問題及算法研究
孫永生,高曉菲,梅瑜華,劉德勇
(浙江眾合科技股份有限公司,杭州310051)
摘要:為研究重載鐵路調度優化系統內部通信的關鍵問題,對調度優化系統內部通信結構和特點進行分析,得出影響通信的關鍵問題,通過對這些問題進行分析和建模,建立UDP和TCP相結合的總線式通信機制,從而保證系統內部通信的可靠性,滿足調度優化系統內部通信的要求。
關鍵詞:重載鐵路;調度優化系統;通信;消息總線
調度優化系統的研制是國家科技支撐計劃項目“軸重30噸以上煤炭運輸重載鐵路關鍵技術與核心裝備研制”中的重要課題。對外通過LTE-R網絡與車載設備進行實時、連續的通信[1-3],可以實時獲得在線的每一列車的信息,而系統內部的通信影響著系統的正常運行,需要高度的可靠性。
同時,為減少開發的工作量,充分利用已有的成熟技術,提高系統的可用性,必須選用一種成熟的通信協議作為傳輸層,從而使通信的應用層專注于功能和內部接口的完整[4]。目前非常成熟且應用廣泛的傳輸層協議主要有TCP和UDP。
TCP是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,提供排序、重傳等機制,能可靠的保證信息傳輸[5]。利用TCP協議開發調度優化系統內部通信,可以在建立應用層消息傳遞和識別的同時,提高通信模塊的可用性。
UDP是一種面向無連接的傳輸層協議,它主要用于不要求分組順序到達的傳輸中,分組傳輸順序的檢查與排序由應用層完成,提供面向事務的簡單不可靠信息傳送服務。
調度優化系統內部通信模塊是軟件意義上的消息總線架構[5],它部署于系統的各個設備上,其他功能模塊之間的通信均通過消息總線來實現。這種總線式的設計能將各種信息格式化,有利于統一接口,并具有良好的擴展性;其他各功能模塊均可通過消息總線通信,增強了通信的靈活性[6]。
調度優化系統專網專用,除了與其他系統進行必要的接口外,不與公用網絡、其他無關網絡進行連接,以確保通信的安全性及系統的可靠性和可用性[7]。
2.1傳輸層設計
調度優化系統各設備之間的網絡通信通過以太網絡接口來實現,內部接口的通信協議采用標準的TCP/IP協議棧。調度優化系統內部通信的層次模型如圖1所示。

圖1 調度優化系統內部通信層次模型
各設備互連時并不會關心消息的順序,宜采用UDP協議;建立連接后,要嚴格按照順序收發消息,并采取防止漏傳等措施,故采用TCP協議。
總體上講,調度優化系統內部通信的傳輸層采用UDP與TCP相結合的方式,既能有效實現設備和應用程序的互連,又能利用成熟的排序、重傳機制,達到通信可靠、穩定的目的。
2.2通信架構及關鍵問題
調度優化系統內部通信結構如圖2所示,通信模塊不對消息進行任何加工處理,只作為消息轉發的通道[7],同時依靠TCP協議的防超時及重傳機制,保證消息的可靠傳遞。

圖2 調度優化系統設備通信連接模型
該通信方式采用“廣播+訂閱”的消息傳遞方式[8,9],即各應用軟件向消息總線訂閱自己需要接收的消息類型,以此過濾掉不需要的消息;一臺設備發出的消息,網絡中所有節點均能收到[10,11]。
在實現過程中需要解決不同設備上通信終端的互聯、消息訂閱、消息的傳遞等問題。另外,由于系統部分設備采取熱備機制,還要處理連接狀態轉換、其他功能模塊的熱備同步和主備切換等。
2.3消息總線設計
將消息總線模塊劃分為服務端、客戶端、連接管理3個組件,3個組件的關系如圖3所示。

圖3 消息總線模塊組成
連接管理:提供消息總線連接的管理,包括連接的分配,建立,刪除,連接狀態的切換;提供消息的封裝,包括信息的格式定義,編解碼及報文的內存分配。
服務端:監聽UDP端口,定時發送UDP廣播報文;監聽TCP連接端口。管理消息總線的雙連接切換、消息注冊、消息轉發功能。
客戶端:提供了供應用軟件使用的客戶端,向服務端發起TCP連接請求,雙連接的切換,消息注冊,應用軟件的熱備切換。
2.4關鍵問題設計
2.4.1消息總線互連
消息總線通過指定UDP端口廣播心跳包來發現其他設備上部署的消息總線模塊,建立消息總線連接,從而建立設備之間的連接。步驟如下:
(1)初始化地址信息,獲得本地所有網卡的IP和其廣播地址;
(2)在所有網卡廣播心跳包;
(3)消息總線模塊收到心跳包,對所有未建立連接的同網段地址嘗試建立連接;
(4)連接建立,并初始化。
消息總線互連時序見圖4。
2.4.2消息訂閱
消息總線客戶端應用和服務端之間會訂閱消息,告訴消息總線服務端自身需要的消息類型,具體過程如下:
(1)消息總線收到消息注冊類型消息;
(2)消息總線解析該消息來源;

圖4 消息總線互連
(3)如來源是應用程序,連接為應用程序-消息總線類型,轉(4) ;否則,轉(6) ;
(4)本地為該應用程序-消息總線連接注冊消息;
(5)向其他消息總線注冊該消息類型,轉(7) ;
(6)本地為該消息總線-消息總線連接注冊消息;
(7)注冊結束。
消息訂閱流程如圖5所示。

圖5 消息訂閱流程
2.4.3消息傳遞
消息總線接收到消息后,根據消息的類型和目的地進行轉發,具體如下:
(1)收到消息;
(2)根據消息來源,如果是來自應用程序,則執行(3),否則轉(4) ;
(3)分發到其他消息總線;
(4)分發到除來源之外的其他訂閱該消息的應用程序。
消息傳遞流程如圖6所示。
3.1連接狀態轉換
消息總線的連接分為應用程序-消息總線連接、消息總線-消息總線連接。連接狀態可分為如下幾種。
(1)關閉:消息總線連接對象創建,未進行連接。客戶端發送握手消息,切換到“發送連接狀態握手信息”狀態;服務端接收握手消息,并發送握手ACK,切換到“接收連接狀態握手信息”狀態。
(2)發送連接狀態握手信息:客戶端狀態,連接建立,并且已經送出握手消息,接收握手ACK。收到握手ACK后,切換到“OK”狀態。
(3)接收連接狀態握手信息:服務端狀態,收到握手消息,并送出握手ACK。發送握手ACK后,切換到“OK”狀態。
(4) OK:正常工作狀態。
(5) Final:不收發任何消息。
消息總線連接狀態轉換如圖7所示。

圖6 消息傳遞

圖7 消息總線連接狀態轉換
3.2應用程序熱備同步
3.2.1進程初始化同步
當應用程序初始化完成以后,向主進程請求同步數據,主進程收到該請求之后,以此發送同步開始,同步內容(多個報文),同步結束報文。備進程接收來自主進程發來的同步消息,并完成同步過程,如圖8所示。

圖8 進程初始化同步過程
3.2.2運行過程中同步
在程序運行過程中,對輸入數據做同步操作。主進程收到消息后,通知備進程已接收到該消息,并進行下一步的處理。在備進程收到消息后先把消息放入緩存隊列中,直到收到主進程發送過來的確認消息后,才對消息進行下一步的處理,如圖9所示。

圖9 進程運行中主備同步
3.2.3失步后同步
在程序運行的過程中,有可能發生失步的情況,即備用進程丟失數據包,這時候需要重新同步,使得主備之間的數據再次保持一致。
當主進程接收消息的通知比備進程更早接收到該消息的時候,備進程等待該消息到來若干周期,如果在這段時間之內仍然沒有收到該消息,則判斷備進程處于失步狀態,請求重新同步數據。具體過程如圖10所示。

圖10 失步后主備同步
3.3應用程序主備切換
3.3.1搶占切換
當高優先級的進程在低優先級的進程運行之后再啟動,會發生主備切換過程,其切換過程如下:
(1)低優先級的進程作為主進程在運行;
(2)高優先級的進程開始運行,初始化為備進程,發送主進程查詢,等待主進程響應;
(3)主進程收到主進程查詢消息,并返回主進程確認消息;
(4)高優先級進程收到主進程確認消息,開始請求數據同步;
(5)數據同步完成;
(6)高優先級進程收到來自主進程的確認消息,比較該消息的優先級低于自己的優先級,則切換到主進程,并發送主進程確認消息;
(7)當低優先級進程收到該主進程確認消息后,切換到備進程。
切換過程遵循“先同步,再切換”的原則,保證數據同步,如圖11所示。
3.3.2異常情況切換
網絡發生異常或主進程異常后,同樣會發生主備切換(圖12),過程如下:
(1)備進程接收主進程確認消息超時;
(2)開始發送主進程查詢消息,等待主進程響應;
(3)主進程無響應;
(4)備進程切換為主進程開始運行,并發送主進程確認消息。

圖11 高優先級進程搶占主進程

圖12 異常后主備切換過程
3.3.3競爭切換
當兩個具有主備關系的應用程序同時啟動,會形成競爭關系,需要通過比較優先級來確定主進程。優先級信息存在于主進程查詢消息中。具體過程如圖13所示。

圖13 競爭切換
通過分析,建立UDP與TCP相結合的總線式通信,充分利用了UDP和TCP的特點,使調度優化系統通信軟件專注于解決業務問題,提高了內部通信的可用性和可靠性[12]。
通過對系統內部通信特點的分析,對消息總線的關鍵問題和算法進行建模,滿足了系統業務的需求,可以保證消息傳遞、互連、信息同步、主備切換等過程順利進行。
參考文獻:
[1]孫永生,張友鵬,趙宇坤.移動閉塞列車自動防護系統仿真平臺研究[J].計算機仿真,2012,29(9):371-374.
[2]高云波.基于高速鐵路的GSM-R通信無線覆蓋的可靠性分析[J].鐵道標準設計,2015,59(2):113-117.
[3]孫永生.基于移動閉塞理論的城市軌道交通ATP系統研究與仿真[D].蘭州:蘭州交通大學,2012.
[4]潘效玥.基于自律分散的城市軌道交通ATS的設計與實現[D].杭州:浙江大學,2013.
[5]羅雅允,陳永剛,張彩珍.Rijndael算法在CBTC安全通信協議中的應用[J].鐵道標準設計,2015,59(3):114-118.
[6]陽王東,周勇,王濤,等.一種基于消息總線的交通信息集成模型[J].計算機工程,2010,36(14):278-280,284.
[7]黃鯤,王堅,姚仰光,,等.OCS消息總線的測試與分析[J].中國科學技術大學學報,2007,37(6):662-669.
[8]周根火,陳辛怡,陸國政.完善信號微機監測系統功能[J].鐵道通信信號,2005,41(11):4-5.
[9]蔡海燕.鐵路通信系統節能分析[J].鐵道標準設計,2013,57 (6):147-150.
[10]梅瑜華,甘朝欽,龔龑,等.用戶側VLAN在光接入網中的應用[J].通信技術,2013,46(10):55-57.
[11]梅瑜華,甘朝欽,馬雪嬌.DHCP與Option82在接入網中的實現[J].通信技術,2013,46(8):58-60.
[12]王安義,孫偉強.鐵路TD-LTE專網系統解決方案[J].鐵道標準設計,2014,58(2):94-97,138.
Research on Key Problems and Algorithms of Internal Communication in Scheduling Optimization System
SUN Yong-sheng,GAO Xiao-fei,MEI Yu-hua,LIU De-yong
(United Science&Technology Co.,Ltd.,Hangzhou 310051,China)
Abstract:To study the key problems in internal communication in scheduling optimization system,the internal communication structure and characteristics of scheduling optimization system are analyzed,and key issues that affect communication are identified.Through analysis and modeling of these problems,the combined bus communication system of UDP and TCP is established,thus,the reliability of the system's internal communication is ensured and internal communications in the scheduling optimization system are fulfilled.
Key words:Heavy haul railway; Scheduling optimization system; Communication; Message bus
作者簡介:孫永生(1986—),男,工程師,2012年畢業于蘭州交通大學交通信息工程及控制專業,工學碩士,E-mail:sunyongsheng @ unitedmne.com。
基金項目:國家科技支撐計劃(2013BAG20B00)
收稿日期:2015-07-14;修回日期:2015-07-28
文章編號:1004-2954(2016) 03-0147-05
中圖分類號:U292.4+2
文獻標識碼:A
DOI:10.13238/j.issn.1004-2954.2016.03.030