An analogy of BRMS

Download 'An analogy of BRMS' in word format

An analogy of BRMS - Introduction

Through this write up I am trying to introduce major concepts, tools, techniques and players around the Business Rule Management System (BRMS) from my experience around this area and from materials collected from different resources. This is intended to give a head start to anyone who is trying to validate different Business Rules Engine, Expert Systems or Decision Tree Systems. References are mostly wikepedia and product specific websites.

BUSINESS RULE MANAGEMENT SYSTEM (BRMS)

A BRMS or Business Rule Management System is a software system used to define, deploy, execute, monitor and maintain the variety and complexity of decision logic that is used by operational systems within an organization or enterprise. This logic, also referred to as business rules, includes policies, requirements, and conditional statements that are used to determine the tactical actions that take place in applications and systems.

A BRMS includes, at minimum:

  • A repository, allowing decision logic to be externalized from core application code
  • Tools, allowing both technical developers and business experts to define and manage decision logic
  • A runtime environment, allowing applications to invoke decision logic managed within the BRMS and execute it using a business rules engine

 

The top benefits of a BRMS include:

  • Reduced or removed reliance on IT departments for changes in live systems
  • Increased control over implemented decision logic for compliance and better business management
  • The ability to express decision logic with increased precision, using a business vocabulary syntax and graphical rule representations (decision tables, trees, scorecards and flows)
  • Improved efficiency of processes through increased decision automation

Most BRMS vendors have evolved from rule engine vendors to provide business-usable software development lifecycle solutions, based on declarative definitions of business rules executed in their own rule engine. However, some vendors come from a different approach (for example, they map decision trees or graphs to executable code). Rules in the repository are generally mapped to decision services that are naturally fully compliant with the latest SOA, Web Services, or other software architecture trends.

BUSINESS RULES ENGINES

A business rules engine is a software system that executes one or more business rules in a runtime production environment. The rules might come from legal regulation ("An employee can be fired for any reason or no reason but not for an illegal reason"), company policy ("All customers that spend more than $100 at one time will receive a 10% discount"), or other sources.

Rule engine software is commonly provided as a component of a business rule management system which, among other functions, provides the ability to: register, define, classify, and manage all the rules, verify consistency of rules definitions (�Gold-level customers are eligible for free shipping when order quantity > 10� and �maximum order quantity for Gold-level customers = 10� ), define the relationships between different rules, and relate some of these rules to IT applications that are affected or need to enforce one or more of the rules.

EXPERT SYSTEMS

An expert system is a software system that attempts to reproduce the performance of one or more human experts, most commonly in a specific problem domain, and is a traditional application and/or subfield of artificial intelligence. A wide variety of methods can be used to simulate the performance of the expert however common to most or all are 1) the creation of a so-called "knowledgebase" which uses some knowledge representation formalism to capture the subject matter experts (SME) knowledge and 2) a process of gathering that knowledge from the SME and codifying it according to the formalism, which is called knowledge engineering. Expert systems may or may not have learning components but a third common element is that once the system is developed it is proven by being placed in the same real world problem solving situation as the human SME, typically as an aid to human workers or a supplement to some information system.

RETE ALGORITHM

The Rete algorithm is an efficient pattern matching algorithm for implementing production rule systems. The Rete algorithm was designed by Dr Charles L. Forgy of Carnegie Mellon University, first published in a working paper in 1974, and later elaborated in his 1979 Ph.D. thesis and a 1982 paper (see References). Rete has become the basis for many popular expert systems, including CLIPS, Jess, JBoss Rules, and Soar.

A Rete-based expert system builds a network of nodes, where each node (except the root) corresponds to a pattern occurring in the left-hand-side (the condition part) of a rule. The path from the root node to a leaf node defines a complete rule left-hand-side. Each node has a memory of facts which satisfy that pattern. This structure is essentially a generalized Trie.

The Rete algorithm is designed to sacrifice memory for increased speed. In most cases, the speed increase over na� implementations is several orders of magnitude (because Rete performance is theoretically independent of the number of rules in the system). In very large expert systems, however, the original Rete algorithm tends to run into memory consumption problems. Other algorithms, both novel and Rete-based, have since been designed which require less memory.

RETE II

In the 1980s Charles L. Forgy developed a successor to the Rete algorithm named Rete II [1]. Unlike the original Rete (which is public domain) this algorithm was not disclosed. Rete II claims better performance for more complex problems (even orders of magnitude), and is officially implemented in CLIPS/R2.

Rete II can be characterized by two areas of improvement; specific optimizations relating to the general performance of the Rete network (including the use of hashed memories in order to increase performance with larger sets of data), and the inclusion of a backward chaining algorithm tailored to run on top of the Rete network. Backward chaining alone can account for the most extreme changes in benchmarks relating to Rete vs. Rete II.

A bench marking of RETE and RETE II can be found at http://www.pst.com/benchcr2.htm

RETE III

The Rete III algorithm is now implemented as part of the Blaze Advisor Rule Server.

Rete III is the most advanced commercially-available inference engine, benchmarking more than 300% faster than its competitors, making it the ideal solution for organizations managing large, complex business rule sets, where high performance is critical.

Generally Rete III simply incorporates more optimizations. Applications that do not use all the optimizations will see less of a performance boost than those that do. Rete III, unlike Rete I, is not "open source" and is only available as part of Fair Isaac's products.

DIFFERENT BRMS SYSTEMS

ILOG JRULES

A complete business rule management system (BRMS) for Java. ILOG JRules gives you the power to control your business policy changes�with confidence and without compromise.

HYPERRETE

The HyperRETE� engine achieves a performance that only grows proportional to the logorithm of the number of rules and data acted upon by the system. Organizations that maintain large business rules sets where performance is critical, the reason why one would use a rules engine in the first place, have benchmarked the HyperRETE� Rules Engine at more than three hundred times faster than the RETE III algorithm. The HyperRETE� Rules Engine has been even been benchmarked with rulesets with over 400 million rules, a true test of enterprise scability. These conditions would cripple any other BRMS.

This extreme performance boost is achieved by dynamic, intelligent selection of a RETE-like algorithms optimized to accelerate your performance to its maximum. This intelligent selection is guided by a real-time in-depth analysis of your data, your rules, and their interrelationships. This analysis is also used in EWA Systems' Business Rules Editor in order to allow the user to query what effects or potential conflicts may result due to a business rule change.

The HyperRETE� Rules Engine is implemented as a callable service, available through .NET as a Web Service, or through a Java API. The HyperRETE� Rules Engine is Java Rules Compliant. The HyperRETE� Rules Engine is an extremely light-weight rules engine, taking only 150Kb of source code.

RULEML

The Rule Markup Initiative has taken steps towards defining a shared Rule Markup Language (RuleML), permitting both forward (bottom-up) and backward (top-down) rules in XML for deduction, rewriting, and further inferential-transformational tasks.

PEGARULES: POWERING TODAY'S MISSION-CRITICAL BUSINESS APPLICATIONS

PegaRULES integrates the full power of an inference engine with the execution of dynamic business applications. For example, PegaRULES leverages this technology through change-aware declarative rules that are used only when underlying data actually changes. This approach is dramatically more efficient than other processing models, in which recalculations or validations are performed procedurally � even if there is no reason to perform them at runtime.

INRULE�

The premier .NET Business Rule Engine, InRule has been helping organizations automate business logic since 2003. InRule is designed to provide intuitive authoring for business analysts and a highly optimized business rule engine that is easy for developers to integrate into .NET applications. Our flagship product delivers these benefits with the following components

RULELAB.NET

RuleLab.Net Business Rules Engine (BRE) - The RuleLab.Net Business Rules Engine (BRE) enables the separation of business logic from application code through building the business rules in XML. Create, share, and manage your Rule files online; integrate them into your system via the BRE component. The Web-based Rules Designer is available for composing Business Rules via an intuitive GUI that lets you associate your application XML data template with the Rules, graphically build complex logical expressions, compose the Rules in an English-like syntax, test the Rules on your data samples, and store them in the online repository. Strong data types, calculation formulas, looping-data-structure support, and many other features add power to the forward chaining Rules parser of the RuleLab.net BRE. The built-in set of computational, aggregate and other data processing functions can be customized.

NXBRE

NxBRE is the first open-source rule engine for the .NET platform and a lightweight Business Rules Engine (aka Rule-Based Engine) that offers two different approaches:

  • the Inference Engine, which is a forward-chaining (data driven) deduction engine and that supports concepts like Facts, Queries and Implications (as defined in RuleML Naf Datalog sub-language) and like Rule Priority, Mutual Exclusion and Precondition (as found in many commercial engines). It is designed in a way that encourages the separation of roles between the expert who designs the business rules and the programmer who binds them to the business objects.
  • the Flow Engine, which uses XML as a way to control process flow for an application in an external entity. It is basically a wrapper on C#, as it offers all its flow control commands (if/then/else, while, foreach), plus a context of business objects and results. It is a port of JxBRE v1.7.1 (SourceForge Project from Sloan Seaman) to .NET's Visual C#.

 

VISUAL RULES

Visual Rules is an especially intuitive and high- performance Business Rules Management System (BRMS) for developing business rules - as part of agile software. Business logic is modeled graphically, tested and automatically translated into Java programms.

Visual Rules covers all seven component areas of a modern BRMS.

ESKER DELIVERYWARE BUSINESS RULES ENGINE

The Esker DeliveryWare Rules Engine is at the heart of the Esker Document Process Automation solutions. Based on proven and patented technologies, it allows the automation of virtually any paper-based Business Process in any type of organization.

CLIPS

CLIPS(C Language Integrated Production System) is a public domain software tool for building expert systems.

CLIPS is probably the most widely used expert system tool because it is fast, efficient and free. Although it is now in the public domain, it is still updated and supported by the original author, Gary Riley. CLIPS incorporates a complete object-oriented language COOL for writing expert systems. Though it is written in C, its interface more closely resembles that of the programming language LISP. Extensions can be written in C, and CLIPS can be called from C.

JESS

Jess, a rule engine for the Java platform, is a superset of CLIPS programming language, developed by Ernest Friedman-Hill of Sandia National Labs. It was first written in late 1995.

It provides rule-based programming suitable for automating an expert system, and is often referred to as an expert system shell. In recent years, intelligent agent systems have also developed, which depend on a similar capability.

Rather than a procedural paradigm, where a single program has a loop that is activated only one time, the declarative paradigm used by Jess continuously applies a collection of rules to a collection of facts by a process called pattern matching. Rules can modify the collection of facts, or they can execute any Java code.

Jess can be used to build Java servlets, EJBs, applets, and full applications that use knowledge in the form of declarative rules to draw conclusions and make inferences. Since many rules may match many inputs, there are few effective general purpose matching algorithms. The Jess rules engine uses the Rete algorithm.

DROOLS

Drools is a business rule management system (BRMS) with a forward chaining inference based rules engine, more correctly known as a production rule system, using an enhanced implementation of the Rete algorithm.

Drools is based on the JSR-94 standard for business rules engine and enterprise framework for the construction, maintenance, and enforcement of business policies in an organization, application, or service.

JBOSS RULES

JBoss Rules, is a reasoning engine that includes a forward chaining rule engine based on Drools. JBoss Rules is the productised version of Drools; this means it comes with support that will last several years for that particular branch; with bug/essential feature back ports. For a time the Drools name was stopped in an attempt to fully establish the JBoss Rules brand as both the project and the product, however two years on the community was mostly still calling it Drools so the name was reclaimed by the community for the project. The product remains as JBoss Rules.

SOAR

Soar (originally known as SOAR) is a symbolic cognitive architecture, created by John Laird, Allen Newell, and Paul Rosenbloom at Carnegie Mellon University. It is both a view of what cognition is and an implementation of that view through a computer programming architecture for Artificial Intelligence (AI). Since its beginnings in 1983 and its presentation in a paper in 1987, it has been widely used by AI researchers to model different aspects of human behavior.

KEY FACTORS TO CONSIDER WHEN CHOOSING THE RIGHT BRMS SOLUTION

  • Speed and Efficiency: Most of the Rule Engine solution fails when data size grows and or the rule complexity increases. Since memory is cheaper these days, that constraint can be discarded, but speed at which the results are generated counts a high factor in product selection.
  • Adaptability to new rules and changes: When a new rule is added or an edit is done to the existing rule, system should adapt to the change promptly with no failure or downtime.
  • Platform Adaptability or independence: Product should be able to couple with the calling system irrespective of the development or server platform the caller system may use. There should be a standard approach which enables the system in integrating with other similar system or an entirely different application platform.
References:

www.wikipedia.org