Drools

From Wikipedia, the free encyclopedia

Drools is a business rule management system (BRMS) with a forward chaining inference based rules engine, more correctly known as a production rule system, using an enhanced implementation of the Rete algorithm.

Drools is based on the JSR-94 standard for business rules engine and enterprise framework for the construction, maintenance, and enforcement of business policies in an organization, application, or service.

Contents

[edit] History

The Drools Project was started by Bob McWhirter in 2001 and registered at SourceForge. Drools 1.0 was never released as the limitations of a brute force linear search approach were soon realised and work started on Drools 2.0, which was loosely based on the Rete algorithm, and the project was moved to Codehaus. During the 2.0 development cycle at Codehaus Mark Proctor became the project lead and moved the project to a final 2.0 release. At this point the project had become the leading Java Open Source Rule engine with a strong community and demand had started for commercial services. In October 2005 Drools was federated into JBoss as part of their JEMS offering and rebranded JBoss Rules, in 2006 JBoss itself was acquired by Red Hat. With financial backing from JBoss the JBoss Rules rewrite was possible with a full and enhanced Rete implementation with GUI tooling. The current version of JBoss Rules is 4.0, which is not backwards compatible with previous versions. Mid 2007 the Drools name was reclaimed by the community and the project, it was found that after two years people will still predominantly calling it Drools; and having to refer to it as "Drools aka JBoss Rules", or "Drools (JBoss Rules)" was confusing people. The product for the meantime is still called JBoss Rules.

[edit] Technology

Drools is a Rules engine implementation based on Charles Forgy's Rete algorithm tailored for the Java language. Adapting Rete to an object-oriented interface allows for more natural expression of business rules with regards to business objects. Drools is written in Java, but able to run on Java and .NET.

Drools is designed to allow pluggeable language implementations. Currently rules can be written in Java, Python and Groovy. More importantly, Drools provides for Declarative programming and is flexible enough to match the semantics of your problem domain with Domain Specific Languages (DSL) via XML using a Schema defined for your problem domain. DSLs consist of XML elements and attributes that represent the problem domain.

[edit] JBoss Rules

JBoss Rules, is a reasoning engine that includes a forward chaining rule engine based on Drools. JBoss Rules is the productised version of Drools; this means it comes with support that will last several years for that particular branch; with bug/essential feature back ports. For a time the Drools name was stopped in an attempt to fully establish the JBoss Rules brand as both the project and the product, however two years on the community was mostly still calling it Drools so the name was reclaimed by the community for the project. The product remains as JBoss Rules.

[edit] External links