肖挺莉,李名杰
(北京首都國際機(jī)場股份有限公司信息技術(shù)部,北京 100621)
北京首都國際機(jī)場是“中國第一國門”,是中國最重要、規(guī)模最大、設(shè)備最先進(jìn)、運輸生產(chǎn)最繁忙的大型國際航空港,是中國的空中門戶和對外交流的重要窗口。隨著日益完善的國際航線網(wǎng)絡(luò)的形成,使得北京首都國際機(jī)場成為世界最繁忙的機(jī)場之一,每天有超過70家航空公司的1 600個航班將北京與世界208個城市緊密連接;2010年旅客吞吐量超過7 300萬人次,排名全球第二位。
航班信息顯示系統(tǒng)FIDS(flight information display system)是一個以計算機(jī)信息技術(shù)、控制技術(shù)、網(wǎng)絡(luò)與通信技術(shù)為基礎(chǔ),結(jié)構(gòu)化布線系統(tǒng)為橋梁,航班信息為核心的數(shù)字化航班信息顯示系統(tǒng)。FIDS作為機(jī)場為旅客提供航班信息服務(wù)的重要信息系統(tǒng),直接面向往來世界各地的旅客,具有向旅客和外界發(fā)布信息,引導(dǎo)旅客辦理乘機(jī)、候機(jī)、登機(jī),通知旅客親友接機(jī)等基本功能。使旅客及機(jī)場工作人員能及時獲取正確的進(jìn)港及出港的各種航班信息,增進(jìn)旅客的有序流動及機(jī)場的整體運作效率。
首都國際機(jī)場新航站樓航班信息顯示系統(tǒng)作為國家“九五”重點建設(shè)項目,代表了當(dāng)時國際先進(jìn)水平航班信息顯示系統(tǒng)[1]。但隨著顯示設(shè)備的性能及機(jī)場市場意識、服務(wù)意識的不斷提高,對信息顯示系統(tǒng)的多樣性和開放性提出了更高要求[2]。在旅客運輸業(yè)務(wù)量飛速增長的今天,航班信息顯示系統(tǒng)固有的業(yè)務(wù)模式受到航班量激增的影響,處理效率低下,甚至大部分?jǐn)?shù)據(jù)處理還處于數(shù)據(jù)庫輪詢模式,無法實現(xiàn)航班信息的實時顯示,如何提升航班信息顯示系統(tǒng)的業(yè)務(wù)處理效率也成為國內(nèi)外機(jī)場,尤其是大型樞紐機(jī)場共同面對的難題。
為解決大型樞紐機(jī)場海量業(yè)務(wù)數(shù)據(jù)快速處理的難題,提升航班信息顯示系統(tǒng)的業(yè)務(wù)處理效率,本文提出了一個基于內(nèi)存的數(shù)據(jù)快速處理技術(shù)解決方案,如圖1和圖2所示,該方案將內(nèi)存數(shù)據(jù)庫技術(shù)[3]、數(shù)據(jù)緩存技術(shù)[4]、非阻塞輸入輸出流(NIO)技術(shù)[5]有機(jī)整合,大大增強(qiáng)了航班信息顯示系統(tǒng)的核心數(shù)據(jù)處理能力,從而實現(xiàn)高效實時的數(shù)據(jù)處理,其獲得的新一代航班信息顯示系統(tǒng)處理速度遠(yuǎn)高于行業(yè)標(biāo)準(zhǔn)。
內(nèi)存數(shù)據(jù)庫是將數(shù)據(jù)放在內(nèi)存中直接操作的數(shù)據(jù)庫[6],相對于磁盤,內(nèi)存的數(shù)據(jù)讀寫速度要高出幾個數(shù)量級,將數(shù)據(jù)保存在內(nèi)存中相比從磁盤上訪問能夠極大地提高應(yīng)用的性能。同時,內(nèi)存數(shù)據(jù)庫拋棄了磁盤數(shù)據(jù)管理的傳統(tǒng)方式,基于全部數(shù)據(jù)都在內(nèi)存中重新設(shè)計了體系結(jié)構(gòu),并且在數(shù)據(jù)緩存、快速算法、并行操作方面也進(jìn)行了相應(yīng)的改進(jìn),所以,數(shù)據(jù)處理速度比傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)處理速度要快很多,一般都在10倍以上。內(nèi)存數(shù)據(jù)庫的最大特點是其“主拷貝”或“工作版本”常駐內(nèi)存,即活動事務(wù)只與實時內(nèi)存數(shù)據(jù)庫的內(nèi)存拷貝打交道[7]。
盡管內(nèi)存數(shù)據(jù)庫已不是傳統(tǒng)磁盤數(shù)據(jù)庫的概念,但是內(nèi)存數(shù)據(jù)庫本質(zhì)上還是數(shù)據(jù)庫,它也具有一般數(shù)據(jù)庫的基本功能:
1)永久數(shù)據(jù)的管理,包括數(shù)據(jù)庫的定義、存儲、維護(hù)等;
2)完成各種數(shù)據(jù)操作,如查詢處理、存取、完整性檢查;
3)事務(wù)管理,包括調(diào)度與并發(fā)控制等;4)對存取的控制和安全性檢驗;5)具有數(shù)據(jù)庫的可靠性恢復(fù)機(jī)制。
相對于利用程序開發(fā)手段調(diào)用內(nèi)存處理來說,內(nèi)存數(shù)據(jù)庫自有其優(yōu)勢。首先,內(nèi)存數(shù)據(jù)庫是產(chǎn)品化的數(shù)據(jù)庫管理軟件,極大縮短了開發(fā)周期;其次,內(nèi)存數(shù)據(jù)庫有著開放的平臺和接口,程序開發(fā)和移植更加靈活便捷,也便于維護(hù)和二次開發(fā);第三,可通過使用統(tǒng)一的SQL語言方便地查詢內(nèi)存中的數(shù)據(jù);最后,能在數(shù)據(jù)庫中保障數(shù)據(jù)的安全性和完整性。這些優(yōu)勢,對于快速部署和簡化維護(hù)都是有利的。
在新一代航班信息顯示系統(tǒng)中,內(nèi)存數(shù)據(jù)庫發(fā)揮著非常重要的作用,在系統(tǒng)加載時,將磁盤數(shù)據(jù)庫自動同步到內(nèi)存數(shù)據(jù)庫中,并可動態(tài)接收航班事件和OPS(運行規(guī)范)數(shù)據(jù),系統(tǒng)的自由文本時間軸調(diào)度和規(guī)則時間軸調(diào)度利用內(nèi)存數(shù)據(jù)庫快速計算能力使得系統(tǒng)的整體性能得到了質(zhì)的飛躍。
新一代航班信息顯示系統(tǒng)在啟動時將最常用的字典數(shù)據(jù)(如值機(jī)柜臺、機(jī)場、登機(jī)口、等級、行李分揀口、轉(zhuǎn)盤等數(shù)據(jù))一次性加載入內(nèi)存,如圖3所示,通過接口的方式對應(yīng)用提供透明、細(xì)粒度、高速的查詢方式,減少了數(shù)據(jù)庫的查詢次數(shù)并極大地提升了接口的處理速度。
圖3 數(shù)據(jù)緩存加載示意圖Fig.3 Figure of loading data cache
新一代航班信息顯示系統(tǒng)大量地采用了異步處理機(jī)制,其業(yè)務(wù)流程圖如圖4所示,采用隊列緩存技術(shù),將系統(tǒng)的同步調(diào)用轉(zhuǎn)變?yōu)楫惒秸{(diào)用方式,極大地提升了航班信息顯示系統(tǒng)性能。
圖4 業(yè)務(wù)流程圖Fig.4 Figure of business process
針對顯示客戶端和顯示層服務(wù)器之間存在大量的TCP連接,新一代航班信息顯示系統(tǒng)在Socket連接方式上采用NIO技術(shù),以獲取網(wǎng)絡(luò)流的高速塊讀取、以及對I/O多路復(fù)用和非阻塞進(jìn)行支持,NIO模塊圖如圖5所示,從而使顯示層服務(wù)器在處理高并發(fā)、大數(shù)據(jù)量的TCP連接時性能得到了極大提升。
圖5 NIO模塊設(shè)計圖Fig.5 Design of NIO module
新一代航班信息顯示系統(tǒng)采用了智能模糊匹配技術(shù)來精確匹配數(shù)據(jù)篩選規(guī)則,系統(tǒng)定義航班系統(tǒng)的刪選規(guī)則時需按資源類型和資源編號來定義規(guī)則,查詢時會根據(jù)預(yù)先定義的關(guān)鍵字來精確的定位到需要觸發(fā)的規(guī)則,進(jìn)而減少了不必要的規(guī)則觸發(fā),提升了新一代航班信息顯示系統(tǒng)的搜索查詢性能。
在相同硬件配置下,本文對基于內(nèi)存數(shù)據(jù)庫的快速處理技術(shù)解決方案的新一代航班信息顯示系統(tǒng)與其他同類航顯系統(tǒng)進(jìn)行了性能測試與分析,對處理相同規(guī)模航班計劃(2 000條)所用時間、每分鐘處理航班動態(tài)條數(shù)、繁忙時實時動態(tài)排隊時間、航班動態(tài)信息從上游系統(tǒng)發(fā)布到屏幕顯示所用時間4個性能參數(shù)進(jìn)行對比,測試結(jié)果如表1所示。
表1 相同配置下不同航顯系統(tǒng)處理效率對比表Tab.1 Efficiency of different FIDSs in same experimental environment
從表1中可知,基于本文方案的新一代航班信息顯示系統(tǒng)在處理相同規(guī)模航班計劃所用時間、繁忙時實時動態(tài)排隊時間、航班動態(tài)從上游系統(tǒng)發(fā)布到屏幕顯示所用時間3個性能參數(shù)上比國內(nèi)廠商航顯系統(tǒng)分別降低了95%、100%、85%,比國際廠商航顯系統(tǒng)分別降低了94%、100%、72%。與國內(nèi)外廠商航顯系統(tǒng)相比,每分鐘處理航班動態(tài)條數(shù)的能力分別提升24和23倍。性能測試結(jié)果表明,本文提出的基于內(nèi)存數(shù)據(jù)庫的快速處理技術(shù)解決方案在新一代航班信息顯示系統(tǒng)的應(yīng)用中達(dá)到了良好的效果,極大地提升了新一代航班信息顯示系統(tǒng)的業(yè)務(wù)處理效率和實時處理能力。
新一代航班信息顯示系統(tǒng)強(qiáng)調(diào)數(shù)據(jù)處理的及時性、有效性,要求從上游系統(tǒng)發(fā)布的數(shù)據(jù)實時反映在顯示屏幕上,本文提出的基于內(nèi)存的數(shù)據(jù)快速處理技術(shù)解決方案,整合了內(nèi)存數(shù)據(jù)庫技術(shù)、數(shù)據(jù)緩存技術(shù)、異步處理機(jī)制和NIO技術(shù),新一代航班信息顯示系統(tǒng)的處理速度遠(yuǎn)高于行業(yè)標(biāo)準(zhǔn),有效解決了傳統(tǒng)航顯系統(tǒng)數(shù)據(jù)處理效率低、航班信息服務(wù)缺乏個性化等問題,基本消除了繁忙時段航班動態(tài)排隊時間,保證了航班數(shù)據(jù)的實時性。本文提出的方案在首都機(jī)場新一代航班信息顯示系統(tǒng)的應(yīng)用中取得了良好的效果,為以后國內(nèi)樞紐機(jī)場的航班信息顯示系統(tǒng)建設(shè)提供了良好的技術(shù)積累和實施經(jīng)驗。
[1]金 輝,石 敏.新一代航班信息顯示系統(tǒng)——首都國際機(jī)場新航站樓航班信息顯示系統(tǒng)[J].計算機(jī)工程與應(yīng)用,2011,37(4):105-108.
[2]石 敏,金 輝,田向東.航班信息顯示系統(tǒng)中公共信息顯示問題研究[J].微機(jī)發(fā)展,2004,14(4):80-81,109.
[3]GARCIA-MOLINA H,SALEM K.Main memory database systems:an overview[J].IEEE Transactions on Knowledge and Data Engineering,1992,4(6):509-516.
[4]顧榮慶,楊開杰,徐汀榮.分布式數(shù)據(jù)緩存技術(shù)研究[J].計算機(jī)應(yīng)用與軟件,2011,28(6):202-204.
[5]賀 杰.非阻塞輸入輸出在信息交換系統(tǒng)中的應(yīng)用[J].軟件導(dǎo)刊,2011,10(5):135-137.
[6]周游弋,董道國,金 城.高并發(fā)集群監(jiān)控系統(tǒng)中內(nèi)存數(shù)據(jù)庫的設(shè)計與應(yīng)用[J].計算機(jī)應(yīng)用與軟件,2011,28(6):128-130.
[7]石英偉,姜 浩.實用內(nèi)存數(shù)據(jù)庫核心及其在VLR系統(tǒng)中的應(yīng)用[J].計算機(jī)技術(shù)與發(fā)展,2008,18(1):216-219.