On 10/30/07, Sacrilege <[EMAIL PROTECTED]> wrote: > > My apologies for such simple questions, but I'm new and trying to > understand how this might fit in with a project that I have in mind. > > I think I have a handle on what BPM & workflow engines are. I'm a bit > confused about how they relate to rules engines like Rools, if they > even do relate. It seems to me that the rules that one would define > for a rules engine would be included in the process definitions of the > BPM engine. So are BPM engines like OpenWFEru meant as "better" > replacements for older rules engines?
Hi, I don't think it's a "simple" question... Because it calls for a long answer. I don't think bpm engines are replacement for rules engines. We may speak of workflow engines and rules engines as interpreters for some programs. Rules engines handle programs that are like mathematical functions, given an input, there is an output. It's timely, the computation may take time and be complicated, but there are no side effects. Workflow engines interpret programs that coordinate work among participants. I think that you are right when saying that rules can get into process definitions, but that make for fatter process definitions. There is also another issue, sometimes, there are smarter algorithms for processing rule sets, like for example the RETE algorithm (http://en.wikipedia.org/wiki/Rete_algorithm) If favor cases where the process definition refers to rulesets based decisions (a service performed by a rule engine) as participants to the process definition. Often, in a process definition, a workitem is routed to a human participant and he adds information to the workitem, this information is a decision, then the workflow engine uses that information to choose a branch in the process definition. Should it matter that the decision was taken by a human participant or an automated one (a rules engine) ? (I started writing about all of this at http://openwferu.rubyforge.org/decision.html) Workflow engines are meant to run/interpret business process that may last days, months, years. Rule engines are usually asked to produce an answer as soon as possible. Small decisions are OK within a process definition, but I think they're better off of it, it makes for more concise process definitions, and a "business decision [service]" can be reused among process definitions (or other applications). "Business decisions" can be taken by Rule engines with more or less complex algorithms or by things like 'decision tables', it's also perfectly feasible to implement it via a piece of Ruby code (or Cobol or Java or by hiring someone to take the decision). A fine piece of opinion on this : http://kswenson.wordpress.com/2007/09/25/decisions-vs-business-decisions-in-a-process/ Routing decisions in process definitions vs Business Decisions in a rule engine/system. Ie the workflow engine just applies decisions. Two or three years ago, I worked with a student who implemented a rule engine with forward chaining and he did that with the OpenWFE process definition language. The resulting engine was very slow but it worked. It was for his Master Thesis, it was kind of fun. This is just my opinion, quickly expressed, hope this helps, best regards, -- John Mettraux -///- http://jmettraux.openwfe.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "OpenWFEru users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/openwferu-users?hl=en -~----------~----~----~----~------~----~------~--~---
