- From: Jonathan Marsh <jmarsh@microsoft.com>
- Date: Thu, 24 Feb 2005 23:35:17 -0800
- To: <public-ws-addressing@w3.org>
- Message-ID: <7DA77BF2392448449D094BCEF67569A506A68BFC@RED-MSG-30.redmond.corp.microsoft.com>
The following (and enclosed) proposal addresses the concerns Microsoft had with the original Metadata proposal [1] put forward by IONA, IBM, SAP, Sun and Oracle. This proposal is put forward as a friendly amendment and has been deemed acceptable to each of the original co-proposers, with the caveat that a few specific issues remain as outlined below. Microsoft joins the other authors in asking that these remaining issues be discussed and resolved by the WG and the resulting proposal be adopted. Issues that remain to be resolved: 1) The proposal as written does not resolve the (new?) issue of how to divide functionality between the Core and WSDL specs. Many of the co-authors prefer that all WSDL-related functionality be gathered into the WSDL spec. I for one prefer splitting the functionality along the lines of extensions to WSDL (the WSDL Binding spec) and extensions to WSA (extensibility is part of the Core spec). Questions of what levels one might conform to need to be explored. The current set of specs is not completely consistent to either of these viewpoints. 2) The desirability and practicality of enforcing the consistency of [selected interface] and [service endpoint] with any embedded WSDL could use some more exploration. Jonathan Marsh, Microsoft in collaboration with Paco Curbera (IBM) Greg Truty IBM) Rebecca Bergersen (IONA) Steve Vinoski (IONA) Anish Karmarkar (Oracle) Umit Yalcinalp (SAP) Marc Hadley (Sun) [1] http://lists.w3.org/Archives/Public/public-ws-addressing/2005Feb/0016.ht ml ------------------------------------------------------ The list of changes provided below are provided in the enclosed red-lined .doc as well for your convenience. 2.1: Replace the [policies] property with: [metadata] : xsd:any (0..1) A reference may contain metadata that describes the behavior, policies, requirements and capabilities of the endpoint. Metadata may be included in a reference to facilitate easier processing by a consuming application, or because the metadata was dynamically generated. However, such metadata is not authoritative and may be stale or incoherent with the metadata associated with the endpoint at the time when the interaction occurs. Update example 2-1 as follows: <wsa:EndpointReference> <wsa:Address>xs:anyURI</wsa:Address> <wsa:ReferenceParameters>... </wsa:ReferenceParameters> ? <wsa:Metadata> <wsa:InterfaceName>xs:QName</wsa:InterfaceName> ? <wsa:ServiceName EndpointName="xs:NCName"? >xs:QName</wsa:ServiceName> ? <xs:any/>* </wsa:Metadata>? <xs:any/>* </wsa:EndpointReference> Update the list of elements in Section 2.2 as follows: /wsa:EndpointReference This represents some element of type wsa:EndpointReferenceType. This example uses the predefined <wsa:EndpointReference> element, but any element of type wsa:EndpointReferenceType may be used. /wsa:EndpointReference/wsa:Address This REQUIRED element (of type xs:anyURI) specifies the [address] property of the endpoint reference. This address may be a logical address for the service endpoint. /wsa:EndpointReference/wsa:ReferenceParameters/ This OPTIONAL element contains the elements that convey the [reference parameters] of the reference. /wsa:EndpointReference/wsa:ReferenceParameters/{any} Each child element of ReferenceParameters represents an individual [reference parameter]. /wsa:EndpointReference/wsa:Metadata/wsa:InterfaceName This OPTIONAL element (of type xs:Qname) specifies the value of the [selected interface] property of the endpoint reference, see Web Services Addressing 1.0 - WSDL Binding[WS-Addressing-WSDL] for more details.. /wsa:EndpointReference/wsa:Metadata This OPTIONAL element contains metadata that is relevant to the interaction with the endpoint. /wsa:EndpointReference/wsa:Metadata/wsa:ServiceName This OPTIONAL element (of type xs:QName) specifies the value of the [service endpoint] property, see Web Services Addressing 1.0 - WSDL Binding[WS-Addressing-WSDL] for more details.. /wsa:EndpointReference/wsa:Metadata/wsa:ServiceName/@EndpointName This OPTIONAL attribute (of type xs:NCName) specifies the name of a particular endpoint, see Web Services Addressing 1.0 - WSDL Binding[WS-Addressing-WSDL] for more details. /wsa:EndpointReference/wsa:Metadata/@{any} This is an extensibility mechanism to allow additional attributes to be specified. Some examples in this specification show use of this extensibility point to include a wsdlLocation[WSDL 2.0] attribute to provide a hint for the location of a WSDL description of the [selected interface] and [service endpoint] properties. /wsa:EndpointReference/wsa:Metadata/{any} Each child element of Metadata represents a piece of metadata relevant to the endpoint. /wsa:EndpointReference/{any} This is an extensibility mechanism to allow additional elements to be specified. /wsa:EndpointReference/@{any} This is an extensibility mechanism to allow additional attributes to be specified. The following shows an example endpoint reference. As indicated in it's [metadata], this element references the [selected interface] "fabrikam:Inventory" at the endpoint URI "http://example.com/www.fabrikam/acct". Note the use of the WSDL[WSDL 2.0] wsdlLocation attribute. Example 2-2. Example endpoint reference. <wsa:EndpointReference xmlns:wsa="http://www.w3.org/@@@@/@@/addressing" xmlns:fabrikam="http://example.com/fabrikam" xmlns:wsdli="http://www.w3.org/2004/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> <wsa:InterfaceName>fabrikam:Inventory</wsa:InterfaceName> </wsa:Metadata> </wsa:EndpointReference> Add Appendix A. Embedding WSDL metadata (non-normative) WSDL 1.1 or 2.0 definitions can be embedded in the metadata section of an EPR to provide a consuming application with WSDL information that applies to the referenced endpoint. To do so, the creator of an EPR MAY include a WSDL 2.0 description element (or a WSDL 1.1 definitions element) in the metadata property of the EPR. The semantics of the embedded WSDL is as defined by the WSDL 2.0 or 1.1 specifications. In particular, embedding a WSDL service component description MAY be used by EPR issuers to indicate the presence of alternative addresses and protocol bindings to access the referenced endpoint. The alternatives are provided by the different endpoints of the embedded service. In the case of WSDL 1.1, additional ports may be conveyed by the WSDL 1.1 service definition which are not alternative access channels to the endpoint. In that case, if the [interface] or [service endpoint] properties are specified, only the ports with the same interface as that which applies to the EPR are to be considered alternative access channels. If the [service endpoint] property appears in the EPR's [metadata] and an embedded WSDL service component is also provided inside a descriptions or definitions component, then the [service endpoint] information MUST match the name of (one or more of) the WSDL service(s) included therein; the endpoint (port) name MUST match as well if present. The behavior of an EPR consumer when the [service endpoint] doesn't match an embedded description is undefined. Example A-1. An EPR containing WSDL 2.0 metadata. <wsa:EndpointReference xmlns:wsa="http://www.w3.org/@@@@/@@/addressing"> <wsa:Address>http://example.com/fabrikam/acct</wsa:Address> <wsa:Metadata xmlns:wsdli="http://www.w3.org/@@@@/@@/wsdl-instance" wsdli:wsdlLocation="http://example.com/fabrikam http://example.com/fabrikam/fabrikam.wsdl"> <wsdl20:description targetNamespace=="http://example.com/fabrikam" xmlns:fabrikam="http://example.com/fabrikam" xmlns:abc="http://www.abccorp.com/" xmlns:wsdl20="http://www.w3.org/2004/12/wsdl"> <wsdl20:import namespace="http://example.com/fabrikam/" location="http://example.com/fabrikam/fabrikam.wsdl/"/> <wsdl20:import namespace="http://www.abccorp.com/" location="http://www.abccorp.com/abc.wsdl"/> <wsdl20:service name="InventoryService" interface="fabrikam:Inventory"> <wsdl20:endpoint name="ep1" binding="abc:soap-http-binding" address="http://example.com/fabrikam/acct"/> <wsdl20:endpoint name="ep2" binding="abc:iiop" address="..."/> <wsdl20:endpoint name="ep3" binding="abc:soap-http-binding" address="http://alt.example.com/fabrikam/acct"/> </wsdl20:service> </wsdl20:description> </wsa:Metadata> </wsa:EndpointReference> Example A-2. An EPR containing WSDL 1.1 metadata. <wsa:EndpointReference xmlns:wsa="http://www.w3.org/@@@@/@@/addressing"> <wsa:Address>http://example.com/fabrikam/acct</wsa:Address> <wsa:Metadata> <wsdl11:definitions targetNamespace="http://example.com/fabrikam" xmlns:fabrikam="http://example.com/fabrikam" xmlns:abc="http://www.abccorp.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:iiop="http://www.iiop.org/" xmlns:wsdl11="http://www.w3.org/@@@@/@@/wsdl"> <wsdl11:import namespace="http://example.com/fabrikam" location="http://example.com/fabrikam/fabrikam.wsdl"/> <wsdl11:import namespace="http://www.abccorp.com/" location="http://www.abccorp.com/abc.wsdl"/> <wsdl11:service name="InventoryService"> <wsdl11:port name="ep1" binding="abc:soap-http-binding"> <soap:address location="http://example.com/fabrikam/acct"/> </wsdl11:port> <wsdl11:port name="ep2" binding="abc:iiop"> <iiop:address location="..."/> </wsdl11:service> </wsdl11:definitions> </wsa:Metadata> </wsd:EndpointReference>
Attachments
- application/msword attachment: ws-addr-core-Metadata.doc
Received on Friday, 25 February 2005 07:37:30 UTC