王 磊,王 皓
(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京 100083)
當(dāng)前,計(jì)算機(jī)技術(shù)經(jīng)歷了飛速的發(fā)展,已經(jīng)相當(dāng)成熟,并已在全世界范圍內(nèi)得到了廣泛而深刻的應(yīng)用,使人們的日常生活發(fā)生了翻天覆地的變化。基于當(dāng)前全球信息化和經(jīng)濟(jì)一體化的發(fā)展趨勢(shì),如何最大限度地利用各種信息技術(shù),充分開發(fā)和利用龐大而復(fù)雜的信息資源,已經(jīng)成為掌握未來發(fā)展主動(dòng)權(quán)和制高點(diǎn)的重要課題[1]。
近幾年來,隨著社會(huì)的發(fā)展和人民生活水平的提高,人們?cè)絹碓蕉嗟剡x擇飛機(jī)作為長(zhǎng)距離旅行的交通工具,因此對(duì)機(jī)場(chǎng)效率提出了更高的要求。而機(jī)場(chǎng)信息系統(tǒng)極大地推動(dòng)了民航機(jī)場(chǎng)的發(fā)展,適應(yīng)了高速增長(zhǎng)的民航業(yè)務(wù)的需要,因此民航機(jī)場(chǎng)建立自己特有的信息系統(tǒng)已經(jīng)刻不容緩。而地理信息系統(tǒng)作為機(jī)場(chǎng)信息系統(tǒng)的重要組成部分,可以幫助民航機(jī)場(chǎng)提高運(yùn)行效率、減少中間環(huán)節(jié)、規(guī)范機(jī)場(chǎng)信息管理、降低機(jī)場(chǎng)的管理成本[1]。
機(jī)場(chǎng)信息系統(tǒng)軟件中的地理信息系統(tǒng),即在原有的機(jī)場(chǎng)信息系統(tǒng)中添加一些單位(如飛機(jī)機(jī)位、地面保障車輛等)的地理信息監(jiān)控功能,其基本任務(wù)包括:(1)地圖航班信息和地面保障車輛信息實(shí)時(shí)推送到大屏展示模塊進(jìn)行顯示;(2)滿足監(jiān)控過程中對(duì)信息吞吐量、實(shí)時(shí)性和安全性等的要求。所以說,要實(shí)現(xiàn)一個(gè)完整的機(jī)場(chǎng)地理信息系統(tǒng),需要實(shí)時(shí)通信技術(shù)和安全加密技術(shù)等多種信息技術(shù)的融合,并隨著系統(tǒng)相關(guān)組件技術(shù)的進(jìn)化而不斷優(yōu)化。目前,國(guó)內(nèi)外針對(duì)機(jī)場(chǎng)地理信息系統(tǒng)的研究很多,但是都沒有形成完整的標(biāo)準(zhǔn)體系。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,基于B/S架構(gòu)的Web應(yīng)用在各行各業(yè)越來越普及,而傳統(tǒng)的C/S架構(gòu)憑借其獨(dú)特優(yōu)勢(shì)在特定行業(yè)還保持著自己的地位。本文通過對(duì)B/S架構(gòu)和C/S架構(gòu)的優(yōu)劣勢(shì)對(duì)比,以及內(nèi)存數(shù)據(jù)庫(kù)Redis等技術(shù)的分析和研究,提出一種基于C/S架構(gòu)的機(jī)場(chǎng)地理信息系統(tǒng)解決方案,該方案具有實(shí)時(shí)性好、安全性高等優(yōu)勢(shì),并在中航油智慧加油系統(tǒng)改造項(xiàng)目中實(shí)現(xiàn)及成功應(yīng)用。
在機(jī)場(chǎng)信息系統(tǒng)軟件的地理信息系統(tǒng)中,網(wǎng)絡(luò)架構(gòu)、實(shí)時(shí)地理位置信息的傳輸方式和信息加密手段的選擇是地理信息系統(tǒng)能否高效安全的核心問題。其中,網(wǎng)絡(luò)架構(gòu)指的是用戶與服務(wù)端的交互方式,比如B/S架構(gòu)用戶使用的是瀏覽器,而C/S架構(gòu)使用的是客戶端。實(shí)時(shí)信息的傳輸方式指的是地理信息系統(tǒng)中服務(wù)器與數(shù)據(jù)庫(kù)和客戶端的通信方式[2]。應(yīng)用系統(tǒng)之間的數(shù)據(jù)傳輸有三個(gè)要素:傳輸方式、傳輸協(xié)議和數(shù)據(jù)格式[2]。
在地理信息系統(tǒng)中,由于存在不同的場(chǎng)景和不同的需求,因此需要根據(jù)實(shí)際需求來選擇不同的網(wǎng)絡(luò)架構(gòu)。當(dāng)前地理信息系統(tǒng)中的網(wǎng)絡(luò)架構(gòu)主要包括以下兩種:
(1)C/S架構(gòu)(客戶端/服務(wù)器):它是最先出現(xiàn)的網(wǎng)絡(luò)架構(gòu)模式,用于用戶與服務(wù)器之間的通信交互[2]。比如:QQ、迅雷等客戶端使用的就是C/S架構(gòu)。C/S架構(gòu)的系統(tǒng)架構(gòu)圖如圖1所示。客戶端程序發(fā)出相應(yīng)的請(qǐng)求訪問業(yè)務(wù)邏輯服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器,相應(yīng)的服務(wù)器根據(jù)客戶端的具體請(qǐng)求處理完畢后,返回相應(yīng)的結(jié)果給客戶端程序[3]。
圖1 C/S系統(tǒng)架構(gòu)圖
(2)B/S架構(gòu)(瀏覽器/服務(wù)器):它是目前應(yīng)用系統(tǒng)的發(fā)展方向。B/S架構(gòu)是隨著Internet技術(shù)的興起,對(duì)C/S架構(gòu)的改進(jìn),為了區(qū)別傳統(tǒng)的C/S模式而稱為B/S模式[4]。比如:騰訊網(wǎng)、淘寶網(wǎng)等各種網(wǎng)站使用的就是B/S模式。B/S架構(gòu)的系統(tǒng)架構(gòu)圖如圖2所示。在這種結(jié)構(gòu)下,用戶通過瀏覽器來進(jìn)入工作頁(yè)面,極少的業(yè)務(wù)邏輯在前端實(shí)現(xiàn),主要的業(yè)務(wù)邏輯在服務(wù)器實(shí)現(xiàn),形成三層結(jié)構(gòu)[4]。
圖2 B/S系統(tǒng)架構(gòu)圖
B/S架構(gòu)和C/S架構(gòu)各有優(yōu)勢(shì),它們?cè)诟鱾€(gè)方面的對(duì)比如表1所示??紤]到機(jī)場(chǎng)這個(gè)場(chǎng)景的特定需求:版本升級(jí)頻次低、用戶群?jiǎn)我?、安全系?shù)要求高等特點(diǎn),本文最終選擇了C/S架構(gòu)作為機(jī)場(chǎng)地理信息系統(tǒng)的實(shí)現(xiàn)架構(gòu)。
表1 B/S和C/S各方面對(duì)比
由于應(yīng)用系統(tǒng)之間的數(shù)據(jù)傳輸存在三個(gè)要素:傳輸方式、傳輸協(xié)議和傳輸格式,因此,本文將對(duì)實(shí)時(shí)信息傳輸?shù)娜齻€(gè)方面進(jìn)行分析。
1.2.1 實(shí)時(shí)數(shù)據(jù)的傳輸方式
常見的數(shù)據(jù)傳輸方式有以下兩種:
(1)WebSocket:它是一種建立在TCP連接上的全雙工通信協(xié)議,是典型的C/S架構(gòu)下的交互方式。服務(wù)器通過特定的IP地址和端口提供服務(wù);而客戶端通過服務(wù)器指定的IP地址和端口進(jìn)行消息交互[5]。其中的傳輸協(xié)議可以是TCP協(xié)議或者是UDP協(xié)議,服務(wù)器與客戶端之間約定了請(qǐng)求報(bào)文格式和響應(yīng)報(bào)文格式[6]。
(2)message方式:Java消息服務(wù)(Java Message Service)是message數(shù)據(jù)傳輸?shù)牡湫蛯?shí)現(xiàn)方式。兩個(gè)系統(tǒng)之間通過一個(gè)消息服務(wù)器進(jìn)行數(shù)據(jù)交換,一個(gè)系統(tǒng)發(fā)送消息到消息服務(wù)器,如果另一個(gè)系統(tǒng)訂閱了該消息,消息服務(wù)器就將其發(fā)送給另一個(gè)系統(tǒng)。其中,雙方需要提前約定消息格式[5]。目前市場(chǎng)上有很多開源的消息中間件,比如RabbitMQ、Kafka等。
根據(jù)以上兩種數(shù)據(jù)傳輸方式的特性,本文提出的機(jī)場(chǎng)地理信息系統(tǒng)分別在不同的模塊使用了不同的方式,在客戶端和服務(wù)器之間使用了WebSocket方式,而在服務(wù)器和數(shù)據(jù)庫(kù)之間使用了message方式。
1.2.2 實(shí)時(shí)數(shù)據(jù)的傳輸協(xié)議
常見的傳輸層協(xié)議有以下兩種:
(1)TCP協(xié)議:位于傳輸層,提供可靠的字節(jié)流服務(wù)。所謂的字節(jié)流服務(wù)指的是:為了方便傳輸,將大塊的數(shù)據(jù)分割以報(bào)文段為單位進(jìn)行管理[4]。而可靠的傳輸服務(wù)指的是:能夠保證數(shù)據(jù)準(zhǔn)確可靠地傳輸給對(duì)方。TCP協(xié)議通過多種方式來保證數(shù)據(jù)的可靠性:校驗(yàn)和;序列號(hào);連接管理;流量控制;擁塞控制;超時(shí)重傳;確認(rèn)應(yīng)答[5]。它適用于對(duì)效率要求相對(duì)較低,但是對(duì)數(shù)據(jù)準(zhǔn)確性要求相對(duì)較高的場(chǎng)景。
(2)UDP協(xié)議:位于傳輸層,提供不可靠的數(shù)據(jù)包服務(wù)。所謂的數(shù)據(jù)包服務(wù)指的是:為了方便傳輸,將數(shù)據(jù)以數(shù)據(jù)包的形式整合進(jìn)行管理[3]。而不可靠的傳輸服務(wù)指的是:會(huì)盡最大可能傳輸給對(duì)方,但不保證數(shù)據(jù)能夠完整準(zhǔn)確地傳輸給對(duì)方[3]。它適用于對(duì)效率要求較高,但對(duì)準(zhǔn)確性要求較低的場(chǎng)景。
考慮到兩種傳輸協(xié)議的特性,結(jié)合機(jī)場(chǎng)相對(duì)于效率,準(zhǔn)確性更加重要的實(shí)際需求,選擇TCP協(xié)議作為傳輸協(xié)議。
1.2.3 實(shí)時(shí)數(shù)據(jù)的傳輸格式
常見的傳輸格式有以下兩種:
(1)JSON格式:JSON(JavaScript Object Notation,JS對(duì)象簡(jiǎn)譜)是一種輕量級(jí)的數(shù)據(jù)交換格式。完全不同于編程語(yǔ)言的文本格式,它采用了一種特有的文本格式來存儲(chǔ)和表示數(shù)據(jù)。清晰明了的層次結(jié)構(gòu)使得JSON成為了相當(dāng)理想的數(shù)據(jù)交換格式。它不僅易于人閱讀和編寫,同時(shí)易于機(jī)器的解析和生成,還能有效地提高網(wǎng)絡(luò)的傳輸效率[7]。
(2)XML格式:XML(可擴(kuò)展標(biāo)記語(yǔ)言)是一種用于標(biāo)記電子文件并使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言。它非常適合互聯(lián)網(wǎng)傳輸,提供了統(tǒng)一的方法來描述和交換獨(dú)立于應(yīng)用程序和供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。它是當(dāng)前支持跨平臺(tái)的、依賴于內(nèi)容的數(shù)據(jù)交換技術(shù),也是處理分布式結(jié)構(gòu)信息的有效工具。
JSON和XML都有各自特有的優(yōu)勢(shì),它們?cè)诟鱾€(gè)方面的對(duì)比如表2所示??紤]到機(jī)場(chǎng)場(chǎng)景實(shí)時(shí)性要求高等特點(diǎn),最終選擇了JSON格式作為機(jī)場(chǎng)地理信息系統(tǒng)實(shí)時(shí)信息的傳輸格式。
表2 JSON和XML的對(duì)比
本文所涉及的基于C/S架構(gòu)的機(jī)場(chǎng)地理信息系統(tǒng)采用了內(nèi)存數(shù)據(jù)庫(kù)Redis和消息隊(duì)列系統(tǒng)Kafka,結(jié)合WebSocket通信技術(shù)、Token身份認(rèn)證技術(shù),系統(tǒng)結(jié)構(gòu)清晰明了,其總體架構(gòu)如圖3所示。
圖3 機(jī)場(chǎng)地理信息系統(tǒng)總體架構(gòu)
用戶登錄大屏顯示系統(tǒng)后,通過用戶信息加載對(duì)應(yīng)機(jī)場(chǎng)的地圖信息。該模塊主要功能包括:(1)統(tǒng)計(jì)信息:航班量、保障量、油單、已供油量、車輛,以及油料參數(shù)的統(tǒng)計(jì)信息。(2)篩選信息:根據(jù)飛機(jī)機(jī)型和加油狀態(tài),點(diǎn)擊相應(yīng)圖標(biāo)進(jìn)行篩選;(3)詳細(xì)信息:點(diǎn)擊飛機(jī)查看飛機(jī)詳細(xì)信息,點(diǎn)擊機(jī)位查看當(dāng)日機(jī)位待停已停飛機(jī)信息,點(diǎn)擊車輛查看車輛詳細(xì)信息;(4)數(shù)據(jù)收集:后臺(tái)自動(dòng)對(duì)車輛的軌跡信息、報(bào)警信息、越界信息等進(jìn)行日志記錄;(5)右側(cè)菜單篩選:對(duì)地圖設(shè)備、地圖航班、航空公司、機(jī)位、區(qū)域管理等地圖展示內(nèi)容進(jìn)行篩選,也包含了地圖放大縮小等操作。該模塊的所有功能如圖4所示。
圖4 大屏顯示模塊功能組成
用戶登錄后臺(tái)管理系統(tǒng)后,通過用戶信息加載對(duì)應(yīng)機(jī)場(chǎng)的地圖信息,可對(duì)地圖相應(yīng)功能進(jìn)行查看或管理。加載后展示車輛列表和當(dāng)日航班列表信息;可根據(jù)車牌、時(shí)間、狀態(tài)等條件查看車輛的歷史軌跡和報(bào)警日志信息;區(qū)域管理,自定義區(qū)域分為管理區(qū)域和非管理區(qū)域,可在地圖上直接進(jìn)行新增區(qū)域,錄入?yún)^(qū)域相應(yīng)屬性(包括區(qū)域名字、限高、限速、超時(shí)報(bào)警時(shí)效等),可對(duì)已劃好區(qū)域進(jìn)行增刪改查功能;機(jī)位油井管理,可以對(duì)機(jī)位和油井信息地圖進(jìn)行增刪改查;測(cè)距,可以測(cè)量出在機(jī)場(chǎng)兩點(diǎn)之間的道路距離。其包含的所有功能如圖5所示。
圖5 后臺(tái)管理模塊功能組成
考慮到機(jī)場(chǎng)對(duì)信息安全的要求比較高,本文提出的機(jī)場(chǎng)地理信息系統(tǒng)分別在以下三個(gè)維度對(duì)數(shù)據(jù)進(jìn)行加密處理:(1)用戶維度:身份驗(yàn)證機(jī)制;(2)數(shù)據(jù)傳輸維度:數(shù)據(jù)傳輸加密機(jī)制;(3)數(shù)據(jù)庫(kù)維度:數(shù)據(jù)存儲(chǔ)加密機(jī)制。
首先在用戶維度采取兩個(gè)措施:(1)啟動(dòng)軟件時(shí),首先要求用戶輸入用戶身份信息(用戶名和口令),對(duì)其進(jìn)行比對(duì)識(shí)別后,合法用戶方能夠啟動(dòng)運(yùn)行該軟件,而對(duì)非法用戶將給予登錄警示和記錄,登錄警示多次將退出;(2)使用用戶身份卡、讀卡器和識(shí)別接口卡等設(shè)備對(duì)本軟件運(yùn)行的計(jì)算機(jī)設(shè)備的開關(guān)機(jī)及軟件啟動(dòng)等操作進(jìn)行控制。在數(shù)據(jù)傳輸維度采取以下兩個(gè)措施:(1)使用線路保密機(jī)等設(shè)備,對(duì)需要對(duì)外交換的數(shù)據(jù)包進(jìn)行加密傳輸;(2)采取端端加密措施。在數(shù)據(jù)存儲(chǔ)維度采取以下三個(gè)措施:(1)通過對(duì)數(shù)據(jù)庫(kù)文件的加密存放,對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)進(jìn)行加密;(2)對(duì)數(shù)據(jù)庫(kù)表中某些關(guān)鍵字段進(jìn)行加密入庫(kù)存儲(chǔ);(3)對(duì)存放在計(jì)算機(jī)硬盤上的各種數(shù)據(jù)文件進(jìn)行加密。
本機(jī)場(chǎng)地理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)均基于中航油智慧加油系統(tǒng)改造項(xiàng)目,支持在Windows和CentOS操作系統(tǒng)上運(yùn)行,而且提供了飛機(jī)狀態(tài)監(jiān)控、航班信息顯示和車輛狀態(tài)監(jiān)控等多項(xiàng)功能。通過使用本文設(shè)計(jì)的機(jī)場(chǎng)地理信息系統(tǒng),可以實(shí)現(xiàn)在機(jī)場(chǎng)指揮控制中心運(yùn)行大屏顯示模塊,實(shí)現(xiàn)地圖設(shè)備篩選、機(jī)位快速定位、區(qū)域管理等功能。還可以通過前臺(tái)來調(diào)用后臺(tái)管理模塊,實(shí)現(xiàn)車輛的歷史報(bào)警信息查詢、車輛的歷史軌跡回放等功能。
本文通過分析機(jī)場(chǎng)信息系統(tǒng)軟件的地理信息系統(tǒng)相關(guān)技術(shù)的優(yōu)劣,同時(shí)考慮到機(jī)場(chǎng)這個(gè)特定場(chǎng)景下的各種特殊需求,設(shè)計(jì)了基于C/S網(wǎng)絡(luò)框架的新型機(jī)場(chǎng)地理信息系統(tǒng),最后在中航油智慧加油系統(tǒng)改造項(xiàng)目中實(shí)現(xiàn)并成功應(yīng)用,該系統(tǒng)具有安全性高、實(shí)時(shí)性好等多項(xiàng)優(yōu)勢(shì),較好地滿足了中航油智慧加油系統(tǒng)改造項(xiàng)目在各個(gè)方面的應(yīng)用要求,實(shí)現(xiàn)了項(xiàng)目預(yù)期。