褚文斌
軌道交通數據中心實時單向數據擺渡設計與實現*
褚文斌
(上海申通地鐵集團有限公司信息管理中心,201103,上海//工程師)
針對軌道交通數據中心業務的單向安全隔離環境,以保障生產控制數據的實時性與安全性為目標,提出了基于企業服務總線級聯、消息隊列數據推送和結合業務應用的通信模式采用過濾命令回傳的數據擺渡方式,以及實現生產控制系統實時數據傳輸的方法,并對其進行了測試。測試結果表明,該方法可應用于軌道交通領域生產網域和管理網域的數據隔離,以確保生產網域數據的安全性,并保障管理網域可獲得必要的數據。
軌道交通;數據中心;生產網域;管理網域;單向網閘擺渡
Author′s addressInformation Management&Administration Centre,Shanghai Shentong Metro Group Co.,Ltd.,201103,Shanghai,China
軌道交通數據中心的運營核心功能是自動化控制系統數據的實時刷新。從安全角度考慮,軌道交通生產網域至管理網域的數據必須進行單向數據擺渡,傳統實時等協議無法實現數據的制備和采集。
本文針對上海軌道交通數據中心業務在單向安全隔離環境下的特點,以保障生產控制數據的實時性與安全性為目標,提出基于企業服務總線級聯、消息隊列數據推送,以及結合業務應用的通信模式過濾命令回傳的數據擺渡方式,實現生產控制系統實時狀態數據傳輸的實施方法并給出驗證測試結果。
軌道交通行業數據中心利用ATS(列車自動監督)和CIOS(Central Integrated Operation System,控制中心一體化操作系統)的實時數據監視路網的關鍵設施設備狀態,如圖1所示。
按照信息安全技術架構管控分離的原則,生產網域部署生產控制系統進行行車控制,管理網域部署運營管理系統監測設備及運營狀態,生產網域與管理網域之間部署單向網閘進行系統隔離,并采用UDP(用戶數據報)傳輸數據,以禁止管理網域向生產網域發送控制指令。由于ATS和CIOS均為C/S(客戶機/服務器)架構的系統,單向網閘的部署阻斷了其服務端與客戶的實時、雙向通信,導致管理網域的系統無法獲取列車運行的實時狀態數據。
從應用角度,單向網閘的隔離作用是基于定向地“擺渡”數據。單向網閘切斷上層應用的通信協議,獲取原始的業務數據,并模擬人工的數據“拷貝”進行數據傳輸,進而阻斷兩個網絡的物理通路。為達到隔離的效果,其采用專用通信協議或存儲協議,徹底剝離了原有通信協議,將數據擺渡到另外一側后,再通過業務應用的通信方式送達目的地,以確保業務數據的完整性和一致性。
C/S結構的生產控制系統(如信號系統)由于采用了實時雙向通信技術,其實時狀態數據經單向網閘數據“剝離”和“拷貝”后,無法被管理網域系統獲取,需進一步完善數據傳輸機制,以確保系統間數據傳輸的實時性與安全性。

圖1 生產網域和管理網域業務需求與限制條件
1.1單向數據擺渡
按照信息安全技術架構要求,生產網域與管理網域之間應采用單向網閘進行物理隔離,管理網域只能采集和使用生產網域的數據,不能向生產網域提供數據。在單向隔離環境下的數據傳輸方式通常稱為單向數據擺渡。
1.2單向數據擺渡設計與實現方法
以信號系統ATS為例,實時單向數據擺渡的基本方法如圖2所示。生產網域和管理網域的邊界在單向網閘的中央,網閘兩側分別是物理隔離的兩個網絡,生產網域只允許原始業務數據單向推送至管理網域,且網閘本身不提供推送機制、數據包時序和通信管理。解決問題的關鍵是:①屏蔽單向網閘的影響,在生產網域和管理網域中構建雙向通信機制以維護生產控制系統的服務器與客戶端C/S之間的關系;②保持連續報文的實時性,控制通信延時。
為在ATS FEP(信號系統ATS通信前置)和ATS CFEP(信號系統路網通信前置)建立C/S雙向通信,圖2中的A和C部分在生產網域和管理網域的ESB(企業服務總線)模擬客戶端和服務器端,并構建串口通信連接,用以提供客戶端初始化回包通信、歷史數據請求回包通信的報文回傳,維護ATS FEP與ATSCFEP之間的整體通信鏈路。
為實現單向數據擺渡和控制通信延時,圖中B部分采用ESB剝離通信協議、MQ(消息隊列)組裝業務數據,并通過單向UDP級聯方式構建傳輸通道,完成實時單向數據擺渡。以ATS為例,數據擺渡建立在ESB/MQ服務器之間,如圖3所示。

圖2 實時單向數據擺渡方法

圖3 ATS系統數據擺渡整體方案
實施方法具體分為4個部分:
(1)信號系統ATSFEP與ESB服務器之間的C/ S關系,由ESB服務器開發ADAPTOR模擬客戶端;
(2)生產網域ESB服務器將自組報文拆包后提交MQ按順序組合,并通過單向網閘擺渡至管理網域的MQ服務器,由管理網域ESB服務器開發ADAPTOR模擬服務端;
(3)管理域的ESB服務器與客戶端建立C/S關系;
(4)由于單向網閘只提供1bit的回包,無法滿足自動化控制系統的通信要求,需增設串口通信機制,在管理網域提供TCP(傳輸控制協議)的偵聽線程和串口寫線程,在生產網域提供TCP寫線程和串口偵聽線程。生產網域和管理網域的ESB服務器按照正常通信請求拆分、組合TCP報文和串口報文,完成生產網域和管理網域之間的完整通信機制。其關鍵在于串口通信命令與事件的過濾與配對。
1.3單向擺渡中的通信設計與實現
在單向網閘隔離和ESB/MQ數據通信環境下,本文采用TCP與串行通信技術組合的方法,實現雙向通信和實時數據傳輸。
1.3.1 TCPSocket的偵聽線程和寫線程優化
利用W insock開發網絡應用程序時,從Socket中讀取數據或者向Socket寫入數據都是異步發生的,這樣不會阻斷程序中其它代碼的執行。在收到數據時,W insock會向應用程序發送相應的消息。這種訪問方式被稱作非阻塞式連接。其要求對事件做出響應,設置狀態機,且通常需要一個等待循環。但在實際的應用場景中,會出現請求報文和回應報文的事件不統一,其等待循環機制會制約通信的實時性。
本文采用阻塞式Socket通信,便于數據報文和控制報文的時序、事件對應拼接。阻塞式訪問類似于文件存取,可以將一個事件的請求和回應報文進行對應,便于多線程順序執行,使原本阻斷的通信有序封裝。在讀取數據或寫入數據時,讀取和寫入函數將一直等待相應的操作完成后才返回;若未能成功執行,則會拋出相應的異常。
1.3.2 串口通信的線程讀寫
串口通信主要是傳遞管理網域中的客戶端通信指令,以獲取生產網域中服務器提供的實時數據和歷史數據。如果生產網域服務器沒有收到LOAD_DEVICE_STATUS或者LOAD_HISTORY_TG_DATA指令,則無法啟動數據的傳送。所以,這兩個指令在應用通信協議中起到初始化通信過程的作用。
這兩個指令須由位于管理網域的客戶端發起,采用ESB服務總線技術的模擬客戶端無法知道實際應用中何時啟動真實客戶端以及客戶端通信是否中斷必須重啟,且模擬客戶端無法知曉真實客戶端是否需要歷史數據,以及歷史數據提供的時間范圍和應用范圍。
由于生產網域的服務器禁止直接采用TCP/IP協議與管理網域進行反向通信,本文采用低帶寬的串口方式回傳客戶端合法的控制命令。串口通信的應用主要包括:
(1)過濾通信命令,即只允許LOAD_DEVICE_ STATUS和LOAD_HISTORY_TG_DATA兩個指令通過,避免外部非法數據和指令進入生產網域;
(2)利用阻塞式Socket線程,在生產網域按照通信時間拼合模擬客戶端對服務端的通信回包,讓服務端認為模擬客戶端是在同一網段的正常客戶端。
信號系統ATS自組報文,只有兩個報文是必須由管理網域的客戶端向生產網域的實時通信回包,如表1所示。
應用客戶端在創建內存實例時,首先發起LOAD_DEVICE_STATUS,然后服務端發起數據傳送;當C/S關系的心跳失去時,發起DEVICE_STATUS_BITMAP,進行全部數據重傳。當需要歷史數據時,客戶端發起LOAD_HISTORY_TG_DATA,然后服務端進行歷史數據傳送。中間的刷新報文、傳輸報文等共有16項,由ESB服務提供ADAPTOR模擬,以維護C/S關系。
在單向網閘隔離環境下,驗證ATS FEP和ATSCFEP系統之間的實時數據傳輸性能,并要求單線信號系統ATS數據擺渡報文>200條/s、時延≤2 s。測試環境如表2所示。

表1 ATS測試命令及應用環境
串口控制命令回包后啟動ATS服務器數據傳輸,以驗證ESB+TLQ+單向網閘+ESB+TLQ傳輸的速率。
由客戶端發出LOAD_DEVICE_STATUS請求,ATS模擬服務器啟動數據傳送進程。由模擬ATS服務器(Socket服務端)往中間件服務器發送業務系統的Socket模擬報文,發送頻率分別為100條/s、200條/s、400條/s、1 000條/s(實際情況為200條/s),采用的測試報文如表3所示。

表2 測試環境清單

表3 測試報文清單
測試過程如下:
(1)準備一條LOAD_DEVICE_STATUS報文請求,組合NETWORK_ALIVE_STATUS的模擬報文;
(2)發送1 000萬條數據(正常的DEVICE_STATUS_CHANGE/TRAIN_INDICATION_UPDATE/ CBTC_TRAIN_INDICATION_UPDATE/MESSAGE_POLLING組合);
(3)啟動Socket Server、再啟動ESB和TLQ服務(即MQ服務);
(4)測試Socket Server發起NETWORK_ ALIVE_STATUS報文,并在網閘兩側分別記錄開始發送時間和接收完成時間。測試結果見表4。

表4 測試結果
實際報文需求為200條/s,但按照1 000條/s測試報文。經測試,1 000萬條無對包,最大延時為0.513 s,滿足自動化控制系統界面刷新≤2 s的要求。
本文基于上海軌道交通數據中心的單向安全隔離環境,采用阻塞式Socket通信的ESB構建了基于UDP的級聯和ESB/MQ串口通信回包方法,并對其進行了測試。測試結果表明,其功能與性能完全滿足業務需求,實現了生產網域和管理網域間安全的雙向通信與實時的數據傳輸,推廣應用基本可行。
[1]祝慶.移動數據庫系統同步機制的研究與實現[D].北京:中國科學院軟件研究所,2004.
[2]蔣敏.基于網絡隔離的異構數據庫同步技術的研究與實現[D].杭州:浙江大學,2005.
[3]田原.基于SyncML協議的移動多終端信息同步的設計與實現[D].成都:電子科技大學,2013.
[4]邵江,田尚志,臧萬軍.高速公路隧道信息化施工管理探討[J].西南公路,2009(4):179-181.
[5]夏雪剛,孔育琴,趙海明.基于Web Service的數據庫同步系統的設計與實現研究[J].自動化與儀器儀表,2016(6):170-171.
[6]李立亞.一種基于記錄標記的數據庫同步算法磁[J].計算機與數字工程,2015(6):946-952.
[7]方恒明.移動終端與服務器數據同步機制的應用研究[D].大連:大連海事大學,2013.
[8]CHEN M,HU C,CHANG T.The research on optimal parking space choice model in parking lots[C]//Computer Research and Development(ICCRD),2011 3rd International Conference on.IEEE,2011,2:93-97.
[9]MEIZ,TIAN Y.Optim ized combination model and algorithm of parking guidance information configuration[J].EURASIP Journal on W ireless Communications and Networking,2011(1):1-9.
Research of Real-time Data Signal-direction Ferry in the Data Centre of ShanghaiM etro
CHUWenbin
Regarding the one-way safety isolation environment at DC of Shanghaimetro,a set of data ferrying methods is introduced,it incorporates the cascade connection of enterprise service bus(ESB),raw data push ofmessage queue,and data backhaul through filter based on communication modes.The purpose of the data ferryingmethod is to execute the real-time data transm ission in production domain,and test the data transm ission.The result shows that thismethod could keep the security of these production control data,in order to ensure the necessary date being obtained by management domain.
rail transit;data center(DC);production domain;management domain;one-way ferrying
U231.7
10.16037/j.1007-869x.2017.07.009
2017-01-25)
*上海市發改委項目(31010463175586420151A101003)