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

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