Models of Open Systems
Most work to date on formal semantics of long-running transactions is geared towards the WS-* realisation of online service collaborations and targets distributed applications that are controlled by a single entity, which is where the SOC promise seems to have been realised. This is in line with the fact that most approaches are concerned with orchestration, where it is more natural to assume a central coordinator (the orchestrator) that is responsible for invoking and combining the single sub-activities in the collaboration required to meet a given business request.
An interleaving semantics, where concurrency between actions is reduced to a non-deterministic choice between their possible sequentialisations, is perhaps adequate to express concurrency in this view of a collaboration between online services, since the central controlling instance can be used to effectively serialise concurrent interactions. However, such formalisms may not be entirely appropriate in open distributed environments where applications and business requests require a similar collaboration but across organisational boundaries and hence do not depend on a central controller. In such scenarios the focus is shifted from the orchestration of a service to the choreography of the multi-party conversation.
There is an increasing consensus that this requires a formalism that handles true concurrency (rather than falling back on an interleaving semantics). This is something that is naturally provided by vector languages. We have now developed a formal model of long-running business transactions in environments where there is no single point of command and control. This includes support for recovery of a transaction whenever some failure is encountered. An animation tool for exploring the behaviours of long-running transactions within our modelling environment is available at:
http://transaction-engine.herokuapp.com/
