A workflow is really a network of tasks.  Here are some general 
observations about workflow networks.  If it helps to clarify, mentally 
substitute 'node' for task.


   1. A workflow consists of tasks.
   2. Workflow tasks need to be linked together in predecessor-successor 
   relationships.
   3. Any task with no predecessors is a starting point.  It is ok to have 
   multiple starting points.  Each starting point starts a thread..
   4. Any task with no successors is an ending point.  It is bad to have 
   multiple ending points because you never know if the workflow is complete. 
    Potential multiple end points should flow into an "or" gate.ra
   5. Any task with two or more successors is a branch.  the branch count 
   starts at the count of start points and increments by the number of 
   successors minus 1 for each task.  each branch starts a subthread.
   6. A workflow has a master thread.  It meets these conditons:  a) it has 
   a starting point; b) it terminates at the ending point c) it has the 
   greatest number of tasks; in case of ties, the selection is arbitrary.
   7. Any task with two or more predecessors is a merge.  The merge count 
   starts at zero and increments by the number of predecessors minus 1 for 
   each task.
   8. Any workflow with one start point, one end point and no branches is a 
   linear workflow.  Easy to represent.
   9. In a valid workflow, the branch count equals the merge count.
   10. All subthreads must eventually merge with the master branch.  
   11. A subthread terminates when one of its tasks is shared with another 
   branch.  An unterminated subthread is not valid because of point 4.

If anyone has implemented a network that works this way, please provide any 
hints you can.

Reply via email to