深蓝海域KMPRO

Web Services体系

2002-09-16 13:37

Web Services体系


 
1 总括


服务被服务提供者service providers部署deploy到web上,由一个给定的web service提供的功能使用WSDL描述。

部署的服务被发布publish到web上,服务代理service broker帮助服务提供者和服务请求者service requestor互相发现。

一个服务请求者使用一个API向服务代理请求需要的服务,当服务代理返回结果后,服务请求者使用这些结果绑定bind到一个实际的服务上。
这里讨论的所有通讯可以使用任何协议,但为了简单,选择SOAPVersion 2.0 协议,它允许应用程序调用远程对象的方法。

2 Web Services 组件

有三种组件:

◆服务提供者:提供服务,进行注册以使服务可用

◆服务代理:服务交换所,服务提供者和服务请求者之间的媒介

◆服务请求者:向服务代理请求服务,调用这些服务创建应用程序

3 Web Services操作

三种操作:

◆发布/不发布(Publish/Unpublish):提供者向代理发布(注册)服务或不发布(移去)这些服务的注册

◆发现(Find):由服务请求者向服务代理执行find操作,服务请求者描述要找的服务,服务代理分发匹配的结果

◆绑定(Bind):在服务请求者和服务提供者之间绑定,这两部分协商以使请求者可以访问和调用提供者的服务

4 UDDI - 通用发现,描述和整合

这是一个Web services的信息注册的规范,基于UDDI的web services注册可以被发现。UDDI的发现方法是:在web上有一种分布的注册服务,商务和服务以一种通用的XML格式描述,XML中的结构化数据易于发现,分析和操作。

5 WSDL - Web 服务描述语言

如果我们打算找出一个地方的所有web services,我们需要一种描述他们的通用语言。如果我提供了一种服务,我需要能够向外部世界描述它,同时如果我想要使用一种服务,我也要描述我要找什么,WSDL正是这个目的。

下面是一个描述一个web services的WSDL文档:

<binding name="StockQuoteServiceBinding" type="StockQuoteServiceType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getQuote">
<soap:operation soapAction="http://www.getquote.com/GetQuote"/>
<input>
<soap:body type="InMessageRequest"
namespace="urn:live-stock-quotes"
encoding="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body type="OutMessageResponse"
encoding="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>

这是一个股票报价服务的定义的一部分,它定义了一个叫做getQuote的方法,同时带有相关的SOAP信息,以使一段代码可以发现这种服务,调用一个方法,且处理响应。

6 总结

结合这些技术,我们就有了使web services工作的基础结构。服务提供者可以描述自己,服务请求者可以描述自己要找什么,服务代理可以自动决定哪个请求者-提供者对是一个好的匹配,一旦产生了一个匹配,就可以使用必要的绑定信息用标准的方法(ways)找到与这种服务交互的方法(methods)。

相关推荐