You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Johan Stuyts <jo...@hippo.nl> on 2004/03/16 11:16:55 UTC

Response to workflow

I'm glad to see a healthy discussion about workflow. Here are my responses 
to multiple posts.

Scope
-----
I still think the scope of the project is the first thing that must be 
decided upon before discussing which solution is the best. There are lots 
of options here and covering them all is impossible.

The scope I am interested in is (see the worfklow page on the Wiki):
- a solution for developers;
- although initially we were planning on using workflow for document 
management (object lifecycle), we might need a solution which can be used 
to implement more general processes too;
- whether a general workflow instance can be attached to a single object 
is questionable. A generalized workflow will involve many 
documents/objects (some of which will only be used by that workflow 
instance). I think that in a generalized workflow framework the workflow 
instance itself must be an object with which the developer interacts 
directly instead of the workflow instance being hidden.

I really would like to see more use cases appearing from which we can pick 
a set to implement using different technologies. I will add more use cases 
in the near future.

Standards
---------
Thank you Andreas for putting up the list with standards. We can use these 
for input and reflection upon our decisions.

Conforming to standards is an honourable goal and it has its pros and 
cons. Pros:
- make use of available tools;
- people outside of Cocoon are probably more interested;
- no reinvention of the wheel. The standards are complex because they were 
defined by people with a lot of experience in the field. Chances are that 
if you start out small you end up with the same complexity after several 
years.

Cons:
- it's not easy to use for simple use cases. A period of learning is 
unavoidable;
- huge effort to build a compliant solution.

Interface
---------
The interface provided by Guido makes things more concrete, but, although 
I like state machines very much, I think too much terminology of state 
machines is in the interface.

Also the interface assumes there will only be changes from one state to 
another state, but in concurrent state machines and generalized workflow a 
single trigger can cause multiple state changes including forking and 
syncing.

I think the scope needs to be clearer before we can start thinking about 
the interface. Otherwise it might change too often as more requirements 
are added.

Implementation
--------------
In my opinion no particular technology, e.g. Flow, must be a requirement 
for a workflow implementation. I thought the workflow provider would be an 
Avalon service. This makes it accessible from everywhere and usable 
outside Cocoon.

Conclusion
----------
IMHO there should be more consensus about what is needed and what is 
feasible in a relatively short time, e.g. half a year to a year.

I think building a generalized workflow based on a standard is too 
ambitious. Leaving out some more complex constructs decreases usability. 
It might be an option to choose a (proper) subset of a standard with which 
a large percentage (definitely more than 80%. Having to resort to another 
solution in one of four situations is not acceptable) of use cases can be 
implemented.

-- 
Johan Stuyts, Software Department
Hippo Webworks
Grasweg 35
1031 HW Amsterdam
The Netherlands
Tel  +31 (0)20 6345173
Fax +31 (0)20 6345179
johan(at)hippo(dot)nl / www.hippo.nl

Re: Response to workflow

Posted by Guido Casper <gc...@s-und-n.de>.
Johan Stuyts wrote:
> I'm glad to see a healthy discussion about workflow. Here are my 
> responses to multiple posts.
> 
> Scope
> -----
> I still think the scope of the project is the first thing that must be 
> decided upon before discussing which solution is the best. There are 
> lots of options here and covering them all is impossible.
> 
> The scope I am interested in is (see the worfklow page on the Wiki):
> - a solution for developers;
> - although initially we were planning on using workflow for document 
> management (object lifecycle), we might need a solution which can be 
> used to implement more general processes too;
> - whether a general workflow instance can be attached to a single object 
> is questionable. A generalized workflow will involve many 
> documents/objects (some of which will only be used by that workflow 
> instance). I think that in a generalized workflow framework the workflow 
> instance itself must be an object with which the developer interacts 
> directly instead of the workflow instance being hidden.
> 
> I really would like to see more use cases appearing from which we can 
> pick a set to implement using different technologies. I will add more 
> use cases in the near future.
> 
> Standards
> ---------
> Thank you Andreas for putting up the list with standards. We can use 
> these for input and reflection upon our decisions.
> 
> Conforming to standards is an honourable goal and it has its pros and 
> cons. Pros:
> - make use of available tools;
> - people outside of Cocoon are probably more interested;
> - no reinvention of the wheel. The standards are complex because they 
> were defined by people with a lot of experience in the field. Chances 
> are that if you start out small you end up with the same complexity 
> after several years.

Well, the same can be said about CMSs or many other things. Does that 
mean there is no simple solution?

It very much depends how your code evolves when meeting new 
requirements. In Open Source things might be different. If you start 
complex, chances are higher that no community appears and the code ends 
up unused and unmaintained.

Maybe your complex problem might be partitioned into several simpler 
ones. But if you start by throwing a complex solution at it you might 
never find out.

Let me give you an example. Taking my workflow again :-)


  ------------         -------------         --------
|tobereviewed|------>|beingreviewed|------>|released|
  ------------         -------------         --------
      /|\                    |                  |
       |                     |                  |
       |                    \|/                \|/
  --------------       -------------         ------
|beingprocessed|<--->|tobeprocessed|<------|online|
  --------------       -------------         ------
      /|\                    |                  |
       |                    \|/                 |
       |                 --------               |
        --------------->|archived|<-------------
                         --------

There is a problem (likely to be present in almost any workflow) that 
you probably would call: parallel (or nested) states. If a document goes 
from "online" into "tobeprocessed", it continues to be online. The 
solution I took is (of course :-) simple. Besides a "state" property 
there is a second property "live-state" that gets set to "online" by the 
OnlineAction and gets set to "offline" by the ArchivedAction. The 
workflow engine (or the state objects for that matter) itself is not 
aware of it as the "live-state" property is only evaluated by a separate 
scheduler process.

Now I can imagine people jumping up: "Hey that must be modeled in our 
diagram". But I don't want to. This does neither my communication nor my 
development process any good.

I appreciate the fact that rule engines and the like are starting to 
blur the line between developer and user. However I think that such 
needs might be solved by a simple solution on top of another simple 
solution. That would make them easier to maintain and evolve.

> 
> Cons:
> - it's not easy to use for simple use cases. A period of learning is 
> unavoidable;
> - huge effort to build a compliant solution.
> 
> Interface
> ---------
> The interface provided by Guido makes things more concrete, but, 
> although I like state machines very much, I think too much terminology 
> of state machines is in the interface.
> 
> Also the interface assumes there will only be changes from one state to 
> another state, but in concurrent state machines and generalized workflow 
> a single trigger can cause multiple state changes including forking and 
> syncing.
> 
> I think the scope needs to be clearer before we can start thinking about 
> the interface.

I think the scope won't get much clearer by just discussing (but I may
be wrong and my scope being just too limited :-).

> Otherwise it might change too often as more requirements 
> are added.

But that's perfectly fine. Nobody pushes us to settle on the interfaces
prematurely. I prefer starting small and refactor if the need emerges
(there shouldn't be many people not knowing that by now so I shut up
now on that issue :-).

Guido

> 
> Implementation
> --------------
> In my opinion no particular technology, e.g. Flow, must be a requirement 
> for a workflow implementation. I thought the workflow provider would be 
> an Avalon service. This makes it accessible from everywhere and usable 
> outside Cocoon.
> 
> Conclusion
> ----------
> IMHO there should be more consensus about what is needed and what is 
> feasible in a relatively short time, e.g. half a year to a year.
> 
> I think building a generalized workflow based on a standard is too 
> ambitious. Leaving out some more complex constructs decreases usability. 
> It might be an option to choose a (proper) subset of a standard with 
> which a large percentage (definitely more than 80%. Having to resort to 
> another solution in one of four situations is not acceptable) of use 
> cases can be implemented.
> 

-- 
Guido Casper
-------------------------------------------------
S&N AG, Competence Center Open Source
                     Tel.: +49-5251-1581-87
Klingenderstr. 5    mailto:gcasper@s-und-n.de
D-33100 Paderborn   http://www.s-und-n.de
-------------------------------------------------



Re: Response to workflow

Posted by Michael Wechner <mi...@wyona.com>.
Guido Casper wrote:

> Michael Wechner wrote:
>
>> Johan Stuyts wrote:
>>
>>>
>>>
>>> Conclusion
>>> ----------
>>> IMHO there should be more consensus about what is needed and what is 
>>> feasible in a relatively short time, e.g. half a year to a year.
>>>
>>> I think building a generalized workflow based on a standard is too 
>>> ambitious. Leaving out some more complex constructs decreases 
>>> usability. It might be an option to choose a (proper) subset of a 
>>> standard with which a large percentage (definitely more than 80%. 
>>> Having to resort to another solution in one of four situations is 
>>> not acceptable) of use cases can be implemented.
>>
>>
>>
>>
>> I would suggest to start on an existing code base, e.g. Lenya or 
>> whatever, make
>> an appropriate Cocoon block out of it (there had been a list of 
>> requirements to meet)
>> and start from there.
>
>
> If that goes along with some documentation :-) and an isolated sample 
> I'm +1


agreed. In case we agree on the Lenya workflow as initial workflow bloc, 
then we should
probably work down the list provided by Carsten:

http://article.gmane.org/gmane.comp.cms.lenya.devel/2902

Michi

>
> Guido
>
>> Else I guess discussions just keep going forever ;-)
>>
>> The existing code base might not satisfy everybody, but at least it's 
>> something
>> concrete to start with, even if it will be totally modified resp. 
>> refactored in the end.
>>
>> Michi
>>
>>
>


-- 
Michael Wechner
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
http://www.wyona.com              http://cocoon.apache.org/lenya/
michael.wechner@wyona.com                        michi@apache.org


Re: Response to workflow

Posted by Guido Casper <gc...@s-und-n.de>.
Michael Wechner wrote:
> Johan Stuyts wrote:
> 
>>
>>
>> Conclusion
>> ----------
>> IMHO there should be more consensus about what is needed and what is 
>> feasible in a relatively short time, e.g. half a year to a year.
>>
>> I think building a generalized workflow based on a standard is too 
>> ambitious. Leaving out some more complex constructs decreases 
>> usability. It might be an option to choose a (proper) subset of a 
>> standard with which a large percentage (definitely more than 80%. 
>> Having to resort to another solution in one of four situations is not 
>> acceptable) of use cases can be implemented.
> 
> 
> 
> I would suggest to start on an existing code base, e.g. Lenya or 
> whatever, make
> an appropriate Cocoon block out of it (there had been a list of 
> requirements to meet)
> and start from there.

If that goes along with some documentation :-) and an isolated sample I'm +1

Guido

> Else I guess discussions just keep going forever ;-)
> 
> The existing code base might not satisfy everybody, but at least it's 
> something
> concrete to start with, even if it will be totally modified resp. 
> refactored in the end.
> 
> Michi
> 
> 

-- 
Guido Casper
-------------------------------------------------
S&N AG, Competence Center Open Source
                     Tel.: +49-5251-1581-87
Klingenderstr. 5    mailto:gcasper@s-und-n.de
D-33100 Paderborn   http://www.s-und-n.de
-------------------------------------------------

Re: Response to workflow

Posted by Michael Wechner <mi...@wyona.com>.
Johan Stuyts wrote:

>
> Good idea, I have made a start: 
> http://wiki.cocoondev.org/Wiki.jsp?page=WorkflowImplementationComparison.


cool

> Michael, could you add the information about Lenya workflow? 


yes, I will try to do so

>
>
> I won't be able to respond to messages the next two weeks fortunately. 
> I will be on holiday in (hopefully) sunny Turkey. I'll be back April 5.


enjoy your vacation :-)

>
>>
>> Makes sense?
>>
>> Michi
>>
>>>
>>>> +1 to start with Lenya workflow.
>>>>
>>>> Guido
>>>> (How long until Andreas returns from vacation? :-)
>>>>
>>>>>
>>>>> Michi
>>>>>
>>>>>
>>>>
>>>
>>
>>
>


-- 
Michael Wechner
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
http://www.wyona.com              http://cocoon.apache.org/lenya/
michael.wechner@wyona.com                        michi@apache.org


Re: Response to workflow

Posted by Johan Stuyts <jo...@hippo.nl>.
On Thu, 18 Mar 2004 00:19:09 +0100, Michael Wechner 
<mi...@wyona.com> wrote:

> Johan Stuyts wrote:
>
>>
>> I view choosing for Lenya workflow as choosing to build/use a 
>> Cocoon-independent solution (with an adapter to make it accessible in 
>> Cocoon) instead of building a solution using Cocoon-specific 
>> technology. There are a number of existing implementations which can be 
>> used as a starting point for a Cocoon-independent solution. I feel 
>> other implementations are more mature than Lenya workflow and will be a 
>> better choice to use as a starting point. I think OSWorkflow is a good 
>> option, but jBpm looks very promising (I suggest to give the demo a 
>> try). Both these technologies are license-compatible with Cocoon.
>
>
> yes, from a license point of view the choice seems to come down to
>
> jBpm
> OSWorkflow
> Lenya
>
> Maybe we should try to characterize the differences and similarities 
> within
> the Wiki in order to get a better picture (at least I need to do this 
> for myself ;-)

Good idea, I have made a start: 
http://wiki.cocoondev.org/Wiki.jsp?page=WorkflowImplementationComparison. 
Michael, could you add the information about Lenya workflow? If anybody 
thinks a property/capability or implementation is missing, please add it 
to the table.

At Hippo we are interested in how Stefano's implementation using Flow 
would look like, and how Peter's implementation using XSLT would look 
like. Could you post a sample of how you expect the code would look like 
if the framework was already there? Thanks.

I won't be able to respond to messages the next two weeks fortunately. I 
will be on holiday in (hopefully) sunny Turkey. I'll be back April 5.

>
> Makes sense?
>
> Michi
>
>>
>>> +1 to start with Lenya workflow.
>>>
>>> Guido
>>> (How long until Andreas returns from vacation? :-)
>>>
>>>>
>>>> Michi
>>>>
>>>>
>>>
>>
>
>

-- 
Johan Stuyts

Re: Response to workflow

Posted by Michael Wechner <mi...@wyona.com>.
Johan Stuyts wrote:

>
> I view choosing for Lenya workflow as choosing to build/use a 
> Cocoon-independent solution (with an adapter to make it accessible in 
> Cocoon) instead of building a solution using Cocoon-specific 
> technology. There are a number of existing implementations which can 
> be used as a starting point for a Cocoon-independent solution. I feel 
> other implementations are more mature than Lenya workflow and will be 
> a better choice to use as a starting point. I think OSWorkflow is a 
> good option, but jBpm looks very promising (I suggest to give the demo 
> a try). Both these technologies are license-compatible with Cocoon.


yes, from a license point of view the choice seems to come down to

jBpm
OSWorkflow
Lenya

Maybe we should try to characterize the differences and similarities within
the Wiki in order to get a better picture (at least I need to do this 
for myself ;-)

Makes sense?

Michi

>
>> +1 to start with Lenya workflow.
>>
>> Guido
>> (How long until Andreas returns from vacation? :-)
>>
>>>
>>> Michi
>>>
>>>
>>
>


-- 
Michael Wechner
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
http://www.wyona.com              http://cocoon.apache.org/lenya/
michael.wechner@wyona.com                        michi@apache.org


Re: Response to workflow

Posted by Johan Stuyts <jo...@hippo.nl>.
On Wed, 17 Mar 2004 09:09:55 +0100, Guido Casper <gc...@s-und-n.de> 
wrote:

> Michael Wechner wrote:
>> Stefano Mazzocchi wrote:
>>
>>>
>>>>
>>>> The existing code base might not satisfy everybody, but at least it's 
>>>> something
>>>> concrete to start with, even if it will be totally modified resp. 
>>>> refactored in the end.
>>>
>>>
>>>
>>> 100% agreement.
>>>
>>> Doing design without a codebase takes forever on a open community 
>>> because it's much easier to disagree with email than with code ;-)
>>>
>>> it's a do-ocracy after all, then we polish from there.
>>
>>
>>
>> what do others think (beside Guido and Stefano)?
>>
>> I don't know if there are any other existing code-bases beside the ones 
>> listed at
>>
>> http://wiki.cocoondev.org/Wiki.jsp?page=Workflow
>>
>> whereas the type of license reduces the choice even more
>
> Community-wise the Lenya workflow package is certainly the best bet. We 
> should just try to keep the interfaces neutral so that others might be 
> integrated.
>

I view choosing for Lenya workflow as choosing to build/use a 
Cocoon-independent solution (with an adapter to make it accessible in 
Cocoon) instead of building a solution using Cocoon-specific technology. 
There are a number of existing implementations which can be used as a 
starting point for a Cocoon-independent solution. I feel other 
implementations are more mature than Lenya workflow and will be a better 
choice to use as a starting point. I think OSWorkflow is a good option, 
but jBpm looks very promising (I suggest to give the demo a try). Both 
these technologies are license-compatible with Cocoon.

> +1 to start with Lenya workflow.
>
> Guido
> (How long until Andreas returns from vacation? :-)
>
>>
>> Michi
>>
>>
>

-- 
Johan Stuyts

Re: Response to workflow

Posted by Michael Wechner <mi...@wyona.com>.
Guido Casper wrote:

>
> Community-wise the Lenya workflow package is certainly the best bet. 
> We should just try to keep the interfaces neutral so that others might 
> be integrated.


sure, it's very important that other people start using it and hence help
improving and refactoring

>
> +1 to start with Lenya workflow.
>
> Guido
> (How long until Andreas returns from vacation? :-)


about two more weeks (beginning of April). Andreas would certainly be of
great help, but I think we should try to start anyway

Michi

>
>>
>> Michi
>>
>>
>


-- 
Michael Wechner
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
http://www.wyona.com              http://cocoon.apache.org/lenya/
michael.wechner@wyona.com                        michi@apache.org


Re: Response to workflow

Posted by Guido Casper <gc...@s-und-n.de>.
Michael Wechner wrote:
> Stefano Mazzocchi wrote:
> 
>>
>>>
>>> The existing code base might not satisfy everybody, but at least it's 
>>> something
>>> concrete to start with, even if it will be totally modified resp. 
>>> refactored in the end.
>>
>>
>>
>> 100% agreement.
>>
>> Doing design without a codebase takes forever on a open community 
>> because it's much easier to disagree with email than with code ;-)
>>
>> it's a do-ocracy after all, then we polish from there.
> 
> 
> 
> what do others think (beside Guido and Stefano)?
> 
> I don't know if there are any other existing code-bases beside the ones 
> listed at
> 
> http://wiki.cocoondev.org/Wiki.jsp?page=Workflow
> 
> whereas the type of license reduces the choice even more

Community-wise the Lenya workflow package is certainly the best bet. We 
should just try to keep the interfaces neutral so that others might be 
integrated.

+1 to start with Lenya workflow.

Guido
(How long until Andreas returns from vacation? :-)

> 
> Michi
> 
> 

-- 
Guido Casper
-------------------------------------------------
S&N AG, Competence Center Open Source
                     Tel.: +49-5251-1581-87
Klingenderstr. 5    mailto:gcasper@s-und-n.de
D-33100 Paderborn   http://www.s-und-n.de
-------------------------------------------------

Re: Response to workflow

Posted by Michael Wechner <mi...@wyona.com>.
Stefano Mazzocchi wrote:

>
>>
>> The existing code base might not satisfy everybody, but at least it's 
>> something
>> concrete to start with, even if it will be totally modified resp. 
>> refactored in the end.
>
>
> 100% agreement.
>
> Doing design without a codebase takes forever on a open community 
> because it's much easier to disagree with email than with code ;-)
>
> it's a do-ocracy after all, then we polish from there.


what do others think (beside Guido and Stefano)?

I don't know if there are any other existing code-bases beside the ones 
listed at

http://wiki.cocoondev.org/Wiki.jsp?page=Workflow

whereas the type of license reduces the choice even more

Michi


-- 
Michael Wechner
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
http://www.wyona.com              http://cocoon.apache.org/lenya/
michael.wechner@wyona.com                        michi@apache.org


Re: Response to workflow

Posted by Stefano Mazzocchi <st...@apache.org>.
Michael Wechner wrote:

> Johan Stuyts wrote:
> 
>> Conclusion
>> ----------
>> IMHO there should be more consensus about what is needed and what is 
>> feasible in a relatively short time, e.g. half a year to a year.
>>
>> I think building a generalized workflow based on a standard is too 
>> ambitious. Leaving out some more complex constructs decreases 
>> usability. It might be an option to choose a (proper) subset of a 
>> standard with which a large percentage (definitely more than 80%. 
>> Having to resort to another solution in one of four situations is not 
>> acceptable) of use cases can be implemented.
> 
> I would suggest to start on an existing code base, e.g. Lenya or 
> whatever, make
> an appropriate Cocoon block out of it (there had been a list of 
> requirements to meet)
> and start from there. Else I guess discussions just keep going forever ;-)
> 
> The existing code base might not satisfy everybody, but at least it's 
> something
> concrete to start with, even if it will be totally modified resp. 
> refactored in the end.

100% agreement.

Doing design without a codebase takes forever on a open community 
because it's much easier to disagree with email than with code ;-)

it's a do-ocracy after all, then we polish from there.

-- 
Stefano.


Re: Response to workflow

Posted by Michael Wechner <mi...@wyona.com>.
Johan Stuyts wrote:

>
>
> Conclusion
> ----------
> IMHO there should be more consensus about what is needed and what is 
> feasible in a relatively short time, e.g. half a year to a year.
>
> I think building a generalized workflow based on a standard is too 
> ambitious. Leaving out some more complex constructs decreases 
> usability. It might be an option to choose a (proper) subset of a 
> standard with which a large percentage (definitely more than 80%. 
> Having to resort to another solution in one of four situations is not 
> acceptable) of use cases can be implemented.


I would suggest to start on an existing code base, e.g. Lenya or 
whatever, make
an appropriate Cocoon block out of it (there had been a list of 
requirements to meet)
and start from there. Else I guess discussions just keep going forever ;-)

The existing code base might not satisfy everybody, but at least it's 
something
concrete to start with, even if it will be totally modified resp. 
refactored in the end.

Michi


-- 
Michael Wechner
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
http://www.wyona.com              http://cocoon.apache.org/lenya/
michael.wechner@wyona.com                        michi@apache.org