Web 服务是通过 WSDL 文档来描述的。WSDL 绑定描述了如何把服务绑定到消息传递协议(特别是 SOAP 消息传递协议)。WSDL SOAP 绑定可以是 RPC 样式的绑定,也可以是文档样式的绑定。同样,SOAP 绑定可以有编码的用法,也可以有文字的用法。这给我们提供了四种样式/用法模型:
1. RPC/编码
2. RPC/文字
3. 文档/编码
4. 文档/文字
除了这些样式之外,还有一种样式也很常见,它称为文档/文字包装的样式,算上这一种,在创建 WSDL 文件时您就有了五种绑定样式可以从中选择。您应该选择哪一种呢?
在我进一步讨论以前,让我阐明一些容易混淆的地方。这里,这些术语是非常不合适的:RPC 与文档。这些术语意味着 RPC 样式应该用于 RPC 编程模型,文档样式应该用于文档或消息编程模型。 但事实完全不是这样。样式对于编程模型没有任何意义。它只是指明了如何将 WSDL 绑定转化为 SOAP 消息。其他就没什么了。你可以将任一种样式用于任何编程模型。
同样,术语编码和文字只对于 WSDL 到 SOAP 映射有意义,可是,至少这里,这两个单词的字面意思更容易理解一些。
对于这篇讨论,让我们从清单 1 中的 Java 方法开始,并且应用 JAX-RPC Java-to-WSDL 规则。
清单 1. Java 方法
public void myMethod(int x, float y);
RPC/编码
采用清单 1 中的方法并且使用你喜欢的 Java-to-WSDL 工具来运行,指定您想让它生成 RPC/编码的 WSDL。您最后应该得到如清单 2 所示的 WSDL 片断。
清单 2. 用于 myMethod 的 RPC/编码的 WSDL
<message name="myMethodRequest">
<part name="x" type="xsd:int"/>
<part name="y" type="xsd:float"/>
</message>
<message name="empty"/>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding …/>
<!– I won’t bother with the details, just assume it’s RPC/encoded. –>
现在用“5”作为参数 x 的值,“5.0”作为参数 y 的值来调用这个方法。发送一个如清单 3 所示的SOAP 消息。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。
-
API设计:如何正确开发应用程序接口
在交互组件化软件的世界里,没有比让组件之间以及组件与移动设备和浏览器之间进行连接的应用程序接口(API)更重要的东西了。
-
从头开始实现领域驱动设计
领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。