On Mon, Mar 1, 2010 at 12:51 PM, John Mettraux <[email protected]> wrote: > On Mon, Mar 1, 2010 at 10:48 AM, viatropos <[email protected]> wrote: >> Thanks a lot, that's all I needed to know. I'm going to study those >> articles and stick with AASM. > > For the sake of completeness. > > Lance pushing the discussion somewhere else : > > http://stackoverflow.com/questions/2353564/what-problems-have-you-solved-using-a-workflow-engine
I took the time to answer the question in some way or the other. Here is a copy of my answer, for the sake of completeness, again. http://stackoverflow.com/questions/2353564/what-problems-have-you-solved-using-a-workflow-engine/2367921#2367921 ---8<--- I'm biased, I'm one of the authors of ruote. variant 1) state machine attached to a resource (document, order, invoice, book, piece of furniture). variant 2) state machine attached to a virtual resource named a task variant 3) workflow engine interpreting workflow definitions Now your question is tagged "BPM" we can be expanded into "Business Process management". How does that kind of management occur in each of the variant ? In variant 1, the business process (or workflow) is scattered in the application. The state machine attached to the resource enforces some of the aspects of the workflow, but only those related to the resource. There may be other resources with their own state machine following the same business process. In variant 2, the workflow can be concentrated around the task resource and represented by the state machine around that resource. In variant 3, the workflow is enacted by interpreting a resource called a workflow definition (or business process definition). What happens when the business process changes ? Is it worth having a workflow engine where business processes are manageable resources ? Most of the state machine libraries have 1 set states + transitions. Workflow engines are, most of them, workflow definition interpreters and they allow multiple different workflows to run together. What will be the cost of changing the workflow ? The variants are not mutually exclusive. I have seen many examples where a workflow engine changes the state of multiple resources some of them guarded by state machines. I also use variant 3 + 2 a lot, for human tasks : the workflow engine, at some points when running a process instance, hands a task (workitem) to a human participant (resource task is created and placed in state 'ready'). You can go a long way with variant 2 alone (the task manager variant). We could also mention variant 0), where there is no state machine, no workflow engine, and the business process(es) are scattered and/or hardcoded in the application. You can ask many questions, but if you don't take the time to read the answers and don't take the time to try out and experiment, you won't go very far, and will never acquire any flair for when to use this or that tool. --->8--- -- John Mettraux - http://jmettraux.wordpress.com -- you received this message because you are subscribed to the "ruote users" group. to post : send email to [email protected] to unsubscribe : send email to [email protected] more options : http://groups.google.com/group/openwferu-users?hl=en
