BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Java EE から .NET へのトランザクションブリッジ

Java EE から .NET へのトランザクションブリッジ

原文(投稿日:2010/10/19)へのリンク

JNBridge の Bill Heinzman 氏が先日の JavaOne カンファレンスで,エンタープライズ Java と .NET アプリケーションを結ぶ,プラットフォーム間のトランザクションブリッジについて講演を行った。Java と .NET の2つの技術はプロトコルに多少の違いはあるものの,同じようなアーキテクチャとセマンティクスを採用したトランザクション管理ソリューションを実装している。それでも Java と .NET のトランザクション管理の相性はよいとは言えず,これら2つの技術にプラットフォーム間トランザクションを実装して使用することは難しい作業である。2フェーズコミット (2PC) プロトコルは本質的にブロックを伴うプロトコルであり,遅延や複雑性,障害率の増加のためスケール性に乏しいのだ。

Bill はまず,Java と .NET 技術双方のトランザクション管理 API について,その概要を説明した。Java のリソース管理インターフェイスである XAResource は,複数のデータソースに渡る分散トランザクションを管理する手段として,開始(start),終了(end),準備(prepare),廃棄(forget),回復(recover),コミット(commit) などのメソッドを持っている。一方 .NET のリソース管理インターフェース IEnlistmentNotification では,同じ目的のために準備(Prepare),未確定(InDoubt),コミット(Commit),ロールバック(Rollback)などのメソッドが用意されている。氏は Java の実装について,リソースマネージャがトランザクション ID と "ブランチ" ID からなる Xid トークンを使用して複数のヒューリスティックなブランチを処理しなければならないため ,.NET よりも "忙しい”" 実装だ,と評している。

氏は続けて,プラットフォーム間のトランザクションを提供する技術として WS-Atomic TransactionWS-Coordination などの標準を用いる方法と,共有メモリを使用して Java 仮想マシン(JVM) - CLR 間の直接ブリッジを実装す方法との相違点について説明した。

WS-Atomic Transaction と WS-Coordination は web サービスをベースとしているが,パフォーマンス面に不足がある。一方で,データベースのトランザクションには相互運用性があるが,それ以外のメッセージング (JMS と MSMQ) などのエンタープライズリソースにはない。相互運用性を使用したプラットフォーム間のトランザクションブリッジは,.NET と Java の両側においてアクティブなトランザクションを統合し,各トランザクションマネージャをそのサンドボックス内に収納する。プラットフォーム間でのトランザクションの統合は,ユーザに対してはほとんど透過的である上,どのベンダの JEE 実装とも動作可能である。Javaプログラムからは JNBridgePro を使用して,トランザクション対応のプロキシを使用する .NET アプリケーションを呼び出すことができる。JNBridgePro は .NET から Java,Java から .NET 双方向で,2フェーズコミットを使用した クロスプラットフォームトランザクション をサポートする製品だ。

Bill は分散トランザクション管理,高度なトランザクション処理,クラウドコンピューティング環境におけるトランザクションなどの将来に関する議論でセッションを結んだ。クラウドでのトランザクションは,クラウドが管理する抽象的なリソースとなるに違いない。さらにクラウドと従来の Web アプリケーションの間のトランザクションには,真の相互運用性と透過性の確保が期待されることだろう。

この記事に星をつける

おすすめ度
スタイル

BT