Web Services Addressing 概要
Web Services Addressing (WS-Addressing) は、Web サービスにアドレッシングし、メッセージにアドレッシング情報を提供するための標準的な方法を定義することにより、Web サービス間のインターオペラビリティーを支援する World Wide Web Consortium (W3C) 仕様です。 WS-Addressing 仕様は、2 つの基本的な概念、すなわちエンドポイント参照とメッセージ・アドレッシング・プロパティーを導入しています。 詳しくは、WS-Addressing 仕様を参照してください。
エンドポイント参照
エンドポイント参照は、特定のエンドポイントについての情報をカプセル化するための標準的なメカニズムを提供しています。
エンドポイント参照は他の関係者に伝搬することができ、その参照が表す Web サービスのエンドポイントをターゲットとするために使用することができます。
次の表は、エンドポイント参照の情報モデルをまとめたものです。
前述の表では次の接頭部および対応する名前空間を使用します。
W3C XML 情報セットの表記規則を使用した、抽象プロパティー名 | プロパティー・タイプ | 多様 | 説明 |
---|---|---|---|
[address] | xs:anyURI | 1..1 | エンドポイントのアドレスを指定する絶対 URI。 |
[reference parameters]* | xs:any | 0..unbounded | エンドポイントと相互作用するために必要な、名前空間の修飾エレメント情報項目。 |
[metadata] | xs:any | 0..unbounded | エンドポイントの振る舞い、ポリシー、および機能の説明。 |
接頭部 | 名前空間 |
---|---|
xs | http://www.w3.org/2001/XMLSchema |
次の XML の断片は、エンドポイント参照を示しています。
このエレメントは URI http://example.com/fabrikam/acct のエンドポイントを参照し、エンドポイント参照が参照するインターフェースを指定するメタデータを持ち、http://example.com/fabrikam 名前空間のアプリケーション定義の参照パラメーターを持っています。
<wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
xmlns:fabrikam="http://example.com/fabrikam"
xmlns:wsdli="http://www.w3.org/2005/08/wsdl-instance"
wsdli:wsdlLocation="http://example.com/fabrikam
http://example.com/fabrikam/fabrikam.wsdl">
<wsa:Address>http://example.com/fabrikam/acct</wsa:Address>
<wsa:Metadata>
<wsam:InterfaceName>fabrikam:Inventory</wsam:InterfaceName>
</wsa:Metadata>
<wsa:ReferenceParameters>
<fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
<fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
</wsa:ReferenceParameters>
</wsa:EndpointReference>
メッセージ・アドレッシング・プロパティー
メッセージ・アドレッシング・プロパティー (MAP) は、SOAP ヘッダーでエレメントとして表すことができる、厳密に定義された WS-Addressing プロパティーのセットで、メッセージへの応答が送信されるエンドポイントや、メッセージが持っている他のメッセージとの関係についての情報などの各種情報を伝達するための標準的な方法を提供します。
WS-Addressing 仕様で定義される MAP を、次の表にまとめます。
前述の表の抽象名は、この資料の中で MAP を指します。
W3C XML の表記規則を使用した、WS-Addressing MAP の抽象名 | MAP コンテンツ・タイプ | 多様 | 説明 |
---|---|---|---|
[action] | xs:anyURI | 1..1 | メッセージのセマンティクスを一意的に識別する絶対 URI。 このプロパティーは、メッセージがアドレッシングされるエンドポイント参照の address プロパティーに対応します。 この値は必須です。 |
[destination] | xs:anyURI | 1..1 | このメッセージが対象としている受信側のアドレスを指定する絶対 URI。 この値はオプションです。この値が指定されていない場合は、仕様により定義される匿名 URI がデフォルトとなります。これは、アドレスが基本プロトコルによって定義されることを示します。 |
[reference parameters]* | xs:any | 0..unbounded | メッセージがアドレッシングされるエンドポイント参照の reference parameters プロパティーに対応します。 この値はオプションです。 |
[source endpoint] | EndpointReference | 0..1 | メッセージが発信されるエンドポイントへの参照。 この値はオプションです。 |
[reply endpoint] | EndpointReference | 0..1 | このメッセージに対する応答の対象となる受信側のエンドポイント参照。 この値はオプションです。 |
[fault endpoint] | EndpointReference | 0..1 | このメッセージに関連する障害の対象となる受信側のエンドポイント参照。 この値はオプションです。 |
[relationship]* | xs:anyURI plus optional attribute of type xs:anyURI | 0..unbounded | このメッセージが他のメッセージと関係する方法を示すペアの値。 このエレメントの内容は、関連メッセージのメッセージ ID を伝えます。オプション属性は、関係のタイプを伝達します。 この値はオプションです。 |
[message id] | xs:anyURI | メッセージを一意的に識別する絶対 URI。 この値はオプションです。 |
次の SOAP メッセージの例には WS-Addressing MAP が含まれています。
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:fabrikam="http://example.com/fabrikam">
<S:Header>
...
<wsa:To>http://example.com/fabrikam/acct</wsa:To>
<wsa:ReplyTo>
<wsa:Address> http://example.com/fabrikam/acct</wsa:address>
</wsa:ReplyTo>
<wsa:Action>...</wsa:Action>
<fabrikam:CustomerKey wsa:IsReferenceParameter='true'>123456789</fabrikam:CustomerKey>
<fabrikam:ShoppingCart wsa:IsReferenceParameter='true'>ABCDEFG</fabrikam:ShoppingCart>
...
</S:Header>
<S:Body>
...
</S:Body>
</S:Envelope>