[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