Successfully reported this slideshow.

JBoss BRMS - The enterprise platform for business logic


Published on

The enterprise platform for business logic
Codemotion 2012
Giovanni Marigi

Published in: Technology, Education
  • Be the first to comment

JBoss BRMS - The enterprise platform for business logic

  1. 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. 2. 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.
  3. 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. 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
  5. 5. JBoss BRMS Overview
  6. 6. 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
  7. 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. 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. 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. 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. 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. 12. JBoss BRMS assets: Package How to start? define a new package for business assets Guvnor Knowledge base
  13. 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. 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. 15. 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:
  16. 16. JBoss BRMS assets: Rules Rule Engine Forward chaining
  17. 17. 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
  18. 18. 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
  19. 19. JBoss BRMS assets: RulesRules can be validated inside BRMS
  20. 20. JBoss BRMS assets: RulesRules with the guided editor
  21. 21. 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
  22. 22. 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.
  23. 23. JBoss BRMS assets: Test Scenarios
  24. 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. 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 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
  26. 26. JBoss BRMS assets: CEP Apply 13 operators available Define sliding time window or length
  27. 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. 28. JBoss BRMS other assetsA guided rule with DSL assertions
  29. 29. 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
  30. 30. 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
  31. 31. 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 tool
  32. 32. JBoss BRMS assets: JBPM5 When defined a new work item is available inside Eclipse
  33. 33. JBoss BRMS assets: JBPM5Web Designer integrated inside BRMS (starting from BRMS 5.3)
  34. 34. 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
  35. 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
  36. 36. JBoss BRMS authoring
  37. 37. JBoss BRMS deployment
  38. 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. 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. 40. JBoss BRMS Eclipse integration
  41. 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. 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="" xmlns:xs="" xs:schemaLocation=" 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. 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. 44. Resources IRC server: Channels: #drools #guvnor #jbpm THATS ALL FOLKS!
  45. 45. JBoss BRMS:The enterprise platform forBusiness Logic IntegrationTHANKS!gmarigi at Except where otherwise noted, content on this work is licensed under a Creative Commons Attribution 3.0 License.