Business rules engine
From Wikipedia, the free encyclopedia
A business rules engine is a software system that helps manage business rules. The rules a business follows may 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 buy more than $100 at one time will receive a 10% discount") or other sources. The Rule Engine software, among other functions, may help to register, classify and manage all these rules; verify consistency of formal rules ("Flooring material must be flattish to ease cleaning" is inconsistent with "flooring material must be rough to avoid slipping"); infer some rules based on other rules; and relate some of these rules to Information Technology applications that are affected or need to enforce one or more of the rules. Rules can also be used to detect interesting business situations automatically. For example, "notify sales when inventory is lower than 10 and we have more than 5 pending orders on a Monday."
Contents |
[edit] IT use
For any IT application, the business rules change more frequently than the rest of the application code. Rules Engines or Inference Engines are the pluggable software components that separate the business rules from the application code. This allows the business users to modify the rules frequently without the need of IT intervention and hence allowing the applications to be more adaptable with the dynamic rules.
In previous generation applications, data was meant to be dynamic which was supposed to be operated upon by the logic and rules to get the desired results. Data Dynamics are no longer the only need of the hour but the focus has been shifted to the dynamic rules.
[edit] Design strategies
There is a range of rule engine design strategies available--from custom language-based interpretive approaches to XML-based code generation approaches.
[edit] Types of rule engines
There are mainly two different types of rule engines. The first one is rule engines with so-called production/inference rules. These types of rules are used to answer complex questions and infer answers. For example, such a rule could answer the question: "Should this customer be allowed a mortgage?".
The other type of rule engine is those implementing reaction rules. The reactive rule engines are used to detect and react to interesting patterns of events occurring. For example a reactive rule engine could be used to alert a manager when certain items are out of stock.
The biggest difference between these types is that rule engines with production rules answer questions when a user or application submits them. A reactive rule engine reacts automatically when a certain rule is violated and sounds an alarm.
[edit] Business Rules Engine Providers
Here is a list of Rules Engines:
- NxBRE [1] is a lightweight Open Source Business Rule Engine (aka Rule Based Engine) for the .NET platform, composed of a forward-chaining inference engine and an XML-driven flow control engine. It supports RuleML 0.9 Naf Datalog and Visio 2003 modeling.
- Portellus Inc. [2] is a leading provider of next generation technology solutions for the financial sevices and insurance industries. The company's Decision Management, Enterprise Rules Management ERM, Loan Origination and Portal solutions utilize a service oriented approach to deliver loosely coupled applications and flexible solutions, enabling clients to gain competitive advantages, reduce cost, mitigate risk, increase profitability, comply with regulatory requirements and swiftly enter new markets.
- G2 [3] is the world's leading real-time business rule engine platform.
- RuleBurst [4] offers over 15 years' experience in building enterprise rules based systems. RuleBurst’s technology and methods free up policy owners to draft and test policy, business and legislative rules in Microsoft Word and RuleBurst Studio. Those rules can then be harvested and deployed virtually instantly, for use in smart IT systems which deliver better customer service at the coalface. The value of this approach lies in reducing cycle times in and improving the interactions between policy development, rule drafting, system design and program implementation; in effect integrating policy development much more tightly with administration. RuleBurst 8 represents a step change in ease of rule development and maintenance for non-programmers over other business rule capture tools.
- Haley [5] is a natural language rules engine complying with JSR94 standard as well as RML industrial standards. This rules engine is particularly fast and lightweight and architecture neutral, yet powerful enough to be embedded in most machines. The differentiating factor of Haley Systems is that it includes an integrated business rules development environment which allows business analysts to create and deploy rules in natural English.
- Amie [6], from Recursa Software, provides an intuitive and simple interface. Business rules, complex formula, mathematical models and reports can be created and deployed. Rules, formula, models and reports may reference one another to quickly and easily create powerful and scalable applications. Users may use desktop spreadsheet applications, Excel for example, to create, define and deploy these models. Applications reference models using web services to send and receive changes or evaluations synchronously or asynchronously. The engine is grid based and employs the Globus Toolkit. From simple to very large secure applications can be developed. An interesting standard tool turns Excel into a secure multi-user distributed spreadsheet. Changes are seen by all connected users and applications.
- QuickRules Business Rules Management System (BRMS) helps enterprises to separate and externalize business rules from the application code. With an integrated development and deployment environment, the QuickRules BRMS provides the tools required to write, edit, and test business rules.[7]
- InRule provides technology for the authoring, management and verification of application decision logic that involves rules, calculations and dynamic user interfaces. InRule's declarative development approach captures business intent by allowing users to encode rules without the overhead of custom programming, which results in highly adaptive business processes. InRule's evolving "rules console" approach utilizes a rules catalog that provides visibility into core logic and facilitates sharing that logic across applications.[8]
- Versata’s products are used to build applications, components and services for J2EE and SOA architectures using declarative business rules.[9]
- Jess is a rule engine and scripting environment written entirely in Sun's JavaTM language by Ernest Friedman-Hill at Sandia National Laboratories in Livermore, CA. Using Jess, you can build Java software that has the capacity to "reason" using knowledge you supply in the form of declarative rules. Jess is small, light, and one of the fastest rule engines available. Its powerful scripting language gives you access to all of Java's APIs.[10]
- JBoss Rules(Drools) is an open source Java implementation of a rules engine. It uses Rete and LEAPS(experimental) algorithms for evaluating the rules.[11]
- Blaze Advisor is a rules management solution providing rule repository, rule management, rule change-tracking, rule version control and integrated application development environment.[12]
- ILOG BRMS [13] is a family of products for the management and execution of business rules. They provide a rule repository with sharing and synchronizing capabilities, and engines for Java, .NET and C++.
- Microsoft Business Rules Engine [14] is currently available as a companion product to Microsoft BizTalk Server. It is a component of the Microsoft Business Rules Framework which includes a repository, policy publishing service and rule composer UI. MS BRE applies pattern-matching rules directly to business data in the most common forms that data occurs on the Microsoft platform - .NET objects, XML and ADO.NET datasets. It also supports the application of rules to data held in SQL Server and other databases.
- Pegasystems PegaRULES [15] is an enterprise rules engine that offers a rule repository, rule management, version control, and a combined development and runtime environment. The PegaRULES development environment is entirely web based, and can be deployed on most operating systems, databases, and application servers (to see a full list, check out the Pegasystems website). Pegasystems also enjoys the unique distinction of being the only company to have both a leading BRE and leading Business Process Management (BPM) solution.