RE: Workunit blocking - an alternative that addresses both sets of required semantics

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