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 You have them… where are they? 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.”
Business rules“What Not How” • Business rules are generally declarative, not procedural • From a programmer’s perspective they are generally individually trivialApplication 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 applicationsApplication dependent • To be executed business rules have to be mapped on to your IT infrastructure
Typical code sample… Petstore: OrderFulfillmentFacadeEJB … that will be subject to change.
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.
Developers 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!
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 competitionThink of business rules as malleable business assets • …governing or influencing business behavior. • A competitive tool.
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 requirements Rich 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 requirementsDynamic runtime reportingRule refactoring and impact analysisBusiness simulation and testing frameworkCollaboration features for large numbers of policy managers: security, permissions, lockingDealing 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 involvementClearer separation of roles • IT owns infrastructure code and processes • Policy managers own business rulesEveryone is happier! ;-)