Posts Tagged ‘webservice’

[zt]SOAP风格中 RPC与Document的区别

大部分 Web 服务都是围绕着远程过程调用而构建的,而 WSDL 规范允许另外一种 Web 服务体系结构:文档样式(document style)。在该体系结构中,整个文档在服务客户端和服务器之间进行交换。在 WSDL规范中隐含着一个非常巧妙的转换开关,它可以将 Web 服务的 SOAP 绑定从远程过程调用转换成 pass-through 文档。在 SOAP 协议绑定中的样式属性可以包含这两个值中的一个:rpc或document。当属性被设定为文档样式时,客户端知道应该使用XML模式而不是远程过程调用约定。本文将提供对这个 WSDL 转换开关的说明,描述它的好处,并将解释应该何时使用 pass-through 文档。首先,让我们简要地谈谈 WSDL 的一些要点,来理解这个巧妙的转换是如何发生的。 WSDL 是一项 XML 规范,它被用来描述Web服务以及对于到达端点(服务)的协议相关的需求。WSDL 用抽象术语来描述服务;通过可扩展的绑定定义,它能够为使用具体术语调用服务定义协议和数据格式规范。下面的语法是直接从 WSDL 规范中摘录出来的,展示了在绑定中所包含的可扩展性元素:
<wsdl:definitions …. >    <wsdl:binding name=”nmtoken” type=”qname”> *        <– extensibility element (1) –> *        <wsdl:operation name=”nmtoken”> *           <– extensibility element (2) –> *           <wsdl:input name=”nmtoken”? > ?               [...]

XML-RPC是什么东西?

XML-RPC是什么东西?
在Java的世界里,我们听说了JAX-RPC其实就是XML-RPC的一个Java的实现方法。Apache也有相应的xmlrpc实现 – ws-xmlrpc。还有基于kxml上的kxmlrpc。
简单的说Web Service就是http+xml,http说明他的传输媒介,xml则是传输协议的格式。所以我们有时候会说Webservice有两种:SOAP和XML-RPC.
这两者都不和任何一种语言或者服务器有关系,你完全可以用不同的服务器端和客户端实现。区别仅仅在于:
SOAP是一个完整的XML DOCUMENT,也是为什么有的人说SOAP是Document Style.有WSDL来作为描述语言,同时又完备的对象xml映射的定义。而XMLRPC则是XML但未必是一个完备的DOCUEMNT,他的主要目标就是 – 简单。可以看看他的spec
所以这么看Webservice不是什么神乎其神的东西,可以说涉及到http和xml的远程调用都可以称作Webservice。当然有可能你没有使用SOAP和XML-RPC而发明了自己的协议。但,它仍然是Webservice。
–2009-3-3
在web端xml有可能被json取代哟。json的表达更简单(不过有人觉得有点抽象),而且现在也有xml->json的工具。看得出来在轻量级的web调用上,json会携手php, “ajax”s的各种框架成为主流。