潘立武,扈少華,劉 奎
(1.河南牧業(yè)經(jīng)濟(jì)學(xué)院,河南鄭州450011;2.華中科技大學(xué)水電與數(shù)字化工程學(xué)院,湖北武漢430074)
基于Flex和REST的WebGIS防汛信息管理系統(tǒng)
潘立武1,扈少華1,劉 奎2
(1.河南牧業(yè)經(jīng)濟(jì)學(xué)院,河南鄭州450011;2.華中科技大學(xué)水電與數(shù)字化工程學(xué)院,湖北武漢430074)
針對傳統(tǒng)的WebGIS系統(tǒng)研究開發(fā)中存在的人機(jī)交互性差、運(yùn)行速度慢等缺陷,提出了基于Adobe Flex框架和表述性狀態(tài)傳遞(Representational State Transfer,REST)的WebGIS系統(tǒng)的解決方案,并應(yīng)用于防汛信息管理系統(tǒng)的開發(fā)中。系統(tǒng)采用Flex實(shí)現(xiàn)表示層的呈現(xiàn),降低了系統(tǒng)的開發(fā)難度,增強(qiáng)了系統(tǒng)的用戶體驗(yàn)性;使用REST技術(shù)框架解決了矢量地圖的發(fā)布繁瑣、服務(wù)器端和瀏覽器端之間響應(yīng)速度慢的問題,為WebGIS的應(yīng)用開發(fā)提供了新的思路。
富網(wǎng)絡(luò)應(yīng)用;防汛信息管理系統(tǒng); Flex;表述性狀態(tài)傳遞; WebGIS;Web服務(wù)
我國是一個(gè)洪災(zāi)多發(fā)的國家,加強(qiáng)防汛管理信息化建設(shè),構(gòu)建智能防汛指揮體系,能有效提高防汛的準(zhǔn)確性、及時(shí)性和協(xié)作性,對防災(zāi)減災(zāi)、保護(hù)人民群眾生命和財(cái)產(chǎn)安全有重要意義[1-2]。傳統(tǒng)的人工防汛指揮方式存在效率低,不能充分合理地利用人力和物力資源的不足,難以適應(yīng)防汛現(xiàn)代化的要求。隨著地理信息系統(tǒng)(Geographic Information System,GIS)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,將GIS 技術(shù)應(yīng)用到防汛信息化建設(shè)之中,為構(gòu)建以地理信息為基礎(chǔ)的防汛指揮系統(tǒng)提供了新的思路[3]。
WebGIS是利用Web技術(shù)對GIS的擴(kuò)展和完善,它利用因特網(wǎng)來實(shí)現(xiàn)客戶端和服務(wù)器之間的信息交換(包含地理信息)。通常,WebGIS是一個(gè)分布式系統(tǒng),用戶和服務(wù)器可以分布在不同的地點(diǎn)和不同的計(jì)算機(jī)平臺上,實(shí)現(xiàn)地理信息的分布式、跨平臺傳輸。將WebGIS技術(shù)應(yīng)用到防汛信息化建設(shè)之中,就是充分利用現(xiàn)有的各類資源,通過對空間地理、水雨情等數(shù)據(jù)的采集、組織與管理,構(gòu)建防汛信息資源共享的網(wǎng)絡(luò)平臺,實(shí)現(xiàn)防汛信息的分析、模擬和顯示。借助于GIS軟件的空間處理和分析功能,能動態(tài)展示防汛地理信息的時(shí)空變化及其聯(lián)系,為防汛指揮和決策提供定性和定量的技術(shù)支持[4-5]。
然而,傳統(tǒng)的WebGIS系統(tǒng)在具體應(yīng)用中常存在交互性差、地圖界面操作體驗(yàn)不佳、響應(yīng)速度慢、代碼模塊化程度低及開發(fā)維護(hù)復(fù)雜等問題。針對以上問題,唐芝青等[6]提出了基于Microsoft Silverlight跨平臺技術(shù)和Windows 通訊開發(fā)平臺WCF服務(wù)的WebGIS應(yīng)用框架,但WCF框架系統(tǒng)過于龐大,不利于開發(fā)和部署,服務(wù)器負(fù)擔(dān)重,維護(hù)成本高。張帆[7]和劉俊等[8]提出基于Flex RIA富客戶端的WebGIS應(yīng)用。
本文以吉林省白山市松江河智能化水電廠信息化建設(shè)為背景,將表述性狀態(tài)傳遞(Representational State Transfer,REST)技術(shù)引入WebGIS中,開發(fā)出基于Flex和REST技術(shù)的松江河WebGIS防汛信息管理系統(tǒng)。系統(tǒng)采用Flex富客戶端技術(shù)構(gòu)建表示層頁面,提高用戶的使用體驗(yàn),增強(qiáng)了WebGIS系統(tǒng)的交互性[9]。為實(shí)現(xiàn)Flex與服務(wù)器端的通信,采用面向服務(wù)的Web Services技術(shù),構(gòu)建松散耦合的防汛信息管理平臺。Web Services具有跨語言、跨平臺、易于集成的特點(diǎn),因此,基于Flex和Web Services能有效解決異構(gòu)數(shù)據(jù)集成的問題,開發(fā)的系統(tǒng)具有跨平臺和易于部署的優(yōu)點(diǎn)[10-11]。
1.1 Flex
在松江河防汛信息管理系統(tǒng)中,采用Flex技術(shù)實(shí)現(xiàn)表示層的設(shè)計(jì)開發(fā),主要完成地理信息和業(yè)務(wù)數(shù)據(jù)的友好展示,以及改善人機(jī)交互中的相關(guān)邏輯,提高用戶的使用體驗(yàn),加快系統(tǒng)的響應(yīng)速度。Flex是基于Flash開發(fā)語言的一個(gè)基于WEB瀏覽器富客服端(RIA)的應(yīng)用程序開發(fā)框架。開發(fā)者使用MXML來定義用戶界面。MXML是基于XML的,最后由Flex服務(wù)器生成SWF格式文件,在Flash Player中運(yùn)行。
在整個(gè)系統(tǒng)結(jié)構(gòu)中,Flex除了實(shí)現(xiàn)富應(yīng)用界面以及增強(qiáng)用戶體驗(yàn)外,還負(fù)責(zé)與后臺服務(wù)器的通信。Flex表示層接收用戶在瀏覽器發(fā)出的請求,并進(jìn)行分析處理。處理的形式分為2種:一是用戶請求只涉及到簡單的數(shù)據(jù)處理和邏輯請求時(shí),不需要服務(wù)器來處理,可以直接由Flex進(jìn)行處理,減輕了服務(wù)器的負(fù)擔(dān);二是用戶請求需要后臺服務(wù)處理時(shí),Flex就將請求發(fā)送給后臺服務(wù)器,后臺服務(wù)器響應(yīng)并處理完之后將結(jié)果返回,Flex根據(jù)返回的結(jié)果生成頁面呈現(xiàn)給用戶。
1.2 REST
借助于ArcGIS API for Flex提供的REST接口,可以方便地訪問GIS地圖和使用REST接口提供的查詢及分析功能。REST是基于HTTP協(xié)議的,最大的特點(diǎn)就是將數(shù)據(jù)和服務(wù)抽象為資源,用統(tǒng)一資源標(biāo)識符(Uniform Resource Identifier,URI)來進(jìn)行訪問操作。通過HTTP協(xié)議提供的GET、POST、PUT和DELETE方法,對資源進(jìn)行獲取、創(chuàng)建、修改和刪除,能通過Internet方便地實(shí)現(xiàn)對地圖資源的操作。Flex與ArcGIS Server的通信只需通過MXML和ActionScript腳本代碼,調(diào)用ArcGIS Flex API中的類編寫代碼調(diào)用每個(gè)資源的URI,就可獲取ArcGIS Server中的資源。Flex應(yīng)用REST接口獲取地理信息的流程見圖1。在本系統(tǒng)中,創(chuàng)建、發(fā)布和使用地理服務(wù)的流程見圖2。
圖1 Flex應(yīng)用REST接口獲取數(shù)據(jù)
圖2 創(chuàng)建、發(fā)布和使用地理服務(wù)流程
1.3 WEB SERVICES
由于Flex頁面不能直接與后臺數(shù)據(jù)庫進(jìn)行交互,本文提出使用Web Services來解決這個(gè)問題,通過Web Services的中轉(zhuǎn)作用最終實(shí)現(xiàn)Flex與后臺的間接通信。Web Services基于簡單對象訪問協(xié)議SOAP通訊協(xié)議,在客戶端的SWF格式文件中設(shè)定了需要訪問的Web Services服務(wù)器的地址,根據(jù)這個(gè)地址向Web Services服務(wù)器提出訪問請求;Web Services服務(wù)器收到請求后,分析請求內(nèi)容,并將數(shù)據(jù)以XML文件的形式存儲在客戶端的Web Services對象之中;Flex調(diào)用Web Services,解析返回的XML文件,獲得相關(guān)數(shù)據(jù)信息。調(diào)用Web Services服務(wù)的過程見圖3。
圖3 Web Services服務(wù)調(diào)用過程
2.1 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
根據(jù)系統(tǒng)需求和涉及到的關(guān)鍵技術(shù),松江河防汛信息管理系統(tǒng)采用R/S(RIA/Services)架構(gòu)進(jìn)行設(shè)計(jì)和開發(fā)。系統(tǒng)硬件體系結(jié)構(gòu)分為表示層、Web服務(wù)層、應(yīng)用服務(wù)層和數(shù)據(jù)服務(wù)層4個(gè)部分(見圖4)。表示層直接面向用戶,并且向Web服務(wù)器發(fā)送請求;Web服務(wù)器處理表示層發(fā)來的請求和 Web Services請求,根據(jù)請求內(nèi)容,向應(yīng)用服務(wù)層的GIS服務(wù)器獲取相關(guān)服務(wù),或者通過Web Services與數(shù)據(jù)服務(wù)層的數(shù)據(jù)庫交互;GIS服務(wù)器主要負(fù)責(zé)地圖服務(wù)的發(fā)布,通過REST接口,可以在Flex環(huán)境下開發(fā)應(yīng)用系統(tǒng)。本系統(tǒng)使用Flex 作為前端展現(xiàn),后臺連接ArcGIS Server REST Services??蛻舳酥恍璋惭b了Flash Player插件的瀏覽器即可,服務(wù)端選用的是ArcGIS Server 10。系統(tǒng)邏輯體系采用典型的三層結(jié)構(gòu)模式(見圖5)。
圖4 系統(tǒng)硬件結(jié)構(gòu)
圖5 系統(tǒng)體系結(jié)構(gòu)
2.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)
松江河防汛信息管理系統(tǒng)是松江河智能化水電廠建設(shè)的一個(gè)重要內(nèi)容,是提高松江河防汛指揮數(shù)字化和信息化的重要體現(xiàn)。根據(jù)需求分析,系統(tǒng)功能分為防汛值班管理系統(tǒng)和防汛物資儲備與隊(duì)伍管理系統(tǒng)2個(gè)子系統(tǒng)。系統(tǒng)功能結(jié)構(gòu)見圖6。通過該系統(tǒng),實(shí)現(xiàn)了水雨情監(jiān)測、救援路徑規(guī)劃、分布式防汛物資管理、防汛人員自動值班管理、防汛調(diào)度數(shù)字化方案模型等功能。
圖6 系統(tǒng)功能結(jié)構(gòu)
借助WEBGIS和REST 技術(shù),WebGIS防汛系統(tǒng)除了實(shí)現(xiàn)一般信息管理系統(tǒng)的功能外,還增加了許多地理信息處理功能。如可結(jié)合示范區(qū)的地理信息生成電子地圖,在電子地圖上標(biāo)注搶險(xiǎn)隊(duì)伍、防汛物資、防汛搶險(xiǎn)點(diǎn)的分布位置,并且實(shí)時(shí)更新分布情況;根據(jù)人員的分工(如防汛領(lǐng)導(dǎo)和主要防汛人員等),實(shí)時(shí)跟蹤和顯示防汛人員地理位置,并提供行動路線GIS查詢功能,為搶險(xiǎn)隊(duì)伍人員的合理分配提供科學(xué)依據(jù);將實(shí)際搶險(xiǎn)調(diào)度工作與電子地圖跟蹤相結(jié)合,能及時(shí)掌握現(xiàn)場實(shí)際調(diào)度搶險(xiǎn)情況,提高防汛工作效率和險(xiǎn)情快速反應(yīng)能力;根據(jù)示范區(qū)險(xiǎn)情信息和實(shí)際工程需求,制定防汛調(diào)度方案,擬定合適的人員物資撤離路線和工程救援路線等。
圖7 庫存信息查詢
根據(jù)需求,本防汛信息管理系統(tǒng)采用Flex進(jìn)行WebGIS系統(tǒng)的表示層開發(fā),頁面開發(fā)采用EXTJS+Structs2,服務(wù)器端采用Java技術(shù)實(shí)現(xiàn)。GIS服務(wù)器選擇ARCGIS Server 10,數(shù)據(jù)庫管理系統(tǒng)使用的是Oracle 10g Enterprise Edition,WEB服務(wù)器是Apache-Tomcat 6.0。以站點(diǎn)信息查詢模塊為例,用GIS服務(wù)器提供地圖服務(wù),用Web服務(wù)器提供數(shù)據(jù)服務(wù),根據(jù)數(shù)據(jù)處理和地圖操作的不同,客戶端和服務(wù)器端分別以不同的協(xié)作方式進(jìn)行處理。表示層的設(shè)計(jì)是在Flex Builder中完成,將GIS服務(wù)器地址配置正確,并且解析Web Services的數(shù)據(jù),最后編譯生成SWF格式文件,以URL地址的形式在HTML網(wǎng)頁文件中使用。將開發(fā)完成后的系統(tǒng)部署在網(wǎng)絡(luò)上,就能順利使用系統(tǒng)功能了。
庫存信息查詢見圖7。站點(diǎn)信息查詢見圖8。防汛調(diào)度方案結(jié)合電子地圖顯示見圖9。在圖9中,防汛調(diào)度方案顯示在電子地圖上并標(biāo)記出受災(zāi)位置的地理信息,受災(zāi)區(qū)基本信息可以彈出框的形式出現(xiàn),可以直觀地標(biāo)注和分配的防汛物資。
基于Flex和REST的WebGIS的防汛信息管理系統(tǒng)作為防汛決策系統(tǒng)的重要組成部分,為松江河當(dāng)?shù)氐姆姥垂ぷ魈峁┝思夹g(shù)支持。系統(tǒng)克服了傳統(tǒng)的WebGIS系統(tǒng)應(yīng)用開發(fā)中遇到的用戶體驗(yàn)性差、響應(yīng)速度慢等缺陷。Flex為用戶提供了頁面表現(xiàn)力更豐富、交互性更強(qiáng)的操作界面,提高了對圖形元素的處理功能,為WebGIS提供了一種全新的表現(xiàn)機(jī)制。REST技術(shù)框架的應(yīng)用,解決了系統(tǒng)開發(fā)過程中遇到的開發(fā)效率低、服務(wù)器負(fù)擔(dān)重、維護(hù)成本高等問題。設(shè)計(jì)開發(fā)的WebGIS防汛信息管理系統(tǒng)具有操作簡單、跨平臺、可擴(kuò)展、信息分布共享、高效的負(fù)載平衡等特點(diǎn)[12-14],實(shí)現(xiàn)了防汛信息的實(shí)時(shí)更新和共享,提升了防汛指揮的信息化水平,提高了工作效率。隨著Flex技術(shù)框架的不斷完善,REST風(fēng)格的系統(tǒng)架構(gòu)不斷豐富和發(fā)展,Flex和REST將會在WebGIS的研究開發(fā)中得到越來越多的應(yīng)用。
圖8 站點(diǎn)信息查詢
圖9 防汛調(diào)度方案結(jié)合電子地圖顯示
[1]吳頔, 軒瑋. 建議加強(qiáng)防汛管理信息化建設(shè)[N]. 中國水利報(bào), 2015-03-10(4).
[2]汪洋. 切實(shí)增強(qiáng)責(zé)任感緊迫感 全面做好防汛抗洪工作[J]. 中國應(yīng)急管理, 2016(6): 27.
[3]劉奎. 基于WEB2.0的松江河防汛信息管理系統(tǒng)研究與設(shè)計(jì)[D]. 武漢: 華中科技大學(xué), 2013.
[4]韋朝振, 鄭偉. 基于WebGIS的河南作物適宜性分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 地礦測繪, 2016, 32(1): 12-15.
[5]李建國. 基于GIS的防汛信息監(jiān)測與分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 濟(jì)南: 山東大學(xué), 2015.
[6]唐芝青, 吳斌輝, 黃逸帆, 等. 基于Silverlight技術(shù)和WCF服務(wù)的WebGIS應(yīng)用框架研究[J]. 國土資源導(dǎo)刊, 2014, 11(10): 137-142.
[7]張帆. 基于RIA的構(gòu)件式WebGIS的研究與實(shí)現(xiàn)[D]. 鄭州: 鄭州大學(xué), 2011.[8]劉俊, 譚建軍, 邵長高. 基于Flex的WebGIS框架設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程, 2010, 36(10): 242-244.
[9]王麗君. 基于RIA技術(shù)的縣級山洪預(yù)警WEBGIS發(fā)布系統(tǒng)[D]. 長春: 吉林大學(xué), 2014.
[10]鄔倫, 唐大仕, 劉瑜. 基于Web Service的分布式互操作的GIS[J]. 地理與地理信息科學(xué), 2003, 19(4): 28-32.
[11]王非. Web Services在Flex系統(tǒng)中的應(yīng)用實(shí)現(xiàn)[J]. 微型電腦應(yīng)用, 2009, 27(3): 30-32.
[12]張?jiān)獥? 楊聯(lián)安. 主流WebGIS構(gòu)建方法的研究分析[J]. 陜西師范大學(xué)學(xué)報(bào): 自然科學(xué)版, 2008, 36(S1): 168-170.
[13]吳博, 吳俐民. WebGIS的防汛抗旱信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)——以曲靖市麒麟?yún)^(qū)為例[J]. 地下水, 2012, 34(6): 137-139.
[14]李海奔. 基于WebGIS的聊城市水情信息系統(tǒng)平臺建設(shè)研究[D]. 濟(jì)南: 山東農(nóng)業(yè)大學(xué), 2015.
(責(zé)任編輯 楊 健)
WebGIS Flood Control Information Management System Based on Flex and REST
PAN Liwu1, HU Shaohua1, LIU Kui2
(1. Henan University of Animal Husbandry & Economy, Zhengzhou 450011, Henan, China; 2. School of Hydropower and Information Engineering, Huazhong University of Science and Technology, Wuhan 430074, Hubei, China)
As the defects of traditional research and development on WebGIS, such as poor man-machine interaction and slow response and so on, a solution based on Flex and Representational State Transfer (REST) technologies is introduced to build flood control information management system. The presentation layer of the system is implemented by means of Flex, which can reduce the difficulty of system development and enhance user experience. Some problems of WebGIS application system, such as complicated release of vector map and slow interaction between server side and the client side, is solved by using REST technical framework. The application of Flex and REST provide a new thought for the application and development of WebGIS.
Rich Internet Application(RIA); flood control system; Flex; Representational State Transfer(REST); WebGIS; Web Service
2016-09-27
河南省科技廳重點(diǎn)科技攻關(guān)項(xiàng)目(152102210320);河南牧業(yè)經(jīng)濟(jì)學(xué)院科技創(chuàng)新團(tuán)隊(duì)(HUAHE2015006)
潘立武(1971—),男,河南杞縣人,副教授,博士,研究方向?yàn)橄到y(tǒng)集成、軟件開發(fā)、嵌入式等.
TP311.52
A
0559-9342(2017)02-0094-05