SlideShare a Scribd company logo
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
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.
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
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
JBoss BRMS Overview
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
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)
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)
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
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
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!
JBoss BRMS assets: Package


                                              How to start?
                                              define a new package for
                                              business assets




                      Guvnor Knowledge base
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
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
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
JBoss BRMS assets: Rules




 Rule Engine




                           Forward chaining
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
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
JBoss BRMS assets: Rules

Rules can be validated inside BRMS
JBoss BRMS assets: Rules

Rules with the guided editor
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
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.
JBoss BRMS assets: Test Scenarios
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
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
JBoss BRMS assets: CEP




 Apply 13 operators available

 Define sliding time window or length
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
JBoss BRMS other assets

A guided rule with DSL assertions
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
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
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
JBoss BRMS assets: JBPM5




                           When defined a new work item
                           is available inside Eclipse
JBoss BRMS assets: JBPM5

Web Designer integrated inside BRMS (starting from BRMS 5.3)
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
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
JBoss BRMS authoring
JBoss BRMS deployment
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
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
JBoss BRMS Eclipse integration
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,...
JBoss BRMS Rule Agent
  KnowledgeAgent kagent =
        KnowledgeAgentFactory.newKnowledgeAgent("MyAgent", kaconf);
    kagent.applyChangeSet(
        ResourceFactory.newClassPathResource("change-set.xml"));KnowledgeBase
    kbase = kagent.getKnowledgeBase();

    change.set.xml
  <?xml version="1.0" encoding="UTF-8"?>
    <change-set xmlns="http://drools.org/drools-5.0/change-set"
    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
    xs:schemaLocation="http://drools.org/drools-5.0/change-set
    http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-
    api/src/main/resources/change-set-1.0.0.xsd" >
  <add>
     <resource
    source="http://localhost:8080/guvnor/org.drools.guvnor.Guvnor/package/JBUG/LATE
    ST" type="PKG" basicAuthentication="enabled" username="uid" password="pwd"/>
   </add>
  </change-set>
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()
Resources

 http://www.jboss.org/drools/lists
 http://www.jboss.org/jbpm/lists
 IRC server: irc.codehaus.org
 Channels: #drools #guvnor #jbpm




             THAT'S ALL FOLKS!
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.

More Related Content

ODP
JBoss BRMS sneak peak, the future is now for your Business Processes
ODP
All the cool stuff of JBoss BRMS
ODP
JBoss Business Rules Management System (BRMS) Primer
ODP
Zero to Hero Using Red Hat JBoss BRMS
PDF
JBoss BRMS Primer - Looking at a Business Rules Management System
ODP
A look into the crystal ball at JBoss BRMS and BPM Suite
PDF
Brms best practices_2011_oct_final
PPTX
Bpms ecu2014
JBoss BRMS sneak peak, the future is now for your Business Processes
All the cool stuff of JBoss BRMS
JBoss Business Rules Management System (BRMS) Primer
Zero to Hero Using Red Hat JBoss BRMS
JBoss BRMS Primer - Looking at a Business Rules Management System
A look into the crystal ball at JBoss BRMS and BPM Suite
Brms best practices_2011_oct_final
Bpms ecu2014

What's hot (14)

PDF
JBoss BPM Suite 6 Tech labs
PDF
2009 11-04 mm (carson, california - csu-dh) bpm introduction
PDF
3 hang on_a_minute-ankur_goyal
 
PDF
EM overview- - Hayden lindsey
PDF
Overcoming contradictions mike-o_rourke
 
PDF
Opportunities in challenging_times-steve_robinson
 
PPT
MCIF- Per Kroll
PDF
2 trasnformation design_patterns-sandeep_katoch
 
PDF
How to make_it_real-hayden_lindsey
 
ODT
Gated methodology alignment artifact and timing matrix
PDF
Semantic Enterprise Architecture
PPTX
An Agile DevOps Journey
PDF
Rebecca White, Pmp
PDF
5 rqm gdd-sharmila-ramesh
 
JBoss BPM Suite 6 Tech labs
2009 11-04 mm (carson, california - csu-dh) bpm introduction
3 hang on_a_minute-ankur_goyal
 
EM overview- - Hayden lindsey
Overcoming contradictions mike-o_rourke
 
Opportunities in challenging_times-steve_robinson
 
MCIF- Per Kroll
2 trasnformation design_patterns-sandeep_katoch
 
How to make_it_real-hayden_lindsey
 
Gated methodology alignment artifact and timing matrix
Semantic Enterprise Architecture
An Agile DevOps Journey
Rebecca White, Pmp
5 rqm gdd-sharmila-ramesh
 
Ad

Viewers also liked (20)

PDF
BRMS6.2 2016版
PDF
Application Architecture -Data, Process, Rule-
PPTX
PDF
Decision Management : M2DL@UPS Lecture
PDF
Decision Service Architecture - Red Hat Forum Paris 2015
PDF
DecisionsFrst Modeler and Red Hat JBoss BRMS
PPT
JBoss presentation 2003 11 for matrix
PPTX
Jboss App Server
ODP
The JBoss Way, the Added Value of Open Source Middleware
PPT
JBoss Analyst tour Sept 2003
PDF
JBoss Enterprise Overview by Quinten Laureijs
PPTX
Jboss jbpm and drools 1 introduction to drools architecture
KEY
JBoss AS7 Overview
PDF
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
PDF
JBoss at Work: Using JBoss AS 6
PDF
Intro to Drools - St Louis Gateway JUG
PDF
JBoss AS / EAP and Java EE6
PDF
2007 11-09 mm (costa rica - incae cit omg) modeling with bpmn and xpdl
PDF
Decision services for soa platforms
PDF
Business rules management system
BRMS6.2 2016版
Application Architecture -Data, Process, Rule-
Decision Management : M2DL@UPS Lecture
Decision Service Architecture - Red Hat Forum Paris 2015
DecisionsFrst Modeler and Red Hat JBoss BRMS
JBoss presentation 2003 11 for matrix
Jboss App Server
The JBoss Way, the Added Value of Open Source Middleware
JBoss Analyst tour Sept 2003
JBoss Enterprise Overview by Quinten Laureijs
Jboss jbpm and drools 1 introduction to drools architecture
JBoss AS7 Overview
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
JBoss at Work: Using JBoss AS 6
Intro to Drools - St Louis Gateway JUG
JBoss AS / EAP and Java EE6
2007 11-09 mm (costa rica - incae cit omg) modeling with bpmn and xpdl
Decision services for soa platforms
Business rules management system
Ad

Similar to JBoss BRMS - The enterprise platform for business logic (20)

ODP
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
ODP
Business processes, business rules, complex event processing, the JBoss way
ODP
JBoss Architect Meetup - November 2013 - 'Play By The Rules'
PDF
Drools
ODP
Drools & jBPM Info Sheet
ODP
Singapore JBUG - JBoss BRMS Primer
ODP
Red Hat JBoss BRMS Primer - JBoss Business Rules and BPM Solutions
ODP
Buenos Aires Drools Expert Presentation
ODP
Zero to Hero with the JBoss Business Rules Primer
PPT
TheServerSide Java Symposium 2005 : Business Rule Management, Enables Agile A...
ODP
Drools New York City workshop 2011
PDF
Kogito: cloud native business automation
ODP
JBoss World 2011 - Drools
PDF
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
PDF
Brms road map_10-17-12
ODP
2011-03-29 London - drools
PPT
Leveraging Business Rules in TIBCO BusinessEvents
PDF
Drools, jBPM OptaPlanner presentation
PDF
JBPM Past Present Future
PDF
jBPM5 Developer Guide Presentation JBUG London
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
Business processes, business rules, complex event processing, the JBoss way
JBoss Architect Meetup - November 2013 - 'Play By The Rules'
Drools
Drools & jBPM Info Sheet
Singapore JBUG - JBoss BRMS Primer
Red Hat JBoss BRMS Primer - JBoss Business Rules and BPM Solutions
Buenos Aires Drools Expert Presentation
Zero to Hero with the JBoss Business Rules Primer
TheServerSide Java Symposium 2005 : Business Rule Management, Enables Agile A...
Drools New York City workshop 2011
Kogito: cloud native business automation
JBoss World 2011 - Drools
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
Brms road map_10-17-12
2011-03-29 London - drools
Leveraging Business Rules in TIBCO BusinessEvents
Drools, jBPM OptaPlanner presentation
JBPM Past Present Future
jBPM5 Developer Guide Presentation JBUG London

More from JBug Italy (20)

PDF
JBoss Wise: breaking barriers to WS testing
PDF
Camel and JBoss
PDF
AS7 and CLI
PDF
Intro jbug milano_26_set2012
PDF
Faster & Greater Messaging System HornetQ zzz
PDF
Infinispan,Lucene,Hibername OGM
PDF
PDF
Intro JBug Milano - January 2012
PDF
JBoss AS7 Webservices
PDF
JBoss AS7
PDF
Intro JBug Milano - September 2011
ODP
Infinispan and Enterprise Data Grid
PDF
Drools Introduction
PDF
September 2010 - Arquillian
PDF
September 2010 - Gatein
PDF
May 2010 - Infinispan
PDF
May 2010 - RestEasy
PDF
May 2010 - Drools flow
PDF
May 2010 - Hibernate search
ODP
April 2010 - Seam unifies JEE5
JBoss Wise: breaking barriers to WS testing
Camel and JBoss
AS7 and CLI
Intro jbug milano_26_set2012
Faster & Greater Messaging System HornetQ zzz
Infinispan,Lucene,Hibername OGM
Intro JBug Milano - January 2012
JBoss AS7 Webservices
JBoss AS7
Intro JBug Milano - September 2011
Infinispan and Enterprise Data Grid
Drools Introduction
September 2010 - Arquillian
September 2010 - Gatein
May 2010 - Infinispan
May 2010 - RestEasy
May 2010 - Drools flow
May 2010 - Hibernate search
April 2010 - Seam unifies JEE5

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Cloud computing and distributed systems.
PPT
Teaching material agriculture food technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation theory and applications.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Spectroscopy.pptx food analysis technology
MIND Revenue Release Quarter 2 2025 Press Release
Cloud computing and distributed systems.
Teaching material agriculture food technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Network Security Unit 5.pdf for BCA BBA.
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Review of recent advances in non-invasive hemoglobin estimation
Understanding_Digital_Forensics_Presentation.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation theory and applications.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
cuic standard and advanced reporting.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
MYSQL Presentation for SQL database connectivity
Unlocking AI with Model Context Protocol (MCP)
Spectroscopy.pptx food analysis technology

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
  • 16. JBoss BRMS assets: Rules Rule Engine Forward chaining
  • 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
  • 19. JBoss BRMS assets: Rules Rules can be validated inside BRMS
  • 20. JBoss BRMS assets: Rules Rules with 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.
  • 23. JBoss BRMS assets: Test Scenarios
  • 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
  • 28. JBoss BRMS other assets A guided rule with DSL assertions
  • 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
  • 40. JBoss BRMS Eclipse integration
  • 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,...
  • 42. JBoss BRMS Rule Agent KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("MyAgent", kaconf); kagent.applyChangeSet( ResourceFactory.newClassPathResource("change-set.xml"));KnowledgeBase kbase = kagent.getKnowledgeBase(); change.set.xml <?xml version="1.0" encoding="UTF-8"?> <change-set xmlns="http://drools.org/drools-5.0/change-set" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="http://drools.org/drools-5.0/change-set http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools- api/src/main/resources/change-set-1.0.0.xsd" > <add> <resource source="http://localhost:8080/guvnor/org.drools.guvnor.Guvnor/package/JBUG/LATE ST" type="PKG" basicAuthentication="enabled" username="uid" password="pwd"/> </add> </change-set>
  • 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()
  • 44. Resources http://www.jboss.org/drools/lists http://www.jboss.org/jbpm/lists IRC server: irc.codehaus.org Channels: #drools #guvnor #jbpm THAT'S ALL FOLKS!
  • 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.