Web Services Addressing メッセージ交換パターン

World Wide Web Consortium (W3C) Web Services Addressing (WS-Addressing) 仕様は、WSDL 1.0 で定義されているメッセージ交換パターンに対して WS-Addressing コア・プロパティーを明示的に定義しています。 このトピックではこれらの MEP が要約されており、各パターンに対する必須 WS-Addressing プロパティーを説明しています。

片方向 MEP

これは、入力のみ操作として WSDL 1.0 で定義されている、直接的な片方向メッセージです。 この操作の WSDL フラグメントの形式は次のとおりです。
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
</operation>
次の WS-Addressing メッセージ・アドレッシング・プロパティー (MAP) は、クライアント・アプリケーション・サーバーのランタイムにより片方向 WS-Addressing 入力メッセージのメッセージ・ヘッダーに自動的に追加され、WS-Addressing 仕様との整合性を保証します。
ヒント: これらの値は、IBM 所有の WS-Addressing システム・プログラミング・インターフェース (SPI) でオーバーライドできます。
表 1. クライアントによって片方向 WS-Addressing 入力メッセージのメッセージ・ヘッダーに 追加される WS-Addressing メッセージ・アドレッシング・プロパティー. 次の表には、各種 WS-Addressing MAP の名前がリストされ、それぞれの説明が示されます。
W3C XML の表記規則を使用した、WS-Addressing MAP の抽象名 片方向の入力メッセージの記述。
[action] 使用されている WS-Addressing 仕様のバージョンに従って生成された WS-Addressing アクション。
[reply endpoint] この入力メッセージに対して無応答が予想されることを示す、WS-Addressing 応答エンドポイント。 この MAP の値は、使用している WS-Addressing 仕様のバージョンにより異なります。
[message id] 一意的に生成されたメッセージ ID。これは仕様で指定された必須項目ではありませんが、WebSphere® Application Server ランタイムはこの値を自動的に設定します。

このメッセージ交換に対する WSDL 操作は応答を指定するものではありませんが、関連メッセージを他のメッセージ交換の一部として送信することができます。 特に、アプリケーションでは WS-Addressing の応答エンドポイントまたはフォールト・エンドポイント MAP を使用して、関連メッセージの送信先を片方向メッセージのターゲットに示すことができます。 応答エンドポイントまたはフォールト・エンドポイントを伝搬するには、IBM 専有の Web Services Addressing SPI を使用したメッセージ・アドレッシング・プロパティーの指定と獲得の説明にあるように、該当するプロパティーを JAX-WS BindingProvider オブジェクトの要求コンテキスト、あるいは JAX-RPC スタブまたは呼び出しオブジェクトに関連付けて、デフォルトをオーバーライドします。

双方向要求/応答

これは、WSDL 1.1 で定義されている要求/応答 MEP です。操作の応答パートは出力メッセージとして定義されることも、障害メッセージとして定義されることもあり、また、その両方として定義されることもあります。 以下の WSDL から抽出したコードは、このような操作のさまざまな定義書式を示しています。
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <output message="tns:myOutputMessage"/>
  <fault="tns:myFaultMessage"/>
</operation>
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <output message="tns:myOutputMessage"/>
</operation>
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <fault="tns:myFaultMessage"/>
</operation>
アプリケーション・サーバーのクライアント・ランタイムによって、発信要求メッセージの SOAP ヘッダーに該当する WS-Addressing メッセージ情報ヘッダーが確実に含まれます。 呼び出し側アプリケーションは、WS-Addressing ヘッダーを設定する必要はありません。応答が要求されるため、応答エンドポイントまたはフォールト・エンドポイントを要求メッセージで指定する必要があります。
ヒント: 2005/08 仕様では、デフォルトで匿名 URI を含むエンドポイント参照が設定されているため、未指定の応答エンドポイントは有効です。
次の表では、WS-Addressing プロトコルを使用する Web サービス要求に対して、製品がデフォルトで設定する MAP をまとめています。IBM 所有の WS-Addressing SPI を使用して、これらの MAP をオーバーライドしたり、別の MAP を指定することができます。
表 2. WS-Addressing プロトコルを使用する Web サービス要求に追加されるメッセージ・アドレッシング・プロパティー。. 次の表には、各種 WS-Addressing MAP の名前がリストされ、それぞれの説明が示されます。
W3C XML の表記規則を使用した、WS-Addressing MAP の抽象名 要求/応答操作の入力メッセージの記述。
[action] 使用されている WS-Addressing 仕様のバージョンに従って生成された WS-Addressing アクション。
[message id] 一意的に生成されたメッセージ ID。
次の表では、WS-Addressing 応答または障害メッセージに対して製品がデフォルトで設定する MAP をまとめています。
表 3. WS-Addressing 応答または障害メッセージに追加されるメッセージ・アドレッシング・プロパティー。. 次の表には、各種 WS-Addressing MAP の名前がリストされ、それぞれの説明が示されます。
W3C XML の表記規則を使用した、WS-Addressing MAP の抽象名 要求/応答操作の入力メッセージの記述。
[action] 使用されている WS-Addressing 仕様のバージョンに従って生成された WS-Addressing アクション。
[relationship] 要求メッセージで渡されるメッセージ ID への応答関係を含む、関係セット。
[message id] 一意的に生成されたメッセージ ID。これは仕様で指定された必須項目ではありませんが、アプリケーション・サーバーのランタイムによってこのプロパティーが自動的に設定されます。

同期要求/応答

デフォルトでは、応答エンドポイントまたはフォールト・エンドポイントを設定するために IBM 専有 WS-Addressing SPI を使用しない場合、双方向メッセージの応答パートは、使用している基本プロトコルに従って戻されます。 特に HTTP 要求の場合、応答は HTTP 応答で同時に戻されます。
クライアントはメッセージを Web サービスに送信します。SOAP ヘッダーにはエレメント <wsa:To>http://example.com/fabrokam/acct</wsa:To> が含まれます。Web サービスは同期応答を戻します。

JAX-WS 同期呼び出しの場合、応答エンドポイントまたはフォールト・エンドポイントを設定すると、設定するエンドポイント参照に匿名 URI を使用する必要があります。 エンドポイント参照が匿名 URI を使用しない場合は、javax.xml.ws.WebServiceException 例外がスローされます。 エンドポイント参照が匿名 URI を使用した場合でも、エンドポイント参照内の参照パラメーターを使用して [reply endpoint] または [fault endpoint] をターゲットにすることができます。

JAX-WS アプリケーションの場合、WS-Addressing ポリシー・タイプを適用して構成することにより、同期メッセージの交換パターンを指定できます。 この交換パターンは、特に以下のシナリオで有効です。
  • WS-Security を有効にしないで、またはアセンブリー・ツールを使用しないで、SOAP メッセージの ReplyTo エレメントと FaultTo エレメントに署名するよう指定します。 この状態では、JAX-WS エンドポイントを使用してメッセージをサード・パーティーに送信することが可能であるため、サービス妨害攻撃の一因となる可能性があります。 この攻撃を防ぐには、同期メッセージ交換パターンを指定し、WS-Policy を有効にして、クライアントがこの要件を認識するようにします。
  • JAX-WS クライアントが NAT デバイスを介して通信を行っています。SOAP メッセージの ReplyTo エレメントまたは FaultTo エレメント内の URI を、そのようなデバイスを介して経路指定することはできません。 この状態では、クライアントは WS-Addressing 仕様で定義された匿名 URI、および同期メッセージ交換パターンを使用する必要があります。 サーバーが WS-Policy を使用して ReplyTo エレメントの非匿名 URI を要求しても、クライアントがこれらの要件に準拠するようにするには、クライアントに同期メッセージ交換パターンを指定します。
WS-Policy を有効にすることで、サーバーまたはクライアントに同期メッセージングの要件を認識させるようにすることができます。

非同期要求/応答

JAX-RPC 1.0 プログラミング・モデルでは、双方向要求/応答操作について非同期応答または障害を許可していません。

WebSphere Application Server 上でホストされているエンドポイントに送信された要求への応答や、この要求で発生した障害は、WS-Addressing 仕様に従って応答エンドポイントまたはフォールト・エンドポイントをターゲットにします。 要求側クライアントとの接続は、HTTP 202 応答によってクローズされます。
クライアントはメッセージを Web サービスに送信します。SOAP ヘッダーにはエレメント <wsa:ReplyTo> が含まれ、それ自体にエレメント<wsa:address>http://example.com/fabrokam/acct/replyEP</wsa:address> が含まれます。
Web サービスは応答を応答エンドポイントに送信します。応答メッセージの SOAP ヘッダーにはエレメント <wsa:To>http://example.com/fabrokam/acct</wsa:To> が含まれます。
JAX-WS 非同期呼び出しの場合、応答エンドポイントは自動的に生成され、JAX-WS の実装で使用されます。 応答エンドポイントまたはフォールト・エンドポイントを設定しようとすると、javax.xml.ws.WebServiceException 例外がスローされます。
[Windows]注: Windows オペレーティング・システムでは、クライアントが送信するローカル・ホスト名が、ターゲット・サービスによって解決可能である必要があります。解決不可の場合、応答はクライアント・アプリケーションに到達しません。 あるいは、クライアントのアドレスを IP フォーマットで送信するようにクライアントを構成することもできますが、この方法を使用すると DHCP の効果がなくなります。 詳しくは、JAX-WS Web サービスの非同期呼び出しのトピックを参照してください。
JAX-WS アプリケーションの場合、いくつかの異なる方法で非同期メッセージ交換パターンを指定できます。 この交換パターンは、特に JAX-WS エンドポイントの呼び出しに非常に長い時間がかかる場合に有効です。クライアント・リソースとサーバー・リソースは、接続を開いたままにするために使用されますが、サービスからの応答に長い時間がかかる場合は実用的な使用方法とは言えません。
メッセージ交換パターンの構成は、WSDL 文書の WS-Policy 関連付けによって表されます。 以下のいずれかの条件が該当する場合、クライアントはこのメッセージ交換パターンの構成情報にアクセスできるようになります。
  • WS-Policy 共有が使用可能になっている。
  • WS-Policy 共有が無効だが、以下の条件に該当する。
    • パッケージされた WSDL (HTTP GET 要求で取得) に、関連するポリシー情報が含まれている。
    • または、コード内に @Addressing アノテーションが使用されている。 この場合、サーバー・ランタイムが WS-Policy 関連付けを含んだ WSDL 文書を生成します。
詳しくは、トピック『Web サービス・プロバイダーにおけるポリシー構成の共有』を参照してください。

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsa_meps
ファイル名:cwbs_wsa_meps.html