The physical centralization of process logic is the basis of the Process Centralization
pattern and is fundamental to orchestration platforms in general.
Highlighted in this brief section is the tool support provided by WF for
centrally maintaining workflowlogic, as well as a statement regarding
lack of support for WS-BPEL, an industry standard commonly associated
with this pattern.
Centralized Process Maintenance
An advantage of
creating applications using workflows is the ability to define the
workflow graphically, which is why WF includes a designer for Visual
Studio. By default, the activities appear in the toolbox, letting a
developer drag and drop them onto the tool’s design surface to create a
workflow. The workflow designer is a convenient way to interact with the
workflow namespace.
Workflows created with the
designer are stored in a file based on XAML, a declarative XML language
used to define objects, their properties, relationships, and
interactions. Upon execution, the runtime engine takes the XAML workflow
and creates workflow instances. While there is only one XAML-based
workflow file, there can be multiple workflow instances running at any
given time.
The
designer allows you to model a Sequential Workflow Console Application
or a State Machine Workflow Console Application. After selecting the
appropriate model, you need to add activities by dragging and dropping
them from the toolbar.
WS-BPEL Support
The WS-BPEL standard
for the definition of an orchestration language emerged about the same
time as the majority of the WS-* standards, but it targeted
platform-independent business process definitions instead of
cross-platform interoperability.
WS-BPEL is not
WF’s native orchestration language because it does not support all the
workflow constructs and styles WF provides. For example, WS-BPEL does
not support state-machine type workflows (WF 3.0), flowchart workflows
(WF 4.0), nor does it define the integration of a rules engine.
However, with WF
4.0’s fully declarative programming model, WF has natively become more
comparable to the WS-BPEL language and further supports translation from
XAML into WS-BPEL.