Societies of Systems

A journey into digitalization and the engineering of complex systems

Orchestration vs. choreography in systems-of-systems

Posted on 2016-11-29

Orchestration

When creating an SoS, there is usually a certain functionality or capability which is sought. This functionality emerges as a consequence of the collaboration that the constituent systems engage in. The functionality does however not emerge out of the blue, but it has to be designed like any other engineered system. In some way, the constituents have to be told what they should do or how they should behave in order for the SoS to reach its objectives. How this information should be conveyed to the constituents is a fundamental design decision, which is sometimes also limited by the context of the SoS, including what authority the different stakeholders have in relation to each other.

There have been attempts to identify recurring patterns, or archetypes, that are common in SoS with respect to this coordination. The most influential set of archetypes was initially proposed by Maier (1996, 1998), and then extended by Dahmann and Baldwin (2008). It is based on the authority and responsibility in managing the evolution of the SoS, and consists of the following archetypes:

The virtual archetype is somewhat questionable, since it can be discussed if an SoS without a purpose is even to be considered a system. The example of a virtual SoS proposed in the literature is the World Wide Web. On the other extreme, a very directed system would probably have constituents with very limited use outside the SoS context, and hence it is more of a system than an SoS.

In a directed SoS, the central management organizations typically define the design of the constituent systems, whereas in the acknowledged archetype, it reaches agreements with the organizations responsible for the constituent systems.

Although this set of archetypes gives interesting perspectives on the power distribution in an SoS, it does not provide details about how the information about desired behavior is conveyed to the constituents. However, in the domain of service-oriented architecture (SOA), this has been discussed using the concepts of orchestration and choreography. The differences between these two concepts are as follows (as explained here):

The parallel to the SoS archetypes is pretty obvious: a directed SoS is designed as an orchestration, whereas a virtual SoS is based on choreography. The other archetypes constitute a mix of the two.

Personally, I have always found the SoS archetypes difficult to apply in practice, possibly since most concrete SoS examples are in the mixed categories, and these are not very distinct. Possibly, a route forward is to instead refine the concepts of orchestration and choreography to concretize for a given case how collaboration actually is coordinated?

Choreography