吳 冰
(中國民用航空華北地區(qū)空中交通管理局,北京 100621)
隨著民航事業(yè)的發(fā)展,數(shù)據(jù)與信息的共享需求也隨之增大。導(dǎo)致越來越多的單位系統(tǒng)或項(xiàng)目需要引接民航華北空管局綜合電報(bào)處理系統(tǒng)航班動(dòng)態(tài)和計(jì)劃數(shù)據(jù),建立一個(gè)用于該系統(tǒng)信息發(fā)布接口的必要性也隨之增強(qiáng)。
航班信息發(fā)布接口系統(tǒng)在設(shè)計(jì)時(shí)考慮了四個(gè)方面,分別為軟件流程設(shè)計(jì)、參數(shù)功能設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)以及傳輸設(shè)計(jì)。
航班信息發(fā)布接口軟件,使用DELPHI 語言編寫,該語言是Windows 平臺(tái)下快速應(yīng)用程序開發(fā)工具(簡稱RAD)。航班信息發(fā)布接口軟件,核心功能分為三個(gè)部分,分別為數(shù)據(jù)引接、數(shù)據(jù)處理、數(shù)據(jù)發(fā)布。
數(shù)據(jù)引接方面,航班信息發(fā)布接口從綜合電報(bào)處理系統(tǒng)引接航班時(shí)刻表、中長期計(jì)劃表、核心計(jì)劃表,動(dòng)態(tài)更新表等數(shù)據(jù)。
航班時(shí)刻表:此表為由中國民用航空總局空管局統(tǒng)一下發(fā),一年兩次,分別為冬春、夏秋航班時(shí)刻,此表信息每日8時(shí)從綜合電報(bào)處理系統(tǒng)引接一次,同步至接口系統(tǒng)。
中長期計(jì)劃表:臨時(shí)根據(jù)電話、文件或電報(bào)內(nèi)容生成的計(jì)劃表,此表實(shí)時(shí)同步。
核心計(jì)劃表:此表由航班時(shí)刻表、中長期計(jì)劃表和一些基礎(chǔ)信息表,例如航站信息表、航路信息表共同聯(lián)合生成,航班信息全面,屬于航班信息接口系統(tǒng)核心表,此表實(shí)時(shí)同步。
動(dòng)態(tài)更新表:為航班AFTN電報(bào)更新的核心計(jì)劃后的表,同屬于航班信息接口系統(tǒng)核心表,此表實(shí)時(shí)同步。
接口系統(tǒng)將上述數(shù)據(jù)進(jìn)行引接,組建成航班信息數(shù)據(jù)源,存入數(shù)據(jù)庫,在數(shù)據(jù)庫中根據(jù)數(shù)據(jù)源建立用于數(shù)據(jù)引接的各類視圖,等待數(shù)據(jù)接口程序進(jìn)行處理及發(fā)布。
接口軟件根據(jù)任務(wù)參數(shù)從數(shù)據(jù)源視圖中索取航班信息,將信息進(jìn)行XML生成,首先存放于本地,后將信息進(jìn)行發(fā)布。在發(fā)布過程中進(jìn)行數(shù)據(jù)備份以及發(fā)布提示。
數(shù)據(jù)備份便于同對(duì)方系統(tǒng)接收的航班信息核對(duì),同時(shí)存放的歷史記錄也方便于數(shù)據(jù)重傳,以支持對(duì)方系統(tǒng)故障、癱瘓重新索取航班信息的各類需求。
發(fā)布提示主要是監(jiān)控發(fā)布過程是否成功,當(dāng)失敗時(shí)接口程序會(huì)進(jìn)行試探性重傳,當(dāng)試探兩次仍失敗后,將產(chǎn)生告警信息提示維護(hù)人員進(jìn)行檢查鏈路或程序。
簡略流程中綠色模塊為計(jì)劃發(fā)布接口,首先根據(jù)任務(wù)參數(shù)生成航班信息組成XML 文件,再通過Ftp 協(xié)議上傳至對(duì)端系統(tǒng)FTP 接口服務(wù)器,同時(shí)對(duì)上傳數(shù)據(jù)進(jìn)行備份。此過程中接口軟件會(huì)判斷傳輸是否正常,如不正常則嘗試重傳,兩次失敗后提示告警。
采用DELPHI 多線程技術(shù),支持多任務(wù)并發(fā),設(shè)計(jì)1個(gè)任務(wù)對(duì)應(yīng)1個(gè)線程,能夠同時(shí)提供15項(xiàng)任務(wù)傳輸,且每項(xiàng)任務(wù)支持10種視圖的同時(shí)發(fā)布。
數(shù)據(jù)量方面,在網(wǎng)絡(luò)設(shè)備允許的情況下,最快可支持向單系統(tǒng)發(fā)布航班數(shù)據(jù)10 000 條/min,數(shù)據(jù)量超過10M/min。
在穩(wěn)定性方面,軟件在編寫過程中加入了數(shù)據(jù)庫死鎖、內(nèi)存溢出、類庫沖突等容錯(cuò)機(jī)制代碼,并將軟件運(yùn)行中的錯(cuò)誤日志進(jìn)行記錄,為維護(hù)人員提供告警。
航班信息接口程序支持多任務(wù)同時(shí)運(yùn)行,各任務(wù)可連接不同數(shù)據(jù)庫取所需數(shù)據(jù);可向不同F(xiàn)TP 服務(wù)器進(jìn)行文件傳輸;可將本地導(dǎo)出XML 的文件備份至不同文件,單個(gè)發(fā)布任務(wù)對(duì)應(yīng)1個(gè)INI 任務(wù)參數(shù),每個(gè)INI 由XT、DATABASE、FTP、XML、TABLE 五塊參數(shù)設(shè)置組成,下面以TABLE參數(shù)設(shè)計(jì)為例進(jìn)行介紹。
此參數(shù)作為軟件調(diào)用核心參數(shù),為數(shù)據(jù)源獲取信息,包括數(shù)據(jù)表/視圖名稱、發(fā)布間隔、具體條件等。

表1 TABLE參數(shù)2
參數(shù)設(shè)置詳細(xì)說明如表1:
(例如:2=jkv_changelist#ROW_ID>$1341767 order by row_id#2011-10-27 14:10:00$2011-10-27 14:11:00$5$1#0$2011-07-06 17:05:00#jkv_changelist#)
本系統(tǒng)的建設(shè)由三模塊組成:軟件程序設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、FTP 服務(wù)器設(shè)計(jì),本章將對(duì)數(shù)據(jù)庫設(shè)計(jì)進(jìn)行介紹。在數(shù)據(jù)庫方面,系統(tǒng)采用ORACLE 11G數(shù)據(jù)庫,ORACLE 11G 相比以往版本有對(duì)高可用性的增強(qiáng)、新的Flashback能力、支持回滾更新操作;對(duì)安全性的增強(qiáng),便于管理大量的用戶[1];BI 方面的增強(qiáng),包括改進(jìn)的SQL 能力、分析功能、數(shù)據(jù)挖掘的能力等;對(duì)非關(guān)系型數(shù)據(jù)存儲(chǔ)的能力進(jìn)行了改進(jìn);以及支持XML的能力,降低了管理開銷,提高了后臺(tái)運(yùn)算性能[2]。
本系統(tǒng)的數(shù)據(jù)庫建設(shè)分為系統(tǒng)層設(shè)計(jì)、業(yè)務(wù)層設(shè)計(jì)、發(fā)布層設(shè)計(jì)三個(gè)方面,其中系統(tǒng)層設(shè)計(jì)包括ZJ_LOGIN權(quán)限管理表、RZ_LIST日志運(yùn)行表;業(yè)務(wù)層設(shè)計(jì)包含DRT_DYNAMIC_HXH_DMZ 核心航班計(jì)劃表、HBT_FLIGHT 航班時(shí)刻表、CQT_PLAN 運(yùn)管中長期計(jì)劃表、RZT_HXHUPDATE 動(dòng)態(tài)更新記錄表、LST_DYNAMIC_HXH_DMZ 核心航班計(jì)劃歷史表;業(yè)務(wù)層設(shè)計(jì)包含DRV_DYNAMIC_JCG 核心航班計(jì)劃視圖、JKV_DYNAMIC_CR次日航班計(jì)劃發(fā)布視圖、JKV_DYNAMIC_DR當(dāng)日航班動(dòng)態(tài)發(fā)布視圖、JKV_DYNAMIC_LS 昨日航班計(jì)劃發(fā)布視圖、LSV_DYNAMIC_JCG 歷史航班計(jì)劃視圖、LSV_DYNAMIC_DR歷史航班計(jì)劃發(fā)布視圖。
系統(tǒng)層設(shè)計(jì)主要為程序的管理權(quán)限、運(yùn)行日志記錄提供服務(wù)。
3.1.1 權(quán)限表
該表由軟件調(diào)用,包括用戶名、密碼以及權(quán)限記錄,程序通過調(diào)用該表實(shí)現(xiàn)安全管理。
3.1.2日志表
該表為軟件運(yùn)行日志信息,包括記錄號(hào)、運(yùn)行錯(cuò)誤的步驟、故障導(dǎo)致原因、檢查與排除故障方法、故障時(shí)間,在軟件運(yùn)行時(shí)記錄各流程狀態(tài)是否正常,異常時(shí)將錯(cuò)誤記錄至該表,方便維護(hù)人員調(diào)閱,查找故障原因。
業(yè)務(wù)層設(shè)計(jì)主要用于數(shù)據(jù)引接、整理。
3.2.1 核心計(jì)劃表
該表為系統(tǒng)核心航班計(jì)劃動(dòng)態(tài)表,數(shù)據(jù)來源于實(shí)時(shí)同步的綜合電報(bào)處理系統(tǒng),里面記錄著航班各類信息,包括航班號(hào)、機(jī)型、時(shí)刻、性質(zhì)等,包含昨日、當(dāng)日、次日三天數(shù)據(jù),此表為軟件系統(tǒng)的核心,向外發(fā)布視圖數(shù)據(jù)均來源于該表。
3.2.2 航班時(shí)刻表
該表為航班長期計(jì)劃表,數(shù)據(jù)來源于綜合電報(bào)處理系統(tǒng),每日完成一次同步,里面記錄著航班各類信息,包括航班號(hào)、機(jī)型、部分計(jì)劃時(shí)刻、性質(zhì)等,一般存放半年計(jì)劃。
發(fā)布層設(shè)計(jì)主要用于數(shù)據(jù)發(fā)布,多采用視圖形式,方便修改。
3.3.1 核心動(dòng)態(tài)視圖
該視圖數(shù)據(jù)來源于核心計(jì)劃表DRT_DYNAMIC_HXH_DMZ,將該表中數(shù)據(jù)進(jìn)行分段處理拆分后進(jìn)行呈現(xiàn),因8 段視圖均為重復(fù)Sql 語句,故以第一段視圖進(jìn)行展示。
3.3.2 次日計(jì)劃視圖
該視圖數(shù)據(jù)來源于視圖DRV_DYNAMIC_JCG,僅為次日航班計(jì)劃信息,用于向其他系統(tǒng)發(fā)布此日計(jì)劃使用。
3.3.3 當(dāng)日動(dòng)態(tài)視圖
該視圖數(shù)據(jù)來源于視圖JKV_DYNAMIC_DR,為當(dāng)日航班動(dòng)態(tài)信息,用于向其他系統(tǒng)發(fā)布實(shí)時(shí)航班動(dòng)態(tài)信息使用。
本系統(tǒng)在建設(shè)中考慮到信息傳輸?shù)陌踩⒏咝В捎昧薋TP傳輸方式,將軟件生成的XML文檔,通過FTP文件傳輸協(xié)議傳送到對(duì)端接口服務(wù)器,向用戶屏蔽不同主機(jī)中各種文件存儲(chǔ)系統(tǒng)的細(xì)節(jié),加強(qiáng)了數(shù)據(jù)傳輸?shù)目煽啃院透咝浴5惨虼诵柙趯?duì)端接口服務(wù)器中建立FTP服務(wù),與大多數(shù)Internet 服務(wù)一樣,F(xiàn)TP 也是一個(gè)客戶機(jī)/服務(wù)器系統(tǒng)。用戶通過一個(gè)支持FTP 協(xié)議的客戶機(jī)程序,連接到遠(yuǎn)程主機(jī)上的FTP服務(wù)器程序。用戶通過客戶機(jī)程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機(jī)。比如說,用戶發(fā)出一條命令,要求服務(wù)器向用戶傳送某一個(gè)文件的一份拷貝,服務(wù)器會(huì)響應(yīng)這條命令,將指定文件送至用戶的機(jī)器上[3]。客戶機(jī)程序代表用戶接收到這個(gè)文件,將其存放在用戶目錄中。
本文從軟件設(shè)計(jì)、參數(shù)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、數(shù)據(jù)傳輸四個(gè)方面向大家介紹了航班信息發(fā)布接口系統(tǒng)的設(shè)計(jì)思想。在整體設(shè)計(jì)方面,除了考慮到接口系統(tǒng)安全性、實(shí)時(shí)性、穩(wěn)定性以外,還適當(dāng)?shù)目紤]了接口的規(guī)范性、適用性和靈活性,為今后的業(yè)務(wù)拓展、信息擴(kuò)容做前瞻性預(yù)見。
[1]呂清嬌.基于Web 技術(shù)的Oracle 數(shù)據(jù)庫實(shí)驗(yàn)平臺(tái)的研究與實(shí)現(xiàn)[D].長沙:中南大學(xué),2014.
[2]唐志濤.測評(píng)系統(tǒng)組件間數(shù)據(jù)交互的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2011.
[3]楊松.有關(guān)計(jì)算機(jī)軟件數(shù)據(jù)接口的應(yīng)用研究[J].科技創(chuàng)新與應(yīng)用,2013(17):85-91.