18.2.2. WS-Transaction Architecture


WS-Transactionは、ビジネスロジックを実行する役割を果たすトランザクション対応のWeb サービスとトランザクションでパーティシパントとしての役割を果たすWebサービスを区別し、トランザクションコーディネータと通信しレスポンスを返します。図18.4「WS-Transaction グローバルビュー」にあるように、パーティシパントが基盤のWS-Transaction プロトコルに対応している間に、トランザクション対応のWeb サービスは、ビジネスレベルのプロトコルを使いアプリケーションクライアントを処理します。

図18.4 WS-Transaction グローバルビュー

トランザクション対応のWeb サービスは、ビジネスロジックあるいはトランザクションの範囲内で実行する必要のある作業をカプセル化します。トランザクションもコミットしない限り、アプリケーションによりこの作業を確定することはできません。そのため、アプリケーションによる制御は最終的に削除され、トランザクションが制御するようになっています。
パーティシパントは、トランザクションコーディネータの指示のもと、トランザクション対応のWeb サービスが実行した作業結果を制御するエンティティです。図18.4「WS-Transaction グローバルビュー」では、Web サービスはそれぞれ関連するパーティシパント1つと併せて示されており、このパーティシパントはWeb サービスの代わりにトランザクションプロトコルのメッセージを管理します。しかし、図18.5「WS-Transaction Web Services およびパーティシパント」ではWeb サービス1つのクローズアップビュー、および関連づいたパーティシパントと併せてクライアントアプリケーションを表示します。

図18.5 WS-Transaction Web Services およびパーティシパント

トランザクション対応のWeb サービスはJDBCドライバ経由でアクセスされるバックエンドのデータベースを採用しており、処理を行うために、データベースにSQLステートメントを送信します。しかし、これらのステートメントは、Web サービスのトランザクションがコミットする場合にのみコミットすべきです。これを機能させるには、Webサービスはトランザクションのブリッジングを採用する必要があります。トランザクションブリッジングは、パーティシパントをこのWeb サービストランザクションのコーディネータに登録し、一致するXAトランザクションを作成し、このトランザクションにてドライバを呼出し一時的な変更をデータベースに加えることができます。Web サービスは、特定のWeb サービストランザクションに紐付いたサービスリクエストが該当するXAトランザクション内で実行されるようにし、特定のトランザクションに共通の変更を分類し、別のトランザクションに属する変更を切り離します。パーティシパントは、同じ操作を基盤のXAトランザクションコーディネータに転送することで、Web サービストランザクションコーディネータから関連づいたprepare、commit、rollbackリクエストに対応します。こうすることで、データベースにおけるローカルの結果がWeb サービストランザクション全体のグローバルな結果と一致するようにしています。
クライアントは比較的単純になっています。APIを使い、クライアントアプリケーションはパーティシパントをトランザクションに登録し、このパーティシパントを使いトランザクション終了の制御を行います。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat