Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Drools vs JBPM ? differences, pros and cons

Tags:

I'm looking for a good rule engine.

I've seen it exists two good projects : JBPM and Drools.

I don't really understand differences between the two and I don't know what is the ideal tool to use.

Please could you provide me more information and your experience with one or other and what do you think is the best to use to manage business rules.

like image 379
Jerome Cance Avatar asked Mar 16 '12 11:03

Jerome Cance


People also ask

What is the difference between jBPM and drools?

jBPM is a workflow engine whereas Drools is a rule engine. Drools Flow will be merged in the project we call jBPM 5. While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference.

What is the advantage of using drools?

The biggest advantage of Drools is that it decouples application code and business logic making code easier to maintain and adapt to changes.

What is rule engine jBPM?

JBoss jBPM uses expressions and delegates in its Decision nodes which control the transitions in a Workflow. At each node it evaluates ther is a rule set that dictates the transition to undertake, and so this is also a Rule Engine.

What does jBPM stand for?

jBPM (Java Business Process Model) is an open-source workflow engine written in Java that can execute business processes described in BPMN 2.0 (or its own process definition language jPDL in earlier versions).


2 Answers

jBPM is not a rule engine, it's a workflow engine. Drools is a rule engine. So Drools is what you're looking for.

Drools and jBPM are companion projects: they integrate really nicely if you need workflows with rules.

like image 86
Geoffrey De Smet Avatar answered Sep 27 '22 01:09

Geoffrey De Smet


Drools is a Rete rules engine that does forward and back induction. You can use it in a small setting for local decisions that only require a handful of rules OR something as large as an underwriting decision engine in insurance.

jBPM is an enterprise singleton that helps you to wire together interactions between humans and services into a state machine that fulfills a well-defined, complex business process. Think of the Mediator pattern in GoF.

I can see where jBPM might use a Rete rules engine to help with complex decisions in a business flow. There's nothing to stop me from embedding Drools in jBPM.

I would say they are complimentary, not an either/or choice.

like image 34
duffymo Avatar answered Sep 24 '22 01:09

duffymo