王大鵬 余鵬
摘 要:為了提高軌道交通運行生產管理系統內部各個子系統的的通信效率,采用ZeroMQ消息中間件技術和輕量級的json數據交換格式,設計了一種有效的分布式網絡消息通信架構。該架構用在軌道交通運行生產管理系統,提高了數據的傳輸效率;解決了系統內部各個子系統之間的通信效率問題,并且可以勝任不斷變化的環境和任務要求,具有廣泛的適用性和良好的應用性。
關鍵詞:軌道交通運行生產管理系統;消息中間件; ZeroMQ;
引 言 軌道交通供電運行安全生產管理系統從整條軌道交通線路全面考慮,實現供電系統整體的運行安全管理,滿足軌道交通供電系統安全、規范、可靠的運行要求。系統包括工作票系統、操作票系統、巡視系統、數據采集與監視系統(SCADA系統)、地線管理系統等主要組成部分。各個子系統之間往往需要有高效的信息交互,如果使用一對一的通信方式,不但影響系統的通信效率,還影響系統的運行速度;為了解決這個問題,本方案引用消息中間件和SOA的概念,避免了一對一通信的復雜網絡結構,通過成熟的ZEROMQ中間件技術,運用面向服務的思想,完美實現了軌道交通供電運行安全生產管理系統內部的高效通信。
1主要技術介紹:
1.1 ZeroMQ的簡介
ZeroMQ是一種基于消息隊列的多線程網絡庫。其對套接字類型、連接處理、幀、甚至路由的底層細節進行抽象,提供跨越多種傳輸協議的套接字,ZeroMQ是網絡通信中新的一層,介于應用層和傳輸層之間(按照TCP/IP劃分),其是一個可伸縮層,可并行運行,分散在分布式系統間。可以用來構建多對多的連接模式,如發布-訂閱、任務分發、請求-應答等,也可以構建由單個模式組合成的復雜框架。ZeroMQ的快速足以勝任任何集群應用產品。它的異步I/O機制讓你能夠構建多核應用程序,完成異步消息處理任務。ZeroMQ有著眾多語言支持,并能在幾乎所有的操作系統上運行。
1.2 JSON的簡介
JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式。它基于 ECMAScript (w3c制定的js規范)的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。
2 技術方案
2.1 企業信息服務總線軟件架構設計
本方案采用“SOA”的設計思想,構建出基于ZeroMQ的企業服務總線,總體分層結構圖如下所示:
、
2.2企業信息服務總線實現的主要功能:
2.2.1信息交換路由服務
企業信息服務總線能夠根據信息內容,在不同應用和服務之間進行信息傳輸和路由。
2.2.2通信協議轉換功能
企業信息服務總線能夠實現各個系統或應用之間的通信協議轉換,支持Http、Ftp、Web Service、MQ、JMS等多種數據傳輸協議的相互轉換。
2.2.3消息格式轉換功能
企業信息服務總線能夠實現各個系統或應用之間的消息格式轉換,通過輸入、輸出消息字典的字段對應設置,可將消息轉換成用戶需要的任何格式。
3 功能實現
基于ZeroMQ的企業信息服務總線,主要處理流程有兩種:請求/應答通信方式和發布/訂閱通信方式,其它處理流程一般是這兩種的復雜組合,下面以申請操作票票號和設備狀態變位的具體實現過程舉例說明:
3.1 功能描述:客戶A在系統A的客戶端上申請操作票票號,企業服務器總線收到信息后把申請信息發送給目標系統:操作票系統,并返回操作票系統的應答給系統A的客戶端。
具體實現過程如下:
3.1.1客戶A在系統B的客戶端上申請開操作票時,首先要申請票號,系統B的客戶端調用通用接口,并填入正確的信息格式,目標系統和源系統一定要填對,不然會影響功能的實現,組成正確的信息json包并發送到企業服務總線;
3.1.2企業服務總線先通過消息格式轉換功能模塊,解析出目標系統:操作票系統和源系統:系統B的客戶端,然后根據目標系統:操作票系統的輸入信息格式組包,信息交換路由模塊把系統B的客戶端的請求經一定格式組包后發送到目標系統“操作票系統”;
3.1.3“操作票系統”解析命令字后并處理收到的請求,得到結果后更改目標系統和源系統為系統B的客戶端和操作票系統,再通過信息交換路由模塊把結果發送給系統B的客戶端;
3.2 功能描述:數據采集與監視系統收到設備A的變位信息,如果系統B的客戶端在企業服務總線訂閱了設備A的變位服務,則企業服務器總線會把設備A的變位信息通知給系統B的客戶端;否則,則不發送。
具體實現過程如下:
3.2.1數據采集與監視系統采集到設備A的變位信息后記錄并把變位信息推送給企業服務總線;
3.2.2如果在企業服務總線訂閱設備的變位服務的隊列列表中包含系統B的客戶端,則企業服務器總線會把設備A的變位信息組成系統B的數據信息格式,并標識好源系統和目標系統,通過信息交換路由模塊推送給系統B的客戶端,系統B的客戶端收到后可以做相應的提示或者顯示等處理。
4 結束語
本文給出了基于ZeroMQ的企業信息服務總線在軌道交通運行生產管理系統中的應用方案。實現了軌道交通運行生產管理系統各子系統之間的數據高速通信,系統穩定可靠。同時由于該方案具有智能化、適應不同環境要求、可靠性好、效率高和易于擴展等特點,也可滿足多種不同環境的工業系統部署要求,具有良好的應用前景。