Drools
   HOME

TheInfoList



OR:

Drools is a
business rule management system A BRMS or business rule management system is a software system used to define, deploy, execute, monitor and maintain the variety and complexity of decision logic that is used by operational systems within an organization or enterprise. This logic, a ...
(BRMS) with a
forward Forward is a relative direction, the opposite of backward. Forward may also refer to: People * Forward (surname) Sports * Forward (association football) * Forward (basketball), including: ** Point forward ** Power forward (basketball) ** Sm ...
and
backward chaining Backward chaining (or backward reasoning) is an inference method described colloquially as working backward from the goal. It is used in automated theorem provers, inference engines, proof assistants, and other artificial intelligence application ...
inference based
rules engine A business rules engine is a software system that executes one or more business rules in a runtime production environment. The rules might come from legal regulation ("An employee can be fired for any reason or no reason but not for an illegal r ...
, more correctly known as a production rule system, using an enhanced implementation of the
Rete algorithm The Rete algorithm ( , , rarely , ) is a pattern matching algorithm for implementing rule-based systems. The algorithm was developed to efficiently apply many rules or patterns to many objects, or facts, in a knowledge base. It is used to dete ...
. Drools supports the Java Rules Engine API (Java Specification Request 94) standard for its
business rule A business rule defines or constrains some aspect of business. It may be expressed to specify an action to be taken when certain conditions are true or may be phrased so it can only resolve to either true or false. Business rules are intended to ass ...
engine and enterprise framework for the construction, maintenance, and enforcement of business policies in an organization, application, or service.


Red Hat Decision Manager

Red Hat Decision Manager (formerly Red Hat JBoss BRMS) is a
business rule management system A BRMS or business rule management system is a software system used to define, deploy, execute, monitor and maintain the variety and complexity of decision logic that is used by operational systems within an organization or enterprise. This logic, a ...
and reasoning engine for business policy and rules development, access, and change management. JBoss Enterprise BRMS is a productized version of Drools with enterprise-level support available. JBoss Rules is also a productized version of Drools, but JBoss Enterprise BRMS is the flagship product. Components of the enterprise version: * JBoss Enterprise Web Platform – the software infrastructure, supported to run the BRMS components only *
JBoss Enterprise Application Platform The JBoss Enterprise Application Platform (or JBoss EAP) is a subscription-based/open-source Java EE-based application server runtime platform used for building, deploying, and hosting highly-transactional Java applications and services develop ...
or JBoss Enterprise SOA Platform – the software infrastructure, supported to run the BRMS components only * Business Rules Engine – Drools Expert using the
Rete algorithm The Rete algorithm ( , , rarely , ) is a pattern matching algorithm for implementing rule-based systems. The algorithm was developed to efficiently apply many rules or patterns to many objects, or facts, in a knowledge base. It is used to dete ...
and the Drools Rule Language (DRL) * Business Rules Manager – Drools Guvnor - Guvnor is a centralised repository for Drools Knowledge Bases, with rich web based GUIs, editors, and tools to aid in the management of large numbers of rules. * Business Rules Repository – Drools Guvnor Drools and Guvnor are JBoss Community open source projects. As they are mature, they are brought into the enterprise-ready product JBoss Enterprise BRMS. Components of the JBoss Community version: * Drools Guvnor (Business Rules Manager) – a centralized repository for Drools Knowledge Bases * Drools Expert (rule engine) – uses the rules to perform reasoning * Drools Flow (process/workflow), or jBPM 5 – provides for workflow and business processes * Drools Fusion (event processing/temporal reasoning) – provides for
complex event processing Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. Complex event processing, or CEP, consists of a set of concepts and techniques ...
* Drools Planner/
OptaPlanner OptaPlanner is an Open Source Constraint Solver. It solves constraint satisfaction problems with construction heuristics and metaheuristic algorithms, using multithreaded incremental solving. OptaPlanner is written in Java and works in Kotlin ...
(automated planning) – optimizes automated planning, including
NP-hard In computational complexity theory, NP-hardness ( non-deterministic polynomial-time hardness) is the defining property of a class of problems that are informally "at least as hard as the hardest problems in NP". A simple example of an NP-hard pr ...
planning problems


Example

This examplehttp://downloads.jboss.com/drools/docs/5.1.1.34858.FINAL/drools-expert/html_single/index.html#d0e2676 illustrates a simple rule to print out information about a holiday in July. It checks a condition on an instance of the Holiday class, and executes Java code if that condition is true. rule "validate holiday" when $h1 : Holiday( month

"july" ) then System.out.println($h1.name + ":" + $h1.month); end
The purpose of dialect "mvel" is to point the getter and setters of the variables of your Plain Old Java Object (POJO) classes. Consider the above example, in which a Holiday class is used and inside the circular brackets (parentheses) "month" is used. So with the help dialect "mvel" the getter and setters of the variable "month" can be accessed. Dialect "java" is used to help us write our Java code in our rules. There is one restriction or characteristic on this. We cannot use Java code inside "when" part of the rule but we can use Java code in "then" part. We can also declare a Reference variable $h1 without the $ symbol. There is no restriction on this. The main purpose of putting the $ symbol before the variable is to mark the difference between variables of POJO classes and Rules.


See also

*
List of JBoss software This is a list of articles for JBoss software, and projects from the JBoss Community and Red Hat. This open-source software written in Java is developed in projects, and productized with commercial-level support by Red Hat. JBoss productized so ...
* Semantic reasoner *
WildFly WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on multip ...


References


External links

* Rule engines Red Hat software Free software programmed in Java (programming language)