SOA中的事务

是否有可能在来自.NET或Java等不同平台的不同SOA服务之间传播事务?

我知道事务可以在来自.NET的WCF服务之间流入和流出。 但我不熟悉Java平台。

现在我在一个项目中工作,该项目传达来自不同平台的服务。

如何保持业务的一致性?

如果您的客户端和服务器SOA基础结构(以及通过扩展,在各种服务实现中访问的基础后端系统)支持WS-Transaction,那么这将允许事务传播。

但是,我在一个庞大的金融服务SOA中间件环境中工作,我们选择自己管理事务:使用手动补偿。 虽然更复杂,不依赖于任何分布式事务协调器确实为我们提供了灵活性和性能提升。

服务之间的事务对您的SOA不利,因为它们在服务之间引入了很多耦合。 服务边界是信任边界。 丹尼尔指出,你最好使用Sagas和补偿

尝试这种模式: http : //www.atomikos.com/Publications/TryCancelConfirm

它与传奇和补偿方法有关,并结合了所有世界的最佳。

最好