【问题标题】:REST vs. SOAP - Doesn't support Transactions?REST 与 SOAP - 不支持事务?
【发布时间】:2009-06-08 23:20:04
【问题描述】:

我几乎没有将 REST 和 SOAP 的架构作为我的架构中的 SOA 进行检查。比较两者时,我听说 REST 的缺点之一是不支持“事务”——他们在说什么?因为据我所知,它确实支持来自 GET、POST、DELETE 等底层 HTTP 协议的 CRUD 操作。

有人可以详细说明吗?如果我选择 REST,它是否可以支持我的 CRUD 操作的事务密集型工作场所,还是走 SOAP 路由对我来说更好?

【问题讨论】:

    标签: wcf rest soap


    【解决方案1】:

    如果您需要跨多个调用执行事务,最好不要选择其中任何一个,而是选择远程处理或在 wcf 中进行二进制序列化之类的东西。 REST 和 SOAP 都是无状态的。连接打开,执行操作,然后再次关闭。话虽这么说,wcf 确实通过 SOAP 支持事务支持,所以如果您必须在两者之间进行选择,那将是一个。

    【讨论】:

      【解决方案2】:

      您所指的事务类型是分布式事务。这允许客户端在服务器(甚至几个不同的服务器)上执行多个调用,并让它们全部提交或全部回滚。

      WCF 通过 WS-AtomicTransaction (WS-AT) 协议支持分布式事务。该协议面向 SOAP。因此,要使用 WCF 事务,您必须使用 SOAP——而不是 REST。

      虽然您不会使用 REST 进行跨调用分布式事务,但您仍然可以在特定方法中使用数据库事务。例如,您可以实现一个 POST 操作,该操作在该方法的一个事务中提交订单并更新 Order 和 OrderLine 数据库表。因此,仅仅因为您的应用程序是事务密集型的,并不一定意味着对 REST 来说是个问题的分布式类型的事务在您的环境中会很重要。

      【讨论】:

        【解决方案3】:

        致昨天的quoteRoy Fielding

        我认为“剩余交易”是 矛盾修饰法。

        【讨论】:

          【解决方案4】:

          看看RETRO

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-10-18
            • 1970-01-01
            • 2014-12-10
            • 2010-12-16
            • 1970-01-01
            • 1970-01-01
            • 2014-10-05
            相关资源
            最近更新 更多