張成偉 張偉航
摘 要:深圳機場協(xié)同決策系統(tǒng)(CDM)是在采集、整合機場終端運行系統(tǒng)中各單位的運行和業(yè)務信息的基礎上,實現(xiàn)信息的發(fā)布和共享,使各單位獲得機場運行相同的情景意識,提供協(xié)同決策的基礎平臺。本文對實現(xiàn)該系統(tǒng)數(shù)據(jù)交換的Web Service進行了介紹,并重點探討了基于REST實現(xiàn)方式的應用。
關鍵詞:協(xié)同決策 Web Service REST
中圖分類號:TP39 文獻標識碼:A 文章編號:1672-3791(2014)02(a)-0005-02
協(xié)同決策制定CDM(Collaborative Decision Making)是指能夠采集、整合和共享航班保障運行系統(tǒng)中各單位的運行和業(yè)務信息并在此基礎上提供各種決策工具的平臺[1]。CDM的核心理念是聯(lián)合所有空中交通活動參與者與管理者,共同提高空中交通管理水平、機場運行效率和服務水平。
深圳空管站從2007年開始,經(jīng)過多年努力,主導研發(fā)了深圳航班運行協(xié)同決策系統(tǒng)(包括空管航班排序系統(tǒng)和協(xié)同決策系統(tǒng)兩部分,以下簡稱CDM),于2011年9月29日完成在深圳空管站、深圳監(jiān)管局、珠??展苷尽拈T塔臺、珠海進近、深圳機場和深圳駐場各航空公司的部署工作,開始試驗運行;并于2012年5月10日通過了民航局人事科教司組織的項目成果鑒定。鑒定委員會一致認為:該系統(tǒng)開創(chuàng)了航班運行保障新模式,填補了國內(nèi)的空白,達到了國內(nèi)領先水平,具有顯著的社會和經(jīng)濟效益[2]。
CDM主要采用Web Service技術在異構系統(tǒng)間進行數(shù)據(jù)交換。過去,Web Service在CDM中的實現(xiàn)方式普遍基于XML的SOAP。本文在CDM系統(tǒng)中進行了基于REST實現(xiàn)方式的研究和應用嘗試。
1 Web Service在CDM中的應用
Web Service是部署在Web上的軟件組件或應用程序,提供了某種特定的功能服務,可在Web上發(fā)布、發(fā)現(xiàn)和使用。Web服務的最大特點是:具有Internet層面上的標準描述和接口,Web Service以一種平臺和編程語言無關的方式解耦合了服務提供者和服務消費者,這一重要的特征把Web Service和其他一些綁定特定平臺和編程語言的解決方案區(qū)分開來。通過以一種標準的方式暴露接口,Web Service提高了應用的重用性和可適配性。
CDM數(shù)據(jù)交換定義了多種報文格式,這些報文使用現(xiàn)在業(yè)界流行的XML文件格式(SOAP規(guī)范),便于擴展和應用,每種報文用于不同的航班信息交換,如用于航班計劃交換的報文、用于氣象信息交換的報文、用于航行情報交換的報文等。
CDM系統(tǒng)對外公布Web Service接口供各個系統(tǒng)調(diào)用。Web Service接口接收各方發(fā)送的報文,并將結果返回給各個調(diào)用方。CDM數(shù)據(jù)交換接口的內(nèi)部具體處理流程分為:XML文件解析接口、數(shù)據(jù)策略接口、業(yè)務數(shù)據(jù)保存接口及XML日志處理接口。
CDM的網(wǎng)絡連接示意圖如圖1所示,使用基于SWIM技術的概念,CDM為中心節(jié)點,接收和提供其他系統(tǒng)所需要的信息,避免了以往蜘蛛網(wǎng)的網(wǎng)絡結構,使得系統(tǒng)在簡單的架構下實現(xiàn)強大的信息交換能力。
2 REST技術標準
在當前的Web Service領域存在著不少技術標準,其中最主要的兩個是WS-*(SOAP)和REST。WS-*基于通訊雙方的互操作流程定義操作方法來實現(xiàn)Web Service;而REST則采用了和獲取網(wǎng)頁類似的架構,通過定義資源采用標準HTTP來實現(xiàn)通訊雙方的互操作。
SOAP是一個基于XML定義的消息架構和消息格式以及一套基本的處理協(xié)議。整個WS-*是由很多相關的技術規(guī)范組成的,由于這些成熟度各異的規(guī)范是由不同的標準組織來維護和支持的,因此規(guī)范之間可能是互為補充、部分重疊、甚至是相互競爭的關系。這種各模塊獨立的發(fā)展方式導致了WS-*變成了一個龐大并復雜的技術規(guī)范集。WS-*規(guī)范包含了很多用來支持高級功能的子規(guī)范,但了解這些規(guī)范并且真正使用的人并不在多數(shù)[3]。
REST并不是一種具體的實現(xiàn)技術,而是一種軟件架構風格,主要有以下特點:從資源的角度來考察整個網(wǎng)絡,每個資源有唯一標識;使用通用的連接器接口操作資源;對資源的操作不會改變資源標識;連接協(xié)議具有無狀態(tài)性;能夠使用Cache機制來增進性能。REST風格幾乎是為HTTP協(xié)議量身定做的,在HTTP協(xié)議中用URI來標識唯一的資源,用GET、PUT、POST、DELETE等動詞來操作資源,HTTP協(xié)議是無狀態(tài)協(xié)議,可以通過Cache來提高性能。基于REST的架構風格,人們把它使用到了Web服務中。在目前主流的三種Web服務實現(xiàn)方案中,REST的Web服務比基于SOAP和XML-RPC方式的Web服務更加簡潔高效。它直接使用HTTP協(xié)議就可以實現(xiàn)Web服務,不需要額外的封裝協(xié)議和遠程進程的調(diào)用[4]。
由于REST直接利用了現(xiàn)有成熟的W3C/IETF標準,使得人們使用它的學習成本很低。正如圖2所示那樣近幾年人們對REST的使用程度已遠超SOAP。
3 REST在CDM中的應用
目前CDM中的Web Service主要以滿足SOAP規(guī)范的XML交互數(shù)據(jù)為主,采用了JSON格式交互的REST Web Service在部分產(chǎn)品上做了嘗試。實際使用中發(fā)現(xiàn),無論是開發(fā)的便捷程度,還是運行的效率,REST方式都要略勝一籌。由于沒有數(shù)據(jù)格式的限制,可以基于應用需要選擇輕量級的消息格式,REST給了CDM平臺更大的自由度來對服務性能進行按需優(yōu)化。
如圖3為CDM中圖形化航班查詢界面,該模塊前臺使用基于Flex實現(xiàn)的GIS技術,將機場氣象信息與出港航班動態(tài)進行了初步融合[5]。在Flex獲取CDM后臺數(shù)據(jù)(包括航班動態(tài)信息、主要機場和目的地相關機場的天氣情況)的選用方案中,XML顯得臃腫復雜,F(xiàn)lex拆包解析XML的效率沒有JSON高效。更進一步,該模塊部分功能調(diào)用了瀏覽器的JavaScript容器運行,JavaScript對JSON的直接支持更是XML方式望塵莫及的。
4 結語
CDM需要在各種異構系統(tǒng)間交換數(shù)據(jù),因此Web Service的應用場景最為普遍。SOAP/XML和REST/JSON是主要的兩種實現(xiàn)標準和數(shù)據(jù)格式。相對于SOAP方式的臃腫,REST方式實現(xiàn)的Web Service在深圳CDM系統(tǒng)中的應用是簡潔有效的。根據(jù)應用的不同需求,在目前SOAP之外再暴露一套定義良好的REST Web Service接口是一個可行的并且合理的解決方案,來使得CDM的更多應用成為具有可交互性的服務。
參考文獻
[1] 張偉航.構建協(xié)同決策系統(tǒng)基礎平臺中遇到的問題和解決方法[J].民航科技,2010,1:102-104.
[2] 張成偉,李曉春,張偉航,等.深圳航班運行協(xié)同決策新模式中氣象產(chǎn)品的現(xiàn)狀和發(fā)展[J].空中交通,2012,12(增刊):58-61.
[3] 郭峰,施德明,陶雋.REST,為企業(yè)應用插上新翅膀[EB/OL][2013-12-5].http://qing.blog.sina.com.cn/tj/88ca09aa330004br.html.
[4] 左超,王芳.使用Node.js開發(fā)基于JavaScript的RESTful應用[EB/OL][2013-12-2].http://www.ibm.com/developerworks/cn/web/1211_zuochao_nodejsrest/.
[5] Bianbian.Org.在協(xié)同決策系統(tǒng)內(nèi)實現(xiàn)基于Flex+ArcGIS的航班天氣展示[EB/OL][2012-6-18].http://bianbian.org/technology/364.html.