基于OGCWPS的GIS空间分析方法实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于OGCWPS的GIS空间分析方法实现姜超①,徐青①,孙庆辉①,黄启雷②,王冬①(①信息工程大学测绘学院,郑州450052;②苏州市数字城市工程研究中心,江苏苏州215021)【摘要】针对WebService在解决功能互操作方面存在不足以及日益增加的基于网络的空间数据处理需求,OGC制定了一个Web服务标准WPS以解决存在的问题。本文根据WPS标准以及其定义的3个方法设计了一个WPS服务的三层体系结构,并将GIS空间分析中的缓冲区分析封装为WPS服务,使得用户可以通过网络调用,从而较好地解决了空间信息处理互操作。【关键词】OGCWPS;WebService;GIS空间分析;缓冲区分析【中图分类号】P208【文献标识码】A【文章编号】1009-2307(2011)06--GISspatialanalysisbasedonOGCWPSAbstract:AimingatfeaturesforWebServiceinteroperabilityinthesettlementofshortcomingsandthegrowingnetwork-basedspatialdataprocessingrequirements,OGChasdevelopedaWebServicesstandardWPStosolveproblems.ThiswasdefinedundertheWPSstandardandthreewaystodesignathree-tierarchitectureofWPSservicesinthepaper,andGISspatialanalysisofthebufferanalysispackagefortheWPSservicewasmadetocallthroughthenetworktobetterresolvethespatialinformationprocessinginteroperability.Keywords:OGCWPS;WebService;GISspatialanalysis;bufferanalysisJIANGChao①,XUQing①,SUNQing-hui①,HUANGQi-lei②,WANGDong①(①InstituteofSurveyingandMapping,InformationEngineeringUniversity,Zhengzhou450052,China;②DigitalCityEngineeringResearchCenterofSuzhou,JiangsuSuzhou215021,China)1引言WebService的出现,使得Internet不再仅仅是传输数据的平台,而且也是传递服务的平台[1]。WebService的及时出现,给人们解决分布异构数据的共享提供了一个契机。从技术实现的角度,Web服务可以理解为一个应用程序,它向外界暴露出一个能通过Web进行调用的接口,允许被任何平台、任何系统,用任何语言编写的程序调用。这个应用程序可以用现有的各种编程语言实现。Web服务最大的特点是可以实现跨平台、跨语言、跨硬件的互操作。基于Web服务的上述优点,研究人员考虑在实践中是否可以由提供地理信息数据转向提供地理信息服务。为此,致力于空间数据共享和互操作的组织OGC(OpenGeospatialConsortium开发地理信息联盟)提出了一系列的WebService标准如:WMS(WebMapService)、WFS(WebFeatureService)和WCS(WebCoverageService)。这些标准的发布较好的解决了GIS空间数据的共享问题。但是WebService所有的标准都是通用的,因此不能很好地解决具体某一学科领域的专业问题。在诸如地理空间信息领域,由于其在传输协议中没有包含空间信息元数据信息以及对空间信息数据的标准化,使得WebService在解决功能互操作方面存在不足[2]。针对WebService在解决功能互操作方面存在不足以及日益增加的基于网络的空间数据处理需求,OGC制定了一个Web服务标准WPS(WebProcessingService网络处理服务),该标准可以包装任何类型的对空间数据进行处理的功能,这些功能可以简单如两个空间数据之间的相减,也可以复杂至如全球气候的变化模型。WPS实现规范针对空间数据的处理为客户提供了标准的发布、发现和绑定的接口。WPS的目的是描述服务,提供可通过Web方式执行的处理服务,并且在底层机制对用户透明的情况下允许用户输入数据和调用服务。我们可以把GIS空间分析封装为WPS服务,通过网络向客户端提供GIS的处理功能。本文设计了一个WPS服务的三层体系结构并实现了将GIS的缓冲区分析封装为WPS服务使得用户可以通过网络获取GIS的处理功能服务。2OGCWPS的简介WPS[3]是OGC针对WebService在解决功能互操作方面存在不足以及日益增加的基于网络的空间数据处理需求而提出的一个网络服务的规范。WPS定义了标准接口,使得空间处理步骤的发布、用户对这些处理的发现和绑定更加容易。“处理”是指操作空间参考数据的算法、计算或者模型。“发布”意味着可以获2011-4-2816:14得机器可读的绑定信息和人可读的元数据,从而运行服务发现和使用。WPS接口定义了三个操作,这三个操作可以被用户请求并且由WPS服务器实现所有的必要规范。这三个操作分别是:①GetCapabilities:此操作允许用户请求和获取描述某个服务器执行能力的服务元数据文档,GetCapabilities操作通过WPS接口提供了每个处理服务的名称和通用描述,这个操作也支持客户端-服务器交互的规范版本的交流;②DescribeProcess:此操作允许用户请求并获取运行在服务实例的处理的详细信息,包括需要的输入、允许的格式和输出;③Execute:此操作允许用户通过输入参数和得到返回结果,执行WPS实现的一个具体过程。这些操作与OGC的Web服务有很多相似之处,包括WMS,WFS和WCS。图1是概括WPS接口的简单UML图表。这种类图表表示了WPS接口类从OGCweb服务接口类中继承了GetCapabilities操作,并且添加了DescribeProcess和Execute操作。OGCWebService{Abstract}+getCapabilities(request:GetCapabilities):ServiceMetadata(fromOWSGetCapabilites)InterfaceEachserverinstanceinstantiatesonlyoneobjectofthisclass,andthisobjectalwaysexistswhileserverisavailable.WPService+describeProcess(request:DescribeProcess):ProcessDescriptions+execute(request:Execute):ExecuteResponse图1WPS接口UML图3基于WPS的GIS空间分析体系结构设计与实现3.1结构的设计OGCWPS作为一种解决空间信息共享与处理功能互操作的WebService规范,可以有多种实现方式。由于三层或多层体系结构可以对显示层(即客户端)、业务逻辑层(即WPS服务实现层)和数据层进行逻辑上和物理上的分离,便于系统的维护和升级以及减少系统各层间的耦合,因此成为构建基于Web的应用系统的首选。基于上述考虑以及根据WPS标准规范,本文提出了WPS服务的三层体系结构,如图2所示。图2WPS服务的三层体系结构在三层体系结构的最上层为客户端,负责接收以及发送用户的请求,用户可以采用浏览器直接访问,也可以通过标准的Web服务客户端调用业务逻辑层提供的服务。中间层为服务层,是整个体系结构中的核心部分。服务层之下即为数据层,数据层负责为上层提供所需的数据,该层既可以由WFS服务实现,也可以由空间数据库直接提供数据支持。服务端是基于现有的Web容器来实现的,底层的算法模块以插件的形式动态装载到服务器端。每个算法的实现对于服务代码都是透明的。通常情况下,算法是调用GIS的API来实现其功能的[2]。服务的实现主要包括两部分的内容:WPS服务器和数据服务中间件。WPS服务器包括处理引擎和算法中心。处理引擎是WPS服务的核心部分,由它驱动各模块,构造响应消息,完成服务。具体来说,处理引擎的工作主要体现在对WPS规范定义的三个操作的响应上:首先,对于GetCapabilities请求,处理引擎会查询算法中心,获得已注册的所有算法的元数据信息,包括算法的标识符、算法的名称以及算法的说明等。其次,对于DescribeProcess请求,处理引擎会根据请求提供的处理的标识符去查询算法中心并返回该处理的详细信息,包括算法的输入输出名称以及每个输入输出的说明。最后,对于Execute请求,处理引擎根据用户的请求,决定是否调用数据服务中间件来获取数据,然后将请求中的算法标识符在算法中心查询,获得算法的具体实现类后调用该类,完成处理并根据请求中的要求将结果返回给客户端。算法中心的主要工作就是维护算法类的元数据信息,包括每个算法的标识符、实现类的类名、算法的输入参数以及返回类型等。在服务初始化时,利用Java的反射机制动态的发现已有的算法,将其注册到算法中心以供处理引擎的查询和调用。数据服务中间件在系统中扮演链接数据和服务的角色,其承担的主要工作就是从不同的数据源读取数据并将数据标准化的工作以提供给WPS服务器使用。需要进行处理的矢量文件可以由客户端上传到服务器端,这其中有两种方式:第一种是直接基于HTTP发送矢量的二进制文件,比如SHP文件。另外一种办法是将输入文件在客户端转化为GML(GeographyMarkupLanguage)的格式,发送给服务端;而服务端处理后,仍然以GML格式返回给客户端[4]。除了由客户端上传以外,WPS规范也支持通过调用WFS服务获取一个数据文件,我们通常只需要在数据服务中间件中包含WFS的客户端程序就可以实现该功能。3.2结构的实现根据3.1中所述,本文的主要工作是在业务逻辑层展开,我们要将GIS空间分析的具体算法封装为WPS服务。为此,我们在服务器端的实现引入GeoServer,GeoServer作为一个开源的项目,用户可以直接下载到整个项目的源代码,该项目对GeoTools进行了封装,所以在服务器端只要调用GeoServer和GeoTools提供的API就可以方便的实现GIS空间分析的一些功能。在具体的封装过程中,我们只要定义两个类,以本文的缓冲区分析为例,我们定义GeometryBufferFactory和GeometryBufferProcess类,而这两个类又分别继承自GeoTools中的SingleProcessFactory和SimpleProcess类。GeometryBufferProcess中的Process方法提供具体的处理算法,GeometryBufferFactory中的Create方法用于将GeometryBufferProcess中的算法在该类中进行注册以方便客户端进行调用。WPS服务的具体实现如下:4实验方案与结果本文以GIS空间分析中的典型算法(缓冲区分析)为例,根据上述的WPS体系架构,开发、部署、发布缓冲区分析的处理功能服务。缓冲区分析是GIS空间分析的一个典型处理功能,它是根据用户需要去给定一个缓冲距离,从而形成一个缓冲区的多边形。常用的GIS空间缓冲区分析几何类型有点、线、面,下面分别对其进行介绍:①点缓冲区分析:用户在图形区域中选择一点状地物并给定缓冲区距离,系统自动形成点缓冲区多边形;②线缓冲区分析:用户在图形区域中选择一线状地物并给定缓冲区距离,系统自动

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功