随着计算机和网络技术已经成为人们生活中不可或缺的一部分,地理信息系统的发展进入了一个新时期,各个行业对地理空间数据及其处理功能的需求日益增长,要求地理信息能够广泛地被共享、交换和访问。因此,地理信息系统迫切需要发展成为面向大众化的技术产业,分布式异构环境下易于集成的地理信息服务应运而生。
地理信息服务是把地理空间数据和处理功能封装为服务并发布在网络上,允许通过网络对地理信息进行集成和共享,为用户构建分布式异构系统提供了有效资源,它主要包括数据服务和处理服务两部分。在整个地理信息服务体系中,数据服务是基础,任何服务都是基于海量、格式多样的空间数据得以实现的。但是,大多数情况下人们真正需要的并不是各种地理数据,而是数据中包含的信息及其提供的增值服务,最终实现空间处理和空间分析等功能,这就是地理信息处理服务的关键所在。
近年来,很多研究机构和部门相继建立了公共或专业的地理信息服务网站,但大多是基于专业3DGIS软件的私有服务或OGC(Open GIS Con-sortium)中网络地图服务WMS ( Web Mapping Service)、网络覆盖服务WCS ( Web Cover Serv-ice)、网络要素服务WFS(Web Feature Service)等服务,只提供了数据服务,没有将地理信息处理服务作为其基本服务,缺少对处理服务的系统性研究。比如公共电子地图中提供了地图缩放、漫游、数据查询等功能,但最短或最优路径查询仅限于处理该网站的私有数据,不支持用户调用服务接口以完成自己的应用。
1、地理处理服务概述
1. 1处理服务定义
处理服务是在数据服务的基础上,为了满足客户不同的需求,对本地数据或存放在网络上的空间数据进行处理操作,并为用户提供面向应用的增值服务,比如坐标转换服务、栅格/矢量转换服务、尺寸测量服务、路径确定服务、地理编码服务等。处理服务过程中用户并不直接对空间信息资源操作,它强调过程,主要为用户提供计算、分析、处理空间信息资源等功能。当用户对同一数据有不同请求处理时,处理服务会针对用户的请求从不同方面解读该数据,返回不同的处理结果。处理服务还遵循一定的通信机制,通过对空间数据建立计算和处理模型,既能够为用户提供通用的处理服务,也能灵活地针对某项具体应用提供特定处理服务,真正实现了处理服务多粒度、功能多样化这一特性,满足了用户的不同需求。
1. 2处理服务基本原理
处理服务实现的整个过程中,对空间数据的分析、处理等操作在服务器端实现。客户端基于网络通信协议向服务器端发送请求,服务器端使用本地数据或共享网络数据,提供处理算法及计算模型,执行处理服务,并将处理结果传送给客户端,具体实现过程如图1所示。
服务客户端主要有桌面GIS客户端和Web-GIS客户端两种,可以基于HTTP传输协议或SOAP协议实现与服务器端的交互操作,通过网络向服务器端传送请求并得到相应返回结果;服务器端接收到用户请求后,对地理空间数据进行格式转换、投影转换、坐标转换等一系列操作,并提供空间数据分析处理算法和计算模型,支持用户实现最优路径分析、缓冲区分析、叠加分析等处理服务;空间数据资源则为服务端执行处理服务提供了有效数据源,包括标准的矢量数据、栅格数据和地理信息数据,存在于处理服务的整个生命周期中,是成功完成处理服务的必要基础。
1. 3处理服务主要实现方法
1. 3. 1 OGC WPS的服务标准
网络处理服务规范WPS ( Web Processing Service)是OGC组织为所有地理处理服务提供的一个标准化协议,并指定了客户端和服务器端实现的操作。它规定了处理服务的标准接口,并将处理功能模块封装为网络服务,包括输入参数、输出参数和触发方式,客户端基于XML文档通信方式,通过网络可以共享空间信息及其处理功能。通过这三个接口,基于XML传输协议,可以实现客户端与服务器端的互操作,客户端可以通过网络调用与空间数据处理相关的GIS函数功能。
1. 3. 2 ArcGIS Server的Geoprocessing Service
ESRI公司生产的ArcGIS Server软件中Geoprocessing Service地理处理服务是将位于ArcGIS Server服务器端的地理数据处理模型或者包含一个处理模型工具图层的地图文档发布为服务。它是一种地理数据处理工具,客户端通过网络向服务器端发送请求,服务器端提供了分析、计算模型,执行空间分析和建模等功能,并将处理结果返回给客户端,促进GIS功能从桌面向网络方向发展。
1.3.3其他基于通用Web Service的处理服务
除了以上提到的基于OGC WPS服务标准的处理服务和ArcGIS Server软件中Geopro-cessing Service地理处理服务外,还有一些基于通用Web Service的处理服务,比如企业服务总线ESB(Enterprise Service Bus)。企业服务总线ESB是一种基于面向服务架构SOA的处理服务技术,它是在分布式环境下,接受相关事件及消息的引导,并根据其内容进行筛选,能够传送各种各样的复杂数据,还提供了一系列标准化接口,具有松耦合、易组合、可扩展、互操作等特点,有利于实现企业不同部门、不同业务单元、不同合作伙伴之间的应用集成。
2、处理服务构建的技术路线
本文首先对处理服务的定义及原理进行研究。其次,利用Visual Studio. NET开发平台研究GIS算法封装、服务流程编排及服务接口实现等内容,关键是将处理功能封装为Web服务及服务接口的实现。客户端向服务器端发送请求,服务器端接收并分析用户请求,以XML文档的形式返回处理结果,完成了客户端与服务器端的互操作,帮助用户根据需要调用相关处理服务。最后,结合全球地表覆盖动态信息服务系统中变化检测服务实现了将处理功能封装为.asmx服务、基于JavaScript进行流程编排和服务调用等功能。技术路线图如图2所示。
3、基于.NET技术的处理服务构建方法
3. 1 GIS算法封装
基于.NET平台构建处理服务,为了提高Web处理服务中空间分析、空间处理等算法的可扩展性,建立算法注册中心,开发人员可以将与处理功能有关的GIS算法封装成为组件,通过在算法注册中心注册存放在算法库内,便于GIS算法的查询、集成和共享。
构建算法注册中心的目的是维护算法类的元数据信息,这主要包括每个GIS算法的标识符、实现类的Qualified Name,算法的输入、输出参数等。为了能够把所有GIS算法成功注册到注册中心,可以在服务初始化时将已有的算法模块动态地加载到注册列表中。接着,算法注册中心将注册列表中已注册的算法类中定义的Annotation注释信息提取出来,方便用户搜索和使用GIS算法,实现处理功能的实时有效调用,如图3所示。
3. 2处理服务流程编排
处理服务流程编排是通过流程驱动方式对有关Web服务组件进行组合和编排,以形成服务流程。由于Web服务具有松散耦合、分布式异构环境下易集成的特点,它要求服务流程编排应该满足灵活、敏捷、可视化、个性化定制等特性。
处理服务流程编排实现过程中,分为前台部分和后台部分。前台是优化服务流程编排需求,包括流程的设计、替换、修改、保存等操作;后台是利用前台生成的XML文件对流程进行部署。用户在前台选择新建流程后,首先根据自己的需要进行流程设计,并根据实际情况判断是否需要对生成的XML文件进行调整和修改。然后,将符合要求的XML文件保存在后台中,并且将此流程部署在数据库中,便于外部系统以服务的形式调用该流程。由于外部系统发送的参数与本地参数存在差异,后台会专门定义一个解析外部字符流的类来识别外部系统传送过来的参数,包括服务名称、服务数据等内容,最终完成该流程的顺利执行。处理服务流程编排的具体实现过程如图4所示。
3. 3处理服务接口实现
处理服务接口是一组方法的逻辑组合,定义了外部可以调用的处理功能及其访问方式,可作为客户端调用Web处理服务的媒介。在设计处理服务接口时,接口描述文档应该对接口的名字、参数、返回值等内容进行详细说明。其中,接口命名的方法尤其重要,它能帮助使用者快速了解该接口的用途。在定义接口参数时,参数要尽量简单,不增加客户端和服务器端的耦合性,仍旧保持松耦合、易集成的特性。当接口设计完成后,要能够方便地对接口参数和返回值进行测试,保证返回值形式简洁且与语言无关。若测试过程中出现异常,就需要提高XML文档的灵活性,保证它不管是在正常情况还是异常情况下都能应对自如。处理服务接口的实现过程如图5所示。
处理服务接口的实现需要通过Web Service描述语言WSDL ( Web Service Description Lan-guage)对接口信息进行说明,它基于XML语法描述Web服务,说明了服务所提供的操作方法、访问协议、数据格式及服务的网络地址等内容。
4、处理服务的实例
全球地表覆盖动态信息服务原型系统主要包括服务集成(Service Intergration)、服务搜索(Service Searching)、服务计算(Service Compu-tion)和变化标报(Making and Reporting)四个部分。本文主要研究实现服务计算部分,该部分实验是基于.NET平台,使用Visual Studio开发工具将变化检测处理功能封装为Web处理服务,用户可以通过 Web浏览器发送请求,并得到相应的处理结果,实现处理功能的调用。客户端可以根据自己的具体需求再做进一步处理。
4. 1变化检测处理服务的实现
在全球地表覆盖动态信息服务原型系统提供的变化检测功能服务中,主要涉及到特征提取、特征匹配、最小二乘估计、仿射变换和变化检测等算法函数。需将这些算法进行封装为功能服务,其次基于JavaScript进行服务流程编排,最后进行处理服务调用。
4.1.1算法封装为功能服务
本实验中将特征匹配、最小二乘估计、仿射变换和变化检测等遥感算法封装在dll类库中,在实现特征匹配、平差处理、影像纠正和变化检测等处理功能时,可以通过编码直接调用类库中相对应的有关算法,并使用Visual Studio开发工具把处理功能封装为服务。
4.1.2基于JavaScript的服务流程编排
本实验中主要研究全球地表覆盖动态信息服务系统中的遥感影像变化检测服务,首先创建开始节点,选择要进行变化检测的两幅原始遥感影像:原始影像1和原始影像2,接着按照特征匹配、平差处理、影响纠正、变化检测的顺序对两幅影像进行处理,最后指向结束节点。至此,就完成了变化检测服务的流程编排。
4. 1. 3处理服务调用
以特征匹配服务为例,部分调用代码如下:
4. 2变化检测处理服务的检测
打开变化检测功能服务页面后,会出现之前选择的两幅原始遥感影像:原始影像1和原始影像2,作为该处理过程的输入数据。首先,对遥感影像分别进行特征提取,其结果如图6所示。特征匹配完成后,进行平差处理和影像纠正,最后进行变形检测,最终结果如图7所示。
5、结束语
目前,在全球地表覆盖动态信息服务系统中,只能在全球范围内搜索数据服务,不支持功能服务模块中处理算法的搜索,服务流程编排中使用的功能服务选择范围较小,局限性比较强。接下来,将在该方向继续研究,真正为使用者提供动态信息服务,实现服务的个性化定制。此外,随着Internet网络技术和计算机技术的快速普及和应用,Web Service开始由封闭、紧耦合向开放、松散耦合、异构环境下易于集成的方向发展。OGC提出的WPS规范就是针对Web处理服务指定的标准,但国内对于WPS的研究现在处于起步阶段,因此,对WPS的研究及应用还有很大的提升空间,可以作为今后研究方向之一。
原文来自:http://www.ztmapinfo.com/blog/index.php/article/193.html