陳震解,周學兵
(卡斯柯信號有限公司,上海 200071)
隨著國內經濟的高速發展與路網的擴充,TDCS/CTC 系統在全路大規模使用,為了滿足日益增長的系統查詢需求,又不影響生產系統的穩定性和安全性,各路局陸續建設了TDCS/CTC 查詢系統。最初的查詢系統只提供調監畫面、調整運行圖和歷史運行圖的查詢,通過接口服務器應用程序實現生產系統向查詢系統的同步。目前路局在用生產查詢系統整體結構如圖1 所示。
查詢系統和生產系統的各服務器間通過網絡相連,生產系統接口服務器和查詢系統接口服務器間通過USB 電纜連接,接口程序使用專用協議進行網絡隔離條件下的信息同步。查詢系統從生產系統獲取調監畫面、調整運行圖信息,滿足用戶基本的調監和運行圖的查詢需求。
但隨著查詢系統的大面積推廣使用,用戶提出需要查詢日班計劃、基本圖、調度命令及報警信息等更多需求。采用接口服務器通過接口程序進行數據同步方式數據格式較為固定,面對提出的新需求需要不斷的擴展升級接口服務器程序。而日班計劃、基本圖、調度命令及報警信息等信息存儲在生產系統數據庫中,最為簡單的方法就是基于數據庫實現生產系統向查詢系統同步數據。

圖1 生產查詢系統結構示意圖Fig.1 Structure diagram of production and inquiry system
為確保信息安全,生產系統與查詢系統之間USB 串口為獨占式調用訪問,已無法通過USB 串口進行數據庫同步流傳輸。為確保網絡隔離,需要采用另外的非網絡的數據庫同步載體。
查詢子系統與生產系統數據庫同步,可以通過以下兩種方案實現。
1)研發實現數據庫同步程序。
2)通過商用數據庫同步軟件實現數據庫同步。
采用商用數據同步軟件實現具有以下缺點:a.部署成本高,一般需要數十萬軟件費用;b.要求維護人員具有較高技術水平;c.部署不夠靈活,商用數據庫同步軟件建立在TCP/IP 基礎上,這樣就需要溝通生產系統和查詢系統之間的網絡,存在信息安全風險。
結合TDCS/CTC 生產查詢系統的實際情況,用戶要求數據同步方案需部署靈活,使用方便,維護簡單,網絡隔離,這都是傳統商用數據同步方案實現不了的,這樣就基本否定了采用商用數據同步軟件方案,需自研數據庫同步程序。
與傳統數據庫同步軟件相比,自研數據庫同步方案具有以下優點。
a.部署成本低
HW4504機心專為史詩陀飛輪Histoire de Tourbillon 9號腕表研發,確保這款腕表成為不可多得的非凡臻品。腕表一共限量發行20只,白18K金和玫瑰18K金款式各10只。
本方案使用了成熟的串口通信技術和數據庫技術,實現過程廣泛采用腳本和第三方軟件,降低方案的開發工作量和復雜性,使得部署成本非常低廉。
b.對維護人員要求低
本方案的整個過程都是自動完成,中間環節少,維護人員易于理解執行過程,維護簡單。
c.部署靈活
本方案廣泛使用了命令腳本,可根據實際需要靈活調整腳本參數,程序配置也可靈活調整,部署靈活性比較高。
d.網絡安全隔離
通過調用串口進行數據同步,避免生產系統與查詢系統之間的網絡溝通,保證系統之間的網絡安全。
基于成本效率和網絡安全考慮,如圖2 所示,設計一種簡單可靠的數據同步方案。
對比圖1、2 的系統結構,增加數據同步功能后并未在原有系統結構中增加新的設備,只是增加了查詢系統從生產系統通過RS-232 串口同步數據庫中數據的過程。這樣查詢系統除了可以查詢調監畫面,調整運行圖和歷史運行圖等現有功能外,還可以查詢日班計劃、基本圖、調度命令及報警信息等。即使日后查詢系統需要查詢更多的信息,包括以后生產系統擴展的新業務的信息,都可以通過該方式將數據從生產系統的數據庫同步到查詢系統的數據庫。

圖2 增加數據同步功能后的生產查詢系統結構示意圖Fig.2 Structure diagram of inquiry system after adding data synchronization function
方案的實現過程如圖3 所示。

圖3 數據流程圖Fig.3 Data flow diagram
數據庫服務器上部署的數據同步程序周期性定時調用數據導出腳本完成數據導出工作。數據導出后數據同步程序自動調用FTP 腳本傳送數據文件到接口服務器的指定目錄。生產系統接口服務器通過RS-232 串口與查詢系統接口服務器連接,由數據同步軟件執行串口文件同步將數據文件傳送到查詢系統接口服務器的指定目錄。查詢系統接口服務器上的數據同步程序檢測到數據后,調用FTP 腳本傳送到查詢系統的數據庫服務器,最后由查詢系統數據庫服務器上的數據同步程序調用相應的數據導入腳本將數據文件導入數據庫。
整個過程由生產系統的數據庫服務器上的數據同步程序定時發起,后續各環節自動接力完成。
查詢系統與生產系統之間數據庫同步程序實現難點主要如下。
1)數據一致性的保證
數據導出時,利用數據庫快照(FLASHBACK)技術,確保導出數據的一致性。
2)數據傳送時效性的保證
對于大數據量的數據表,利用其中時間相關的字段,數據同步程序在調用數據導出腳本時,給出參數過濾導出數據,只導出增量數據,時間參數可以為班別、日期、時間(包括time_t,timestamp 等)。
對于小數據量的數據表,每次均為全表同步。
3)數據傳輸準確性的保證
數據同步程序在串口通信過程中建立有反饋機制,通過校驗碼技術,確保數據準確傳輸。
4)數據不遺漏、不重復導入的保證
對于增量同步的數據表,需要確保數據不遺漏,不重復。
比如調度命令,在編制后,由于簽收等情況,數據還會更新。后續增量同步時還需要同步該命令,同時需保證覆蓋原數據,而非增加。
同時需要確保某幾次增量同步由于某種原因失敗后,后續能夠自動恢復,簡化維護。
本方案通過如下機制來確保數據不遺漏、不重復。
a. 導出端每小時進行一次導出,導出為最近一天的數據。
b. 導入端在數據導入前,先刪除最近一天的數據(時間范圍與導入數據時間范圍一致)
c. 上述時間范圍一天、導出間隔1 h 均為示例,根據業務數據的實際情況確定。
1) 串口通信技術
為不影響在用軟件的功能及架構,且為了實現功能獨立,不能采用既有的USB 通信線通信方式,必須采用另一種獨立的并且可以實現通信隔離的技術。經過查閱相關資料,結合易用性,可維護性的需求,本方案選擇串口通信技術,采用RS-232 串口線實現查詢系統從生產系統同步數據的功能。商用服務器硬件都自帶串口,且串口通信具有使用廣泛,安全可靠的優點,保證方案的可行性。
2) Oracle 數據庫導入導出技術
TDCS/CTC 系統采用的都是Oracle 數據庫,因此在生產系統數據導出和查詢系統數據導入方面,選擇Oracle 自帶的imp/exp 導出導入技術。Oracle 自帶的導出導入技術具有使用廣泛,導出導入速度快,數據一致,可靠性高的優點,保證方案的可行性。
本文設計的方案易于實現且簡單靈活,在既有硬件條件下,開發數據同步程序實現查詢信息擴充、完善,降低了接管單位運營成本和運維復雜性,提高了安全隔離程度。
目前該數據同步方案已在多個鐵路集團公司TDCS/CTC 生產查詢系統中運用實現,包括沈陽局集團有限公司(同步報警信息等用于后期大數據分析),南昌局集團有限公司(同步基本圖、調度命令等供查詢使用)等,至今運行穩定可靠,實現了方案的設計目標,滿足了用戶對查詢系統的需求,提高查詢系統的可用性,同時對其他系統中的類似需求也有一定的參考價值。