XML-RPC和SOAP之间有什么区别?

时间:2008-09-17 04:52:17

标签: xml web-services soap xml-rpc

我从来没有真正理解为什么Web服务实现者会选择其中一个。 XML-RPC通常在旧系统中找到吗?理解这一点的任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:83)

的差异?

SOAP功能更强大,是软件工具供应商(MSFT .NET,Java Enterprise Edition,等等)的首选。

SOAP很长一段时间(2001-2007)被视为SOA的首选协议。 xml-rpc没那么多。 REST是新的SOA宠儿,虽然它不是协议。

SOAP更冗长,但功能更强大。

某些较旧的东西不支持SOAP。例如,没有经典ASP的SOAP库(我能找到)。

python中不支持SOAP。 XML-RPC在标准库中的python中得到了很大的支持。

SOAP支持文档级传输,而xml-rpc更多地是关于值传输,尽管它可以传输结构,列表等结构。

xm-rpc实际上是关于编程语言不可知转移的程序。它主要通过http / https。 SOAP消息也可以通过电子邮件发送。

xml-rpc更加单一。它可以让您简单地执行操作,当您知道自己在做什么时,即使使用终端文本编辑器,也可以非常快速地部署高质量的Web服务。以这种方式做SOAP是一个动物园;你真的需要一个好的IDE来使它变得可行。

如果您正在争夺财富500强的IT工作,那么了解SOAP会在您的简历/简历上看起来更好。

xml-rpc与非ascii字符集有一些问题。

XML-RPC不支持命名参数。它们必须按正确顺序排列。不确定SOAP,但请这么认为。

答案 1 :(得分:12)

为了补充其他答案,我建议您查看SOAP和XML-RPC调用的实际文本表示,可能是通过使用Ethereal捕获一个。总的来说,“XML-RPC更简单”的论点在你看到SOAP调用的冗长程度之前没有多大意义。许多相当受欢迎的网站都避免使用SOAP作为他们的API,因为如果人们开始广泛使用它,它将消耗大量的带宽。

答案 2 :(得分:4)

Kate Rhodes在http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap

上有一篇关于差异的文章