朱彥輝,楊 昆,李 建,趙旭東,郭林崗
(1. 云南師范大學 旅游與地理科學學院,云南 昆明 650500; 2. 云南師范大學 信息學院,云南 昆明 650500;3. 昆明市環境監測中心,云南 昆明 650500)
全國污染源普查是一項重大的國情調查工程,是全面掌握我國環境狀況的重要途徑。污染源普查數據是重要的基礎環境數據,普查數據綜合分析與成果開發得到的普查資料是進行環境管理和科學研究的基礎。基于普查數據還可建立污染源動態管理系統,有利于進一步加強污染源監管。通過對污染源普查數據進行全面、深入、系統的開發應用,可以充分發揮普查數據的使用價值和社會效益。
隨著富聯網應用程序(rich internet application,RIA)技術的發展,RIA為Web 應用提供了一種全新的解決方案。Flex是目前開發RIA的主流技術之一。本文在分析環保部門對污染源普查數據功能需求的基礎上,實現了污染源普查數據空間點位可視化和空間數據庫建設,實現了基于Flex和REST(representational state transfer)技術的系統架構的系統開發和功能實現。污染源普查數據分析平臺的建設可以實現對污染源普查數據數據庫管理和空間信息挖掘。
RIA技術是Macromedia公司在2001年提出的。作為Web2.0概念中的主要組成部分,RIA是集桌面應用程序中友好的用戶界面與Web應用程序中普遍采用快速、低成本部署及互動多媒體通信的實時快捷于一體的新一代網絡應用程序[1]。
Flex 技術是 Adobe 公司推出的開發 RIA 的開源跨平臺框架,它將一種現代的、面向對象的語言和各種用戶界面及數據訪問的組件結合起來,可以創建高度交互且快速響應的網絡應用程序,并運行于幾乎所有的瀏覽器和操作系統之上,滿足用戶更為直觀和極具交互性的在線體驗[2]。
REST是一種基于HTTP協議的Web Services,是Roy Fielding博士于2000年在他的博士論文中提出來的一種輕量級、針對網絡應用的設計和開發方式[3]。REST架構是充分利用HTTP協議實現調用接口統一,它可以降低開發的復雜性,提高系統的可伸縮性。
BlazeDS是Adobe公司開源免費的數據服務框架產品,是一個基于服務器的Java遠程調用(Remoting)和Web消息傳遞(messaging)技術,其可使后臺的java應用程序和運行在瀏覽器上的Flex應用程序能夠相互通信。
BlazeDS消息傳遞是基于HTTP長連接,采用標準的HTTP協議。Flex富聯網應用程序調用遠程程序時從通道發送請求到BlazeDS端點上,請求后臺的java應用程序,并經過消息代理、消息服務、消息目的等過程把服務端的數據保存在一個ActionScript adapter的對象中,形成消息隊列[4]。
BlazeDS框架支持的HTTP Services、Web Services、RometeObject通信方式,能夠滿足系統對數據量大、交互復雜等方面的要求。BlazeDS消息傳遞過程如圖1所示。
基于Flex和REST的富聯網應用程序整體系統構架如圖2所示。系統采用3層結構構架,分別是數據層、邏輯層和表現層。

圖1 BlazeDS消息傳遞過程

圖2 系統架構圖
在系統實現過程中,數據層的任務是設計和建立數據庫。系統數據層是基于數據庫技術、ArcSDE和JDBC實現對空間數據和污染源普查數據的存儲、連接和管理。本系統中數據層包括污染源數據庫、專題數據庫、遙感影像數據庫和基礎地理數據庫。其中,污染源數據建立了2007年、2009年及2010年的污染源普查及更新數據數據庫。根據污染源普查數據建立了3年的污染源空間點位分布數據專題數據庫。遙感影像數據庫獲取了昆明市主城區Quick Bird影像及整個昆明市多年Landsat遙感影像數據。基礎地理數據庫包括了昆明市1∶20萬數據、昆明市1∶5萬數據及昆明市部分地區1∶1萬數據。
系統邏輯層是系統建設的核心,包括GIS服務器和Web服務器,分別提供GIS地圖服務和Web服務。
(1) GIS服務器
GIS服務器是為應用程序提供各種地圖服務。GIS地圖數據是通過地圖服務的形式呈現給客戶端。本系統中地圖服務采用Esri公司的ArcGIS Server 9.3,以基于REST的GIS服務方式來實現。根據功能需求,通過ArcGIS Server發布不同類型和專題的REST地圖服務。
(2) Web服務器
Web服務器是為局域網或Internet提供網上信息服務,本系統采用的是J2EE構架的Tomcat 6。通過 J2EE 應用服務器與 ArcGIS Server 服務器響應空間數據和屬性數據請求,對空間數據進行分析和控制。前臺應用程序端發送請求,通過BlazeDS連接后臺java應用程序;后臺處理請求后返回處理結果給前臺。
(1) 前臺表現層
前臺表現層是在ArcGIS API for Flex 和Flex Viewer 2.X框架上來設計與實現的各個模塊功能,其結構如圖3所示。表現層主要包含 ConfigManager(應用管理)、UIManager (界面管理)、DataManager(數據管理)、WidgetManager(工具包管理)、MapManager(地圖管理)5個部分。

圖3 前臺表現層結構
ConfigManager負責對基于XML格式的應用配置文件進行解析、維護、管理,為其他組件提供相關的配置信息。UIManager利用界面配置信息,建立WebGIS 應用框架客戶端的用戶界面。MapContainer是地圖管理核心,響應用戶對地圖的操作和交互。WidgetManager對Widget進行管理,完成Widget在生命期中與其他組件的通信與交互,根據功能自定義或擴展Widget。DataManager對數據共享、調用、訪問進行管理。
(2) 后臺邏輯實現
系統后臺采用高級開發語言Java作為開發語言。為了實現系統可擴展性和靈活性,系統后臺邏輯設計如圖4所示。系統擴展性設計是在規范統一數據庫設計的基礎上,根據XML配置文件和數據庫存儲過程,使后臺服務端可以靈活連接污染源普查數據庫。Flex客戶端與污染源數據庫通信是根據BlazeDS消息推送技術和數據庫存儲過程技術實現。客戶端通過RemoteObject將前臺消息發送后臺;后臺Java獲得推送消息,讀取XML配置文件內容匹配推送消息,調用不同專題功能數據庫存儲過程實現查詢統計并將結果返回Java后臺;最后Java后臺通過RemoteObject將結果返回到客戶端,客戶端對返回結果進行呈現。

圖4 后臺邏輯結構設計
基于上述WebGIS框架和昆明市環境監測中心實際需求,系統在J2EE構架Web服務器基礎上整合了Flex Viewer框架和BlazeDS框架。系統功能是在Flex Viewer框架的基礎上擴展的,包括地圖基本功能模塊、打印輸出模塊、空間分析模塊、地圖查詢模塊、輔助功能模塊、污染源查詢統計模塊及權限管理模塊。系統詳細功能模塊如圖5所示。

圖5 系統功能模塊圖
1) 地圖基本功能模塊。包括對地圖放大、縮小、漫游、前一視圖、后一視圖和鷹眼等的基本地圖操作功能。
2) 地圖輸出模塊。主要是實現對地圖的自定義輸出、屏幕輸出和打印預覽功能。
3) 空間分析模塊。根據需要實現了地圖緩沖區分析。
4) 污染源查詢統計模塊。專題查詢統計分析模塊分為能源消耗、用排水、廢水污染物、廢氣排放、固體廢物排放和工業源污染源數量等6個大的專題。各個專題可以按照行政區劃、行業、企業類型、企業規模方式結合關鍵字信息進行查詢統計,也可以根據空間位置進行查詢,如距離某條河流一定距離內的污染源的詳細信息;同時,實現了污染源空間點位數據與污染普查數據表間的關聯,實現了“屬性查圖”和“圖查屬性”的功能雙向查詢。屬性查圖是在對污染源普查數據庫查詢的時候,根據條件同時對污染源空間數據進行查詢,得到更為豐富的數據結果;相反,圖查屬性是在指定空間關系后,同時查詢污染源空間數據和污染源普查數據庫信息。這種功能設計的優點是可以獨立管理污染源普查數據庫和污染源空間數據庫,能夠保證數據源的統一。
5) 地圖查詢模塊。主要根據基礎地圖數據和專題數據實現GIS查詢功能,包括SQL查詢、單擊查詢、空間查詢和多邊形查詢等功能。
6) 輔助功能模塊。該模塊主要包括圖層控制、標記和量測及卷簾功能。圖層控制是實現對地圖服務圖層的顯示;標記和量測功能是可以對重點區域標記、周長和面積量測;卷簾功能是根據特定圖層進行查看。
7) 權限管理模塊。該模塊是實現對用戶管理、權限控制功能,包括用戶管理、權限管理和密碼管理功能。
系統采用ArcSDE 9.3和SQL Server 2005實現污染源數據、空間數據和屬性數據的存儲和管理。由ArcGIS Server 9.3發布影像服務、地圖服務、要素服務及幾何服務等基礎服務,以及各年份污染源空間分布專題數據地圖服務。同時,利用ArcGIS API For Flex和Flex Viewer及Java高級語言開發了功能完善的污染源普查數據分析平臺。系統運行效果如圖6所示。
本系統的實際應用表明,系統的建立實現了污染源普查數據庫和空間數據的統一管理。數據庫存儲過程和XML配置文件的使用提高了系統的擴展性和靈活性,使系統不局限于當前普查數據庫,而是可以支持后續普查數據。利用GIS功能實現不同專題污染源信息挖掘,可以為環境保護提供輔助決策支持信息。基于Flex和REST技術的污染源普查數據分析平臺可以為環境部門對污染源數據管理和挖掘提供一種合理、實用的解決方案。

圖6 系統運行界面
參考文獻:
[1] 姜銳,劉璐.RIA技術在WebGIS中的應用研究[J].測繪與空間地理信息,2012,35(9):106-108.
[2] 郎永剛. 淺談基于Flex RIA與REST的 WebGIS研究[J].測繪與空間地理信息,2011,34(6):86-88.
[3] 李久剛,唐新明,汪匯兵,等.REST架構的WebGIS技術研究與實現[J].測繪科學,2011,36(3):85-87.
[4] 李欣,杜震洪,張豐,等.基于BlazeDS消息推送的WebGIS系統設計與實現[J].計算機應用與軟件,2012,29(8):14-16,33.
[5] 陸亞剛,邱知,游先祥,等. 基于SilverLight和REST的富網絡地理信息系統框架設計[J].地球信息科學學報,2012,14(2):192-197.
[6] 楊克誠,夏既勝,孟若琳.基于ArcGIS 和Flex技術的污染源普查數據分析平臺設計[J]. 云南地理環境研究,2011,23(5):96-101.
[7] 劉俊,譚建軍,邵長高.基于Flex的WebGIS框架設計與實現[J].計算機工程,2010,36(10):222-224.
[8] 李欣,華一新.基于WebGIS的監獄應急指揮平臺框架研究[J].測繪通報,2008(3):60-62.
[9] 徐富春,黃明祥,張波,等. 第一次全國污染源普查重點污染源空間數據管理與信息共享服務平臺建設研究[J]. 環境污染與防治,2012,34(5):96-100.
[10] 郭淑芬,于志剛,李成名,等. 基于Flex開發綜合市情系統的研究與應用[J].測繪通報,2012(10):88-91.