JNBridge 提供了跨越 Java 与.NET 代码的分布式事务支持

  • Jonathan Allen
  • 张龙

2009 年 12 月 28 日

话题:Java.NET语言 & 开发架构

凭借JNBridge技术,Java 和.NET 代码无需交叉编译器就可以实现对象共享。所有 Java 代码运行在 JVM 上,而.NET 代码则运行在 CLR 上。在该方案下,JVM 和 CLR 可以运行在不同的机器上,也可以运行在一台机器的不同进程上,甚至还能运行在相同的进程上。从开发者的角度来看,运行在其他虚拟机上的对象仅仅是代理的远程对象而已。JNBridge 有着悠久的历史,其首个版本发布于 2002 年 6 月。Adobe 的ColdFusion是其最知名的客户,我们曾于 2007 年首度报道其对.NET 的支持。

最新版的 JNBridge 可以轻松实现跨越虚拟机的分布式事务。其过程用两个字来说就是——简单。虽然开发者总是可以手工实现两阶段提交所需的工作,但借助于 JNBridge 5.0,这一切都变得无比简单了,它能够帮助我们看管.NET 一边的 System.Transaction 以及 Java 一边的 javax.transaction。除了一些配置和对 JavaTM.enable 或是 DotNetTM.enable 的调用外,一切都和本地事务毫无二致。

要想使用 JNBridge,开发者需要熟悉代理生成工具。该工具既可以独立运行,也可以作为 Eclipse 和 Visual Studio 的插件运行。其 Eclipse 版本证明了 JNBridge 的强大所在,因为它实际上是用.NET/WinForms 开发的。

GUI 可以两种方式运行,嵌入在 WinForms 和 WPF 中的 Java AWT 和 Swing 组件。很多公司都采取了这种方式:用 Java 构建了非常专业的控件(比如分子观测仪)并希望将其技术移植给.NET 开发者而不想进行大量的迁移工作。

目前,JNBridge 官方还没有支持 Mono 和 Silverlight 的计划。虽然 JNBridge 的底层技术同样适用于 Mono 和 Silverlight 4,但如果出错开发者只能依靠自己的力量去解决。与此形成鲜明对比的是,受支持的平台则具有丰富的文档。

查看英文原文:JNBridge Brings Distributed Transactions Across Java and .NET Code

Java.NET语言 & 开发架构