- From: David Orchard <dorchard@bea.com>
- Date: Mon, 22 Sep 2003 16:09:27 -0700
- To: <www-ws-desc@w3.org>
- Message-ID: <05d001c38168$48a65cb0$fe2b000a@beasys.com>
A long time ago, I took an action a while ago to provide motivation for R131. From the latest editor's copy of the requirements document, R131 says "The WG SHOULD define components that may be used within Messages to refer to other WSDL components. (From DO. See also R085 and R120. Last discussed 6 Feb 2003.)" From the charter [2], some relevent quotes. Section 1. "One of the requirements for the development of Web services is the ability to describe the interface, the boundary across which applications (Web services user agents and Web services) communicate. Applications can then interoperate using this interface." Section 1.4 "The description language defined should therefore describe how to reach the Web Service in a form which is orthogonal to its message exchange patterns and its messages." You will notice that there is no text in the charter which mentions anything about "design-time" versus "run-time" use of WSDL. Perhaps one could stretch and say that the Out of Scope section 2.3, Discovery, precludes any "run-time" WSDL construct exchanges. However, that seems a large stretch given that most people do not think of exchanging references as "discovery", more that discovery is the exchange of an entire description of a web service. This is typically expected to be UDDI or some other kind of registry. Therefore, I conclude that R131 is within the scope of the charter and not precluded. Of course, the group could choose for other reasons not to meet R131, but a charter reason cannae be used. Now let us progress to the motivation. One of the most important pieces of information about a web service is the URI of the service. There are a number of ways that this information can be provided to a service consumer: - within a WSDL file binding - from a registry - from a service - as part of the protocol - as part of a message A common scenario is that one service will send a request to another service, but will want the response delivered to an address that is specified in the message. This is expressed as scenario #70 in the Web Services architecture usage scenarios [3]. From the scenario, "The sender may also tag the message with an identifier for another service (other than the originating sender) which will be the recipient of the response." Now the example does not show such an identifier, though this is listed in the requirements section 1a. The interpretation of the requirement is that it should be possible for a sender or receiver to specify the URI of the service. Now perhaps the requirement is slightly unclear in the use of the term "other WSDL components". This could be interpreted as saying refering to a WSDL Service, WSDL Interface, etc. The intent was to be able to have a type in order to pass around address, and potentially other reference information, in messages. There is an interesting relationship between R131 and R085, "The description language SHOULD allow describing Messages that include references (URIs) to typed referents, both values and WSDLServices." The interpretation of R085 that the WSDL group is currently using is that a WSDL file must be able to specify which portions of a message are references. There are two ways of specifying which portions of messages are references, either by including the reference type in the message itself or in a separate description, particularly wsdl 1.2. WS-Addressing could be viewed as a mechanism for marking message by typing the reference and Arthur's proposal does so in a separate description. I propose that WSDL 1.2 containing a type that can be exchanged dynamically, such as ws-addressing endpoint references, is within the scope of wsdl 1.2, as much as a type that statically defines reference types. Further, there is likely to be synergy between these two types. There are a number of aspects of the reference that may be static in some cases and dynamic in others. URIs are the type that are most commonly thought of as sometimes being dynamic, other times static. But bindings are also flexible. This motivation does not include the exchange of these dynamic references, such as a ws-addressing replyTo. It merely argues that a type that contains reference information such as URIs, binding, service invocation properties, and more is within the scope of wsdl 1.2. I would expect that any headers or message bodies that would contain such types would be defines elesewhere and in a layered fashion. I also would like to point out that I have seen the "describe in wsdl" versus "exchange in messages using a type" discussion in other contexts, such as identifying correlation ids. It is clear that there is a need for both constructs, that is the identifier can be typed inline or out-of-band. And web services need to be able to make the choice between types described in wsdl and types contained in messages. This email will hopefully suffice to motivate that a type that contains reference information that is exchanged within messages - aka endpoint reference - is within scope of wsdl 1.2. The questions about whether the WG chooses to do this work, and what works would serve as the basis of such work, are separate. It may very well be that the wg decides an endpoint reference type is within scope but there are no works that are submitted or acceptable to the group. The acceptance of this requirement leaves the possibility of standardization in wsdl 1.2 open, when standardization of such a construct is currently precluded. Cheers, Dave [1] http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/requirements/ws-desc-reqs.h tml [2] http://www.w3.org/2002/01/ws-desc-charter [3] http://www.w3.org/TR/2002/WD-ws-arch-scenarios-20020730/#S070
Received on Monday, 22 September 2003 20:22:33 UTC