WS-Addressing(Web Services Addressing)は、Webサービスがアドレス指定情報をやりとりするための転送手段から独立した機構の仕様である。基本的に、Webサービスのエンドポイントへの参照をやりとりする構造と、特定のメッセージとアドレス指定情報を関連付けるメッセージアドレス指定情報群という2つの部分から構成される。
概要
HTTP/HTTPS上で転送されるSOAPメッセージは、正しいマシンに到達するためにHTTP/TCP/IPに依存しており、メッセージ外の情報を使うことで(すなわち、SoapAction HTTP ヘッダ)目的のマシンにメッセージが到達したことが分かるようになっている。このメッセージ外情報はHTTP特有のものである。したがって、HTTPに依存しないようにするには、そのメッセージ外情報をどうするかを考えなければならない。
WS-Addressing は、そのHTTP固有データをXMLメッセージ自体に埋め込む標準化された方法である。下位層のプロトコルに依存することなくディスパッチ情報を転送可能にするため、標準SOAPヘッダにディスパッチメタデータを格納する。下位層プロトコルはそのメタデータを解読できるディスパッチャーにそのメッセージを送ればよい。メッセージがディスパッチャーに到達した時点で、ネットワークレベルの転送処理は完了する。
WS-Addressing は、応答を送るべき相手を示すエンドポイント・リファレンス (EPR) を含むSOAPヘッダ (wsa:ReplyTo) を指定することで、(HTTPから見れば)非同期なやり取りを実現する。応答を返すサービスプロバイダは、wsa:ReplyTo エンドポイントへの分離したコネクション上でその応答メッセージを転送する。これにより、SOAP要求/応答の持続時間とHTTP要求/応答の持続時間は切り離され、任意の時間だけ持続するやり取りが可能になる。特別なURL "http://www.w3.org/2005/08/addressing/anonymous" を使い、サービスプロバイダが "protocol specific back-channel"(SOAP/HTTP の場合、HTTP応答メッセージ)を応答の送信に使うべきであることを示す。
エンドポイント・リファレンス
エンドポイント・リファレンス(Endpoint Reference、EPR)は、メッセージをWebサービスにアドレス指定する際に使える情報をカプセル化したXML構造である。これには、メッセージの送信先アドレス、メッセージの転送経路指定に必要な任意の追加パラメータ(リファレンス・パラメータ)、オプションのサービスに関するメタデータ(WSDLやWS-Policyなど)が含まれる。
メッセージアドレス指定情報
メッセージアドレス指定属性は、Webサービスにメッセージを伝達することに関連する以下のようなアドレス指定情報をやり取りする。
- メッセージ送付先 URI
- ソース・エンドポイント - このメッセージをディスパッチしたサービスのエンドポイント (EPR)
- リプライ・エンドポイント - 応答メッセージをディスパッチすべきエンドポイント (EPR)
- フォールト・エンドポイント - フォールトメッセージをディスパッチすべきエンドポイント (EPR)
- アクション - メッセージの意味を示す(メッセージの経路指定の補助となる)アクション値 URI
- ユニークなメッセージID URI
- 前のメッセージとの関係(2つのURI)
歴史
WS-Addressing は当初、マイクロソフト、IBM、BEA、サン・マイクロシステムズ、SAP が開発したもので、その後W3Cでの標準化のために提出された。W3C WS-Addressing Working Group は、その標準化の過程で改良と拡張を行った。
WS-Addressing は現在以下の3部構成になっている。
メタデータ仕様。中核仕様で定義されている抽象属性のWSDLを使った表現法、WSDLメタデータをエンドポイント・リファレンスに含める方法、WebサービスがWS-AddressingをサポートしていることをWS-Policyを使って示す方法。
Web Services Policy Attachment for Endpoint Reference (WS-PAEPR) では、エンドポイント・リファレンスにWS-Policyを含める機構と意味を解説している。WS-PAPER は W3C Member Submission (W3C会員が提出した技術文書)である。
外部リンク