- From: Rich Salz <rsalz@datapower.com>
- Date: Sun, 21 Nov 2004 23:20:21 -0500 (EST)
- To: public-ws-desc-comments@w3.org
- cc: Rich Salz <rsalz@datapower.com>
Last week, O'Reilly published a column I wrote about WSDL 2.0; in subsequent email, Jonathan suggested I send comments to the list. I appreciate the chance to do so, and fully recognize that this is well after the deadline. Still and all, when given an opportunity to carp, I'll not turn down the invite. :) In order to reduce overhead, I'll try to bundle everything in this one message. If you prefer separate notes, let me know. 1. Is schema-validity a conformance point, or not? The table entry for the "wsdl" namespace prefix mentions a normative schema, yet the conformance section talks about information model. These two items seem in conflict, and burying the schema mention as an aside in a listing of namespace prefixes makes it all too easy to dismiss. I could not find the schema in the documents, either. 2. Abstracting away from XSD datatypes is a mistake. It is eminently reasonable to bind yourself to the official W3C schema and data- type language. IT seems foolish to introduce a new type suite (and terms such as "actual value") that will almost always map directly onto XSD. Does anyone in the WG know of any plans to do otherwise? This leads into my next point. 3. Abstracting away XML 1.x and 2.x is a mistake. There is too much tortured language and complexity by trying to support two incompatible formats called XML. I suggest that support for XML 2.0 is premature: it has no Infoset, no Schema, and (yes, because of no schema), no SOAP support -- let alone other web services related specifications such as XML Digital Signature. The hardest part of standardization is making the right trade-off. Defer XML 2.0 and you can lose the resultant complexity and type redundancy, and you'll be making the right exchange. 4. It doesn't seem possible to define a Feature (sec 2.8) at the Interface level, yet disable it for a specific operation. Unlike my other points, this is arguably more of a feature request. :) 5. Properties, which are relevant to a specific runtime instance, do not belong here, but rather in a separate file. WSDL is a network service contract; putting per-implementation information here, which may be completely inappropriate or wrong for two installations of the same runtime, only encourages non-portable service definitions. 6. Following on the previous item, syntax should dominate. The most important thing about WSDL should be that it is a *portable* description of a service interface. It is crucial that end-users be able to take a WSDL file from one platform and use it on another. Infosets are not portable; they are useful to runtime and compiler implementors here, not developers using WSDL. The conformance points must be strengthened, and end-users must have a clear understanding of what it means to write a conforming WSDL file. 7. The phrase "XML representation" as used throughout (e.g., sec 2.5.2) is wrong. The XML representation is the syntax; the Infoset is not a representation, it is a data set. Another confusion is the use of "[owner]" which looks like an Infoset item, but isn't. My point here is that there is much bleed-through, and a confusing mix between XML syntax (not enough), non-normative psuedo-schema, XML Infoset, and WSDL Component Model. 8. Much redundancy and lack of clarity could be avoided by using XML Schema. Every (or almost every) section that describes a WSDL component follows the same outline: A short bit of prose Non-normative psuedo-schema Infoset description Component properties Almost all of the middle two sections could be removed by including normative XSD fragments. This would have the benefit of being both more precise and less verbose. I have heard the argument that the psuedo-schema is useful to most readers. My counter-argument is that this recommendation is targeted to WSDL developers, not casual web services developers (although I wish it otherwise), and familiarity with XSD can be assumed. 9. A primer is needed. This follows from #6. Just as SOAP and Schema have primers targeted toward end-users, so should WSDL. I'd argue, in fact, that while you can "hide" the details of SOAP from most end-users, you *cannot* do the same for WSDL. 10. The numerous "Note"'s about name uniqueness are a big warning sign that something is wrong. XML has the technology to avoid local-name conflicts, and the current scheme gives only the illusion of independent distributed service development. Proper use of namespaces can completely obliterate this problem area. 11. The inheritance model isn't necessary. Rather than cram everything into one target namespace, allow a service to implement multiple endpoints. The conformance point could be "at least one"; ability to support multiple namespaces is then a quality of implementation (i.e., marketplace) issue. This would also address #10. 12. The component model, necessary for equivalence, which in turn is necessary for the inheritance model, is a bad idea. Fixing #11 will partly remove the primary need for the component model. Adding some additional "ref" (or href/id) attributes to make all linkages explicit (those that don't follow the in-scope model), and the component model can be completely removed from the recommendation. 13. If I understand it correctly, then I am not sure the "directly include" concept is useful. If "a.wsdl" imports "b.wsdl", then the types section of the first must reproduce any imports in the types section of the second. If true, this isn't the way conventional programming languages work, and since XSD already has mechanisms to address multiple inclusion, it seems to needlessly require "a.wsdl" to have internal knowledge of "b.wsdl". necessary. Thank you for your consideration. I would be happy to discuss these further. /r$ -- Rich Salz Chief Security Architect DataPower Technology http://www.datapower.com XS40 XML Security Gateway http://www.datapower.com/products/xs40.html XML Security Overview http://www.datapower.com/xmldev/xmlsecurity.html
Received on Monday, 22 November 2004 04:20:22 UTC