转自: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(一种软件架构风格)_百度百科.url`和`SOA接口的两种常用实现比较:SOAP(WebService) vs REST(GET,POST).url`分别指向了关于REST和SOAP/REST比较的参考资料,它们可以进一步深入理解这两种接口实现的区别...
"rest(一种软件架构风格)_百度百科.url"和"SOA接口的两种常用实现比较:SOAP(WebService) vs REST(GET,POST).url"可能是链接到更详细的参考资料,它们提供了关于REST架构风格的深入介绍,以及SOAP和REST在实际应用...
标题中的“REST与SOA两种架构”涉及到的是两种不同的服务架构设计模式,它们在软件工程领域,特别是分布式系统设计中占据着重要的地位。REST(Representational State Transfer,表述性状态转移)和SOA(Service-...
- **解决策略**:通过服务合理化和服务合并两种方法。服务合理化涉及对现有系统的细致分析,将相似功能集中到高流量的平台上。服务合并则是将多个服务整合为单一服务,提高效率。 2. **服务场所** - **挑战**:...
**REST (Representational State Transfer) WebService 和 SOAP (Simple Object Access Protocol) WebService 是两种不同的 Web Service 技术,它们在 SOA(Service-Oriented Architecture,面向服务架构)领域中...
这两个规范提供了更多SOAP协议底层细节的控制,使得编码过程比较复杂。 3. JAX-RS(Java API for RESTful Web Services):JAX-RS是为REST风格的Web服务制定的规范,它较晚推出,并且不随JDK1.6一起发行,需要单独...
**SOA(Service-Oriented Architecture,面向服务架构)是一种软件设计模式,它提倡将功能作为独立的服务,这些服务可以通过网络进行交互,以构建复杂的分布式系统。本教程以"用SOA的方式实现加法"为例,旨在帮助...
**SOA(Service-Oriented Architecture,面向服务架构)**是一种设计模式,它提倡将独立的功能单元称为服务,这些服务可以通过网络进行交互,以构建松散耦合且可重用的系统。SOA的核心思想是将业务逻辑拆分为一系列...
本实验报告和源代码主要涵盖了SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)两种风格的Web服务。 1. SOAP Web服务: SOAP是一种XML格式的消息传递协议,用于在应用程序之间交换...
这两种模式在SOA中都有其应用场景,理解它们可以帮助优化服务流程。 5. **ESB(Enterprise Service Bus)**:ESB是SOA架构中的核心组件,作为中介,它提供服务的路由、转换和集成功能。学习如何配置和使用ESB能有效...
3. **SOAP与REST**:对比和分析SOAP和REST两种Web服务风格的优缺点,指导如何根据项目需求选择合适的服务模型。 4. **WS-*标准**:讨论WS-Security、WS-ReliableMessaging、WS-Transaction等WS-*家族标准,它们扩展...
3. **XML和JSON**: 这两种数据交换格式在SOA中广泛用于服务间的通信,因为它们具有良好的结构化和平台无关性。 4. **安全**: SOA系统需要考虑服务的安全性,包括身份验证、授权和数据加密等,以防止未经授权的访问...
1. **Web服务**:Web服务技术的发展,如SOAP、REST等协议,为不同系统之间的通信提供了标准的方法。 2. **中间件技术**:企业服务总线(ESB)、消息中间件等技术的发展,使不同应用间的集成变得更加容易。 ##### ...
近来出现了两种较为主流的方法——本真REST(trueREST)以及将REST作为面向服务的技术方法(又称RESTWeb服务[2])。本文讨论的重点为:是否其中一种方法能够改进SOA实现。 本真REST当然是对面向资源架构的一种实现,...
服务导向架构(Service-Oriented Architecture, SOA)与组件基础架构(Component-Based Architecture, CBA)是两种在软件开发领域内广泛应用的设计模式。它们在不同的应用场景下展现出各自的优势,同时也存在各自的...
【描述】本项目是使用Apache CXF 2.7.5版本实现的WebService服务,包括了SOAP和RESTful两种常见的Web服务接口。Apache CXF是一个开源的Java框架,它为构建和部署Web服务提供了强大的支持,使得开发者能够方便地创建...
这些服务通过标准化的接口进行通信,例如使用SOAP(Simple Object Access Protocol)或REST(Representational State Transfer)协议。服务间交互可以通过消息队列或者直接调用实现,以保证系统的灵活性和解耦性。 ...
Java Web服务则是实现SOA的一种常见技术手段,基于开放标准如SOAP(Simple Object Access Protocol)和WSDL(Web Services Description Language)。 【描述】"services oriented architecture using java web ...
- 定义了Web服务的概念,并解释了Web服务是如何通过标准协议(如SOAP、REST等)实现不同系统间的通信。 - 分析了Web服务的互操作性问题,包括如何确保不同供应商提供的Web服务能够协同工作。 - 讨论了Web服务与...
SOA是一种设计原则,旨在通过松散耦合的服务来构造可复用和可扩展的系统,它强调业务功能作为独立的服务进行暴露和消费。 在本书中,读者将学习到一系列实用的技巧和最佳实践,帮助他们更有效地设计、开发和部署...