Datasheet
framework to assist in the development of workflow-based applications, should embody these features.
The tenets are as follows:
❑ Workflows coordinate work performed by people and software.
❑ Workflows are long running and stateful.
❑ Workflows are based on extensible models.
❑ Workflows are transparent and dynamic throughout their lifecycle.
Workflows Coordinate Work Performed by People and Software
This tenet tells us that people play a vital role in the world of software systems related to workflow and
processes. Human interaction often occurs through e-mail, web pages, mobile devices, or other front
ends. In some instances, the interface between people and software can be part of the normal flow of a
process. For example, a workflow might require a human to approve every transaction that comes through
an e-commerce website. Human interaction may also be necessary to handle exceptions that cannot be
managed in an automated fashion. This scenario may arise when a piece of information necessary for
workflow progression is missing.
Because of this requirement, a workflow platform should provide features and infrastructure to effectively
handle human interaction and all the issues that come along with it. This includes sending and receiving
messages in an untimely manner. People cannot always be relied upon to act quickly or consistently.
Workflows Are Long Running and Stateful
This tenet is important due in large part to the previous one. Because humans are inherently not reliable
and tend to interact with software systems on an ad hoc basis, workflows need to be able to run for long
periods of time. More specifically, they should be able to pause and wait for input. This could be for
hours or months or even longer. Consider a vacation-request workflow at a company. If an employee’s
manager is out of town, and the employee is requesting a vacation occurring nine months from now,
the manager may not respond for weeks.
In addition, a workflow that coordinates software services that are external to an organization cannot
rely on instant responses from these peripheral systems. Because of these characteristics, workflows
need to be able to run, or at least be waiting to run, for an undetermined amount of time.
The stateful requirement means that the context of a workflow instance should remain intact while the
workflow is waiting for feedback. Consider the vacation workflow that goes on for many weeks. If
the workflow is not able to save its state, it may be lost forever if the server it is running on is rebooted
due to a power outage or other issue.
Workflows Are Based on Extensible Models
The purpose of workflow is to automate a business process, and because each type of business has a
wide range of problems, a workflow platform should be extensible at its core. What works for one
business problem domain may not apply to another. It is reasonable that a workflow platform cannot
account for every kind of activity that needs to occur in every type of workflow. The great thing about a
well-architected, extensible system is that developers are able to build the components that were not
included out of the box.
4
Chapter 1: An Introduction to Workflow and Windows Workflow Foundation
04_053867 ch01.qxp 2/20/07 2:40 PM Page 4