RESTful事务和Web服务事务的区别是什么?

日期: 2009-06-22 作者:Eric Newcomer翻译:杨晓明 来源:TechTarget中国 英文

问:RESTful事务和Web服务事务有什么区别?   答:首先,我们对术语稍加定义,以助于更好的理解。“事务”这一术语,大家通常第一反应是它没有区分是本地事务还是全局事务。当今几乎所有的数据库操作都是使用本地事务,Web服务和RESTful应用处理本地事务的方式完全一样。   因此,这个问题实际上属于全局事务的范畴——涉及多个数据库的事务,可能在不同的计算机上运行。

这就是两者的不同点所在之处。我还要澄清一点,Web服务是一种技术,而REST是一种架构方法,这有点像要比较苹果和橙子有什么不同一样。   Web服务事务(OASIS已定义的WS-Transactions规范)旨在满足与现有的TP(……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

问:RESTful事务和Web服务事务有什么区别?

  答:首先,我们对术语稍加定义,以助于更好的理解。“事务”这一术语,大家通常第一反应是它没有区分是本地事务还是全局事务。当今几乎所有的数据库操作都是使用本地事务,Web服务和RESTful应用处理本地事务的方式完全一样。

  因此,这个问题实际上属于全局事务的范畴——涉及多个数据库的事务,可能在不同的计算机上运行。这就是两者的不同点所在之处。我还要澄清一点,Web服务是一种技术,而REST是一种架构方法,这有点像要比较苹果和橙子有什么不同一样。
 
  Web服务事务(OASIS已定义的WS-Transactions规范)旨在满足与现有的TP(Transaction Processing)基础设施兼容,基本上可以说是从大型机系统上演变过来的。而REST构架方法则是从Web中演变而来,是基于另一种完全不同的技术流。一些重要的区别之处源于大型机系统和基于Web系统的大相径庭之处。

  大型机系统的设计初衷是假定这样一种环境,即资源和用户处于同一个组织机构的控制之下。而基于Web系统的设计初衷则是假定是在万维网的环境下,即独立又互相协作的系统处于不同的组织和个体的控制之下。现在的企业IT系统可以或多或少区分为Web出现之前的系统,以及为Web开发的系统。为Web设计的IT系统在某些方面的控制非常欠缺,如工作负载、正常运行耗时、为用户提供良好体验的需求等。这些不同的假定影响着事务,因为面对分布式访问共享数据或者共享状态的需求,它们提供的是非常不同的解决方案。

  从技术层面来说,这两者最大的不同是在通信系统的设计上。从大型机设计演变而来的事务型通信机制是通过使用持久性session来共享不同程序间的状态。而在面向REST的系统上使用的通信协议HTTP不支持持久性session,因为session对扩展性造成负面影响。但如果你是在一个严格监控的环境下,那么这样的影响是可控的。

  为了与现有的共享状态机制相兼容,Web服务事务会把共享的事物上下文传递到全局事务的所有参与者,这样每个参与者对共享状态的访问都可以和其他参与者进行协调。 而基于REST的事务则是假定在任一时间,全局事务中只有一方可以访问共享状态,类似于传递一个令牌。其他参与方不知道另一个参与方在做什么,他们对于共享状态的操作不能进行协调。他们只需要知道,当轮到他们时,接收到共享状态后必须做什么。在处理失败和恢复方面,这令REST系统需要截然不同的设计,因为它无法做到自动化处理。这需要在额外的应用层上进行设计和编码,这样的折中方式使得系统可以与Web的设想更好地匹配。

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 购买应用集成工具可以采取平衡做法

    购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。