- 1 -
Web Service在基础地理信息互操作中的研究
宫元九 1,王峰 2
1辽宁大学信息学院,(110036)
2辽宁省基础地理信息中心,(110034)
摘 要:本文在介绍Web Service的概念及相关技术、协议的基础上,分析了基于Web Service
的空间数据互操作规范,总结了Web Service在空间地理信息的共享、互操作和集成上的应
用,指出Web Service是实现基础地理信息互操作的最佳解决方案。
关键词:Web Service,地理信息系统,互操作,XML,SOAP
1 引言
经过多年的建设,国家测绘部门通过遥感、全球定位系统、航空摄影等多种途径和手段,
花费了大量的人力、财力,积累了大量的基础地理信息数据,建立了海量空间数据库。从
1994 年开始,国家测绘局陆续完成了全国 1:100 万到 1:5 万的基础地理信息数据库的建
设与更新,各省测绘部门也开始或已经完成了省一级的 1:1万的基础地理信息数据库的建
设工作。为了实现基础地理信息数据的共享,国家测绘部门做了大量的工作,在 1998年和
2003年,国家在完成 1:100万和 1:25万基础地理信息数据库的建设和更新后分别两次向
有关部委提供了数据。但是总的说来,数据不能总是及时地提供给用户,而且的数据的应用
范围也不广。
近年来,Internet 技术的迅速发展与普及应用为基础地理信息数据的共享提供了新的机
遇,它改变了基础地理信息数据的获取、传输、发布、共享应用和可视化的过程和方式,
Internet将成为基础地理信息共享新的操作平台。WebGIS就是利用 Internet技术完善和扩展
地理信息系统功能的一门技术。借助WebGIS可以在 Internet上发布基础地理信息数据,可
以在 WWW 的任一节点上利用浏览器访问基础地理信息,进行空间检索和空间分析。但是
目前的 WebGIS 的局限是各个 GIS 站点是独立的,不能互相访问和调用,而且所有的 GIS
软件都是从一次性开发的角度实施的,软件的每一个更改都需要由特定的程序员来完成,不
容易通过跨应用集成的方式来实现 GIS的重用。[8]
最新产生的Web Service技术可有效地解决这些问题,它直接将各种应用程序、服务和
设备链接起来,实现在不同平台间以一致的方式交换和描述数据,为实现空间地理信息共享、
互操作和集成提供了新的解决方案。[7][10][11]
2 Web Service及其组成技术
从表面上看,Web Service是一个应用程序,一个能够通过Web进行调用的 API。即能
够用编程的方法,通过 Web 调用来实现某个功能的应用程序[1][2][3]。从深层次上看,Web
Services是一种新的Web应用程序分支,是自包含、自描述、模块化的应用程序,这类应用
程序能够被发布、定位,并通过 Web 实现动态地调用。Web 服务所实现的功能,可以实现
从简单请求到复杂商业过程的任意功能。一旦一个Web服务被配置完毕,其他的应用程序,
包括其他Web服务就能够发现并调用该服务。Web Service是可重用的、松散耦合的软件模
- 2 -
块。传统的应用软件设计模式要求各个单元之间紧密连接,这种连接形成的复杂性要求开发
者必须对连接的两端元素有完全的了解和控制能力。而采用Web Service只需要简单的协调,
并允许更加自由的配置。
Web Service为了完成在松散耦合的环境下的对象访问,以及在基本对象访问之上的诸
如事务、工作流、安全机制等,使用了一系列的标准的协议规范,如 XML、WSDL、UDDI、
SOAP 等。从语义上看,Web Service 的模块使用了其它软件可以理解的方式描述输入和输
出,其它软件知道该模块能做什么,如何调用以及会返回什么样的结果。
Web Service 和普通的 Web 网站有着本质的区别。普通的 Web 网站只能称为 Web
Application。Web Service不需要有图形化的用户界面,Web Service是在代码级上工作的,
它们被其它软件调用,并与其它软件交换数据,最终形成一个能与用户交互的应用系统。
Web Service是通过 Internet发布和得到的。
通常情况下,Web Service由以下 3个主要技术部分组成:
z XML和 SOAP
XML(eXtensible Markup Language)是一种用来描述数据的标准元语言,用 XML来表
示操作和数据是Web服务的一个关键所在,使不同系统能够无缝地进行通信和共享数据。
SOAP(Simple Object Access Protocol)是一种通过使用 XML定义的如何在两个软件系
统之间发送消息的规范,解决机器之间如何通过网络进行互相沟通的问题。
z WSDL
WSDL(Web Service Description Language)是包括Microsoft和 IBM在内的一些主要业
务伙伴所支持的一个 XML标准,通过定义一个标准的 XML语法,可以描述Web服务的细
节及行为,其中包括了Web Service所提供的方法、每一项服务的相关参数与返回值的数据
类型等。
z UDDI
UDDI(Universal Description Discovery and Integration)可以被认为是Web服务的搜索
引擎,它要解决的是如何发现Web服务以及如何是Web服务得以发现的问题,目前,它正
在成为客户应用程序发现Web服务和发布自己Web服务的标准。
上述几个协议基本上涵盖了建立一个Web Service的主要方面,包括Web Service的查
询机制、取得该项Web Service描述(帮助)文件、调用Web Service进行存取等。
Web Service的实现模型如图 1所示,该模型中主要涉及了以下 3种基本角色。
z 服务提供者:该对象提供服务,并对服务进行注册以便于服务的利用。
z 服务注册处:是服务提供者和服务请求者之间的媒介,提供了一定的机制使得服务
提供者和服务请求者能够发现对方。
z 服务请求者:向服务代理请求服务,并调用这些服务以完成具体的任务。
- 3 -
图 1 Web Service概念模型
3 基于Web Service的空间数据互操作规范
Web Service技术正在成为构建跨平台异构应用系统的主流技术,为了以Web Service的
方式提供空间信息服务,OGC(Open GIS Consortium)启动了 OWS(OGC Web Services)
计划。OWS 指的是一个可进化、基于各种标准的、能够无缝集成各种在线空间处理和位置
服务的框架。OWS将提供一个与厂商无关的互操作框架,用来进行基于Web的发现、存取、
集成、分析、利用和可视化地理数据、传感器感知的信息、位置信息和地学处理能力等。[6]OWS
的地理空间Web Service框架的基本结构如图 2所示。
图 2 Web Service框架的基本结构
基于 Web Service 的地理信息服务规范包括 Web 地图服务规范(WMS,Web Map
Service),Web要素服务规范(WFS,Web Feature Service)和Web覆盖服务规范(WCS,
Web Coverage Service)。
(1)Web 地图服务(WMS):WMS 利用具有地理空间位置信息的数据制作地图。其
中将地图定义为地理数据可视的表现。这个规范定义了 3个操作:GetCapabilities返回服务
级元数据,它是对服务信息内容和要求参数的一种描述;GetMap 返回一个地图影像,其地
理空间参考和大小参数已明确定义;GetFeatureInfo(可选)返回显示在地图上的某些特殊
要素的信息。
(2)Web 要素服务(WFS):WMS 返回图层级的地图影像,WFS 返回的是要素级的
GML编码,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深
入。WFS允许客户端从多个Web要素服务中取得使用地理标记语言(GML)编码的地理空
- 4 -
间数据,这个规范定义了 5 个操作:GetCapabilities 返回 Web 要素服务性能文档(用 XML
描述);DescribeFeatureType返回描述可以提供服务的任何要素结构的 XML文档;GetFeature
为一个获取要素实例的请求提供服务。Transaction 为事务请求提供服务;LockFeature 处理
在一个事务期间对一个或多个要素类型实例上锁的请求。
(3)Web覆盖服务(WCS):WCS面向空间影像数据,它将包含地理位置值的地理空
间数据作为“覆盖(Coverages)”在网上相互交换。网络覆盖服务由 3 种操作组成:
GetCapilities、GetCoverage和 DescribeCoverageType。GetCapilities操作是在确定什么样的查
询可以执行、什么样的数据能够获取之后执行的。它使用通用的覆盖格式返回地理位置的值
或属性。DescribeCoverageType 操作允许客户端请求由具体的 WCS 服务器提供的任一覆盖
层的完全描述。
4 基于Web Service的基础地理信息数据互操作的系统设计
从技术实现的角度,可以将Web Service理解为一个应用程序,它向外界暴露一个能通
过Web进行调用的接口。这个应用程序可以用现有的各种编程语言实现。由于 OGC推出的
地理信息服务规范已经定义好了服务接口,因此可根据服务接口编写服务实现的应用程序。
利用已有的 GIS平台 ArcGIS构建的提供空间数据以及 GIS功能的 GIS Web Service如图 3
所示。这是一个基于Web Service的WebGIS系统,其中 FGISIMS是系统的核心。它是一个
连接已有的 ArcGIS平台和 Web Service项目的组件产品,通过它就可以利用已有的
符合 COM规范的通用 GIS平台提供 GIS功能,来完成提供 GIS功能的Web Service,包括
上面提到的 3个地理数据服务。
图 3 基于Web Service的系统设计
图 4是 FGISIMS的对象结构图。MapCaller类是本组件中所有连接器继承的抽象类,它
实现了一些共用的方法以及共有的成员变量和属性,这些方法尽可能的在MapCaller端实现
以便被子类所继承提高重用度,同时这样也能减轻对 GIS平台调用的负担,继承MapCaller
的子类可以用同名的方法进行重载,MapCaller 不能被实例化。AoMapCaller 是继承于
MapCaller现有 ArcGIS平台的连接器对象,它包含了一个 AoContainer的 GIS控件包容器对
象,这是由于 的进程默认并且只能为多线程单元(MTA),而 ActiveX 控件却只能
运行在单线程单元(STA),GIS 控件包容器对象包含了 ApartmentState 的 STA 线程,并且
串行化多个线程对 GIS控件的访问,作为 GIS控件包容器对象必须实现 ImapContainer接口。
- 5 -
图 4 FGISIMS的对象结构图
IMapCaller是所有的 GIS连接器必须实现的接口,它的方法主要有:
Function GetCapabilities(ByVal Datasource As String) As MetaData
'返回元数据,其中Datasource是指定的数据源
Function GetMap(ByVal BBox As Extent, ByVal MapImageInfo As MapImageInfo) As
Boolean
'获取指定范围的地图影像,其中BBox是请求地图的范围,MapImageInfo是输入图象
生成的地址,输出地图范围
Function GetFeature(ByVal BBox As Extent, ByVal featherPara As FeatherParaList) As
FeatherSet
'客户查询的空间数据,其中BBox是请求地图的范围,featherPara是包含获取数据的参
数对象,回满足条件的对象集合
Function PntQuery(ByVal point As Point, ByVal queryOption As OptionOfQuery) As
ResultSet
'返回指定数据源点的图层信息
Function LinQuery(ByVal line As Line, ByVal queryoption As OptionOfQuery) As
ResultSet
'返回指定数据源线的图层信息
Function SurfaceQuery(ByVal Surface As Surface, ByVal queryoption As OptionOfQuery)
As ResultSet
'返回指定数据源面的图层信息
……
由于 ArcGIS产品不支持多线程,需要额外开辟单线程单元(STA)的线程调用 ArcGIS
组件,并且需要串行化对此 GIS组件的访问,但线程间的不断切换将造成系统性能的下降,
最好选用能够支持多线程的 GIS产品,如 ArcGIS 9。
使用 SOAP、WSDL和 UDDI部署、描述、传输和注册一个Web Service。由于 SOAP、
WSDL 和 UDDI 是一套标准,不同的厂商可以有实现这些标准的不同产品,例如 SUN、
APACHE、IBM、Borland等公司推出的基于 Java平台的 Web Service工具包,以及微软提
出的.NET平台等,这些工具为实现Web Service的开发、部署、描述提供了方便的工具,极
大地降低了开发Web Service的复杂度。Web Service提供者发布Web Service到 UDDI是可
选的步骤,也可以直接把WSDL文件提供给服务需求者就可以实现客户端到Web Service的
绑定,同时,也可以选用非 UDDI的其它发布机制。
- 6 -
任何可以理解 XML的应用程序都可以是 GIS Web Service的客户端,如.net客户端包
括.net windows应用程序以及 web应用程序。客户端应用程序向服务注册处查询所
需服务,服务注册处返回客户所需求的服务信息。客户端根据服务信息向基础地理信息网络
服务器发送事务请求和身份认证,服务器接受请求后,客户端可以调用Web Service,实现
对数据的操作和处理,在客户端得到服务端的处理结果和相应的消息信息。客户端可用任何
语言编写,如 JSP等。本文中的实例 GIS Web Service以 GML的形式提供了空间数据服务,
这在海量数据并且网络带宽小的情况下将影响系统的性能。要解决这一问题可以采用在
XML 中嵌入二进制的数据的方法,这可以大大减少传输的数据量,不过这使得一些功能较
弱的如采用脚本语言的客户端调用Web Service将异常困难。
5 结论
Web Service是下一代分布式系统的核心,将Web Service的设计思想与 GIS相结合设计
基础地理信息的网络平台,可以实现以下目标:
(1)使用一种通用的标准(XML)描述基础地理信息数据,实现空间地理信息的共享,
而且独立于平台和开发语言。
(2)使用一种标准的通信协议来实现应用系统的交互,屏蔽系统软件和硬件平台的不
同,实现不同 GIS系统的互操作。
因此,Web Service给深受困扰的基础地理信息共享、互操作和集成问题带来了新的解
决途径,是当前可以预见的最佳解决方案。
参考文献
[1] Web Service Description Language [EB/OL]
[2] Simple Object Access Protocol [EB/OL]
[3] GLASS G. The Web Services Evolution [EB/OL] 2001-02
2001-02
[4] KREGER H. Web Services Conceptual Architecture [EB/OL]
2001-05
[5] Web Services – A Standards-Based Framework for Integration [OL]
[6] 龚健雅,杜道生,李清泉.当代地理信息技术[M].科学出版社,2004,7
[7] 王凌云,李琦,喻文承.Web Service与地理信息互操作[J].测绘科学,2004,2,38-41
[8] 韩立森,王翠茹,袁和金.Web服务在 GIS中的研究与应用[J].华北电力大学学报,2004,3,69-72
[9] 许春杰,邹乐君,沈晓华.基于Web Service的WebGIS[J].测绘通报,2003,1,41-43
[10] 马林兵,齐华.基于可重用Web Service的 GIS数据集成和共享[J].铁路航测,2003,1,1-3
[11] 沈静,吴健平,戎恺.基于Web Service的WebGIS的设计与应用[J].遥感技术与应用,2004,4,138-142
- 8 -
Research of Web Service of Fundamental Geographic
Information Interoperability
Gong Yuanjiu, Wang Feng
School of Information Liaoning University, Shenyang , PRC, (110036)
Liaoning Provincial Geomatics Center, Shenyang, PRC, (110034)
Abstract
This paper introduces the conception, techniques and protocols of web service, analyzes web
service-based geographic data interoperable specification, summarizes the application in the share,
interoperability and integration of spatial information and points out that web service is the best
solution of implementation of fundamental geographic information interoperability.
Keywords: Web Service GIS Interoperability XML SOAP