Definition of Orchestration
A technique used to compose hierarchical and self-contained service-oriented business processes that are executed and coordinated by a single agent acting in a "conductor" role. (From OASIS Reference Architecture for Service Oriented Architecture Version 1.0 ,Public Review Draft 1, 23 April 2008, p. 69).
A technique used to characterize and to compose service-oriented business collaborations based on ordered message exchanges between peer entities in order to achieve a common business goal. (From OASIS Reference Architecture for Service Oriented Architecture Version 1.0 ,Public Review Draft 1, 23 April 2008, p. 71).
Therefore, choreography is used when the service components for a given composite application exist in multiple ownership domains. SOA experts frequently refer to this environment as an Ecosystem SOA; while cloud terminology would call this environment a Public Cloud.
- The composite application exists within a single ownership domain, so security of the composite application is less complex
- The organization can count on a given level of performance and can increase the performance with additional investments in its own service components and systems
- The organization can count on a given level of reliability
- There is stability in the operation of the system from the users' perspective (it does the same thing the same way all the time).
- If there are defects, the sub-organization responsible for the composite application can correct it without (formal or informal) contract negotiations.
- If new technology should be inserted into one or more service components, the organization owning the composite application can implement it without reference other organization's.
- The composite application exists across two or more ownership domains, so that in teaming, sub-contracting, and similar situations the dynamic linkage of Choreography is very helpful.
- If there is a highly specialized service component that is required to perform a particular function, then choreography is preferred.
- In intelligence gathering situations
- In non-core "business" functions. For example, if you are the business of manufacturing ice cream cakes, then having a full time HR function, or even accounting function may not be cost efficient and is not part of the core functions of the organization. Instead, they are sustaining functions, which can be outsourced. In smaller businesses, linking to outside HR and Accounting functions for various services may, likewise, be sensible.
- Finally, if service components are treated as "apps for applications" then many of the benefits are the same as for end-user using "apps" on their wireless device.
- It can't control the policies and standards used within the service component(s) that are outside its ownership domain; it can only contract for its use. This means that it has little power to audit the service component other than for the contractual obligations, such as Service Level Agreements (SLAs).
- The standards and policies to which the services are built may change, so that a customer organization may need to either change it interface, wavier one or more of its policies and standards, or discover a new service.