Safe and Sound is developing a platform for delivering decision support, workflow management and other knowledge sharing services for clinicians, and potentially patients, researchers and other stakeholders. This briefing summarises some of the technical concepts that are being used in the project.
Perspectives
First of all, we need to distinguish between the design of a system, its deployment and the authority policy over who takes part in the delivery of the services it is intended to support:
From the design perspective, a centralised model focusses on identifying the activities, while a distributed model on identifying the actors, their responsabilities and their interactions.
The deployment perspective describes where data and processes are, and can be, in theory, independent of architecture and design. A system can be designed as distributed, but deployed on a single central server.
The authority perspective defines the rules that actors have to follow in order to participate in the service.
From the architecture perspective, there is a range of different models from centralised to distributed:
- fully centralised means a conceptually closed system, where all the functionalities are controlled from an administrative centre. Both control and data flow are centralised. This is called an orchestration architecture.
- a step towards distribution can be taken by deplying the main process on a central server, but some (up to all) functionalities are external to the system, and are accessed using some remote invocation mechanism. Service-oriented architectures are examples. Control flow is centralised; data flow can be both centralised and distributed.
- a distributed system, the execution is distributed between different peers. Both data and control flow are distributed. This is called a choreography architecture.
Choreography and Orchestration
The distinction between service orchestration and service choreography commonly used in the literature is based on two metaphors which describe ways in which a number of actors can interact to carry out a shared task or provide a service:
- orchestration describes centrally controlled services by analogy with a conductor in an orchestra
- choreography is about distributed control in which individual services react to the behaviour of their peers like dancers "following a global scenario without a single point of control"
An interaction is a coordinated activity aiming at satisfying a set of goals, possibly different for each participant. Interactions between participants can be formalised as . Services collect around choreographies in order to reach their goals by performing a role in an agreed choreography. For example, an auction can be described by a choreography, in which the expected behaviour of the bidders and of the auctioneer is specified: the bidders send their offers; the auctioneer sends a message to the winner.
In a centralised architecture the authority perspective corresponds to the architecture itself: nothing that is not already in the architecture can take part. In a distributed system, on the other hand, the authority can be relaxed (you just need to comply with the interaction protocol), or more restricted (you have to be authorised by a specific body) or it can imitate a centralised architecture by explicitly specifying the actors that may participate in the service.