- From: Tony Fletcher <tony_fletcher@btopenworld.com>
- Date: Tue, 7 Dec 2004 12:55:54 -0000
- To: "'Nickolas Kavantzas'" <nickolas.kavantzas@oracle.com>, "'Gary Brown'" <gary@enigmatec.net>, <public-ws-chor@w3.org>
- Message-ID: <000c01c4dc5c$16ecb4d0$590a0a0a@corp.choreology.com>
Dear Nick, Gary and others, I still feel uncomfortable about saying that guards and repeat conditions are blocked, if block is set to 'true' until a duration or deadline time function becomes true rather than saying that the function is evaluated and may return true or false. However, I can see that the current way of doing things gives a method of waiting for a time condition to become true without implying repeated looping and polling. So I think I can live with it. We do need to make sure it is crystal clear in the specification and some examples in the primer should help. I am OK with Gary's latest proposal, as I currently understand the situation. On the later point, I think it is true that if you actually do want to test whether a deadline or duration has passed and move on if it has not, then you can do that by using the getCurrentDateTime function, or one of the other time functions to get the current date and / or time, and test that against a given value (perhaps extracted from a message or calculated) rather than use the deadline or duration functions. I will put some specific comments in a separate email. 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) -----Original Message----- From: public-ws-chor-request@w3.org [mailto:public-ws-chor-request@w3.org] On Behalf Of Nickolas Kavantzas Sent: 06 December 2004 21:19 To: Gary Brown; public-ws-chor@w3.org Subject: Re: Workunit blocking - an alternative that addresses both sets of required semantics The way the 'hasDuration/DeadlinePassed' functions would work with a WU with block=true were given by me as an example that demonstrates the existing semantics of WU with block=true. As another example look at the variablesAligned() function text and also look at the example (c) in the WorkUnit section that uses this function with a WU having block=true. -- Nick ----- Original Message ----- From: Gary Brown <mailto:gary@enigmatec.net> To: public-ws-chor@w3.org Sent: Monday, December 06, 2004 12:12 PM Subject: Workunit blocking - an alternative that addresses both sets of required semantics Based on the discussion on tonight's conference call, I believe the only reason that was given for needing the additional "or the guard condition evaluates to "false" " text, was to cater for the 'hasDuration/DeadlinePassed' functions. If this is the case, then I believe that these functions should be treated in the same way as variables are within the following text - i.e. the blocking semantics should be specified explicitly in respect of those concepts. This would mean that it would not be necessary to apply the blocking semantics to all conditions that may evaluate to false, but only those that contain one of the duration/deadline functions. Therefore I propose changing the text from: If the attribute block is set to "true" and one or more required Variable(s) are not available or the guard condition evaluates to "false", then the Work Unit MUST block. When the required Variable information specified by the guard condition become available and the guard condition evaluates to "true", then the Work Unit is matched. to: If the attribute block is set to "true", then the condition will be examined to determine if it satisfies the necessary constraints for it to be evaluated. If the constraints are not satisfied, then the workunit will suspend pending all of the constraints being satisfied. These constraints define that all the variables referenced in the condition must be available, and any time related functions (i.e. hasDurationPassed and hasDeadlinePassed) must evaluate to true. When the constraints have been satisfied, the guard condition will be evaluated. If the result is "true", then the Work Unit is matched, otherwise the Work Unit is disabled. Regards Gary
Received on Tuesday, 7 December 2004 12:56:35 UTC