SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
JBoss Enterprise BRMS
    The Road to Large Scale Enterprise Solutions




    Phil Simpson, Product Marketing Manager
    Eric Schabell, JBoss Technology Evangelist




1
JBoss BRMS Overview




2
JBoss Enterprise BRMS
                                                                                                Business
                                                                                                 Events




                                                                                                                 Interacts
                       Web-based                                                   Decision                      with...      Enterprise
                    development tools                                              Service                                    Application


Business Analysts                                                                                                               Web
                                                                                              Event Processor
                                             Repository                                                                        Service

                                                                       Deploy                 Business Process
                               Business            Business
                                Process             Rule &                                        Manager
                               Definitions           Event
                                                   Definitions
                                                                                                                              Java Code
                                                                                                Rule Engine



                    JBDS, with BRMS                                                       r
                        plugins                                                    i   to
                                                                                on
                                                                               M
                                                                           &
                                                                      ge
                                                                  ana
                                                                 M
                                                                                                                             Business
   Developers
                                                                                                                              Users
                                                          Management                              Business
                                                           Console                                  Data



                          Operations
   3
JBoss Enterprise BRMS
                                                                                              Business
                                                                                               Events




                                                                                                               Interacts
                       Web-based                                                 Decision                      with...      Enterprise
                    development tools                                            Service                                    Application


Business Analysts                                                                                                             Web
                                                                                            Event Processor
                                        Repository                                                                           Service

                                                                     Deploy                 Business Process
                               Business          Business
                                Process           Rule &                                        Manager
                               Definitions         Event
                                                 Definitions
                                                                                                                            Java Code
                                                                                              Rule Engine



                    JBDS, with BRMS                                                     r
                        plugins                                                  i   to
                                                                              on
                                                                             M
                                                                         &
                                                                    ge
                                                                ana
                                                               M
                                                                                                                           Business
   Developers
                                                                                                                            Users
                                                     Management                                 Business
                                                      Console                                     Data



                          Operations
   4
JBoss Enterprise BRMS
                                                                                                Business
                                                                                                 Events




                                                                                                                 Interacts
                       Web-based                                                   Decision                      with...      Enterprise
                    development tools                                              Service                                    Application


Business Analysts                                                                                                               Web
                                                                                              Event Processor
                                             Repository                                                                        Service

                                                                       Deploy                 Business Process
                               Business            Business
                                Process             Rule &                                        Manager
                               Definitions           Event
                                                   Definitions
                                                                                                                              Java Code
                                                                                                Rule Engine



                    JBDS, with BRMS                                                       r
                        plugins                                                    i   to
                                                                                on
                                                                               M
                                                                           &
                                                                      ge
                                                                  ana
                                                                 M
                                                                                                                             Business
   Developers
                                                                                                                              Users
                                                       Management                                 Business
                                                        Console                                     Data



                          Operations
   5
JBoss Enterprise BRMS
                                                                                              Business
                                                                                               Events




                                                                                                               Interacts
                       Web-based                                                                               with...
                    development tools                                            Decision                                   Enterprise
                        (Guvnor)                                                 Service                                    Application


Business Analysts                                                                                                             Web
                                                                                            Event Processor
                                             Repository                                                                      Service

                                                                     Deploy                 Business Process
                               Business          Business
                                Process           Rule &                                        Manager
                               Definitions         Event
                                                 Definitions
                                                                                                                            Java Code
                                                                                              Rule Engine



                    JBDS, with BRMS                                                     r
                        plugins                                                  i   to
                                                                              on
                                                                             M
                                                                         &
                                                                    ge
                                                                ana
                                                               M
                                                                                                                           Business
   Developers
                                                                                                                            Users
                                                     Management                                 Business
                                                      Console                                     Data



                          Operations
   6
JBoss Enterprise BRMS
                                                                                                Business
                                                                                                 Events




                                                                                                                 Interacts
                       Web-based                                                   Decision                      with...      Enterprise
                    development tools                                              Service                                    Application


Business Analysts                                                                                                               Web
                                                                                              Event Processor
                                             Repository                                                                        Service

                                                                       Deploy                 Business Process
                               Business            Business
                                Process             Rule &                                        Manager
                               Definitions           Event
                                                   Definitions
                                                                                                                              Java Code
                                                                                                Rule Engine



                    JBDS, with BRMS                                                       r
                        plugins                                                    i   to
                                                                                on
                                                                               M
                                                                           &
                                                                      ge
                                                                  ana
                                                                 M
                                                                                                                             Business
   Developers
                                                                                                                              Users
                                                          Management                              Business
                                                           Console                                  Data



                          Operations
   7
Best Practices
            Developing BRMS Applications that Scale

    ●   BRMS Adoption Goals
    ●   Under the Hood
    ●   Best Practices
        ●   BPM
        ●   Architecture
        ●   Rules Authoring




8
BRMS adoption goals




9
Goal #1: Decision Automation


                                                     Conclusion: Time is Money!
                                    Business Event
     Value Loss

                  Business Value




                                                                                         Reaction


                                   Time
                                                     Time Loss

                                                             Adapted from a presentation by James Taylor, Sep/2011




10
Goal #2: Expressiveness and Visibility


 rule “Send shipment pick-up SMS alert”
 rule “Send shipment pick-up SMS alert”
 when
 when
     There is a shipment order
     There is a shipment order
     There is a route assigned to
     There is a route assigned to   the
                                      order
                                    the
                                      order
     There is a truck GPS reading
     There is a truck GPS reading   and
                                      the truck is 15 minutes
                                    and
                                      the truck is 15 minutes
                away from the pick-up location
                away from the pick-up location
 then
 then
      Send SMS to customer: “Arriving in 15 minutes”
      Send SMS to customer: “Arriving in 15 minutes”
 end
 end


            Focus on “what to do” instead of “how to do it”




11
Goal #3: Performance and Scalability

     ●   Real time, online, systems
          ●   Millisecond response times
     ●   Hundreds of thousands of rules
          ●   JBoss BRMS: 700k+ rules
     ●   Millions of data instances (facts)
     ●   Incremental (re-)evaluation
          ●   Changes in data can't reset reasoning




12
Goal #4..#6: other technical goals

     ●   Logic, Data and Tasks split
     ●   Centralization of Knowledge
          ●   Consistency
          ●   Testing / Simulation
                                     Knowledge                    Knowledge
          ●   Auditing                 Base
                                     (rules/events/
                                                      Inference    Session
                                                       Engine       (data)
                                       processes)
     ●   Explanation Facility




                                                        Tasks




13
JBoss BRMS: under the hood




14
Engine's Algorithm – 30 seconds crash course
                                                         Rete Network: Computer's View

                                                                            Data



                                                         Customer                   Order
          Decision Table: User's View
     Customer    Order Total        Discount
                  Amount
                                                                                   < $1000      >=$1000
Gold                            15%            Gold        Silver

Silver          < $1000         5%
Silver          >= $1000        10%


          Clear, Concise, Objective




                                               Discount: 15%        Discount: 5%        Discount: 10%

                                                               Efficient, Effective


15
JBoss BRMS – some optimizations

     ●   Support to POJOs as facts
          ●   no mapping/data copy necessary
     ●   Full split between Knowledge Base and Session
          ●   lightweight session creation
          ●   knowledge base sharing
     ●   Completely Dynamic Knowledge Base
          ●   Hot addition/removal/updates of rules/queries/processes
     ●   Full support to First Order Logic and Set operations
     ●   JIT compilation for constraints and data access



16
JBoss BRMS – More optimizations

                                                      Data
         Alpha Hashing
                                   Customer                   Order


     Node Sharing
                         Gold        Silver                  < $1000      >=$1000



     Data Indexing



       Lazy Matching



                         Discount: 15%        Discount: 5%        Discount: 10%




17
JBoss Enterprise BRMS




18
Best Practices – BPM Architecture
                                          Interaction Layer



                                 EJB / POJO           ESB               Web Services   Human Tasks




                                      Process Implementation Layer                        JBPM Console
                                                                                            Reporting,
                                                                                         BAM Dashboards




                                      Process Repository
Queues




     Process
  Initialization
      Layer         BPMN2 Authoring for                BPMN2 Authoring for
                      Business Users                      Developers




                                                                 Developer
 19
         Customer
Best Practices – Process Initialization                     EJB      MDB




     ●   How do you start your process?                     Queues


          ●   web services, EJB's, API call, RESTful
          ●   what about prioritization of processes                    Process
                                                                     Initialization
                                                                         Layer
               ●   use message queues
               ●   other complex ideas to start processes
     ●   Centralize startProcess in single location
               ●   minimizes change effects in this layer
                                                                      Customer




20
Process Implementation Layer

Best Practices –
 Process Implementation

     ●   Java nodes
          ●   do you keep it clean?
               ●   single unit of action per process step
               ●   human task / admin interfaces
     ●   Centralize you jBPM API access
          ●   single WS / DAO / BOM / RESTful
     ●   Domain specific nodes
          ●   extensions via work item handlers
     ●   Design process for reuse
          ●   smallest unit of work
21
Best Practices – Process Interaction

     ●   Processes interact with your Enterprise
          ●   Web Services, EJB, GUI, POJO, Exceptions, Bean
              Script, Rules...
               ●   jBPM API & jBPM History DB & RESTful
               ●   history / tasks / reporting
                    ●   single DAO
                    ●   single Web Service
                    ●   JBoss ESB + jBPM
                    ●   externalize rules calls in Decision Service (WS)

                                          Interaction Layer


22                                                                           Human Tasks
                                     EJB / POJO       ESB     Web Services
Best Practices – Always good BPM practices...

     ●   Simplify everything (KISS)
          ●   apply OO to process design
               ●   methods == sub-process + context in/out
               ●   encapsulate == sub-process
               ●   reuse == process repo (maven potential)
               ●   unit testing == per node, sub-process, process
               ●   exception handling (Exception Framework)




23
Best Practices – Rule Architecture

     ●   Partition your Knowledge Bases properly
          ●   Subject matter
          ●   Transaction / Service / Unit of Work
          ●   Business Entity
     ●   Avoid monolithic Knowledge Bases
     ●   Avoid fine grained Knowledge Bases
                                                     Knowledge   Inference   Knowledge
                                                       Base       Engine      Session




                                                                   Tasks




24
Best Practices – Rule Architecture

     ●   Batch data loads
          ●   Load 1000 facts and fire the rules faster than fire rules after
              each loaded fact
     ●   Partition the data into multiple sessions
          ●   Transaction / Service / Unit of work
     ●   Creating a new session is cheap
          ●   Cheaper than removing facts             Knowledge               Knowledge
                                                                  Inference
                                                        Base       Engine      Session




                                                                    Tasks




25
Best Practices – Rule Architecture

     ●   Quality of the data/fact model is directly proportional to the
         performance and maintainability of the rules using it
          ●   Think about the DBMS analogy
          ●   Flatter models improve performance
          ●   Smaller classes help avoiding recursions


                                                   Knowledge   Inference   Knowledge
                                                     Base       Engine      Session




                                                                 Tasks




26
JBoss BRMS – Best Practices in Rules Authoring




27
Best Practices – Rules Authoring

     ●   Don't try to micro-control rules execution
          ●   Use the Conflict Resolution Strategies instead
               ●   Salience
               ●   Agenda groups
               ●   Ruleflow / Processes
               ●   Dynamic Enablement

                                                    Knowledge   Inference   Knowledge
                                                      Base       Engine      Session




                                                                  Tasks




28
Best Practices – Rules Authoring

     ●   Don't overload rules
          ●   Each rule should describe one and only one
              scenario→action mapping
          ●   The engine will optimize shared conditions
          ●   The engine supports inference


                                                   Knowledge   Inference   Knowledge
                                                     Base       Engine      Session




                                                                 Tasks




29
Best Bad Practices – Rules Authoring
       rule “1 – Teenagers and Elders get Discount”
       rule “1 – Teenagers and Elders get Discount”
       when
       when
             Person age is between 16 and 18 or Person age is greater or equal to 65
             Person age is between 16 and 18 or Person age is greater or equal to 65
       then
       then
             Assign 25% ticket discount
             Assign 25% ticket discount
       end
       end


       rule “2 – Elders can buy tickets in area A”
       rule “2 – Elders can buy tickets in area A”
       when
       when
             Person age is greater or equal to 65
             Person age is greater or equal to 65
       then
       then
             Allow sales of area A tickets
             Allow sales of area A tickets
       end
       end




     Rules are being overloaded with multiple concepts, increasing maintenance
                                and testing costs.




30
Best Practices – Rules Authoring
rule “0.a – Teenagers are 16-18”
rule “0.a – Teenagers are 16-18”                rule “0.b – Elders are older than 65”
                                                rule “0.b – Elders are older than 65”
when
when                                            when
                                                when
       Person age is between 16 and 18
       Person age is between 16 and 18                Person is older than 65
                                                      Person is older than 65
then
then                                            then
                                                then
       Assert: the person is a Teenager
       Assert: the person is a Teenager               Assert: the person is an Elder
                                                      Assert: the person is an Elder
end
end                                             end
                                                end




 rule “1 – Teenagers and Elders get discount”
 rule “1 – Teenagers and Elders get discount”   rule “2 – Elders can buy tickets in area A”
                                                rule “2 – Elders can buy tickets in area A”
 when
 when                                           when
                                                when
       Teenager or Elder
       Teenager or Elder                              Elder
                                                      Elder
 then
 then                                           then
                                                then
       Assign 25% ticket discount
       Assign 25% ticket discount                     Allow sales of area A tickets
                                                      Allow sales of area A tickets
 end
 end                                            end
                                                end




31
Best Practices – Rules Authoring

     ●   One calculation (accumulate) per rule
           ●   Accumulates have O(n) performance
           ●
               Sequences of accumulates have O(nm) performance
                ●   n = number of matching facts
                ●   m = number of accumulates
                                                   rule “Sum debits”
                                                   rule “Sum debits”
                                                   when
                                                   when
rule “Sum debits and credits”
rule “Sum debits and credits”
                                                      accumulate( Debit( $d : amount ),
                                                      accumulate( Debit( $d : amount ),
when
when
                                                                  $debits: sum( $d ) )
                                                                  $debits: sum( $d ) )
         accumulate( Debit( $d : amount ),
         accumulate( Debit( $d : amount ),
                                                   then ...
                                                   then ...
                    $debits: sum( $d ) )
                    $debits: sum( $d ) )
         accumulate( Credit( $c : amount),
         accumulate( Credit( $c : amount),         rule “Sum credits”
                                                   rule “Sum credits”
                    $credits: sum( $c ) )
                    $credits: sum( $c ) )          when
                                                   when
then ...
then ...                                              accumulate( Credit( $c : amount ),
                                                      accumulate( Credit( $c : amount ),
                                                                  $credits: sum( $c ) )
                                                                  $credits: sum( $c ) )
                                                   then ...
                                                   then ...



32
Best Practices – Rules Authoring

     ●    Rules vs Queries
                                                Rules                           Queries
                Control           Invoked by the engine             Invoked by the application
                Parameters        Don't support parameters          Support parameters
                Results           Execute actions                   Return results



         rule “Approve VIP customers”
         rule “Approve VIP customers”                        query “Get customers by type”( $type )
                                                             query “Get customers by type”( $type )
         when
         when                                                when
                                                             when
               $c : Customer( type == “VIP” )
               $c : Customer( type == “VIP” )                      $c : Customer( type == $type )
                                                                   $c : Customer( type == $type )
         then
         then                                                end
                                                             end
               insert( new Approved( $c ) );
               insert( new Approved( $c ) );
         end
         end


                                     “Use the right tool for the right job!”



33
Best Practices – Rules Authoring

     ●   Declared Types
          ●   Facts used only by the rules
          ●   Facts that change frequently with the rules
     ●   POJOs
          ●   Facts shared by both rules and application
               ● No data copy – very efficient
          ●   Easier to integrate, easier to test
     ●   When in doubt, use POJOs


                             “Use the right tool for the right job!”



34
Questions?



35
Add references




     ●   JBoss Enterprise BRMS Best Practices Guide
         http://www.redhat.com/promo/integrated_enterprise/brms-best-practices-
         form.html
     ●   JBoss Enterprise BRMS Best Practices, Edson Tirelli,
         http://www.redhat.com/summit/sessions/jboss.html
     ●   JBoss BRMS,
         http://www.redhat.com/products/jbossenterprisemiddleware/business-rules/
     ●   BRMS Best Practices Process Initialization Layer,
         http://howtojboss.com/2012/08/15/brms-best-practices-process-initialization-
         layer/


36
Thank you!




Find out More:   http://www.redhat.com/brms

Contenu connexe

Tendances

02 mda middle east - part 1
02 mda middle east - part 102 mda middle east - part 1
02 mda middle east - part 1PiLog
 
Rubik Solutions Portfolio
Rubik Solutions PortfolioRubik Solutions Portfolio
Rubik Solutions PortfolioRalph van Zijl
 
Rubik Solutions Portfolio
Rubik Solutions PortfolioRubik Solutions Portfolio
Rubik Solutions Portfoliobob_ark
 
Scaling MySQL: Benefits of Automatic Data Distribution
Scaling MySQL: Benefits of Automatic Data DistributionScaling MySQL: Benefits of Automatic Data Distribution
Scaling MySQL: Benefits of Automatic Data DistributionScaleBase
 
Vv fishbone analysis_charts_final
Vv fishbone analysis_charts_finalVv fishbone analysis_charts_final
Vv fishbone analysis_charts_finalBobbi Bilnoski
 
Striving for an Outstanding IT Organization
Striving for an Outstanding IT OrganizationStriving for an Outstanding IT Organization
Striving for an Outstanding IT OrganizationHuberto Garza
 
DB2 for z/OS Update Data Warehousing On System Z
DB2 for z/OS Update Data Warehousing On System ZDB2 for z/OS Update Data Warehousing On System Z
DB2 for z/OS Update Data Warehousing On System ZSurekha Parekh
 
Future Office
Future OfficeFuture Office
Future Office2tique
 
Ptc & microsoft partnership
Ptc & microsoft partnershipPtc & microsoft partnership
Ptc & microsoft partnershipdynamicscom
 
Linalis UK introduction
Linalis UK introductionLinalis UK introduction
Linalis UK introductionSteve Adams
 
ScaleBase Webinar 8.16: ScaleUp vs. ScaleOut
ScaleBase Webinar 8.16: ScaleUp vs. ScaleOutScaleBase Webinar 8.16: ScaleUp vs. ScaleOut
ScaleBase Webinar 8.16: ScaleUp vs. ScaleOutScaleBase
 
ScaleBase Webinar: Methods and Challenges to Scale Out a MySQL Database
ScaleBase Webinar: Methods and Challenges to Scale Out a MySQL DatabaseScaleBase Webinar: Methods and Challenges to Scale Out a MySQL Database
ScaleBase Webinar: Methods and Challenges to Scale Out a MySQL DatabaseScaleBase
 
Paul Butterworth Policy Based Approach
Paul  Butterworth    Policy  Based  ApproachPaul  Butterworth    Policy  Based  Approach
Paul Butterworth Policy Based ApproachSOA Symposium
 
Knowledge management using enterprise content management system
Knowledge management using enterprise content management systemKnowledge management using enterprise content management system
Knowledge management using enterprise content management systemzuzu123
 
The Disruption of Big Data - AWS India Summit 2012
The Disruption of Big Data - AWS India Summit 2012The Disruption of Big Data - AWS India Summit 2012
The Disruption of Big Data - AWS India Summit 2012Amazon Web Services
 
Lessons Learned From Successfully Implementing MDM for key Retailers in Europe
Lessons Learned From Successfully Implementing MDM for key Retailers in EuropeLessons Learned From Successfully Implementing MDM for key Retailers in Europe
Lessons Learned From Successfully Implementing MDM for key Retailers in EuropeArielAubry
 
ex of my work for client: Corporate Back Office suite On Cloud
ex of my work for client: Corporate Back Office suite On Cloudex of my work for client: Corporate Back Office suite On Cloud
ex of my work for client: Corporate Back Office suite On CloudPravin Gandhi
 
TeleManagement Forum OSSera Case Study - AIS Thailand Service Manager Present...
TeleManagement Forum OSSera Case Study - AIS Thailand Service Manager Present...TeleManagement Forum OSSera Case Study - AIS Thailand Service Manager Present...
TeleManagement Forum OSSera Case Study - AIS Thailand Service Manager Present...Mingxia Zhang, Ph.D.
 

Tendances (20)

02 mda middle east - part 1
02 mda middle east - part 102 mda middle east - part 1
02 mda middle east - part 1
 
Rubik Solutions Portfolio
Rubik Solutions PortfolioRubik Solutions Portfolio
Rubik Solutions Portfolio
 
Rubik Solutions Portfolio
Rubik Solutions PortfolioRubik Solutions Portfolio
Rubik Solutions Portfolio
 
Scaling MySQL: Benefits of Automatic Data Distribution
Scaling MySQL: Benefits of Automatic Data DistributionScaling MySQL: Benefits of Automatic Data Distribution
Scaling MySQL: Benefits of Automatic Data Distribution
 
Vv fishbone analysis_charts_final
Vv fishbone analysis_charts_finalVv fishbone analysis_charts_final
Vv fishbone analysis_charts_final
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
Striving for an Outstanding IT Organization
Striving for an Outstanding IT OrganizationStriving for an Outstanding IT Organization
Striving for an Outstanding IT Organization
 
DB2 for z/OS Update Data Warehousing On System Z
DB2 for z/OS Update Data Warehousing On System ZDB2 for z/OS Update Data Warehousing On System Z
DB2 for z/OS Update Data Warehousing On System Z
 
Future Office
Future OfficeFuture Office
Future Office
 
Ptc & microsoft partnership
Ptc & microsoft partnershipPtc & microsoft partnership
Ptc & microsoft partnership
 
Linalis UK introduction
Linalis UK introductionLinalis UK introduction
Linalis UK introduction
 
ScaleBase Webinar 8.16: ScaleUp vs. ScaleOut
ScaleBase Webinar 8.16: ScaleUp vs. ScaleOutScaleBase Webinar 8.16: ScaleUp vs. ScaleOut
ScaleBase Webinar 8.16: ScaleUp vs. ScaleOut
 
ScaleBase Webinar: Methods and Challenges to Scale Out a MySQL Database
ScaleBase Webinar: Methods and Challenges to Scale Out a MySQL DatabaseScaleBase Webinar: Methods and Challenges to Scale Out a MySQL Database
ScaleBase Webinar: Methods and Challenges to Scale Out a MySQL Database
 
Paul Butterworth Policy Based Approach
Paul  Butterworth    Policy  Based  ApproachPaul  Butterworth    Policy  Based  Approach
Paul Butterworth Policy Based Approach
 
Knowledge management using enterprise content management system
Knowledge management using enterprise content management systemKnowledge management using enterprise content management system
Knowledge management using enterprise content management system
 
Datamine corporate profile
Datamine corporate profileDatamine corporate profile
Datamine corporate profile
 
The Disruption of Big Data - AWS India Summit 2012
The Disruption of Big Data - AWS India Summit 2012The Disruption of Big Data - AWS India Summit 2012
The Disruption of Big Data - AWS India Summit 2012
 
Lessons Learned From Successfully Implementing MDM for key Retailers in Europe
Lessons Learned From Successfully Implementing MDM for key Retailers in EuropeLessons Learned From Successfully Implementing MDM for key Retailers in Europe
Lessons Learned From Successfully Implementing MDM for key Retailers in Europe
 
ex of my work for client: Corporate Back Office suite On Cloud
ex of my work for client: Corporate Back Office suite On Cloudex of my work for client: Corporate Back Office suite On Cloud
ex of my work for client: Corporate Back Office suite On Cloud
 
TeleManagement Forum OSSera Case Study - AIS Thailand Service Manager Present...
TeleManagement Forum OSSera Case Study - AIS Thailand Service Manager Present...TeleManagement Forum OSSera Case Study - AIS Thailand Service Manager Present...
TeleManagement Forum OSSera Case Study - AIS Thailand Service Manager Present...
 

En vedette

Them's the Rules - Using a Rules Engine to Wrangle Complexity
Them's the Rules - Using a Rules Engine to Wrangle ComplexityThem's the Rules - Using a Rules Engine to Wrangle Complexity
Them's the Rules - Using a Rules Engine to Wrangle ComplexityMicah Breedlove
 
Business Rule Engine
Business Rule EngineBusiness Rule Engine
Business Rule EngineAnkur Singhal
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & DroolsSandip Jadhav
 
How a turnpike commission manages client requests case study by WorkflowGen
How a turnpike commission manages client requests case study by WorkflowGenHow a turnpike commission manages client requests case study by WorkflowGen
How a turnpike commission manages client requests case study by WorkflowGenAlain Bezançon
 
How a major industrial group automated its purchase order processes
How a major industrial group automated its purchase order processesHow a major industrial group automated its purchase order processes
How a major industrial group automated its purchase order processesAlain Bezançon
 
Obey The Rules: Implementing a Rules Engine in Flex
Obey The Rules: Implementing a Rules Engine in FlexObey The Rules: Implementing a Rules Engine in Flex
Obey The Rules: Implementing a Rules Engine in FlexRJ Owen
 
Developing Configurable and High Performance Apps in Drools
Developing Configurable and High Performance Apps in Drools Developing Configurable and High Performance Apps in Drools
Developing Configurable and High Performance Apps in Drools Ajay Mahajan
 
Rules Engine - java(Drools) & ruby(ruleby)
Rules Engine - java(Drools) & ruby(ruleby)Rules Engine - java(Drools) & ruby(ruleby)
Rules Engine - java(Drools) & ruby(ruleby)martincabrera
 
Developing a Real-time Engine with Akka, Cassandra, and Spray
Developing a Real-time Engine with Akka, Cassandra, and SprayDeveloping a Real-time Engine with Akka, Cassandra, and Spray
Developing a Real-time Engine with Akka, Cassandra, and SprayJacob Park
 
JBoss Business Rules Management System (BRMS) Primer
JBoss Business Rules Management System (BRMS) PrimerJBoss Business Rules Management System (BRMS) Primer
JBoss Business Rules Management System (BRMS) PrimerEric D. Schabell
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep diveMario Fusco
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Mark Proctor
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineAmazon Web Services
 

En vedette (16)

Them's the Rules - Using a Rules Engine to Wrangle Complexity
Them's the Rules - Using a Rules Engine to Wrangle ComplexityThem's the Rules - Using a Rules Engine to Wrangle Complexity
Them's the Rules - Using a Rules Engine to Wrangle Complexity
 
Drools expert-docs
Drools expert-docsDrools expert-docs
Drools expert-docs
 
Business Rule Engine
Business Rule EngineBusiness Rule Engine
Business Rule Engine
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & Drools
 
How a turnpike commission manages client requests case study by WorkflowGen
How a turnpike commission manages client requests case study by WorkflowGenHow a turnpike commission manages client requests case study by WorkflowGen
How a turnpike commission manages client requests case study by WorkflowGen
 
How a major industrial group automated its purchase order processes
How a major industrial group automated its purchase order processesHow a major industrial group automated its purchase order processes
How a major industrial group automated its purchase order processes
 
Obey The Rules: Implementing a Rules Engine in Flex
Obey The Rules: Implementing a Rules Engine in FlexObey The Rules: Implementing a Rules Engine in Flex
Obey The Rules: Implementing a Rules Engine in Flex
 
Developing Configurable and High Performance Apps in Drools
Developing Configurable and High Performance Apps in Drools Developing Configurable and High Performance Apps in Drools
Developing Configurable and High Performance Apps in Drools
 
Rules Engine - java(Drools) & ruby(ruleby)
Rules Engine - java(Drools) & ruby(ruleby)Rules Engine - java(Drools) & ruby(ruleby)
Rules Engine - java(Drools) & ruby(ruleby)
 
Developing a Real-time Engine with Akka, Cassandra, and Spray
Developing a Real-time Engine with Akka, Cassandra, and SprayDeveloping a Real-time Engine with Akka, Cassandra, and Spray
Developing a Real-time Engine with Akka, Cassandra, and Spray
 
JBoss Business Rules Management System (BRMS) Primer
JBoss Business Rules Management System (BRMS) PrimerJBoss Business Rules Management System (BRMS) Primer
JBoss Business Rules Management System (BRMS) Primer
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep dive
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)
 
Drools
DroolsDrools
Drools
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules Engine
 
Business Rules on Hadoop
Business Rules on HadoopBusiness Rules on Hadoop
Business Rules on Hadoop
 

Similaire à Best practices webinar

JBoss BRMS sneak peak, the future is now for your Business Processes
JBoss BRMS sneak peak, the future is now for your Business ProcessesJBoss BRMS sneak peak, the future is now for your Business Processes
JBoss BRMS sneak peak, the future is now for your Business ProcessesEric D. Schabell
 
Business Process Management
Business Process ManagementBusiness Process Management
Business Process ManagementIBMGovernmentCA
 
Ibm Java在企业级开发中的应用
Ibm Java在企业级开发中的应用Ibm Java在企业级开发中的应用
Ibm Java在企业级开发中的应用George Ang
 
Qcon java在企业级开发中的应用
Qcon java在企业级开发中的应用Qcon java在企业级开发中的应用
Qcon java在企业级开发中的应用youzitang
 
DPS: Operative Spotlight on the Changing Face of Digital Publishing Operations
DPS: Operative Spotlight on the Changing Face of Digital Publishing OperationsDPS: Operative Spotlight on the Changing Face of Digital Publishing Operations
DPS: Operative Spotlight on the Changing Face of Digital Publishing OperationsDigiday
 
Dynamic BPM
Dynamic BPMDynamic BPM
Dynamic BPMSSA KPI
 
CASE STUDY: How SCA Hygiene Leveraged SAP NetWeaver for Global Consolidation
CASE STUDY: How SCA Hygiene Leveraged SAP NetWeaver for Global ConsolidationCASE STUDY: How SCA Hygiene Leveraged SAP NetWeaver for Global Consolidation
CASE STUDY: How SCA Hygiene Leveraged SAP NetWeaver for Global ConsolidationSEEBURGER
 
Case Studies Using Process as the Lever for Enterprise Change
Case Studies Using Process as the Lever for Enterprise ChangeCase Studies Using Process as the Lever for Enterprise Change
Case Studies Using Process as the Lever for Enterprise ChangeVincent Kwon
 
Business Value Networks And Information Technology V5
Business Value Networks And Information Technology V5Business Value Networks And Information Technology V5
Business Value Networks And Information Technology V5eamonnmccormick
 
Дамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes StorehouseДамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes StorehouseТранслируем.бел
 
EMC Documentum & Captiva
EMC Documentum & CaptivaEMC Documentum & Captiva
EMC Documentum & CaptivaITDogadjaji.com
 
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...Dan Selman
 
202.05.11 - 9ème Forum du Club Cloud des Partenaires
202.05.11 -  9ème Forum du Club Cloud des Partenaires202.05.11 -  9ème Forum du Club Cloud des Partenaires
202.05.11 - 9ème Forum du Club Cloud des PartenairesClub Cloud des Partenaires
 
]project-open[ Data-Model 100511b
]project-open[ Data-Model 100511b]project-open[ Data-Model 100511b
]project-open[ Data-Model 100511bKlaus Hofeditz
 
Fusion app customization_con8719_pdf_8719_0001
Fusion app customization_con8719_pdf_8719_0001Fusion app customization_con8719_pdf_8719_0001
Fusion app customization_con8719_pdf_8719_0001jucaab
 
Ea Soa Maturity Model (070204)
Ea Soa Maturity Model (070204)Ea Soa Maturity Model (070204)
Ea Soa Maturity Model (070204)Steven Gorenbergh
 

Similaire à Best practices webinar (20)

JBoss BRMS sneak peak, the future is now for your Business Processes
JBoss BRMS sneak peak, the future is now for your Business ProcessesJBoss BRMS sneak peak, the future is now for your Business Processes
JBoss BRMS sneak peak, the future is now for your Business Processes
 
Business Process Management
Business Process ManagementBusiness Process Management
Business Process Management
 
Ibm Java在企业级开发中的应用
Ibm Java在企业级开发中的应用Ibm Java在企业级开发中的应用
Ibm Java在企业级开发中的应用
 
Qcon java在企业级开发中的应用
Qcon java在企业级开发中的应用Qcon java在企业级开发中的应用
Qcon java在企业级开发中的应用
 
DPS: Operative Spotlight on the Changing Face of Digital Publishing Operations
DPS: Operative Spotlight on the Changing Face of Digital Publishing OperationsDPS: Operative Spotlight on the Changing Face of Digital Publishing Operations
DPS: Operative Spotlight on the Changing Face of Digital Publishing Operations
 
Dynamic BPM
Dynamic BPMDynamic BPM
Dynamic BPM
 
CASE STUDY: How SCA Hygiene Leveraged SAP NetWeaver for Global Consolidation
CASE STUDY: How SCA Hygiene Leveraged SAP NetWeaver for Global ConsolidationCASE STUDY: How SCA Hygiene Leveraged SAP NetWeaver for Global Consolidation
CASE STUDY: How SCA Hygiene Leveraged SAP NetWeaver for Global Consolidation
 
Hacking Trust
Hacking TrustHacking Trust
Hacking Trust
 
Case Studies Using Process as the Lever for Enterprise Change
Case Studies Using Process as the Lever for Enterprise ChangeCase Studies Using Process as the Lever for Enterprise Change
Case Studies Using Process as the Lever for Enterprise Change
 
Business Value Networks And Information Technology V5
Business Value Networks And Information Technology V5Business Value Networks And Information Technology V5
Business Value Networks And Information Technology V5
 
Intelligent Business Process Management
Intelligent Business Process ManagementIntelligent Business Process Management
Intelligent Business Process Management
 
Дамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes StorehouseДамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes Storehouse
 
EMC Documentum & Captiva
EMC Documentum & CaptivaEMC Documentum & Captiva
EMC Documentum & Captiva
 
9sept2009 iiruc
9sept2009 iiruc9sept2009 iiruc
9sept2009 iiruc
 
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
WebSphere Technical Conference 2009 : Enhancing your BPM Solution with ILOG J...
 
202.05.11 - 9ème Forum du Club Cloud des Partenaires
202.05.11 -  9ème Forum du Club Cloud des Partenaires202.05.11 -  9ème Forum du Club Cloud des Partenaires
202.05.11 - 9ème Forum du Club Cloud des Partenaires
 
]project-open[ Data-Model 100511b
]project-open[ Data-Model 100511b]project-open[ Data-Model 100511b
]project-open[ Data-Model 100511b
 
Fusion app customization_con8719_pdf_8719_0001
Fusion app customization_con8719_pdf_8719_0001Fusion app customization_con8719_pdf_8719_0001
Fusion app customization_con8719_pdf_8719_0001
 
A guiding light for the processes in your private cloud
A guiding light for the processes in your private cloudA guiding light for the processes in your private cloud
A guiding light for the processes in your private cloud
 
Ea Soa Maturity Model (070204)
Ea Soa Maturity Model (070204)Ea Soa Maturity Model (070204)
Ea Soa Maturity Model (070204)
 

Plus de Eric D. Schabell

OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Checking the pulse of your cloud native architecture
Checking the pulse of your cloud native architectureChecking the pulse of your cloud native architecture
Checking the pulse of your cloud native architectureEric D. Schabell
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud DataEric D. Schabell
 
Observability For You and Me with OpenTelemetry (with demo)
Observability For You and Me with OpenTelemetry (with demo)Observability For You and Me with OpenTelemetry (with demo)
Observability For You and Me with OpenTelemetry (with demo)Eric D. Schabell
 
3 Pitfalls Everyone Should Avoid with Cloud Native Observability
3 Pitfalls Everyone Should Avoid with Cloud Native Observability3 Pitfalls Everyone Should Avoid with Cloud Native Observability
3 Pitfalls Everyone Should Avoid with Cloud Native ObservabilityEric D. Schabell
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryEric D. Schabell
 
Roadmap to Becoming a CNCF Ambassador
Roadmap to Becoming a CNCF AmbassadorRoadmap to Becoming a CNCF Ambassador
Roadmap to Becoming a CNCF AmbassadorEric D. Schabell
 
Cloud Native Bedtime Stories - Terrifying Execs into Action
Cloud Native Bedtime Stories - Terrifying Execs into ActionCloud Native Bedtime Stories - Terrifying Execs into Action
Cloud Native Bedtime Stories - Terrifying Execs into ActionEric D. Schabell
 
SRECon EU 2023 - Three Phases to Better Observability Outcomes
SRECon EU 2023 - Three Phases to Better Observability OutcomesSRECon EU 2023 - Three Phases to Better Observability Outcomes
SRECon EU 2023 - Three Phases to Better Observability OutcomesEric D. Schabell
 
Optimizing Observability Spend: Metrics
Optimizing Observability Spend: MetricsOptimizing Observability Spend: Metrics
Optimizing Observability Spend: MetricsEric D. Schabell
 
Engaging Your Execs - Telling Great Observability Tales Inspiring Action
Engaging Your Execs - Telling Great Observability Tales Inspiring ActionEngaging Your Execs - Telling Great Observability Tales Inspiring Action
Engaging Your Execs - Telling Great Observability Tales Inspiring ActionEric D. Schabell
 
WTF is SRE - Telling Effective Tales about Production
WTF is SRE - Telling Effective Tales about ProductionWTF is SRE - Telling Effective Tales about Production
WTF is SRE - Telling Effective Tales about ProductionEric D. Schabell
 
Optimizing Observability Spend: Metrics
Optimizing Observability Spend: MetricsOptimizing Observability Spend: Metrics
Optimizing Observability Spend: MetricsEric D. Schabell
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryEric D. Schabell
 
Open Source 101 - Observability For You and Me with OpenTelemetry
Open Source 101 - Observability For You and Me with OpenTelemetryOpen Source 101 - Observability For You and Me with OpenTelemetry
Open Source 101 - Observability For You and Me with OpenTelemetryEric D. Schabell
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud DataEric D. Schabell
 
3 Pitfalls Everyone Should Avoid with Cloud Native Data
3 Pitfalls Everyone Should Avoid with Cloud Native Data3 Pitfalls Everyone Should Avoid with Cloud Native Data
3 Pitfalls Everyone Should Avoid with Cloud Native DataEric D. Schabell
 
DZone webinar - Shift left Observability
DZone webinar - Shift left ObservabilityDZone webinar - Shift left Observability
DZone webinar - Shift left ObservabilityEric D. Schabell
 
Storytelling - How to build and delivery a story
Storytelling - How to build and delivery a storyStorytelling - How to build and delivery a story
Storytelling - How to build and delivery a storyEric D. Schabell
 

Plus de Eric D. Schabell (20)

OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Checking the pulse of your cloud native architecture
Checking the pulse of your cloud native architectureChecking the pulse of your cloud native architecture
Checking the pulse of your cloud native architecture
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data
 
Observability For You and Me with OpenTelemetry (with demo)
Observability For You and Me with OpenTelemetry (with demo)Observability For You and Me with OpenTelemetry (with demo)
Observability For You and Me with OpenTelemetry (with demo)
 
3 Pitfalls Everyone Should Avoid with Cloud Native Observability
3 Pitfalls Everyone Should Avoid with Cloud Native Observability3 Pitfalls Everyone Should Avoid with Cloud Native Observability
3 Pitfalls Everyone Should Avoid with Cloud Native Observability
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Roadmap to Becoming a CNCF Ambassador
Roadmap to Becoming a CNCF AmbassadorRoadmap to Becoming a CNCF Ambassador
Roadmap to Becoming a CNCF Ambassador
 
Cloud Native Bedtime Stories - Terrifying Execs into Action
Cloud Native Bedtime Stories - Terrifying Execs into ActionCloud Native Bedtime Stories - Terrifying Execs into Action
Cloud Native Bedtime Stories - Terrifying Execs into Action
 
SRECon EU 2023 - Three Phases to Better Observability Outcomes
SRECon EU 2023 - Three Phases to Better Observability OutcomesSRECon EU 2023 - Three Phases to Better Observability Outcomes
SRECon EU 2023 - Three Phases to Better Observability Outcomes
 
Optimizing Observability Spend: Metrics
Optimizing Observability Spend: MetricsOptimizing Observability Spend: Metrics
Optimizing Observability Spend: Metrics
 
Engaging Your Execs - Telling Great Observability Tales Inspiring Action
Engaging Your Execs - Telling Great Observability Tales Inspiring ActionEngaging Your Execs - Telling Great Observability Tales Inspiring Action
Engaging Your Execs - Telling Great Observability Tales Inspiring Action
 
WTF is SRE - Telling Effective Tales about Production
WTF is SRE - Telling Effective Tales about ProductionWTF is SRE - Telling Effective Tales about Production
WTF is SRE - Telling Effective Tales about Production
 
Optimizing Observability Spend: Metrics
Optimizing Observability Spend: MetricsOptimizing Observability Spend: Metrics
Optimizing Observability Spend: Metrics
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Open Source 101 - Observability For You and Me with OpenTelemetry
Open Source 101 - Observability For You and Me with OpenTelemetryOpen Source 101 - Observability For You and Me with OpenTelemetry
Open Source 101 - Observability For You and Me with OpenTelemetry
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data
 
3 Pitfalls Everyone Should Avoid with Cloud Native Data
3 Pitfalls Everyone Should Avoid with Cloud Native Data3 Pitfalls Everyone Should Avoid with Cloud Native Data
3 Pitfalls Everyone Should Avoid with Cloud Native Data
 
DZone webinar - Shift left Observability
DZone webinar - Shift left ObservabilityDZone webinar - Shift left Observability
DZone webinar - Shift left Observability
 
Storytelling - How to build and delivery a story
Storytelling - How to build and delivery a storyStorytelling - How to build and delivery a story
Storytelling - How to build and delivery a story
 
Shift left Observability
Shift left ObservabilityShift left Observability
Shift left Observability
 

Best practices webinar

  • 1. JBoss Enterprise BRMS The Road to Large Scale Enterprise Solutions Phil Simpson, Product Marketing Manager Eric Schabell, JBoss Technology Evangelist 1
  • 3. JBoss Enterprise BRMS Business Events Interacts Web-based Decision with... Enterprise development tools Service Application Business Analysts Web Event Processor Repository Service Deploy Business Process Business Business Process Rule & Manager Definitions Event Definitions Java Code Rule Engine JBDS, with BRMS r plugins i to on M & ge ana M Business Developers Users Management Business Console Data Operations 3
  • 4. JBoss Enterprise BRMS Business Events Interacts Web-based Decision with... Enterprise development tools Service Application Business Analysts Web Event Processor Repository Service Deploy Business Process Business Business Process Rule & Manager Definitions Event Definitions Java Code Rule Engine JBDS, with BRMS r plugins i to on M & ge ana M Business Developers Users Management Business Console Data Operations 4
  • 5. JBoss Enterprise BRMS Business Events Interacts Web-based Decision with... Enterprise development tools Service Application Business Analysts Web Event Processor Repository Service Deploy Business Process Business Business Process Rule & Manager Definitions Event Definitions Java Code Rule Engine JBDS, with BRMS r plugins i to on M & ge ana M Business Developers Users Management Business Console Data Operations 5
  • 6. JBoss Enterprise BRMS Business Events Interacts Web-based with... development tools Decision Enterprise (Guvnor) Service Application Business Analysts Web Event Processor Repository Service Deploy Business Process Business Business Process Rule & Manager Definitions Event Definitions Java Code Rule Engine JBDS, with BRMS r plugins i to on M & ge ana M Business Developers Users Management Business Console Data Operations 6
  • 7. JBoss Enterprise BRMS Business Events Interacts Web-based Decision with... Enterprise development tools Service Application Business Analysts Web Event Processor Repository Service Deploy Business Process Business Business Process Rule & Manager Definitions Event Definitions Java Code Rule Engine JBDS, with BRMS r plugins i to on M & ge ana M Business Developers Users Management Business Console Data Operations 7
  • 8. Best Practices Developing BRMS Applications that Scale ● BRMS Adoption Goals ● Under the Hood ● Best Practices ● BPM ● Architecture ● Rules Authoring 8
  • 10. Goal #1: Decision Automation Conclusion: Time is Money! Business Event Value Loss Business Value Reaction Time Time Loss Adapted from a presentation by James Taylor, Sep/2011 10
  • 11. Goal #2: Expressiveness and Visibility rule “Send shipment pick-up SMS alert” rule “Send shipment pick-up SMS alert” when when There is a shipment order There is a shipment order There is a route assigned to There is a route assigned to the order the order There is a truck GPS reading There is a truck GPS reading and the truck is 15 minutes and the truck is 15 minutes away from the pick-up location away from the pick-up location then then Send SMS to customer: “Arriving in 15 minutes” Send SMS to customer: “Arriving in 15 minutes” end end Focus on “what to do” instead of “how to do it” 11
  • 12. Goal #3: Performance and Scalability ● Real time, online, systems ● Millisecond response times ● Hundreds of thousands of rules ● JBoss BRMS: 700k+ rules ● Millions of data instances (facts) ● Incremental (re-)evaluation ● Changes in data can't reset reasoning 12
  • 13. Goal #4..#6: other technical goals ● Logic, Data and Tasks split ● Centralization of Knowledge ● Consistency ● Testing / Simulation Knowledge Knowledge ● Auditing Base (rules/events/ Inference Session Engine (data) processes) ● Explanation Facility Tasks 13
  • 14. JBoss BRMS: under the hood 14
  • 15. Engine's Algorithm – 30 seconds crash course Rete Network: Computer's View Data Customer Order Decision Table: User's View Customer Order Total Discount Amount < $1000 >=$1000 Gold 15% Gold Silver Silver < $1000 5% Silver >= $1000 10% Clear, Concise, Objective Discount: 15% Discount: 5% Discount: 10% Efficient, Effective 15
  • 16. JBoss BRMS – some optimizations ● Support to POJOs as facts ● no mapping/data copy necessary ● Full split between Knowledge Base and Session ● lightweight session creation ● knowledge base sharing ● Completely Dynamic Knowledge Base ● Hot addition/removal/updates of rules/queries/processes ● Full support to First Order Logic and Set operations ● JIT compilation for constraints and data access 16
  • 17. JBoss BRMS – More optimizations Data Alpha Hashing Customer Order Node Sharing Gold Silver < $1000 >=$1000 Data Indexing Lazy Matching Discount: 15% Discount: 5% Discount: 10% 17
  • 19. Best Practices – BPM Architecture Interaction Layer EJB / POJO ESB Web Services Human Tasks Process Implementation Layer JBPM Console Reporting, BAM Dashboards Process Repository Queues Process Initialization Layer BPMN2 Authoring for BPMN2 Authoring for Business Users Developers Developer 19 Customer
  • 20. Best Practices – Process Initialization EJB MDB ● How do you start your process? Queues ● web services, EJB's, API call, RESTful ● what about prioritization of processes Process Initialization Layer ● use message queues ● other complex ideas to start processes ● Centralize startProcess in single location ● minimizes change effects in this layer Customer 20
  • 21. Process Implementation Layer Best Practices – Process Implementation ● Java nodes ● do you keep it clean? ● single unit of action per process step ● human task / admin interfaces ● Centralize you jBPM API access ● single WS / DAO / BOM / RESTful ● Domain specific nodes ● extensions via work item handlers ● Design process for reuse ● smallest unit of work 21
  • 22. Best Practices – Process Interaction ● Processes interact with your Enterprise ● Web Services, EJB, GUI, POJO, Exceptions, Bean Script, Rules... ● jBPM API & jBPM History DB & RESTful ● history / tasks / reporting ● single DAO ● single Web Service ● JBoss ESB + jBPM ● externalize rules calls in Decision Service (WS) Interaction Layer 22 Human Tasks EJB / POJO ESB Web Services
  • 23. Best Practices – Always good BPM practices... ● Simplify everything (KISS) ● apply OO to process design ● methods == sub-process + context in/out ● encapsulate == sub-process ● reuse == process repo (maven potential) ● unit testing == per node, sub-process, process ● exception handling (Exception Framework) 23
  • 24. Best Practices – Rule Architecture ● Partition your Knowledge Bases properly ● Subject matter ● Transaction / Service / Unit of Work ● Business Entity ● Avoid monolithic Knowledge Bases ● Avoid fine grained Knowledge Bases Knowledge Inference Knowledge Base Engine Session Tasks 24
  • 25. Best Practices – Rule Architecture ● Batch data loads ● Load 1000 facts and fire the rules faster than fire rules after each loaded fact ● Partition the data into multiple sessions ● Transaction / Service / Unit of work ● Creating a new session is cheap ● Cheaper than removing facts Knowledge Knowledge Inference Base Engine Session Tasks 25
  • 26. Best Practices – Rule Architecture ● Quality of the data/fact model is directly proportional to the performance and maintainability of the rules using it ● Think about the DBMS analogy ● Flatter models improve performance ● Smaller classes help avoiding recursions Knowledge Inference Knowledge Base Engine Session Tasks 26
  • 27. JBoss BRMS – Best Practices in Rules Authoring 27
  • 28. Best Practices – Rules Authoring ● Don't try to micro-control rules execution ● Use the Conflict Resolution Strategies instead ● Salience ● Agenda groups ● Ruleflow / Processes ● Dynamic Enablement Knowledge Inference Knowledge Base Engine Session Tasks 28
  • 29. Best Practices – Rules Authoring ● Don't overload rules ● Each rule should describe one and only one scenario→action mapping ● The engine will optimize shared conditions ● The engine supports inference Knowledge Inference Knowledge Base Engine Session Tasks 29
  • 30. Best Bad Practices – Rules Authoring rule “1 – Teenagers and Elders get Discount” rule “1 – Teenagers and Elders get Discount” when when Person age is between 16 and 18 or Person age is greater or equal to 65 Person age is between 16 and 18 or Person age is greater or equal to 65 then then Assign 25% ticket discount Assign 25% ticket discount end end rule “2 – Elders can buy tickets in area A” rule “2 – Elders can buy tickets in area A” when when Person age is greater or equal to 65 Person age is greater or equal to 65 then then Allow sales of area A tickets Allow sales of area A tickets end end Rules are being overloaded with multiple concepts, increasing maintenance and testing costs. 30
  • 31. Best Practices – Rules Authoring rule “0.a – Teenagers are 16-18” rule “0.a – Teenagers are 16-18” rule “0.b – Elders are older than 65” rule “0.b – Elders are older than 65” when when when when Person age is between 16 and 18 Person age is between 16 and 18 Person is older than 65 Person is older than 65 then then then then Assert: the person is a Teenager Assert: the person is a Teenager Assert: the person is an Elder Assert: the person is an Elder end end end end rule “1 – Teenagers and Elders get discount” rule “1 – Teenagers and Elders get discount” rule “2 – Elders can buy tickets in area A” rule “2 – Elders can buy tickets in area A” when when when when Teenager or Elder Teenager or Elder Elder Elder then then then then Assign 25% ticket discount Assign 25% ticket discount Allow sales of area A tickets Allow sales of area A tickets end end end end 31
  • 32. Best Practices – Rules Authoring ● One calculation (accumulate) per rule ● Accumulates have O(n) performance ● Sequences of accumulates have O(nm) performance ● n = number of matching facts ● m = number of accumulates rule “Sum debits” rule “Sum debits” when when rule “Sum debits and credits” rule “Sum debits and credits” accumulate( Debit( $d : amount ), accumulate( Debit( $d : amount ), when when $debits: sum( $d ) ) $debits: sum( $d ) ) accumulate( Debit( $d : amount ), accumulate( Debit( $d : amount ), then ... then ... $debits: sum( $d ) ) $debits: sum( $d ) ) accumulate( Credit( $c : amount), accumulate( Credit( $c : amount), rule “Sum credits” rule “Sum credits” $credits: sum( $c ) ) $credits: sum( $c ) ) when when then ... then ... accumulate( Credit( $c : amount ), accumulate( Credit( $c : amount ), $credits: sum( $c ) ) $credits: sum( $c ) ) then ... then ... 32
  • 33. Best Practices – Rules Authoring ● Rules vs Queries Rules Queries Control Invoked by the engine Invoked by the application Parameters Don't support parameters Support parameters Results Execute actions Return results rule “Approve VIP customers” rule “Approve VIP customers” query “Get customers by type”( $type ) query “Get customers by type”( $type ) when when when when $c : Customer( type == “VIP” ) $c : Customer( type == “VIP” ) $c : Customer( type == $type ) $c : Customer( type == $type ) then then end end insert( new Approved( $c ) ); insert( new Approved( $c ) ); end end “Use the right tool for the right job!” 33
  • 34. Best Practices – Rules Authoring ● Declared Types ● Facts used only by the rules ● Facts that change frequently with the rules ● POJOs ● Facts shared by both rules and application ● No data copy – very efficient ● Easier to integrate, easier to test ● When in doubt, use POJOs “Use the right tool for the right job!” 34
  • 36. Add references ● JBoss Enterprise BRMS Best Practices Guide http://www.redhat.com/promo/integrated_enterprise/brms-best-practices- form.html ● JBoss Enterprise BRMS Best Practices, Edson Tirelli, http://www.redhat.com/summit/sessions/jboss.html ● JBoss BRMS, http://www.redhat.com/products/jbossenterprisemiddleware/business-rules/ ● BRMS Best Practices Process Initialization Layer, http://howtojboss.com/2012/08/15/brms-best-practices-process-initialization- layer/ 36
  • 37. Thank you! Find out More: http://www.redhat.com/brms