陳震解,周學(xué)兵
(卡斯柯信號(hào)有限公司,上海 200071)
隨著國內(nèi)經(jīng)濟(jì)的高速發(fā)展與路網(wǎng)的擴(kuò)充,TDCS/CTC 系統(tǒng)在全路大規(guī)模使用,為了滿足日益增長的系統(tǒng)查詢需求,又不影響生產(chǎn)系統(tǒng)的穩(wěn)定性和安全性,各路局陸續(xù)建設(shè)了TDCS/CTC 查詢系統(tǒng)。最初的查詢系統(tǒng)只提供調(diào)監(jiān)畫面、調(diào)整運(yùn)行圖和歷史運(yùn)行圖的查詢,通過接口服務(wù)器應(yīng)用程序?qū)崿F(xiàn)生產(chǎn)系統(tǒng)向查詢系統(tǒng)的同步。目前路局在用生產(chǎn)查詢系統(tǒng)整體結(jié)構(gòu)如圖1 所示。
查詢系統(tǒng)和生產(chǎn)系統(tǒng)的各服務(wù)器間通過網(wǎng)絡(luò)相連,生產(chǎn)系統(tǒng)接口服務(wù)器和查詢系統(tǒng)接口服務(wù)器間通過USB 電纜連接,接口程序使用專用協(xié)議進(jìn)行網(wǎng)絡(luò)隔離條件下的信息同步。查詢系統(tǒng)從生產(chǎn)系統(tǒng)獲取調(diào)監(jiān)畫面、調(diào)整運(yùn)行圖信息,滿足用戶基本的調(diào)監(jiān)和運(yùn)行圖的查詢需求。
但隨著查詢系統(tǒng)的大面積推廣使用,用戶提出需要查詢?nèi)瞻嘤?jì)劃、基本圖、調(diào)度命令及報(bào)警信息等更多需求。采用接口服務(wù)器通過接口程序進(jìn)行數(shù)據(jù)同步方式數(shù)據(jù)格式較為固定,面對提出的新需求需要不斷的擴(kuò)展升級接口服務(wù)器程序。而日班計(jì)劃、基本圖、調(diào)度命令及報(bào)警信息等信息存儲(chǔ)在生產(chǎn)系統(tǒng)數(shù)據(jù)庫中,最為簡單的方法就是基于數(shù)據(jù)庫實(shí)現(xiàn)生產(chǎn)系統(tǒng)向查詢系統(tǒng)同步數(shù)據(jù)。
圖1 生產(chǎn)查詢系統(tǒng)結(jié)構(gòu)示意圖Fig.1 Structure diagram of production and inquiry system
為確保信息安全,生產(chǎn)系統(tǒng)與查詢系統(tǒng)之間USB 串口為獨(dú)占式調(diào)用訪問,已無法通過USB 串口進(jìn)行數(shù)據(jù)庫同步流傳輸。為確保網(wǎng)絡(luò)隔離,需要采用另外的非網(wǎng)絡(luò)的數(shù)據(jù)庫同步載體。
查詢子系統(tǒng)與生產(chǎn)系統(tǒng)數(shù)據(jù)庫同步,可以通過以下兩種方案實(shí)現(xiàn)。
1)研發(fā)實(shí)現(xiàn)數(shù)據(jù)庫同步程序。
2)通過商用數(shù)據(jù)庫同步軟件實(shí)現(xiàn)數(shù)據(jù)庫同步。
采用商用數(shù)據(jù)同步軟件實(shí)現(xiàn)具有以下缺點(diǎn):a.部署成本高,一般需要數(shù)十萬軟件費(fèi)用;b.要求維護(hù)人員具有較高技術(shù)水平;c.部署不夠靈活,商用數(shù)據(jù)庫同步軟件建立在TCP/IP 基礎(chǔ)上,這樣就需要溝通生產(chǎn)系統(tǒng)和查詢系統(tǒng)之間的網(wǎng)絡(luò),存在信息安全風(fēng)險(xiǎn)。
結(jié)合TDCS/CTC 生產(chǎn)查詢系統(tǒng)的實(shí)際情況,用戶要求數(shù)據(jù)同步方案需部署靈活,使用方便,維護(hù)簡單,網(wǎng)絡(luò)隔離,這都是傳統(tǒng)商用數(shù)據(jù)同步方案實(shí)現(xiàn)不了的,這樣就基本否定了采用商用數(shù)據(jù)同步軟件方案,需自研數(shù)據(jù)庫同步程序。
與傳統(tǒng)數(shù)據(jù)庫同步軟件相比,自研數(shù)據(jù)庫同步方案具有以下優(yōu)點(diǎn)。
a.部署成本低
HW4504機(jī)心專為史詩陀飛輪Histoire de Tourbillon 9號(hào)腕表研發(fā),確保這款腕表成為不可多得的非凡臻品。腕表一共限量發(fā)行20只,白18K金和玫瑰18K金款式各10只。
本方案使用了成熟的串口通信技術(shù)和數(shù)據(jù)庫技術(shù),實(shí)現(xiàn)過程廣泛采用腳本和第三方軟件,降低方案的開發(fā)工作量和復(fù)雜性,使得部署成本非常低廉。
b.對維護(hù)人員要求低
本方案的整個(gè)過程都是自動(dòng)完成,中間環(huán)節(jié)少,維護(hù)人員易于理解執(zhí)行過程,維護(hù)簡單。
c.部署靈活
本方案廣泛使用了命令腳本,可根據(jù)實(shí)際需要靈活調(diào)整腳本參數(shù),程序配置也可靈活調(diào)整,部署靈活性比較高。
d.網(wǎng)絡(luò)安全隔離
通過調(diào)用串口進(jìn)行數(shù)據(jù)同步,避免生產(chǎn)系統(tǒng)與查詢系統(tǒng)之間的網(wǎng)絡(luò)溝通,保證系統(tǒng)之間的網(wǎng)絡(luò)安全。
基于成本效率和網(wǎng)絡(luò)安全考慮,如圖2 所示,設(shè)計(jì)一種簡單可靠的數(shù)據(jù)同步方案。
對比圖1、2 的系統(tǒng)結(jié)構(gòu),增加數(shù)據(jù)同步功能后并未在原有系統(tǒng)結(jié)構(gòu)中增加新的設(shè)備,只是增加了查詢系統(tǒng)從生產(chǎn)系統(tǒng)通過RS-232 串口同步數(shù)據(jù)庫中數(shù)據(jù)的過程。這樣查詢系統(tǒng)除了可以查詢調(diào)監(jiān)畫面,調(diào)整運(yùn)行圖和歷史運(yùn)行圖等現(xiàn)有功能外,還可以查詢?nèi)瞻嘤?jì)劃、基本圖、調(diào)度命令及報(bào)警信息等。即使日后查詢系統(tǒng)需要查詢更多的信息,包括以后生產(chǎn)系統(tǒng)擴(kuò)展的新業(yè)務(wù)的信息,都可以通過該方式將數(shù)據(jù)從生產(chǎn)系統(tǒng)的數(shù)據(jù)庫同步到查詢系統(tǒng)的數(shù)據(jù)庫。
圖2 增加數(shù)據(jù)同步功能后的生產(chǎn)查詢系統(tǒng)結(jié)構(gòu)示意圖Fig.2 Structure diagram of inquiry system after adding data synchronization function
方案的實(shí)現(xiàn)過程如圖3 所示。
圖3 數(shù)據(jù)流程圖Fig.3 Data flow diagram
數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)同步程序周期性定時(shí)調(diào)用數(shù)據(jù)導(dǎo)出腳本完成數(shù)據(jù)導(dǎo)出工作。數(shù)據(jù)導(dǎo)出后數(shù)據(jù)同步程序自動(dòng)調(diào)用FTP 腳本傳送數(shù)據(jù)文件到接口服務(wù)器的指定目錄。生產(chǎn)系統(tǒng)接口服務(wù)器通過RS-232 串口與查詢系統(tǒng)接口服務(wù)器連接,由數(shù)據(jù)同步軟件執(zhí)行串口文件同步將數(shù)據(jù)文件傳送到查詢系統(tǒng)接口服務(wù)器的指定目錄。查詢系統(tǒng)接口服務(wù)器上的數(shù)據(jù)同步程序檢測到數(shù)據(jù)后,調(diào)用FTP 腳本傳送到查詢系統(tǒng)的數(shù)據(jù)庫服務(wù)器,最后由查詢系統(tǒng)數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)同步程序調(diào)用相應(yīng)的數(shù)據(jù)導(dǎo)入腳本將數(shù)據(jù)文件導(dǎo)入數(shù)據(jù)庫。
整個(gè)過程由生產(chǎn)系統(tǒng)的數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)同步程序定時(shí)發(fā)起,后續(xù)各環(huán)節(jié)自動(dòng)接力完成。
查詢系統(tǒng)與生產(chǎn)系統(tǒng)之間數(shù)據(jù)庫同步程序?qū)崿F(xiàn)難點(diǎn)主要如下。
1)數(shù)據(jù)一致性的保證
數(shù)據(jù)導(dǎo)出時(shí),利用數(shù)據(jù)庫快照(FLASHBACK)技術(shù),確保導(dǎo)出數(shù)據(jù)的一致性。
2)數(shù)據(jù)傳送時(shí)效性的保證
對于大數(shù)據(jù)量的數(shù)據(jù)表,利用其中時(shí)間相關(guān)的字段,數(shù)據(jù)同步程序在調(diào)用數(shù)據(jù)導(dǎo)出腳本時(shí),給出參數(shù)過濾導(dǎo)出數(shù)據(jù),只導(dǎo)出增量數(shù)據(jù),時(shí)間參數(shù)可以為班別、日期、時(shí)間(包括time_t,timestamp 等)。
對于小數(shù)據(jù)量的數(shù)據(jù)表,每次均為全表同步。
3)數(shù)據(jù)傳輸準(zhǔn)確性的保證
數(shù)據(jù)同步程序在串口通信過程中建立有反饋機(jī)制,通過校驗(yàn)碼技術(shù),確保數(shù)據(jù)準(zhǔn)確傳輸。
4)數(shù)據(jù)不遺漏、不重復(fù)導(dǎo)入的保證
對于增量同步的數(shù)據(jù)表,需要確保數(shù)據(jù)不遺漏,不重復(fù)。
比如調(diào)度命令,在編制后,由于簽收等情況,數(shù)據(jù)還會(huì)更新。后續(xù)增量同步時(shí)還需要同步該命令,同時(shí)需保證覆蓋原數(shù)據(jù),而非增加。
同時(shí)需要確保某幾次增量同步由于某種原因失敗后,后續(xù)能夠自動(dòng)恢復(fù),簡化維護(hù)。
本方案通過如下機(jī)制來確保數(shù)據(jù)不遺漏、不重復(fù)。
a. 導(dǎo)出端每小時(shí)進(jìn)行一次導(dǎo)出,導(dǎo)出為最近一天的數(shù)據(jù)。
b. 導(dǎo)入端在數(shù)據(jù)導(dǎo)入前,先刪除最近一天的數(shù)據(jù)(時(shí)間范圍與導(dǎo)入數(shù)據(jù)時(shí)間范圍一致)
c. 上述時(shí)間范圍一天、導(dǎo)出間隔1 h 均為示例,根據(jù)業(yè)務(wù)數(shù)據(jù)的實(shí)際情況確定。
1) 串口通信技術(shù)
為不影響在用軟件的功能及架構(gòu),且為了實(shí)現(xiàn)功能獨(dú)立,不能采用既有的USB 通信線通信方式,必須采用另一種獨(dú)立的并且可以實(shí)現(xiàn)通信隔離的技術(shù)。經(jīng)過查閱相關(guān)資料,結(jié)合易用性,可維護(hù)性的需求,本方案選擇串口通信技術(shù),采用RS-232 串口線實(shí)現(xiàn)查詢系統(tǒng)從生產(chǎn)系統(tǒng)同步數(shù)據(jù)的功能。商用服務(wù)器硬件都自帶串口,且串口通信具有使用廣泛,安全可靠的優(yōu)點(diǎn),保證方案的可行性。
2) Oracle 數(shù)據(jù)庫導(dǎo)入導(dǎo)出技術(shù)
TDCS/CTC 系統(tǒng)采用的都是Oracle 數(shù)據(jù)庫,因此在生產(chǎn)系統(tǒng)數(shù)據(jù)導(dǎo)出和查詢系統(tǒng)數(shù)據(jù)導(dǎo)入方面,選擇Oracle 自帶的imp/exp 導(dǎo)出導(dǎo)入技術(shù)。Oracle 自帶的導(dǎo)出導(dǎo)入技術(shù)具有使用廣泛,導(dǎo)出導(dǎo)入速度快,數(shù)據(jù)一致,可靠性高的優(yōu)點(diǎn),保證方案的可行性。
本文設(shè)計(jì)的方案易于實(shí)現(xiàn)且簡單靈活,在既有硬件條件下,開發(fā)數(shù)據(jù)同步程序?qū)崿F(xiàn)查詢信息擴(kuò)充、完善,降低了接管單位運(yùn)營成本和運(yùn)維復(fù)雜性,提高了安全隔離程度。
目前該數(shù)據(jù)同步方案已在多個(gè)鐵路集團(tuán)公司TDCS/CTC 生產(chǎn)查詢系統(tǒng)中運(yùn)用實(shí)現(xiàn),包括沈陽局集團(tuán)有限公司(同步報(bào)警信息等用于后期大數(shù)據(jù)分析),南昌局集團(tuán)有限公司(同步基本圖、調(diào)度命令等供查詢使用)等,至今運(yùn)行穩(wěn)定可靠,實(shí)現(xiàn)了方案的設(shè)計(jì)目標(biāo),滿足了用戶對查詢系統(tǒng)的需求,提高查詢系統(tǒng)的可用性,同時(shí)對其他系統(tǒng)中的類似需求也有一定的參考價(jià)值。