Hi Lance, found your saturday question on IRC :
http://ruote.rubyforge.org/irclogs/ruote_2010-02-27.txt > 2010-02-27 01:44:56 utc viatropos: Hi there, I'm new to workflow engines and > had a few questions to get started. > 2010-02-27 01:45:21 utc viatropos: First, how does this compare to Stonepath? > http://github.com/bokmann/stonepath Stonepath descriptions : "Stateful workflow modeling for Rails" (http://rubygems.org/gems/stonepath), "A collection of stateful workflow concepts for Ruby/ActiveRecord" (http://github.com/bokmann/stonepath). Ruote's description : "ruby workflow engine". There is more information about Stonepath in that article from its author : http://www.pragprog.com/magazines/download/4.pdf (see the "state secrets" article). Ruote is a workflow engine, it takes process definitions and interprets them as process instances. Process definitions describe how a "business process" should be executed. Now that involves participants to whom the workflow engine hands tasks. Human participants and/or automated participants. Automated participants can be report generators or decision points (for example http://jmettraux.wordpress.com/2010/02/17/ruote-and-decision-tables/). A workflow engine is nothing more than a program... process definition interpreter. Those process instances may last quite long. They become, with the tasks attached to them, things you can manipulate (modify, cancel, pause, ...). >From what I've learnt about StonePath, it's more about task management. Whereas ruote is about workflow control-flow patterns (http://workflowpatterns.com/patterns/control/index.php), StonePath seems to be about workflow resource patterns (http://workflowpatterns.com/patterns/resource/index.php) with its spawn WS-HumanTask (http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel4people/WS-HumanTask_v1.pdf). Workflow engines usually hand task for humans to worklist / tasklist manager. StonePath seems to be a task manager. Note that some categories of business processes are too diverse too be digitized (barely repeatable processes), that's a spot StonePath seems to be targeting. Not that ruote can't do barely repeatable processes : http://jmettraux.wordpress.com/2010/01/29/barley/ I'm in the middle of the implementation of a rails + ruote application. The process definitions are quite simple and linear, but once a task is handed to a team, they are free to reserve, assign, reject tasks, until one the users closes the task and it's handed back to the workflow engine for the travel to the next tasks (or the end of the process instance). I will write a blog piece about that application soon. If you're only interested in passing tasks among users in no pre-defined way, using a state machine library and a methodology like StonePath might be a good thing. (See my piece about state machine and workflow engines at http://jmettraux.wordpress.com/2009/07/03/state-machine-workflow-engine/). ... and like David Bock (the author of StonePath) says : 'you do not need an expensive, monolithic, or resource-intensive “workflow engine”'. > 2010-02-27 01:45:58 utc viatropos: And last, where is this workflow > information stored? If I have a rails app, is it stored in MySQL or whatever > database I'm using? It depends on the ruote persistence you chose. The persistence backends available are : memory, file-based (out of the box), DataMapper (http://github.com/jmettraux/ruote-dm) and CouchDB (http://github.com/jmettraux/ruote-couch). There is no active-record persistence implemented yet (for ruote 2.1). It would not be difficult to infer one from ruote-dm. Best regards, -- 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
