JBoss BRMS - The enterprise platform for business logic
Upcoming SlideShare
Loading in...5

JBoss BRMS - The enterprise platform for business logic




The enterprise platform for business logic
Codemotion 2012
Giovanni Marigi



Total Views
Views on SlideShare
Embed Views



10 Embeds 138

http://www.codemotion.it 71
http://roma2012.codemotion.it 28
http://presentz.org 20
http://local.host 5
http://codemotion.loc 4
http://roma.codemotion.it 4
https://si0.twimg.com 3
http://webcache.googleusercontent.com 1
http://a0.twimg.com 1
http://dev.presentz.org 1



Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

JBoss BRMS - The enterprise platform for business logic JBoss BRMS - The enterprise platform for business logic Presentation Transcript

  • 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 IntegrationGiovanni Marigigmarigi at redhat.comJBoss ConsultantRed 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 OverviewBRMSa single platform for business modeling including different technologiesJBoss BRMS includes:Expert: Rule EngineExpertFlow/JBPM5 : Rules Process ManagementFusion: Complex Event ProcessingFusionGuvnor: BRMS “front end” and repository for BRMS artifactsGuvnorJBoss 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 Dont use a BRMS if you dont have business rules Dont use a BRMS if you dont want or you cant 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: RulesAnatomy 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: RulesInside BRMS there 4 ways to createa 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: RulesRules can be validated inside BRMS
  • JBoss BRMS assets: RulesRules with the guided editor
  • JBoss BRMS assets: Decision TablesExpress rules with a spreadsheetA spreadsheet can be imported or created via theguided web editorA wizard generator for spreadsheet is available inBRMS!A decision table at runtime is transformed in a seriesof DRL rules
  • JBoss BRMS assets: Test ScenariosTest scenarios are assets used to validate that the rules insidethe knowledge base (package) works as expectedA scenario is made by a given section (list of facts and its initialstate) and an expect sectionWhat we can “assert” in a expect section?- RuleValidate that a certain rule fired.- Fact valueValidate fact values for a fact created in the Given section.-Any fact that matchesValidate that there is at least one fact in the knowledge basewith 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 SupportedEvent A before Event B Event A coincidces Event BEvent A meets Event B Event A after Event BEvent A overlaps Event B Event A metBy Event BEvent A finishes Event B Event A overlapedBy Event BEvent A includes Event B Event A finishedBy Event BEvent 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 assetsA guided rule with DSL assertions
  • JBoss BRMS assets: JBPM5A workflow is a process that describes the order in which a series ofsteps need to be executed, using a flow chart.JBPM5 is based on Drools FlowWorkflow guided by rulesRule workflows are the new “generation” of business workflowsRules + workflow: dynamic processes Available in BRMS 5.3
  • JBoss BRMS assets: JBPM5JBPM5 workflow are BPMN2 processesNo legacy xml to define the workflow but a standard!Human task (human interaction with a flow)The task service implementation is based on theWS-HumanTask (WS-HT) specificationRule Task:use drools rules inside the flowPluggable 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: JBPM5BPMN2 editor in EclipseBPMN2 editor in BRMS (web designer)BRMS can upload BPMN2 processes designed with other BPMN2modeling toolAutomatic creation of human task formsValidation of BPMN2 processesOnline repository to download ready to use service tasksJBPM Service repositoryJBPM 3 to 5 migration toolhttps://github.com/droolsjbpm/jbpmmigration
  • JBoss BRMS assets: JBPM5 When defined a new work item is available inside Eclipse
  • JBoss BRMS assets: JBPM5Web 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 cant be branched or tagged! An asset contains meta data information Assets can be categorized An asset can be linked to many categories Categories dont have any meaning at runtime; useful to order the assets An asset can have a status (e.g “Draft”, “Completed”); its 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 THATS ALL FOLKS!
  • JBoss BRMS:The enterprise platform forBusiness Logic IntegrationTHANKS!gmarigi at redhat.com Except where otherwise noted, content on this work is licensed under a Creative Commons Attribution 3.0 License.