NIH Enterprise Architecture Home

Service Orchestration Pattern

Description

Service Orchestration introduces state and flow control to create dynamic relationships between services that are determined at runtime, rather than the construction phase.

In this pattern, a service consumer invokes a process flow via the service interface. The orchestration engine invokes services to process various service requests which in turn invoke further service requests until the workflow process is completed and results are provided to the service consumer.

The Service Orchestration Engine, a component of the Enterprise Service Bus (ESB), handles the overall process flows, calling the appropriate web services and determining the next steps to complete. Currently, process orchestration is supported by TIBCO WS-Flow Language. In the future, Web Services - Business Process Execution Language (WS-BPEL) will be supported.

For the purposes of this pattern, services refer to either full web services, or services presented within the context of the ESB through the use of adapters. Process flows may also include the creation or consumption of events as shown in the Event Driven Architecture (EDA) pattern.

Please view the Service Orchestration Pattern below:

Diagram

Service Orchestration Pattern

Benefits

  • Provides open, standards-based approach for connecting web services together.
  • Coordinates and manages messages as they are routed from service to service.
  • Provides dynamic business process management and construction.
  • Provides more flexibility in building large grained services by orchestrating fine-grained services in different combinations.

Limitations

  • Implementing service orchestration in code requires dealing not only with the process itself, but also with ancillary, orthogonal functionality. This includes support for areas such as spawning and coordinating concurrent activities, asynchronous messaging, and management of the execution context.
  • A clear separation between the process logic and the web services used is required in order to achieve flexibility.
  • Orchestrated web services that are long-running must also manage exceptions and transactional integrity.
  • The architecture must take into account how the system will respond if there is an error or if the service invoked does not respond in a given time.

Recommended Usage

Service orchestration can be leveraged in the following situations:

  • When configurable business process flows are needed to support greater flexibility (e.g., different process flows and rules are required to support different organizations).
  • When there is an opportunity to create a new capability by combining existing services.

Time Table

This architecture definition approved on: May 24, 2006

The next review is scheduled in: TBD