鐘廣銳
(1.嘉應(yīng)學(xué)院 地理科學(xué)與旅游學(xué)院,廣東 梅州 514015)
城市綠地系統(tǒng)是由各種公園綠地、街道綠地、居住區(qū)綠地、機(jī)關(guān)單位綠地等共同組成的系統(tǒng), 是城市生態(tài)環(huán)境系統(tǒng)的重要組成部分??焖?、全面、準(zhǔn)確地掌握城市綠地分布現(xiàn)狀與數(shù)量,了解城市綠地動(dòng)態(tài)變化,及時(shí)做好城市綠地綜合效益評(píng)價(jià),有利于保持城市生態(tài)平衡,實(shí)現(xiàn)城市可持續(xù)發(fā)展。GIS作為一門處理空間信息的現(xiàn)代綜合性學(xué)科,被廣泛應(yīng)用于城市綠地空間信息提取及分析、生態(tài)功能評(píng)價(jià)及預(yù)測(cè)、綠地系統(tǒng)規(guī)劃、景觀設(shè)計(jì)和評(píng)價(jià)等領(lǐng)域[1-3]。但現(xiàn)有的GIS應(yīng)用開發(fā)逐步顯現(xiàn)出人員投入大,數(shù)據(jù)和軟件更新困難,軟硬件維護(hù)成本高,無法對(duì)業(yè)務(wù)變更作出及時(shí)調(diào)整等非“業(yè)務(wù)敏捷”問題。隨著面向服務(wù)的體系架構(gòu)SOA的發(fā)展,服務(wù)式GIS為解決這些問題提供新的方法。
“業(yè)務(wù)敏捷”的實(shí)現(xiàn)有賴于SOA。SOA本質(zhì)上不是某一項(xiàng)技術(shù),而是一種思想,是不斷成熟的軟件開發(fā)模型,其核心是基于標(biāo)準(zhǔn)化的技術(shù)手段,以松耦合方式組合不同層次的業(yè)務(wù)功能以提供“業(yè)務(wù)敏捷化”[4]。SOA 的關(guān)鍵是服務(wù), 它可以根據(jù)需求通過網(wǎng)絡(luò)對(duì)松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用,解決軟件跨企業(yè)、跨部門、跨業(yè)務(wù)的數(shù)據(jù)互操作問題。在此基礎(chǔ)上,提出了服務(wù)式GIS的概念。
服務(wù)式GIS是產(chǎn)生于面向服務(wù)軟件工程方法的GIS軟件技術(shù),它采用面向服務(wù)的軟件工程方法,把GIS的全部功能封裝為Web服務(wù),從而實(shí)現(xiàn)了被多種客戶端跨平臺(tái)、跨網(wǎng)絡(luò)、跨語言的調(diào)用[5],并具備了服務(wù)聚合能力以集成來自其他服務(wù)器發(fā)布的GIS服務(wù)。服務(wù)式GIS包括服務(wù)器、服務(wù)規(guī)范和客戶端3個(gè)要素(見圖1)。服務(wù)器是生產(chǎn)者,提供符合服務(wù)規(guī)范的服務(wù),也可以聚合其他服務(wù)器提供的服務(wù);服務(wù)規(guī)范是公認(rèn)的標(biāo)準(zhǔn),主要包括OGC的WMS、WCS、WFS、WPS、GeoRSS、KML等;客戶端是消費(fèi)者,同時(shí)也應(yīng)該具備聚合能力,可聚合同一廠家服務(wù)器軟件和第三方服務(wù)器軟件發(fā)布的GIS服務(wù),并與本地?cái)?shù)據(jù)和本地功能集成應(yīng)用。同時(shí),服務(wù)式GIS還應(yīng)該支持跨網(wǎng)絡(luò)集成,更易于構(gòu)建分布式應(yīng)用,通過聚合和集成已有的應(yīng)用服務(wù)快捷地構(gòu)建新的應(yīng)用系統(tǒng)或升級(jí)已有的應(yīng)用系統(tǒng),達(dá)到GIS中的“業(yè)務(wù)敏捷”。由于服務(wù)式GIS更全面地支技SOA,通過對(duì)多種SOA實(shí)踐標(biāo)準(zhǔn)與空間信息服務(wù)標(biāo)準(zhǔn)的支持,也可使GIS系統(tǒng)能與其他IT業(yè)務(wù)系統(tǒng)進(jìn)行無縫的異構(gòu)集成。
圖1 服務(wù)式GIS的組成
梅州城區(qū)綠地規(guī)劃管理系統(tǒng)嚴(yán)格遵循模型-視圖-控制器MVC設(shè)計(jì)框架,基于服務(wù)式GIS的設(shè)計(jì)方法并結(jié)合REST(表述性狀態(tài)轉(zhuǎn)移)設(shè)計(jì)風(fēng)格,以確保應(yīng)用程序具有快速開發(fā)的優(yōu)勢(shì)和更高的可維護(hù)性。REST是一種軟件架構(gòu)風(fēng)格,它提供了一種新的服務(wù)方式,網(wǎng)絡(luò)上的所有事物都被抽象為資源,通過URL來設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)[6]。根據(jù)REST,每個(gè) URL 都代表一個(gè)資源,整個(gè)系統(tǒng)就是由這些資源組成的。系統(tǒng)由數(shù)據(jù)層、服務(wù)層、業(yè)務(wù)邏輯控制層和視圖層4個(gè)模式組成(見圖2),實(shí)現(xiàn)前臺(tái)視圖應(yīng)用與后臺(tái)業(yè)務(wù)邏輯的分離。
圖2 系統(tǒng)架構(gòu)圖
數(shù)據(jù)層是任何一個(gè)信息系統(tǒng)的核心。系統(tǒng)的數(shù)據(jù)分為基礎(chǔ)地理數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)2大部分,而基礎(chǔ)地理數(shù)據(jù)又包括了地理底圖數(shù)據(jù)和專題地圖數(shù)據(jù)。地理底圖數(shù)據(jù)主要來源包括城區(qū)1∶10 000地形數(shù)據(jù)、0.6 m分辨率QuickBird影像數(shù)據(jù)、城區(qū)行政區(qū)劃數(shù)據(jù);專題地圖數(shù)據(jù)包括城區(qū)綠地分布圖、2004~2020年綠地規(guī)劃發(fā)展分布圖、城區(qū)土地利用類型圖、人口分布圖、土壤分布圖、水源分布圖以及交通道路圖等。數(shù)據(jù)主要從各個(gè)部門獲取,有些只有紙質(zhì)地圖的,則必須經(jīng)過配準(zhǔn)、掃描、矢量化等數(shù)據(jù)處理過程轉(zhuǎn)換為數(shù)據(jù)文件。業(yè)務(wù)數(shù)據(jù)則是系統(tǒng)的業(yè)務(wù)邏輯中所涉及到的相關(guān)屬性數(shù)據(jù),主要來源于原有的業(yè)務(wù)系統(tǒng)以及新的業(yè)務(wù)。
數(shù)據(jù)庫(kù)設(shè)計(jì)是系統(tǒng)設(shè)計(jì)階段的重點(diǎn),包括空間數(shù)據(jù)庫(kù)設(shè)計(jì)、屬性數(shù)據(jù)庫(kù)設(shè)計(jì)以及空間數(shù)據(jù)與屬性數(shù)據(jù)的關(guān)聯(lián)。按GIS軟件的設(shè)計(jì)方法,空間數(shù)據(jù)參照應(yīng)用進(jìn)行分層設(shè)計(jì)(見表1)。
服務(wù)層首先完成各種應(yīng)用的封裝,利用服務(wù)式GIS的功能,將這些應(yīng)用封裝成Web Service服務(wù)并進(jìn)行發(fā)布。服務(wù)嚴(yán)格遵循OGC規(guī)范和SOAP協(xié)議,客戶端可直接進(jìn)行調(diào)用[7]。系統(tǒng)提供的服務(wù)主要包括:基礎(chǔ)地圖訪問、地理編碼、專題地圖制圖、空間分析、空間查詢、空間統(tǒng)計(jì)、模型演算和規(guī)劃評(píng)估等。
表1 系統(tǒng)主要空間數(shù)據(jù)分層
系統(tǒng)支持異構(gòu)GIS平臺(tái)的集成,因?yàn)椴捎脴?biāo)準(zhǔn)的Web Service。各個(gè)服務(wù)首先進(jìn)行統(tǒng)一注冊(cè),各個(gè)使用部門可查詢、調(diào)用注冊(cè)服務(wù),同時(shí),可以按部門本身的業(yè)務(wù)流程進(jìn)行服務(wù)組合和編排。當(dāng)某一業(yè)務(wù)需求發(fā)生改變時(shí),可以通過編排服務(wù)的方式重新生成新的業(yè)務(wù),從而有效地減少編碼工作量。服務(wù)式集成使各個(gè)業(yè)務(wù)部門只側(cè)重于本部門相關(guān)的業(yè)務(wù)流程和服務(wù)應(yīng)用,而不用過多關(guān)注內(nèi)部的技術(shù)實(shí)現(xiàn),這樣可以在保證數(shù)據(jù)安全的同時(shí),有效地進(jìn)行數(shù)據(jù)和功能的共享,從而達(dá)到“業(yè)務(wù)敏捷”。
應(yīng)用層是用戶使用系統(tǒng)的窗口,即所謂的客戶端。隨著RIA技術(shù)和移動(dòng)互聯(lián)技術(shù)的發(fā)展,客戶端已不再局限于窗體或?yàn)g覽器這2種形式。根據(jù)業(yè)務(wù)需求,系統(tǒng)的客戶端設(shè)計(jì)采用了3種形式:①注重多種業(yè)務(wù)功能組合應(yīng)用的C/S模式,采用組件式開發(fā)平臺(tái)設(shè)計(jì)的WinForm形式,主要應(yīng)用在內(nèi)部業(yè)務(wù)辦公以及系統(tǒng)的后臺(tái)數(shù)據(jù)維護(hù)等部門;②公眾應(yīng)用平臺(tái),采用RIA技術(shù),使用Adobe Flex進(jìn)行設(shè)計(jì),主要用于公眾對(duì)相關(guān)信息的查詢;③對(duì)于外出部門使用的移動(dòng)業(yè)務(wù),如公園綠地日常巡查維護(hù)、古樹保護(hù)等,采用移動(dòng)互聯(lián)技術(shù),以App的形式提供。
基于服務(wù)式GIS的梅州城區(qū)綠地規(guī)劃管理系統(tǒng)所涉及的軟件開發(fā)環(huán)境主要包括:①服務(wù)器操作系統(tǒng)為Windows 2008 R2(64位);②服務(wù)式GIS選用Esri ArcGIS 9.3 Server,前期的空間數(shù)據(jù)處理也是采用ArcGIS Desktop 9.3;③數(shù)據(jù)庫(kù)延用原有的SQL Server 2008;數(shù)據(jù)驅(qū)動(dòng)統(tǒng)一采用ArcGIS SDE;④客戶端有3種 :ArcGIS for Flex API(Flex viewer框架)、移動(dòng)端的ArcGIS for Android API和使用VS.NET 2008結(jié)合ArcGIS Engine開發(fā)的WinForm窗體程序。
系統(tǒng)在ArcGIS 9.3平臺(tái)上實(shí)現(xiàn)了數(shù)據(jù)共享,利用ArcGIS Server完成了專題地圖服務(wù)和GIS功能服務(wù)的發(fā)布與管理。限于篇幅,文中主要分析說明幾個(gè)關(guān)鍵功能的實(shí)現(xiàn)方法。
空間數(shù)據(jù)處理采用ArcGIS Desktop 9.3完成,包括地圖的設(shè)計(jì)制作;屬性數(shù)據(jù)是在原有的SQL Server 2008數(shù)據(jù)庫(kù)基礎(chǔ)上進(jìn)行更新升級(jí),加上一些新的數(shù)據(jù)表以擴(kuò)充新的業(yè)務(wù);空間數(shù)據(jù)與屬性數(shù)據(jù)通過地物ID這個(gè)關(guān)鍵字進(jìn)行關(guān)聯(lián)。數(shù)據(jù)經(jīng)過ArcGIS SDE引擎,保存在原有的SQL Server 2008數(shù)據(jù)服務(wù)器中。
系統(tǒng)對(duì)空間數(shù)據(jù)的訪問接口可以直接調(diào)用Web Service網(wǎng)絡(luò)服務(wù),再由Web Service訪問ODBC調(diào)用后臺(tái)數(shù)據(jù)庫(kù)。所以,數(shù)據(jù)和地圖服務(wù)的發(fā)布都是通過在ArcGIS Server中發(fā)布的服務(wù)來提供的[8]。ArcGIS Server提供了2種方法來發(fā)布Map Service:一種是利用ArcCatalog中的ArcGIS Server服務(wù)管理方式進(jìn)行發(fā)布;另一種是通過網(wǎng)頁形式的ArcGIS Server Manager方式進(jìn)行服務(wù)的發(fā)布與管理,通過ArcGIS Server Manager還可以發(fā)布支持OGC規(guī)范的地圖服務(wù)。系統(tǒng)采用了第2種方式。
系統(tǒng)的空間分析功能包括了空間查詢、空間統(tǒng)計(jì)分析、疊加分析以及網(wǎng)絡(luò)分析。網(wǎng)絡(luò)分析主要提供了路徑分析、服務(wù)區(qū)分析和通達(dá)性分析等應(yīng)用。ArcGIS Server提供了Geoprocessing Service和Geometry Service 2種服務(wù)類型來完成這些功能[9]。Geoprocessing Service是基于Web的處理工具,客戶端提交處理請(qǐng)求,服務(wù)器執(zhí)行空間分析和建模,然后把處理結(jié)果返回客戶端展現(xiàn)。Geometry Service是空間服務(wù)對(duì)象,支持創(chuàng)建緩沖區(qū),確定空間對(duì)象的拓?fù)潢P(guān)系等功能。以服務(wù)區(qū)分析功能為例:首先,按業(yè)務(wù)要求在ArcGIS Desktop準(zhǔn)備好數(shù)據(jù),特別是網(wǎng)絡(luò)數(shù)據(jù)集,完成地圖的制作;然后通過ArcGIS Server發(fā)布Map Service和Geoprocessing Service,服務(wù)發(fā)布完成后,可以提供給不同的客戶端使用,如 Web Mapping Applications、ArcGIS Explorer、基于ArcGIS開發(fā)的WinForm程序等,同時(shí)也可以通過REST API的方式提供給客戶端進(jìn)行編程使用(URL地址),如富客戶端RIA開發(fā)、移動(dòng)端開發(fā)等。
基于服務(wù)式GIS的架構(gòu),系統(tǒng)客戶端的主要功能是完成服務(wù)的申請(qǐng)、提交以及接收、展現(xiàn)處理結(jié)果。所以,客戶端的UI設(shè)計(jì)尤為重要。結(jié)合原有的業(yè)務(wù)應(yīng)用,客戶端主要有3種形式:WinForm窗體、富客戶端(Flex)和移動(dòng)端(暫只支持Android)。窗體應(yīng)用基于ArcGIS Engine進(jìn)行開發(fā),基本保留原有的業(yè)務(wù)系統(tǒng),采用C/S模式,主要用于相關(guān)部門內(nèi)部辦公(見圖3)。RIA應(yīng)用主要采用B/S模式,主要用于公眾信息的發(fā)布和查詢(見圖4)。移動(dòng)客戶端的開發(fā),暫只支持Android系統(tǒng),基于ArcGIS Server for Android API,主要用于一些特殊的移動(dòng)巡查業(yè)務(wù)。
圖3 系統(tǒng)窗體客戶端界面
基于服務(wù)式GIS的梅州城區(qū)綠地規(guī)劃管理系統(tǒng),改變了原有組件式GIS的開發(fā)方式,把 GIS 基礎(chǔ)和核心功能全部進(jìn)行封裝,以REST服務(wù)的方式提供給客戶端,使相關(guān)的信息管理部門從原有的以應(yīng)用為中心轉(zhuǎn)變?yōu)橐赃^程為中心,大大減輕了操作難度;同時(shí),信息管理部門可以靈活地組合多種服務(wù),快捷地形成新的業(yè)務(wù)應(yīng)用,支持真正的端到端的業(yè)務(wù)流程;信息管理部門還可以在不影響其他SOA應(yīng)用的情況下改變或升級(jí)應(yīng)用,這些都體現(xiàn)了“業(yè)務(wù)敏捷”。當(dāng)然,系統(tǒng)仍然存在一些問題,今后應(yīng)該進(jìn)一步加強(qiáng)研究的工作有:①拓展服務(wù)的類型,提供更全面的業(yè)務(wù)應(yīng)用;②提高服務(wù)的聚合能力,實(shí)現(xiàn)信息資源更全面的共享;③豐富客戶端的應(yīng)用,包括支持IOS或Win Phone,或是基于HTML5,統(tǒng)一各種移動(dòng)端和瀏覽器的應(yīng)用。
[1]徐志剛,高鵬, 陳雪玲.基于RS和 GIS的城市綠地系統(tǒng)建立及綜合效益評(píng)價(jià)初探[J].江西理工大學(xué)學(xué)報(bào),2011,32(5):28-31
[2]王衍臻,石金鋒, 段向紅.基于空間信息技術(shù)的數(shù)字園林框架體系結(jié)構(gòu)[J].計(jì)算機(jī)工程, 2005, 31( 8): 200-202
[3]宋志明,焦道振,胡勝華.基于RS與GIS的廣州市城市綠地景觀空間分析[J].測(cè)繪通報(bào), 2010(5):29-31
[4]檀丁,李明峰,張蔚,等.GP服務(wù)在基于SOA的WebGIS空間分析中的應(yīng)用研究[J].測(cè)繪通報(bào), 2011(7):70-73
[5]宋關(guān)福. Service GIS引發(fā)地理信息服務(wù)共享與聚合革命[J].地理信息世界, 2008(6):82-85
[6]李久剛,唐新明,汪匯兵,等.REST架構(gòu)的WebGIS技術(shù)研究與實(shí)現(xiàn)[J].測(cè)繪科學(xué),2011(3):88-90
[7]鄔群勇,王欽敏.基于Web Services的空間信息應(yīng)用集成解決方案研究[J].地球信息科學(xué)學(xué)報(bào),2011(2):73-79
[8]崔倫輝,金繼業(yè),劉金.基于ArcGIS Server的海島管理平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪科學(xué),2011,36(1):218-219,197
[9]左進(jìn)府,洪金益,黃丙湖.基于ArcGIS Server的實(shí)時(shí)水情發(fā)布系統(tǒng)開發(fā)[J].地理空間信息,2011,9(1):135-137,14
[10]張宏偉,魏鋒,佘遠(yuǎn)見.基于 Flex和ArcGIS Server的城市防汛指揮系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].地理空間信息,2011,9(6):34-36,39