RE: Comments on the preview of the WS-MetadataExchange Working Draft

Hello Antoine,

> A simpler solution could be to have, by specifying that 
> the EPR defines a default policy scope, and thus avoiding 
> the external policy attachment construct

Yes, the WS-Addressing W3C Recommendation defines that:

"[metadata] : xs:any (0..unbounded)
A reference may contain metadata that describes the behavior, policies and capabilities of the endpoint." [1]

The following usage is valid and supported by a general-purpose, existing feature [2] in the current WS-MetadataExchange draft:

<wsa:EndpointReference>
  <wsa:Address>http://services.example.org/stockquote</wsa:Address>
  <wsa:Metadata>
   <mex:Metadata>
    <mex:MetadataSection>
      Dialect='http://www.w3.org/ns/ws-policy'>
     <wsp:Policy> ... </wsp:Policy>
    </mex:MetadataSection>
   </mex:Metadata>
  </wsa:Metadata>
</wsa:EndpointReference>

[1] http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/#eprinfomodel
[2] http://www.w3.org/TR/2009/WD-ws-metadata-exchange-20090924/#Metadata-in-Endpoint-References  

We hope this helps.

Regards,

Asir S Vedamuthu
Microsoft Corporation

-----Original Message-----
From: public-ws-resource-access-request@w3.org [mailto:public-ws-resource-access-request@w3.org] On Behalf Of Antoine Mensch
Sent: Tuesday, October 13, 2009 2:00 PM
To: public-ws-resource-access@w3.org
Subject: Comments on the preview of the WS-MetadataExchange Working Draft

Dear colleagues,

Please find below some comments on the preview of the 
WS-MetadataExchange Working Draft 
(http://www.w3.org/TR/2009/WD-ws-metadata-exchange-20090924).

I. Section 7

This section provides a way to attach metadata to an EPR.  However, the 
spec does not clearly state whether this feature is only intended for 
carrying general metadata about the service exposed through the endpoint 
(as the examples seem to indicate), or whether it could also be used for 
carrying endpoint-specific metadata, such as the endpoint effective 
policy (as defined in WS-PolicyAttachment).

Ideally, there should be an easy way to directly attach an endpoint 
effective policy to the EPR, in order to bypass the usual complex 
algorithm that the client must implement to compute the endpoint 
effective policy, which is not practical for some embedded clients:
1) Download the WSDL
2) Retrieve the service port corresponding to the EPR (matching the 
address, and hoping that the WSDL is complete, i.e. is dynamically 
generated by the service to contain an up-to-date address, which is 
often numerical in cases of devices).
3) Build the endpoint effective policy by merging info extracted from 
the WSDL and possibly an external policy document.

The closest way I can see in the current version of the spec would be to 
use an external policy attachment as metadata section, using the EPR as 
policy scope. So for instance, to express that an EPR supports the DPWS 
requirements for hosted services (as a basic example of policy 
assertion), one could have:

<wsa:EndpointReference
   xmlns:wsa='http://www.w3.org/2005/08/addressing'>
 <wsa:Address>http://192.168.0.34/myHostedService</wsa:Address>
 <wsa:Metadata>
   <mex:Metadata xmlns:mex='http://www.w3.org/2009/09/ws-mex'>
     <mex:MetadataSection xmlns:wsp='http://www.w3.org/ns/ws-policy'>
         Dialect='http://www.w3.org/TR/ws-policy-attach'>
       <wsp:PolicyAttachment>
         <wsp:AppliesTo>
           <wsa:EndpointReference>
             <wsa:Address>http://192.168.0.34/myHostedService</wsa:Address>
           </wsa:EndpointReference>
         </wsp:AppliesTo>
         <wsp:Policy>
           <dpws:Profile 
xmlns:dpws='http://docs.oasis-open.org/ws-dd/ns/dpws/2009/01'/>
         </wsp:Policy>
       </wsp:PolicyAttachment>
     </mex:MetadataSection>
   </mex:Metadata>
 </wsa:Metadata>
</wsa:EndpointReference>

Is the above a valid use of the EPR embedded metadata feature?

If so, although much simpler than having to parse a full WSDL, it 
remains a relatively heavy solution for embedded clients. A simpler 
solution could be to have, by specifying that the EPR defines a default 
policy scope, and thus avoiding the external policy attachment construct:

<wsa:EndpointReference
   xmlns:wsa='http://www.w3.org/2005/08/addressing'>
 <wsa:Address>http://192.168.0.34/myHostedService</wsa:Address>
 <wsa:Metadata>
   <mex:Metadata xmlns:mex='http://www.w3.org/2009/09/ws-mex'>
     <mex:MetadataSection xmlns:wsp='http://www.w3.org/ns/ws-policy'>
         Dialect='http://www.w3.org/TR/ws-policy'>
       <wsp:Policy>
         <dpws:Profile 
xmlns:dpws='http://docs.oasis-open.org/ws-dd/ns/dpws/2009/01'/>
       </wsp:Policy>
     </mex:MetadataSection>
   </mex:Metadata>
 </wsa:Metadata>
</wsa:EndpointReference>

or even better (allowing any predefined WS-Mex dialect to appear in the 
WS-Addressing metadata, as in a Get response)

<wsa:EndpointReference
   xmlns:wsa='http://www.w3.org/2005/08/addressing'>
 <wsa:Address>http://192.168.0.34/myHostedService</wsa:Address>
 <wsa:Metadata>
   <wsp:Policy>
     <dpws:Profile 
xmlns:dpws='http://docs.oasis-open.org/ws-dd/ns/dpws/2009/01'/>
   </wsp:Policy>
 </wsa:Metadata>
</wsa:EndpointReference>


II. Editorial comments:

It seems that the namespace used in schema import elements in several 
examples should be http://services.example.org/stockquote/schemas 
instead of http://services.example.org/stockquote

Best regards,

Antoine Mensch

Received on Thursday, 29 October 2009 02:07:22 UTC