- From: David Booth <dbooth@w3.org>
- Date: Fri, 09 Jan 2004 12:06:20 -0500
- To: Amelia A Lewis <alewis@tibco.com>
- Cc: www-ws-desc@w3.org, Jacek Kopecky <jacek.kopecky@systinet.com>, Paul Downey <paul.downey@bt.com>
Hi Amy, I think you've misunderstood my intent, and I apologize if my earlier message sounded like an emotional appeal. It was trying illustrate that if a system blindly accepts arbitrary WSDL documents from unknown sources, and doesn't expect to have to deal with the case where two logical WSDL documents[1] describe the same service, then, well, that system is gonna have problems, because those cases will occur regardless of whether we or anyone else says its permissible or forbidden. I'll clarify further inline below . . . . At 12:43 PM 1/8/2004 -0500, Amelia A Lewis wrote: >On Jan 8, 2004, at 10:28 AM, David Booth wrote: >>I agree that a system stupid enough to suck down random WSDL documents >>and be unable to function when it sees two logical WSDL documents that >>define the same service would have a problem, but I don't think that's a >>problem the WSDL language can or should address. Any system that needs >>to suck down random WSDL documents should either: > >I do not think that the ability to handle arbitrary WSDL instances is >either stupid or random, and reject the emotional loading that you are >forcing into this argument (something *I* am *never* guilty of! the >idea!). In particular, if a client wants to retrieve the description of a >particular service so that it can dynamically construct messages, and if a >particular toolkit permits a service to be generated from a WSDL, then in >either case the collision of the service qname can lead to either >overcomplex or nonworking systems. > >Let's take a specific case, rather than argue abstractions. > >WSDL 1: invalid-combined-service > >interface = ns:access >binding implements ns:access = ns:accessbinding >service tied to ns:access, endpoint uses binding ns:accessbinding = ns:service > >interface = ns:mgt >binding implements ns:mgt = ns:mgtbinding >service tied to ns:mgtbinding, endpoint uses binding ns:mgtbinding = >ns:service Ok, so WSDL 1 is invalid in the WSDL2.0 language because it tries to define the same service using two different interfaces, and the WSDL2.0 spec permits only one interface per service. >WSDL 2 & 3: valid-because-we-wanna-be-language-lawyers-and-not-fix-our-mess > >WSDL 2: access-service >interface = ns:access >binding implements ns:access = ns:accessbinding >service tied to ns:access, endpoint uses binding ns:accessbinding = ns:service Ok, WSDL 2 is valid in the WSDL2.0 language. >WSDL 3:mgt-service >interface = ns:mgt >binding implements ns:mgt = ns:mgtbinding >service tied to ns:mgtbinding, endpoint uses binding ns:mgtbinding = >ns:service Ok, WSDL 3 is valid in the WSDL2.0 language. >WSDL 4: valid-by-the-single-interface-per-service-restriction > >interface = ns:access >binding implements ns:access = ns:accessbinding >service tied to ns:access, endpoint uses binding ns:accessbinding = >ns:accessservice > >interface = ns:mgt >binding implements ns:mgt = ns:mgtbinding >service tied to ns:mgtbinding, endpoint uses binding ns:mgtbinding = >ns:mgtservice Ok, WSDL 4 is valid in the WSDL2.0 language, because the ns:mgtservice is a different service from the ns:accessservice. >The intent of this entire proposal is to allow a single conceptual service >to have a single qualified name describing it, by encouraging authors to >work around the single interface per service restriction. No, that isn't my intent: (1) I'm not advocating allowing the combination of WSDL 2 and WSDL 3 in the WSDL2.0 language; and (2) I'm not advocating *encouraging* anything. I'm saying we have no business saying anything for or against it, because it isn't a part of the WSDL2.0 language. >At least, that's how I've read it. If the intention of the proposal is to >permit WSDL 4, rather than the [loaded, emotional adjectives warning] >stupid language-lawyering of WSDL 2+3 that bypass the validity problems of >WSDL 1, then I'm completely out of line. But WSDL 4 is permissible (we've >been planning on doing that one ever since we lost the single interface >argument). There's no way of indicating, in WSDL, that accessservice and >mgtservice are related, but that can be resolved with extensions or >out-of-band data. Yes. WSDL 4 is already valid in the WSDL2.0 language, and extensions or some other language would be needed to express a relationship between accessservice and mgtservice. >I can see no good excuse for advocating the WSDL 2+3 kludge. I'm not advocating the WSDL 2+3 kludge. The WSDL 2+3 kludge would have to be written in some *other* language, because WSDL2.0 does not permit it. If some other language chooses to allow WSDL 2+3, that's up to that language. I don't think we should try to say what it should mean. >It seems to me that if some other group is looking for workarounds to the >single-interface-per-service restriction *already*, then we need to think >about it. Again. We certainly should *not* recommend a strategy that >increases confusion and makes coding more complex. I am not advocating that we *recommend* any strategy at all. I am saying we should be neutral. However, since the question is likely to arise, I think it should be addressed in the primer (as we discussed on yesterday's teleconference), and I've added a placeholder for this purpose. I think the primer should acknowledge that *outside* the WSDL2.0 language, some *other* language or system may accept the combination of WSDL 2+3, and if it does, the meaning of that combination is up to that language or system. Does that help clarify what I meant? -- David Booth W3C Fellow / Hewlett-Packard Telephone: +1.617.253.1273
Received on Friday, 9 January 2004 12:12:08 UTC