- From: Jean-Jacques Moreau <jean-jacques.moreau@crf.canon.fr>
- Date: Mon, 03 Nov 2003 10:46:32 +0100
- To: Sanjiva Weerawarana <sanjiva@watson.ibm.com>
- Cc: www-ws-desc@w3.org, FABLET Youenn <youenn.fablet@crf.canon.fr>
I would like to make the following alternative proposal. I believe it addresses Sanjiva's main issues. The syntax for an in-out operation would be as follows: <interface name="xs:NCName" extends="list of xs:QName"? styleDefault="xs:anyURI"?> <operation name="xs:NCName" pattern=".../in-out" style="xs:anyURI"?> <A body="xs:QName"? headers="list of xs:QName"?/> <B body="xs:QName"? headers="list of xs:QName"?/>? <F details="xs:QName"/>* </operation> </interface> Other patterns would be treated in a similar way. Note: we might wish to define A, B, etc. in a different namespace, for example "wsdlp". Note: this is not a fully-fledged proposal, which people are unlikely to have time to read before the f2f. I am happy to draft an enhanced proposal if the WG wishes so. Comments on Sanjiva's proposal below. Basically, I am concerned Sanjiva's proposed syntax trades-off clarity for heuristics. Jean-Jacques. Sanjiva Weerawarana wrote: > This is a follow-up email to the proposal I made at the last F2F > to introduce some defaulting rules to make the syntax for > in-out and in-only patterned operations more syntactically > pleasing. > > Status quo syntax for operations: > -------------------------------- > > <interface name="xs:NCName" > extends="list of xs:QName"? > styleDefault="xs:anyURI"?> > <operation name="xs:NCName" > pattern="xs:anyURI" > style="xs:anyURI"?> > <input messageReference="xs:NCName" > body="xs:QName"? > headers="list of xs:QName"?/>* > <output messageReference="xs:NCName" > body="xs:QName"? > headers="list of xs:QName"?/>* > <infault messageReference="xs:NCName" details="xs:QName"/>* > <outfault messageReference="xs:NCName" details="xs:QName"/>* > </operation> > </interface> > > > Problems with status quo: > ------------------------ > > - User has to remember pattern URIs, even for simple operations Srictly speaking, the user has to remember only the pattern URI's tail, i.e. in-only, in-out, out-only, etc; the rest (http://www.w3.org/@@@@/@@/wsdl/) is WSDL's standard prefix. Remembering the tail sounds simple enough to me. > - User has to know contents of pattern spec to know proper values > for @messageReference (typically 'A', 'B' etc. right now). Perhaps. However, again, 'A', 'B', etc. look to me like names the user is likely to be able to remember. > The > value for @messageReference is *not* user settable, while the > other attributes are - which I believe to be counter-intuitive. Yes. However I think we can address this in a different way (see proposal above). > - "input" and "output" are redundant as the pattern defines the > direction of the message - thus the indicated message reference > already has a set direction and the user cannot change it. Thus > indicating both message reference and input vs. output is an > an opportunity for errors Agreed. I think we can address this in a different way as well (see proposal above). > - "infault" / "outfault" separation similarly redundant and error-prone Ibid. > To me, requiring users to remember pattern URIs for the everyday > patterns is unacceptable. Furthermore, requiring *users* to know > the content of the patterns spec for those patterns (so that they > can assign proper values for @messageReference) is even worse. W.r.t. > the redundancies- I'd like to eliminate as many redundancies as > possible. Finally, the motivation for the proposal is to keep the > simple case simple, yet not harm the complex case in any way. > > Proposal: > -------- > > I proposed that we introduce a set of very simple rules to enable > one to derive the message exchange pattern URI and message reference > names for operations using the in-only and in-out patterns. > > We observe that for the in-only MEP there is only one input message > and no fault messages. Similarly, the in-out MEP has one input > message, one output message and zero or more outfaults, all of > which are related to the single output message. > > Proposed syntactic changes: > - Make interface/operation/@pattern optional > - Make interface/operation/(input|output)/@messageReference > optional > > Now, introduce the following rules to compute these when they are > absent: > - There must be precisely one <input> element inside the > operation- if not its an error as the user should have > specified the MEP > - There must be precisely zero or one <output> element inside the > operation- if not its an error as the user should have > specified the MEP > - There must not be any <infault> elements inside the operation- > if not its an error as the user should have specified the MEP > - If there is an <output> element, then @pattern="in-out" else > @pattern="in-only" > - Set value of the messageReference attribute for the <input> > element to 'A' (or if indicated it better be 'A') > - If there is an <output> element, set the value of its > messageReference attribute to 'B' (or if indicated it better be 'B') > - If pattern is "in-only", then there must not be any <outfault> > elements or its an error > - If there are any <outfault> elements, set the value of its > messageReference attribute to 'B' (or if indicated it better be 'B') > > The resulting syntax for in-only and in-out operations is: > > <interface name="xs:NCName" > extends="list of xs:QName"? > styleDefault="xs:anyURI"?> > <operation name="xs:NCName" > style="xs:anyURI"?> > <input body="xs:QName"? > headers="list of xs:QName"?/> > <output body="xs:QName"? > headers="list of xs:QName"?/>? > <outfault details="xs:QName"/>* > </operation> > </interface> > > A similar simplification is possible for <binding>s for in-only > and in-out patterned operations (basically make the @messageReference > attribute optional). > > Conclusion: > ---------- > > We believe that these proposed shortcuts are critical to support > what we believe to be easily the 80-20 usecase of WSDL; WSDLs > that have only in-only or in-out operations. The proposed > changes are minimal (make two attributes optional) and the > proposed rules are very simple to implement even on small devices > (or large mainframes). We believe that the resulting user-level > simplification clearly justifies the adoption of this proposal. > > Sanjiva. > >
Received on Monday, 3 November 2003 04:47:03 UTC