- From: Jonathan Marsh <jonathan@wso2.com>
- Date: Mon, 11 Dec 2006 14:36:43 -0800
- To: "'Jean-Jacques Moreau'" <jean-jacques.moreau@crf.canon.fr>
- Cc: <paul.downey@bt.com>, <ryman@ca.ibm.com>, <www-ws-desc@w3.org>, "'FABLET Youenn'" <youenn.fablet@crf.canon.fr>
See below Jonathan Marsh - http://www.wso2.com - http://auburnmarshes.spaces.live.com > -----Original Message----- > From: Jean-Jacques Moreau [mailto:jean-jacques.moreau@crf.canon.fr] > Sent: Monday, December 11, 2006 1:16 AM > To: Jonathan Marsh > Cc: paul.downey@bt.com; ryman@ca.ibm.com; www-ws-desc@w3.org; FABLET > Youenn > Subject: Re: Generic proposal for enganging MTOM in WSDL 2.0 > > I've come to think of Paul's proposal as: dynamic schema redefinition. > I.e. "wsdli:simpleAssertions" is really saying the content of this node > will be a sequence of terminal elements. This could be generalized to: > "wdli:type='schemaElementRef'", meaning: the content of this node is > really "schemaElementRef", whatever one told you earlier (possibly > through an earlier schema reference for the document). I don't think that's sufficient. There's nothing about a dual policy assertion/wsdl extension that limits the policy elements to terminals. And just saying it's a list of terminals doesn't convey the important semantics - that the enclosed policy assertions have dual utility as a WSDL extension. However, if that's all you want, you could instead write a schema for the subset of Policy that you wanted, and point to that via a xsi:schemaLocation attribute. Problem solved?! > A possible further generalization would be to add dynamic document > filtering. I.e. "wdli:type='schemaElementRef'" would also mean: first, > filter the content of the current node through the schema fragment at > "schemaElementRef", then apply processing as if the node had only > contained the filtered content (which would also solve the > "wsdl:required" issue). Applied to a policy assertion, this would mean > removing all compositors and leaving only assertions. Maybe I'm really > XML schema here as a kind of XSLT processor. Probably I've stayed in > Japan too long recently. ;-) Hmmm, sounds like normalizing policy expressions to the normal form to me [1] to me. If your implementation can do that, you're closer to being a conforming Policy processor, and maybe you don't need much of a subset at all. Add in a little policy reference indirection (also possible through XPath) and you're there. You don't need a completely general purpose implementation, just one that is adequate to answer the question you want answered - is MTOM supported, required, or not. If indeed one could write a single XPath that would answer this question, wouldn't that be sufficient to declare Canon's implementation conformant to WS-Policy, supporting only the MTOM policy assertion? [1] http://www.w3.org/TR/2006/WD-ws-policy-primer-20061018/#normal-form-for-poli cy-expressions > Regarding Asir's proposal, for the following property to be true: > > 2) No changes to specs at all! > isn't there first a prerequisite that a policy processor *MAY* support > only a subset of a declared policy expression? I.e. assertions and not > compositors? You mean, you'd like an official conformance level that blesses the subset? > I can see merits in this new proposal. I'm a little hesitant though to > use only primer examples. We've followed that path before with MTOM and > now we're into this issue. I don't the use of primer examples is significant in how we got here. > JJ. > > Jonathan Marsh wrote: > > See below > > > > Jonathan Marsh - http://www.wso2.com - > http://auburnmarshes.spaces.live.com > > > > > > > >> -----Original Message----- > >> From: paul.downey@bt.com [mailto:paul.downey@bt.com] > >> Sent: Wednesday, December 06, 2006 8:35 AM > >> To: jonathan@wso2.com; ryman@ca.ibm.com > >> Cc: www-ws-desc@w3.org > >> Subject: RE: Generic proposal for enganging MTOM in WSDL 2.0 > >> > >> Thanks Jonathan for writing this up > >> > >> > >>> Advantages: > >>> 1) No new syntax needed. > >>> 2) No changes to specs at all! > >>> 3) Profile can be processed by a fully conformant WS-Policy processor. > >>> > >> wouldn't that be the case for the extension attribute? > >> > > > > Yes, that's a benefit of either proposal. > > > > > >>> 4) Obviates need to describe the interaction of wsdli:simpleAssertions > >>> > >> and > >> > >>> wsdl:required. > >>> > >> doesn't WS-Policy have the same issue? > >> is there anything we can reference / reuse? > >> > > > > My concern was if one encountered: > > > > <foo wsdl:required="true" wsdli:simpleAssertions="true">...</> > > > > Wsdl:required says if you don't understand foo, you don't know the > meaning > > of the parent component. Wsdli:simpleAssertions says you can treat the > > embedded elements as direct WSDL extensions, even if you don't > understand > > foo. The interaction between these two assertions of what must be > > understood might be complex. The simple composition of these features > > means, I think, "you don't understand foo and thus you don't understand > > foo's parent, so any processing of the extension, including the parts > > indicated as potentially useful through wsdli:simpleAssertions, is > outside > > conformance of the spec." > > > > We might instead want to say "wsdli:simpleAssertions trumps > > wsdl:required="true", and thus wsdl:required values are ignored." Or > you > > could say "You cannot use wsdl:required=true with > wsdli:simpleAssertions. > > > > In any case it's kind of messy, and I think Asir's proposal solves this > by > > eliminating the two constructs. A client honors wsdl:required > > independently. For instance, a WSDL using the Canon profile would need > to > > have wsdl:required=true if any of the enclosed assertions are > > wsdl:required=true (otherwise they're masked by implementations ignoring > > wsp:Policy.) > > > > > >>> 5) Can be defined for multiple versions of Policy. > >>> > >> as with the flag, which could be applied to non Policy elements .. > >> > > > > Yes, but it seems safer to identify specifically which elements have > this > > behavior, rather than a generic facility that might have uncomfortable > > interactions with other elements. For instance, other than a policy > > framework, specifically designed to have assertions that are in turn > > specifically design to do double duty as WSDL extensions, can you > imagine > > another useful purpose for the extension? Especially if there are > > interactions with wsdl:required, I can imagine malign purposes more > easily > > than benign ones. > > > > > >>> 6) Supports any assertions supported by the implementation (just like > >>> WS-Policy.) This includes a possible future version of an MTOM > >>> > >> assertion. > >> > >> > >>> 7) Isn't open to unintended side-effects (what evil uses could > >>> wsdli:simpleAssertions be put to?) > >>> > >> Oh, probably no more evil than WS-Policy :-) > >> but point taken. > >> > >> > >>> Disadvantages; > >>> 1) Doesn't provide any standards status to such a profile. > >>> > >> we could add a non-normative example? > >> > > > > A primer example showing such a profile, perhaps? ;-) > > > > > >>> 2) Doesn't provide any machine-readable indication that the profile is > >>> > >> in > >> > >>> use. > >>> > >> Machines could check no child elements from the wsp: namespace exist > >> when looking for an assertion, something like: > >> > >> ./wsp:Policy[not(wsp:*)]/wsoma:OptimizedMimeSerialization > >> > > > > Yeah, maybe we don't need an indication in the document that it conforms > to > > a profile, since you've demonstrated it's easy to check that oneself. > > > > > >> FWIW I much prefer Asir's proposal - I'd like to see it cited as > >> an example, but this is Canon's use-case .. > >> > >> Paul > >> > > > > > >
Received on Monday, 11 December 2006 22:36:37 UTC