JBoss BRMS - The enterprise platform for business logic
1. Agenda
JBoss BRMS overview
JBoss BRMS benefits
JBoss BRMS and Guvnor
JBoss BRMS Assets
package
facts
working sets
rules
decision tables
test scenarios
event process processing (CEP)
other assets
JBPM5 processes
JBoss BRMS authoring
JBoss BRMS deployment
Eclipse integration
Rule agents
2. JBoss BRMS:
The enterprise platform for
Business Logic Integration
Giovanni Marigi
gmarigi at redhat.com
JBoss Consultant
Red Hat, Inc.
Codemotion 2012 Except where otherwise noted, content on this work is licensed under a
Creative Commons Attribution 3.0 License.
3. Agenda
JBoss BRMS overview
JBoss BRMS benefits
JBoss BRMS and Guvnor
JBoss BRMS Assets
package
facts
working sets
rules
decision tables
test scenarios
event process processing (CEP)
other assets
JBPM5 processes
JBoss BRMS authoring
JBoss BRMS deployment
Eclipse integration
Rule agents
4. JBoss BRMS Overview
BRMS (business rules management system)
a software where to define and externalize the business and
decision logic used inside programs inside an organization
6. JBoss BRMS Overview
BRMS
a single platform for business modeling including different technologies
JBoss BRMS includes:
Expert: Rule Engine
Expert
Flow/JBPM5 : Rules Process Management
Fusion: Complex Event Processing
Fusion
Guvnor: BRMS “front end” and repository for BRMS artifacts
Guvnor
JBoss BRMS is distributed:
. war archive
. already packaged with an EAP/EWP
. ready for AS7
7. JBoss BRMS overview: main features
Centralized repository of business assets
Version control of business assets
IDE/User tools to define and to “governance” the decision logic
Build, deploy, testing of decision logic
Packages of business assets
Categorization of business assets
Roundtrip, integration with dev Tools (Eclipse)
JCR repository (jackrabbit or modeshape) for assets
Repository can also be accessed via
REST API - HTTP (WebClient) - WebDAV
BRMS can be configured for high availabilty (clustering)
8. JBoss BRMS overview: benefits
Logic and data separation
Cross domain logic
Reuse, logic opened to changes
Easy to maintain the business logic
Changes in live systems
Several stakeholders can contribute in defining the business logic
(Business Analyst, Rule expert, Developer, Administrators)
9. JBoss BRMS and Guvnor
Drools Guvnor 5.4.0 Beta1 BRMS 5.2 last stable
Drools Guvnor 5.3.0 last stable BRMS 5.2 includes:
- Drools Guvnor 5.2
Drools Guvnor 5.3.0 includes:
- Drools Expert 5.2
Expert 5.3 (rule engine)
- Drools Fusion 5.2
Fusion 5.3 (CEP)
Flow/JBPM5 BRMS 5.3 (next release) will be
based on Guvnor 5.3
Eclipse + JBoss Tools
JBoss Developer Studio
Bug fixing,patching
SLA
Enterprise certification | QA
10. JBoss BRMS and Guvnor
Feature Community Enterprise
Open Source x x
Benefits from testing by worldwide Community x x
Recommended for Production Use x
Patch Update & Service Pack Program x
Security Errata Program x
Automated Software Update & Alert Service x
Defect & Feature Escalation & Prioritization Process x
Developer Support x
24x7 Production Support & Services x
Platform Certifications & Training Certifications x
Defined Support SLA and End-of-Life Policy x
Out-of-the-Box Configured for Enterprise Use x
Operations Management Tools x
Platform testing & certification process x
Redistribution of modified JBoss technologies x
Red Hat Open Source Assurance (Legal Protection) x
11. JBoss BRMS assets
Every artifact inside a BRMS is an asset
The assets define a knowledge base
Business logic is made by several assets:
facts (domain model)
rules
business processes (workflows)
decision tables
functions
more...
Not only business rules!
12. JBoss BRMS assets: Package
How to start?
define a new package for
business assets
Guvnor Knowledge base
13. JBoss BRMS assets: Model/Facts
A package must contain at least a fact model
fact model != domain model
a fact model typically overlaps a domain model but better to
make it decouple from the domain model
Rules and assets reason upon a fact model
Two ways to do define your fact model:
- upload a JAR file containing Java Classes
- declare a model within Guvnor
14. JBoss BRMS assets: Working Sets
Working sets are groups of facts
Use them to put constraints on a group of facts and restrict the
“reasoning domain” of your business rules
Disabled by default
15. JBoss BRMS assets: Rules
Rules are the “backbone” of a BRMS
Don't use a BRMS if you don't have business rules
Don't use a BRMS if you don't want or you can't separate logic
from data
Rules are processed and evaluated by a Rule Engine
(Drools Expert)
Forward chaining rule engine which implements the RETE
algorithm (ReteOO)
Rich native language to define rules
A rule is contained in a DRL file
More info on Drools Expert:
JBug Italy slideshare site:
http://www.slideshare.net/jbugrome
17. JBoss BRMS assets: Rules
Anatomy of a rule
Example of a rule
rule "Approve if not rejected"
salience -100
agenda-group "approval"
when
not Rejection()
p : Policy(approved == false,policyState:status )
exists Driver(age > 25)
Process(status == policyState)
then
log("APPROVED: due to no objections.");
p.setApproved(true);
end
18. JBoss BRMS assets: Rules
Inside BRMS there 4 ways to create
a rule:
- from scratch,code;
(requires knowledge of Expert)
- using the guided editor
(can be used DSL assertions)
- uploading a decision table
spreadsheet
- creating a decision table
spreadsheet via the guided editor
21. JBoss BRMS assets: Decision Tables
Express rules with a spreadsheet
A spreadsheet can be imported or created via the
guided web editor
A wizard generator for spreadsheet is available in
BRMS!
A decision table at runtime is transformed in a series
of DRL rules
22. JBoss BRMS assets: Test Scenarios
Test scenarios are assets used to validate that the rules inside
the knowledge base (package) works as expected
A scenario is made by a given section (list of facts and its initial
state) and an expect section
What we can “assert” in a expect section?
- Rule
Validate that a certain rule fired.
- Fact value
Validate fact values for a fact created in the Given section.
-Any fact that matches
Validate that there is at least one fact in the knowledge base
with the specified field values.
24. JBoss BRMS assets: CEP
CEP Engine enables
Event Detection: Cloud mode and Stream mode
Temporal Reasoning (correlation) – reason over
aggregation
Abstraction – Compose complex events and reason
over them
CEP Engine Supports
Event Semantics (point in time and interval) as first
class citizen analogous to rule semantics
Support both point in time (as interval with zero
duration) and interval semantics
Ability to apply temporal constraints
Use Session clocks: Support Realtime (system)
clock, Psedo Clock (controlled by application)
Sliding window support
Ability to scale to high volume of events
25. JBoss BRMS assets: CEP
when
Shipment( $pickupTime : scheduledPickupTime )
not ShipmentPickup( this before $pickupTime )
then
// shipment not picked up... Action required.
end
rule “Shipment not picked up in time”
13 Operators are Supported
Event A before Event B Event A coincidces Event B
Event A meets Event B Event A after Event B
Event A overlaps Event B Event A metBy Event B
Event A finishes Event B Event A overlapedBy Event B
Event A includes Event B Event A finishedBy Event B
Event A starts Event B Event A during Event B
Event A finishes Event B
26. JBoss BRMS assets: CEP
Apply 13 operators available
Define sliding time window or length
27. JBoss BRMS other assets
Spring context
editor to define spring context files;once created they are
accessible via HTTP inside the package
DSL functions
Define rules in a domain specific language
Enumeration
Enum data to be used in rules
Functions
Rule templates
29. JBoss BRMS assets: JBPM5
A workflow is a process that describes the order in which a series of
steps need to be executed, using a flow chart.
JBPM5 is based on Drools Flow
Workflow guided by rules
Rule workflows are the new “generation” of business workflows
Rules + workflow: dynamic processes
Available in
BRMS 5.3
30. JBoss BRMS assets: JBPM5
JBPM5 workflow are BPMN2 processes
No legacy xml to define the workflow but a standard!
Human task (human interaction with a flow)
The task service implementation is based on the
WS-HumanTask (WS-HT) specification
Rule Task:
use drools rules inside the flow
Pluggable Service Task (work items):
nodes with custom logic
(e.g. DBControl, EJBControl, EmailControl)
Gateway (split,converge)
the decision in a gateway can be taken by a drools rule!
Events (start,end,intermediate)
Timers
31. JBoss BRMS assets: JBPM5
BPMN2 editor in Eclipse
BPMN2 editor in BRMS (web designer)
BRMS can upload BPMN2 processes designed with other BPMN2
modeling tool
Automatic creation of human task forms
Validation of BPMN2 processes
Online repository to download ready to use service tasks
JBPM Service repository
JBPM 3 to 5 migration tool
https://github.com/droolsjbpm/jbpmmigration
32. JBoss BRMS assets: JBPM5
When defined a new work item
is available inside Eclipse
33. JBoss BRMS assets: JBPM5
Web Designer integrated inside BRMS (starting from BRMS 5.3)
34. JBoss BRMS authoring
Every asset in BRMS is versioned; every time an asset changes
a new version number is attached
Assets anyway can't be
branched or tagged!
An asset contains meta data
information
Assets can be categorized
An asset can be linked to
many categories
Categories don't have any meaning
at runtime; useful to order the assets
An asset can have a status
(e.g “Draft”, “Completed”);
it's a sort of label
35. JBoss BRMS authoring
A package otherwise is versioned on demand, taking a snapshot
for deployment
Creating a snapshot means that the BRMS package is ready to
be used from external application
Before taking a snapshot a build package is required
With a build every assets inside the package is validated
Status and Categories can be used to select only specific
assets to include inside a snapshot (Use selector)
(e.g. create a snaposhot only with assets belonging to category
“Fraud” and with Status “Completed”)
A snapshot will be published inside the repository and accessible
via a URL
38. JBoss BRMS deployment
Stand Alone Package Lightweight Package
Well integrated Flexibility of Container
Best Out of the Box Deploy to lightweight
Experience containers like Tomcat
39. JBoss BRMS Eclipse integration
Eclipse can be configured to import the resources (assets)
published in BRMS
Assets can be edited in Eclipse and committed to BRMS
(complete roundtrip)
Eclipse gives the capability to compare different version of the
same asset
Requires JBoss Developer Studio 4.x or Eclipse 3.6.x + JBoss
Tools
File --> Import --> Guvnor --> Resources from Guvnor
41. JBoss BRMS Rule Agent
How to use a BRMS package inside your
application?
Create a Drools RuleAgent able to get (download) its
KnowledgeBase from BRMS
Define a change-set.xml (simple xml file) file where the BRMS
packages are listed
The KnowledgeBase is the entry point to fire rules, execute bpmn
processes,...
43. JBoss BRMS Rule Agent
What to do with a KnowledgeBase?
start a process and insert some fact instances to be evaluated
inside a process RuleTask
final StatefulKnowledgeSession ksession = kagent.getKnowledgeBase();
//insert fact instances in kb
ksession.insert(new Car("AudiA4",4));
ksession.startProcess("Process1");
ksession.fireAllRules();
ksession.dispose()
45. JBoss BRMS:
The enterprise platform for
Business Logic Integration
THANKS!
gmarigi at redhat.com
Except where otherwise noted, content on this work is licensed under a
Creative Commons Attribution 3.0 License.