- From: Chou, Wu (Wu) <wuchou@avaya.com>
- Date: Tue, 21 Jul 2009 14:28:31 -0400
- To: "Doug Davis" <dug@us.ibm.com>
- Cc: "Gilbert Pilz" <gilbert.pilz@oracle.com>, <public-ws-resource-access@w3.org>, <public-ws-resource-access-request@w3.org>
- Message-ID: <F81BDFA28AE48D4793E253362D1F7A740112ACE7@300813ANEX2.global.avaya.com>
Doug, You are right, there is no way to ban people to rewrite WS-Eventing defined semantics within xs:any unless we put more words in the spec to ban it. But what I am talking about is the recommended way that a standard spec should specify. It is not how free and powerful xs:any can do to a standard spec. >From a developer perspective, if a Qname has a defined signature in the spec and one in xs:any without signature, then the one with the signature in the spec is typically construed as having a more important semantic status than the one without. If a spec specifies a standard way to modify "mode", it means that this is the recommend way and other modification in xs:any should not intentionally contradict it. Surely it is debatable, and we can have some off-line discussion on how things in xs:any should overwrite a specified method in the spec. But the point that is relevant to us is: we need a recommended way and what this spec recommended way should be in order to improve the interoperability. On the other hand, I have difficulty to agree if there is xs:any extension than the spec should not specify a recommended way. Thanks, - Wu Chou. ________________________________ From: Doug Davis [mailto:dug@us.ibm.com] Sent: Tuesday, July 21, 2009 12:34 PM To: Chou, Wu (Wu) Cc: Gilbert Pilz; public-ws-resource-access@w3.org; public-ws-resource-access-request@w3.org Subject: RE: Issue-6692 - Interim agreement draft Wu, your main point appears to be centered around this paragraph: These constraints are important for interoperability, because the delivery mode is an anchor point for other extension elements. To process other elements in xs:any, it needs first to determine the delivery mode, e.g. Push or Pull, before being able to establish the semantics of other extensions, e.g. allowed or not allowed, etc. Determination of Mode in original WS-E is straightforward, since it is either the default "Push" or the one given by the @Mode URI. I would recommend that you reread the member submission of ws-eventing because none of this is true. WS-E did not make @Mode more important than the xs:any's. Nor did it say that any of the xs:any's under Delivery are scoped by the @Mode attribute. But even if it did, there are other xs:any's that could be used instead. In particular it would be very legal to say @Mode="push" and then have <pull/> in one of the xs:any's - the service would still need to either figure out what it meant or figure out that there's a conflict and fault. Because of this, all of your "issues" (if they exist) were there in the original WS-E, they're still there now, they're still there in your ws-policy based proposal, and they will always be there unless we remove ALL extensibility points in the spec. thanks -Doug ______________________________________________________ STSM | Standards Architect | IBM Software Group (919) 254-6905 | IBM 444-6905 | dug@us.ibm.com The more I'm around some people, the more I like my dog. "Chou, Wu (Wu)" <wuchou@avaya.com> Sent by: public-ws-resource-access-request@w3.org 07/21/2009 11:40 AM To "Gilbert Pilz" <gilbert.pilz@oracle.com> cc <public-ws-resource-access@w3.org> Subject RE: Issue-6692 - Interim agreement draft Gil, The original extensibility model in WS-E for delivery element consists of two parts, i.e. one through Delivery/@Mode URI and one through the xs:any. In WS-Eventing, @Mode is at a higher semantic hierarchy and it provides the critical context, e.g. Push, Pull, etc., for processing other extension elements. For example, it has a default value "Push", the default value can only be changed by Delivery/@Mode <mailto:Delivery/@Mode> URI, and extension elements in xs:any should not contradict or overwrite the delivery mode. These constraints are important for interoperability, because the delivery mode is an anchor point for other extension elements. To process other elements in xs:any, it needs first to determine the delivery mode, e.g. Push or Pull, before being able to establish the semantics of other extensions, e.g. allowed or not allowed, etc. Determination of Mode in original WS-E is straightforward, since it is either the default "Push" or the one given by the @Mode URI. When using Qnames for delivery mode extension and lump them with other extension elements in xs:any, the original extensibility structure of WS-E is no longer there, and it introduces the following issues: 1. It is unclear how to determine the semantics of expressions (combinations) formed by Qnames in order to establish the delivery mode, and what algorithm should use to parse and determine the delivery mode from xml block under xs:any. 2. For example, the expression <Push /><Pull /> can be interpreted as: 1) Invalid, since both <Push /> and <Pull /> occur; 2) <Pull /> since <Pull /> is after <Push /> and therefore, overwrites <Push />; 3) two supported delivery options of <Push /> and <Pull />, since there is no mU header; etc. It is unclear how a subscriber should do to indicate using either <Push /> or <Pull />, but not both. This issue is acute for more complex expressions, e.g. <Push /><Pull /><Push />? <Push /><Pull /><Push /><Ack />? ... 3. It is unclear how the event source should define and specify the permissible Qname expressions (combinations) so that the subscriber knows which one to use for a particular event source. 4. It is unclear how an event source should satisfy both optional and non-optional requirements and how the event sink can know which particular combination of requirements that the event source apply/use in its event delivery. For example, when optional delivery Qnames, e.g. Push, Pull, MC, etc., are used, the event sink has no clue which particular delivery option that event source uses to send the notification even receives a positive response. This will cause the notification to break. 5. How do we constrain the mode changing QNames so that it does not incur huge overhead for the event source to process it? 6. The composition in the generic SOAP extension is somewhat different from the QName composition here. In generic SOAP extension, different extensions are independent in the sense they can fit into a Chain of Responsibility design pattern (where each extension is implemented by an interceptor). Whereas no such effect exists here and all QNames have to be processed as a whole, and the delivery mode may need to be determined first in order to process and deliver the notifications correctly. ... Therefore, a WS-Policy based framework for delivery mode extension become critical ... - Wu Chou ________________________________ From: Gilbert Pilz [mailto:gilbert.pilz@oracle.com] Sent: Friday, July 17, 2009 2:40 PM To: Chou, Wu (Wu) Cc: public-ws-resource-access@w3.org Subject: Re: Issue-6692 - Interim agreement draft You still haven't answered the question "Why does WS-Eventing's extensibility model have to be different from all other WS-* specs?" - gp On 7/17/2009 7:03 AM, Chou, Wu (Wu) wrote: Gil, Please see my comments in line. - Wu Chou. ________________________________ From: Gilbert Pilz [mailto:gilbert.pilz@oracle.com <mailto:gilbert.pilz@oracle.com> ] Sent: Wednesday, July 15, 2009 3:24 PM To: Chou, Wu (Wu) Subject: Re: Issue-6692 - Interim agreement draft Who said the QName is treated as an assertion, and what difference would that make in any case? (Wu: Check ws-policy to see what the difference it makes) An Event Source either understands/recognizes the QName of the extension (or assertion if you prefer) or it does not! It's a binary distinction. This is software we are talking about; there are no "close misses". (Wu: This is so true that it is not the concern here. The issue is the (policy) expression semantics formed by these Qnames (assertions)) An Event Source that understands/recognizes "sdev:PushWithAcks" but doesn't recognize "fsv:AckNotifications" doesn't know or care that, to a human, they seem like they might mean the same thing. (Wu: Couldn't agree more, as stated in my another email on this thread that they are totally different from the Qnames perspective.) I have the hardest time understanding your model because it seems the me that you imagine that there is a human being in the loop looking at every Subscribe request and attempting to interpret the extension elements. (Wu: I am using ws-policy model, and it will really help if you can take a look from that angle. I don't imagine ws-policy requires there is a human being in the loop.) It would be really helpful if you could describe, at a high level, the exact sequence of steps you think should happen during extension negotiation. (Wu: It will be covered in our proposal to the WG, in which such a high level view is described during extension negotiation.) - gp ________________________________ From: Gilbert Pilz [mailto:gilbert.pilz@oracle.com <mailto:gilbert.pilz@oracle.com> ] Sent: Wednesday, July 15, 2009 3:24 PM To: Chou, Wu (Wu) Subject: Re: Issue-6692 - Interim agreement draft Who said the QName is treated as an assertion, and what difference would that make in any case? An Event Source either understands/recognizes the QName of the extension (or assertion if you prefer) or it does not! It's a binary distinction. This is software we are talking about; there are no "close misses". An Event Source that understands/recognizes "sdev:PushWithAcks" but doesn't recognize "fsv:AckNotifications" doesn't know or care that, to a human, they seem like they might mean the same thing. I have the hardest time understanding your model because it seems the me that you imagine that there is a human being in the loop looking at every Subscribe request and attempting to interpret the extension elements. It would be really helpful if you could describe, at a high level, the exact sequence of steps you think should happen during extension negotiation. - gp On 7/15/2009 11:20 AM, Chou, Wu (Wu) wrote: If a Qname is treated as an assertion (assertion is defined as a Qname), then the Qname composition semantics is equivalent to policy expression semantics. Check WS-Policy or its tutorial Primer for more information. Have fun, - Wu Chou ________________________________ From: Gilbert Pilz [mailto:gilbert.pilz@oracle.com <mailto:gilbert.pilz@oracle.com> ] Sent: Tuesday, July 14, 2009 6:05 PM To: Chou, Wu (Wu) Cc: Doug Davis; Bob Freund; public-ws-resource-access@w3.org <mailto:public-ws-resource-access@w3.org> ; public-ws-resource-access-request@w3.org <mailto:public-ws-resource-access-request@w3.org> Subject: Re: Issue-6692 - Interim agreement draft Wu, I sorry, but I don't have the faintest idea what you mean by "QName composition semantics". Please define your terms. - gp On 7/14/2009 12:18 PM, Chou, Wu (Wu) wrote: Doug, This is the issue. If just from Qnames, "Delivery/@Mode=".../PushWithAck" , Delivery/@Mode=".../MyPushWithAck" , Delivery/@Mode=".../WusPushWithAck" " are not the same. But in terms of the Qname composition semantics, they can be interpreted as the same or not the same depending on the semantic model being used. To determine the semantics of Qname composition, just knowing the definition of each individual Qname is not enough. Otherwise WS-Policy should not specify those rules for composition. It is not clear if example 1-5 are semantically equivalent just by looking at their Qnames, even each Qname is well defined. Roughly speaking, this is all WS-Policy about, i.e. represent literal defined requirements by well defined individual Qnames and define intersection rules to determine the semantics of composed Qnames. Thanks, - Wu Chou ________________________________ From: Doug Davis [mailto:dug@us.ibm.com <mailto:dug@us.ibm.com> ] Sent: Monday, July 13, 2009 7:31 PM To: Chou, Wu (Wu) Cc: Bob Freund; Gilbert Pilz; public-ws-resource-access@w3.org <mailto:public-ws-resource-access@w3.org> ; public-ws-resource-access-request@w3.org <mailto:public-ws-resource-access-request@w3.org> Subject: RE: Issue-6692 - Interim agreement draft Wu, In the original WS-E are these the same? Delivery/@Mode=".../PushWithAck" Delivery/@Mode=".../MyPushWithAck" Delivery/@Mode=".../WusPushWithAck" You need to understand the URI to know. In your example: 1. <Push/><Ack/> 2. <Push><Ack/></Push> 3. <Ack/><Push/> 4. <Ack><Push/></Ack> 5. <myDelivery><Push><Ack/></Push></myDelivery> is no different. You need to know/understand the QNames to know if they're the same. If the definition of the URIs or QNames above are unclear then the problem lies with the loose definition of those values - not in the xs:any they're using. thanks -Doug ______________________________________________________ STSM | Standards Architect | IBM Software Group (919) 254-6905 | IBM 444-6905 | dug@us.ibm.com <mailto:dug@us.ibm.com> The more I'm around some people, the more I like my dog. "Chou, Wu (Wu)" <wuchou@avaya.com> <mailto:wuchou@avaya.com> Sent by: public-ws-resource-access-request@w3.org <mailto:public-ws-resource-access-request@w3.org> 07/13/2009 05:55 PM To "Gilbert Pilz" <gilbert.pilz@oracle.com> <mailto:gilbert.pilz@oracle.com> cc "Bob Freund" <bob.freund@hitachisoftware.com> <mailto:bob.freund@hitachisoftware.com> , <public-ws-resource-access@w3.org> <mailto:public-ws-resource-access@w3.org> Subject RE: Issue-6692 - Interim agreement draft Gil, Without a common semantic framework, e.g. WS-Policy, it is unclear how the event source should determine the shape and semantics of a QName. This may lead to a situation where different event sources designate the composition of the same set of QNames with different syntax and semantics, thereby creating interoperability issues for the subscribers. For example, for Push delivery with ack, it can be represented as: 1. <Push/><Ack/> 2. <Push><Ack/></Push> 3. <Ack/><Push/> 4. <Ack><Push/></Ack> 5. <myDelivery><Push><Ack/></Push></myDelivery> 6. ... It is not clear if they are different or equivalent if without a common semantic framework for their processing. This is not an issue in the original WS-Eventing, because there is only one way to semantically parse Delivery/@Mode <mailto:Delivery/@Mode> . - Wu Chou. ________________________________ From: Gilbert Pilz [mailto:gilbert.pilz@oracle.com <mailto:gilbert.pilz@oracle.com> ] Sent: Tuesday, July 07, 2009 8:00 PM To: Chou, Wu (Wu) Cc: Bob Freund; public-ws-resource-access@w3.org <mailto:public-ws-resource-access@w3.org> Subject: Re: Issue-6692 - Interim agreement draft Wu, Please describe in detail the interoperability problems that will result if we allow "arbitrary" and "open ended" XML extensions. - gp On 7/7/2009 2:52 PM, Chou, Wu (Wu) wrote: Bob, Our understanding is: the consensus at the F2F meeting is to replace the mode uri and use Qnames to define the delivery mechanism. It is a refactor or a replacement of the original simple mode uri for the ease of composition. It is not to allow open ended xml to define the delivery mechanism and lump into other extensions under xs:any. By allowing that, we are making a simple replacement of mode uri arbitrarily complex. Moreover, when a Qname is used to specify a requirement, as it is used here for defining delivery mechanism, it is using the WS-Policy semantics of an assertion. We will show in our proposal that this can be described using non-nested policy assertions, but do not require a full implementation of WS-Policy and still using simple Qname matching, since the list of Qnames used here, as replacement of mode uri, is not nested. An arbitrary open ended xml has no uniquely defined semantic meaning, and therefore, it will introduce interoperability problem unless its semantic interpretation is specified as in Policy. We are seriously concerned the consequence to generalize from a list of non-nested Qnames into an arbitrary open ended xml which has no uniquely defined semantics. - Wu Chou. ________________________________ From: Chou, Wu (Wu) Sent: Monday, July 06, 2009 8:09 PM To: Bob Freund Cc: 'public-ws-resource-access@w3.org <mailto:public-ws-resource-access@w3.org> ' Subject: Re: Issue-6692 - Interim agreement draft Bob, Glad to see some good progress being made. We would like to add a further work issue to your list: 4) Using Policy inside the delivery element to describe delivery extensions. Rationale: If any xml under xs:any is allowed as extension elements to change the default Push delivery, how to uniquely determine the semantics and behavior represented by these extension elements in a light weight and computational efficient way will become an acute issue. In addition, event source needs a way to advertise the allowed delivery extensions/combinations. And if an event subscription is accepted, the event subscriber should know exactly what delivery mechanism is used by the event source to send event notification. After some study and comparison, we would like to propose using Policy inside the delivery element to address this issue. We will submit a detailed proposal for the WG to discuss. This proposal will cut across the current TBD topics 1-3 and as a result may need to be handled before the others. Many thanks, - Wu Chou. Wu Chou, IEEE Fellow, Ph.D. | Director |Avaya Labs Research | AVAYA | 233 Mt. Airy Road| Rm. 2D48 | Basking Ridge, NJ 07920 | Voice/Fax: 908-696-5198 / 908-696-5401 | wuchou@avaya.com <blocked::mailto:wuchou@avaya.com> From: Bob Freund <bob.freund@hitachisoftware.com <mailto:bob.freund@hitachisoftware.com?Subject=Re%3A%20Issue-6692%20-%20 Interim%20agreement%20draft&In-Reply-To=%253CFDF27172-5127-4D9C-B7BC-B2C AC4D83697%40hitachisoftware.com%253E&References=%253CFDF27172-5127-4D9C- B7BC-B2CAC4D83697%40hitachisoftware.com%253E> > Date: Mon, 6 Jul 2009 13:43:03 -0400 Message-Id: <FDF27172-5127-4D9C-B7BC-B2CAC4D83697@hitachisoftware.com> <mailto:FDF27172-5127-4D9C-B7BC-B2CAC4D83697@hitachisoftware.com> To: public-ws-resource-access@w3.org <mailto:public-ws-resource-access@w3.org?Subject=Re%3A%20Issue-6692%20-% 20Interim%20agreement%20draft&In-Reply-To=%253CFDF27172-5127-4D9C-B7BC-B 2CAC4D83697%40hitachisoftware.com%253E&References=%253CFDF27172-5127-4D9 C-B7BC-B2CAC4D83697%40hitachisoftware.com%253E> The following is a draft that incorporates the current state of agreement on Issue-6692. Note that within the document there are several areas marked "TBD" which represent further aspects that are yet to be thrashed out. This version has been reviewed by both Microsoft and IBM and both are agreeable as to it use as the reference for further issue negotiation. The summary of further work needed is : 1) Fault behavior relating to delivery extensions as the original fault definition related to @mode 2) extension negotiation behavior if any since the original @mode fault optional detail element was thought to provide some negotiation mechanism albeit unreliable 3) Use of the word "Push" rather than simply the one default method of notification delivery. Nothing particularly distinguishes "Push" from normal asynchronous delivery and its use in th text is infrequent I would be interested in discussing this on the next call as well as the opinion of folks as to the potential division of this issue into three additional issues as represented by the points above. thanks -bob * application/msword attachment: wseventing-6692-9-1.doc <http://lists.w3.org/Archives/Public/public-ws-resource-access/2009Jul/a tt-0002/wseventing-6692-9-1.doc> * application/pkcs7-signature attachment: smime.p7s <http://lists.w3.org/Archives/Public/public-ws-resource-access/2009Jul/a tt-0002/smime.p7s>
Received on Tuesday, 21 July 2009 18:29:23 UTC