2002-10-16 14:52
摘要:创建一个体系架构使软件在web上能够作以前由人来完成的事情——以一种通常的方式访问文档和运行应用,而不需要特别的应用知识和客户端软件。
Web services:下一代应用集成
by AMT 谢小轩 编译
创建一个体系架构使软件在web上能够作以前由人来完成的事情——以一种通常的方式访问文档和运行应用,而不需要特别的应用知识和客户端软件。这确实是一个非常大胆的目标,如今支持Web
services的体系架构能够提供实现这个目标的基础。
在描述Web services 体系架构之前,让我们先了解Web
service是什么意思。一个Web service是一套应用函数,它们能够为客户提供有用的服务,如:信息或事务处理功能等。一个Web
service能够被描述和发布到网络以通过其它程序实现应用。公共的可以获得的Web service例子有股票查询服务,国际货币汇率服务等。因为Web
services是模块化的,相关的Web services可以聚集成更大的Web service。
Web
services的一个特性是它提供的相对简单的抽象功能,实现将现有的企业应用封装并把它转变成一个Web service。Web
services是基于XML标准的数据格式和数据交换机制,这使它具有柔性和平台无关性。在请求Web services时,请求者不知道也不用关心Web
services是如何实现的,这使Web services很容易的集成异构业务过程。Web
services提供了如何实现将一个企业的关键业务过程能够被客户、供应商和合作伙伴访问。例如一个航空公司能够以Web
services方式提供其航班定票系统,使其服务能够更容易的被集成到大公司的旅行计划应用中;一个供应商能够使它的库存系统和报价系统被其关键的购买者访问。
Web
services使用了XML作为数据表示和交换的标准,并且不需要复杂的与特定的语言相关的映射和编译时间绑定。Web
services提供了轻松的开发和轻松的修改,此外Web services并不要求需求和服务提供者之间紧密同步。这更加简化了在internet环境下实施Web
services。以XML作为数据交换标准和Web services技术的大量现有的和正在出现的工具使它变的相对容易。
Web
services功能
在一个典型的以服务为中心的架构中,服务提供者拥有一个网络可访问的软件模块,一个服务提供者为Web
service定义个服务描述并把它发布到服务注册处。一个服务请求者使用一个发现操作从服务注册处搜寻特定的服务描述,并使用服务描述与服务提供者绑定,服务请求者调用和与Web
service实现进行交互。下面让我们来看这个模型是如何使用Web services实现的。
一个Web
service是通过这种方式创建的:以一种特定的方式通过封装一个应用使该应用能够用标准的XML消息访问,这个XML消息内面的传输协议都被隐藏起来了。这个服务能够通过在一个标准格式的注册处注册而被发布,这个注册处能够使其他的人或应用发现这个服务。
Web
services架构包括:
一个Web
service(通常描述成一个能够在web上使用的软件);
互和相应的服务描述的特定应用的消息能够以标准的XML文档格式发送;
XML消息在一个SOAP包中,SOAP是由IBM、Microsoft和其他公司开发的一个应用调用协议,它定义了一个简单的交换XML格式的消息。
一个SOAP请求包括包本身(它包括了SOAP消息的名字)、一个可选的包头和请求体(它可能是一个远程过程调用RPC或一个XML文档)。
SOAP虽然是在现有的Internet标准如HTTP和XML上建立的,但是它可以与任何的网络协议、编程语言或数据编码模型一起使用,例如:可以通过IBM的MQSeries、FTP甚至mail
消息来发送SOAP。
逻辑接口和服务实现是通过WSDL(Web
services描述语言)来描述的。WDSL是一个XML语法,用来使Web
services应用之间的通信细节自动化。
为了是服务请求者发现你的Web
services,你可以通过一个注册处发布描述信息,如分类、所有权、业务名称、业务类型等,这个注册处符合统一描述发现和集成(UDDI)规范。UDDI信息能够提供一个指针指向WSDL接口、绑定信息和实际业务名(这个名字使Web
service能够是服务内容被人理解)。一个UDDI注册处是可以通过程序查找到的。
将Web
services组合在一起的能力是通过Web服务流语言(WSFL)提供的。WSFL是由IBM领导提出的一个规范,WSFL能够被用来描述一个业务过程。
我们将以上一些规范统一起来,则一个Web
service能够被定义成以下一个模块应用:
使用WSDL描述;
通过UDDI发布;
通过UDDI发现;
使用SOAP(或者HTTP
GET/POST)绑定;
通过SOAP(或者HTTP
GET/POST)调用;
使用WSFL实现与其他的服务组合成新的服务。
作者联系方式:adam.xie@amteam.org