Book Image

JBoss Drools Business Rules

By : Paul Browne
Book Image

JBoss Drools Business Rules

By: Paul Browne

Overview of this book

<p>In business, a lot of actions are trigged by rules: "Order more ice cream when the stock is below 100 units and temperature is above 25&deg; C", "Approve credit card application when the credit background check is OK, past relationship with the customer is profitable, and identity is confirmed", and so on. Traditional computer programming languages make it difficult to translate this "natural language" into a software program. But JBoss Rules (also known as Drools) enables anybody with basic IT skills and an understanding of the business to turn statements such as these into running computer code.<br /><br />This book will teach you to specify business rules using JBoss Drools, and then put them into action in your business. You will be able to create rules that trigger actions and decisions, based on data that comes from a variety of sources and departments right across your business. Regardless of the size of your business, you can make your processes more effective and manageable by adopting JBoss Rules.<br /><br />Banks use business rules to process your mortgage (home loan) application, and to manage the process through each step (initial indication of amount available, actual application, approval of the total according to strict rules regarding the amount of income, house value, previous repayment record, swapping title deeds, and so on).<br /><br />Countries such as Australia apply business rules to visa applications (when you want to go and live there)&mdash;you get points for your age, whether you have a degree or masters, your occupation, any family members in the country, and a variety of other factors.<br /><br />Supermarkets apply business rules to what stock they should have on their shelves and where&mdash;this depends upon analyzing factors such as how much shelf space there is, what location the supermarket is in, what people have bought the week before, the weather forecast for next week (for example, ice cream in hot weather), and what discounts the manufacturers are giving.<br /><br />This book shows how you can use similar rules and processes in your business or organization. It begins with a detailed, clear explanation of business rules and how JBoss Rules supports them.<br /><br />You will then see how to install and get to grips with the essential software required to use JBoss Rules. Once you have mastered the basic tools, you will learn how to build practical and effective of the business rule systems.<br /><br />The book provides clear explanations of business rule jargon. You will learn how to work with Decision Tables, Domain-Specifi c Languages (DSL)s, the Guvnor and JBoss Integrated Development Environment (IDE), workflow and much more.<br /><br />By the end of the book you will know exactly how to harness the power of JBoss Rules in your business.</p>
Table of Contents (18 chapters)
JBoss Drools Business Rules
Credits
Foreword
About the author
About the reviewer
Preface
6
More rules in the JBoss IDE

Why existing solutions don't cut it


Computers have been around for a long time and we're not the first people to use them to solve these kinds of problems for business people. In general, these business systems do three things:

  1. 1. Capture information, for example, via a web interface (presentation layer).

  2. 2. Apply business knowledge to this information (business layer).

  3. 3. Store or forward this information (service or data layer).

It is the business layer that we are most concerned with. The presentation and service layers, while not trivial, are known problems that lend themselves to some degree of standardization. In contrast, the business layer will be unique to each organization, as it reflects the processes and knowledge of the organization.

In some ways, the business layer is the 'learned memory of the organization'. Despite (or perhaps because of) years of implementing EIS (Executive Information Systems), many of them suffer from the following problems:

  • All three layers tend to be tightly interlinked, so it is not easy to extract the business logic and use it elsewhere.

  • Business knowledge and rules are often hidden in code. This is difficult to audit and can lead to discrepancies between the documentation and the actual implementation.

  • It is hard for the domain experts (the guys with the business knowledge) and the technical experts to collaborate as they (literally) speak different languages.

  • The business layer can be difficult to update, both in implementation and for fear of undesirable side effects.

Although theory states that these functions should be separated, the fact that the business tier is often expressed in a programming language like Java means that other functions (for example, database access) often creep in over time. Even worse, there is no clearly delineated place to put the business logic, which is why it can become scattered throughout the system, making it hard to reuse.

Given that we've had these problems for many years, how can we do any better?