Skip to main content

2011 | Buch

Agile Business Rule Development

Process, Architecture, and JRules Examples

verfasst von: Jérôme Boyer, Hafedh Mili

Verlag: Springer Berlin Heidelberg

insite
SUCHEN

Über dieses Buch

Business rules are everywhere. Every enterprise process, task, activity, or function is governed by rules. However, some of these rules are implicit and thus poorly enforced, others are written but not enforced, and still others are perhaps poorly written and obscurely enforced. The business rule approach looks for ways to elicit, communicate, and manage business rules in a way that all stakeholders can understand, and to enforce them within the IT infrastructure in a way that supports their traceability and facilitates their maintenance.

Boyer and Mili will help you to adopt the business rules approach effectively. While most business rule development methodologies put a heavy emphasis on up-front business modeling and analysis, agile business rule development (ABRD) as introduced in this book is incremental, iterative, and test-driven. Rather than spending weeks discovering and analyzing rules for a complete business function, ABRD puts the emphasis on producing executable, tested rule sets early in the project without jeopardizing the quality, longevity, and maintainability of the end result. The authors’ presentation covers all four aspects required for a successful application of the business rules approach: (1) foundations, to understand what business rules are (and are not) and what they can do for you; (2) methodology, to understand how to apply the business rules approach; (3) architecture, to understand how rule automation impacts your application; (4) implementation, to actually deliver the technical solution within the context of a particular business rule management system (BRMS). Throughout the book, the authors use an insurance case study that deals with claim processing.

Boyer and Mili cater to different audiences: Project managers will find a pragmatic, proven methodology for delivering and maintaining business rule applications. Business analysts and rule authors will benefit from guidelines and best practices for rule discovery and analysis. Application architects and software developers will appreciate an exploration of the design space for business rule applications, proven architectural and design patterns, and coding guidelines for using JRules.

Inhaltsverzeichnis

Frontmatter

Introduction

Frontmatter
Chapter 1. Introduction to Business Rules
Abstract
Target audience All In this chapter you learn What are business rules What are the motivations behind the business rules approach In what ways do business applications with business rules differ from traditional applications Why do we need a different development methodology Key points A business rule is a statement that defines or constrains some aspect of the business. Business rules have a business motivation and an enforcement regime.The business rules approach enables, (a) a better alignment between information systems and business, and (b) a greater business agility. Business rule applications externalize business logic and separate it from the underlying computational infrastructure where it can be managed by business. Business rule development differs from traditional application development in many ways: (1) it is business requirements-centric, (2) enterprise-level ownership – and management – of business logic, and (3) business-led implementation and maintenance of business logic.
Jérôme Boyer, Hafedh Mili
Chapter 2. Business Rules in Practice
Abstract
Target audience All In this chapter you will learn Typical applications areas for the business rules approach business rules approach applications The case study used throughout this book Key points The business rules approach applies to all kinds of industries and spheres of activities. The business rules approach applies to all organization sizes, from the smallest of enterprises to the biggest fortune 100 companies. The business rules approach has been successfully used to automate all sorts of business processes, from back-office processes to front-end processes.
Jérôme Boyer, Hafedh Mili

Methodology

Frontmatter
Chapter 3. Agile Business Rule Development
Abstract
Target audience All; nontechnical audiences can skip Sects. 3.3 and 3.4 In this chapter you will learn What is the Agile Business Rule Development (ABRD See agile business rule development) methodology, and what are its core principles.Why develop business rule applications using an agile software development and iterative approach. How you can leverage the Eclipse Process Framework (EPF) Composer and OpenUp to customize ABRD to your enterprise environment and projects. Key points An Agile methodology promotes iterations and early use of tools, which is the most appropriate approach to develop business application leveraging BPM and BRM technologies.The goal of executable rules over comprehensive rule description is supported by the strongly iterative approach of ABRD.
Jérôme Boyer, Hafedh Mili
Chapter 4. Rule Harvesting
Abstract
Target audience (Must) business analyst; (optional) project manager, application architect, rule author In this chapter you will learn What are the different types of rules, and why it is important to understand them How to set in place the rule harvesting process according to the source of rules and the team structure How to extract a data model for the rules from the rule description How to prepare the rules for implementation How to put into practice these techniques with a claim processing application Key points Start by a decision point that is simple but still brings business value to the stakeholders. Describe rules using the business domain vocabulary, and future map it to a logical data model.
Jérôme Boyer, Hafedh Mili
Chapter 5. Prototyping and Design
Abstract
Target audience (Must) architect, developer, (optional) project manager (highlights) In this chapter you will learn How to prepare the rules for the implementation How to use an evaluation framework to decide where to implement the business rules How to build the object models used by the rules How to design the project structure and the related rule elements How to implement some rules to validate the analysis, find issues, and communicate to the SME How to use some common rule design patterns to facilitate rule implementation Key points Start quickly to prototype rules to develop both rule projects and the data model. Organize rule artifacts and think of reuse as soon as possible in the project life cycle. Maintain strong communication with SME to address issues about the model, the rule description, the rule scope, and the context of execution.
Jérôme Boyer, Hafedh Mili

Foundations

Frontmatter
Chapter 6. Rule Engine Technology
Abstract
Target audience Developer (must); optional for anyone wishing to look under the hood In this chapter you will learn The history of rule-based decision making The principles of rule engines, and the implications of object-rule systems The basics of the RETE algorithm The different rule engine execution algorithms Key points Rule-based decision making has a long history and some cognitive plausibility. Rules are treated as data processed by an interpreter – the rule engine. In the production system ideal, the “intelligence” is in the rules as opposed to the control mechanism of the engine, which should remain simple. The JRules rule engine is a Java object that “reasons about” Java application objects. The RETE algorithm makes the production system paradigm computationally efficient. Decisions that do not require rule chaining can use simpler – and an order of magnitude faster – execution algorithms.
Jérôme Boyer, Hafedh Mili
Chapter 7. Issues in Designing Business Rule Applications
Abstract
Target audience Application architect, software architect, developer In this chapter you will learn The major design issues for early business rule management system An overview of the major architectural choices for a business rules application An overview of the major design issues surrounding the integration of rule engines integration options An overview of the major design issues and best practices regarding reengineering legacy applications to introduce business rules Key points Business rule management is about more than authoring – and managing – executable rules: we need to manage the early deliverables (rule capture and analysis) and ensure proper traceability through the various stages of ABRD. Business rule applications can come in many shapes and sizes: rules are architecture-neutral. Most BRMSs offer many rule engine deployment options.The integration of rule-based decisioning into applications depends, in part, on the architecture of the application, and in part, on rule-specific architectural requirements. There are some proven patterns to reengineer the decisioning aspect of a legacy application using rule engines.
Jérôme Boyer, Hafedh Mili
Chapter 8. IBM WebSphere ILOG JRules
Abstract
Target audience All In this chapter you will learn The architecture of the JRules BRMS The concept of operations of the JRules BRMS An introduction into the various JRules rule artifacts An introduction into the various JRules modules Key points JRules has a modular architecture, providing different components that support different tasks or cater to different users. Business users and technical users author and manage business rules using different environments, which are adapted to their tasks and skill sets. JRules provides a domain-specific language for rule authoring that has a modular/layered architecture. JRules embeds a powerful and easy to use rule unit testing framework. JRules offers a rich set of functionalities for managing rule execution.
Jérôme Boyer, Hafedh Mili

Rule Authoring

Frontmatter
Chapter 9. Issues in Rule Authoring
Abstract
Target audience Business analyst, rule author (skip Sect.9.2.1) In this chapter you will learn The major issues in setting up a domain of discourse for business rules The different languages for authoring rules Rule coding patterns for different classes of rules Principles and best practices for organizing rules during development Key points Business rules are written against a business-oriented view of the data. High-end BRMSs offer a multitude of languages for expressing business rules; choose the one that fits the business logic. Atomic rules are easier to write, to validate, and to maintain. There are proven ways of coding certain types of rules, which rely on rules being atomic. Development-time organization of rules is a key aspect of rule management.The structure of the domain and rule reuse opportunities are key drivers for the development-time organization of rules.
Jérôme Boyer, Hafedh Mili
Chapter 10. Rule Authoring Infrastructure in JRules
Abstract
Target audience Developer, rule author, business analyst (may skip 3.3) In this chapter you will learn The structure of rule projects in JRules The different components of a rule project Rule project relationships and their importance in modularizing rule development The Business Object Model (BOM), which is used for rule authoring, and how to build it from the application (or executable) object model Best practices for organizes organizing rules, and the artifacts they depend on, in rule projects Best practices for the design of a stable and flexible BOM Key points Getting the rule project structure right is an important first step in rule authoring. Rule project dependencies can be used to modularize rule development and to maximize the reuse of rule artifacts. The BOM to XOM mapping is a powerful mechanism for obtaining a vocabulary that embodies business needs from an application model geared towards IT needs. The BOM update and refactoring capabilities of Rule Studio enable us to selectively propagate some changes from the XOM to the BOM, and to shield the BOM – and rules – from the others.
Jérôme Boyer, Hafedh Mili
Chapter 11. Rule Authoring in JRules
Abstract
Target audience Business analyst, developer, rule author In this chapter you will learn The different rule entry languages and rule artifacts, namely, technical rules, action rules, decision tables, decision trees, and scorecards How to build your custom rule language How to orchestrate rule execution with ruleset parameters and ruleflow How to optimize rule execution by selecting the appropriate rule execution algorithm for a given rule task Key points The Ilog Rule Language (IRL) is the foundation upon which other languages and rule artifacts are built. Action rules, decision tables, decision trees, and scorecards are translated into/executed as IRL technical rules. Be aware of the possibility to develop your own rule language (with the Business Rule Language Development Framework), but resist the temptation to. Refer to your application objects through ruleset parameters. Use ruleflows to orchestrate rule execution. They provide a high-level control mechanism and a context for rule execution. Ruleflows offer opportunities for speeding execution through run-time rule selection, and algorithm selection.
Jérôme Boyer, Hafedh Mili

Rule Deployment

Frontmatter
Chapter 12. Issues in Deploying Rules
Abstract
Target audience Application architect, developer, business analyst In this chapter you will learn Technology and deployment issues to consider when planning your integration, like transaction support, scalability, data access, ruleset deployment How to manage the ruleset life cycle How to implement rule execution as a decision service using web service, SCA and JMS Key points Access to the data model used by the rules can impact performance and should be part of the decision service implementation not the ruleset. Data model definitions are different: there is one for messaging and service contract level; one for the rule execution, and one for persistence in the database. Parallel processing of rule execution is a common implementation in business application to support scalability and hot deployment. Ruleset parameters should not be exposed as generic service, but behind a service interface which specify the business intent of the different decision service operations.
Jérôme Boyer, Hafedh Mili
Chapter 13. Deploying with JRules
Abstract
Target audience Application architect, software architect, developer In this chapter you will learn How rulesets are packaged as part of a RuleApp What are the ruleset versioning capabilities How to manage a RuleApp in Rule Team Server and in Rule Execution Server How to use the Rule Engine API, the JSR 94 or the Rule Execution Server rule session API to integrate rule engine processing into your application How to use a rule engine using JMS deployment The concept of Transparent Decision Service How to identify which rules executed using the Decision Warehouse capability How to develop queries to select the rules you want to have in your ruleset Key points The main deployment unit when using the rule execution server is the RuleApp, which can be created and managed by a business user within rule team server. JRules offers a very flexible API to integrate the rule engine into the business application leveraging JEE or J2SE deployment model. Rule execution server is simple to use and delivers the rich set of features to manage a ruleset in production and scale vertically. Business users use Rule Team Server to author but also deploy rules to the different RES. Rulesets can be exposed as services, but for most business application deployed in SOA a decision service is part of reusable business services therefore better deigned with a meaningful interface and implemented using Java using the RES API.1
Jérôme Boyer, Hafedh Mili

Rule Testing

Frontmatter
Chapter 14. Issues with Rule Testing and Performance
Abstract
Target audience Application architect, software architect, developer, business analyst, nontechnical audiences can skip Sect. 14.6 In this chapter you will learn The rule testing approach and how it fits into the different testing phases used in traditional software development How to use a test-driven approach to implement business rules How using SCA can help build the application and a test framework by iterations How performance could be impacted by business rules application, and what to look for during design and testing activities Testing does not end once in production, especially with rule-based applications What is rule semantic consistency checking, and what the different search patterns are The problem of tracing and logging Key points Adopting a test-driven development helps to implement the rules by first looking at their intent. Testing business rules is about business, so the test has to be designed to prove the impact to the business. The test framework should be light and not too rigid on the assertion of the expected results, as some results are computation driven. Performance tests should measure all the potential bottlenecks, like the messaging layer, the data conversion, the data access, and the rule execution. Rule engines are optimized to run fast, and sometimes data access is the issue. As in database, join operations are costly. Testing activities remain important during the maintenance of the application. Inconsistencies in a ruleset may happen over time, but they have to be corrected as soon as possible. Some BRMS offer consistency checking features to search for rules never selected, rules that make other rules redundant, rules with equivalent conditions …
Jérôme Boyer, Hafedh Mili
Chapter 15. Rule Testing with JRules
Abstract
Target audience Developer, software architect In this chapter you will learn How testing is supported in ILOG JRules 7.1 How to verify during authoring phase the rule consistency How to tune the rule execution performance Key points Rule analysis uses a search engine, which helps to find inconsistencies among a ruleset, like rule never selected, wrong operator, redundant rules … Searching for inconsistencies within a ruleset is an important capability to improve the ruleset quality. Semantic queries help to search for rules impacting others. Decision Validation Service offers the capability for the business users to test the ruleset in isolation and execute simulation: tests compared using key performance indicator.For each ruleset, assess with business users the need of using DVS. Business users use RTS and DVS together to update, rules, data set, scenarios, and to execute the suite of scenarios against a given ruleset.Performance of a rule engine is impacted by the number of rules, number of conditions in the rules, and the number of objects inserted in the working memory. Most business applications do not have performance problem. When needed, it is always possible to perform some tuning to improve performance.
Jérôme Boyer, Hafedh Mili

Rule Governance

Frontmatter
Chapter 16. Rule Governance
Abstract
Target audience All In this chapter you will learn What are the needs for a rule governance process and how to develop it on top of a BRMS platform How to put in place a business rule management group What are the tasks, work products, and guidelines to efficiently manage rule changes Key points Define in the early phase of the projects how the rules will be maintained Design a simple life cycle for rule artifacts and validate it with the business rule writer Design a change process to support quick deployment of business rules from elicitation to production
Jérôme Boyer, Hafedh Mili
Chapter 17. Rule Governance with JRules
Abstract
Target audience Developer, software architect After reading this chapter, you will be able to Understand the product features relevant to the rule governance Define your own change management process using BPM product and Rule Team Server Key points Rule Team Server is the platform of choice to support rule governance. RTS security control and behavior may be easily adapted using configuration and open API. Link the rule life cycle process to a change request management for a fine-grained control. With rule governance the business user initiates the rule change but may also perform the rule authoring and the ruleset deployment.
Jérôme Boyer, Hafedh Mili

Epilogue

Frontmatter
Chapter 18. Epilogue
Abstract
To borrow a much-used IT cliché, successful business rule application development relies on a combination of people, process, and technology.
Jérôme Boyer, Hafedh Mili
Backmatter
Metadaten
Titel
Agile Business Rule Development
verfasst von
Jérôme Boyer
Hafedh Mili
Copyright-Jahr
2011
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-642-19041-4
Print ISBN
978-3-642-19040-7
DOI
https://doi.org/10.1007/978-3-642-19041-4