Java Spark Drools Example Linked in

What is Drools?

Drools is an open-source Business Rules Management Software (BRMS) written in Java that provides users with a variety of features like Business Rule Engine, Web authoring, Rules Management Application, and runtime support for Decision Model and Notation models. It uses advanced implementation system of rete pattern matching algorithm.

Drools was released under Apache License 2.0 and it is compatible with any JVM and available in Maven Central Repository also.

The Drools tool helps 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 – It involves the development of rules files.
  • Runtime – It involves the creation of working memory and handling the activation.

In this Drools tutorial for beginners, you will learn:

  • What is Drool?
  • What is Rule?
  • What is the Rule Engine?
  • Drools Tools Suite
  • Important components in Drools
  • Architecture of Drools
  • Features of Drool
  • How to add Drools plugins in Eclipse
  • Drools Program Hello World Example
  • Why use Drools Rule Engine?
  • Disadvantages of Rules Engine

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.

Drools Rule Engine

Drools Rule Engine is a rule-based approach to implement an Expert system in the Drools software. The Rule engine provides Expert systems which are knowledge-based systems that help you to make decisions like what to do and how to do it. It gathers knowledge into a knowledge base that can be used for reasoning.

Drools Tools Suite

Now in this Drools Rule Engine tutorial, we will learn about Drools Tool 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

Now in this Drools tutorial, let's learn about important components of 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

Drools Rule Engine Architecture
Drools Rule Engine Architecture

Here is the working system of Drools architecture:

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

Now in this Drools tutorial, let's learn how to add Drools plugin in Eclipse.

Step 1) Click on "Distribution ZIP" for jBPM Integration
Go to https://www.drools.org/download/download.html and click "Distribution ZIP" for jBPM Integration. Once downloaded, extract it to your hard drive.

Add Drools plugins in Eclipse

Step 2) Install New Software
In Eclipse, select Install New Software.

Add Drools plugins in Eclipse

Step 3) Click on Add button
Click on Add button for adding a software.

Add Drools plugins in Eclipse

Step 4) Browse Folder
In the next screen, Click on Local and Select folder "org.drools.updatesite/" then Click Ok.

Add Drools plugins in Eclipse

Step 5) Click on the Next button
On the install remediation page, click on the Next button.

Add Drools plugins in Eclipse

Step 6) Accept the license agreement
Accept the license agreement and click next.

Add Drools plugins in Eclipse

Step 7) Reboot Eclipse
The software will download, and you will be asked to reboot eclipse.

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

Add Drools plugins in Eclipse

Drools Program Hello World Example

Below is a Drools example for Hello World 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.

Backward vs. Forward Chaining

Forward-chaining engine

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.

Backward vs. Forward Chaining

Backward-chaining engine

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.

desalvooptale.blogspot.com

Source: https://www.guru99.com/drools-tutorial.html

0 Response to "Java Spark Drools Example Linked in"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel