[Zope-CMF] Project-style workflows, DCWorkflow, SQL, etc.
Phillip J. Eby
pje@telecommunity.com
Sat, 13 Oct 2001 13:46:08 -0500
At 05:36 AM 10/13/01 +0000, Kent Polk wrote:
>Shane Hathaway wrote:
>
> > - How do you implement subflows? With DCWorkflow and the portal_types
> > tool, you can set up objects that get stored in workflowed containers.
> > The contained objects can have partially dependent workflows.
>
>This is (IMO) the big difference between entity based and activity
>based workflow. With activity based, you don't need to create some
>Item to have a workflow, and indeed, much workflow doesn't revolve
>around creating items, but mainly passing information around, often
>resulting at different points in creating both temporary as well
>as permanent informational items.
>
>Activity-based subworkflows are not (necessarily?) related to a
>created item, but to a request that someone or something is waiting
>on or for.
I'm not sure that this is really a meaningful distinction. Why can't a
request *be* a created item? It's going to be an object, no matter what
approach you take. It might as well be a content object.
I can't say that I'm an expert on workflow systems, but I've studied the
formal and informal metamodels of a lot of different systems (about a
dozen), both academic and commercial (including a lot of OMG/WFMC stuff),
and as far as I can tell they are all essentially isomorphic. Some people
prefer to use a Petri-net modelling approach where tokens move like race
cars around a flowchart, others prefer to view the state machine as being
contained within an object. Some systems use special restrictions on
composition of flows in order to achieve certain desired properties, such
as provable termination, or the ability to specify most things as a
hierarchy of operations. Some systems make distinctions between tasks,
assignments, and workflow instances, and others use fewer distinctions and
combine concepts.
I have occasionally seen "entity-oriented" workflows that are tied to work
product and are not really generic workflow tools like DCWorkflow is. But
as far as I can tell, DCWorkflow is "computationally complete" where
workflow is concerned. The only thing it "lacks", if you can really say
that, is tools for managing inter-task communication and
synchronization. However, this is not due to a lack of expressivity in the
model used by DCWorkflow.