徐國友,高文霞,劉 晶
(1. 民航職業(yè)技術(shù)學(xué)院 民航經(jīng)營管理學(xué)院,廣東 廣州 510403;2. 民航職業(yè)技術(shù)學(xué)院 飛機維修工程學(xué)院,廣東 廣州 510403)
民航地區(qū)管理局原機場生產(chǎn)統(tǒng)計系統(tǒng)是在DOS平臺下開發(fā)的,數(shù)據(jù)庫采用Foxpro 2.0開發(fā)。隨著民航業(yè)的快速發(fā)展,航空運輸總周轉(zhuǎn)量、貨郵運輸量和旅客運輸量的急劇增加,該系統(tǒng)逐漸暴露出諸多問題,已不能滿足現(xiàn)在的管理要求。原統(tǒng)計系統(tǒng)存在的問題主要表現(xiàn)在:技術(shù)落后,操作困難,數(shù)據(jù)需重復(fù)錄入;統(tǒng)計分析方式固定,統(tǒng)計報表樣式單一;民航地區(qū)管理局無法同步得到其管轄機場的生產(chǎn)統(tǒng)計數(shù)據(jù)。
為了解決上述問題,本課題組利用輕量級J2EE開發(fā)了一套新的民航機場生產(chǎn)統(tǒng)計系統(tǒng),客戶端采用智能客戶端[1-6](smart client)技術(shù),設(shè)計了2個數(shù)據(jù)庫:中心數(shù)據(jù)庫和本地數(shù)據(jù)庫,中心數(shù)據(jù)庫采用Oracle軟件開發(fā),本地數(shù)據(jù)庫采用Access軟件開發(fā),且實現(xiàn)了2個數(shù)據(jù)庫的數(shù)據(jù)同步。民航地區(qū)管理局利用該統(tǒng)計系統(tǒng)可更好地對民航機場進行科學(xué)管理和宏觀決策,且該統(tǒng)計系統(tǒng)得到了用戶一致好評。
民航機場生產(chǎn)統(tǒng)計系統(tǒng)采用三層體系架構(gòu),即數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層,并在客戶端增加了數(shù)據(jù)本地存儲功能。服務(wù)器端程序采用Jbuilder軟件開發(fā),智能客戶端程序采用Delphi軟件開發(fā)。
智能客戶端技術(shù)是一種新型的客戶端技術(shù),將胖客戶端與瘦客戶端應(yīng)用程序的部署和可管理性的優(yōu)點結(jié)合起來。智能客戶端[3]具有以下特征:
1)利用本地資源。智能客戶端可利用客戶端硬件資源以及其它軟件資源,且可集成或協(xié)調(diào)其它客戶端應(yīng)用程序。
2)利用網(wǎng)絡(luò)資源。智能客戶端可通過網(wǎng)絡(luò)共享異地的服務(wù)和數(shù)據(jù),并通過網(wǎng)絡(luò)獲得資源和服務(wù)。
3)支持偶爾連接。智能客戶端可為偶爾連接到網(wǎng)絡(luò)的用戶提供服務(wù),從而使用戶在脫機、低帶寬或高延遲網(wǎng)絡(luò)的狀態(tài)下,繼續(xù)高效地工作。
4)支持智能安裝。智能客戶端能提供靈活的管理部署方式,當(dāng)系統(tǒng)運行或位于后臺工作時,對自身進行智能更新。
5)支持多種客戶端設(shè)備。智能客戶端可提供自定義的客戶端環(huán)境,通過選擇合適平臺,為運行時所在設(shè)備提供適當(dāng)?shù)墓δ苤С帧?/p>
這些特征符合系統(tǒng)對客戶端的需求。
目前流行的大型數(shù)據(jù)庫開發(fā)軟件有SQL Server,DB2, Oracle, Sybase等,就其平臺的開放性、安全性、易操作性等方面做了比較后,本文采用Oracle軟件開發(fā)中心數(shù)據(jù)庫。由Oracle軟件開發(fā)的數(shù)據(jù)庫管理系統(tǒng)能在大部分系統(tǒng)平臺運行,能支持不同的硬件結(jié)構(gòu),具有良好的伸縮性和移植性,有豐富的開發(fā)工具,且支持客戶機/服務(wù)器體系結(jié)構(gòu)及混合的體系結(jié)構(gòu),能夠滿足民航機場生產(chǎn)統(tǒng)計系統(tǒng)的要求。由于Access軟件具有界面友好、開發(fā)簡單、單文件易于發(fā)布等優(yōu)點,智能客戶端的本地數(shù)據(jù)庫采用Access軟件開發(fā)。
采用輕量級J2EE作為本系統(tǒng)的開發(fā)平臺。輕量級J2EE是對傳統(tǒng)J2EE的簡化,在保留傳統(tǒng)J2EE的應(yīng)用架構(gòu)、良好的可維護性和可擴展性的基礎(chǔ)上,簡化J2EE 應(yīng)用的開發(fā),降低J2EE 應(yīng)用的部署成本,并有多款第三方軟件能為多服務(wù)器集群和負載均衡提供有力支持,例如Websphere,Weblogic等。當(dāng)機場生產(chǎn)統(tǒng)計量不斷增加時,可將本系統(tǒng)平滑地遷移到更好的硬件平臺。
系統(tǒng)用戶分為兩類:機場用戶和管理局用戶。機場用戶登錄智能客戶端完成本機場的生產(chǎn)數(shù)據(jù)錄入和查詢統(tǒng)計,通過數(shù)據(jù)同步完成生產(chǎn)數(shù)據(jù)上報地區(qū)管理工作。管理局用戶登錄網(wǎng)頁客戶端,查看中心服務(wù)器數(shù)據(jù),并統(tǒng)計其管轄機場的生產(chǎn)統(tǒng)計報表。網(wǎng)頁客戶端也對機場用戶開放部分功能,如機場用戶可查看地區(qū)管理局發(fā)布的信息等。
民航機場生產(chǎn)統(tǒng)計系統(tǒng)體系架構(gòu)如圖1所示。
圖 1 系統(tǒng)體系架構(gòu)Fig.1 System architecture
智能客戶端的主要特點是智能升級。只需將新版本的程序文件發(fā)布在服務(wù)器對應(yīng)目錄中,客戶端將自動發(fā)現(xiàn)最新版本的程序文件和應(yīng)用組件,并自動下載更新。這樣能方便系統(tǒng)發(fā)布和更新,且可將最初的安裝程序最小化,便于客戶端部署。智能升級實現(xiàn)流程是:先獲取服務(wù)器端程序的版本號,將其與本地版本號進行比較,再生成需要更新的的文件清單,根據(jù)該清單從服務(wù)器端下載文件,最后更新本地程序。
智能客戶端充分利用本地操作系統(tǒng)豐富的界面元素,為用戶提供友好的操作界面,方便用戶操作。錄入進出港數(shù)據(jù)界面采用關(guān)聯(lián)技術(shù),從而減輕錄入工作人員的工作量,降低出錯率。例如:當(dāng)工作人員輸入機號,程序?qū)⒆詣硬樵儥C號表,找到該機號的機型、最大座位、最大業(yè)載、可供座位和可供業(yè)載等數(shù)據(jù),并自動填入相應(yīng)的輸入框。
為了解決部分機場用戶網(wǎng)絡(luò)狀況差,同時又需要快速錄入和統(tǒng)計本機場生產(chǎn)數(shù)據(jù)的問題,本文在客戶端增加了數(shù)據(jù)本地存儲功能。智能客戶端可直接對本地數(shù)據(jù)庫進行操作,加快了程序響應(yīng)速度,但同時也出現(xiàn)中心數(shù)據(jù)庫和本地數(shù)據(jù)庫如何保持一致的問題。為解決數(shù)據(jù)同步的問題,本系統(tǒng)還開發(fā)了數(shù)據(jù)同步功能。
為實現(xiàn)數(shù)據(jù)同步功能,服務(wù)器端和客戶端采用的技術(shù)手段如下:服務(wù)器端實現(xiàn)了Sdatasync類,提供Download()和Upload()2個方法供客戶端調(diào)用;客戶端采用“多線程+Windows異步消息”的方式實現(xiàn),即運行多個線程調(diào)用服務(wù)器端方法,通過異步消息協(xié)調(diào)各線程進度,加快數(shù)據(jù)同步速度。將服務(wù)器Oracle數(shù)據(jù)庫表與本地Access數(shù)據(jù)庫表的格式設(shè)計成一致的結(jié)構(gòu),并在航班數(shù)據(jù)表中設(shè)置了一個長整型字段,其字段名為“上傳時間”,用來記錄上傳服務(wù)器的流水號,將其作為判斷數(shù)據(jù)同步的依據(jù)。若流水號字段被置空,則表示該記錄與服務(wù)器數(shù)據(jù)不同步;否則,表示該記錄已和服務(wù)器同步。因此,約定本地用戶在錄入新航班數(shù)據(jù)和修改航班數(shù)據(jù)時,流水號字段被置空。
數(shù)據(jù)同步的設(shè)計思想是先下載,后上傳。具體實現(xiàn)步驟如下:先在本地數(shù)據(jù)庫的航班表中獲取流水號的最大值,然后根據(jù)該值向服務(wù)器提出請求,要求服務(wù)器傳回中心數(shù)據(jù)庫的航班表中流水號大于該值的所有數(shù)據(jù)記錄;客戶端接收這些記錄后,再在本地航班表中查找“上傳時間”字段值為空的記錄,即新錄入或修改過的記錄,并將其上傳至服務(wù)器,服務(wù)器接收后,利用Oracle序列生成新的同步流水號,并保存及上傳記錄,再將每條記錄對應(yīng)的流水號返回給客戶端,客戶端收到后,將其寫回本地數(shù)據(jù)的相應(yīng)航班表中,以完成數(shù)據(jù)同步。
機場用戶在客戶端錄入的生產(chǎn)數(shù)據(jù),通過數(shù)據(jù)同步功能上報地區(qū)管理局,從而使得地區(qū)管理局可及時獲得其管轄機場的生產(chǎn)統(tǒng)計數(shù)據(jù)。
采用Delphi軟件的第三方控件FastReport進行統(tǒng)計分析報表的設(shè)計。靈活報表模塊包含3個功能:
1)設(shè)計報表樣式,可根據(jù)用戶的需求,設(shè)計和保存報表樣式;
2)顯示報表,能根據(jù)報表設(shè)計樣式顯示報表;
3)導(dǎo)出報表,可將顯示的報表導(dǎo)出為PDF或EXCEL文件形式。
通過報表設(shè)計模塊,可生成不同類型的統(tǒng)計分析報表。例如:設(shè)定不同時間段,生成日報、月報和年報等報表;根據(jù)不同航線分類,生成國內(nèi)航線、地區(qū)航線和國際航線等報表;設(shè)定不同統(tǒng)計方式,生成以公司、機型、機號和航班等為單位的報表。
由于地區(qū)管理局和管轄機場都存有部分歷史數(shù)據(jù),因此,需將這些歷史數(shù)據(jù)批量導(dǎo)入本系統(tǒng)中;另外,部分機場用戶繼續(xù)使用原系統(tǒng)或自主開發(fā)系統(tǒng)來錄入數(shù)據(jù),也需將這部分數(shù)據(jù)導(dǎo)入本系統(tǒng)中。為解決以上問題,本系統(tǒng)設(shè)計了數(shù)據(jù)導(dǎo)入功能,從而避免機場用戶重復(fù)錄入數(shù)據(jù)。同樣,如果機場用戶使用新統(tǒng)計系統(tǒng)錄入數(shù)據(jù),也可利用數(shù)據(jù)導(dǎo)出功能將數(shù)據(jù)按民航局所要求的格式導(dǎo)出,以便上報。
數(shù)據(jù)導(dǎo)入與導(dǎo)出是基于Delphi的ADO控件實現(xiàn)的。數(shù)據(jù)導(dǎo)入實現(xiàn)了3個類:DataIMP, IMPAdapter和IMPAdapterImplement。DataIMP是導(dǎo)入控件的界面,用戶通過該界面指定數(shù)據(jù)源的類型、連接方式、需導(dǎo)入的表或視圖、對應(yīng)字段等。導(dǎo)入的不同類型數(shù)據(jù)庫既存在相同點,又存在著差異。相同點是能通過ADO組件讀寫數(shù)據(jù),并將其相同的屬性構(gòu)成IMPAdapter類,而IMPAdapter能被DataIMP調(diào)用,用來適配不同類型的數(shù)據(jù)庫。差異是建立連接時指定的參數(shù)不同,例如:SQL Server需要指定服務(wù)器網(wǎng)絡(luò)地址、服務(wù)器名、用戶名和密碼;Access需要指定數(shù)據(jù)庫文件路徑、訪問密碼;另外,不同數(shù)據(jù)庫在實現(xiàn)數(shù)據(jù)類型時不完全相同,相應(yīng)的在建立數(shù)據(jù)庫表時,創(chuàng)建SQL語句也不盡相同。IMPAdapterImplement類是對IMPAdapter類的繼承,解決不同類型數(shù)據(jù)源的數(shù)據(jù)在導(dǎo)入中存在的差異性。
數(shù)據(jù)導(dǎo)出同樣也實現(xiàn)了3個類:DataEXP,EXPAdapter和EXPAdapterImplement。DataEXP是導(dǎo)出控件的界面;EXPAdapter是數(shù)據(jù)導(dǎo)出適配器,用于適配不同的數(shù)據(jù)庫;EXPAdapterImplement是對適配器的繼承。
針對原民航地區(qū)管理局原機場生產(chǎn)統(tǒng)計系統(tǒng)存在的問題,本課題組開發(fā)了一個新的機場生產(chǎn)統(tǒng)計系統(tǒng),以滿足地區(qū)管理局和機場用戶的機場生產(chǎn)統(tǒng)計需求。本統(tǒng)計系統(tǒng)投入使用后,得到了用戶的一致好評。隨著機場生產(chǎn)業(yè)務(wù)量的不斷增加,本系統(tǒng)的優(yōu)勢會得到更充分的體現(xiàn),因其能平滑地遷移到更好的硬件平臺。
[1] 劉建偉,林延君,王家寶. 基于智能客戶端技術(shù)的售票系統(tǒng)改良方案[J]. 計算機系統(tǒng)應(yīng)用,2006(8):2-5.Liu Jianwei,Lin Yanjun,Wang Jiabao. The Implement of the Improved Ticketing Systems Based on Smart-Client Technology[J]. Computer Systems Applications,2006(8):2-5.
[2] 湯 靜. 智能客戶端研究及應(yīng)用[D]. 長沙:長沙理工大學(xué),2011.Tang Jing. The Research and Application of Smart Client[D]. Changsha:Changsha University of Science and Technology,2011.
[3] 邢承杰,張治坤. 管理信息系統(tǒng)的新架構(gòu):智能客戶端[J]. 實驗技術(shù)與管理,2011,28(5):219-221.Xing Chengjie,Zhang Zhikun. A New Architecture of Management Information System:Smart Client[J].Experimental Technology and Management,2011,28(5):219-221.
[4] 翼慶斌,靳 禎. 基于智能客戶端技術(shù)的系統(tǒng)升級及應(yīng)用[J]. 中北大學(xué)學(xué)報:自然科學(xué)版,2010,31(1):23-28.Yi Qingbin,Jin Zhen. Upgrading and Application of System Based on Smart Client Technology[J]. North University of China:Natural Science Edition,2010,31(1):23-28.
[5] 侯少林. J2EE輕量級架構(gòu)的研究與應(yīng)用[D]. 成都:電子科技大學(xué),2010.Hou Shaolin. The Research and Application of Light-Weight J2EE Frameworks[D]. Chengdu:University of Electronic Science and Technology of China,2010.
[6] 代俊雅. 基于智能客戶端的采血管理系統(tǒng)的設(shè)計與實現(xiàn)[D]. 太原:中北大學(xué),2007.Dai Junya. Design and Realization of Blood Collection Management System Based on Smart Client[D]. Taiyuan:North University of China,2007.
[7] 陳 偉. 基于J2EE架構(gòu)的協(xié)同辦公系統(tǒng)設(shè)計與開發(fā)[D].廣州:華南理工大學(xué),2010.Chen Wei. Design and Development of Coordination Office System Base of J2EE Architecture[D]. Guangzhou:South China University of Technology,2010.
[8] 聶錦波. 基于J2EE框架的移動網(wǎng)上商城運營管理系統(tǒng)的設(shè)計[D]. 廣州:華南理工大學(xué),2011.Nie Jinbo. The Designing of Mobile Online Store Operation and Management System Based on J2EE Framework[D].Guangzhou:South China University of Technology,2011.
[9] 李 洋,孫永維,許 冰,等. 基于Ajax, Structs,Hibernate和Spring的J2EE架構(gòu)[J]. 吉林大學(xué)學(xué)報:信息科學(xué)版,2011,29(6):576-584.Li Yang,Sun Yongwei,Xu Bing,et al. J2EE Based on Ajax, Struts, Hibernate and Spring[J]. Journal of Jilin University:Information Science Edition,2011,29(6):576-584.