- From: Tony Fletcher <tony_fletcher@btopenworld.com>
- Date: Sat, 8 Jan 2005 01:18:25 -0000
- To: "'Tony Fletcher'" <tony_fletcher@btopenworld.com>, <public-ws-chor-comments@w3.org>
- Cc: <public-ws-chor@w3.org>
- Message-ID: <001a01c4f51f$f3c71b80$6401a8c0@corp.choreology.com>
The CDL specification ( Web Services ChoreographyDescription Language Version 1.0 W3C Last Call Draft 17 December 2004 <http://www.w3.org/TR/2004/WD-ws-cdl-10-20041217/> http://www.w3.org/TR/2004/WD-ws-cdl-10-20041217/ ) should specifically state whether the short circuit evaluation of Boolean conditions is mandated or prohibited. Short circuit evaluation of Boolean conditions does not alter the value of the condition but in CDL it can alter the time at which that condition evaluation becomes available, which in turn can alter the evolution of a choreography. My concern is that if different endpoint projections make the opposite assumption then erroneous behaviour could result. Consider a Boolean condition of the form Variable>100 AND hasDurationPassed(2hours) not exactly the correct syntax I am sure but hopefully you see the point. With this condition as the value of a guard and block =true and assuming the variable value is available immediately and is such that Variable>100 is FALSE then if short circuit evaluation is mandated then the condition evaluates to FALSE immediately and the choreography moves on. However, if short circuit evaluation is prohibited then the condition evaluates to FALSE only after two hours has elapsed - very different behaviour in time, and as other interactions may also be time dependent we have to remember that CDL can yield descriptions with some dependency on time. Therefore: (!!) 1) Rationale: Short circuit evaluation of Boolean conditions should be explicitly mandated or prohibited so that different tools, endpoint projections, etc do not make contrary choices of how to evaluate. Add to section 2.4.3 Expressions (or elsewhere if a better place can be found): Boolean conditional expressions MUST use short circuit evaluation techniques whatever the setting of the block attribute. That is once the value of a conditional expression can be evaluated and the result will no longer change if further variables become available or time based functions become true, the conditional expression returns its value. Note: If it is thought this incorrect and we should not permit short circuit evaluation for some good reason then we should specifically prohibit it and add text similar to that above but stating MUST NOT instead. Best Regards Tony A M Fletcher Cohesions (TM) Business transaction management software for application coordination www.choreology.com <http://www.choreology.com/> Choreology Ltd., 68 Lombard Street, London EC3V 9LJ UK Tel: +44 (0) 1473 729537 Mobile: +44 (0) 7801 948219 tony.fletcher@choreology.com (Home: amfletcher@iee.org)
Received on Saturday, 8 January 2005 01:18:57 UTC