18.2. WS-Transaction

WS-Transaction (WS-T) は、トランザクションコーディネーションプロトコルのペア、WS-Atomic Transaction (WS-AT)WS-Business Activity (WS-BA)で構成されており、WS-Coordination (WS-C)で提供されているコーディネーションフレームワークを活用します。
WS-Transactionsは、システムの独自機能に変更を加えることなくお互いの間で信頼性を保ちつつ通信できるように、従来のトランザクション処理システムを統合するために開発されました。

18.2.1. WS-Transaction の基本

図18.3「WS-Coordination、WS-Transaction、WS-Business Activity」にあるように、WS-TransactionはWS-Coordination プロトコル上に階層化されています。
WS-Coordination、WS-Transaction、WS-Business Activity

図18.3 WS-Coordination、WS-Transaction、WS-Business Activity

WS-C は、WS-Transactionなど、特定のコーディネーションプロトコルに対しモジュラー形式で利用する一般的なフレームワークを提供しています。WS-Cはコンテキストを作成しアクティビティをこれらのコンテキストに登録できるようにコンテキスト管理のみを提供しています。WS-Transaction は、WS-C 提供のコンテキスト管理フレームワークを2つの方法で活用します。
  1. WS-Cコンテキストを拡張しトランザクションコンテキストを作成します。
  2. 追加サービス (Completion, Volatile2PC, Durable2PC, BusinessAgreementWithParticipantCompletion, and BusinessAgreementWithCoordinatorCompletion) と2つのプロトコルメッセージセット (WS-Transaction で対応している各トランザクションモデルに対して1つずつ) でアクティベーションおよび登録サービスを強化し、WS-C プロトコルインフラストラクチャ上に本格的なトランザクションコーディネータを構築しています。
  3. 従来のトランザクションプロトコルとは異なるWS-Transactionの重要な側面は、同期リクエスト/レスポンスモデルを仮定にされていないことです。一方向メッセージの順番を使い、クライアント/パーティシパント間の通信やトランザクションのコーディネーションやパーティシパントのプロトコルに適したコーディネーションサービスを実装します。クライアントとパーティシパントコンテナはXTSサービスエンドポイントをデプロイしコーディネータサービスからメッセージを受信する必要があるという意味であるため、これは重要です。
    この要件は例18.2「Registration ServiceWSDLインターフェース」のRegistration Service WSDL で宣言されているRegister および RegisterResponseメッセージ詳細にて見ることができます。Register メッセージには、クライアントあるいはWeb サービスコンテナのエンドポイントURLを含みます。WS-Transaction コーディネーションサービスがメッセージをクライアントあるいはWeb サービスに送信したい場合にこのURLを使います。同様にRegisterResponse メッセージにはURLが含まれており、このURLはクライアント/Web サービスが登録されているプロトコル固有のWS-Transaction コーディネーションサービスに対するエンドポイントを指定し、トランザクションコーディネータ宛てにメッセージを送ることができます。