APP下载

基于SOA架构的WebGIS实现方法研究

2011-04-18何涛彭兵徐军

城市勘测 2011年5期
关键词:科学出版社空间信息空间数据

何涛,彭兵,徐军

(1.天津市测绘院,天津 300041; 2.广东省测绘技术公司,广东广州 510075;3.武汉大学遥感信息工程学院,湖北武汉 430079)

基于SOA架构的WebGIS实现方法研究

何涛1∗,彭兵2,徐军3

(1.天津市测绘院,天津 300041; 2.广东省测绘技术公司,广东广州 510075;3.武汉大学遥感信息工程学院,湖北武汉 430079)

处理功能的服务化已经成为当前空间信息领域的主要发展趋势之一。本文总结了当前空间信息服务开发存在的各种情况,并给出了相应的解决方案。根据本文的方法,可以很容易地将现有的常见GIS功能转化为网络处理服务,并对各种服务进行聚合,从而以一种标准的、与平台无关的形式提供并共享各种空间信息处理功能。

Web Service;WebGIS;OGC WPS;组合服务;SOA

1 引 言

自从上世纪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实现方法。

2 OGC WPS的封装

通过对OGC WPS进行封装[11],可以将现有的遵循OGC标准的网络处理服务转换成遵循W3C标准的服务,这样便可以采用标准的BPEL语言进行服务聚合,形成能够完成复杂功能的组合服务,从而实现服务功能的重用。封装原理如图1所示,详情请参阅相关文献。

图1 OGC WPS服务的封装原理

3 Esri组件的封装

目前,组件式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类似。

4 Web Service的聚合

现实生活中存在功能不同,粒度不一的众多服务,这些服务之间广泛存在功能重叠、相互包含的现象,若能够通过一定的方式将较小粒度的服务聚合成粒度较大、功能更为复杂的服务以完成特定的任务,将会减少大量的重复劳动,从而节省大量的时间和精力。业务流程执行语言(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组合服务的内部执行流程

5 结 语

随着空间数据获取手段的日益多元化和空间信息处理能力的快速发展,地理信息系统的表现形态也在不断进化。传统的组件式 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

猜你喜欢

科学出版社空间信息空间数据
结合多层特征及空间信息蒸馏的医学影像分割
教育科学出版社小学六年级科学上册第一单元第五课《定滑轮和动滑轮》
GIS空间数据与地图制图融合技术
Case Study on Importance of Translator’s Subjectivity in Translating Discourses Written in Non—mother—tongue
基于作战环的空间信息时效网关键节点分析模型
元数据驱动的多中心空间数据同步方法研究
基于物联网的智能空间信息共享利益模型研究
关于地理空间信息标准体系
基于文件系统的分布式海量空间数据高效存储与组织研究
科学出版社物理类重点书推荐