Service composition is a term used in computer science to describe the way services are linked. Since the term is mostly used in the field of service-oriented architecture, it is also common under Web Service Composition. Two types of compositions are distinguished: orchestration and choreography. Service composition can consist of one or both types.
Orchestration is the flexible combination of several services into one composition. This composition describes an executable business process. Both in-house and external services can be combined. The process flow is controlled by a participant. Each service has a limited scope of view and can only decide on processes within its field of view. Activities behind a direct communication partner remain hidden. WS-BPEL is an example of a language for orchestrating Web services.
In choreography, each service describes its task throughout the composition. There is no central point that ensures correctness and controls the fulfilment of tasks. The focus is on the exchange of messages between the services. WS-CDL is an example of a choreographic language.
Demarcation of Orchestration and Choreography
The orchestration contains a description of the services, their conditions for calling, and dependencies and alternatives. The process is seen from the perspective of one of the “participants”, i.e. this calls for other processes. In contrast, choreography describes how the individual processes interact with each other. According to the scheme below, the orchestration is the local description of a (business) process, whereas the choreography involves the interaction of several processes.
The difference between orchestration and choreography can also be explained vividly using the example of a road intersection: Orchestration corresponds to a traffic light control for the central control of all vehicles by light signals. Choreography, on the other hand, corresponds to a roundabout without central control. General rules in the roundabout determine how vehicles turn into and then leave the roundabout.
Another example would be the situation in a classical orchestra: If you look at a single part from the point of view of an orchestra member, then this corresponds to the choreography. If, on the other hand, you look at the score through the eyes of the conductor, you get an overview of what is going on overall. Consequently, this corresponds to orchestration.
An example of an orchestration language would be WS-BPEL. In contrast, WS-CDL would be an example of a choreographic language. Service composition has also been researched in publicly funded research projects that investigate service composition for different domains and different description languages. An example of such a domain is electromobility and the associated services. A more technical example is the SEMAPLAN approach.
Another approach to describing orchestration in IT uses a broader and undifferentiated view of the necessary concept levels and technologies that are relevant to the collaboration of services for joint service delivery. The orchestration therefore takes place in a wide field and touches the following areas, among others:
- Business Process Modeling
- Process control and description
- Service Directory
- Service Description
- Communication assurance and method calls
- Message logs and structure
There are different solutions for these concept levels, each of which sets its technological priorities.