Information related to issue 870, for discussion on tonight's call

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