Business rule management system
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: This needs to be attributed:
- 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. Although, QA and Rules testing would still be needed in any enterprise system.
- 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.
Some disadvantages of the BRMS include:
- Extensive subject matter expertise required for vendor specific products. In addition to Object Oriented Analysis and Design practices, technical developers must know how to write rules and integrate software with existing systems
- Long development cycle due to rule harvesting, integration with existing systems, security constraints, rule migration and rule edit tracking. These offerings are never part of an out of the box vendor solution.
- Reduced IT department reliance may never be a reality due to continued introduction to new business rule considerations or object model perturbations
- The coupling of a BRMS vendor application to the business application may be too tight to replace with another BRMS vendor application. This can lead to cost to benefits issues.
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.
Related software approaches
In a BRMS, a representation of business rules maps to a software system for execution. A BRMS therefore relates to model-driven engineering, such as the model-driven architecture (MDA) of the Object Management Group (OMG). It is no coincidence that many of the related standards come under the OMG banner.
A BRMS is a critical component for Enterprise Decision Management as it allows for the transparent and agile management of the decision-making logic required in systems developed using this approach.
The OMG Decision Model and Notation standard is designed to standardize elements of business rules development, specially decision table representations. There is also a standard for a Java Runtime API for rule engines JSR-94.
Other standards include:
- OMG Business Motivation Model (BMM): A model of how strategies, processes, rules, etc. fit together for business modeling
- OMG SBVR: Targets business constraints as opposed to automating business behavior
- OMG Production Rule Representation (PRR): Represents rules for production rule systems that make up most BRMS' execution targets
- OMG Decision Model and Notation (DMN): Represents models of decisions, which are typically managed by a BRMS
- RuleML provides a family of rule mark-up languages that could be used in a BRMS and with W3C RIF it provides a family of related rule languages for rule interchange in the W3C Semantic Web stack
Many standards, such as domain-specific languages, define their own representation of rules, requiring translations to generic rule engines or their own custom engines.
Other domains, such as PMML, also define rules.