[Zope3-dev] Workflow

Shane Hathaway shane@zope.com
Thu, 07 Nov 2002 11:42:35 -0500


Ulrich Eck wrote:
> Hi Flow'ers
> 
>> I don't mean to unify them, since they don't compete, so there is nothing
>> to unify. :-)
> 
> 
> good .. let's agree that we won't try to unify awf/ewf ..

We need to drop the terms AWF and EWF, since they have convoluted meanings.

> Do we need to have both techniques implemented in Zope3?
> ---------------
> required
> wanted
> optional +1
> not wanted
> ---------------
> 
> Which Implementation is more important?
> ---------------
> Activity-Based Workflow +1
> Entity-Based Workflow
> ---------------

You're not understanding.  This isn't a real choice.  It's like choosing 
between "Linux" and "Python"--you can have Linux with or without Python, 
and you can have Python with or without Linux.  Again, let's drop these 
terms.

> Please vote, that we can concentrate on things we really need
> for rotterdam-sprint.

What you need to do is define the interface of process definitions.  It 
should be short and simple and should not assume the use of activities, 
nor should it assume that content objects map directly to process 
instances.  Use CMF's WorkflowDefinition interface as a guide (but do 
not copy it.)  Then you should create a process definition class based 
on activity diagramming.

To clarify, the word "activity" comes from UML activity diagrams.  Here 
is a nice short description:

http://www-106.ibm.com/developerworks/library/tip-whenuml/

Activity diagrams are only one of many ways to create a process 
definition.  Workflow services should not assume the use of activities.

> Depending on this we need to agree on:
> 
> 1. Terms we use:
>   Many different sayings/terms are still used,
>   We need to find a common language to be able
>   to communicate.

Well, dropping the word "entity" will help. :-)

> 3. How do we specify a process (ProcessDefinition):
>   what is needed, what is optional:
>   where are Processdefinitions stored: ZODB/Filesystem/RDB/LDAP ?
>   how detailed are processed defined, what capabilities will be provided ?
>   (-->workflow patterns)
>   will we be compatible with XPDL and/or other standards ?

You don't have to think about storage details at the same time you think 
about activity diagramming.  Keep them separate for simplicity.

> 4. Implemetation-Details:
>   what is needed, what is optional:
>   wich capabilities are needed: Sequence/Parallel Split/Synchronisation/
>   Exclusive Choice/Simple Merge/+?
>   is the workflow-engine request-based only (or will it have some 
> "heartbeat"
>   to detect e.g. timeouts/deadlines)
>   many more :) .. just wanted to start with something

The process instances will react to events; one kind of event might be a 
"heartbeat" or a "timeout".  You can implement all the operations and 
concurrency you want in your activity-based process definition.  No need 
to vote on that.  Code away! :-)

Shane