`

SOA接口的两种常用实现比较:SOAP vs REST

 
阅读更多

转自:http://blog.csdn.net/zhaohuabing/article/details/39643127?utm_source=tuicool

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来说更容易为人阅读。
  • SOAP接口是自解释的,采用WSDL进行描述,程序可以基于WSDL进行解释并自动生成SOAP调用代码;REST接口只能通过接口文档进行描述,难以做到程序解释接口定义。
  • SOAP 采用HTTP作为传输层协议,对HTTP协议来说服务调用是透明的,防火墙上难以对SOAP进行细粒度的权限控制,也难以使用http的缓存机制提高效 率。而REST是标准的HTTP访问,可以充分利用HTTP协议提供的一些好处,例如可以在防火墙上较好地进行权限控制(最小粒度可以基于每个URL的 CRUD操作),也可以充分利用缓存提高响应速度和系统的吞吐效率。
  • 由于REST是标准的HTTP访问,其适用性更广,web应用,移动应用都可以在不使用第三方库的情况下方便地使用REST接口构造应用程序。
  • 对于移动程序而言,由于REST的有效负荷占比高于SOAP的XML封装,采用REST接口可以降低程序使用的带宽。
  • 根据REST设计原则,接口是无状态的,因此可以简单地通过对服务器进行水平扩展提升服务能力。

对于WEB Service而言,SOAP和REST各有千秋,SOAP有完善的标准规范和自动化开发工具,REST则更简单,对移动应用更友好。Oracle SOA Suite提供了将SOAP转换为REST接口的快捷方法,可以为已有的SOAP接口提供REST形式的封装,为web service同时提供SOAP和REST接口,是一个综合了各方面优点的完善的解决方案。

分享到:
评论

相关推荐

    什么是REST,符合REST的API叫RESTful 两种SOA接口实现:SOAP(WebService) vs REST

    文件`rest(一种软件架构风格)_百度百科.url`和`SOA接口的两种常用实现比较:SOAP(WebService) vs REST(GET,POST).url`分别指向了关于REST和SOAP/REST比较的参考资料,它们可以进一步深入理解这两种接口实现的区别...

    面向服务的架构SOA分为2种 SOAP即Webservice和REST

    "rest(一种软件架构风格)_百度百科.url"和"SOA接口的两种常用实现比较:SOAP(WebService) vs REST(GET,POST).url"可能是链接到更详细的参考资料,它们提供了关于REST架构风格的深入介绍,以及SOAP和REST在实际应用...

    REST与SOA两种架构

    标题中的“REST与SOA两种架构”涉及到的是两种不同的服务架构设计模式,它们在软件工程领域,特别是分布式系统设计中占据着重要的地位。REST(Representational State Transfer,表述性状态转移)和SOA(Service-...

    SOA(面向服务架构):实现上的挑战

    - **解决策略**:通过服务合理化和服务合并两种方法。服务合理化涉及对现有系统的细致分析,将相似功能集中到高流量的平台上。服务合并则是将多个服务整合为单一服务,提高效率。 2. **服务场所** - **挑战**:...

    REST WebService与SOAP WebService的比较.docx

    **REST (Representational State Transfer) WebService 和 SOAP (Simple Object Access Protocol) WebService 是两种不同的 Web Service 技术,它们在 SOA(Service-Oriented Architecture,面向服务架构)领域中...

    WebService的几种不同实现方式

    这两个规范提供了更多SOAP协议底层细节的控制,使得编码过程比较复杂。 3. JAX-RS(Java API for RESTful Web Services):JAX-RS是为REST风格的Web服务制定的规范,它较晚推出,并且不随JDK1.6一起发行,需要单独...

    用SOA的方式实现加法

    **SOA(Service-Oriented Architecture,面向服务架构)是一种软件设计模式,它提倡将功能作为独立的服务,这些服务可以通过网络进行交互,以构建复杂的分布式系统。本教程以"用SOA的方式实现加法"为例,旨在帮助...

    SOA资料

    **SOA(Service-Oriented Architecture,面向服务架构)**是一种设计模式,它提倡将独立的功能单元称为服务,这些服务可以通过网络进行交互,以构建松散耦合且可重用的系统。SOA的核心思想是将业务逻辑拆分为一系列...

    webservice实验报告和源代码

    本实验报告和源代码主要涵盖了SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)两种风格的Web服务。 1. SOAP Web服务: SOAP是一种XML格式的消息传递协议,用于在应用程序之间交换...

    SOA核心技术及应用(源代码)

    这两种模式在SOA中都有其应用场景,理解它们可以帮助优化服务流程。 5. **ESB(Enterprise Service Bus)**:ESB是SOA架构中的核心组件,作为中介,它提供服务的路由、转换和集成功能。学习如何配置和使用ESB能有效...

    SOA Using Java in Webservice

    3. **SOAP与REST**:对比和分析SOAP和REST两种Web服务风格的优缺点,指导如何根据项目需求选择合适的服务模型。 4. **WS-*标准**:讨论WS-Security、WS-ReliableMessaging、WS-Transaction等WS-*家族标准,它们扩展...

    SOA.rar_SOA

    3. **XML和JSON**: 这两种数据交换格式在SOA中广泛用于服务间的通信,因为它们具有良好的结构化和平台无关性。 4. **安全**: SOA系统需要考虑服务的安全性,包括身份验证、授权和数据加密等,以防止未经授权的访问...

    SOA(面向服务的体系结构)

    1. **Web服务**:Web服务技术的发展,如SOAP、REST等协议,为不同系统之间的通信提供了标准的方法。 2. **中间件技术**:企业服务总线(ESB)、消息中间件等技术的发展,使不同应用间的集成变得更加容易。 ##### ...

    REST会是SOA的未来吗?

    近来出现了两种较为主流的方法——本真REST(trueREST)以及将REST作为面向服务的技术方法(又称RESTWeb服务[2])。本文讨论的重点为:是否其中一种方法能够改进SOA实现。 本真REST当然是对面向资源架构的一种实现,...

    SOA vs CBA

    服务导向架构(Service-Oriented Architecture, SOA)与组件基础架构(Component-Based Architecture, CBA)是两种在软件开发领域内广泛应用的设计模式。它们在不同的应用场景下展现出各自的优势,同时也存在各自的...

    基于 cxf 2.7.5 开发的 webservice [soap restful]

    【描述】本项目是使用Apache CXF 2.7.5版本实现的WebService服务,包括了SOAP和RESTful两种常见的Web服务接口。Apache CXF是一个开源的Java框架,它为构建和部署Web服务提供了强大的支持,使得开发者能够方便地创建...

    SOA 案例 代码

    这些服务通过标准化的接口进行通信,例如使用SOAP(Simple Object Access Protocol)或REST(Representational State Transfer)协议。服务间交互可以通过消息队列或者直接调用实现,以保证系统的灵活性和解耦性。 ...

    SOA Using java web servcice 随书源码

    Java Web服务则是实现SOA的一种常见技术手段,基于开放标准如SOAP(Simple Object Access Protocol)和WSDL(Web Services Description Language)。 【描述】"services oriented architecture using java web ...

    Soa And Webservices.pdf

    - 定义了Web服务的概念,并解释了Web服务是如何通过标准协议(如SOAP、REST等)实现不同系统间的通信。 - 分析了Web服务的互操作性问题,包括如何确保不同供应商提供的Web服务能够协同工作。 - 讨论了Web服务与...

    Java SOA Cookbook 中文版资料

    SOA是一种设计原则,旨在通过松散耦合的服务来构造可复用和可扩展的系统,它强调业务功能作为独立的服务进行暴露和消费。 在本书中,读者将学习到一系列实用的技巧和最佳实践,帮助他们更有效地设计、开发和部署...

Global site tag (gtag.js) - Google Analytics