何濤,彭兵,徐軍
(1.天津市測繪院,天津 300041; 2.廣東省測繪技術公司,廣東廣州 510075;3.武漢大學遙感信息工程學院,湖北武漢 430079)
基于SOA架構的WebGIS實現方法研究
何濤1?,彭兵2,徐軍3
(1.天津市測繪院,天津 300041; 2.廣東省測繪技術公司,廣東廣州 510075;3.武漢大學遙感信息工程學院,湖北武漢 430079)
處理功能的服務化已經成為當前空間信息領域的主要發展趨勢之一。本文總結了當前空間信息服務開發存在的各種情況,并給出了相應的解決方案。根據本文的方法,可以很容易地將現有的常見GIS功能轉化為網絡處理服務,并對各種服務進行聚合,從而以一種標準的、與平臺無關的形式提供并共享各種空間信息處理功能。
Web Service;WebGIS;OGC WPS;組合服務;SOA
自從上世紀60年代末,加拿大建立世界上第一個地理信息系統(Geographic Information System,GIS)[1]以來,GIS的理論和應用得到了蓬勃發展。近年來,地球空間信息學[2]相關技術的快速發展為GIS提供了海量的數據來源。面對日益豐富的空間數據所帶來的重荷和大量現有系統功能重疊所導致的嚴重資源浪費,傳統的組件GIS[3]已不能滿足人們的需要,GIS功能的服務化[4]和智能化[5]已經成為其發展的重要趨勢。空間信息Web服務是在Web服務[6]技術和標準的基礎上實現的地理空間信息網上在線服務[4]。作為空間信息領域重要的標準化組織之一,OGC(Open GIS Consortium)[7]提供了一個以服務為中心的互操作框架,WPS(Web Processing Service)[8]是其重要內容之一。WPS通過將GIS操作封裝成遵循OGC標準的Web Service,以在線的方式向客戶端提供相應的處理功能,這種基于SOA架構的處理方法提供了一種開放的、可互操作、動態鏈接的空間信息服務網絡體系平臺[9]。由于當前的OGC WPS大多僅實現了基于HTTP GET/POST調用方式的接口,難于采用成熟的Business Process Execution Language(BPEL)[10]進行大規模集成,這導致了大量的資源浪費。文獻[11]通過對OGC WPS進行封裝,形成代理服務,代理服務對外提供遵循W3C標準[12]的Web Service接口,從而可以采用BPEL對原有的WPS進行聚合,形成粒度較大的組合服務。另外,目前已經存在大量的GIS組件(例如Esri系列),這些組件的功能相互重疊、廣泛分布且利用率低下,造成了大量的資源浪費,對其進行封裝和共享具有重要的現實意義。據此,本文對以上各種情況進行歸納和總結,并給出相應情況的Web Service實現方法。
通過對OGC WPS進行封裝[11],可以將現有的遵循OGC標準的網絡處理服務轉換成遵循W3C標準的服務,這樣便可以采用標準的BPEL語言進行服務聚合,形成能夠完成復雜功能的組合服務,從而實現服務功能的重用。封裝原理如圖1所示,詳情請參閱相關文獻。

圖1 OGC WPS服務的封裝原理
目前,組件式GIS的發展已經十分成熟,有眾多的廠商都開發了自己的產品,Esri公司的ArcObjects和ArcEngine,吉奧公司的GeoObjects、中地公司的Map-GIS等都是其典型代表。由于這些產品以及基于這些產品開發的系統廣泛分布于世界的各個角落,屬于不同的單位或個人,且開發目的也不盡相同,故其組件存在大量功能重疊現象,造成了資源浪費和互操作困擾,對現有組件進行封裝和服務化是解決該問題的有效途徑之一。ArcEngine是Esri系列產品之一,它是對ArcObjects組件集部分功能的再封裝,可以脫離ArcGIS平臺獨立運行,簡單實用,因而得到了廣泛的應用[13]。據此,本文通過對ArcEngine組件進行封裝,生成實現相應功能的Web Service,作為空間信息功能互操作[14]問題的解決方案。以下程序為采用 C#語言將 ArcEngine組件封裝成Web Service的例子,封裝后的Web Service實現了將Shapefile格式的矢量文件轉化為柵格數據的功能。其中的Convert()完成具體的格式轉換功能。[WebMethod]所標識的服務框架則規定了Web Service的對外接口,封裝后的服務將由WSDL文件動態描述。圖2中可以發現,封裝的原理主要是將一些ArcEngine操作所需要的關鍵內容表達為輸入、輸出參數,從而完成Web Service與用戶間的通信。其他GIS組件的封裝方式和ArcEngine類似。

現實生活中存在功能不同,粒度不一的眾多服務,這些服務之間廣泛存在功能重疊、相互包含的現象,若能夠通過一定的方式將較小粒度的服務聚合成粒度較大、功能更為復雜的服務以完成特定的任務,將會減少大量的重復勞動,從而節省大量的時間和精力。業務流程執行語言(BPEL)就是用來進行服務組合的一種標準語言。BPEL規范定義了業務流程邏輯常用的各種活動,主要包括基本活動和結構化活動[15]。基本活動和結構化活動之間不同的組合方式形成不同的執行流程,完成不同的任務,若將這些不同的執行流程封裝成服務,即生成了能夠完成不同任務的組合服務(composite service)。相應的,用于完成較簡單任務的原始的基本單元服務稱為原子服務,兩者是屬于不同粒度層次的服務實現。Active BPEL[16]是一款優秀的開源的服務組合工具,提供了BPEL語言操作的可視化界面。本文例子采用 Active BPEL工具對服務smooth (用于平滑線狀要素)和buffer(用于生成緩沖區)進行聚合,生成能夠先后完成以上兩種功能的組合服務smooth2buffer。(1)、(2)、(3)分別為WSDL文件對三個服務接口參數的定義。(4)為smooth和buffer服務組合的BPEL代碼片段,圖2為組合服務內部的執行流程。




圖2 smooth和buffer組合服務的內部執行流程
隨著空間數據獲取手段的日益多元化和空間信息處理能力的快速發展,地理信息系統的表現形態也在不斷進化。傳統的組件式 GIS以及通常意義上的WebGIS由于難以實現廣泛的數據和功能共享且成本過高,已經愈來愈不能滿足人們更高層次的需要,以Web Service的形式提供各種空間數據和處理功能,已經成為GIS發展的主要趨勢之一。據此,本文對空間信息服務進行了歸納和研究,并針對不同的情況分別給出了相應的服務開發方法。實踐表明,根據本文的方法可以比較容易地將各種GIS功能轉化為相應的Web Service,從而更為有效地實現空間數據和功能的共享。
[1] 龔健雅.地理信息系統基礎[M].北京:科學出版社,2001
[2] 李德仁.攝影測量與遙感學的發展展望[J].武漢大學學報(信息科學版),2008,33(12),1211~1215
[3] 龔健雅,杜道生,李清泉等.當代地理信息技術[M].北京:科學出版社,2004
[4] 閭國年,張書亮,王永君等.地理信息共享技術[M].北京:科學出版社,2007
[5] 樂鵬.語義支持的空間信息智能服務關鍵技術研究[D].武漢:武漢大學,2007
[6] Newcomer E,Lomow G,徐涵 譯.Understanding SOA with Web Services中文版[M].北京:電子工業出版社,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] 馬林兵,張新長,伍少坤.Web GIS原理與方法教程[M].北京:科學出版社,2006
[10] OASIS.Web Services Business Process Execution Language [S].Version 2.0.2007
[11] LI XINGUANG,FANHONG,FAN 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的開發及應用研究[J].城市勘測,2006,(2),37~39,57
[14] 周文生,毛鋒,胡鵬.開放式WebGIS的理論與實踐[M].北京:科學出版社,2007
[15] 王紫瑤,南俊杰,段紫輝等.SOA核心技術及應用[M].北京:電子工業出版社,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—),男,高級工程師,主要從事基礎地形圖測繪、數據處理及GIS應用等方面的生產及研究工作。
地理空間信息工程國家測繪局重點實驗室項目(200804)
1672-8262(2011)05-5-04
P208.2
A