- From: Asir Vedamuthu via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 26 Sep 2006 07:30:24 +0000
- To: public-ws-policy-eds@w3.org
Update of /sources/public/2006/ws/policy
In directory hutz:/tmp/cvs-serv6722
Modified Files:
ws-policy-attachment.html ws-policy-attachment.xml
Added Files:
ws-policyattachment-4-wsdl20.jpg
Log Message:
Created 5. WS-Policy Attachment for WSDL 2.0 per action item 2 from the Bellevue F2F. This section is based on a contribution from BEA, IBM, Microsoft and Oracle.
Index: ws-policy-attachment.xml
===================================================================
RCS file: /sources/public/2006/ws/policy/ws-policy-attachment.xml,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -d -r1.41 -r1.42
--- ws-policy-attachment.xml 25 Sep 2006 09:24:00 -0000 1.41
+++ ws-policy-attachment.xml 26 Sep 2006 07:30:20 -0000 1.42
@@ -92,10 +92,9 @@
To enable Web Services Policy to be used with existing Web
service technologies, this specification describes the use of
these general-purpose mechanisms with WSDL [<bibref
- ref="WSDL11" />] definitions and UDDI [<bibref
+ ref="WSDL11" />, <bibref ref="WSDL20"/>] definitions and UDDI [<bibref
ref="UDDIAPI20" />, <bibref ref="UDDIDataStructure20" />,
- <bibref ref="UDDI30" />]. WSDL [<bibref ref="WSDL20" />] is
- deferred.</p>
+ <bibref ref="UDDI30" />].</p>
</div1>
<div1 id='NotationsTerminology'>
<head>Notations and Terminology</head>
@@ -168,6 +167,16 @@
</tr>
</thead>
<tbody>
+ <tr>
+ <td>
+ <code>mtom</code>
+ </td>
+ <td>
+ <code>http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization</code>
+ </td>
+ <td>[<loc href="http://131.107.72.15/MTOM_Service_Indigo/"
+ >WS-OptimizedSerializationPolicy</loc>]</td>
+ </tr>
<tr><td><code>rmp</code></td>
<td><code>http://docs.oasis-open.org/ws-rx/wsrmp/200602</code></td>
<td>[<bibref ref='WS-RMPolicy'/>]</td>
@@ -180,6 +189,15 @@
<td><code>http://www.w3.org/2005/08/addressing</code></td>
<td>[<bibref ref='WS-Addressing'/>]</td>
</tr>
+ <tr>
+ <td>
+ <code>wsap</code>
+ </td>
+ <td>
+ <code>http://www.w3.org/2006/05/addressing/wsdl</code>
+ </td>
+ <td>[<bibref ref="WS-AddressingPolicy"/>]</td>
+ </tr>
<tr><td><code>wsdl11</code></td>
<td><code>http://schemas.xmlsoap.org/wsdl/</code></td>
<td>[<bibref ref='WSDL11'/>]</td>
@@ -192,7 +210,7 @@
<td><code>http://schemas.xmlsoap.org/wsdl/soap12/</code></td>
<td>[<bibref ref='WSDL11BindingforSOAP12'/>]</td>
</tr>
- <tr><td><code>wsp</code></td>
+ <tr><td><code>(none), wsp</code></td>
<td><code>&nsuri;</code></td>
<td>This specification</td>
</tr>
@@ -964,6 +982,622 @@
</div3>
</div2>
</div1>
+
+ <div1 id="ws-policy-attachment-for-wsdl20">
+ <head>WS-Policy Attachment for WSDL 2.0</head>
+ <p>This section describes a mechanism for associating policy expressions with Web
+ service constructs in WSDL 2.0. The mechanism consists of:</p>
+ <ulist>
+ <item>A model for attaching policies to WSDL 2.0 constructs. The model defines:<ulist>
+ <item>A partitioning of WSDL constructs into service, endpoint, operation
+ and message policy subjects.</item>
+ <item>The semantics of attaching a policy to each policy subject.</item>
+ <item>How to combine policies attached to more than one WSDL component
+ within a single policy subject.</item>
+ </ulist></item>
+ <item>An XML representation of policy expressions attached to WSDL 2.0 constructs
+ and annotating those policy expressions as required extensions using the
+ WSDL-defined extensibility flag <code>@wsdl20:required</code>.</item>
+ </ulist>
+ <p><specref ref="XMLNamespaces"/> lists all the XML Namespaces that are used in this section. (XML
+ elements without a namespace prefix are from the Web Services Policy XML Namespace.)</p>
+ <div2 id="wsdl20-example">
+ <head>Example</head>
+ <p>The example below illustrates the use of WS-Policy Attachment for WSDL 2.0:</p>
+ <example id='table-wsdl20-example'>
+ <head>Example Policy Attached to WSDL 2.0</head>
+ <eg xml:space="preserve">(01) <wsdl20:description>
+(02) …
+(03) <Policy wsu:Id="common">
+(04) <mtom:OptimizedMimeSerialization wsp:Optional="true"/>
+(05) <wsap:UsingAddressing />
+(06) </Policy>
+
+(07) <Policy wsu:Id="secure">
+(08) <ExactlyOne>
+(09) <sp:TransportBinding>…</sp:TransportBinding>
+(10) <sp:AsymmetricBinding>…</sp:AsymmetricBinding >
+(11) </ExactlyOne>
+(12) </Policy>
+
+(13) <wsdl20:binding name="SecureBinding"
+(14) interface="tns:RealTimeDataInterface" >
+(15) <PolicyReference URI="#secure" />
+(16) <wsdl20:operation name="GetRealQuote" >…</wsdl20:operation>
+(17) …
+(18) </wsdl20:binding>
+
+(19) <wsdl20:service name="RealTimeDataService"
+(20) interface="tns:RealTimeDataInterface" >
+(21) <wsdl20:endpoint name="RealTimeDataPort"
+(22) binding="tns:SecureBinding">
+(23) <PolicyReference URI="#common" />
+(24) …
+(25) </wsdl20:endpoint>
+(26) </wsdl20:service>
+(27) …
+(28) </wsdl20:description></eg></example>
+ <p>The <code>SecureBinding</code> WSDL binding description describes a binding for
+ an interface that provides real-time quotes and book information on securities.
+ (The prefixes <code>wsdl20</code> and <code>tns</code> are used here to denote
+ the Web Services Description Language 2.0 XML Namespace and the target namespace
+ of this WSDL document respectively.) To require the use of security for these
+ offerings, a <termref def="policy_expression">policy expression</termref> that requires the use of either transport-level
+ or message-level security is attached to the binding description. The <termref def="policy_expression">policy expression</termref>
+ applies to any message exchange associated with any
+ <code>endpoint</code> that supports this binding description.</p>
+ <p>The <code>RealTimeDataPort</code> WSDL endpoint description describes an endpoint
+ that supports the <code>SecureBinding</code> WSDL binding description. To
+ require the use of addressing and allow the use of optimization (Optimized MIME
+ Serialization as defined in the MTOM specification [<bibref ref="MTOM"/>]), a <termref def="policy_expression">policy expression</termref> that
+ represents the addressing requirement and optimization capability is attached to
+ the endpoint description. The <termref def="policy_expression">policy expression</termref> applies to any message exchange
+ associated with the <code>RealTimeDataPort</code> endpoint.</p>
+ <p>In the above example, the <code>#secure</code> and <code>#common</code> <termref def="policy_expression">policy expressions</termref>
+ attached to the <code>SecureBinding</code> WSDL binding and
+ <code>RealTimeDataPort</code> WSDL endpoint descriptions collectively apply
+ to any message exchange associated with the RealTimeDataPort endpoint. The
+ example below represents the combination of these two <termref def="policy">policies</termref>, that is, the
+ <termref def="effective_policy">effective policy</termref> for the <code>RealTimeDataPort</code> endpoint.</p>
+ <example id='table-wsdl20-effective-policy-example'>
+ <head>Effective Policy for the RealTimeDataPort endpoint</head>
+ <eg xml:space="preserve">(01) <Policy>
+(02) <All>
+(03) <Policy>
+(04) <mtom:OptimizedMimeSerialization wsp:Optional="true"/>
+(05) <wsap:UsingAddressing />
+(06) </Policy>
+(07) <Policy>
+(08) <ExactlyOne>
+(09) <sp:TransportBinding>…</sp:TransportBinding>
+(10) <sp:AsymmetricBinding>…</sp:AsymmetricBinding >
+(11) </ExactlyOne>
+(12) </Policy>
+(13) </All>
+(14) </Policy></eg></example>
+ </div2>
+ <div2 id="attaching-policy-expressions">
+ <head>Attaching Policy Expressions</head>
+ <p>Policy attachment points in a WSDL 2.0 document are:</p>
+ <ulist>
+ <item>
+ <code>wsdl20:service</code>
+ </item>
+ <item>
+ <code>wsdl20:endpoint</code>
+ </item>
+ <item>
+ <code>wsdl20:binding</code>
+ </item>
+ <item>
+ <code>wsdl20:binding/wsdl20:operation</code>
+ </item>
+ <item>
+ <code>wsdl20:binding/wsdl20:fault</code>
+ </item>
+ <item>
+ <code>wsdl20:binding/wsdl20:operation/wsdl20:input</code>
+ </item>
+ <item>
+ <code>wsdl20:binding/wsdl20:operation/wsdl20:output</code>
+ </item>
+ <item>
+ <code>wsdl20:binding/wsdl20:operation/wsdl20:infault</code>
+ </item>
+ <item>
+ <code>wsdl20:binding/wsdl20:operation/wsdl20:outfault</code>
+ </item>
+ <item>
+ <code>wsdl20:interface</code>
+ </item>
+ <item>
+ <code>wsdl20:interface/wsdl20:operation</code>
+ </item>
+ <item>
+ <code>wsdl20:interface/wsdl20:fault</code>
+ </item>
+ <item>
+ <code>wsdl20:interface/wsdl20:operation/wsdl20:input</code>
+ </item>
+ <item>
+ <code>wsdl20:interface/wsdl20:operation/wsdl20:output</code>
+ </item>
+ <item><code>wsdl20:interface/wsdl20:operation/wsdl20:infault</code> and</item>
+ <item>
+ <code>wsdl20:interface/wsdl20:operation/wsdl20:outfault.</code>
+ </item>
+ </ulist>
+ <p>Any of these elements <rfc2119>MAY</rfc2119> have one or more <code>Policy</code> or
+ <code>PolicyReference</code> child elements.</p>
+ <p>Policy attachment points in a WSDL document are associated with specific <termref def="policy_subject">policy subjects</termref>
+ as described in the table below. There are four <termref def="policy_subject">policy subjects</termref> in
+ WSDL: the service policy subject, the endpoint policy subject, the operation
+ policy subject and the message policy subject. When a <termref def="policy_expression">policy expression</termref> is
+ attached to a <termref def="policy_subject">policy subject</termref> in a WSDL document, capabilities and requirements
+ represented by the <termref def="policy_expression">policy expression</termref> apply to any message exchange or message
+ associated with (or described by) the <termref def="policy_subject">policy subject</termref>.</p>
+ <div>
+ <table id="association-of-policy-attachment-points-with-policy-subjects" border="1" cellspacing='0' cellpadding='5'>
+ <caption>Association of Policy Attachment Points with Policy Subjects</caption>
+ <thead>
+ <tr>
+ <th>Policy Attachment Point in a WSDL document</th>
+ <th>WSDL Component</th>
+ <th>Policy Subject</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <code>wsdl20:service</code>
+ </td>
+ <td>Service</td>
+ <td>Service</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:endpoint</code>
+ </td>
+ <td>Endpoint</td>
+ <td rowspan="3">Endpoint</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:binding</code>
+ </td>
+ <td>Binding</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:interface</code>
+ </td>
+ <td>Interface</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:binding/wsdl20:operation</code>
+ </td>
+ <td>Binding Operation</td>
+ <td rowspan="2">Operation</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:interface/wsdl20:operation</code>
+ </td>
+ <td>Interface Operation</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:binding/wsdl20:operation/ wsdl20:input</code>
+ </td>
+ <td>Binding Message Reference </td>
+ <td rowspan="2">Message for an input message</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:interface/wsdl20:operation/wsdl20:input</code>
+ </td>
+ <td>Interface Message Reference whose {direction} property is
+ ‘in’</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:binding/wsdl20:operation/ wsdl20:output</code>
+ </td>
+ <td>Binding Message Reference </td>
+ <td rowspan="2">Message for an output message</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:interface/wsdl20:operation/ wsdl20:output</code>
+ </td>
+ <td>Interface Message Reference whose {direction} property is
+ ‘out’</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:binding/wsdl20:fault</code>
+ </td>
+ <td>Binding Fault</td>
+ <td rowspan="4">Message for an input fault message</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:binding/wsdl20:operation/ wsdl20:infault</code>
+ </td>
+ <td>Binding Fault Reference</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:interface/wsdl20:fault</code>
+ </td>
+ <td>Interface Fault</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:interface/wsdl20:operation/wsdl20:infault</code>
+ </td>
+ <td>Interface Fault Reference whose {direction} property is
+ ‘in’</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:binding/wsdl20:fault</code>
+ </td>
+ <td>Binding Fault</td>
+ <td rowspan="4">Message for an output fault message</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:binding/wsdl20:operation/wsdl20:outfault</code>
+ </td>
+ <td>Binding Fault Reference</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:interface/wsdl20:fault</code>
+ </td>
+ <td>Interface Fault</td>
+ </tr>
+ <tr>
+ <td>
+ <code>wsdl20:interface/wsdl20:operation/wsdl20:outfault</code>
+ </td>
+ <td>Interface Fault Reference whose {direction} property is
+ ‘out’</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>For a WSDL component, the attached <termref def="policy">policy</termref> (extension to the WSDL component model
+ is described in <specref ref="extension-to-wsdl-component-model"/>) is
+ considered an intrinsic part of the WSDL component definition and applies to all
+ uses of that definition. For example, when attached to a WSDL Interface
+ component, capabilities and requirements represented by a <termref def="policy">policy</termref> apply to all
+ the use of this WSDL Interface description. When attached to a WSDL Binding
+ component, capabilities and requirements represented by a <termref def="policy">policy</termref> apply to all
+ the Endpoints that support this binding description.</p>
+ <p>A <termref def="policy">policy</termref> associated with a service policy subject applies to any message exchange
+ (that is explicitly described by the Interface component in the Service
+ component's {interface} property) using any of the endpoints offered by that
+ service. </p>
+ <p><termref def="policy">Policies</termref> associated with an endpoint policy subject apply to any message exchange
+ (that is explicitly described by the Interface component in the Service
+ component’s {interface} property of the Endpoint component’s {parent} property)
+ made using that endpoint. Given that a WSDL Interface component may be used by
+ one or more binding descriptions, it is <rfc2119>RECOMMENDED</rfc2119> that only a <termref def="policy">policy</termref>
+ containing <termref def="policy_assertion">policy assertions</termref> that apply to any possible binding description
+ should be attached.</p>
+ <p><termref def="policy">Policies</termref> associated with an operation policy subject apply to the message
+ exchange described by that operation. Given that a WSDL Interface Operation
+ component may be used by one or more binding descriptions, it is <rfc2119>RECOMMENDED</rfc2119>
+ that only a <termref def="policy">policy</termref> containing <termref def="policy_assertion">policy assertions</termref> that apply to any possible
+ binding description should be attached.</p>
+ <p><termref def="policy">Policies</termref> associated with a message policy subject apply to that message (input,
+ output or fault). Given that a WSDL Interface Message Reference, Interface
+ Fault, Interface Fault Reference components may be used by one or more binding
+ descriptions, it is <rfc2119>RECOMMENDED</rfc2119> that only a <termref def="policy">policy</termref> containing <termref def="policy_assertion">policy assertions</termref>
+ that apply to any possible binding should be attached.</p>
+ <p><termref def="policy">Policies</termref> <rfc2119>MAY</rfc2119> be attached at different levels of the WSDL component hierarchy. A
+ message exchange with an endpoint <rfc2119>MAY</rfc2119> be described by the <termref def="policy">policies</termref> in all four
+ <termref def="policy_subject">policy subjects</termref> simultaneously.</p>
+ <p>The common mechanism of associating a <termref def="policy_expression">policy expression</termref> with a <termref def="policy_subject">policy subject</termref> is
+ to attach a reference to the <termref def="policy_expression">policy expression</termref> to the <termref def="policy_subject">policy subject</termref>. As
+ described in the WS-Policy specification [<bibref ref="WS-Policy"/>], a reference to a <termref def="policy_expression">policy expression</termref> is
+ represented using the <code>PolicyReference</code> element. A policy attachment
+ to a WSDL element is represented by attaching a <code>PolicyReference</code>
+ element as a child element of the WSDL element.</p>
+ <p><termref def="policy_expression">Policy expressions</termref> can be included within a WSDL document or may reside external
+ to a WSDL document. If including <termref def="policy_expression">policy expressions</termref> with a WSDL document is the
+ chosen approach, it is <rfc2119>RECOMMENDED</rfc2119> that the <code>Policy</code> elements are
+ included as children of the <code>wsdl20:description</code> element after the
+ <code>wsdl20:types</code> element and referenced using the
+ <code>PolicyReference</code> elements.</p>
+ <p>To mandate the processing of a <termref def="policy_expression">policy expression</termref> attached to a policy attachment
+ point in a WSDL document, the expression <rfc2119>MUST</rfc2119> be marked as required using the
+ <code>@wsdl20:required</code> flag.</p>
+ <p>If the <code>Policy</code> elements are included as children of the
+ <code>wsdl20:description</code> element, these Policy elements <rfc2119>MUST NOT</rfc2119> be
+ marked as required using the <code>@wsdl20:required</code>. (Note: these
+ <termref def="policy_expression">policy expressions</termref> may be included as children of the <code>wsdl20:description</code>
+ element and may not be attached to any policy attachment point in a WSDL
+ document.)</p>
+ </div2>
+ <div2 id="extension-to-wsdl-component-model">
+ <head>Extension to WSDL Component Model</head>
+ <p>This document adds an optional {policy} property to the following WSDL
+ components:</p>
+ <ulist>
+ <item>Service</item>
+ <item>Endpoint</item>
+ <item>Binding</item>
+ <item>Binding Operation</item>
+ <item>Binding Fault</item>
+ <item>Binding Message Reference</item>
+ <item>Binding Fault Reference</item>
+ <item>Interface</item>
+ <item>Interface Operation</item>
+ <item>Interface Fault</item>
+ <item>Interface Message Reference</item>
+ <item>Interface Fault Reference</item>
+ </ulist>
+ <p>The {policy} property, when present, represents the capabilities and requirements
+ as a <termref def="policy">policy</termref>. The value of the {policy} property is a <termref def="policy">policy</termref> as defined by
+ Section 3 - Policy Model in the WS-Policy specification [<bibref ref="WS-Policy"/>]. The following table
+ describes the mapping from XML representation to the {policy} property.</p>
+ <div>
+ <table border="1" cellspacing="0" cellpadding="5"
+ id="mapping-from-xml-representation-to-policy-property">
+ <caption>Mapping from XML representation to the {policy} property</caption>
+ <thead>
+ <tr>
+ <th>Component</th>
+ <th>Value</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Service</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the <code>wsdl20:service</code>
+ element.</td>
+ </tr>
+ <tr>
+ <td>Endpoint</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the <code>wsdl20:endpoint</code>
+ element.</td>
+ </tr>
+ <tr>
+ <td>Binding</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the <code>wsdl20:binding</code>
+ element.</td>
+ </tr>
+ <tr>
+ <td>Binding Operation</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the
+ <code>wsdl20:binding/wsdl20:operation</code> element.</td>
+ </tr>
+ <tr>
+ <td>Binding Fault</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the
+ <code>wsdl20:binding/wsdl20:fault</code> element.</td>
+ </tr>
+ <tr>
+ <td>Binding Message Reference</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the
+ <code>wsdl20:binding/wsdl20:operation/wsdl20:input</code> or
+ <code>wsdl20:binding/wsdl20:operation/wsdl20:output</code>
+ element.</td>
+ </tr>
+ <tr>
+ <td>Binding Fault Reference</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the
+ <code>wsdl20:binding/wsdl20:operation/wsdl20:infault</code>
+ or <code>wsdl20:binding/wsdl20:operation/wsdl20:outfault</code>
+ element.</td>
+ </tr>
+ <tr>
+ <td>Interface</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the <code>wsdl20:interface</code>
+ element.</td>
+ </tr>
+ <tr>
+ <td>Interface Operation</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the
+ <code>wsdl20:interface/wsdl20:operation</code> element, if
+ any.</td>
+ </tr>
+ <tr>
+ <td>Interface Fault</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the
+ <code>wsdl20:interface/wsdl20:fault</code> element.</td>
+ </tr>
+ <tr>
+ <td>Interface Message Reference</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the
+ <code>wsdl20:interface/wsdl20:operation/wsdl20:input</code>
+ or <code>wsdl20:interface/wsdl20:operation/wsdl20:output</code>
+ element.</td>
+ </tr>
+ <tr>
+ <td>Interface Fault Reference</td>
+ <td>A <termref def="policy">policy</termref> corresponding to the <termref def="merge">merge</termref> of <code>Policy</code> or
+ <code>PolicyReference</code> elements, if any, in the
+ <code>[children]</code> of the
+ <code>wsdl20:interface/wsdl20:operation/wsdl20:infault</code>
+ or
+ <code>wsdl20:interface/wsdl20:operation/wsdl20:outfault</code>
+ element.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div2>
+ <div2 id="effective-policy">
+ <head>Effective Policy</head>
+ <p>The following diagram illustrates the four <termref def="policy_subject">policy subjects</termref> in WSDL and how the
+ <termref def="effective_policy">effective policy</termref> is calculated for each of these <termref def="policy_subject">policy subjects</termref>.</p>
+ <p>
+ <graphic alt="Policy Subjects and Effective Policy in WSDL 2.0"
+ source="ws-policyattachment-4-wsdl20.jpg"/>
+ </p>
+ <p>If multiple <termref def="policy">policies</termref> are attached to WSDL components that collectively represent
+ a <termref def="policy_subject">policy subject</termref> then the
+ <termref def="effective_policy">effective policy</termref> of these <termref def="policy">policies</termref> applies. (For
+ example, there is a <termref def="policy">policy</termref> attached to an Endpoint component that describes the
+ component and there is a <termref def="policy">policy</termref> attached to the Binding component in the
+ Endpoint component’s {binding} property.) The <termref def="effective_policy">effective policy</termref> is the <termref def="merge">merge</termref> of
+ the <termref def="policy">policies</termref> that are attached to the same <termref def="policy_subject">policy subject</termref>. The rest of this
+ section describes how the <termref def="effective_policy">effective policy</termref> is calculated for each of these
+ <termref def="policy_subject">policy subjects</termref>.</p>
+ <div3 id="service-policy-subject">
+ <head>Service Policy Subject</head>
+ <p>The <termref def="effective_policy">effective policy</termref> of a service policy subject is the <termref def="policy">policy</termref> in the
+ {policy} property of a Service component that describes the service.</p>
+ </div3>
+ <div3 id="endpoint-policy-subject">
+ <head>Endpoint Policy Subject</head>
+ <p>The <termref def="effective_policy">effective policy</termref> of an endpoint policy subject is the <termref def="merge">merge</termref> of <termref def="policy">policies</termref>
+ in the {policy} properties of:</p>
+ <ulist>
+ <item>An Endpoint component that describes the endpoint,</item>
+ <item>The Binding component in the Endpoint component’s {binding} property, </item>
+ <item>The Interface component in the Service component’s {interface}
+ property of the Endpoint component’s {parent} property and</item>
+ <item>The Interface components in the {extended interfaces} property of the
+ Interface component in the Service component’s {interface} property of
+ the Endpoint component’s {parent} property.</item>
+ </ulist>
+ </div3>
+ <div3 id="operation-policy-subject">
+ <head>Operation Policy Subject</head>
+ <p>If the Binding component has an Interface component in the {interface}
+ property, then the <termref def="effective_policy">effective policy</termref> of an operation policy subject <rfc2119>MAY</rfc2119> be
+ calculated by <termref def="merge">merging</termref> the <termref def="policy">policies</termref> in the {policy} properties of:</p>
+ <ulist>
+ <item>The Interface Operation component that describes the operation and</item>
+ <item>The Binding Operation component (if any) whose {interface operation}
+ property has the Interface Operation component.</item>
+ </ulist>
+ <p>If the Binding component does not have an Interface component in the
+ {interface} property, then the <termref def="effective_policy">effective policy</termref> of an operation policy
+ subject <rfc2119>MUST</rfc2119> be calculated in relation to a specific endpoint, and is the
+ <termref def="policy">policy</termref> in the {policy} property of the Interface Operation component that
+ describes the operation. </p></div3>
+ <div3 id="message-policy-subject-input">
+ <head>Message Policy Subject (input message)</head>
+ <p>If the Binding component has an Interface component in the {interface}
+ property, then the <termref def="effective_policy">effective policy</termref> of an input message <rfc2119>MAY</rfc2119> be calculated by
+ <termref def="merge">merging</termref> the <termref def="policy">policies</termref> in the {policy} properties of:</p>
+ <ulist>
+ <item>The Interface Message Reference component that describes the input
+ message and</item>
+ <item>The Binding Message Reference component whose {interface message
+ reference} property has the Interface Message Reference
+ component.</item>
+ </ulist>
+ <p>If the Binding component does not have an Interface component in the
+ {interface} property, then the <termref def="effective_policy">effective policy</termref> of an input message <rfc2119>MUST</rfc2119> be
+ calculated in relation to a specific endpoint, and is the <termref def="policy">policy</termref> in the
+ {policy} property of the Interface Message Reference component that
+ describes the input message.</p>
+ </div3>
+ <div3 id="message-policy-subject-output">
+ <head>Message Policy Subject (output message)</head>
+ <p>If the Binding component has an Interface component in the {interface}
+ property, then the <termref def="effective_policy">effective policy</termref> of an output message <rfc2119>MAY</rfc2119> be calculated
+ by <termref def="merge">merging</termref> the <termref def="policy">policies</termref> in the {policy} properties of:</p>
+ <ulist>
+ <item>The Interface Message Reference component that describes the output
+ message and</item>
+ <item>The Binding Message Reference component whose {interface message
+ reference} property has the Interface Message Reference
+ component.</item>
+ </ulist>
+ <p>If the Binding component does not have an Interface component in the
+ {interface} property, then the effective policy of an output message <rfc2119>MUST</rfc2119> be
+ calculated in relation to a specific endpoint, and is the <termref def="policy">policy</termref> in the
+ {policy} property of the Interface Message Reference component that
+ describes the output message.</p>
+ </div3>
+ <div3 id="message-policy-subject-input-fault">
+ <head>Message Policy Subject (input fault message)</head>
+ <p>If the Binding component has an Interface component in the {interface}
+ property, then the <termref def="effective_policy">effective policy</termref> of an input fault message <rfc2119>MAY</rfc2119> be
+ calculated by <termref def="merge">merging</termref> the <termref def="policy">policies</termref> in the {policy} properties of:</p>
+ <ulist>
+ <item>The Interface Fault Reference component that describes the input fault
+ message, </item>
+ <item>The Interface Fault component in the Interface Fault Reference
+ component’s {interface fault} property, </item>
+ <item>The Binding Fault Reference component whose {interface fault
+ reference} property has the Interface Fault Reference component and</item>
+ <item>The Binding Fault component whose {interface fault} property has the
+ Interface Fault component in the Interface Fault Reference component’s
+ {interface fault} property.</item>
+ </ulist>
+ <p>If the Binding component does not have an Interface component in the
+ {interface} property, then the <termref def="effective_policy">effective policy</termref> of an input fault message
+ <rfc2119>MUST</rfc2119> be calculated in relation to a specific endpoint, and is the <termref def="merge">merge</termref> of
+ <termref def="policy">policies</termref> in the {policy} properties of:</p>
+ <ulist>
+ <item>The Interface Fault Reference component that describes the input fault
+ message and</item>
+ <item>The Interface Fault component in the Interface Fault Reference
+ component’s {interface fault} property.</item>
+ </ulist>
+ </div3>
+ <div3 id="message-policy-subject-output-fault">
+ <head>Message Policy Subject (output fault message)</head>
+ <p>If the Binding component has an Interface component in the {interface}
+ property, then the <termref def="effective_policy">effective policy</termref> of an output fault message <rfc2119>MAY</rfc2119> be
+ calculated by <termref def="merge">merging</termref> the <termref def="policy">policies</termref> in the {policy} properties of:</p>
+ <ulist>
+ <item>The Interface Fault Reference component that describes the output
+ fault message,</item>
+ <item>The Interface Fault component in the Interface Fault Reference
+ component’s {interface fault} property, </item>
+ <item>The Binding Fault Reference component whose {interface fault
+ reference} property has the Interface Fault Reference component and</item>
+ <item>The Binding Fault component whose {interface fault} property has the
+ Interface Fault component in the Interface Fault Reference component’s
+ {interface fault} property for the endpoint.</item>
+ </ulist>
+ <p>If the Binding component does not have an Interface component in the
+ {interface} property, then the <termref def="effective_policy">effective policy</termref> of an output fault message
+ <rfc2119>MUST</rfc2119> be calculated in relation to a specific endpoint, and is the <termref def="merge">merge</termref> of
+ <termref def="policy">policies</termref> in the {policy} properties of:</p>
+ <ulist>
+ <item>The Interface Fault Reference component that describes the output
+ fault message and</item>
+ <item>The Interface Fault component in the Interface Fault Reference
+ component’s {interface fault} property.</item>
+ </ulist>
+ </div3>
+ </div2>
+ </div1>
+
<div1 id='AttachingPoliciesUsingUDDI'>
<head>Attaching Policies Using UDDI</head>
@@ -1539,7 +2173,14 @@
</div2>
<div2 id='Informative-References'>
<head>Other References</head>
- <blist>
+ <blist>
+ <bibl key="MTOM" id="MTOM" href="http://www.w3.org/TR/2005/REC-soap12-mtom-20050125/">
+ <titleref>SOAP Message Transmission Optimization Mechanism</titleref>, M. Gudgin, N.
+ Mendelsohn, M. Nottingham and H. Ruellan, Editors. World Wide Web Consortium, 25 January
+ 2005. This version of the SOAP Message Transmission Optimization Mechanism Recommendation
+ is http://www.w3.org/TR/2005/REC-soap12-mtom-20050125/. The <loc
+ href="http://www.w3.org/TR/soap12-mtom/">latest version of SOAP Message Transmission
+ Optimization Mechanism</loc> is available at http://www.w3.org/TR/soap12-mtom/. </bibl>
<bibl id='SCC14N' key='SCC14N' href='http://uddi.org/pubs/SchemaCentricCanonicalization-20050523.htm'>
<titleref>Schema Centric XML Canonicalization Version
1.0</titleref>, S. Aissi, A. Hately, and M. Hondo,
@@ -1553,6 +2194,14 @@
1.0</loc> is available at
http://uddi.org/pubs/SchemaCentricCanonicalization.htm.
</bibl>
+ <bibl key="WS-Addressing Policy" id="WS-AddressingPolicy"
+ href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">
+ <titleref>Web Services Addressing 1.0 - WSDL Binding</titleref>, M. Gudgin, M. Hadley, T.
+ Rogers and Ü. Yalçinalp, Editors. World Wide Web Consortium, 29 May 2006. This version of
+ the Web Services Addressing 1.0 - WSDL Binding is
+ http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/. The <loc
+ href="http://www.w3.org/TR/ws-addr-wsdl">latest version of Web Services Addressing 1.0 -
+ WSDL Binding</loc> is available at http://www.w3.org/TR/ws-addr-wsdl. </bibl>
<bibl id='WS-MetadataExchange' key='WS-MetadataExchange' href='http://schemas.xmlsoap.org/ws/2004/09/mex/'>
<titleref>Web Services Metadata Exchange
(WS-MetadataExchange)</titleref>, K. Ballinger, et al,
@@ -1591,6 +2240,13 @@
XML-Signature Syntax and Processing</loc> is available at
http://www.w3.org/TR/xmldsig-core/.
</bibl>
+ <bibl key="XOP" id="XOP" href="http://www.w3.org/TR/2005/REC-xop10-20050125/">
+ <titleref>XML-binary Optimized Packaging</titleref>, M. Gudgin, N. Mendelsohn, M.
+ Nottingham and H. Ruellan, Editors. World Wide Web Consortium, 25 January 2005. This
+ version of the XML-binary Optimized Packaging Recommendation is
+ http://www.w3.org/TR/2005/REC-xop10-20050125/. The <loc href="http://www.w3.org/TR/xop10/"
+ >latest version of XML-binary Optimized Packaging</loc> is available at
+ http://www.w3.org/TR/xop10/. </bibl>
</blist>
</div2>
</div1>
@@ -1959,6 +2615,15 @@
<loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=3709">3709</loc>: Editorial corrections from UDDI team.
</td>
</tr>
+ <tr>
+ <td>20060925</td>
+ <td>ASV</td>
+ <td>Created <specref ref="ws-policy-attachment-for-wsdl20"/> per action item <loc
+ href="http://www.w3.org/2005/06/tracker/wspolicyeds/actions/37">2</loc> from the
+ Bellevue F2F. This section is based on a <loc
+ href="http://lists.w3.org/Archives/Public/public-ws-policy/2006Sep/0037.html"
+ >contribution</loc> from BEA, IBM, Microsoft and Oracle.</td>
+ </tr>
</tbody>
</table>
</inform-div1>
--- NEW FILE: ws-policyattachment-4-wsdl20.jpg ---
(This appears to be a binary file; contents omitted.)
Index: ws-policy-attachment.html
===================================================================
RCS file: /sources/public/2006/ws/policy/ws-policy-attachment.html,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -d -r1.44 -r1.45
--- ws-policy-attachment.html 25 Sep 2006 09:24:00 -0000 1.44
+++ ws-policy-attachment.html 26 Sep 2006 07:30:20 -0000 1.45
@@ -1,6 +1,5 @@
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en-US"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Web Services Policy 1.5 - Attachment</title><style type="text/css">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en-US"><head><META http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Web Services Policy 1.5 - Attachment</title><style type="text/css">
code { font-family: monospace; }
div.constraint,
@@ -48,24 +47,40 @@
div.exampleWrapper { margin: 4px }
div.exampleHeader { font-weight: bold;
[...2830 lines suppressed...]
+ <td rowspan="1" colspan="1">Implemented the
<a href="http://www.w3.org/2006/09/14-ws-policy-minutes.html#item12">resolution</a>
for issue
<a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=3709">3709</a>: Editorial corrections from UDDI team.
- </td></tr></tbody></table><br></div></div></body></html>
\ No newline at end of file
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">20060925</td>
+ <td rowspan="1" colspan="1">ASV</td>
+ <td rowspan="1" colspan="1">Created <a href="#ws-policy-attachment-for-wsdl20"><b>5. WS-Policy Attachment for WSDL 2.0</b></a> per action item <a href="http://www.w3.org/2005/06/tracker/wspolicyeds/actions/37">2</a> from the
+ Bellevue F2F. This section is based on a <a href="http://lists.w3.org/Archives/Public/public-ws-policy/2006Sep/0037.html">contribution</a> from BEA, IBM, Microsoft and Oracle.</td>
+ </tr>
+ </tbody>
+ </table><br>
+ </div>
+</div>
+</body></html>
\ No newline at end of file
Received on Tuesday, 26 September 2006 07:30:36 UTC