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
-~----------~----~----~----~------~----~------~--~---

Reply via email to