現代の分散システムにおいて、Webサービス同士が効率的に通信を行うためには、単なるネットワーク接続以上の「宛先管理」が必要です。WS-Addressing(Web Services Addressing)は、トランスポート層に依存せず、メッセージ自体にルーティング情報を組み込むための標準仕様です。これにより、サービス間の通信における柔軟性と信頼性が大幅に向上します。
Key Facts
- トランスポート中立性: HTTPなどのネットワーク層に頼らず、SOAPヘッダー内で宛先情報を管理する。
- 非同期通信の実現:
wsa:ReplyToヘッダーにより、リクエストとは別の接続で応答を返せる。 - EPRの活用: エンドポイント参照(EPR)を用いて、宛先アドレスやメタデータを一括管理する。
- 国際標準: W3Cによる勧告を経て、現在はISO/IECの国際標準として承認されている。
WS-Addressingの基本概念と動作原理
通常、メッセージの配送はネットワークレベルのトランスポート(TCP/IPやHTTPなど)に依存しています。しかし、WS-Addressingでは、ルーティングに必要なメタデータをSOAPヘッダーの中に直接記述します。これにより、メッセージ自体が「どこへ行き、どこへ返すべきか」という情報を保持することになります。
ネットワーク層の役割は、単にメッセージをWS-Addressingのメタデータを解釈できる「ディスパッチャー(配送担当)」に届けることだけに限定されます。ディスパッチャーがURIを確認し、適切な宛先へ振り分けることで、配送が完了します。
特に強力なのが、非同期インタラクションのサポートです。wsa:ReplyToという共通ヘッダーに、応答先のエンドポイント参照(EPR)を記述することで、サービス提供者はリクエスト時の接続とは別の経路で回答を送信できます。これにより、処理に時間がかかる長時間実行のタスクであっても、HTTP接続のタイムアウトに縛られない柔軟な通信が可能になります。
エンドポイント参照(EPR)とメッセージプロパティ
エンドポイント参照(EPR)とは
EPR(Endpoint Reference)は、Webサービスへのメッセージ送信に必要な情報をカプセル化したXML構造です。単なるURLだけでなく、以下の要素が含まれます。
- 宛先アドレス: メッセージを送信すべき最終的な目的地。
- 参照パラメータ: 正確なルーティングに必要となる追加のパラメータ。
- メタデータ: WSDL(Web Services Description Language)やWS-Policyなど、サービスの仕様に関するオプション情報。
メッセージ配送を制御するプロパティ
WS-Addressingでは、個々のメッセージに以下のプロパティを付与して配送を制御します。
- 宛先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」というメンバー提出仕様も存在します。これらの仕様は2011年1月にISO/IEC JTC 1へ提出され、同年9月に国際標準として正式に承認されました。
| 構成要素 | 主な役割・内容 |
|---|---|
| Core Specification | EPRおよびメッセージプロパティの抽象的な定義 |
| SOAP Binding | コア仕様をSOAPヘッダーに実装するためのルール |
| Metadata Specification | WSDLやWS-Policyを用いたサービスの記述方法 |
| WS-PAEPR | EPRへのWS-Policy組み込みメカニズム |
Frequently Asked Questions
WS-Addressingを導入する最大のメリットは何ですか?
最大のメリットは、トランスポート層からルーティング情報を切り離せることです。これにより、HTTP以外のプロトコルへの移行が容易になり、またwsa:ReplyToを利用することで、効率的な非同期通信を実現できる点にあります。
EPR(エンドポイント参照)と通常のURLは何が違うのですか?
URLは単なるリソースの場所を示しますが、EPRはXML構造を持っており、宛先アドレスに加えてルーティング用のパラメータや、WSDLなどのサービス定義メタデータを同時に保持できるため、より高度な制御が可能です。
WS-Addressingは現在も利用されていますか?
はい。W3C勧告を経てISO/IECの国際標準となっており、特にエンタープライズ向けの堅牢なSOAPベースのWebサービスアーキテクチャにおいて、信頼性の高いメッセージ配送を実現するために利用されています。
非同期通信においてどのように動作するのですか?
クライアントがリクエストを送信する際、SOAPヘッダーに「応答はこのアドレスに送ってください」という情報(ReplyTo EPR)を添えます。サーバーは処理が完了した時点で、その指定されたアドレスへ別途接続して応答を返します。これにより、リクエスト時の接続を維持し続ける必要がなくなります。
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. :20.500.11820/f1ebcc24-b9d7-46ec-9e5a-ccf24cb8cb63.
- 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.