InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

JNBridgeでJavaと.NETコード間の分散トランザクションを実現する

作者 Jonathan Allen , 翻訳者 大田 緑 - (株)チェンジビジョン 投稿日 2009年12月15日

セクション
エンタープライズ・アーキテクチャ,
設計/アーキテクチャ,
デベロップメント
トピック
Java ,
トランザクション処理 ,
.NET ,
言語 ,
プログラミング ,
データベース ,
インターロップ ,
JNBridge

原文(投稿日:2009/12/08)へのリンク

JNBridgeは、Javaと.NETのコードがクロスコンパイラに頼ることなくオブジェクトを共有できる技術だ。Javaコードは完全にJVMで動き、.NETはCLRで動く。このスキーマでは、別々のマシン、同じマシンの別々のプロセス、または、同じプロセスでさえも実行できる。開発者の視点では、他の仮想マシンで動くオブジェクトは、単なる代理のリモートオブジェクトだ。JNBridgeは長い歴史を持ち、最初のバージョンが出たのは、2002年6月のことだ。一番大きな顧客は、2007年に初めて.NETのサポートを発表したAdobeのColdFusionだ。

JNBridgeの新バージョンによって、仮想マシン間で簡単にトランザクションを分散できるようになった。ここで言うキーワードは簡単だ。開発者たちは、二相コミットで必要な作業をいつも手作業で行うことができる。JNBridge 5.0を使えば、.NET側のSystem.Transaction やJava側のjavax.transactionに組み込むために必要な配管工事は処理される。いくつかの構成とJavaTM.enable や DotNetTM.enableの呼び出しは別にして、すべてただのネイティブなトランザクションのように見えて、実際にそのようにふるまう。

JNBridgeを使うために、開発者たちはプロキシ生成ツールを知る必要があるだろう。このツールは、スタンドアロン形式か、EclipseやVisual Studioのプラグインとして利用できる。Eclipse版は.NET/WinFormsで書かれたもので、実際にJNBridgeの力を見せつけている。

GUIホスティングは、Java AWTとSwingコンポーネントの両方で動く。これらはWinFormsとWPFアプリケーションの中に組み込まれている。これは、Javaの分子表示機などの非常に特化したコントロールを構築し、そのような技術を移植で苦労することなく.NET技術者に提供したいと考える企業によって数多く使われている。

現在、MonoやSilverlightを正式にサポートする計画はない。JNBridgeに必要な基本的技術はMonoやSilverlight 4で利用できるが、問題が起きた場合、開発者たちは自分たちで解決しなければならない。反対に、サポートされたプラットフォームでは広範囲に渡るドキュメントが準備されている。