- From: Amelia A Lewis <alewis@tibco.com>
- Date: Tue, 2 Jan 2007 11:09:43 -0500
- To: Arthur Ryman <ryman@ca.ibm.com>
- Cc: jonathan@wso2.com, Roberto.Chinnici@Sun.COM, www-ws-desc@w3.org, www-ws-desc-request@w3.org
+1
Given MEP extensibility, and the possibility of alternative fault propagation strategies, these modifications strike me as 'cleaner' and more comprehensive. I also agree with Arthur and Jonathan on the language for the other assertions.
Amy!
On Tue, 2 Jan 2007 10:40:57 -0500
Arthur Ryman <ryman@ca.ibm.com> wrote:
>Jonathan,
>
>I think our assertions should be easy for developers to understand,
>and they should be "atomic" in the sense that they should test a
>single condition.
>
>The counter-example to this is the errors you can get from an XSD
>validator. They can sometimes force you to read the XSD spec for days.
>
>The way you phrase the first two is good. I'd phrase the last two as:
>
>- If the local name is ?infault? then the message exchange
>pattern MUST support at least one fault in the "In" direction
>- If the local name is ?outfault? then the message exchange
>pattern MUST support at least one fault in the "Out" direction
>
>This rewording delegates the condition to the MEP. It allows for other
>fault propagation rules.
>
>Arthur Ryman,
>IBM Software Group, Rational Division
>
>blog: http://ryman.eclipsedevelopersjournal.com/
>phone: +1-905-413-3077, TL 969-3077
>assistant: +1-905-413-2411, TL 969-2411
>fax: +1-905-413-4920, TL 969-4920
>mobile: +1-416-939-5063, text: 4169395063@fido.ca
>
>
>
>"Jonathan Marsh" <jonathan@wso2.com>
>Sent by: www-ws-desc-request@w3.org
>12/21/2006 05:20 PM
>
>To
>Arthur Ryman/Toronto/IBM@IBMCA, "'Roberto Chinnici'"
><Roberto.Chinnici@Sun.COM>
>cc
><www-ws-desc@w3.org>, <www-ws-desc-request@w3.org>
>Subject
>RE: Proposal for CR108
>
>
>
>
>
>
>Per this morning?s call, CR108 is closed, but Arthur?s suggestion will
>become a new issue.
>
>AIUI, he is proposing something along the lines of these four new
>assertions, which while they may be (I?m still not sure) strictly
>redundant with the existing assertions, would provide more
>intelligible error messages to users:
>
>Add to 2.5.3:
>- If the local name is ?input? then the message exchange
>pattern MUST have at least one placeholder message with direction ?In?.
>- If the local name is ?output? then the message exchange
>pattern MUST have at least one placeholder message with direction ?
>Out?.
>- If the local name is ?infault? then the message exchange
>pattern MUST either have at least one placeholder message with
>direction ?In? and use the Fault Replaces Message propagation rule, or
>have no placeholder message with direction ?Out? and use the Message
>Triggers Fault propagation rule.
>- If the local name is ?outfault? then the message exchange
>pattern MUST either have at least one placeholder message with
>direction ?In? and use the Message Triggers Fault propagation rule, or
>have at least one placeholder message with direction ?Out? and use the
>Fault Replaces Message propagation rule.
>
>However, I?m not at all sure the last two are 1) correctly stated, 2)
>don?t overconstrain the development of extended MEPs, or 3) any less
>confusing then what we?ve got already.
>
>Jonathan Marsh - http://www.wso2.com -
>http://auburnmarshes.spaces.live.com
>
>
>From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org]
>On Behalf Of Arthur Ryman
>Sent: Wednesday, December 20, 2006 6:39 PM
>To: Roberto Chinnici
>Cc: www-ws-desc@w3.org; www-ws-desc-request@w3.org
>Subject: Re: Proposal for CR108
>
>
>Roberto,
>
>Thx for the analysis.
>
>Amy rightly pointed our that the same situation occurs with
>MessageLabel-0004 and MessageLabel-0012.
>
>I was assuming that these assertions applied to the case where there
>was at least one message placeholder with a given direction and that
>they were defining when the messageLabel was required. Here is my
>analysis
>
>Let P = The messageLabel AII is Present.
>Let Q = The MEP has a unique placeholder message with direction equal
>to the message direction.
>
>ML06 = If not(Q) then P.
>ML14 = If not(P) then Q.
>
>Both of these propositions are equivalent to the symmetrical statement
>(P or Q), which translates to:
>
>The messageLabel AII MUST be present OR the MEP MUST have a unique
>message placeholder with direction equal to the message direction.
>
>However, we have not in fact ensured that there is at least one
>placeholder message in the given direction, that my translation is
>wrong since in that case
>
>not(Q) = The MEP has either zero OR more than one placeholder message
>in the given direction.
>
>I propose the following resolution:
>
>In 2.5.3 Mapping Interface Message Reference's XML Representation to
>Component Properties add the following assertion:
>
>If the local name is input then the MEP MUST have at least one
>placeholder message with direction = in.
>If the local name is output the the MEP MUST have at least one
>placeholder message with direction = out.
>
>I agree that we can drop MessageLabel-0004 and keep MessageLabel-0012.
>
>Similarly, fix up
>
>2.10.3 Mapping Binding Message Reference's XML Representation to
>Component Properties
>
>the same way.
>
>We probably have to fix up the Interface Fault Reference and Binding
>Fault Reference the same way.
>
>Arthur Ryman,
>IBM Software Group, Rational Division
>
>blog: http://ryman.eclipsedevelopersjournal.com/
>phone: +1-905-413-3077, TL 969-3077
>assistant: +1-905-413-2411, TL 969-2411
>fax: +1-905-413-4920, TL 969-4920
>mobile: +1-416-939-5063, text: 4169395063@fido.ca
>
>
>Roberto Chinnici <Roberto.Chinnici@Sun.COM>
>Sent by: www-ws-desc-request@w3.org
>12/19/2006 06:20 PM
>
>
>To
>www-ws-desc@w3.org
>cc
>
>Subject
>Proposal for CR108
>
>
>
>
>
>
>
>
>
>
>With respect to CR108, I set out to prove that MessageLabel-0006
>(henceforth ML06 for brevity) and MessageLabel-0014 (ML14) are
>equivalent and discovered that they are not.
>
>So now I'm in agreement with Amy on this point and I have a proposal
>to close CR108. But before doing that, I'd like to establish that ML06
>and ML14 are not equivalent.
>
>------ PART 1. ML14 => ML06 ------
>
>I'm going to show that ML14 implies ML06 (I use "=>" for logical
>implication).
>
>Let's consider the two assertions:
>
>ML06: The messageLabel attribute information item of a
>binding message reference element information item MUST be present if
>the message exchange pattern has more than one placeholder message with
>{direction} equal to the message direction.
>
>ML14: If the messageLabel attribute information item of a
>binding message reference element information item is absent then there
>MUST be a unique placeholder message with {direction} equal to the
>message direction.
>
>Assume <<the message exchange pattern has more than one placeholder
>message with {direction} equal to the message direction>>, i.e. the
>antecedent of ML06. (#1#)
>
>Now let's assume that the consequent of ML06 is false, i.e. that <<the
>messageLabel attribute information item of a binding message reference
>element information item is absent>> (#2#) and derive a contradiction
>from it, (#1#) and ML14.
>
>Applying modus ponens to (#2#) and ML14, we obtain <<there MUST be a
>unique placeholder message with {direction} equal to the message
>direction>>. This is inconsistent with (#1#).
>
>Consequently, ML14 => ML06.
>
>------ PART 2. ML06 =/=> ML14 ------
>
>Initially I thought that the two were equivalent, but they aren't.
>Here's a counterexample that proves that ML06 does not imply ML14.
>
>Consider a binding operation
>
><operation ref="tns:foo"> (#3#)
> <input />
> <output />
></operation>
>
>whose corresponding interface operation is
>
><operation name="foo" pattern="myNs:pattern1">
> <output />
></operation>
>
>such that the nyNs:pattern1 MEP (#4#) has no input messages.
>
>You would expect this to be an error, but if you only assume ML06 but
>not ML14, you can't prove it. Why? Because the antecedent of ML06 says
>"if the message exchange pattern has more than one placeholder message
>with {direction} equal to the message direction" and the MEP (#4#)
>doesn't satisfy it (zero is not "more than one").
>
>ML14 catches this case because the MEP (#4#) does not satisfy its
>consequent: <<there MUST be a unique placeholder message with
>{direction} equal to the message direction>> (there isn't one), thus
>making the component model is invalid. So ML06 =/=> ML14.
>
>------ PART 3. PROPOSAL ------
>
>Given that ML14 => ML06, we propose to remove ML06 from the spec as
>redundant.
>
>We should then close CR108 with no further action, indicating that the
>question it raised ("are ML06 and ML14 equivalent?") can be answered
>negatively by the counterexample in part 2 of this message.
>
>Thanks,
>Roberto
>
>
>
--
Amelia A. Lewis
Senior Architect
TIBCO/Extensibility, Inc.
alewis@tibco.com
Received on Tuesday, 2 January 2007 16:11:02 UTC