RPC,remote procedure call,远程过程调用。分为REST风格RPC和SOAP RPC两种。一直以来,我对这两个概念都比较模糊,总是习惯性地将REST风格RPC称为WEB API,SOAP RPC称为WebService,应该是很不规范的。
那么REST风格RPC和SOAP RPC比较如何呢?
它们都是两种常用的Web服务集成方案。相对而言,
SOAP将WEB服务封装为经典程序设计模型中的对象RPC模式,从而支持WEB服务的调用;而REST风格RPC则将WEB服务映射为标准的HTTP操作,属于更轻量级的服务集成方案。
REST方案中,HTTP标准的GET、POST、PUT、DELETE操作可直接映射为数据库的CRUD等无状态操作,而SOAP方案则支持上下文及会话状态管理,更适合需要多步执行的有状态操作。
REST方案基于标准HTTP协议且无状态,对客户端请求的处理可以在任何服务器上执行,很容易在服务器端基于HTTP的负载均衡,使得服务器具备良好的横向可扩展性。
而SOAP作为W3C所定义的SOA架构核心规范之一,基于同架构下的WS-Security规范可提供良好的安全性支持。而REST方案缺少对服务安全性的直接支持。
相关拙作
SOA总结无状态架构师基本功:SOA