陳士城 ,劉曉春 ,劉 旭 ,張 林
(1.蘇州市數字城市工程研究中心有限公司,江蘇 蘇州 215021; 2 .徐州市賈汪區國土資源局,江蘇 徐州 221011)
基于Flex和ArcGIS Server的WebGIS框架設計與應用
陳士城1,劉曉春1,劉 旭2,張 林1
(1.蘇州市數字城市工程研究中心有限公司,江蘇 蘇州 215021; 2 .徐州市賈汪區國土資源局,江蘇 徐州 221011)

基于Flex及ArcGIS Server技術,設計了一套交互性好、實用性和擴展性強的WebGIS系統框架。闡述了框架各組件的相互關系及實現方式,并利用該框架建立了蘇州市相城區水利決策支持系統。該框架可提高開發效率、增強用戶體驗,運行效果良好,具有一定的參考價值。
Flex;ArcGIS Server;WebGIS;框架設計;地理信息系統
傳統WebGIS存在一定的缺陷:①采用JSP或JSF作為系統表現層,系統用戶界面的表現力較弱,交互性不強,難以滿足用戶豐富體驗的要求;②將用戶請求集中于服務器端處理,沒有充分利用客戶端的資源,造成寬帶資源的消耗與浪費[1-3]。富互聯網應用(RIA)技術的出現使得Web應用程序不僅具有B/S架構支持跨平臺、易部署的優勢,而且具有C/S架構良好的人機交互優勢[4,5]。目前,基于RIA技術的WebGIS系統開發主要有Flex技術和Silverlight技術等。同傳統Web技術相比,Flex能夠創建更為豐富的用戶界面、具有更強的交互性和快速響應能力,平衡客戶端與服務端的計算負載[6,7]。為了克服傳統WebGIS的缺陷與不足,本文基于Flex和ArcGIS Server技術研究設計了一套交互性、實用性和擴展性強的WebGIS系統框架。
基于Flex和ArcGIS Server的WebGIS應用系統框架分為3層:表現層、應用業務層和數據層。
1)表現層主要是借助于ArcGIS API for Flex和Flex富互聯網應用技術,為用戶展示和提供一個人機交互的界面,可完成地圖操作和相關業務功能。系統主要運行在Web瀏覽器和Flash播放器中[8]。
2)應用業務層是整個系統框架的核心,負責系統運行的業務邏輯,接收來自瀏覽器端的請求,并根據請求作出響應。該層可具體分為普通業務、地圖業務和綜合業務。普通業務主要通過Flex的WebService技術與J2EE應用服務器進行交互實現;地圖業務主要通過REST協議與ArcGIS Server服務器進行交互來完成相關操作;綜合業務則是將普通業務和地圖業務組合起來完成業務操作。
3)數據層主要包括空間數據庫、屬性數據庫和其他相關文件數據。空間數據庫的建立是通過ArcSDE空間數據庫引擎將空間數據保存至商用關系型數據庫中(Oracle、SQL Server、DB2 等),由 ArcMap、ArcCatlog和ArcSDE統一管理。屬性數據存放在所選用的關系型數據庫中,方便統一管理調用。其他文件數據(圖片、視頻等)以文件的形式存儲在對應的服務器中。
本框架系統以插件(Widget)方式開發。每一個功能模塊作為一個單獨的Widget,通過簡單的配置就可加載到系統中。在框架中,Widget的開發只需要實現特定的接口或直接繼承己實現接口的超類即可。實現一個Widget最基本的方式是繼承已實現IBaseWidget接口的BaseWidget類,這樣通過配置可直接加載到系統中,所有初始化工作由框架自動完成,開發者只需關注具體的業務功能開發。
在框架中,每個Widget是一個獨立完整的程序模塊,具備相應的3層結構: Model(模型)層、View(視圖)層和Controller(控制)層。這種模式的支持依賴于pureMVC框架實現。pureMVC是基于MVC 的一個輕量級開發框架,目的是降低模塊間的耦合性,創建易擴展、易維護的應用程序。pureMVC通過發送消息的方式處理這3層的通信從而降低3層間的耦合度[9]。pureMVC中對應的組件有:View層,Widget組件中的界面部分;Controller層,Mediator組件;Model層,Proxy組件。界面組件通過與用戶交互產生操作并分發事件,Mediator獲取事件,并調用相應的Proxy處理業務邏輯。邏輯處理會相應地改變Proxy中的數據,由于Proxy中的數據和界面組件進行了數據綁定,所以數據的更改會實時地反映到界面中來。
在系統啟動時,框架會根據配置文件進行初始化,包括初始化組件以及組件容器,并將對應的描述信息通過特定的接口注冊到框架中,開始加載初始化啟動的Widget。在配置文件中,主要包括基本通用組件配置(負責與服務器端通信)、Widget容器組件配置(初始化Widget在容器中的布局)和Widget組件配置(對應的文件及相關描述信息)。
第一次加載Widget時會自動根據相應的配置生成上下文環境,并加載到對應的容器中,調用初始化方法對相應的業務邏輯進行初始化工作。如果此Widget依賴于其他Widget,則會先自動加載所依賴的Widget,再加載自身。加載后的Widget會根據其容器定義的布局方式進行布局,從而將界面顯示到主系統界面中。
2.2.1 創建Widget組件
在開發一個Widget模塊時,首先根據需求將功能分解,以粗粒度的方式將功能分解成一個或多個子模塊,每一個子模塊負責實現一些相對集中的功能,而子模塊對應的就是一個Widget,如一個模塊可分為3個子模塊,就可用3個子Widget來協作完成整個模塊的功能;然后分別創建每一個Widget組件,并定義好Widget之間的交互接口,包括“消息名稱”和“消息參數”。實現Widget之間耦合度最低的方式是通過發送消息進行,這樣Widget之間不但沒有直接引用對方的功能,而且沒有依賴對方的接口。當一個Widget需要其他Widget實現某項功能時,只需發送消息并把所需要的參數傳遞過去。此時Widget會監聽到消息并獲取參數執行相應的邏輯,而完成數據的處理。
2.2.2 Mediator的設計
完成Widget的創建后,為了實現正常的通信,還需創建Mediator并與Widget關聯。在框架中,每一個Widget都需要關聯一個Mediator,這樣Widget就可和其他Widget以發送接收消息的方式進行通信,Mediator扮演發送器以及接收器的角色。在Mediator里,可調用通道發送消息,也可監聽通道中的消息進行響應。
2.2.3 Proxy的設計
在框架中,Proxy負責業務邏輯的處理,主要是對各種數據操作的封裝,包括遠程數據和本地數據。Proxy中的數據和Widget視圖組件是綁定的,對Proxy中的數據進行操作會相應地反映到界面當中,這樣用戶就可實時看到交互的結果。創建Proxy時,首先要根據需求設計好對應的接口以及操作,定義好后就可創建一個具體的Proxy組件實現這個接口。
基于上述框架,開發了蘇州市相城區水利決策支持系統,主要包括查詢檢索、事件管理、地圖編輯、圖層管理、Excel上傳、地圖打印、模塊管理、監控監測等功能模塊。地圖服務采用ArcGIS Server 9.3發布,將相城區底圖、水利相關要素以緩存地圖服務和動態地圖服務的形式發布。系統中采用SQL Server2005數據庫存儲空間數據和相關業務屬性數據。在系統中,可實現地理要素屬性的查詢、編輯等操作,以及相應的業務功能。系統運行效果如圖1所示。

圖1 系統運行主界面
[1] 劉俊, 譚建軍, 邵長高. 基于Flex 的WebGIS 框架設計與實現[J]. 計算機工程, 2010, 36(10):242-244
[2] 楊明, 李全. 基于J2EE 和ArcIMS 的地籍管理WebGIS[J]. 計算機工程, 2007, 33(15): 267-268
[3] 劉二年, 豐江帆, 張宏. 基于Flex的環保WebGIS研究[J].測繪與空間地理信息, 2006, 29(2): 71-72
[4] 張康壽, 馮兵, 孫燕剛,等. 基于RIA和Web Services的WebGIS系統的開發[J]. 地理空間信息, 2009, 7(2):109-110
[5] 劉二年. 基于Rich Internet Application 技術的WebGIS 研究[D].南京: 南京師范大學, 2006
[6] 趙振華, 廉東本. 基于Flex 的WebGIS 框架的研究與應用[J].計算機系統應用, 2011, 20(11):146-149
[7] 汪林林, 胡德華, 王佐成,等. 基于Flex的RIA WebGIS研究與實現[J]. 計算機應用, 2008 , 28(12): 3 257-3 260
[8] 袁煜鋒. 基于Flex與Rest的WebGIS研究[D]. 上海: 華東師范大學, 2009
[9] 徐杏芳, 夏浩波, 王康. MVC模式在Flex框架的應用研究[J].長江大學學報, 2008, 5(4): 325-327
Design and Implementation of WebGIS Framework Based on Flex and ArcGIS Server
byCHEN Shicheng
The Flex and ArcGIS Server were used to design a WebGIS system framework with high interaction, practice and expansibility in this paper. This paper also elaborated the realization mode of controls and their relationship. Finally, the water conservation decision support system of Xiangcheng was constructed using this framework.The application shows that the framework can improve development effi ciency and user experience, as well as satisfying operational eff ect and having a certain reference value.
Flex, ArcGIS Server, WebGIS, framework design, GIS
P208
B
1672-4623(2014)02-0109-02
10.11709/j.issn.1672-4623.2014.02.038
2012-10-23。
項目來源:江蘇省自然科學基金資助項目(BK2011343);江蘇省企業院士工作站資助項目(BM2010509);科技部中小企業技術創新基金資助項目(11C26213201271);蘇州市科技局2012年度科技計劃資助項目(SS201231)。
陳士城,碩士,工程師,主要研究方向為地理信息系統開發。