19.3. トランザクショナルなWeb Serviceを作成

XTS を使ったWeb サービスの実装は、トランザクション管理とビジネスロジックの2種類から形成されています。
トランザクション管理のアスペクトは、XTS のParticipant API (パーティシパントAPI) を使い、分かりやすく、かつ簡単に実装できるモデルに整理されますが、これは、Web サービスとトランザクションコーディネータ間の交渉に対し構造モデルを提供します。これにより、Web サービスがビジネスロジックのニーズに従い、自身のローカルトランザクションデータを管理できるだけでなく、そのアクティビティが、トランザクションに関連するクライアントとその他のサービスに対応しているようにします。内部では、このAPIがSOAPを使い、様々なWS-C、WS-AT、WS-BAサービスで操作を呼出し、トランザクションが完了するよう駆動します。

19.3.1. パーティシパント

participant (パーティシパント)は、Web サービスの代わりにトランザクションマネージャにより動かされるソフトウェアエンティティです。Web サービスが特定のトランザクションに参加したい場合、パーティシパントが次に行うコーディネータとの交渉にて当サービスに対するプロキシとして機能するように登録しなければなりません。パーティシパントは、登録したトランザクションタイプに適したAPI、および登録時のパーティシパントモデルを実装します。例えば、WS-Atomic Transaction の一部であるDurable2PC パーティシパントは、Durable2PCParticipant インターフェースを実装します。パーティシパントを利用することで、Web サービスのビジネスロジックやプライベートなトランザクションデータ管理の残りとは分けたまま、Web サービスのトランザクション制御管理面をパーティシパント実装に組み込むことができます。
パーティシパントの作成は、Web サービスのバックエンド処理機能のステート、つまり通常企業のITインフラストラクチャに関連付けられたアスペクトを最終的に反映するため、簡単ではありません。実装は、参加するプロトコルに従い、com.arjuna.wst11.Durable2PCParticipantcom.arjuna.wst11.Volatile2PCParticipantcom.arjuna.wst11.BusinessAgreementWithParticipantCompletionParticipant, あるいはcom.arjuna.wst11.BusinessAgreementWithCoordinatorCompletionParticipantインターフェースのいずれかを利用する必要があります。