Orchestration builds upon service composition by
aiming to establish a physical environment capable of centrally
executing and governing multiple automated business processes. The
Orchestration compound pattern represents such an environment via the co-existent application of a set of specific patterns (Figure 1).
Process Abstraction , Process Centralization , and Orchestrated Task Services
The Process Abstraction pattern is fundamental to orchestration because an orchestration
platform is designed specifically to house and execute parent business
process logic. Process Centralization is equally fundamental because an orchestration platform enables the
centralized hosting, execution, and governance of the same parent
business process logic.
The application of Process Abstraction alone results in the creation of task services. However, it is the combined application of Process Abstraction and Process Centralization that defines the orchestrated task service model. This is because
orchestrated task services are distinguished from regular task services
by the fact that they are hosted within an orchestration platform.
In other words, although they logically still abstract the same non-agnostic service logic into a separate layer (Figure 2), they are different in how they are physically implemented and administered.
Orchestrated task services
are built within and upon the specific features and architectural
components that comprise an orchestration environment. This changes the
baseline complexion of the task service architecture to such an extent
that a separate service model classification is warranted.
As with any type of service,
what qualifies a body of orchestration logic as a service is the
existence of a service contract. Within the .NET framework, a body of
orchestration logic is commonly referred to as just an orchestration, regardless of whether it exists as an orchestrated task service. Figure 3
shows how the common elements of .NET orchestration platforms relate to
each other, including how they relate specifically to orchestrations.
Process Centralization and Tools
.NET orchestration
environments provide graphical tools to simplify the process of defining
and maintaining complex orchestration logic. Windows Workflow
Foundation, for example, allows you to dynamically load orchestration
code, whereas BizTalk Server provides management and monitoring tools to
gather intelligence about running process instances and, if necessary,
managing updates to orchestration assemblies. Both platforms provide
process designers, such as the one shown in Figure 4.
Process Abstraction and WS-BPEL
Orchestration
platforms are commonly associated with the use of WS-BPEL as a means of
expressing parent business process logic in an executable syntax. The
WS-BPEL industry standard has a colorful history that has been well
documented in other books in this series