JB451 JBoss Rules
Length: 2 days
Course Code: JB451
List Price:
$1,998
TrainingPage Price: $1,948
TAP Eligible
Get $150 NFLShop Gift Card and more
Bundles and Multi-Student Savings
View Dates & Enroll Online
Red Hat Training ROI Calculator
Truth Happens : Play the Video
Overview:
The JBoss Rules is targeted at middleware application developers, with zero to moderate experience with rule technology. Developers who need to use rule technologies to manage their applications business logic, and integrate the rule engine with their application would get value from this course. Further to this, application architects or advanced developers looking to improve approaches to business logic management in their applications would also find this course of value - it also serves as an introduction to rule based technologies.
Description:
The course covers the core engine for Drools 3 (JBoss Rules 3.0), as well as the various techniques and languages that can be used to manage business rules, and how the rule engine may be embedded in J2SE and J2EE applications. This course will be a complimentary course to any future courses on rule management using future releases of Jboss Rules.
Prerequisites:
Pre-requisite skills for this course are:
- Basic Java competency
- Some understanding of what constitutes an inferencing rule engine versus a scripting engine
- Viewing of the Jboss Rules webinars and demos is recommended but not required
- Java EE specific experience is not required for the course, but students who need to know how to integrate with Java EE will need the appropriate experience
Understanding rule engines and overview This module covers the background and history of rule engines, and what a rule and rule engine actually is, and what they are typically used for. The importance of declarative programming and how it fits in (and conflicts) with Object Oriented programming will be emphasised. The concept of an inferencing rule engine versus a script/imperative rule engine will be discussed. Scenarious of when to use or not use a rule engine will also be covered.
- Course Overview and introduction
- A Background on Expert Systems (differences between business rule engine, expert systems and rule engines)
- Making applications reason, think
- An Introduction to Rules and Validation Engines
- Explanation of what a rule is:
- LHS for conditons (querying working memory)
- RHS for actions (modifying working memory, external code executing)
- Procedural vs. Declarative Programming
- JSR-94 (what it is, what its good for, when to use)
Basic concept of an engine: externalise business logic, assert facts into engine from the application, loosely coupled logic (logic and data seperation)
- Discussion on non technical users managing or reviewing rules, what the real world issues are (use Or/XOR human misunderstanding as an example problem)
Introduction to JBoss Rules In this module, students will be introduced to the features of Jboss Rules, providing a view of the scope of the tool (some advanced concepts that will be covered later will be mentioned), and the history of the tool. This includes the api and tools (eg how it operates on POJOs). A short lab is included that will provide experience in executing and modifying a rule, which will also show off the Rule workbench for the first time, and a brief introduction to the underlying rule language (not too much detail) - focus is on conditional elements, semantic actions, and semantic predicates - students will understand what parts of a rule are Java (semantic) code, and what are rule code. Future (in progress) features will also be discussed.
Rule Engine Concepts This module covers core concepts of a forward chaining engine. This will include an explanation of a basic non scalable inferencing algorithm (linear), to give students an idea of how it works. Some explanation of the benefits of RETE will be explained as a way to address the limitations of the "basic" algorithm. LEAPS will also be mentioned as an alternative algorithm when large volumes and combinations of data are involved.
- Two Phase Execution
- Working Memory Actions (assert, retract, modify)
- Agenda Evaluation
- Rules Engine Agendas
- What is an Agenda?
- Conflict Resolution
Applying JBoss rules This module will go into detail of the authoring modes and language of JBoss Rules. A brief recap of the previous material will also be included. After this module, students would be confident in the core "drl" rule language, and be familiar with the other rule capturing tools (XML, Decision tables and Domain specific languages) that allow rules to be managed in a user friendly way. The rule language AST classes will also briefly be covered (for cases where custom languages may be appropriate).
- The JBoss Rules Languages (DRL)
- Why not XML? XML abuse, lack of XML editors
- Constraint language (rule assembly) versus semantics in eval, predicates and RHS
- XML alternative (when to use)
- Functions
- The engines "native" api (part of lab)
- How to integrate API with your applications, JSE, JEE etc
- Dynamic Rules
- Rule Addition
- Rule Retraction
- Testing
Rule formats: Decision Tables After this module students will be familiar with decision tables which are ways of capturing and managing rules. A lab will build on the features previously explored (an insurance application example).
- Decision tables
Rule formats: Domain Specific Languages After this module students will be familiar with both decision tables and domain specific languages which are alternative ways of capturing and managing rules with their own advantages. The subtle API differences used with these tools will also be explored. A lab will build on the features previously explored (an insurance application example).
- DSLs
- Other options
- Groovy and other semantic language support
- visual rule formats (decision trees)
The RETE Algorithm This module introduces the RETE algorithm. It will discuss how and when a RETE network is built, and how facts propagate through the network resulting in rules being activated. A lab will also be included to make some of the concepts more concrete.
- Rete Algorithm
- How a Rete network is created
- How facts propagate (diagrammatic)
- What is an activation?
- The stateful nature of RETE