[Zope3-dev] Workflow -> trying to summarize today's chat

Ulrich Eck ueck@net-labs.de
Thu, 07 Nov 2002 21:08:42 +0100


Shane, Vinzenco and talk about workflow in #zope3-dev and
i'll try to summarize what we talked about (perhaps it
helps me to understand it better and perhaps it's interesting
for you :)

1. ProcessDefinition:

   A ProcessDefinition consits of basically two parts:
   - Context
   - Strategy

  Context of the ProcessDefinition:

   Object-Centric:

    Object-Centric means, that the user chooses where to
    do something before he choses what to do.

    <hathaway_> In object-centric, you choose the noun, then a verb.

    Example: Publish-Review-Workflow from CMF


   Application-Centric:

    Application-Centric means, that the user chooses what to do
    and then where (which object/place).

    <hathaway_> In application-centric workflow, you choose a verb, and 
then a noun.

    Example: TBD

    Questions:

     - Does a user really choose where to do things in every case ??

       If an customer requests an order .. all the person, who takes
       this order wants to do is: Order something and let the system
       choose what needs to be done with this request.

       The Engine would start a process that perhaps checks customers
       credit, stocks (this might start a new process for ordering goods).
       Later on it cares about shipping and payment.

     - How are different users involved in this scenario?

       The system should be able to choose the right users/performer
       with sufficient skills and less load to do something.

  Strategy of a ProcessDefinition:

   StateDiagram:

    The System has defined States. To move from one to another
    conditional Transitions are defined. Simple Implementations
    allow only one State at a time .. more sophisticated Systems
    may allow multiple States at the same time.

   ActivityDiagram:

    The System has defined Activities. They are connected via
    conditional Transitions. Parallel Execution (>1 Activity
    at a time) is a basic requirement for such a System.
    Activities represent a piece of work (not necessarily something
    that happens within the system or modifies content).

   PetriNet:

    could someone explain them please .. how do they differ from
    ActivityDiagram/StateDiagram ?


possible combinations:

  Object-Centric + StateDiagram:

   This is implemented by DCWorkflow now. One content object that has
   several States is involved. Each State defines possible Transitions
   (enabled actions)

  Object-Centric + ActivityDiagram:

   hmmm ... no clue .. shane any hints ??

  Application-Centric + StateDiagram:

   does this make sense .. what could this be used for ??

  Application-Centric + ActivityDiagram

   This is implemented by OpenFlow and WfMC-Model. A ProcessInstance
   is created, that starts with a StartActivity. Depending on Wf-Relevant
   Data, Transitions are made and new ActivityInstances are created.
   Users are assigned to WorkItems (one-to-one relationship with AIs),
   they fetch and complete the WI's and the PI goes ahead.

  Others:

   TBD

Comments/Questions:

<hathaway_> Have you looked at the WorkflowDefinition interface in CMF?
<hathaway_> There are too many methods and they have the wrong names,
            but it's the spirit of a process definition interface.

Could you refine this and put in the names you'ld prefer for clarity ??

<hathaway_> wfmc mixes lots of concepts together.  When you separate them,
            everything is simpler.
<hathaway_> WfMC mixes RDBMS, authentication, etc... which we really don't
            need to think about until much later.

Could you describe the parts of the WfMC-Model that you'ld 
seperate/remove/.. ??


Thoughts:

I still doubt that it is trivial to build an engine that is a state-machine,
activity-machine and others at the same time.

I feel that if we try to mix them we will loose best of both.

convice me please :))

I'ld like to have such a system but i do not feel
to be able to think it through nor build it :(

Another direction to look at would be:
workflow based on aspects (try google: workflow aspect oriented)
e.g.
http://www2.parc.com/csl/projects/aop/workshops/icse98/presentations/Schmid
t.pdf
http://trese.cs.utwente.nl/aop-ecoop99/papers/thompson.pdf


cheers

Ulrich Eck
------------------------------------------------------------------------
net-labs Systemhaus GmbH
Ebersberger Str. 46
85570 Markt Schwaben
fon:   +49-8121-4747-11
fax:   +49-8121-4747-77
email: ueck@net-labs.de
http://www.net-labs.de