This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
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. The current construct may have complexity implications in model verification functionality that is still at early stage of understanding. There is a need to link activities through predicates and observed messages but this should be done in such a way as to make the relationships between activation more explicit.
will have a time boxed discussion on the agenda
Gary Brown adds: 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. http://lists.w3.org/Archives/Public/public-ws-chor/2004Oct/0019.html