- 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