This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 1126 - usage of 'time' within CDL
Summary: usage of 'time' within CDL
Status: CLOSED WONTFIX
Alias: None
Product: WS Choreography
Classification: Unclassified
Component: Last Call Comment: Confirmed Closed (show other bugs)
Version: unspecified
Hardware: PC Linux
: P2 normal
Target Milestone: --
Assignee: Martin Chapman
QA Contact: Martin Chapman
URL: http://lists.w3.org/Archives/Public/p...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-02-14 22:13 UTC by Greg Ritzinger
Modified: 2005-08-02 14:12 UTC (History)
0 users

See Also:


Attachments

Description Greg Ritzinger 2005-02-14 22:13:42 UTC
Just wanted to make a comment on the usage of 'time' within CDL, as the
different mechanisms do not seem very consistent. Therefore as part of the last
call process, I thought we may wish to review this and simplify the mechanism -
an outline proposal is provided at the end.

There are currently three places where time is used, the first two provide a
timeout scope mechanism, and the third appears to primarily be used as a 'sleep'
activity:

1) Interaction - time to complete

There is an element within the interaction called 'timeout' that can be used to
specify the time or duration when the interaction must complete by. If the
interaction has not completed, then the 'record' elements referenced by the
timeout will be performed. If one of these record elements has a
'causeException=true', then this will cause an exception, otherwise the
choreography would just continue past the interaction (with the relevant
variables set to indicate the failure).

2) Choreography - 'complete' expression

The complete expression on the 'choreography' element is used to prematurely
complete the choreography in a successful state. If the complete expression uses
a timeout CDL function, then a timeout can cause the choreography to be
completed. It does not seem valid that a choreography that has terminated due to
a timeout should be completed in a successful state + this mechanism does not
enable activities to be triggered to process the timeout, to enable the state to
indicate a failure.

3) Part of a WorkUnit guard condition

When used in a blocking guard condition, with the block attribute set to true,
the guard would block until the timeout has occurred. The semantics of this
construct is not representing a conditional statement, but is causing a 'sleep'
to occur prior to enabling the activities within the work unit.



Proposals:

The first two scenarios would be better represented using a 'timeout' scope
activity, which would contain the activities that were subject to the timeout.
If the activities within this scope do not complete within the defined time
period or duration, then these activities will be terminated and control will be
passed to a timeout handler associated with this scope.

In the first scenario described above, the 'record' elements that would have
been triggered by the timeout could be replaced by assign activities that would
achieve the same goal.

In the second scenario described above, this new mechanism would enable
activities to be performed when the timeout occurs, to determine in what state
the choreography should really complete.

The other benefit of this approach is that the set of activities within a
particular timeout scope can be wider than a single interaction, and less than a
whole choreography. Therefore it would be possible to define a timeout duraction
associated with a set of interactions - which in practice is more likely to be
the case.

The final part of the proposal is to create a new 'sleep' activity to replace
the use of the timeout functions within the workunit guard condition. This makes
the semantics of this activity very clear, and it also removes the requirement
for having the time based CDL functions - which will simplify the XPath expressions.


Regards
Gary
Comment 1 Martin Chapman 2005-02-15 21:07:02 UTC
agreed on con call 15-feb-05:

requies technical discussion
Comment 2 Martin Chapman 2005-03-08 10:47:41 UTC
Discussed at feb-mar 05 f2f:

http://lists.w3.org/Archives/Member/member-ws-chor/2005Mar/att-
0001/Ws_Chor_f2f__Feb-Mar_2005_-0.txt


Summary: can live with the explicit user mechanism (as per example below) but 
will try work on an a proposal.

User work around:

parallel
 {
   interact 1
   interact 2
   interact 3
   wu (duration)
   {
      assign (exception=true)
   }
}

Comment 3 Martin Chapman 2005-06-20 20:30:19 UTC
agreed to close wontfix at june f2f:

http://lists.w3.org/Archives/Member/member-ws-chor/2005Jun/att-
0003/June_2005_F2F_minutes_-_0.txt
Comment 4 Martin Chapman 2005-07-14 16:26:57 UTC
group notification of status change: http://lists.w3.org/Archives/Member/member-
ws-chor/2005Jul/0004.html
Comment 5 Martin Chapman 2005-08-02 14:12:43 UTC
no comments from group so closed confirmed:

http://lists.w3.org/Archives/Member/member-ws-chor/2005Jul/0004.html