远程过程调用(RPC)不是协议,而是一种原则,它也被用于SOAP中。SOAP是一个应用协议,使用HTTP进行传输(因此无需考虑编码、消息边界等)。使用SOAP而不是HTTP的原因之一是,对于HTTP,通常不需要防火墙规则,并且HTTP基础设施已成熟并普遍推出。
RPC不需要HTTP。基本上,RPC描述了任何适合远程调用某些代码的机制。用于执行RPC的传输机制可以是通过HTTP的SOAP。它也可以是返回一些JSON数据的REST调用通过HTTP。SOAP也可以通过邮件使用,据我所知(这里不确定),BizTalk服务器应该支持此场景。但即使像尝试在 Avian Carriers 上使用SOAP这样的奇特事情也可以被认为是RPC,尽管后者的延迟可能不足以满足实际应用程序的要求。将RPC视为向目标发送某种消息,以启动特定操作并在完成操作后(可选)获取一些信息。您选择传输这些消息的特定技术并不重要。