| 新技术:“标准协议”描绘Web服务(2) |
 |
 |
|
2002-09-20 23:30
作者: 柴晓路
转自:
开放系统世界
|
| |
描述Web服务
自从SOAP技术出现后,技术人员做了大量的应用实践,使得大量的基于Internet的服务交互采用了SOAP技术。这些服务交互从模式上看不外乎远程过程/对象调用,借助普通对象环境下的相关应用背景,人们逐渐开始尝试使用类似IDL(Interface Definition Language)技术来描述SOAP Web服务的界面。有了这样一种界面描述的机制,开发环境就能够采取程序化的手段来分析SOAP Web服务,并在开发环境中生成相应的程序接口,以实现开发的无缝连接。
WSDL(Web Services Description Language)正是这样一种基于IDL技术的服务描述语言。WSDL 定义了一套基于 XML的语法,将Web服务描述为能够进行消息交换的服务访问点的集合,从而满足了这种需求。WSDL 服务定义为分布式系统提供了可机器识别的SDK文档,并且可用于描述自动执行应用程序通信中所涉及的细节。WSDL的当前版本是1.1,规范可以从http://www.w3.org/TR/wsdl获得。
WSDL文档将Web服务定义为服务访问点或端口的集合。在 WSDL中,由于服务访问点和消息的抽象定义已从具体的服务部署或数据格式绑定中分离出来,因此可以对抽象定义进行再次使用:消息,指对交换数据的抽象描述;端口类型指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范构成了可以再次使用的绑定。将Web访问地址与可再次使用的绑定相关联,可以定义一个端口,而端口的集合则定义为服务。因此,WSDL 文档在Web服务的定义中使用下列元素:
1. Types,数据类型定义的容器。它使用某种类型系统(一般地使用XML Schema中的类型系统)。
2. Message,通信消息数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。
3. Operation,对服务中所支持操作的抽象描述。一般单个Operation描述了一个访问入口的请求/响应消息对。
4. Port Type,对于某个访问入口点类型所支持操作的抽象集合。这些操作可以由一个或多个服务访问点来支持。
5. Binding,特定端口类型的具体协议和数据格式规范的绑定。
6. Port,定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。
7. Service,相关服务访问点的集合。
WSDL设计继承了以XML为基础的当代Web技术标准的开放设计理念。它允许通过扩展使用其它的类型定义语言(不光是XML Schema),允许使用多种网络传输协议和消息格式(不仅是在规范中定义的SOAP/HTTP、HTTP-GET/POST及MIME等)。WSDL也应用了当代软件工程中的复用理念,分离了抽象定义层和具体部署层,使得抽象定义层的复用性大大增加。
Web服务注册发现机制
统一描述、发现和集成(UDDI, Universal Description, Discovery and Integration)规范定义了Web服务的发布与发现的方法。自2000年起,一个由技术和商业领域领导者组成的开发小组开始开发UDDI标准,目前的版本是2.0,详细信息可以从“http://www.uddi.org”获得。这是一个全新的计划,意图建立一个全球化的、平台无关的、开放式的架构,使得企业能够发现彼此、定义如何通过Internet交互、 使用一个全球性的商务注册中心共享信息、加速全球B2B的电子商务的应用。
UDDI的核心组件是UDDI商业注册,它使用一个XML文档来描述企业及其提供的Web服务。从概念上来说,UDDI商业注册所提供的信息包含三个部分:白页(White Page)包括了地址、联系方法和已知的企业标识;黄页(Yellow page)包括了基于标准分类法的行业类别;绿页(Green Page)则包括了关于该企业所提供Web服务的技术信息,其形式可能是一些指向文件或是URL的指针,这些都是为服务发现机制服务的。所有的UDDI商业注册信息存储在UDDI商业注册中心里。
UDDI规范定义了一个由Web服务构成的逻辑上的云状服务,同时也定义了一种编程接口,这种编程接口提供了描述Web 服务的简单框架。规范包括几份相关文档和一份XML Schema,其用来定义基于SOAP 的注册和发现Web 服务的协议。这些规范由业界来自多家主要公司的技术人员和管理人员制定。这些公司也担负起实现第一批UDDI商业注册中心服务的任务,这些UDDI注册中心存储描述了商业实体或其它实体的信息,以及所提供的Web服务的相关技术调用界面(或API)。每一个注册中心被称为UDDI Operator Site(UDDI操作入口站点),同时也可以称为Public UDDI Registry(公共UDDI注册中心)。公共的UDDI商业注册中心在逻辑上是集中的,在物理上是分布式的,由多个节点组成,相互之间按一定规则进行数据同步。当一个企业在UDDI商业注册中心的一个实例中实施注册后,其注册信息会被自动复制到其它UDDI 根节点,于是就能被任何希望发现这Web服务的人发现。
UDDI 的设计是作为对现有在线交易市场和搜索引擎的补充,为电子商务和服务发现机制提供标准的信息格式和服务调用。UDDI 规范中没有直接涉及到具体的商业发现流程,例如找出以某一个给定价格或在某一特定区域内的提供某种特定产品或服务的企业。高级发现特性需要买方和卖方更进一步的合作与设计。UDDI为定义这些上层应用提供了基础架构服务。
UDDI 并没有完成发现服务需要的所有特性。其服务的目标是为了在技术上实现服务发现。借助UDDI所定义的功能 ,程序或程序员能够定位到合作伙伴所提供的Web服务的信息,知道对方是否提供了与自己的技术相兼容的服务,然后按照合作伙伴Web服务提供的调用标准进行集成并与之相容。企业也可以使用UDDI找到潜在的合作伙伴,或者说从一个以UDDI为数据来源、并将基于UDDI的服务加入到自身增值服务的在线交易市场,或者搜索引擎中找到潜在的合作伙伴。
例如,一个计算机行业的在线交易市场,可以将所有UDDI注册中心计算机相关产品厂商的商业注册信息作为在线搜索服务的底层数据服务,在UDDI注册信息的基础上提供更准确的产品服务、搜索服务和厂商定位服务(因为UDDI注册信息中会包括厂商的网址、联系方式等)。
由于技术上的兼容性是可以被发现的(通过各方共同注册兼容同一个技术规范,可以实现技术兼容性的发现),所以软件提供商也可以借助UDDI 注册中心,在用户安装软件或注册登记时自动配置某种技术连接,以完成更广泛范围内的自动系统对接。
|
| |
|
 |
|