- From: Tony Fletcher <tony_fletcher@btopenworld.com>
- Date: Mon, 13 Jun 2005 14:52:10 +0100
- To: "'Gary Brown'" <gary@pi4tech.com>, "'WS-Choreography List'" <public-ws-chor@w3.org>
- Message-ID: <000001c5701f$195e6180$0200a8c0@corp.choreology.com>
Dear Gary and others, Funnily enough you proposal is vaguely familiar. It is very similar, if not the same, as the one I made internally before we published your contribution to the group. (So on that basis I suppose I ought to support it, or at least feel somewhat vindicated!) However, Peter changed it to the current syntax. I am therefore reluctant to agree the change as Peter always does things for a good reason, if if that is not immediately obvious to the likes of me. It may have been as simple as leaving open the possibility of adding in child elements to finalizerReference in the future, if needs be (already there is an optional ANY type that can be filled). Also if we were to make the change then we would need to allow for several finalise elements next to each other so would still need to have a rule about the order they were performed in. I would therefore much prefer to leave the current syntax alone and just add a default lexical ordering rule for the few occasions when there are multiple elements together with no other ordering rule in force. Note that the problem can potentially occur wherever there is a maxOccurs="unbounded" (actually greater than ="1") and there is no applicable other ordering rule. We may need to also consider exchange and record within interaction, copy within assign, and workunit within exception Best Regards Tony A M Fletcher Tel: +44 (0) 1473 729537 Mobile: +44 (0) 7801 948219 tony.fletcher@choreology.com amfletcher@iee.org (also tony_fletcher@btopenworld.com) -----Original Message----- From: public-ws-chor-request@w3.org [mailto:public-ws-chor-request@w3.org] On Behalf Of Gary Brown Sent: 07 June 2005 21:56 To: 'WS-Choreography List' Subject: Proposal related to ordering of finalize activities 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.
Received on Monday, 13 June 2005 13:52:18 UTC