SlideShare a Scribd company logo
1 of 30
Change the title picture in the master




                                              Rules Engine :Drools

                                    Rule Engine Concepts and Drools Expert
Overview

•   Rule
•   Rule engine introduction & Working
•   Why use a Rule Engine?
•   ReteOO
•   Introduction to Drools
•   Drools Expert & Drools Rule Formats
•   Drools Rule Language Details
•   Drools Eclipse IDE &
•   Drools Guvnor Overview
•   Drools Flow Overview




2                          Rules Engine :Drools
Rule
 Rule                                                       Bean
    rule "Is of valid age"                                   public class Applicant {
      when
         $a : Applicant( age < 18 )           Constraints     private String name;
                                                               private int age;
      then                                                     private boolean valid;
         $a.setValid( false );                     Action
    end                                                      //getter and setter
                                                             methods here
                                                             }


 Constraints for above rule
       Object type constraint     - Applicant Object Type.
       Field constraints         - age < 18
 An object type constraint plus its zero or more field constraints is referred to as a
  pattern.
 The process of matching patterns against the inserted data is, referred to as
  pattern matching.


3                          Rules Engine :Drools
Rule Engine introduction & Working

The rule engine is the computer program that delivers Knowledge Representation
   and Reasoning(KRR) functionality to the developer. At a high level it has three
   components:
   Ontology (“Things” e.g java Classes/Beans )
   Rules
   Data




4                        Rules Engine :Drools
Why use a Rule Engine?


 Separates application from dynamic logic
    • Rules can be modified by different groups
    • No need to recompile or redeploy
    • All rules are in one place


 Declarative Programming
     – Readable and Anyone can easily modify rules.


 Centralization of Knowledge
    - Repository of business policy


 Speed and Scalability
    - Rete algorithm, Leaps algorithm



5                             Rules Engine :Drools
ReteOO

 Rete algorithm was invented by Dr. Charles Forgy.
 Rete algorithm can be broken into 2 parts: rule compilation and runtime
  execution.
 Rule base is compiled into discrimination network.
 Discrimination network is used to filter data as it propagates through the
  network.




6                       Rules Engine :Drools
Rete Algorithm example

rule 1
when
 Cheese( $cheddar : name == "cheddar" )
 $person : Person( favouriteCheese == $cheddar )
then
    System.out.println( $person.getName() + " likes cheddar" );
end




rule 2
when
 Cheese( $cheddar : name == "cheddar" )
 $person : Person( favouriteCheese != $cheddar )
then
    System.out.println( $person.getName() + " not likes cheddar" );
end




7                                    Rules Engine :Drools
Introduction to Drools & Drools Expert


 Drools 5 introduces the Business Logic integration Platform which provides a
  unified and integrated platform for Rules, Workflow and Event Processing.


 Drools consist out of several projects:
       Drools Expert (rule Engine)


       Drools Guvnor (Business Rule Manager)


       jBPM (Process/Workflow)


       Drools Fusion (event processing /temporal reasoning)


       Drools Planner (automated planning)




8                            Rules Engine :Drools
Drools Expert & Drools Rule Format

 Drools has an enhanced and optimized implementation of the Rete algorithm for
  object oriented systems called as ReteOO.
 Drools Expert is a declarative, rule based, coding environment.


 Drools Rule Formats
     Drools Rule Language (DRL)
     Domain-specific language (DSL)
     Decision tables
     Guided rule editor
     XML




9                          Rules Engine :Drools
Drools Rule Language(DRL)




10          Rules Engine :Drools
Domain-specific language (DSL)

 DSL are written in natural language statements.
 Domain experts (such as business analysts) can validate and do changes as per
  requirements.
 DSL definitions consists of transformations from DSL "sentences" to DRL
  constructs.
     DRL    Cheese(age < 5, price == 20, type=="stilton", country=="ch")

            [when]There is a Cheese with=Cheese()
     DSL    [when]- age is less than {age}=age<{age}
            [when]- type is '{type}'=type=='{type}‘
            [when]- country equal to '{country}'=country=='{country}'

            There is a Cheese with
     DSLR       - age is less than 42
                - type is 'stilton'

     DRL & DSL mapping

            [when]Something is {colour}=Something(colour=="{colour}")


11                        Rules Engine :Drools
Domain-specific language (DSL)




12           Rules Engine :Drools
Domain-specific language (DSLR)




13           Rules Engine :Drools
Decision table

 Decision tables are a "precise yet compact" (ref. Wikipedia) way of representing
  conditional logic, and are well suited to business level rules.
 spreadsheet format (XLS), and CSV.
 Decision tables are not recommended for rules that do not follow a set of
  templates, or where there are a small number of rules
 Each row in spreadsheet is a rule
 Decision tables are essentially a tool to generate DRL rules automatically




14                      Rules Engine :Drools
Decision tables




15            Rules Engine :Drools
Guided Rule Editor




16           Rules Engine :Drools
XML Rule Language




17          Rules Engine :Drools
Drools Rule Language :Executing Rules




18           Rules Engine :Drools
Drools Rule Language :Executing Rules

A Knowledge Base is what we call our collection of compiled definitions, such as
   rules and processes, which are compiled using the KnowledgeBuilder.


 First, we will create Knowledge Builder
     KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();


 Add DRL file to Knowledge Builder , it parses and compiles DRL files
     knowledgeBuilder.add(drlFileAsResource, ResourceType.DRL);


 If there are no errors, we can add the resulting packages to our Knowledge Base

     Collection pkgs = knowledgeBuilder.getKnowledgePackages();
     knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
     knowledgeBase.addKnowledgePackages(pkgs);




19                            Rules Engine :Drools
Drools Rule Language :Executing Rules

 KnowledgeSession provides the way of exposing objects to be ruled.
 Stateless Knowledge Session

     StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
     Applicant applicant = new Applicant( “Rajesh Kumar", 16 );
     ksession.execute( applicant );
     assertFalse( applicant.isValid() );



 Stateful Knowledge Session

     StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
     Applicant applicant = new Applicant( “Rajesh Kumar", 16 );
     knowledgeSession.insert(applicant);
     knowledgeSession.fireAllRules();




20                             Rules Engine :Drools
Drools Rule Language


Knowledge base can be updated inside rule’s body
 insert()
      Inserted object will be used by rules engines inside current session
 update()
      Updates existing in working memory object for the rest of rules
 delete()
      Removed object will not be ruled on current execution




21                         Rules Engine :Drools
Drools Eclipse IDE

 The Eclipse based IDE provides users with an environment to edit and test rules
  in various formats, and integrate it deeply with their applications.
 Required plugins
        GEF plugin , GEF is the Eclipse Graphical Editing Framework.
         http://download.eclipse.org/tools/gef/updates/releases/
        Drools Eclipse IDE plugin
         http://download.jboss.org/drools/release/5.4.0.Final/org.drools.updatesite/
 Defining a Drools Runtime
        Go to windows preferences
        under the Drools category,
         select "Installed Drools runtimes“
        use the default jar files as included in
         the Drools Eclipse plugin
         by clicking "Create a new Drools 5 runtime"



22                            Rules Engine :Drools
23   Rules Engine :Drools
Drools Guvnor Overview


 Web-based rule management, storage, editing and deployment
  environment.
 Rule editing
      text, guided, decision tables, etc.
 Version control
 Categorization
 Build and deploy
 Scenarios




24                     Rules Engine :Drools
Guvnor Rule Editing




25           Rules Engine :Drools
Guvnor Rule Deployment




26          Rules Engine :Drools
Guvnor Test Scenarios




27           Rules Engine :Drools
Drools Flow Overview




28           Rules Engine :Drools
References

 Drools Homepage
     http://www.jboss.org/drools/
 Drools Blog
     http://blog.athico.com/
 Drools Chat
     irc.codehaus.org #drools
 Drools Mailing List
     rules-users@lists.jboss.org




29                        Rules Engine :Drools
Thank you


     Any questions?



30         Rules Engine :Drools

More Related Content

What's hot

Rule Engine: Drools .Net
Rule Engine: Drools .NetRule Engine: Drools .Net
Rule Engine: Drools .Net
Guo Albert
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architecture
Amit rai Raaz
 
Dremel: Interactive Analysis of Web-Scale Datasets
Dremel: Interactive Analysis of Web-Scale Datasets Dremel: Interactive Analysis of Web-Scale Datasets
Dremel: Interactive Analysis of Web-Scale Datasets
robertlz
 
Oracle RAC, Data Guard, and Pluggable Databases: When MAA Meets Multitenant (...
Oracle RAC, Data Guard, and Pluggable Databases: When MAA Meets Multitenant (...Oracle RAC, Data Guard, and Pluggable Databases: When MAA Meets Multitenant (...
Oracle RAC, Data Guard, and Pluggable Databases: When MAA Meets Multitenant (...
Ludovico Caldara
 

What's hot (20)

Rule Engine: Drools .Net
Rule Engine: Drools .NetRule Engine: Drools .Net
Rule Engine: Drools .Net
 
Rules Engine - java(Drools) & ruby(ruleby)
Rules Engine - java(Drools) & ruby(ruleby)Rules Engine - java(Drools) & ruby(ruleby)
Rules Engine - java(Drools) & ruby(ruleby)
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architecture
 
Oracle RAC, Oracle Data Guard, and Pluggable Databases: When MAA Meets Oracle...
Oracle RAC, Oracle Data Guard, and Pluggable Databases: When MAA Meets Oracle...Oracle RAC, Oracle Data Guard, and Pluggable Databases: When MAA Meets Oracle...
Oracle RAC, Oracle Data Guard, and Pluggable Databases: When MAA Meets Oracle...
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developer
 
JanusGraph DataBase Concepts
JanusGraph DataBase ConceptsJanusGraph DataBase Concepts
JanusGraph DataBase Concepts
 
Part1 of SQL Tuning Workshop - Understanding the Optimizer
Part1 of SQL Tuning Workshop - Understanding the OptimizerPart1 of SQL Tuning Workshop - Understanding the Optimizer
Part1 of SQL Tuning Workshop - Understanding the Optimizer
 
Graphs for Enterprise Architects
Graphs for Enterprise ArchitectsGraphs for Enterprise Architects
Graphs for Enterprise Architects
 
Oracle Data Redaction
Oracle Data RedactionOracle Data Redaction
Oracle Data Redaction
 
Dremel: Interactive Analysis of Web-Scale Datasets
Dremel: Interactive Analysis of Web-Scale Datasets Dremel: Interactive Analysis of Web-Scale Datasets
Dremel: Interactive Analysis of Web-Scale Datasets
 
Oracle architecture with details-yogiji creations
Oracle architecture with details-yogiji creationsOracle architecture with details-yogiji creations
Oracle architecture with details-yogiji creations
 
Oracle RAC, Data Guard, and Pluggable Databases: When MAA Meets Multitenant (...
Oracle RAC, Data Guard, and Pluggable Databases: When MAA Meets Multitenant (...Oracle RAC, Data Guard, and Pluggable Databases: When MAA Meets Multitenant (...
Oracle RAC, Data Guard, and Pluggable Databases: When MAA Meets Multitenant (...
 
12. oracle database architecture
12. oracle database architecture12. oracle database architecture
12. oracle database architecture
 
Retail referencearchitecture productcatalog
Retail referencearchitecture productcatalogRetail referencearchitecture productcatalog
Retail referencearchitecture productcatalog
 
Why Use an Oracle Database?
Why Use an Oracle Database?Why Use an Oracle Database?
Why Use an Oracle Database?
 
Elasticsearch V/s Relational Database
Elasticsearch V/s Relational DatabaseElasticsearch V/s Relational Database
Elasticsearch V/s Relational Database
 
Five_Things_You_Might_Not_Know_About_Oracle_Database_v2.pptx
Five_Things_You_Might_Not_Know_About_Oracle_Database_v2.pptxFive_Things_You_Might_Not_Know_About_Oracle_Database_v2.pptx
Five_Things_You_Might_Not_Know_About_Oracle_Database_v2.pptx
 
Oracle 12c and its pluggable databases
Oracle 12c and its pluggable databasesOracle 12c and its pluggable databases
Oracle 12c and its pluggable databases
 
Oracle RDBMS architecture
Oracle RDBMS architectureOracle RDBMS architecture
Oracle RDBMS architecture
 
Enable oracle database vault
Enable oracle database vaultEnable oracle database vault
Enable oracle database vault
 

Similar to Rule Engine & Drools

Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)
Geoffrey De Smet
 
JBoss Drools - Open-Source Business Logic Platform
JBoss Drools - Open-Source Business Logic PlatformJBoss Drools - Open-Source Business Logic Platform
JBoss Drools - Open-Source Business Logic Platform
elliando dias
 
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
lennartkats
 

Similar to Rule Engine & Drools (20)

Drools rule Concepts
Drools rule ConceptsDrools rule Concepts
Drools rule Concepts
 
Rules With Drools
Rules With DroolsRules With Drools
Rules With Drools
 
Rules with Drools
Rules with DroolsRules with Drools
Rules with Drools
 
Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)
 
DFDL and Apache Daffodil(tm) Overview from Owl Cyber Defense
DFDL and Apache Daffodil(tm) Overview from Owl Cyber DefenseDFDL and Apache Daffodil(tm) Overview from Owl Cyber Defense
DFDL and Apache Daffodil(tm) Overview from Owl Cyber Defense
 
JBoss Drools - Open-Source Business Logic Platform
JBoss Drools - Open-Source Business Logic PlatformJBoss Drools - Open-Source Business Logic Platform
JBoss Drools - Open-Source Business Logic Platform
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
 
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
 
Controller design-pattern-drupal-north-toronto-2018-final
Controller design-pattern-drupal-north-toronto-2018-finalController design-pattern-drupal-north-toronto-2018-final
Controller design-pattern-drupal-north-toronto-2018-final
 
OpenDDR
OpenDDROpenDDR
OpenDDR
 
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
 
Best Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXBBest Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXB
 
Domains - Don't leave your data model without them
Domains - Don't leave your data model without themDomains - Don't leave your data model without them
Domains - Don't leave your data model without them
 
Integrating DROOLS With Mule ESB
Integrating DROOLS With Mule ESBIntegrating DROOLS With Mule ESB
Integrating DROOLS With Mule ESB
 
RELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open ToolkitRELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open Toolkit
 
NoSQL no more: SQL on Druid with Apache Calcite
NoSQL no more: SQL on Druid with Apache CalciteNoSQL no more: SQL on Druid with Apache Calcite
NoSQL no more: SQL on Druid with Apache Calcite
 
Develop an App with the Odoo Framework
Develop an App with the Odoo FrameworkDevelop an App with the Odoo Framework
Develop an App with the Odoo Framework
 
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
 
PHP, The X DevAPI, and the MySQL Document Store Presented January 23rd, 20...
PHP,  The X DevAPI,  and the  MySQL Document Store Presented January 23rd, 20...PHP,  The X DevAPI,  and the  MySQL Document Store Presented January 23rd, 20...
PHP, The X DevAPI, and the MySQL Document Store Presented January 23rd, 20...
 
Rules SDK IBM WW BPM Forum March 2013
Rules SDK IBM WW BPM Forum March 2013Rules SDK IBM WW BPM Forum March 2013
Rules SDK IBM WW BPM Forum March 2013
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Rule Engine & Drools

  • 1. Change the title picture in the master Rules Engine :Drools Rule Engine Concepts and Drools Expert
  • 2. Overview • Rule • Rule engine introduction & Working • Why use a Rule Engine? • ReteOO • Introduction to Drools • Drools Expert & Drools Rule Formats • Drools Rule Language Details • Drools Eclipse IDE & • Drools Guvnor Overview • Drools Flow Overview 2 Rules Engine :Drools
  • 3. Rule  Rule Bean rule "Is of valid age" public class Applicant { when $a : Applicant( age < 18 )  Constraints private String name; private int age; then private boolean valid; $a.setValid( false );  Action end //getter and setter methods here }  Constraints for above rule Object type constraint - Applicant Object Type. Field constraints - age < 18  An object type constraint plus its zero or more field constraints is referred to as a pattern.  The process of matching patterns against the inserted data is, referred to as pattern matching. 3 Rules Engine :Drools
  • 4. Rule Engine introduction & Working The rule engine is the computer program that delivers Knowledge Representation and Reasoning(KRR) functionality to the developer. At a high level it has three components:  Ontology (“Things” e.g java Classes/Beans )  Rules  Data 4 Rules Engine :Drools
  • 5. Why use a Rule Engine?  Separates application from dynamic logic • Rules can be modified by different groups • No need to recompile or redeploy • All rules are in one place  Declarative Programming – Readable and Anyone can easily modify rules.  Centralization of Knowledge - Repository of business policy  Speed and Scalability - Rete algorithm, Leaps algorithm 5 Rules Engine :Drools
  • 6. ReteOO  Rete algorithm was invented by Dr. Charles Forgy.  Rete algorithm can be broken into 2 parts: rule compilation and runtime execution.  Rule base is compiled into discrimination network.  Discrimination network is used to filter data as it propagates through the network. 6 Rules Engine :Drools
  • 7. Rete Algorithm example rule 1 when Cheese( $cheddar : name == "cheddar" ) $person : Person( favouriteCheese == $cheddar ) then System.out.println( $person.getName() + " likes cheddar" ); end rule 2 when Cheese( $cheddar : name == "cheddar" ) $person : Person( favouriteCheese != $cheddar ) then System.out.println( $person.getName() + " not likes cheddar" ); end 7 Rules Engine :Drools
  • 8. Introduction to Drools & Drools Expert  Drools 5 introduces the Business Logic integration Platform which provides a unified and integrated platform for Rules, Workflow and Event Processing.  Drools consist out of several projects: Drools Expert (rule Engine) Drools Guvnor (Business Rule Manager) jBPM (Process/Workflow) Drools Fusion (event processing /temporal reasoning) Drools Planner (automated planning) 8 Rules Engine :Drools
  • 9. Drools Expert & Drools Rule Format  Drools has an enhanced and optimized implementation of the Rete algorithm for object oriented systems called as ReteOO.  Drools Expert is a declarative, rule based, coding environment.  Drools Rule Formats  Drools Rule Language (DRL)  Domain-specific language (DSL)  Decision tables  Guided rule editor  XML 9 Rules Engine :Drools
  • 10. Drools Rule Language(DRL) 10 Rules Engine :Drools
  • 11. Domain-specific language (DSL)  DSL are written in natural language statements.  Domain experts (such as business analysts) can validate and do changes as per requirements.  DSL definitions consists of transformations from DSL "sentences" to DRL constructs. DRL Cheese(age < 5, price == 20, type=="stilton", country=="ch") [when]There is a Cheese with=Cheese() DSL [when]- age is less than {age}=age<{age} [when]- type is '{type}'=type=='{type}‘ [when]- country equal to '{country}'=country=='{country}' There is a Cheese with DSLR - age is less than 42 - type is 'stilton' DRL & DSL mapping [when]Something is {colour}=Something(colour=="{colour}") 11 Rules Engine :Drools
  • 12. Domain-specific language (DSL) 12 Rules Engine :Drools
  • 13. Domain-specific language (DSLR) 13 Rules Engine :Drools
  • 14. Decision table  Decision tables are a "precise yet compact" (ref. Wikipedia) way of representing conditional logic, and are well suited to business level rules.  spreadsheet format (XLS), and CSV.  Decision tables are not recommended for rules that do not follow a set of templates, or where there are a small number of rules  Each row in spreadsheet is a rule  Decision tables are essentially a tool to generate DRL rules automatically 14 Rules Engine :Drools
  • 15. Decision tables 15 Rules Engine :Drools
  • 16. Guided Rule Editor 16 Rules Engine :Drools
  • 17. XML Rule Language 17 Rules Engine :Drools
  • 18. Drools Rule Language :Executing Rules 18 Rules Engine :Drools
  • 19. Drools Rule Language :Executing Rules A Knowledge Base is what we call our collection of compiled definitions, such as rules and processes, which are compiled using the KnowledgeBuilder.  First, we will create Knowledge Builder KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();  Add DRL file to Knowledge Builder , it parses and compiles DRL files knowledgeBuilder.add(drlFileAsResource, ResourceType.DRL);  If there are no errors, we can add the resulting packages to our Knowledge Base Collection pkgs = knowledgeBuilder.getKnowledgePackages(); knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase(); knowledgeBase.addKnowledgePackages(pkgs); 19 Rules Engine :Drools
  • 20. Drools Rule Language :Executing Rules  KnowledgeSession provides the way of exposing objects to be ruled.  Stateless Knowledge Session StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession(); Applicant applicant = new Applicant( “Rajesh Kumar", 16 ); ksession.execute( applicant ); assertFalse( applicant.isValid() );  Stateful Knowledge Session StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession(); Applicant applicant = new Applicant( “Rajesh Kumar", 16 ); knowledgeSession.insert(applicant); knowledgeSession.fireAllRules(); 20 Rules Engine :Drools
  • 21. Drools Rule Language Knowledge base can be updated inside rule’s body  insert()  Inserted object will be used by rules engines inside current session  update()  Updates existing in working memory object for the rest of rules  delete()  Removed object will not be ruled on current execution 21 Rules Engine :Drools
  • 22. Drools Eclipse IDE  The Eclipse based IDE provides users with an environment to edit and test rules in various formats, and integrate it deeply with their applications.  Required plugins  GEF plugin , GEF is the Eclipse Graphical Editing Framework. http://download.eclipse.org/tools/gef/updates/releases/  Drools Eclipse IDE plugin http://download.jboss.org/drools/release/5.4.0.Final/org.drools.updatesite/  Defining a Drools Runtime  Go to windows preferences  under the Drools category, select "Installed Drools runtimes“  use the default jar files as included in the Drools Eclipse plugin by clicking "Create a new Drools 5 runtime" 22 Rules Engine :Drools
  • 23. 23 Rules Engine :Drools
  • 24. Drools Guvnor Overview  Web-based rule management, storage, editing and deployment environment.  Rule editing  text, guided, decision tables, etc.  Version control  Categorization  Build and deploy  Scenarios 24 Rules Engine :Drools
  • 25. Guvnor Rule Editing 25 Rules Engine :Drools
  • 26. Guvnor Rule Deployment 26 Rules Engine :Drools
  • 27. Guvnor Test Scenarios 27 Rules Engine :Drools
  • 28. Drools Flow Overview 28 Rules Engine :Drools
  • 29. References  Drools Homepage http://www.jboss.org/drools/  Drools Blog http://blog.athico.com/  Drools Chat irc.codehaus.org #drools  Drools Mailing List rules-users@lists.jboss.org 29 Rules Engine :Drools
  • 30. Thank you Any questions? 30 Rules Engine :Drools