XML-RPC 并非进行远程过程调用的唯一方式。其他流行的协议包括 CORBA、DCOM 和 SOAP。每种协议都有其优点和缺点。
本节中的观点显然带有偏见;请对此持保留态度。
CORBA 是一种流行的协议,用于编写分布式、面向对象的应用程序。它通常用于多层企业级应用。最近,Gnome 项目也采用了它来进行应用程序间的通信。
CORBA 得到了许多供应商和多个自由软件项目的良好支持。CORBA 与 Java 和 C++ 配合良好,并且可用于许多其他语言。CORBA 还提供了一个出色的接口定义语言 (IDL),允许您定义可读的、面向对象的 API。
遗憾的是,CORBA 非常复杂。它有很陡峭的学习曲线,需要大量的实施工作,并且需要相当复杂的客户端。它更适合企业级和桌面应用程序,而不是分布式 Web 应用程序。
DCOM 是微软对 CORBA 的回应。如果您已经在使用 COM 组件,并且不需要与非微软系统通信,那么它会非常有用。否则,它对您的帮助不大。
SOAP 与 XML-RPC 非常相似。它也通过将过程调用编组为 XML 文档,并通过 HTTP 传输来工作。遗憾的是,SOAP 似乎正在遭受规范蔓延之苦。
SOAP 最初是由 UserLand、DevelopMentor 和微软合作创建的。最初的公开发布版本基本上是带有命名空间和更长元素名称的 XML-RPC。然而,从那时起,SOAP 就被移交给了 W3C 工作组。
遗憾的是,该工作组一直在向 SOAP 添加一长串奇怪的特性。截至目前,SOAP 支持 XML Schema、枚举、结构体和数组的奇怪混合体以及自定义类型。与此同时,SOAP 的几个方面是实现定义的。
基本上,如果您喜欢 XML-RPC,但希望该协议有更多功能,请查看 SOAP。 :-)