TheServerSide Java Symposium 2005 : Business Rule Management, Enables Agile Applications

Post on 18-Dec-2014

177 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

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

top related