Book Image

Mastering JBoss Drools 6

By : Mariano De Maio, Mauricio Salatino, Esteban Aliverti
Book Image

Mastering JBoss Drools 6

By: Mariano De Maio, Mauricio Salatino, Esteban Aliverti

Overview of this book

Mastering JBoss Drools 6 will provide you with the knowledge to develop applications involving complex scenarios. You will learn how to use KIE modules to create and execute Business Rules, and how the PHREAK algorithm internally works to drive the Rule Engine decisions. This book will also cover the relationship between Drools and jBPM, which allows you to enrich your applications by using Business Processes. You will be briefly introduced to the concept of complex event processing (Drools CEP) where you will learn how to aggregate and correlate your data based on temporal conditions. You will also learn how to define rules using domain-specific languages, such as spreadsheets, database entries, PMML, and more. Towards the end, this book will take you through the integration of Drools with the Spring and Camel frameworks for more complex applications.
Table of Contents (18 chapters)
Mastering JBoss Drools 6
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Preface
Index

Introducing PHREAK


One of the first assumptions Drools' newcomers make is that rules in a DRL file are evaluated in the same order they are defined, as if each rule were some kind of if statement from an imperative language forming a sequential evaluation structure. But evaluating rule conditions in sequence is neither efficient nor scalable at all. Even worse, adding inference capabilities into this scenario would also be a nightmare.

In the mid-seventies, Dr. Charles L. Forgy introduced a new pattern matching algorithm to be used in production systems, called RETE (https://en.wikipedia.org/wiki/Rete_algorithm). The RETE algorithm sacrificed memory for increased speed, providing an improvement in several orders of magnitude over traditional pattern-matching algorithms. Ever since, multiple production rule systems have been using a derived or customized version of RETE as their pattern matching internal algorithm. This chapter is based on Drools' implementation of RETE and its latest evolution...