81

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

4

3 回答 3

88

差异?

SOAP 功能更强大,并且受到软件工具供应商(MSFT .NET、Java 企业版等)的青睐。

SOAP 长期以来(2001-2007 年)被视为 SOA 的首选协议。xml-rpc 没那么多。REST 是新的 SOA 宠儿,尽管它不是协议。

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

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

SOAP 在 python 中没有得到很好的支持。XML-RPC 在标准库中对 python 有很好的支持。

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

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

xml-rpc 更加统一。它使您可以简单地做事,并且当您知道自己在做什么时,即使使用终端文本编辑器,也可以非常快速地部署高质量的 Web 服务。那样做 SOAP 简直就是动物园。你真的需要一个好的 IDE 才能让它变得可行。

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

xml-rpc 在非 ascii 字符集方面存在一些问题。

XML-RPC 不支持命名参数。它们的顺序必须正确。不确定 SOAP,但可以这么想。

于 2008-09-18T00:23:58.183 回答
14

只是为了添加其他答案,我鼓励您查看 SOAP 和 XML-RPC 调用的实际文本表示,也许通过使用 Ethereal 捕获一个。除非您看到 SOAP 调用是多么冗长,否则整个“XML-RPC 更简单”的论点没有多大意义。许多相当流行的网站都回避 SOAP 作为他们的 API,因为如果人们开始广泛使用它会消耗大量带宽。

于 2008-09-17T05:00:51.053 回答
5

Kate Rhodes 在http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap上有一篇关于差异的精彩文章

于 2008-09-17T04:56:19.160 回答