My favorites | Sign in
Project Logo
                
Search
for
Updated Jul 18, 2008 by plorenz
GraphBasedWorkflow  
Why graphs are good for describing workflow

<-- Prev: What is Workflow ... Next: Core Concepts -->

Graphs and Processes

Graphs have been used for a long time to visually represent processes. Some examples are:

Graphs are visual, intuitive and ubiquitous. That finite state machines are graphs shows their expressive power. A graph combined with some storage is roughly equivalent to a Turing Machine, capable of executing any computation.

Alternatives

There are other ways of representing workflows. For example, one could just list out the actions along with their dependencies. The engine could then properly sequence the actions, For example, the simple Order Fulfillment example could be defined as

  1. Enter Order for Sales depends on nothing
  2. Bill Customer for Billing depends on 1
  3. Ship Product for Warehouse depends on 1
  4. Market to Customer for Marketing depends on 2, 3

While this would work fine for simple processes, it doesn't offer a way to define cycles. If for example, the warehouse people determine that they are out of stock, they may need to send the workflow back to the sales department so they can interact with the customer. This mechanism also lacks a clear means of flow control. For example, a single workflow may cover the order fulfillment process for many different product types. It is likely that some sections of the workflow would only apply to specific products.

<-- Prev: What is Workflow ... Next: Core Concepts -->


Sign in to add a comment
Hosted by Google Code