朱彥輝,楊 昆,李 建,趙旭東,郭林崗
(1. 云南師范大學(xué) 旅游與地理科學(xué)學(xué)院,云南 昆明 650500; 2. 云南師范大學(xué) 信息學(xué)院,云南 昆明 650500;3. 昆明市環(huán)境監(jiān)測(cè)中心,云南 昆明 650500)
全國(guó)污染源普查是一項(xiàng)重大的國(guó)情調(diào)查工程,是全面掌握我國(guó)環(huán)境狀況的重要途徑。污染源普查數(shù)據(jù)是重要的基礎(chǔ)環(huán)境數(shù)據(jù),普查數(shù)據(jù)綜合分析與成果開發(fā)得到的普查資料是進(jìn)行環(huán)境管理和科學(xué)研究的基礎(chǔ)?;谄詹閿?shù)據(jù)還可建立污染源動(dòng)態(tài)管理系統(tǒng),有利于進(jìn)一步加強(qiáng)污染源監(jiān)管。通過(guò)對(duì)污染源普查數(shù)據(jù)進(jìn)行全面、深入、系統(tǒng)的開發(fā)應(yīng)用,可以充分發(fā)揮普查數(shù)據(jù)的使用價(jià)值和社會(huì)效益。
隨著富聯(lián)網(wǎng)應(yīng)用程序(rich internet application,RIA)技術(shù)的發(fā)展,RIA為Web 應(yīng)用提供了一種全新的解決方案。Flex是目前開發(fā)RIA的主流技術(shù)之一。本文在分析環(huán)保部門對(duì)污染源普查數(shù)據(jù)功能需求的基礎(chǔ)上,實(shí)現(xiàn)了污染源普查數(shù)據(jù)空間點(diǎn)位可視化和空間數(shù)據(jù)庫(kù)建設(shè),實(shí)現(xiàn)了基于Flex和REST(representational state transfer)技術(shù)的系統(tǒng)架構(gòu)的系統(tǒng)開發(fā)和功能實(shí)現(xiàn)。污染源普查數(shù)據(jù)分析平臺(tái)的建設(shè)可以實(shí)現(xiàn)對(duì)污染源普查數(shù)據(jù)數(shù)據(jù)庫(kù)管理和空間信息挖掘。
RIA技術(shù)是Macromedia公司在2001年提出的。作為Web2.0概念中的主要組成部分,RIA是集桌面應(yīng)用程序中友好的用戶界面與Web應(yīng)用程序中普遍采用快速、低成本部署及互動(dòng)多媒體通信的實(shí)時(shí)快捷于一體的新一代網(wǎng)絡(luò)應(yīng)用程序[1]。
Flex 技術(shù)是 Adobe 公司推出的開發(fā) RIA 的開源跨平臺(tái)框架,它將一種現(xiàn)代的、面向?qū)ο蟮恼Z(yǔ)言和各種用戶界面及數(shù)據(jù)訪問(wèn)的組件結(jié)合起來(lái),可以創(chuàng)建高度交互且快速響應(yīng)的網(wǎng)絡(luò)應(yīng)用程序,并運(yùn)行于幾乎所有的瀏覽器和操作系統(tǒng)之上,滿足用戶更為直觀和極具交互性的在線體驗(yàn)[2]。
REST是一種基于HTTP協(xié)議的Web Services,是Roy Fielding博士于2000年在他的博士論文中提出來(lái)的一種輕量級(jí)、針對(duì)網(wǎng)絡(luò)應(yīng)用的設(shè)計(jì)和開發(fā)方式[3]。REST架構(gòu)是充分利用HTTP協(xié)議實(shí)現(xiàn)調(diào)用接口統(tǒng)一,它可以降低開發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性。
BlazeDS是Adobe公司開源免費(fèi)的數(shù)據(jù)服務(wù)框架產(chǎn)品,是一個(gè)基于服務(wù)器的Java遠(yuǎn)程調(diào)用(Remoting)和Web消息傳遞(messaging)技術(shù),其可使后臺(tái)的java應(yīng)用程序和運(yùn)行在瀏覽器上的Flex應(yīng)用程序能夠相互通信。
BlazeDS消息傳遞是基于HTTP長(zhǎng)連接,采用標(biāo)準(zhǔn)的HTTP協(xié)議。Flex富聯(lián)網(wǎng)應(yīng)用程序調(diào)用遠(yuǎn)程程序時(shí)從通道發(fā)送請(qǐng)求到BlazeDS端點(diǎn)上,請(qǐng)求后臺(tái)的java應(yīng)用程序,并經(jīng)過(guò)消息代理、消息服務(wù)、消息目的等過(guò)程把服務(wù)端的數(shù)據(jù)保存在一個(gè)ActionScript adapter的對(duì)象中,形成消息隊(duì)列[4]。
BlazeDS框架支持的HTTP Services、Web Services、RometeObject通信方式,能夠滿足系統(tǒng)對(duì)數(shù)據(jù)量大、交互復(fù)雜等方面的要求。BlazeDS消息傳遞過(guò)程如圖1所示。
基于Flex和REST的富聯(lián)網(wǎng)應(yīng)用程序整體系統(tǒng)構(gòu)架如圖2所示。系統(tǒng)采用3層結(jié)構(gòu)構(gòu)架,分別是數(shù)據(jù)層、邏輯層和表現(xiàn)層。
圖1 BlazeDS消息傳遞過(guò)程
圖2 系統(tǒng)架構(gòu)圖
在系統(tǒng)實(shí)現(xiàn)過(guò)程中,數(shù)據(jù)層的任務(wù)是設(shè)計(jì)和建立數(shù)據(jù)庫(kù)。系統(tǒng)數(shù)據(jù)層是基于數(shù)據(jù)庫(kù)技術(shù)、ArcSDE和JDBC實(shí)現(xiàn)對(duì)空間數(shù)據(jù)和污染源普查數(shù)據(jù)的存儲(chǔ)、連接和管理。本系統(tǒng)中數(shù)據(jù)層包括污染源數(shù)據(jù)庫(kù)、專題數(shù)據(jù)庫(kù)、遙感影像數(shù)據(jù)庫(kù)和基礎(chǔ)地理數(shù)據(jù)庫(kù)。其中,污染源數(shù)據(jù)建立了2007年、2009年及2010年的污染源普查及更新數(shù)據(jù)數(shù)據(jù)庫(kù)。根據(jù)污染源普查數(shù)據(jù)建立了3年的污染源空間點(diǎn)位分布數(shù)據(jù)專題數(shù)據(jù)庫(kù)。遙感影像數(shù)據(jù)庫(kù)獲取了昆明市主城區(qū)Quick Bird影像及整個(gè)昆明市多年Landsat遙感影像數(shù)據(jù)?;A(chǔ)地理數(shù)據(jù)庫(kù)包括了昆明市1∶20萬(wàn)數(shù)據(jù)、昆明市1∶5萬(wàn)數(shù)據(jù)及昆明市部分地區(qū)1∶1萬(wàn)數(shù)據(jù)。
系統(tǒng)邏輯層是系統(tǒng)建設(shè)的核心,包括GIS服務(wù)器和Web服務(wù)器,分別提供GIS地圖服務(wù)和Web服務(wù)。
(1) GIS服務(wù)器
GIS服務(wù)器是為應(yīng)用程序提供各種地圖服務(wù)。GIS地圖數(shù)據(jù)是通過(guò)地圖服務(wù)的形式呈現(xiàn)給客戶端。本系統(tǒng)中地圖服務(wù)采用Esri公司的ArcGIS Server 9.3,以基于REST的GIS服務(wù)方式來(lái)實(shí)現(xiàn)。根據(jù)功能需求,通過(guò)ArcGIS Server發(fā)布不同類型和專題的REST地圖服務(wù)。
(2) Web服務(wù)器
Web服務(wù)器是為局域網(wǎng)或Internet提供網(wǎng)上信息服務(wù),本系統(tǒng)采用的是J2EE構(gòu)架的Tomcat 6。通過(guò) J2EE 應(yīng)用服務(wù)器與 ArcGIS Server 服務(wù)器響應(yīng)空間數(shù)據(jù)和屬性數(shù)據(jù)請(qǐng)求,對(duì)空間數(shù)據(jù)進(jìn)行分析和控制。前臺(tái)應(yīng)用程序端發(fā)送請(qǐng)求,通過(guò)BlazeDS連接后臺(tái)java應(yīng)用程序;后臺(tái)處理請(qǐng)求后返回處理結(jié)果給前臺(tái)。
(1) 前臺(tái)表現(xiàn)層
前臺(tái)表現(xiàn)層是在ArcGIS API for Flex 和Flex Viewer 2.X框架上來(lái)設(shè)計(jì)與實(shí)現(xiàn)的各個(gè)模塊功能,其結(jié)構(gòu)如圖3所示。表現(xiàn)層主要包含 ConfigManager(應(yīng)用管理)、UIManager (界面管理)、DataManager(數(shù)據(jù)管理)、WidgetManager(工具包管理)、MapManager(地圖管理)5個(gè)部分。
圖3 前臺(tái)表現(xiàn)層結(jié)構(gòu)
ConfigManager負(fù)責(zé)對(duì)基于XML格式的應(yīng)用配置文件進(jìn)行解析、維護(hù)、管理,為其他組件提供相關(guān)的配置信息。UIManager利用界面配置信息,建立WebGIS 應(yīng)用框架客戶端的用戶界面。MapContainer是地圖管理核心,響應(yīng)用戶對(duì)地圖的操作和交互。WidgetManager對(duì)Widget進(jìn)行管理,完成Widget在生命期中與其他組件的通信與交互,根據(jù)功能自定義或擴(kuò)展Widget。DataManager對(duì)數(shù)據(jù)共享、調(diào)用、訪問(wèn)進(jìn)行管理。
(2) 后臺(tái)邏輯實(shí)現(xiàn)
系統(tǒng)后臺(tái)采用高級(jí)開發(fā)語(yǔ)言Java作為開發(fā)語(yǔ)言。為了實(shí)現(xiàn)系統(tǒng)可擴(kuò)展性和靈活性,系統(tǒng)后臺(tái)邏輯設(shè)計(jì)如圖4所示。系統(tǒng)擴(kuò)展性設(shè)計(jì)是在規(guī)范統(tǒng)一數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ)上,根據(jù)XML配置文件和數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程,使后臺(tái)服務(wù)端可以靈活連接污染源普查數(shù)據(jù)庫(kù)。Flex客戶端與污染源數(shù)據(jù)庫(kù)通信是根據(jù)BlazeDS消息推送技術(shù)和數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程技術(shù)實(shí)現(xiàn)??蛻舳送ㄟ^(guò)RemoteObject將前臺(tái)消息發(fā)送后臺(tái);后臺(tái)Java獲得推送消息,讀取XML配置文件內(nèi)容匹配推送消息,調(diào)用不同專題功能數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程實(shí)現(xiàn)查詢統(tǒng)計(jì)并將結(jié)果返回Java后臺(tái);最后Java后臺(tái)通過(guò)RemoteObject將結(jié)果返回到客戶端,客戶端對(duì)返回結(jié)果進(jìn)行呈現(xiàn)。
圖4 后臺(tái)邏輯結(jié)構(gòu)設(shè)計(jì)
基于上述WebGIS框架和昆明市環(huán)境監(jiān)測(cè)中心實(shí)際需求,系統(tǒng)在J2EE構(gòu)架Web服務(wù)器基礎(chǔ)上整合了Flex Viewer框架和BlazeDS框架。系統(tǒng)功能是在Flex Viewer框架的基礎(chǔ)上擴(kuò)展的,包括地圖基本功能模塊、打印輸出模塊、空間分析模塊、地圖查詢模塊、輔助功能模塊、污染源查詢統(tǒng)計(jì)模塊及權(quán)限管理模塊。系統(tǒng)詳細(xì)功能模塊如圖5所示。
圖5 系統(tǒng)功能模塊圖
1) 地圖基本功能模塊。包括對(duì)地圖放大、縮小、漫游、前一視圖、后一視圖和鷹眼等的基本地圖操作功能。
2) 地圖輸出模塊。主要是實(shí)現(xiàn)對(duì)地圖的自定義輸出、屏幕輸出和打印預(yù)覽功能。
3) 空間分析模塊。根據(jù)需要實(shí)現(xiàn)了地圖緩沖區(qū)分析。
4) 污染源查詢統(tǒng)計(jì)模塊。專題查詢統(tǒng)計(jì)分析模塊分為能源消耗、用排水、廢水污染物、廢氣排放、固體廢物排放和工業(yè)源污染源數(shù)量等6個(gè)大的專題。各個(gè)專題可以按照行政區(qū)劃、行業(yè)、企業(yè)類型、企業(yè)規(guī)模方式結(jié)合關(guān)鍵字信息進(jìn)行查詢統(tǒng)計(jì),也可以根據(jù)空間位置進(jìn)行查詢,如距離某條河流一定距離內(nèi)的污染源的詳細(xì)信息;同時(shí),實(shí)現(xiàn)了污染源空間點(diǎn)位數(shù)據(jù)與污染普查數(shù)據(jù)表間的關(guān)聯(lián),實(shí)現(xiàn)了“屬性查圖”和“圖查屬性”的功能雙向查詢。屬性查圖是在對(duì)污染源普查數(shù)據(jù)庫(kù)查詢的時(shí)候,根據(jù)條件同時(shí)對(duì)污染源空間數(shù)據(jù)進(jìn)行查詢,得到更為豐富的數(shù)據(jù)結(jié)果;相反,圖查屬性是在指定空間關(guān)系后,同時(shí)查詢污染源空間數(shù)據(jù)和污染源普查數(shù)據(jù)庫(kù)信息。這種功能設(shè)計(jì)的優(yōu)點(diǎn)是可以獨(dú)立管理污染源普查數(shù)據(jù)庫(kù)和污染源空間數(shù)據(jù)庫(kù),能夠保證數(shù)據(jù)源的統(tǒng)一。
5) 地圖查詢模塊。主要根據(jù)基礎(chǔ)地圖數(shù)據(jù)和專題數(shù)據(jù)實(shí)現(xiàn)GIS查詢功能,包括SQL查詢、單擊查詢、空間查詢和多邊形查詢等功能。
6) 輔助功能模塊。該模塊主要包括圖層控制、標(biāo)記和量測(cè)及卷簾功能。圖層控制是實(shí)現(xiàn)對(duì)地圖服務(wù)圖層的顯示;標(biāo)記和量測(cè)功能是可以對(duì)重點(diǎn)區(qū)域標(biāo)記、周長(zhǎng)和面積量測(cè);卷簾功能是根據(jù)特定圖層進(jìn)行查看。
7) 權(quán)限管理模塊。該模塊是實(shí)現(xiàn)對(duì)用戶管理、權(quán)限控制功能,包括用戶管理、權(quán)限管理和密碼管理功能。
系統(tǒng)采用ArcSDE 9.3和SQL Server 2005實(shí)現(xiàn)污染源數(shù)據(jù)、空間數(shù)據(jù)和屬性數(shù)據(jù)的存儲(chǔ)和管理。由ArcGIS Server 9.3發(fā)布影像服務(wù)、地圖服務(wù)、要素服務(wù)及幾何服務(wù)等基礎(chǔ)服務(wù),以及各年份污染源空間分布專題數(shù)據(jù)地圖服務(wù)。同時(shí),利用ArcGIS API For Flex和Flex Viewer及Java高級(jí)語(yǔ)言開發(fā)了功能完善的污染源普查數(shù)據(jù)分析平臺(tái)。系統(tǒng)運(yùn)行效果如圖6所示。
本系統(tǒng)的實(shí)際應(yīng)用表明,系統(tǒng)的建立實(shí)現(xiàn)了污染源普查數(shù)據(jù)庫(kù)和空間數(shù)據(jù)的統(tǒng)一管理。數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程和XML配置文件的使用提高了系統(tǒng)的擴(kuò)展性和靈活性,使系統(tǒng)不局限于當(dāng)前普查數(shù)據(jù)庫(kù),而是可以支持后續(xù)普查數(shù)據(jù)。利用GIS功能實(shí)現(xiàn)不同專題污染源信息挖掘,可以為環(huán)境保護(hù)提供輔助決策支持信息?;贔lex和REST技術(shù)的污染源普查數(shù)據(jù)分析平臺(tái)可以為環(huán)境部門對(duì)污染源數(shù)據(jù)管理和挖掘提供一種合理、實(shí)用的解決方案。
圖6 系統(tǒng)運(yùn)行界面
參考文獻(xiàn):
[1] 姜銳,劉璐.RIA技術(shù)在WebGIS中的應(yīng)用研究[J].測(cè)繪與空間地理信息,2012,35(9):106-108.
[2] 郎永剛. 淺談基于Flex RIA與REST的 WebGIS研究[J].測(cè)繪與空間地理信息,2011,34(6):86-88.
[3] 李久剛,唐新明,汪匯兵,等.REST架構(gòu)的WebGIS技術(shù)研究與實(shí)現(xiàn)[J].測(cè)繪科學(xué),2011,36(3):85-87.
[4] 李欣,杜震洪,張豐,等.基于BlazeDS消息推送的WebGIS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2012,29(8):14-16,33.
[5] 陸亞剛,邱知,游先祥,等. 基于SilverLight和REST的富網(wǎng)絡(luò)地理信息系統(tǒng)框架設(shè)計(jì)[J].地球信息科學(xué)學(xué)報(bào),2012,14(2):192-197.
[6] 楊克誠(chéng),夏既勝,孟若琳.基于ArcGIS 和Flex技術(shù)的污染源普查數(shù)據(jù)分析平臺(tái)設(shè)計(jì)[J]. 云南地理環(huán)境研究,2011,23(5):96-101.
[7] 劉俊,譚建軍,邵長(zhǎng)高.基于Flex的WebGIS框架設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36(10):222-224.
[8] 李欣,華一新.基于WebGIS的監(jiān)獄應(yīng)急指揮平臺(tái)框架研究[J].測(cè)繪通報(bào),2008(3):60-62.
[9] 徐富春,黃明祥,張波,等. 第一次全國(guó)污染源普查重點(diǎn)污染源空間數(shù)據(jù)管理與信息共享服務(wù)平臺(tái)建設(shè)研究[J]. 環(huán)境污染與防治,2012,34(5):96-100.
[10] 郭淑芬,于志剛,李成名,等. 基于Flex開發(fā)綜合市情系統(tǒng)的研究與應(yīng)用[J].測(cè)繪通報(bào),2012(10):88-91.