BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

创建从Java EE到.NET的事务桥梁

| 作者 Srini Penchikala 关注 34 他的粉丝 ,译者 侯伯薇 关注 0 他的粉丝 发布于 2010年11月7日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Bill Heinzman在最近的JavaOne大会上谈到如何在企业级Java和.NET应用程序之间创建跨平台的事务桥梁。Java和.NET数据都使用类似的结构和语义来实现事务管理的解决方案,只是在协议上稍有不同,但是二者中的事务管理无法与另一种技术中的相互协作。我们很难在这两种技术之间实现并使用跨平台的事务。两段提交(two-phase commit 2PC)协议本来就是一种阻塞型的协议,它的伸缩性不好,会导致延迟、复杂性和失败概率的提高。

Bill向我们概述了在Java和.NET技术中事务管理的API。 Java资源管理接口XAResource中包含了一些方法,像start、end、prepare、forget、recover、commit、rollback等,以跨越多个数据源来管理分布式的事务。 而.NET的资源管理接口IEnlistmentNotification则提供了Prepare、InDoubt、Commit 和Rollback等方法来进行分布式事务管理。他说,Java拥有“更繁忙”的实现,其中资源管理必须处理多个启发式的分支,这是使用包含事务ID和“分支”ID的Xid令牌完成的。

他还谈到使用标准——像WS原子事务WS协作——提供分布式事务的技术,以及如何使用共享内存、Java虚拟机到CLR(JVM-to-CLR)实现的方式直接进行连接。

WS原子事务和WS协作都是web服务的基础,但是它们的性能都很差。 数据库事务是可互操作的,但是与其它公司的资源——像消息传递(JMS和MSMQ)——就做不到了。使用互操作性跨平台的事务连接提供了.NET和Java端活动事务的整合,并且让事务管理器存在于它们各自的沙盒(sandbox)之中。跨平台的事务整合对于用户来说是透明的,并且能够与所有厂商的J2EE实现相协作。Java程序可以使用支持事务的代理来调用.NET应用程序,这个代理使用的是JNBridgePro产品,它支持.NET-to-Java和Java-to-.NET跨平台事务的两段提交。

Bill在演讲的最后做出结论,他讨论了分布式事务管理的未来、Xtreme事务处理以及云计算环境中的事务。云中的事务必须是由云管理的抽象资源,而云和传统web应用程序之间的事务必须是真正可互操作并且透明的。

 查看英文原文:Bridging Transactions from Java EE to .NET

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT