- From: Gary Brown <gary@enigmatec.net>
- Date: Tue, 12 Oct 2004 11:11:40 +0100
- To: "WS-Choreography List" <public-ws-chor@w3.org>
Issue 870: "The current reactive mechanism introduces implicit links between concurrent activities that compromises simplicity and makes model verification difficult. As far as we can tell there are no use case requirements for such a reactive mechanism. Whereas there is a clear CSF for simplicity. " Some further information: Here is a simple example showing how the use of variables for synchronization can implicitly impact the interactions that may be performed, and also potentially introduce a different type of deadlock: <parallel> <workunit guard="cdl:getVariable(xyz)" block="true" > <interaction operation="foo" > .... <record> <target var="cdl:getVariable(abc)" /> </record> </interaction> </workunit> <workunit guard="cdl:getVariable(abc)" block="true" > <interaction operation="foo" > .... <record> <target var="cdl:getVariable(xyz)" /> </record> </interaction> </workunit> </parallel> This is an extreme case, but shows how the synchronization based on variables can introduce implicit dependencies that affect the true flow of a set of interactions. Possibly the model checking can be enhanced by modeling the variables as processes - so that the behaviour of synchronization can become explicit. However this will complicate the model checking. I am also not sure what would happen if the reactive mechanism was to become more complex, handling the unsetting of variables or even reacting to changes in the value of a variable.
Received on Tuesday, 12 October 2004 10:11:54 UTC