<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>1126</bug_id>
          
          <creation_ts>2005-02-14 22:13:42 +0000</creation_ts>
          <short_desc>usage of &apos;time&apos; within CDL</short_desc>
          <delta_ts>2005-08-02 14:12:43 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WS Choreography</product>
          <component>Last Call Comment: Confirmed Closed</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc>http://lists.w3.org/Archives/Public/public-ws-chor-comments/2005Feb/0006.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>--</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Greg Ritzinger">gritzinger</reporter>
          <assigned_to name="Martin Chapman">martin.chapman</assigned_to>
          
          
          <qa_contact name="Martin Chapman">martin.chapman</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>4041</commentid>
    <comment_count>0</comment_count>
    <who name="Greg Ritzinger">gritzinger</who>
    <bug_when>2005-02-14 22:13:42 +0000</bug_when>
    <thetext>Just wanted to make a comment on the usage of &apos;time&apos; 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 &apos;sleep&apos;
activity:

1) Interaction - time to complete

There is an element within the interaction called &apos;timeout&apos; that can be used to
specify the time or duration when the interaction must complete by. If the
interaction has not completed, then the &apos;record&apos; elements referenced by the
timeout will be performed. If one of these record elements has a
&apos;causeException=true&apos;, 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 - &apos;complete&apos; expression

The complete expression on the &apos;choreography&apos; 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 &apos;sleep&apos;
to occur prior to enabling the activities within the work unit.



Proposals:

The first two scenarios would be better represented using a &apos;timeout&apos; 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 &apos;record&apos; 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 &apos;sleep&apos; 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4065</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Chapman">martin.chapman</who>
    <bug_when>2005-02-15 21:07:02 +0000</bug_when>
    <thetext>agreed on con call 15-feb-05:

requies technical discussion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4021</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Chapman">martin.chapman</who>
    <bug_when>2005-03-08 10:47:41 +0000</bug_when>
    <thetext>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)
   }
}

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4309</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Chapman">martin.chapman</who>
    <bug_when>2005-06-20 20:30:19 +0000</bug_when>
    <thetext>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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4636</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Chapman">martin.chapman</who>
    <bug_when>2005-07-14 16:26:57 +0000</bug_when>
    <thetext>group notification of status change: http://lists.w3.org/Archives/Member/member-
ws-chor/2005Jul/0004.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5337</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Chapman">martin.chapman</who>
    <bug_when>2005-08-02 14:12:43 +0000</bug_when>
    <thetext>no comments from group so closed confirmed:

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

    </bug>

</bugzilla>