SOA协作架构异构系统,因此,一个跨操作系统的需求、跨语言的通用信息交换格公式。
SOAP和REST它们是基于消息正文文本,在跨平台方面相比二进制消息优点。因此,作为选择SOA实施通常用于界面。但SOAP和REST的特点和用途。
SOAP:将HTTP协议作为传输层协议,本质是採用HTTP进行传输,使用XML封装消息内容的RPC调用。
REST:REST并非一种协议,仅仅是一种设计规范。该设计规范要求程序遵守HTTP协议最初设计的初衷。使用HTTP的GET/PUT/DELTET/POST对资源进行操作。REST接口是以URI资源为基础,对资源进行CRUD操作的接口。
SOAP和REST的对照:
- SOAP相对REST来说较为重量级。因为採用XML格式的消息体。消息的有效负荷占比較REST经常使用的JSON少,只是XML消息的优点是较JSON来说更easy为人阅读。
- SOAP接口是自解释的,採用WSDL进行描写叙述,程序能够基于WSDL进行解释并自己主动生成SOAP调用代码;REST接口仅仅能通过接口文档进行描写叙述,难以做到程序解释接口定义。
- SOAP採用HTTP作为传输层协议。对HTTP协议来说服务调用是透明的,防火墙上难以对SOAP进行细粒度的权限控制,也难以使用http的缓存机制提高效率。
而REST是标准的HTTP訪问,能够充分利用HTTP协议提供的一些优点。比如能够在防火墙上较好地进行权限控制(最小粒度能够基于每一个URL的CRUD操作),也能够充分利用缓存提高响应速度和系统的吞吐效率。
- 因为REST是标准的HTTP訪问。其适用性更广,web应用。移动应用都能够在不使用第三方库的情况下方便地使用REST接口构造应用程序。
- 对于移动程序而言,因为REST的有效负荷占比高于SOAP的XML封装,採用REST接口能够减少程序使用的带宽。
- 依据REST设计原则,接口是无状态的。因此能够简单地通过对server进行水平扩展提升服务能力。
版权声明:本文博客原创文章。博客,未经同意,不得转载。