- From: Furniss, Peter <Peter.Furniss@choreology.com>
- Date: Fri, 2 Jul 2004 12:10:47 +0100
- To: <public-ws-chor@w3.org>
- Message-ID: <221369570DEDF346AE42821041345E8968BEF9@imap.choreology.com>
( I've been working with Tony Fletcher on the cdl : transactionality stuff and getting back up to speed on cdl - apologies if the following indicates radical misunderstanding or is already on the issues list - I've looked, but not found answers. It isn't directly related to transactions, rather to how things work generally) The last example in (27 April) 2.5.1.3 on choice shows a choice of unguarded activities where the selection criteria are non-observable, but are obviously whether or not credit is approved: They show interactions on different channels, but presumably it would be reasonable for these to be the same but the operations different: <choice> <interaction channelVariable="pointOfSaleCustomerRecords-channel" operations="creditGood" .. </interaction> <interaction channelVariable="pointOfSaleCustomerRecords-channel" operations="creditBad" .. </interaction> </choice> So, within this choreography (which, let us assume is just two-party, point-of-sale to custormer-records (expand to b2b equivalent as you please)), the criteria used by customer records to establish the credit are invisible. They decide somehow. But now suppose we want to use this choreography as a component of a wider one, where the interactions of customer-records with a credit checking agency are also a component choreography. In the combined choreography, the criteria for the choice of interactions above will be explicitly dependent on which message received from the credit agency. It looks to me as though I would do that by creating a variable in the encompassing choreography (accessed only at the customerrecords role) which is set by the inner choreography to the credit agency and used in the choice above. But now I have to re-write the choice to have guards (there are some curiousities about blocking here; and where is appendix B ?) <choice> <workunit name="reportgood" guard="cdl:getVariable("CreditReport","/result"), "good" block="true"> <interaction channelVariable="pointOfSaleCustomerRecords-channel" operations="creditGood" .. </interaction> </workunit> <workunit name="reportgood" guard="cdl:getVariable("CreditReport","/result"), "bad" block="false"> <interaction channelVariable="pointOfSaleCustomerRecords-channel" operations="creditBad" .. </interaction> </workunit> </choice> (actually, we might not need the guard on the bad interaction at all, since it can't be accessed until the block on the first completes) But wouldn't the original, single relationship choreography have been clearer if it had had a good/bad credit variable , although that would be set by non-observable means. It would be a sort of parameter of the choreography, There's several directions to go from here, but this is enough for a first message that might be seriously offline. Peter ------------------------------------------ Peter Furniss Chief Scientist, Choreology Ltd web: http://www.choreology.com <http://www.choreology.com/> email: peter.furniss@choreology.com phone: +44 870 739 0066 mobile: +44 7951 536168
Received on Friday, 2 July 2004 07:11:20 UTC