RPC vs SOAP
无论在商业、政治、人际关系,甚至在拯救生命的过程中,通信在任何领域都是至关重要的。通信被证明最重要的另一个领域是计算机网络。如果没有合适的通信手段,一个典型的服务请求者和服务提供者就无法达成。在互联网领域中,有一个叫做 Web Service 的事物。它主要适用于网络中两台电子设备之间的简单通信。截至目前来讲 Web Service 中最常用的就是 RPC (Remote Procedure Call,远程过程访问,更普遍地被称为 XML-RPC) 和 SOAP (Simple Object Access Protocol,简单对象访问协议)。
为了更好地了解它们两个在计算机世界以及互联网领域的工作机制,XML-RPC 是一种用于通过互联网访问信息的技术。一个很好的例子就是当一个 XML-RPC 消息被传输到目标服务器的时候,通常会使用 HTTP post 请求。
同时,SOAP 是一种用于通过 Web Service 交换结构化信息的协议规范。关于其运作方式的一个例子是 SOAP 消息能够被传输到一个启用 web service 的网站,就像通过需要的参数对一个房地产价格数据库中的查询那样来进行一次查询。作为响应,该网站会将比如价格之类的需要的数据封装到一个 XML 格式的文档里进行返回。所获得的数据可以很轻松地集成进一个第三方的应用或者网站,因为其机器解析格式是已经标准化了的。
如果没有 RPC 和 SOAP 这两者 web service 的话,互联网服务将会非常复杂和难以掌控。尽管如此,这两种 web service 之间还是有一些区别的。
首先,它们的设计理念很明显不一样。SOAP 的结构化架构要比 RPC 复杂的多,它具备通过使用 SOAP 信封进行转换的 XML 消息。另一方面,RPC 使用 XML 对远程过程调用里的参数进行编码和解码,相比 SOAP 来讲,它的架构比较简单。
其次,在 SOAP 中,顺序无关而且过程基本上取的是命名参数。在 XML-RPC 中就完全是另外一回事了。与顺序相关而且过程也不必去取命名参数。
SOAP 被认为是比 RPC 更为强大;SOAP 1.2 规范有 44 页而 RPC 规范只有 6 页。
另外一个值得一提的事情是 SOAP 以数据冗余而知名,但它通常比 RPC 更功能丰富。然而,就 Python 支持而言,在标准库中,RPC 相比 SOAP 来讲得到了更大的支持。
事实上,web service 是很实用的而且在 WWW (World Wide Web,万维网) 中发挥着不可或缺的作用。尽管 (对于 web service) 存在一些批评,尤其是在它们的设计和复杂性方面,但是只要互联网用户还在找到方法来利用这些服务,它们就肯定会继续存在下去。
总结
1. SOAP 的设计比 XML-RPC 要复杂的多。
2. 对于 XML-RPC 来讲,顺序比过程重要。而对 SOAP 来讲则恰恰相反。
3. 就能力而言 SOAP 比 RPC 要强大。
4. RPC 的 Python 支持比 SOAP 强大。
原文链接:
Difference Between RPC and SOAP,发布日期:2011 年 4 月 25 日。
作者简介:Differencebetween.net 网站 "internet" 频道。
Differencebetween.net 不仅仅会帮你去理解一个主题,还能让你弄清楚两个类似话题之间的区别。该网站为你提供各种主题的实时信息。话题涉猎 "商业" 到 "技术" 等不同种类。他们将每个主题的多个可靠资源编辑并统一到一个页面上,读者可以藉此轻松快速搜集到充足感兴趣的信息。如果你对他们的内容有相关建议可以通过他们的联系邮箱 [email protected] 进行反馈。
标签:XML,web,Web,service,区别,RPC,SOAP From: https://blog.51cto.com/defonds/5782374