2.1.2 Web服务
在很多情况下,人们对于服务、Web服务以及SOA三个概念的理解经常发生偏差,认为服务与Web服务是同一个概念,或者认为Web服务与SOA是同一种技术。这种理解都存在着一定程度的误解,其中,服务是SOA以及Web服务的一个概念基础;而SOA,它是一种软件的架构方式,它非常适合被人们用来在Internet环境中进行体系结构设计和系统的构建,但它并没有限定具体的实现技术;而Web服务即Web Service,它是一个独立的技术体系,包含了实现SOA架构所必须的服务描述、发布和调用机制的实现规范。简言之,SOA是一个架构模式,而Web服务是实现SOA的技术方式之一,它具备了SOA的相应特征,同时也具备自身特有的特性。由于Web服务技术是目前最为成功的SOA实现技术,因此目前许多研究并没有详细区分两者之间的概念。
W3C对Web服务的定义(W3C,2004)如下:Web Service是由URI标识的软件系统,其接口和绑定可以通过XML进行定义,其定义可以被其他的(Web服务)软件系统发现,这些(Web服务)系统通过基于Internet的协议使用基于XML的消息交互。
在本书的后续讨论中,所提到的服务如无特别说明,指的都是Web服务,目前GIS领域所研究的地理信息服务,也都是基于Web Service技术的Web服务。
与SOA结构定义相符合,一个最基本的Web服务架构同样是由服务提供者、服务请求者和服务中介组成,其技术框架所涉及的技术细节包含了许多的协议和规范,但最为基础和关键的技术主要包括以下三个部分:
(1)Web服务描述语言(Web Service Description Language,WSDL)(W3C,2001)
服务提供者通过WSDL集中地描述一个Web服务调用的相关细节要求,WSDL具体包括服务的名称、前置约束条件、所遵循的协议等,它通过是一个基于XML的描述文档,主要包括了类型(Type)、消息(Message)、操作(Operation)、端口(Port)、服务(Service)、绑定(Binding)等几种元素,如图2-3所示。

图2-2 Web服务结构(据W3C,有改动)

图2-3 WSDL
WSDL文档的实例如图2-4所示。
(2)统一描述、发现、集成中心(Universal Describe Discovery and Integration,UDDI)(B.Bellwood,2005)
服务提供者和服务请求者通过UDDI规范在服务代理中发布和发现Web服务,UDDI是一套为Web服务提供信息注册的标准规范,其注册中心(UDDI Registry)是一个逻辑上集中、物理上分散、由多个节点组成的注册系统。UDDI规范所使用的数据模型也同样基于XML,包括业务实体、业务服务、模板绑定和TModel四种重要的数据模型。其工作原理如图2-5和图2-6所示。
(https://www.daowen.com)
图2-4 WSDL文档实例

图2-5 UDDI工作原理
(3)简单对象访问协议(Simple Object Access Protocol,SOAP)(W3C,2003)

图2-6 UDDI消息在用户与注册中心之间的传输
SOAP是一种标准化的通信规范,最初SOAP是由微软公司在.net平台下倡导的一种网络消息传递机制,后来被推荐到W3C组织,成为Web Service的通信规范。最新版本的SOAP规范是V1.2,根据此规范版本,一个包含了信息的标准SOAP的信封(Envelope)包含的要素有:SOAP头部信息(Header)和SOAP主体(SOAP Body)两大部分,其中前者是一个可选要素,包含了安全、路由以及消息处理模式等相关信息;后者是必选要素,包含了需要传输的消息主体部分。
一个典型的SOAP请求及返回的实例如图2-8所示。
OGC认为Web Service是一种全新的Web应用模式:
WebService具有广阔的应用前景,它代表了一个具有革命性的,基于标准的结构框架,它可以让各种在线的地理数据处理系统和基于位置的服务之间无缝地集成。它可以让分布式的空间数据处理系统使用流行的网络技术,如XML和HTTP通过Web进行互相通信,提供了与厂商无关的,可供互操作的框架结构来对多源、异构的空间数据进行基于Web的数据发现、数据处理、集成、分析、决策支持和可视化表现。

图2-7 SOAP要素结构
Web Service是一个为空间数据处理应用建立网络连接的框架结构,或者是将空间数据处理功能与其他信息应用系统如MIS系统进行集成的平台。这个平台就像一个自由的市场经济。在这个市场中的所有人既可以是提供商,又可以是消费者。因此,Web Service的提供者既可以提供空间数据处理功能的服务器,也可以是服务器的客户端。