WSDL 编写说明

来源:互联网 发布:3d地球仪软件 编辑:程序博客网 时间:2024/05/17 05:04

http://sizeed.blog.163.com/blog/static/965254512011102293829252/


在使用Web服务时我们应能本质地区别三种沟通方法:
远程进程调用:客户端给服务提供者发送一个SOAP请求并等待一个SOAP响应(同步沟通)。
发送消息: 客户端发送一个SOAP请求但不期望有SOAP响应返回(单向沟通)。
异步回调: 一个客户端用上述方法中的一种调用服务。然后,双方为回叫调用交换角色。这种模式能建立在前面两种模式之上。

SOAP 协议格式化规则

现在我们转到一个Web服务的SOAP的消息(本质上是消息的<soap:body> 元素)能如何格式化,WSDL1.1 区分两种不同绑定形式(参考soap的绑定形式):RPC和Document(文档)。(译者注:RPC(消息包含参数并返回值)Document(消息包含文档))

样式的四种组合:

RPC/Encoded 样式
RPC/Literal 样式
Document/Literal 样式
Document /Literal 外覆样式

RPC/Encoded 样式

实质上RPC/Encoded 是一种典型的遵循“远程进程调用”模式的样式,在这种模式中客户端发送一个同步请求给服务器来执行一次操作。SOAP请求包含了要执行的方法的名称和它携带的参数。运行web服务的的服务器把该请求转化成适当的对象,然后执行操作并向客户端做出响应反馈一个SOAP消息。在客户端,该响应被用来合成一个适当的对象并返回给客户端所需要的的信息。在RPC样式的web服务中,整个方法在WSDL文件和SOAP体中被指定,包含方法的发送参数和返回值。因此我们用这种样式会有相当紧密的耦合关系。

 

RPC/Literal 样式

优点
WSDL定义仍然像RPC/Encoded样式一样简单直接。
操作名仍然出现在SOAP消息中。
把类型编码从消息中排除了,因此提升了吞吐性能。

缺点
服务和客户之间仍然有紧密耦合。
仍然难以用SOAP消息来验证传输的数据。
它也不被WSI一致性标准所支持。