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 1493 - Ordering of activities in finalization
Summary: Ordering of activities in finalization
Status: CLOSED FIXED
Alias: None
Product: WS Choreography
Classification: Unclassified
Component: Last Call Comment: Confirmed Closed (show other bugs)
Version: unspecified
Hardware: Macintosh All
: 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-06-13 15:41 UTC by Steve Ross-Talbot
Modified: 2005-08-02 14:15 UTC (History)
0 users

See Also:


Attachments

Description Steve Ross-Talbot 2005-06-13 15:41:50 UTC
Referring back to an issue that Tony previously raised, regarding whether we needed to include in the 
document a default ordering statement for cases where it was not explicit, this issue was closed 
because it was felt that all structural activities did explicitly define their semantics.

However, I believe the 'finalize' activity is the except to the rule. It does not explicitly state that each of 
the finalizeReferences should be performed in sequence.

Therefore if we are going to fix this inconsistency, I think there are three possibilities:

1) We add a default ordering rule, although all other cases are explicitly covered
2) We add a new rule in the finalize activity to state that the finalizeReferences will be handled in 
sequence
3) I don't believe that the finalize element is adding any value - it is simply acting as a sequence. 
Therefore we could do any with this unnecessary grouping construct and move all of the attributes 
from the finalizeReference onto the finalize activity (and remove the finalizeReference).

Although technically no more proposals are being accepted, this was a last call issue that Tony raised, 
and therefore it appears as if it was prematurely closed.

Regards
Gary
Comment 1 Steve Ross-Talbot 2005-06-13 15:49:54 UTC
DEAFULT PROPOSAL: Adopting Gary's proposal in http://lists.w3.org/Archives/Public/public-ws-chor/
2005Jun/0007.html

DEFAULT IS ADOPTED UNLESS CARIFICATION BACK FROM Peter SUGGESTS OTHERWISE.
Comment 2 Steve Ross-Talbot 2005-06-14 11:59:31 UTC
PROPOSAL: http://lists.w3.org/Archives/Public/public-ws-chor/2005Jun/0007.html

Section 2.5.7 Finalizing a choreography

Change syntax from:

<finalize  name="ncname"? >
    <finalizerReference
            choreographyName="ncname"
            choreographyInstanceId="XPath-expression"?
            finalizerName="ncname"? />
    </finalizerReference>+
</finalize>

to:

<finalize  name="ncname"? choreographyName="ncname"
            choreographyInstanceId="XPath-expression"?
            finalizerName="ncname"? />


--------------------------------------------

Change: 
Each finalizerReference element enables a Finalizer Block in a performed instance of an immediately 
enclosed Choreography. Within a finalize element, each finalizerReference MUST refer to a different 
performed Choreography instance.

to:

The finalize activity enables a Finalizer Block in a performed instance of an immediately enclosed 
Choreography.

---------------------------------------------

Change:

Within the finalizerReference element, the choreographyName attribute identifies the Choreography 
referenced by the choreographyName attribute of the perform construct.

to:

The choreographyName attribute identifies the Choreography referenced by the choreographyName 
attribute of the perform construct.

----------------------------------------------

Change:

Within the finalizerReference element, the OPTIONAL choreographyInstanceId attribute identifies the 
performed Choreography instance to be finalized, using the value defined by the 
choreographyInstanceId attribute of the perform construct. The choreographyInstanceId attribute MAY 
be omitted if the contract logic of the performing Choreography is such that only one instance of the 
Choreography identified by the choreographyName attribute could have been performed when the 
finalize activity is enabled. If more than one instance of the Choreography identified by the 
choregraphyName attribute could have been performed, the choreographyInstanceId attribute MUST be 
present.

to:

The OPTIONAL choreographyInstanceId attribute identifies the performed Choreography instance to be 
finalized, using the value defined by the choreographyInstanceId attribute of the perform construct. The 
choreographyInstanceId attribute MAY be omitted if the contract logic of the performing Choreography 
is such that only one instance of the Choreography identified by the choreographyName attribute could 
have been performed when the finalize activity is enabled. If more than one instance of the 
Choreography identified by the choregraphyName attribute could have been performed, the 
choreographyInstanceId attribute MUST be present.

----------------------------------------

Change:

Within the finalizerReference element, the attribute finalizerName indicates which Finalizer Block is to 
be enabled in the performed instance. If the targeted, immediately enclosed, Choreography has only 
one defined Finalizer Block, then the finalizerName attribute is OPTIONAL.

to:

The attribute finalizerName indicates which Finalizer Block is to be enabled in the performed instance. 
If the targeted, immediately enclosed, Choreography has only one defined Finalizer Block, then the 
finalizerName attribute is OPTIONAL.

---------------------------------------------------------

Update the example:

 

<workunit name="chooseA"
        guard="cdl:getVariable('Chosen','','','Broker')='A'" >
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForA'"
                finalizerName="drawDown"/>
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForB'"
                finalizerName="replenish"/>
    </workunit>            

    <workunit name="chooseB"
        guard="cdl:getVariable('Chosen','','','Broker')='B'" >
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForB'"
                finalizerName="drawDown"/>
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForA'"
                finalizerName="replenish"/>
    </workunit>            

    <workunit name="chooseNeither"
        guard="cdl:getVariable('Chosen','','','Broker')='0'" >
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForA'"
                finalizerName="replenish"/>
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForB'"
                finalizerName="replenish"/>
     </workunit> 
The schema will also need to be updated.
Comment 3 Martin Chapman 2005-06-20 20:51:47 UTC
proposal agreed at June 2005 F2F:

http://lists.w3.org/Archives/Member/member-ws-chor/2005Jun/att-
0003/June_2005_F2F_minutes_-_0.txt
Comment 4 Greg Ritzinger 2005-06-24 21:05:12 UTC
As per comments above.
Comment 5 Martin Chapman 2005-07-14 16:11:18 UTC
group notification of status change: http://lists.w3.org/Archives/Member/member-
ws-chor/2005Jul/0004.html
Comment 6 Martin Chapman 2005-08-02 14:15:39 UTC
no comments from group so closed confirmed:

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