W3C home > Mailing lists > Public > public-ws-chor@w3.org > January 2005


From: Gary Brown <gary@enigmatec.net>
Date: Wed, 5 Jan 2005 14:18:16 -0000
Message-ID: <00a101c4f331$697b6ca0$4b00a8c0@LATTITUDEGary>
To: <public-ws-chor@w3.org>
Currently if guard evaluates to false, when block=true, it will continue to block until the guard evaluates to true

Although I can see that having the ability to block until a condition (e.g. OrderValue > 3000) is true is useful - I believe this will make it harder to infer flow from a CDL document, as the determination of dependencies between different concurrent threads now becomes more complex, as the actual nature of the execution of a choreography will be dependent upon runtime variable values. 

In the most extreme case, you could imagine a choreography having a single <parallel> construct with 'n' workunits, all having defined blocking conditions, where the flow is determined only by inferring the potential links between the cause and effect of activities within the workunits, that may change values that would then cause other workunits to become enabled. Although this is not the most likely usage of CDL, the fact that we provide mechanisms that support this usage means that we also have to provide model checking to support this - and I think such uses would lead to a state explosion of possible outcomes, which would go against the stated aim of making model checking easy. 

I believe the "block until" mechanism is a good implementation technique for building event based systems - however CDL is a description language, and I don't think this approach is useful for building a good description of the interactions between distributed participants.

Gary and Steve
Received on Wednesday, 5 January 2005 14:18:27 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:01:06 UTC