李為華,李 貞,谷平華
(湖南水利水電職業技術學院 水利建筑工程系,湖南長沙 410131)
基于WAP的分布式汛情查詢系統的研究與實現
李為華,李 貞,谷平華
(湖南水利水電職業技術學院 水利建筑工程系,湖南長沙 410131)
為滿足人們隨時隨地掌握汛情的需求,以WAP無線通信協議作為移動通信終端與互聯網聯接的橋梁。通過對WAP、J2EE平臺及水利汛情查詢需求深入研究,采用J2EE平臺的MVC設計模式,并同時支持互聯網和無線網絡協議,分四層架構設計系統。實踐表明,基于WAP的分布式汛情查詢系統不僅使得顯示視圖與業務邏輯完全分開,為代碼重用、測試和修改帶來便利,而且WAP協議的應用大幅度提高了防汛工作的效率。
水利汛情查詢系統;WAP;J2EE;MVC
隨著無線通信技術的發展,基于互聯網絡的水利汛情信息查詢系統越來越不能滿足人們隨時隨地掌握汛情信息的需求。無線應用協議(WAP)架起了移動世界與互聯網絡的橋梁。隨著移動通信終端的接入,顯示終端日趨多元化,既保證顯示視圖與業務邏輯完全分開,又保證平臺無關和分布式應用。
(一)采用WAP與移動設備通信
通過 WAP(Wireless Application Protocal)無線應用協議可以實現對國際互聯網和企業內部網各種資源的訪問和獲取。WAP網絡框架由WAP移動終端、WAP網關和WAP內容服務器組成。當移動終端發出要訪問內容服務器的請求后,信號經過無線網絡,以協議方式發送請求到網關,然后通過網關進行解析、翻譯,再以HTTP協議方式與WAP內容服務器之間進行交互,最后通過WAP網關將返回的內容進行解碼和壓縮,并把結果返回給移動終端。由于WAP終端具有顯示屏小、鍵盤功能簡單、CPU內存受限、網絡連接帶寬窄等特點,WAP終端不能夠獲取互聯網上的任何資源。WAP請求的響應結果是以 WML(Wireless Markup Language) 來表現[1]。WML是與HTML相似的標記語言,它繼承了WWW與 HTM和 HDML(Handled Device Markup Language)的特點,并針對移動終端特點進行了優化。運行在智能終端的嵌入式操作系統的WML瀏覽器會對該WML文件進行解釋并顯示運行結果。
(二)同時支持WAP和Web應用的J2EE平臺
J2EE(Java2 Platform Enterprise Edition)平臺提供了多層次結構的分布式應用程序模型,典型的四層結構為運行在客戶端機器上的客戶層組件、運行在J2EE服務器上的Web層組件、運行在J2EE服務器上的業務邏輯層組件和運行在EIS服務器上的企業信息系統層軟件[2]。客戶層既可以是基于PC的Web,也可以是基于移動終端的WAP。在基于WAP的J2EE應用程序中,客戶層運行的WML程序、Applet程序或JAVA語言直接編寫的客戶端程序,在不經過Web層的情況下訪問Enterprise Beans;也可像基于Web方式那樣,使用JavaBeans類來管理輸入,并將該輸入送往業務層中運行的Enterprise Bean類來處理。Web層組件可以由JSP頁面以及顯示HTML或WML頁面的Servlet組成。業務邏輯層組件由Enterprise Beans執行。數據層為系統內的基礎數據或其他系統中運行的程序,最常見的是數據庫系統。J2EE平臺多層結構的應用,使數據與應用、表示與業務邏輯都相應分開;還支持軟件重用和平臺異構,可采用JDBC技術,很便捷地同各種數據庫連接。
(一)設計目標
本系統基于開放和共享的WAP協議標準,考慮用戶使用手機上網,訪問的系統內容具有信息量小,需求變化快的特點,設計目標如下:一是分層結構清晰,多層化的體系結構可以使業務邏輯和信息顯示各司其職,同時輕松修改業務功能。二是跨平臺部署,支持異構環境的框架、構件的互聯和通信,實現跨平臺獲取數據。三是較好的運行性能,能夠滿足大量用戶同時訪問汛情數據,并對用戶的合法性進行保護,確保系統安全等。
(二)設計模式
采用合理的開發方法和設計模式,有利于縮短項目開發周期,簡化在線應用程序代碼。當前在J2EE平臺上開發業務系統歸納為兩種模式:模式之一為JSP+JavaBean的結合,適合于中小型系統的開發;模式之二為JSP+JavaBean+Servlet的結合,適合于復雜的經常要改動的大型應用系統的開發。本項目采用模式二中的MVC(Model-View-Controller)設計模式[3]。
MVC模式是模式二的典型架構模式。一般分為三個部件,即模型——視圖——控制。其中模型(Model)部件是整個模型的核心,封裝了問題的核心數據、邏輯和功能的計算關系,它獨立于具體的界面表達和I/O操作。視圖(View)部件把表示模型數據及邏輯關系和狀態的信息及特定形式展示給用戶。它從模型獲得顯示信息,對于相同的信息可以有多個不同的顯示形式或視圖。控制(Controller)部件處理用戶與軟件的交互操作,其職責是控制提供模型中任何變化的傳播,是使模型和視圖協調工作的部件。MVC模式的實現通常有三種表現方式,分別是JSP+JavaBean+數據庫、JSP+EJB+數據庫、JSP+Java-Bean+EJB+數據庫。
(三)系統架構設計
本系統采用四層架構設計,工作原理如圖1所示。表示層由移動終端和WAP網關構成。表示層獲取用戶的請求后經過WAP網關的協議轉換進入WAP服務器。Web層中Servlet根據用戶訪問機制,啟動相應線程,解析請求并向業務層調用已封裝的類,返回給表示層,JSP完成頁面的生成和顯示。業務層由汛情應用服務器和JavaBean構成。其主要功能是響應Web層的請求,通過JDBC與數據庫連接進行數據讀取,實現具體的業務邏輯[4]。數據層由汛情信息數據庫和外部數據構成。汛情信息數據庫存儲和管理雨情信息、水情信息、天氣預報、衛星云圖、氣象雷達、天氣預報等汛情數據和其它數據,外部數據庫存儲和管理用戶、公告、留言等數據信息。采用四層結構和MVC設計模式后,Web層可以由WML和JSP代碼組合實現,業務層中由JavaBean將系統中的用戶信息、公告信息、留言信息等封裝成相應的類,讓每個類都有自己對應的操作類,Servlet通過統一的接口對這些JavaBean封裝的類進行調用,并接受JavaBean返回的對象,獲取返回對象中的數據并顯示給移動終端,這樣數據庫對表示層來說就完全透明了,組件代碼的重用性也大大提高。

圖1 四層架構的工作原理圖
四層架構用戶請求及其信息反饋如圖2所示。WAP手機用戶通過WAP網關,發送請求至Web服務器,Web服務器的Jsp/Servlet程序收到該請求,對其進行初步的驗證和處理后,將此請求發往后方應用服務器,后方應用服務器根據請求類型調用容器內相應的Beans進行相應操作,如查詢雨情信息、水情信息等。如果調用成功,Beans將結果返回Jsp/Servlet程序,并由它們將內容組織成符合手機微瀏覽器規范的WML文件,通過WAP網關送回WAP手機終端。

圖2 WAP手機用戶請求與信息反饋示意圖
(四)系統角色功能劃分
本系統若按角色不同可以劃分為兩個子系統,即前臺用戶訪問信息子系統和后臺信息管理子系統。用戶訪問子系統包括用戶登錄、信息查詢、災情上報、查看公告、在線留言等。后臺信息管理子系統包括用戶信息管理、汛情信息管理、災情信息管理、留言信息管理等。根據相關功能劃分若干模塊。
(一)開發平臺選擇
采用Eclipse3.2.1+myEclipse作為系統的集成開發環境。Eclipse是一種開源的Java程序開發工具,采用tomcat5.5作為服務器。數據庫采用Oracle,開發時在服務器端要先安裝運行環境并配置好相應的環境變量。
(二)業務邏輯實現
系統按照MVC模式開發,其中用Servlet作為Controller,用JSP+WML作為view,業務邏輯層用JavaBean實現。業務層包括的多個接口由業務組件構成,為了使組織結構清晰易懂,根據共同特點把這些組件整化成若干包,這些包實際上是一些類的集合。其中,基類存放各種實體的基本屬性;Bean類存放各個業務模塊,它接受Servlet的控制,同時也是連接數據庫的接口渠道;Servlet包中的組件主要是對獲取頁面參數進行處理,調用bean類的各種函數,同時也實現系統的交互,是通用類的包,包括參數獲取處理類ParaProcess()、訪問數據庫連接池類DataVisit(),用戶密碼加密處理類PossProcess()。在系統開發中,考慮到經常涉及與用戶交互,要從request對象中提取Parameter和參數attribute,首先要對獲取值判斷是否為空,并轉化為相應類型。ParaProcess()函數實現把涉及到此操作的方法全部封裝在這個類中,減少代碼的重用。
(三)汛情查詢網頁實現
視圖View代表系統的界面顯示,實際上它的功能相當于動態網頁的生成。要實現這個功能只要在工程的WebRoot下建立*.JSP文件,這些文件結合了JSP標記和WML語言。當移動終端訪問JSP網頁的請求時,WAP服務器就會經過WAP網關進行譯碼,然后將執行結果以WML格式返回給用戶。下面是實現查詢頁面的代碼。

(四)數據庫連接
數據庫連接池建立。系統采用Tomcat自帶的連接池來實現數據庫連接。創建好連接池后,需要建立一個公用的連接Database類,用來初始化連接環境,有了這個類,對數據庫進行增加、刪除、修改、查看等操作只要調用該類就可以了,因為Database打了包,引用時前面加上包名。訪問完畢后調用該類關閉連接。
連接池配置文件Web.xm l


4.5環境測試
以Openwave SDK 6.2.2作為開發調試工具,如圖3所示。運行調式時需選擇實際手機測試環境。

圖3 Openwave SDK手機模擬器
本系統為省防汛部門有關人員提供防汛信息查詢服務,并在有緊急情況時主動通知相關責任人,從而使防汛人員可以隨時隨地掌握最新防汛信息,提高了防汛工作效率。隨著移動通信技術的發展,手機、PAD等小型設備與互聯網接入,J2EE平臺具有高分布式性能,支持無線應用協議,采用多層結構,適合大型復雜系統開發。
[1]陳靜,龔健雅,朱欣焰,李清泉.基于J2EE的分布式Web GIS[J].測繪通報,2004,(2).
[2]吳敏,劉萍.基于J2ME和J2EE的手機銀行設計與實現[J].微計算機信息,2006,(22):294-296.
[3]張璞,文登敏.基于J2ME和J2EE的移動電子商務系統研究[J].成都信息工程學院,2006(8):505-507.
[4]J.Puchinger and G.R.Raidl,“An Evolutionary Algorithm forColumn Generation in Integer Programm ing:an Effective Approach for 2D Bin Packing”.In X.Yao et al.,editor,Parallel Problem Solving from Nature-PPSN VIII,volume 3242 of LNCS,pages642–651.Springer,2004.
The Research and Im plementation of the Distributed Water Flood Query System Based on WAP
LIWei-hua,LIZhen,GU Ping-hua
(Water Resourcesand Architecture Engineering Department;Hunan TechnicalCollegeofWater ResourcesanfHydro Power,ChangshaHunan 410131)
Tomeet the needsofmastering the floodmessage for the people atanytime anywhere,thispaper conducted an experimentbased on in-depth study ofWAP the J2EE platform and water flood query requirements,taking theWireless Application Protocalasa bridge between themobile communication term inaland the Internet,adopted theMVC design pattern of the J2EE platform and supported both Internetand w irelessnetwork protocols,fram ing up sub-four-tier structure design system.It show s that the system is fully in line with the need for anytime,anywhere flood message.WAP-based distributed flood query system did not clearly separate the view from business logic for reusing,testing and modifying for the code,but the application of the Wireless Application Protocal substantially increased the efficiency of the flood prevention work.
water flood query system;WAP;J2EE;MVC
TP311.52
A
1674-831X(2012)04-0117-04
2012-03-12
李為華(1978-),女,湖南常德人,湖南水利水電職業技術學院講師,主要從事水利工程研究;李貞(1973-),女,湖南邵陽人,湖南水利水電職業技術學院高級工程師;谷平華(1975—),男,湖南茶陵人,湖南省經濟和信息化委員會綜合研究室副主任。
在Tomcat中定義的數據庫連接池資源,數據庫生成后要與網頁建立動態鏈接,還需在Web應用的部署描述符中進行配置,在建立的Web應用的WEB-INF下找到Web.xml,在Web.xml文件里增加下面代碼:
[責任編輯:胡 偉]