褚文斌
軌道交通數(shù)據(jù)中心實時單向數(shù)據(jù)擺渡設(shè)計與實現(xiàn)*
褚文斌
(上海申通地鐵集團有限公司信息管理中心,201103,上海//工程師)
針對軌道交通數(shù)據(jù)中心業(yè)務(wù)的單向安全隔離環(huán)境,以保障生產(chǎn)控制數(shù)據(jù)的實時性與安全性為目標,提出了基于企業(yè)服務(wù)總線級聯(lián)、消息隊列數(shù)據(jù)推送和結(jié)合業(yè)務(wù)應(yīng)用的通信模式采用過濾命令回傳的數(shù)據(jù)擺渡方式,以及實現(xiàn)生產(chǎn)控制系統(tǒng)實時數(shù)據(jù)傳輸?shù)姆椒?,并對其進行了測試。測試結(jié)果表明,該方法可應(yīng)用于軌道交通領(lǐng)域生產(chǎn)網(wǎng)域和管理網(wǎng)域的數(shù)據(jù)隔離,以確保生產(chǎn)網(wǎng)域數(shù)據(jù)的安全性,并保障管理網(wǎng)域可獲得必要的數(shù)據(jù)。
軌道交通;數(shù)據(jù)中心;生產(chǎn)網(wǎng)域;管理網(wǎng)域;單向網(wǎng)閘擺渡
Author′s addressInformation Management&Administration Centre,Shanghai Shentong Metro Group Co.,Ltd.,201103,Shanghai,China
軌道交通數(shù)據(jù)中心的運營核心功能是自動化控制系統(tǒng)數(shù)據(jù)的實時刷新。從安全角度考慮,軌道交通生產(chǎn)網(wǎng)域至管理網(wǎng)域的數(shù)據(jù)必須進行單向數(shù)據(jù)擺渡,傳統(tǒng)實時等協(xié)議無法實現(xiàn)數(shù)據(jù)的制備和采集。
本文針對上海軌道交通數(shù)據(jù)中心業(yè)務(wù)在單向安全隔離環(huán)境下的特點,以保障生產(chǎn)控制數(shù)據(jù)的實時性與安全性為目標,提出基于企業(yè)服務(wù)總線級聯(lián)、消息隊列數(shù)據(jù)推送,以及結(jié)合業(yè)務(wù)應(yīng)用的通信模式過濾命令回傳的數(shù)據(jù)擺渡方式,實現(xiàn)生產(chǎn)控制系統(tǒng)實時狀態(tài)數(shù)據(jù)傳輸?shù)膶嵤┓椒ú⒔o出驗證測試結(jié)果。
軌道交通行業(yè)數(shù)據(jù)中心利用ATS(列車自動監(jiān)督)和CIOS(Central Integrated Operation System,控制中心一體化操作系統(tǒng))的實時數(shù)據(jù)監(jiān)視路網(wǎng)的關(guān)鍵設(shè)施設(shè)備狀態(tài),如圖1所示。
按照信息安全技術(shù)架構(gòu)管控分離的原則,生產(chǎn)網(wǎng)域部署生產(chǎn)控制系統(tǒng)進行行車控制,管理網(wǎng)域部署運營管理系統(tǒng)監(jiān)測設(shè)備及運營狀態(tài),生產(chǎn)網(wǎng)域與管理網(wǎng)域之間部署單向網(wǎng)閘進行系統(tǒng)隔離,并采用UDP(用戶數(shù)據(jù)報)傳輸數(shù)據(jù),以禁止管理網(wǎng)域向生產(chǎn)網(wǎng)域發(fā)送控制指令。由于ATS和CIOS均為C/S(客戶機/服務(wù)器)架構(gòu)的系統(tǒng),單向網(wǎng)閘的部署阻斷了其服務(wù)端與客戶的實時、雙向通信,導(dǎo)致管理網(wǎng)域的系統(tǒng)無法獲取列車運行的實時狀態(tài)數(shù)據(jù)。
從應(yīng)用角度,單向網(wǎng)閘的隔離作用是基于定向地“擺渡”數(shù)據(jù)。單向網(wǎng)閘切斷上層應(yīng)用的通信協(xié)議,獲取原始的業(yè)務(wù)數(shù)據(jù),并模擬人工的數(shù)據(jù)“拷貝”進行數(shù)據(jù)傳輸,進而阻斷兩個網(wǎng)絡(luò)的物理通路。為達到隔離的效果,其采用專用通信協(xié)議或存儲協(xié)議,徹底剝離了原有通信協(xié)議,將數(shù)據(jù)擺渡到另外一側(cè)后,再通過業(yè)務(wù)應(yīng)用的通信方式送達目的地,以確保業(yè)務(wù)數(shù)據(jù)的完整性和一致性。
C/S結(jié)構(gòu)的生產(chǎn)控制系統(tǒng)(如信號系統(tǒng))由于采用了實時雙向通信技術(shù),其實時狀態(tài)數(shù)據(jù)經(jīng)單向網(wǎng)閘數(shù)據(jù)“剝離”和“拷貝”后,無法被管理網(wǎng)域系統(tǒng)獲取,需進一步完善數(shù)據(jù)傳輸機制,以確保系統(tǒng)間數(shù)據(jù)傳輸?shù)膶崟r性與安全性。
圖1 生產(chǎn)網(wǎng)域和管理網(wǎng)域業(yè)務(wù)需求與限制條件
1.1單向數(shù)據(jù)擺渡
按照信息安全技術(shù)架構(gòu)要求,生產(chǎn)網(wǎng)域與管理網(wǎng)域之間應(yīng)采用單向網(wǎng)閘進行物理隔離,管理網(wǎng)域只能采集和使用生產(chǎn)網(wǎng)域的數(shù)據(jù),不能向生產(chǎn)網(wǎng)域提供數(shù)據(jù)。在單向隔離環(huán)境下的數(shù)據(jù)傳輸方式通常稱為單向數(shù)據(jù)擺渡。
1.2單向數(shù)據(jù)擺渡設(shè)計與實現(xiàn)方法
以信號系統(tǒng)ATS為例,實時單向數(shù)據(jù)擺渡的基本方法如圖2所示。生產(chǎn)網(wǎng)域和管理網(wǎng)域的邊界在單向網(wǎng)閘的中央,網(wǎng)閘兩側(cè)分別是物理隔離的兩個網(wǎng)絡(luò),生產(chǎn)網(wǎng)域只允許原始業(yè)務(wù)數(shù)據(jù)單向推送至管理網(wǎng)域,且網(wǎng)閘本身不提供推送機制、數(shù)據(jù)包時序和通信管理。解決問題的關(guān)鍵是:①屏蔽單向網(wǎng)閘的影響,在生產(chǎn)網(wǎng)域和管理網(wǎng)域中構(gòu)建雙向通信機制以維護生產(chǎn)控制系統(tǒng)的服務(wù)器與客戶端C/S之間的關(guān)系;②保持連續(xù)報文的實時性,控制通信延時。
為在ATS FEP(信號系統(tǒng)ATS通信前置)和ATS CFEP(信號系統(tǒng)路網(wǎng)通信前置)建立C/S雙向通信,圖2中的A和C部分在生產(chǎn)網(wǎng)域和管理網(wǎng)域的ESB(企業(yè)服務(wù)總線)模擬客戶端和服務(wù)器端,并構(gòu)建串口通信連接,用以提供客戶端初始化回包通信、歷史數(shù)據(jù)請求回包通信的報文回傳,維護ATS FEP與ATSCFEP之間的整體通信鏈路。
為實現(xiàn)單向數(shù)據(jù)擺渡和控制通信延時,圖中B部分采用ESB剝離通信協(xié)議、MQ(消息隊列)組裝業(yè)務(wù)數(shù)據(jù),并通過單向UDP級聯(lián)方式構(gòu)建傳輸通道,完成實時單向數(shù)據(jù)擺渡。以ATS為例,數(shù)據(jù)擺渡建立在ESB/MQ服務(wù)器之間,如圖3所示。
圖2 實時單向數(shù)據(jù)擺渡方法
圖3 ATS系統(tǒng)數(shù)據(jù)擺渡整體方案
實施方法具體分為4個部分:
(1)信號系統(tǒng)ATSFEP與ESB服務(wù)器之間的C/ S關(guān)系,由ESB服務(wù)器開發(fā)ADAPTOR模擬客戶端;
(2)生產(chǎn)網(wǎng)域ESB服務(wù)器將自組報文拆包后提交MQ按順序組合,并通過單向網(wǎng)閘擺渡至管理網(wǎng)域的MQ服務(wù)器,由管理網(wǎng)域ESB服務(wù)器開發(fā)ADAPTOR模擬服務(wù)端;
(3)管理域的ESB服務(wù)器與客戶端建立C/S關(guān)系;
(4)由于單向網(wǎng)閘只提供1bit的回包,無法滿足自動化控制系統(tǒng)的通信要求,需增設(shè)串口通信機制,在管理網(wǎng)域提供TCP(傳輸控制協(xié)議)的偵聽線程和串口寫線程,在生產(chǎn)網(wǎng)域提供TCP寫線程和串口偵聽線程。生產(chǎn)網(wǎng)域和管理網(wǎng)域的ESB服務(wù)器按照正常通信請求拆分、組合TCP報文和串口報文,完成生產(chǎn)網(wǎng)域和管理網(wǎng)域之間的完整通信機制。其關(guān)鍵在于串口通信命令與事件的過濾與配對。
1.3單向擺渡中的通信設(shè)計與實現(xiàn)
在單向網(wǎng)閘隔離和ESB/MQ數(shù)據(jù)通信環(huán)境下,本文采用TCP與串行通信技術(shù)組合的方法,實現(xiàn)雙向通信和實時數(shù)據(jù)傳輸。
1.3.1 TCPSocket的偵聽線程和寫線程優(yōu)化
利用W insock開發(fā)網(wǎng)絡(luò)應(yīng)用程序時,從Socket中讀取數(shù)據(jù)或者向Socket寫入數(shù)據(jù)都是異步發(fā)生的,這樣不會阻斷程序中其它代碼的執(zhí)行。在收到數(shù)據(jù)時,W insock會向應(yīng)用程序發(fā)送相應(yīng)的消息。這種訪問方式被稱作非阻塞式連接。其要求對事件做出響應(yīng),設(shè)置狀態(tài)機,且通常需要一個等待循環(huán)。但在實際的應(yīng)用場景中,會出現(xiàn)請求報文和回應(yīng)報文的事件不統(tǒng)一,其等待循環(huán)機制會制約通信的實時性。
本文采用阻塞式Socket通信,便于數(shù)據(jù)報文和控制報文的時序、事件對應(yīng)拼接。阻塞式訪問類似于文件存取,可以將一個事件的請求和回應(yīng)報文進行對應(yīng),便于多線程順序執(zhí)行,使原本阻斷的通信有序封裝。在讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)時,讀取和寫入函數(shù)將一直等待相應(yīng)的操作完成后才返回;若未能成功執(zhí)行,則會拋出相應(yīng)的異常。
1.3.2 串口通信的線程讀寫
串口通信主要是傳遞管理網(wǎng)域中的客戶端通信指令,以獲取生產(chǎn)網(wǎng)域中服務(wù)器提供的實時數(shù)據(jù)和歷史數(shù)據(jù)。如果生產(chǎn)網(wǎng)域服務(wù)器沒有收到LOAD_DEVICE_STATUS或者LOAD_HISTORY_TG_DATA指令,則無法啟動數(shù)據(jù)的傳送。所以,這兩個指令在應(yīng)用通信協(xié)議中起到初始化通信過程的作用。
這兩個指令須由位于管理網(wǎng)域的客戶端發(fā)起,采用ESB服務(wù)總線技術(shù)的模擬客戶端無法知道實際應(yīng)用中何時啟動真實客戶端以及客戶端通信是否中斷必須重啟,且模擬客戶端無法知曉真實客戶端是否需要歷史數(shù)據(jù),以及歷史數(shù)據(jù)提供的時間范圍和應(yīng)用范圍。
由于生產(chǎn)網(wǎng)域的服務(wù)器禁止直接采用TCP/IP協(xié)議與管理網(wǎng)域進行反向通信,本文采用低帶寬的串口方式回傳客戶端合法的控制命令。串口通信的應(yīng)用主要包括:
(1)過濾通信命令,即只允許LOAD_DEVICE_ STATUS和LOAD_HISTORY_TG_DATA兩個指令通過,避免外部非法數(shù)據(jù)和指令進入生產(chǎn)網(wǎng)域;
(2)利用阻塞式Socket線程,在生產(chǎn)網(wǎng)域按照通信時間拼合模擬客戶端對服務(wù)端的通信回包,讓服務(wù)端認為模擬客戶端是在同一網(wǎng)段的正??蛻舳?。
信號系統(tǒng)ATS自組報文,只有兩個報文是必須由管理網(wǎng)域的客戶端向生產(chǎn)網(wǎng)域的實時通信回包,如表1所示。
應(yīng)用客戶端在創(chuàng)建內(nèi)存實例時,首先發(fā)起LOAD_DEVICE_STATUS,然后服務(wù)端發(fā)起數(shù)據(jù)傳送;當(dāng)C/S關(guān)系的心跳失去時,發(fā)起DEVICE_STATUS_BITMAP,進行全部數(shù)據(jù)重傳。當(dāng)需要歷史數(shù)據(jù)時,客戶端發(fā)起LOAD_HISTORY_TG_DATA,然后服務(wù)端進行歷史數(shù)據(jù)傳送。中間的刷新報文、傳輸報文等共有16項,由ESB服務(wù)提供ADAPTOR模擬,以維護C/S關(guān)系。
在單向網(wǎng)閘隔離環(huán)境下,驗證ATS FEP和ATSCFEP系統(tǒng)之間的實時數(shù)據(jù)傳輸性能,并要求單線信號系統(tǒng)ATS數(shù)據(jù)擺渡報文>200條/s、時延≤2 s。測試環(huán)境如表2所示。
表1 ATS測試命令及應(yīng)用環(huán)境
串口控制命令回包后啟動ATS服務(wù)器數(shù)據(jù)傳輸,以驗證ESB+TLQ+單向網(wǎng)閘+ESB+TLQ傳輸?shù)乃俾省?/p>
由客戶端發(fā)出LOAD_DEVICE_STATUS請求,ATS模擬服務(wù)器啟動數(shù)據(jù)傳送進程。由模擬ATS服務(wù)器(Socket服務(wù)端)往中間件服務(wù)器發(fā)送業(yè)務(wù)系統(tǒng)的Socket模擬報文,發(fā)送頻率分別為100條/s、200條/s、400條/s、1 000條/s(實際情況為200條/s),采用的測試報文如表3所示。
表2 測試環(huán)境清單
表3 測試報文清單
測試過程如下:
(1)準備一條LOAD_DEVICE_STATUS報文請求,組合NETWORK_ALIVE_STATUS的模擬報文;
(2)發(fā)送1 000萬條數(shù)據(jù)(正常的DEVICE_STATUS_CHANGE/TRAIN_INDICATION_UPDATE/ CBTC_TRAIN_INDICATION_UPDATE/MESSAGE_POLLING組合);
(3)啟動Socket Server、再啟動ESB和TLQ服務(wù)(即MQ服務(wù));
(4)測試Socket Server發(fā)起NETWORK_ ALIVE_STATUS報文,并在網(wǎng)閘兩側(cè)分別記錄開始發(fā)送時間和接收完成時間。測試結(jié)果見表4。
表4 測試結(jié)果
實際報文需求為200條/s,但按照1 000條/s測試報文。經(jīng)測試,1 000萬條無對包,最大延時為0.513 s,滿足自動化控制系統(tǒng)界面刷新≤2 s的要求。
本文基于上海軌道交通數(shù)據(jù)中心的單向安全隔離環(huán)境,采用阻塞式Socket通信的ESB構(gòu)建了基于UDP的級聯(lián)和ESB/MQ串口通信回包方法,并對其進行了測試。測試結(jié)果表明,其功能與性能完全滿足業(yè)務(wù)需求,實現(xiàn)了生產(chǎn)網(wǎng)域和管理網(wǎng)域間安全的雙向通信與實時的數(shù)據(jù)傳輸,推廣應(yīng)用基本可行。
[1]祝慶.移動數(shù)據(jù)庫系統(tǒng)同步機制的研究與實現(xiàn)[D].北京:中國科學(xué)院軟件研究所,2004.
[2]蔣敏.基于網(wǎng)絡(luò)隔離的異構(gòu)數(shù)據(jù)庫同步技術(shù)的研究與實現(xiàn)[D].杭州:浙江大學(xué),2005.
[3]田原.基于SyncML協(xié)議的移動多終端信息同步的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2013.
[4]邵江,田尚志,臧萬軍.高速公路隧道信息化施工管理探討[J].西南公路,2009(4):179-181.
[5]夏雪剛,孔育琴,趙海明.基于Web Service的數(shù)據(jù)庫同步系統(tǒng)的設(shè)計與實現(xiàn)研究[J].自動化與儀器儀表,2016(6):170-171.
[6]李立亞.一種基于記錄標記的數(shù)據(jù)庫同步算法磁[J].計算機與數(shù)字工程,2015(6):946-952.
[7]方恒明.移動終端與服務(wù)器數(shù)據(jù)同步機制的應(yīng)用研究[D].大連:大連海事大學(xué),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)
*上海市發(fā)改委項目(31010463175586420151A101003)