?

基于Flex技術的航班信息發布系統的實現

2014-10-21 19:57李娟
計算機光盤軟件與應用 2014年24期

摘 要:航班信息發布系統是航空公司、機場等航空服務部門用來掌握航班實時動態信息的重要系統。Flex技術既有桌面軟件豐富的表現力,又具有Web應用系統易部署、易維護的特點。本文講解了基于Flex技術的航班信息發布平臺的總體框架,并詳細介紹了該平臺的主要功能,對系統建設的關鍵技術進行了詳細分析。

關鍵詞:富互聯網應用程序;RIA;Flex技術;航班信息發布

中圖分類號:TP311.13

為了將空中交通管制部門掌握的航班信息與航空公司、機場、航空油料公司等部門之間實現共享,研制開發一套航班信息發布系統,為這些航空地面保障單位提供多方位的信息服務,就顯得相當重要了。

系統的總體架構采用的是客戶端/服務器(C/S)架構,這就引發了一個問題,軟件分發不方便。如果客戶端應用程序發生變化,維護部門不得不對每一個終端軟件進行重裝和升級。近些年來,隨著Web技術的迅猛發展和富互聯網應用(RIA)技術的興起,使得Web應用程序能夠實現類似于客戶端應用程序的豐富的功能和快速的響應效果。同時Web應用程序維護方便,升級軟件時只需要更新服務器端的Web應用,解決了多年來客戶端應用難維護的問題。Flex是Adobe公司推出的新一代的開發工具,允許開發者構建和部署Flash平臺上的RIA應用,其具備優秀的動畫效果,不僅具有快速顯示柵格圖片的能力,也有強大的矢量數據繪制與交互能力[1]。本文探討運用Flex技術將航班信息的動態效果顯示在網頁上,運用FLEX技術實現航班信息發布系統。

1 系統目標與設計

航班的飛行計劃以及實時動態信息存儲在空管部門的飛行信息處理系統、雷達數據處理系統中,因此我們可以基于瀏覽器的方式,采用FLEX設計框架以及Web Service技術,建立一套綜合的航班信息發布系統,為機場管理部門、航空公司、航空配餐等民航單位提供一個獲取和應用飛行計劃動態信息的統一信息集成平臺。

從安全方面、層次化方面和統一服務三個方面考慮,本系統采用三層體系架構:數據訪問層,業務邏輯層,表現層。數據訪問層的數據來源于空中交通管制部門的業務系統,包括航班動態信息、航班計劃信息、飛行航線信息、航班停機位、用戶信息等數據,存儲于多個關系型數據庫SQL SERVER 2010中。業務邏輯層采用基于.NET平臺的Web Service服務實現業務數據的提取、分析、集成以及用戶認證等功能。表現層采用Flex技術,實現體驗豐富的、互動性強的網頁效果。中間服務層通過把應用和數據隔離,所有的應用通過調用統一的Web Service服務獲取數據,來構建靈活的系統,使得系統不會受到數據的物理位置的影響,也不會受到需要存取數據信息的應用個數的影響,這樣就實現了系統之間的信息的集成。整個系統通過后臺服務程序實時獲取航班動態信息、航班計劃信息、飛行航線信息、航班停機位、開車時間等業務信息,通過Flex技術開發的界面實現航班動態變化的信息顯示,快捷的界面響應,提供通用的用戶界面特性,如拖放,以及在線和離線操作能力。系統的總體架構如圖1所示。

2 系統功能與實現

2.1 系統功能。本系統發布中南地區航班動態、航班計劃,航班信息查詢、提供關注的航班設置窗口,提供到港航班和變更航班的提示功能,提供航班加油提示功能。航班計劃指航空公司向空管單位申請執行的航班計劃,包括次日航班計劃和航班時刻表。航班計劃包括航班號、起飛降落機場、預計起飛降落時間、機型、機號等。航班動態指飛行計劃在實際執行過程中的全程動態變化信息。航班動態包括航班變更信息、航班號、機號、機型、任務、起站、落站、預計起飛時間、預計到達時間、實際起飛時間、實際到達時間、停機位、是否延誤,是否取消。

基于Flex的航班信息發布網站調用遠程Web Service服務,向服務端發送數據調用請求,Web Service服務根據請求類型,對數據庫的數據進行提取、分析、融合等處理,將處理后的數據包括航班動態、航班計劃、航班歷史、停機位信息、查詢結果等數據發送到航班信息發布網站。當數據庫中的航班信息有更新時,Web Service將最新更新的數據推送到航班信息發布網站,信息發布網站實時刷新數據顯示,并提供航班的變更告、到達告警、加油告警等功能。用戶可以選擇所關注的航空公司,應用程序在提示窗口中根據用戶的選擇只提示用戶所關注的航空公司的航班。

2.2 航班數據的獲取和顯示。Flex程序客戶端代碼通常由MXML和Action Script兩部分組成。MXML是一種XML格式的標記語言,其作用是進行界面的描述;Action Script是一種面向對象編程語言[2]。航班數據通過調用遠程Web Service服務獲取得到。Flex有兩種方式可以調用Web服務。一種是基于標簽。在標記語言MXML中,Flex提供了標簽來指向一個服務器對象來獲取需要的數據。另一種是基于ActionScript,在腳本中動態創建。第一種方法通過標簽的方式,在標簽的WSDL參數里指定Web Service的地址,Flex可以用它來查找服務器對象的功能的相關信息,這種方式將服務地址寫在代碼里,在服務地址變更時需要修改程序代碼重新編譯,不夠靈活。本系統采用的是第二種方法,通過編程方式基于ActionScript實現動態調用服務的方法。創建一個Web Service類型的對象service,通過loadWSDL()方法調用遠程Web Service,動態為對象指定相關的處理函數。在使用Web服務前必須要加載WSDL文件,以便令Flex知道該如何收發數據。通過AddEventListener()方法給Service對象增加事件監聽代碼,成功時調用onSuccess()方法處理返回結果,失敗時調用onFault()處理方法。

為了更好地實現Flex應用與基于.NET的Web服務的交互,Web服務返回的數據集合采用的是泛型集合類型List,而未采用DataTable。雖然Flex是可以綁定到DataTable類型的數據并通過數據顯示控件顯示出來的,但是不足有二點,一是速度比較慢,因為要經過復雜的序列化和反序列化處理,二是返回的數據的可操作性差,在客戶端獲取數據后,還需要對數據進行更改、排序、過濾等操作。DataTable是個.NET自有的對象類型,在Flex中沒有對應的數據類型,無法實現進一步的操作。在Flex中數據保存在數組集合ArrayCollection中可以實現更改、排序等操作,而ArrayCollection正好可以與.NET中的泛性集合List對應,在接收數據時可轉換為ArrayCollection數據集合,這樣就能夠順利獲取數據并進行進一步的操作了。ArrayCollection作為數據提供者有多個優勢:第一,可以提供數據的排序、過濾、查找等功能;第二,當數據內容發生更改時,更改會立刻反映到所有綁定到它的控件中;第三,作為顯示控件的數據源,數據保存在本地的內存中,刷新和排序的速度非???,比普通頁面需要連到Web服務器刷新要快很多。在數據顯示前,對航班數據先按照預計到達時間排序,作為數據網格組件的數據源,并且聲明為可動態綁定的,用[Bindable]聲明。當數據源的數據變化了,網格組件顯示的數據也會動態實時刷新了。程序的顯示界面如圖2:

構建共享對象保存用戶的個性化設置。航班信息發布的應用中,程序需要永久保存用戶設置的個性化數據,例如用戶關注的航班公司,用戶關注的航班,在航班變更提示窗口中需要根據關注的航班進行提示。Adobe Flash提供了共享對象SharedObject類來保存客戶端的數據,共享對象與Cookie類似,但是功能更強大,數據不僅可以永久保存,還能保存更加復雜的數據結構。正好滿足了航班信息發布網站保存用戶的特定設置的需求,以實現更豐富更個性化的用戶體驗。

Flash的本地共享對象是一些可由用戶訪問的站點在計算機上創建的數據文件。通過ActionScript腳本來編寫代碼,網站可以將數據作為共享對象保存在用戶的機器上,用戶退出瀏覽器時,共享對象的值就會保存在本地文件中。當用戶下次訪問該網站時,它將加載該信息,從而使終端用戶擁有一種更加個性化的體驗。用戶在選擇界面選擇關注的航空公司集合,隨后航空公司名稱和航空公司的二字碼數據集保存在類型為ArrayCollection的復合型數組中。構建一個遍歷數組的for循環,在循環里,用數組的元素來填寫共享對象數組,這樣就實現了將復雜的二維數據集保存到共享對象中了。當用戶退出網站時,Flash Player自動將共享對象寫入磁盤默認路徑上一個后綴名為.sol文件中。也可以通過調用共享對象的fulsh()方法,立即將數據寫入磁盤。在用戶下一次運行信息服務網站時,通過調用SharedObject類的getLocal()方法來讀取已經保存的后綴名為.sol的文件。最后,構建一個for循環來遍歷保存在共享對象中的數據,將結果保存到類型為ArrayCollection的數組中,網頁上的表格顯示控件綁定數組,將航空公司的信息顯示出來,便完成了個性化設置的數據加載的功能。

3 結束語

信息技術的迅猛發展為基于Web方式的應用注入了活力。Flex技術與傳統Web技術相比,具有完整的瀏覽器可移植性,豐富的界面體驗、更少的網絡流量、更快捷的操作響應等優勢。在我國民航事業的飛速發展形勢下,航班信息的發布是民航信息化不可缺少的重要組成部分,基于Flex技術的航班信息發布系統提供實時準確的信息,豐富的功能和用戶體驗,具有易部署、易維護、跨平臺的特定,符合民航建立高效信息服務平臺的需求。目前該系統已在中南地區空管系統內運行,為航班信息服務提供了穩定高效的平臺。

參考文獻:

[1](美)Jeff Tapper,Micael Labriola,Matthew Boles,James Talbot.楊博,杜宏,譯.Flex 3權威指南[M].北京:人民郵電出版社,2009.

[2]彭新,劉永偉,葉長春.基于Flex和.NET開發RIA[D].武漢:中國地質大學,2010.

作者簡介:李娟(1976-),女,浙江蒼南人,工程師,本科,研究方向:航班信息系統應用與開發。

作者單位:民航中南空管局,廣州 510405

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合