何濤,彭兵,徐軍
(1.天津市測(cè)繪院,天津 300041; 2.廣東省測(cè)繪技術(shù)公司,廣東廣州 510075;3.武漢大學(xué)遙感信息工程學(xué)院,湖北武漢 430079)
基于SOA架構(gòu)的WebGIS實(shí)現(xiàn)方法研究
何濤1?,彭兵2,徐軍3
(1.天津市測(cè)繪院,天津 300041; 2.廣東省測(cè)繪技術(shù)公司,廣東廣州 510075;3.武漢大學(xué)遙感信息工程學(xué)院,湖北武漢 430079)
處理功能的服務(wù)化已經(jīng)成為當(dāng)前空間信息領(lǐng)域的主要發(fā)展趨勢(shì)之一。本文總結(jié)了當(dāng)前空間信息服務(wù)開發(fā)存在的各種情況,并給出了相應(yīng)的解決方案。根據(jù)本文的方法,可以很容易地將現(xiàn)有的常見GIS功能轉(zhuǎn)化為網(wǎng)絡(luò)處理服務(wù),并對(duì)各種服務(wù)進(jìn)行聚合,從而以一種標(biāo)準(zhǔn)的、與平臺(tái)無關(guān)的形式提供并共享各種空間信息處理功能。
Web Service;WebGIS;OGC WPS;組合服務(wù);SOA
自從上世紀(jì)60年代末,加拿大建立世界上第一個(gè)地理信息系統(tǒng)(Geographic Information System,GIS)[1]以來,GIS的理論和應(yīng)用得到了蓬勃發(fā)展。近年來,地球空間信息學(xué)[2]相關(guān)技術(shù)的快速發(fā)展為GIS提供了海量的數(shù)據(jù)來源。面對(duì)日益豐富的空間數(shù)據(jù)所帶來的重荷和大量現(xiàn)有系統(tǒng)功能重疊所導(dǎo)致的嚴(yán)重資源浪費(fèi),傳統(tǒng)的組件GIS[3]已不能滿足人們的需要,GIS功能的服務(wù)化[4]和智能化[5]已經(jīng)成為其發(fā)展的重要趨勢(shì)??臻g信息Web服務(wù)是在Web服務(wù)[6]技術(shù)和標(biāo)準(zhǔn)的基礎(chǔ)上實(shí)現(xiàn)的地理空間信息網(wǎng)上在線服務(wù)[4]。作為空間信息領(lǐng)域重要的標(biāo)準(zhǔn)化組織之一,OGC(Open GIS Consortium)[7]提供了一個(gè)以服務(wù)為中心的互操作框架,WPS(Web Processing Service)[8]是其重要內(nèi)容之一。WPS通過將GIS操作封裝成遵循OGC標(biāo)準(zhǔn)的Web Service,以在線的方式向客戶端提供相應(yīng)的處理功能,這種基于SOA架構(gòu)的處理方法提供了一種開放的、可互操作、動(dòng)態(tài)鏈接的空間信息服務(wù)網(wǎng)絡(luò)體系平臺(tái)[9]。由于當(dāng)前的OGC WPS大多僅實(shí)現(xiàn)了基于HTTP GET/POST調(diào)用方式的接口,難于采用成熟的Business Process Execution Language(BPEL)[10]進(jìn)行大規(guī)模集成,這導(dǎo)致了大量的資源浪費(fèi)。文獻(xiàn)[11]通過對(duì)OGC WPS進(jìn)行封裝,形成代理服務(wù),代理服務(wù)對(duì)外提供遵循W3C標(biāo)準(zhǔn)[12]的Web Service接口,從而可以采用BPEL對(duì)原有的WPS進(jìn)行聚合,形成粒度較大的組合服務(wù)。另外,目前已經(jīng)存在大量的GIS組件(例如Esri系列),這些組件的功能相互重疊、廣泛分布且利用率低下,造成了大量的資源浪費(fèi),對(duì)其進(jìn)行封裝和共享具有重要的現(xiàn)實(shí)意義。據(jù)此,本文對(duì)以上各種情況進(jìn)行歸納和總結(jié),并給出相應(yīng)情況的Web Service實(shí)現(xiàn)方法。
通過對(duì)OGC WPS進(jìn)行封裝[11],可以將現(xiàn)有的遵循OGC標(biāo)準(zhǔn)的網(wǎng)絡(luò)處理服務(wù)轉(zhuǎn)換成遵循W3C標(biāo)準(zhǔn)的服務(wù),這樣便可以采用標(biāo)準(zhǔn)的BPEL語言進(jìn)行服務(wù)聚合,形成能夠完成復(fù)雜功能的組合服務(wù),從而實(shí)現(xiàn)服務(wù)功能的重用。封裝原理如圖1所示,詳情請(qǐng)參閱相關(guān)文獻(xiàn)。
圖1 OGC WPS服務(wù)的封裝原理
目前,組件式GIS的發(fā)展已經(jīng)十分成熟,有眾多的廠商都開發(fā)了自己的產(chǎn)品,Esri公司的ArcObjects和ArcEngine,吉奧公司的GeoObjects、中地公司的Map-GIS等都是其典型代表。由于這些產(chǎn)品以及基于這些產(chǎn)品開發(fā)的系統(tǒng)廣泛分布于世界的各個(gè)角落,屬于不同的單位或個(gè)人,且開發(fā)目的也不盡相同,故其組件存在大量功能重疊現(xiàn)象,造成了資源浪費(fèi)和互操作困擾,對(duì)現(xiàn)有組件進(jìn)行封裝和服務(wù)化是解決該問題的有效途徑之一。ArcEngine是Esri系列產(chǎn)品之一,它是對(duì)ArcObjects組件集部分功能的再封裝,可以脫離ArcGIS平臺(tái)獨(dú)立運(yùn)行,簡(jiǎn)單實(shí)用,因而得到了廣泛的應(yīng)用[13]。據(jù)此,本文通過對(duì)ArcEngine組件進(jìn)行封裝,生成實(shí)現(xiàn)相應(yīng)功能的Web Service,作為空間信息功能互操作[14]問題的解決方案。以下程序?yàn)椴捎?C#語言將 ArcEngine組件封裝成Web Service的例子,封裝后的Web Service實(shí)現(xiàn)了將Shapefile格式的矢量文件轉(zhuǎn)化為柵格數(shù)據(jù)的功能。其中的Convert()完成具體的格式轉(zhuǎn)換功能。[WebMethod]所標(biāo)識(shí)的服務(wù)框架則規(guī)定了Web Service的對(duì)外接口,封裝后的服務(wù)將由WSDL文件動(dòng)態(tài)描述。圖2中可以發(fā)現(xiàn),封裝的原理主要是將一些ArcEngine操作所需要的關(guān)鍵內(nèi)容表達(dá)為輸入、輸出參數(shù),從而完成Web Service與用戶間的通信。其他GIS組件的封裝方式和ArcEngine類似。
現(xiàn)實(shí)生活中存在功能不同,粒度不一的眾多服務(wù),這些服務(wù)之間廣泛存在功能重疊、相互包含的現(xiàn)象,若能夠通過一定的方式將較小粒度的服務(wù)聚合成粒度較大、功能更為復(fù)雜的服務(wù)以完成特定的任務(wù),將會(huì)減少大量的重復(fù)勞動(dòng),從而節(jié)省大量的時(shí)間和精力。業(yè)務(wù)流程執(zhí)行語言(BPEL)就是用來進(jìn)行服務(wù)組合的一種標(biāo)準(zhǔn)語言。BPEL規(guī)范定義了業(yè)務(wù)流程邏輯常用的各種活動(dòng),主要包括基本活動(dòng)和結(jié)構(gòu)化活動(dòng)[15]?;净顒?dòng)和結(jié)構(gòu)化活動(dòng)之間不同的組合方式形成不同的執(zhí)行流程,完成不同的任務(wù),若將這些不同的執(zhí)行流程封裝成服務(wù),即生成了能夠完成不同任務(wù)的組合服務(wù)(composite service)。相應(yīng)的,用于完成較簡(jiǎn)單任務(wù)的原始的基本單元服務(wù)稱為原子服務(wù),兩者是屬于不同粒度層次的服務(wù)實(shí)現(xiàn)。Active BPEL[16]是一款優(yōu)秀的開源的服務(wù)組合工具,提供了BPEL語言操作的可視化界面。本文例子采用 Active BPEL工具對(duì)服務(wù)smooth (用于平滑線狀要素)和buffer(用于生成緩沖區(qū))進(jìn)行聚合,生成能夠先后完成以上兩種功能的組合服務(wù)smooth2buffer。(1)、(2)、(3)分別為WSDL文件對(duì)三個(gè)服務(wù)接口參數(shù)的定義。(4)為smooth和buffer服務(wù)組合的BPEL代碼片段,圖2為組合服務(wù)內(nèi)部的執(zhí)行流程。
圖2 smooth和buffer組合服務(wù)的內(nèi)部執(zhí)行流程
隨著空間數(shù)據(jù)獲取手段的日益多元化和空間信息處理能力的快速發(fā)展,地理信息系統(tǒng)的表現(xiàn)形態(tài)也在不斷進(jìn)化。傳統(tǒng)的組件式 GIS以及通常意義上的WebGIS由于難以實(shí)現(xiàn)廣泛的數(shù)據(jù)和功能共享且成本過高,已經(jīng)愈來愈不能滿足人們更高層次的需要,以Web Service的形式提供各種空間數(shù)據(jù)和處理功能,已經(jīng)成為GIS發(fā)展的主要趨勢(shì)之一。據(jù)此,本文對(duì)空間信息服務(wù)進(jìn)行了歸納和研究,并針對(duì)不同的情況分別給出了相應(yīng)的服務(wù)開發(fā)方法。實(shí)踐表明,根據(jù)本文的方法可以比較容易地將各種GIS功能轉(zhuǎn)化為相應(yīng)的Web Service,從而更為有效地實(shí)現(xiàn)空間數(shù)據(jù)和功能的共享。
[1] 龔健雅.地理信息系統(tǒng)基礎(chǔ)[M].北京:科學(xué)出版社,2001
[2] 李德仁.攝影測(cè)量與遙感學(xué)的發(fā)展展望[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版),2008,33(12),1211~1215
[3] 龔健雅,杜道生,李清泉等.當(dāng)代地理信息技術(shù)[M].北京:科學(xué)出版社,2004
[4] 閭國(guó)年,張書亮,王永君等.地理信息共享技術(shù)[M].北京:科學(xué)出版社,2007
[5] 樂鵬.語義支持的空間信息智能服務(wù)關(guān)鍵技術(shù)研究[D].武漢:武漢大學(xué),2007
[6] Newcomer E,Lomow G,徐涵 譯.Understanding SOA with Web Services中文版[M].北京:電子工業(yè)出版社,2007
[7] OGC.Open Geospatial Consortium[EB/OL].[2011-6-21]. http://www.opengeospatial.org/
[8] Schut P.Web Processing Service[S].Version 1.0.0.OGC 05-007r7.Open Geospatial Consortium Inc.2007
[9] 馬林兵,張新長(zhǎng),伍少坤.Web GIS原理與方法教程[M].北京:科學(xué)出版社,2006
[10] OASIS.Web Services Business Process Execution Language [S].Version 2.0.2007
[11] LI XINGUANG,F(xiàn)ANHONG,F(xiàn)AN MINGHU,et al.A Method to Chaining Web Processing Service on the Active BPEL Engine to implement complex geographic processing[C]. Proceedings of MIPPR 2009,Yichang,doi:10.1117/12. 833988
[12] W3C.World Wide Web Consortium[EB/OL].[2011-6-21].http://www.w3.org/
[13] 劉瑩.ArcGIS Engine的開發(fā)及應(yīng)用研究[J].城市勘測(cè),2006,(2),37~39,57
[14] 周文生,毛鋒,胡鵬.開放式WebGIS的理論與實(shí)踐[M].北京:科學(xué)出版社,2007
[15] 王紫瑤,南俊杰,段紫輝等.SOA核心技術(shù)及應(yīng)用[M].北京:電子工業(yè)出版社,2008
[16] Active BPEL[EB/OL].[2008-11-6].http://www.active-endpoints.com/
Research on Implementation Methods of GIS Functions Based on SOA Architecture
He Tao1,Peng Bing2,Xu Jun3
(1.Tianjin Institute of Surveying and Mapping,Tianjin 300381,China;2.Guangdong Surveying&Mapping Technology Corporation,Guangzhou 510075,China;3.School of Remote Sensing and Information Engineering,Wuhan University,Wuhan 430079,China)
Turning processing functions into web services has become one of the major trends in the field of spatial information.This paper summarizes various situations that currently exist in the development of spatial information services and puts forward the corresponding solutions.According to the methods in this paper,current common GIS functions can be very easily turned into web processing services and be composed together in order that we can provide and share processing functions on spatial information in a standardized and platform-independent manner.
Web Service;WebGIS;OGC WPS;composite service;SOA
2010—06—27
何濤(1978—),男,高級(jí)工程師,主要從事基礎(chǔ)地形圖測(cè)繪、數(shù)據(jù)處理及GIS應(yīng)用等方面的生產(chǎn)及研究工作。
地理空間信息工程國(guó)家測(cè)繪局重點(diǎn)實(shí)驗(yàn)室項(xiàng)目(200804)
1672-8262(2011)05-5-04
P208.2
A