趙顯瓊,賀廣宇,康仁偉,戴 博
(1.中國鐵道科學研究院 通信信號研究所,北京 100081;2.北京市華鐵信息技術(shù)開發(fā)總公司, 北京 100081)
ATP車載設(shè)備管理信息系統(tǒng)數(shù)據(jù)同步策略研究與實現(xiàn)
趙顯瓊1,賀廣宇1,康仁偉1,戴 博2
(1.中國鐵道科學研究院 通信信號研究所,北京 100081;2.北京市華鐵信息技術(shù)開發(fā)總公司, 北京 100081)
本文根據(jù)ATP車載設(shè)備管理信息系統(tǒng)的特點,分析了該系統(tǒng)對同步策略的各類需求,設(shè)計和實現(xiàn)了基于Oacle數(shù)據(jù)庫與MSMQ技術(shù)相結(jié)合的兩層分級數(shù)據(jù)同步策略RAILS-SYN,保證了數(shù)據(jù)傳輸?shù)膶崟r性、一致性和完整性,為系統(tǒng)分級分布式管理的數(shù)據(jù)同步提供了重要支撐。
ATP車載設(shè)備管理信息系統(tǒng);數(shù)據(jù)同步策略;Oracle
ATP車載設(shè)備管理信息系統(tǒng)(以下簡稱:ATPMIS)是管理ATP運用履歷和運維作業(yè)流程的管理信息系統(tǒng)[1]。系統(tǒng)涵蓋鐵路總公司、鐵路局、電務(wù)段、車間工區(qū)的所有業(yè)務(wù)需求,兼容多種ATP設(shè)備類型的管理。為實現(xiàn)ATP全路調(diào)配和網(wǎng)絡(luò)化維修管理,達到智能數(shù)據(jù)采集、高效無紙檢修、作業(yè)流程卡控、科學匯總統(tǒng)計,各級數(shù)據(jù)的全路統(tǒng)一和實時同步共享是重要的基礎(chǔ)和保障。
ATPMIS由鐵路總公司級服務(wù)器和各鐵路局服務(wù)器兩級系統(tǒng)構(gòu)成,是典型的分布式管理信息系統(tǒng),各鐵路局級服務(wù)器具有獨立運行數(shù)據(jù)庫,并保持與鐵路總公司級數(shù)據(jù)的實時一致性,如圖1所示。數(shù)據(jù)庫的正常運行和數(shù)據(jù)的一致性影響著管理系統(tǒng)的執(zhí)行效率和可用性。
為解決ATPMIS數(shù)據(jù)同步的需求,本文提出分層數(shù)據(jù)同步策略(以下簡稱:RAILS-SYN)。在ATPMIS對數(shù)據(jù)同步需求的基礎(chǔ)上,提出了RAILSSYN的總體架構(gòu)設(shè)計;選取MSMQ同步策略為基礎(chǔ)[2],進行Oracle數(shù)據(jù)庫應答策略的設(shè)計改造,完成消息傳輸層設(shè)計;以消息傳輸層的文件接口協(xié)議為輸入,實現(xiàn)實時文件解析與Oracle數(shù)據(jù)打包和解包功能,完成應用層設(shè)計。
2.1 ATPMIS數(shù)據(jù)同步需求
ATPMIS分為鐵路總公司和鐵路局兩級系統(tǒng),數(shù)據(jù)庫分別獨立。為實現(xiàn)數(shù)據(jù)全路實時一致,需要各獨立數(shù)據(jù)庫之間具備實時數(shù)據(jù)同步傳輸能力。
由于系統(tǒng)涉及數(shù)據(jù)范圍廣泛,通過對ATPMIS不同業(yè)務(wù)數(shù)據(jù)的分類匯總,按照對數(shù)據(jù)同步需求不同,可將數(shù)據(jù)分為3類:實時同步數(shù)據(jù)、定時同步數(shù)據(jù)、即時調(diào)用同步數(shù)據(jù)。
ATPMIS對數(shù)據(jù)的管理采用Oracle數(shù)據(jù)庫,單個數(shù)據(jù)模型數(shù)據(jù)量龐大,要求對數(shù)據(jù)進行拆分傳輸。同時,由于數(shù)據(jù)的不完整將直接影響數(shù)據(jù)應用和業(yè)務(wù)的正常執(zhí)行,應采取相應措施保證同步數(shù)據(jù)的完整性。
2.2 RAILS-SYN兩層架構(gòu)
通過對ATPMIS數(shù)據(jù)同步需求的分析,采用應用層和傳輸層分離機制,設(shè)計兩層同步策略RAILSSYN,采用應答和定時重傳方式,保證同步數(shù)據(jù)的完整性。
應用層主要負責完成與Oracle直接相關(guān)的同步數(shù)據(jù)識別、抽取、打包、解包、插入、與傳輸層對接的功能。傳輸層主要完成指定數(shù)據(jù)的點對點傳輸,及數(shù)據(jù)傳輸應答重發(fā)功能。具體設(shè)計如圖2所示。
應用層采用方法調(diào)用機制,通過實時檢測同步需求,調(diào)用相應的應用方法執(zhí)行同步行為;傳輸層采用MSMQ(消息隊列傳輸協(xié)議),通過加入Oracle應答機制,形成RAILS-MQ傳輸平臺。兩層配合共同完成ATPMIS業(yè)務(wù)數(shù)據(jù)的不同同步需求。
圖1 ATPMIS分布式系統(tǒng)結(jié)構(gòu)圖
RAILS-SYN采用MSMQ為基礎(chǔ),為保證同步數(shù)據(jù)的完整性,加入了基于Oracle數(shù)據(jù)庫的應答和定時重傳機制。
圖2 RAILS-SYN同步傳輸機制架構(gòu)
在MSMQ的基礎(chǔ)上,RAILS-MQ加入Oracle數(shù)據(jù)庫的應答策略,如圖3所示。在本地Oracle數(shù)據(jù)庫中建立File_Export和File_Receive兩張表,在這兩張表中各維護一個狀態(tài)變量: export_file_status和receive_file_status。通過周期檢測這兩個狀態(tài)變量的值,決定執(zhí)行發(fā)送和重發(fā)行為,通過對方的MSMQ執(zhí)行接收行為。
WCF(Windows Communication Foundation)是一種構(gòu)建分布式系統(tǒng)的標準應用接口,能夠提供即插即用的基礎(chǔ)管道,實現(xiàn)平臺無關(guān)的遠程調(diào)用[3]。本文采用WCF實現(xiàn)所有遠程調(diào)用完成本地數(shù)據(jù)庫的相關(guān)操作。
圖3 RAILS-MQ原理圖
在接收行為完成時,調(diào)用對方的WCF方法,對對方Oracle數(shù)據(jù)庫中狀態(tài)變量進行維護操作;如果在規(guī)定時間內(nèi),本地已發(fā)送文件的變量狀態(tài)仍沒有得到更新,則執(zhí)行該文件的重發(fā)行為。通過應答策略的加入,防止了錯發(fā)、漏發(fā)行為的發(fā)生,保證了文件的完整性和一致性。
在傳輸層的基礎(chǔ)上,應用層主要用于檢測需要同步的數(shù)據(jù),實時或定時觸發(fā)消息發(fā)送行為。其主要觸發(fā)信息來源有3種:(1)數(shù)據(jù)庫中出現(xiàn)需要即時同步的數(shù)據(jù)時,通過實時檢測同步數(shù)據(jù)表同步標志位實現(xiàn);(2)定時同步表的計時器完成一個周期的計時,通過實時接收定時器的反饋信息實現(xiàn);(3)通過WCF相關(guān)同步方法被調(diào)用時,觸發(fā)相應表的同步行為,通過WCF中的本地或遠程方法調(diào)用實現(xiàn)。
應用層通過數(shù)據(jù)庫觸發(fā)器觸發(fā)或內(nèi)置定時器觸發(fā),執(zhí)行定時檢查數(shù)據(jù)庫、定時執(zhí)行同步;通過RAILS-MQ接收完成命令觸發(fā),將接收到的數(shù)據(jù)包解包,插入到數(shù)據(jù)中;將需要同步的數(shù)據(jù),打包放入本地文件容器中,并通知RAILS-MQ執(zhí)行發(fā)送。
RAILS-SYN應用層框圖如圖4所示。
在應用層實現(xiàn)過程中,捕捉變化的數(shù)據(jù)是同步數(shù)據(jù)抽取的關(guān)鍵和難點,目前最常用的捕捉變化數(shù)據(jù)的方法有觸發(fā)器方式、時間戳方式、全表刪除插入方式、值班表對比方式、日志表方式等。本文采用觸發(fā)器和時間戳相結(jié)合的方式。
圖4 RAILS-SYN應用層
在要抽取的表上建立需要的觸發(fā)器,一般要建立插入、修改、刪除3個觸發(fā)器,源數(shù)據(jù)表中的數(shù)據(jù)發(fā)生變化時,相應的觸發(fā)器就會執(zhí)行操作。
當觸發(fā)執(zhí)行向另一個表中定稿數(shù)據(jù)時,在該表中另外增加時間戳和操作類型字段,系統(tǒng)中更新業(yè)務(wù)表數(shù)據(jù)時,同步在該表中定稿時間戳以及所執(zhí)行的操作類型(添加、刪除和修改)。
應用層是RAILS-SYN同步策略的核心,所有同步觸發(fā)邏輯都集成在應用層中,與之相比,傳輸層僅用于保證通道暢通,傳輸無誤。
RAILS-SYN同步策略已在ATPMIS中運用,實現(xiàn)了鐵路總公司級系統(tǒng)和鐵路局系統(tǒng)的履歷數(shù)據(jù)、故障數(shù)據(jù)、檢修數(shù)據(jù)、專項任務(wù)數(shù)據(jù)、備品備件數(shù)據(jù)、技術(shù)資料數(shù)據(jù)的同步共享。
5.1 RAILS-SYN特點
(1)實時性:RAILS-SYN能夠根據(jù)同步需要,對變化的數(shù)據(jù)實時同步。(2)適應性:RAILS-SYN預留配置接口,能夠根據(jù)不同的同步需求進行靈活定制,如:即時同步、定時同步、調(diào)用同步等,通過配置相應的表,或直接調(diào)用WCF方法實現(xiàn)。(3)松耦合性:RAILS-SYN通過兩層設(shè)計,將傳輸層與應用層獨立分開,實現(xiàn)了松耦合性。(4)可擴展性:不僅僅局限于在ATPMIS的應用,對相似同步需求的系統(tǒng)都可進行應用。
5.2 RAILS-SYN展望
隨著電務(wù)系統(tǒng)信息化的需求越來越迫切,全路統(tǒng)一信息化管理已經(jīng)提上日程,除了對ATP設(shè)備信息化管理需求,其他相關(guān)的設(shè)備管理和作業(yè)流程規(guī)范信息化管理的需求也逐步加入到總體信息化建設(shè)規(guī)劃中,而無論是哪一種建設(shè),都離不開數(shù)據(jù)同步共享技術(shù)的支撐,RAILS-SYN將在信息化進程中發(fā)揮重要作用。
數(shù)據(jù)同步技術(shù)是鐵路信息化的一項重要支撐技術(shù),它可以保障應用信息的可靠傳遞,達成業(yè)務(wù)流程信息的相互連通,促成鐵路局范圍乃至全路范圍的完整集成,實現(xiàn)分布式應用的順利部署。本文提出的RAILS-SYN同步策略,充分考慮了不同數(shù)據(jù)的不同同步需求,設(shè)計具有實時性、易配置性、松耦合性和易擴展性,能夠充分適應ATPMIS及其它鐵路信息系統(tǒng)的數(shù)據(jù)同步需求,對推進鐵路信息化進程具有重要的現(xiàn)實意義。
[1] 原鐵道部.鐵路電務(wù)管理信息系統(tǒng)ATP車載設(shè)備管理子系統(tǒng)總體方案[Z]. 2013.
[2] 朱曉冬,耿國華,周明全. MTS和MSMQ 技術(shù)及其應用[J].西北大學學報:自然科學版, 2002,32(1).
[3] 劉黎志,吳云韜. 應用WCF分布式框架實現(xiàn)移動數(shù)據(jù)同步[J]. 計算機應用,2011,31(12).
責任編輯 陳 蓉
Data synchronization strategy of ATP On-board Equipment Management Information System
ZHAO Xianqiong1, HE Guangyu1, KANG Renwei1, DAI Bo2
( 1.Signal&Communication Research Institute, China Academy of Railway Sciences, Beijing 100081, China; 2.Beijing China Railway Information Technology Development Corporation, Beijing 100081, China )
Based on the characteristics of ATP On-board Equipment Management Information System, this paper analyzed the demands for the current synchronization strategy of the System, designed and implemented two hierarchical classifed data synchronization strategy RAILS-SYN based on Oracle database and MSMQ technology, which ensured the real-time data transmission, data consistency and integrity, provided important support for data synchronization of the System’s classifed distributed management.
ATP On-board Equipment Management Information System; data synchronic strategy; Oracle
U284.48∶TP39
A
1005-8451(2015)09-0027-04
2014-12-30
中國鐵路總公司科技研究開發(fā)計劃課題(2014X008-H);中國鐵道科學研究院基金課題(2013YJ046)。
趙顯瓊,助理研究員;賀廣宇,助理研究員。