What is Drool?

JBoss Drools is a Business Logic integration Platform (BLiP). It is an open-source project written in Java which uses an advanced implementation system of the Rete pattern matching algorithm.

Drools tools help you to separate and reason over logic and data found in business processes. It supports forward and backward chaining inference-based drools rules engine.

Drools are split into two parts: Authoring and Runtime.

  • Authoring - It involves the development of rules files.
  • Runtime - It involves the creation of working memory and handling the activation.

In this Drool training for beginners, you will learn:

What is Rule?

Rules are parts of knowledge often expressed as, "When specific conditions occur, then do some tasks."

The most crucial part of a rule is it's when part. Once when part is satisfied, then the part is triggered.

Syntax:

When
<Condition is true>
Then
<Take desired Action>

Pattern Matching Method:

Pattern matching method helps you to compare new or old facts with the production rules. It is completed by the Inference Engine.

Algorithms used for Pattern Matching are:

  • Rete Algorithm
  • Leaps Algorithm
  • Linear Algorithm
  • Treat Algorithm

However, the algorithm mostly used by Drools is the Rete Algorithm.

Rete Algorithm

The Rete algorithm is a useful pattern matching algorithm which allows you to implement production rule systems. It helps you to sacrifice memory for increased speed. It also reduces or eliminates specific types of redundancy with the help of node sharing. It stores partial matches while performing joins between different fact types.

What is the Rule Engine?

A rule engine uses a rule-based approach to implement an Expert system. Expert systems are knowledge-based systems which help you make decisions. It gathers knowledge into a knowledge base that can be used for reasoning

Drools Tools Suite

Here, are five types of tools which come as a part of the Drools suite:

  • Drools Guvnor: It is a centralized repository for Drools KnowledgeBase.
  • Drools Flow: It offers workflow and business processes.
  • Drools Fusion: Tool used for complex event processing
  • Drools Expert or Rules Engine: A useful tool for performing reasoning.
  • Drools Planner: To offers automated planning, which includes NP-hard planning problems.

Important components in Drools

Here, are essential terms used in Drools.

  • Facts - Fact represent the data which serves as input for rules
  • Working Memory - Storage with Facts, where they are used for pattern matching. It can be modified, insert, and remove.
  • Knowledge Session - This component holds all the resources required for firing rule. Here, all facts are inserted into the single session, and then matching rules are fired.
  • Knowledge Base - It represents the knowledge in the Drools ecosystem. It stores the formation of the resources where rules are found.
  • Module - This is a module which stores multiple Knowledge Bases which can hold different sessions

Architecture of Drools

Here is the working system of a rules engine:

Step 1) The rules are loaded into Rule Base, which are available all the times.

Step 2) Facts are asserted into the Working Memory where they may then be modified or retracted.

Step 3) The process of matching the new or existing facts against production rules is called pattern matching, which is performed by the Rule engine.

Step 4) The agenda allows you to manage the execution order of the conflicting rules with the help of a conflict resolution strategy.

Features of Drool

Here are important features of Drool:

  • Helps you to separate application from dynamic logic
  • Declarative Programming
  • Centralization of Knowledge
  • Speed and Scalability
  • Separate logic from application
  • Understandable rules

How to add Drools plugins in Eclipse

Step 1) Go to link and click "Distribution ZIP" for jBPM Integration. Once downloaded extract it in your hard drive

Step 2) In Eclipse, select Install New Software

Step 3) Click on Add

Step 4) In the next screen,

  1. Click on Local
  2. Select folder "org.drools.updatesite/"
  3. Click Ok

Step 5) Click Next

Step 6) Accept the license agreement and click next

Step 7) Software will download and you will be asked to reboot eclipse

Step 8) In Windows > Preferences menu, you will see Drools option indicating it's installed.

Create a Drools Program

package com.sample
inport com.sample.DroolsTest.Message;
rule "Hello World"
 when
	m : Message( status ** Message.Hello, myMessage : message )
  then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE ); 
update( m );
end
 rule "GoodBye"

when
	Message( status ** Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end

What is Backward vs. Forward Chaining?

A forward-chaining engine checks the facts and derives a specific conclusion.

Let's consider a scenario of the medical diagnosis system. If the patient's symptoms are put as facts into working memory, then it is easy to diagnose him with an ailment.

A backward chaining engine has the set goal, and the engine tries to satisfy it.

Consider the same scenario of medical diagnosis. Assume that an epidemic of a certain disease. This AI could presume a given individual had the disease and attempt to determine if its diagnosis is correct based on available information.

Why use Drools Rule Engine?

Here, are prime reasons for using Drools rules engine:

  • Rules are easy to understand for developers and business analysts.
  • Rules are easily maintainable.
  • Rule Engine uses a Rete algorithm which states that the performance of the engine never depends on the number of rules.
  • Rules can be modified and deployed without bringing down the application.
  • Externalizes the business logic from the comparatively static codebase.
  • Rules are developed in less complicated formats so the business analyst can easily read and verify a group of rules.
  • Rules allow you to create a warehouse of knowledge which is executable in form.
  • Tools like Eclipse help you to manage rules, get an instant response, authentication, and content support.

Disadvantages of Rules Engine

Here, are drawbacks/ cons of using rules engine:

  • Lots of learning effort requires by developers to know this method of programming
  • Rule engine is not a secure method to troubleshoot issues.
  • Needs to understand the working of rule engine to consumes more memory
  • There are a wide set of rules for a complex branching.

Rules may change over time and will become effective with code changes

Summary

  • JBoss Drools is a Business Logic integration Platform (BLiP)
  • Types of Drool tool are: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • Drool helps you to separate application from dynamic logic.
  • Fact has represented the data which serves as input for rules.
  • Working memory is a storage with Facts, where they are used for pattern matching. It can be modified, insert, and remove.
  • Knowledge base is a component which holds all the resources required for firing rule.
  • Knowledge session represents the knowledge in the Drools ecosystem.
  • Knowledge base represents the knowledge in the Drools ecosystem.
  • Module stores multiple knowledge bases, which can hold different sessions.
  • Rules are parts of knowledge often expressed as, "When specific conditions occur, then do some tasks."
  • A Drools is a rule engine which uses a rule-based approach to implement an Expert system.
  • A forward-chaining engine checks the facts and derives a specific conclusion.
  • A backward chaining engine has the set goal, and the engine tries to satisfy it.
  • The Rete algorithm is a useful pattern matching algorithm which allows you to implement production rule systems.
  • Rules are easy to understand for developers and business analysts.
  • The major drawback of using rules engine like Drool is that it requires lots of learning effort required by developers to know this method of programming.

 

YOU MIGHT LIKE:
Business Analyst

Business Analyst PDF

A Business Analyst is the key figure in understanding business requirement and its implementation. This eBook is...