XML-RPC, SOAP 的区别
在Web服务发展的初期,XML格式化消息的第一个主要用途是,应用于XML-RPC协议,其中RPC代表远程过程调用。在XML远程过程调用 (XML-RPC)中,客户端发送一条特定消息,该消息中必须包括名称、运行服务的程序以及输入参数。
XML-RPC只能使用有限的数据类型种类和一些简单的数据结构。人们认为这个协议还不够强大,于是就出现了SOAP——其最初的定义是简单对象访问协议。之后,大家逐渐意识到SOAP其实并不简单,而且也不需要必须使用面向对象语言,所以,现在人们只是沿用SOAP这个名称而已。
XML-RPC只有简单的数据类型集,取而代之,SOAP是通过利用XML Schema的不断发展来定义数据类型的。同时,SOAP也能够利用XML 命名空间,这是XML-RPC所不需要的。如此一来,SOAP消息的开头部分就可以是任何类型的XML命名空间声明,其代价是在系统之间增加了更多的复杂性和不兼容性。
随着计算机行业的觉醒,人们发现了基于XML的Web服务的商业潜力,于是,各家公司开始不断地发掘想法、观点、论据以及标准化尝试。W3C曾经设法以“Web服务活动”的名义来组织成果展,其中也包括实际做出SOAP的XML协议工作组(XML Protocol Working Group)。与Web服务有关的标准化成果(从某种程度上说与SOAP相关或者依赖于SOAP)的数量已经倍增了到了令人惊讶的程度。
最初,SOAP是作为XML-RPC的扩展而发展起来的,它主要强调的是,通过从WSDL文件中所获得的方法和变量名来进行远程过程调用。现在,通过不断进步,人们发现了更多的使用SOAP的方式,而不仅仅是采用“文件”方式——基本上是使用一个SOAP信封来传送XML格式化文件。无论如何,要掌握SOAP,了解WSDL所扮演的角色是最根本的。
SOAP数据包结构解析
SOAP的消息被称为一个SOAP Envelope,包括SOAP Header和SOAP Body。其中,SOAP Header可以方便的插入各种其它消息来扩充Web Service的功能,比如Security(采用证书访问Web Service),SOAP Body则是具体的消息正文,也就是Marshall后的信息。
SOAP调用的时候,也就是向一个URL(比如 http://api.google.com/search/beta2 )发送HTTP Post报文(根据SOAP规范,HTTP Get报文也可被支持),调用方法的名字在HTTP Request Header SOAP-Action中给出,接下来就是SOAP Envelope了。服务端接到请求,执行计算,将返回结果Marshall成XML,用HTTP返回给客户端。
分享到:
相关推荐
相比 SOAP,XML-RPC 更加轻量级,易于理解和实现,而 SOAP 提供了更多的扩展性和复杂性,可以处理更复杂的交互和数据类型。 **SOAP、XML-RPC 和 REST 之间的主要差异** | 特性 | SOAP | XML-RPC | REST | | --- | ...
在Apache XML-RPC库的帮助下,开发者可以快速地搭建服务端和客户端,实现远程调用,而无需深入了解复杂的SOAP或者WSDL规范。 **XML-RPC的基本流程** 1. **请求阶段**:客户端生成一个XML文档,该文档包含了要调用...
虽然XML-RPC和SOAP都是基于XML的远程调用协议,但SOAP通常更为复杂,支持更丰富的数据类型和操作。 6. **XML-RPC库**:为了在VB6中使用XML-RPC,开发者可能需要引入第三方库,如Apache Axis或Microsoft的.NET ...
PHP中集成了XML-RPC和SOAP两种协议的访问,都是集中在xmlrpc扩展当中。另外,在PHP的PEAR中,不管是PHP 4还是PHP 5,都已经默认集成了XML-RPC扩展,而且该扩展跟xmlrpc扩展无关,能够独立实现XML-RPC的协议交互。...
这种简单的设计使得XML-RPC在不支持复杂Web服务标准(如SOAP或REST)的场景下,成为一个实用的选择。 `xml-rpc.net.2.1.0`库是针对.NET Framework的一个实现,它包含了以下关键组件: 1. **客户端库**:这个库允许...
XML-RPC与SOAP比较 XML-RPC数据类型 XML-RPC消息格式 XML-RPC错误处理机制 XML-RPC客户端开发 XML-RPC服务器端开发 XML-RPC跨语言通信 XML-RPC在Web服务中的应用 XML-RPC安全性与认证 XML-RPC性能优化 XML-RPC实战:...
【XML-RPC 实现C++和C#交互】 XML-RPC(XML Remote Procedure Call)是一种简单、轻量级的远程过程调用协议,允许不同编程语言编写的应用程序之间进行通信。这种技术基于HTTP协议,使用XML来编码调用的参数和返回...
XML,即可扩展标记语言...综上所述,XML作为数据交换的基础,与SOAP和XML-RPC结合使用,构成了Web服务和分布式系统中重要的通信机制。理解这些技术的基本概念和工作原理对于任何IT专业人士来说都是至关重要的。
XML-RPC的出现较早,适合于简单、快速的跨平台通信,而SOAP(Simple Object Access Protocol)则更为复杂,提供了更强大的错误处理、安全性以及数据类型支持,适用于需要稳定、健壮环境的场景。 PHP中内置了对XML-...
目前主流的Web Service通信协议有两种:XML-RPC和SOAP。其中,XML-RPC由于其简单易用的特点,在早期得到了广泛应用;而SOAP则因为提供了更为稳定、安全的服务支持,适用于那些对安全性有更高要求的应用场景。 在PHP...
### PHP中XML-RPC构建WebService知识点详解 #### 一、Web Service概述 Web Service是一种用于实现不同应用程序之间相互...对于初学者而言,XML-RPC是一个很好的切入点,帮助他们理解Web Service的基本概念和技术实现。
压缩包子文件"axis-jaxrpc-1.4.jar"是Apache Axis的一个组成部分,Axis是一个开源的Web服务工具包,它支持SOAP协议和包括JAX-RPC在内的多种Web服务规范。这个jar文件包含了JAX-RPC的相关实现,用于支持Java应用程序...
- **超越XML-RPC**:探讨了除了XML-RPC之外的其他Web服务技术,如SOAP、REST等,并分析了它们与XML-RPC之间的差异。 - **协议设计选择**:讨论了在选择Web服务协议时需要考虑的因素,以及如何根据具体需求做出最佳...
PHP自身就集成了XML-RPC和SOAP两种协议的访问,都是集中在xmlrpc扩展当中。另外,在PHP的PEAR中,不管是PHP 4还是PHP 5,都已经默认集成了XML-RPC扩展,而且该扩展跟xmlrpc扩展无关,能够独立实现XML-RPC的协议交互...
PHP中集成了XML-RPC和SOAP两种协议的访问,都是集中在xmlrpc扩展当中。另外,在PHP的PEAR中,不管是PHP 4还是PHP 5,都已经默认集成了XML-RPC扩展,而且该扩展跟xmlrpc扩展无关,能够独立实现XML-RPC的协议交互,...
- 相比于SOAP或RESTful Web服务,XML-RPC更简单,但灵活性较低,不支持WSDL(Web服务描述语言)和服务发现。 10. **集成其他技术**: - Apache XML-RPC客户端可以与其他Java框架,如Spring、Struts等,无缝集成,...
JAX-RPC(Java API for XML-based RPC)是一种基于XML的远程过程调用(RPC)机制,用于构建Web服务和使用远程调用和XML客户端的API。在这个机制中,远程过程调用由SOAP(Simple Object Access Protocol)这种基于XML...
例如,压缩包中的`JSON-RPC-lib`可能是一个用于Java或其他语言的JSON-RPC客户端和服务器实现。使用这样的库,开发者可以方便地创建JSON-RPC服务,实现客户端与服务器间的远程调用,提高开发效率。 总的来说,JSON-...