Webサービス間の通信において、メッセージをどこに送り、どこから返信を受け取るかを定義することは極めて重要です。WS-Addressing(Web Services Addressing)は、トランスポート層(通信手段)に依存せず、Webサービス間でアドレス情報をやり取りするための標準的なメカニズムを提供します。
通常、通信の宛先はネットワークレベルのプロトコルで制御されますが、WS-Addressingではメッセージ自体にルーティング情報を組み込みます。これにより、柔軟で高度なメッセージ制御が可能になります。
Key Facts
- トランスポート中立性:特定の通信プロトコルに依存せず、SOAPヘッダー内でルーティング情報を管理する。
- 非同期通信の実現:
wsa:ReplyToヘッダーにより、リクエスト時とは別の接続で応答を受け取ることが可能。 - EPRの活用:エンドポイント参照(EPR)を用いて、宛先アドレスやメタデータを構造的に伝達する。
- 国際標準:W3Cによる勧告を経て、現在はISO/IECの国際標準として承認されている。
WS-Addressingの基本概念と動作
WS-Addressingの最大の特徴は、ルーティングデータをSOAPヘッダーに直接含める点にあります。従来のネットワーク層による配送とは異なり、メッセージ自体が「どこへ配送されるべきか」というメタデータを保持しています。
ネットワーク層の役割は、単にメッセージをWS-Addressingのメタデータを解釈できる「ディスパッチャー(配送担当)」に届けることだけに限定されます。ディスパッチャーがURIを確認し、適切な宛先へ振り分けることで配送が完了します。
また、この仕様は非同期インタラクションを強力にサポートします。具体的には、応答先の情報を記述するwsa:ReplyToヘッダーにエンドポイント参照(EPR)を含めることで、サービス提供者はリクエストとは別の接続経路で応答を返せます。これにより、HTTPなどのプロトコルが持つ接続時間の制約から解放され、長時間にわたる処理を伴う通信が可能になります。
エンドポイント参照(EPR)とメッセージプロパティ
エンドポイント参照(EPR)とは
エンドポイント参照(Endpoint Reference: EPR)は、Webサービスへメッセージを送信するために必要な情報をまとめたXML構造です。ここには単なる宛先アドレスだけでなく、ルーティングに必要な追加パラメータ(参照パラメータ)や、WSDLやWS-Policyといったサービスの仕様に関するオプションのメタデータが含まれます。
メッセージアドレスプロパティの詳細
メッセージの配送を制御するために、以下のプロパティが利用されます。
- 宛先URI:メッセージが届けられるべき最終的な目的地。
- 送信元エンドポイント:メッセージを送信したサービスのEPR。
- 応答エンドポイント:返信メッセージを送信すべきEPR。
- フォルトエンドポイント:エラー発生時に通知を送るべきEPR。
- アクション:メッセージの意図(セマンティクス)を示すURI。ルーティングの判断材料となります。
- メッセージID:各メッセージを識別するための固有のURI。
- 関連性:過去のメッセージとの関係を示すURIのペア。
WS-Addressingの歴史と標準化の歩み
本仕様は、Microsoft、IBM、BEA、Sun Microsystems、SAPといった主要ベンダーによって共同開発され、2004年8月にW3Cへ提出されました。開発過程では、Sun MicrosystemsやOracleなどが推進していた「WS-MessageDelivery」という競合仕様もありましたが、W3Cのワーキンググループによる洗練を経て、2006年5月にW3C勧告として公開されました。
WS-Addressing 1.0は、以下の3つの構成要素から成り立っています。
- コア仕様:EPRとメッセージアドレスプロパティの基本定義。
- SOAPバインディング:これらのプロパティをSOAPに適用するための定義。
- メタデータ仕様:WSDLを用いたプロパティの記述方法や、WS-Policyによるサポート表明の定義。
さらに、EPRにWS-Policy式を含めるためのメカニズムである「WS-PAEPR」もW3Cメンバー提出物として定義されています。これらの仕様は2011年1月にISO/IEC JTC 1に提出され、同年9月に国際標準として承認されました。
仕様まとめ
| 構成要素 | 役割・内容 | 主な目的 |
|---|---|---|
| EPR (Endpoint Reference) | 宛先、パラメータ、メタデータのXML構造 | サービスの所在と利用方法の伝達 |
| SOAPヘッダー | wsa:ReplyTo などのアドレスプロパティ | トランスポートに依存しないルーティング |
| WSDL / WS-Policy | サービスのインターフェースとポリシー定義 | メタデータの記述とサポート表明 |
Frequently Asked Questions
WS-Addressingを導入する最大のメリットは何ですか?
最大のメリットは、通信プロトコル(HTTPなど)の制約に縛られず、メッセージレベルで柔軟なルーティングと非同期通信を実現できる点にあります。これにより、長時間かかる処理への対応や、複雑なメッセージ経路の制御が可能になります。
EPR(エンドポイント参照)にはどのような情報が含まれますか?
主にメッセージの送信先アドレスが含まれます。また、ルーティングに必要な参照パラメータや、サービスの定義を記述したWSDL、ポリシーを定義したWS-Policyなどのメタデータを任意に含めることができます。
非同期通信はどのように実現されるのでしょうか?
リクエストメッセージのSOAPヘッダーにwsa:ReplyToプロパティを含めることで実現します。サーバー側はこの指定されたエンドポイントへ別途接続して応答を返すため、元のHTTPリクエスト接続を維持し続ける必要がありません。
WS-Addressingは現在も標準として認められていますか?
はい。W3Cの勧告を経て、2011年にはISO/IECの国際標準として正式に承認されており、Webサービスの相互運用性を確保するための重要な仕様となっています。
References
- Weerawarana, S.; Curbera, F.; Leymann, F.; Storey, T.; Ferguson, D. F. (March 2005). Web Services Platform Architecture: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging and More. United States: Prentice–Hall. .
- Vinoski, Steve (30 June 2005). "WS-Addressing Metadata". IEEE Internet Computing. 9 (3). : 90–93. :10.1109/MIC.2005.69. 1941-0131.
- Hayward, J.; Phippen, A. (October 3, 2008). "Using WS-Addressing To Perform Asynchronous Web Service Calls". In Dowland, P. S.; Furnell, S. M. (eds.). Advances in Networks, Computing and Communications. Vol. 3. University of Plymouth. pp. 223–231. .
- Davis, Doug (6 April 2004). "The hidden impact of WS-Addressing on SOAP". IBM DeveloperWorks. . Archived from the original on 2 May 2004.
- Taylor, Ian J.; Harrison, Andrew B. (2009). "Web Services Protocols". From P2P and Grids to Services on the Web: Evolving Distributed Communities (2nd ed.). . pp. 269–290. :10.1007/978-1-84800-123-7_16. .
- Evers, Joris (10 August 2004). "Update: WS-Addressing specification submitted to W3C". . Retrieved 2 April 2026.
- Atkinson, M.; DeRoure, D.; Dunlop, A.; Fox, G.; Henderson, P.; Hey, T.; Paton, N.; Newhouse, S.; Parastatidis, S.; Trefethen, A.; Watson, P.; Webber, J. (7 February 2005). "Web Service Grids: an evolutionary approach". Concurrency and Computation: Practice and Experience. 17 (2–4). : 377–389. :10.1002/cpe.936.
- Baker, M.; Apon, A.; Ferner, C.; Brown, J. (30 April 2005). "Emerging grid standards" (PDF). . Vol. 38, no. 4. . pp. 43–50. :10.1109/MC.2005.124. 0018-9162.
- Tilkov, Stefan (May 11, 2006). "WS-Addressing Becomes a W3C Recommendation". InfoQ.
- "W3C Web Services Standards Approved as ISO/IEC International Standards" (Press release). . 6 September 2011.