2.2.6 Webサービス(SOAP通信)の場合のSOAPメッセージの構成
Webサービス(SOAP通信)の場合,要求電文および応答電文としてやり取りしているSOAPメッセージは,ヘッダ(SOAPヘッダ)とボディ(SOAPボディ)で構成されています。SOAPヘッダにはメッセージの付加的な情報(識別情報など)が含まれ,SOAPボディにはメッセージ本体が含まれています。
SOAPメッセージの構成例を次の図に示します。
(1) SOAPメッセージとビジネスプロセスの関係
SOAPメッセージの場合,要求電文のヘッダ情報とボディ情報は,業務処理で利用できるようにビジネスプロセスの変数に割り当てられます。また,応答電文として返されるときは,変数から再びヘッダ情報とボディ情報を生成します。
SOAPメッセージとビジネスプロセスの関係を次の図に示します。
図中の1.〜5.について説明します。
- 説明
-
-
サービスリクエスタから受付に対して,業務処理に必要なパラメタを設定した要求電文(SOAPメッセージ)が渡されます。
-
受付からビジネスプロセスが起動されます。このとき,受付が受信したSOAPメッセージに設定されているヘッダ情報およびボディ情報を,業務処理で利用できるようにビジネスプロセスの変数に割り当てます。
-
ビジネスプロセスが業務処理を実行します。サービスを呼び出すときは,変数からサービスの実行に必要なパラメタを設定したSOAPメッセージを生成し,サービスアダプタ経由でサービス部品に送信します。
-
サービス部品は処理が終わると,その結果を応答電文(SOAPメッセージ)として返します。ビジネスプロセスはサービスアダプタ経由でこのSOAPメッセージを受け取り,ヘッダやボディの情報を再び変数に割り当てます。
-
ビジネスプロセスの処理が終わると,変数からSOAPメッセージを生成し,受付を経由してサービスリクエスタに結果を返します。
-
(2) ユーザ電文トレースに出力されるSOAPメッセージの情報
SOAPメッセージの場合,ユーザ電文トレースデータにはユーザ電文に含まれる次の情報が出力されます。
-
soap:Header要素を含む複数の子要素
-
soap:Body要素の1つの子要素
なお,soap:Header要素が存在しない場合は,soap:Body要素の子要素だけが情報として出力されます。
また,次の場合は動作が保証されませんので,要求電文を作成するときに注意が必要です。
-
SOAPHeader配下の子要素に,ユーザ定義受付に指定された名前空間と要素名を持つ子要素が入れ子になっている場合
-
SOAPBody配下の子要素に,オペレーション名が同一の子要素が複数設定された場合
soap:Header要素およびsoap:Body要素については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「2.6.1 Webサービスを利用したサービス部品の適用範囲」を参照してください。