Reference document

Choreography Services

The Choreography Services provide the means to model the compositions of multiple technical services into so called choreographies and to specify the interfaces and protocols implemented by services participating in a choreography. Choreography is a set of autonomous activities that have a defined pattern of behaviour with respect to each other. There is no single activity that directs the other activities in choreography. Choreography distributes the control and relies on the ability of its component activities to understand and respond to events. Choreography treats services as peers that interact based on an agreement, rather than imposing a single-point-of-entry brokering pattern on top of them. In a choreography scenario composition is understood as the collaborative exchange that takes place based on the description of messages exchange and the interaction of a set of services seen from a global perspective. Choreographies are not executable in a sense that there is no central controller service that could be executed. Choreography mechanisms are used to specify the coordination agreement and behaviour of each service in choreography, including the external interfaces exposed by the services involved and the protocol implemented by each of the services involved, including order of messages being exchanged and specification of services that these messages will be exchanged with. These interfaces of services involved and message exchange protocol followed can be used to generate stubs for the actual service implementation (e.g. to be used and exposed by orchestration). However, choreography does not include the internal details of services involved.

Composition Services