theserverside java symposium 2005 : business rule management, enables agile applications
DESCRIPTION
An introduction to BRMS.TRANSCRIPT
Business Rule Management
0.8/030304
Daniel SelmanProduct ManagerILOG, JRules
Enables Agile Applications
This presentation
What are business rules?
When do I need a Business Rule Management System (BRMS)?
• BRMS is a concept, not a product!
What is a BRMS?
Standards update
Architectural components
Some BRMS requirements
Conclusions
Demo of ILOG JRules
Q&A
Business rules
Business rules are everywhere!
They define how you run your business:• Compliance, enforcement, validation
“No US citizen may transfer money to Cuba.” “All hire orders must be accompanied by a valid drivers license.” “No packaged shipped within the continental USA may exceed 25
KG.”
• Correlation “If the customer has ADSL with a speed of less than 512 and they
have an average usage of over 20 hours per week, offer the customer 1024 ADSL with free installation.
• Computation “If the customer has had a bankruptcy in the past two years
decrease their credit score by 150.” “Offer a 10% discount on all widgets if the customer has spent
over $500 over the past 12 months.”
You have them… where are they?
Business rules
“What Not How”• Business rules are generally declarative, not procedural
• From a programmer’s perspective they are generally individually trivial
Application independent• Statements about how you run your business may last
longer than your current IT infrastructure
• Your policy managers may not understand the details of your current IT infrastructure
• May need to be deployed to multiple applications
Application dependent• To be executed business rules have to be mapped on to your
IT infrastructure
How do you deal with change?
“Why do you want to change that? It will take 6 months to change now!”
I don’t need a rule engine…• “We’ll cross that bridge when we get to it, in version 2.0…”
• “The command pattern, write plugins…”
• “I’ll load the values from a text/xml file…”
• “Javascript/Groovy/BSH/AOP will allow us to change the policy quickly…”
• “It’s all in the database anyway. The values and the stored procedures.”
• Coding is cheaper. It’s being written in India/China/Vietnam.
I’ll write my own rule engine.
Typical code sample…
Petstore:
OrderFulfillmentFacadeEJB
… that will be subject to change.
Java Rule Engines
ILOG JRules
Fair Isaac Blaze AdvisorPegaRules
QuickRules
Haley
OPS/J
Jess
Drools (Open Source)
Mandrax (Open Source)
40+ listed at http://www.javarules.org
Standards Update JSR-94 - “The Java Rule Engine API”
• Minor update 1.0.1
• Sample implementations: ILOG JRules Fair Isaac Blaze Advisor Yasutech QuickRules Jess Drools Computer Associates
• Spring integration
OMG• Production Rule Representation
MOF2 metamodel for production rules
• Business Semantics of Business Rules Natural language, common graphics and tables
W3C• Workshop on rule languages, April (Washington DC)
When do I need a BRMS?
Do you want/need to know what your business policy is?
Do non-developers edit or view business rules?
Are change cycles too short for traditional development?
Do you struggle to communicate around business requirements with business users?
Is it hard to maintain the performance of your home-grown system as the number of rules increases?
Would you like to adapt business policy based on business performance?
Do you need to apply business policy based on temporal attributes?
• How was your income tax calculated in 1996?
What is a BRMS?
A Business Rule Management System
(BRMS) is a set of tools and processes that
facilitate the communication, deployment
and execution of business policy within an IT
infrastructure.
A BRMS manages business rules as
enterprise assets and enables a rich
development lifecycle for business policy.
So, BRMS is…
A lot more than just a rule engine!
But, the rule engine is an important
component.
BRMS PersonaDeveloper• Develops on the J2SE/J2EE/.NET platform.
Business Analyst, Modeler• Working closely with developers, the bridge between
development and business people, gathers requirement and business needs.
• Can be a “super-set” of the developer profile in some cases.
• Familiar with UML-like modeling tools.
Policy Manager • They understand the business drivers and domain, from
which they derive business rules.
• They are not comfortable using typical developer tools.
Do not like to deal with the messy word of business policy very much…
But, like to create frameworks for:• Logging
• Security
• Wiring general hunks of code together
• Scripting
• UI aggregation
• ORM
• Webflow
But almost nothing for business policy!
Think of business rules as hunks of code• …that unfortunately keep changing!
Developers
Policy ManagersThink “IT” is:• Too slow
• Ignorant of the business requirements
• More interested in playing with technology X than improving the bottom line…
• A bottleneck to innovation and putting more pressure on the competition
Think of business rules as malleable business assets• …governing or influencing business behavior.
• A competitive tool.
Key pieces of the puzzle
BRMS implementations
Developers build a framework (often an application specific container)• Logging, security, transactions, enterprise integration, object
models, static business rules etc.
• Hot deployment support for business rules
Assist analysts/modelers in defining the business object model/vocabulary
Deploy/build rule editors for business users
Help define and tool processes• Merging rules between environments
• Moving rules from staging to production
• Testing and validating support for rules
Sample BRMS requirementsRich client editor for business rules• IF-THEN-ELSE rules, decision tables, decision trees
Web interface for editing business rules
SCC integration for rules
A central rule repository for business users
Hot deployment of rules
Rule debugger
Rule engine
Business reporting
Runtime monitoring
Advanced BRMS requirements
Dynamic runtime reporting
Rule refactoring and impact analysis
Business simulation and testing framework
Collaboration features for large numbers of policy managers: security, permissions, locking
Dealing with concurrent streams of business policy development (branch, merge)
…
When done well BRMS enables…
More effective communication between IT and
business owners
Rapid deployment of changes in business
policy, with minimal IT involvement
Clearer separation of roles
• IT owns infrastructure code and processes
• Policy managers own business rules
Everyone is happier! ;-)
Demonstration
ILOG JRules
QA&www.javarules.org