It's no surprise that the evolution or growth of an organization can face many problems if not supported by innovative tools and systems. By using Business Process Management (BPM) and technological solutions that allow you to draw processes without the need to write code, we can overcome communication challeges between users, business analysts and IT professionals. Red Hat's JBoss BPM Suite is one of the BPM solutions leading the market today.
But before all this, the first problem that needed to be resolved was to first describe the processes by following an understandable system. This standard should allow analysts to easily implement automations and workflows needed in the process. However, the problems do not end there...
“The best way to win the game is to write the rules”
When companies decide to "get serious", it's only normal that the amount of data they manage grows massively in both size and complexity. If data should be transfered between systems of the company, a good Enterprise Service Bus (ESB) such as RedHat JBoss FUSE would be more than enough. But often, these data should be used to provide value for businesses and in this case, the ESB needs to be supported by something else. Here are some examples so we can better understand the possible scenarios:
In an e-commerce site, individual transactions made by customers are analyzed and marked as either "trusted", "needing verification from the bank" or simply "rejected" according to a detailed system of rules that determine a user's rating. And all this must be completed within a reasonable time-frame.
An insurance company needs to evaluate requests that arrive. These requests are assigned a risk assessment based on predictive rules that depend on the documents submitted attached to the request.
A medium-sized government agency received hundreds of thousands of requests every day that must be validated according to the rules described by law.
As you've probably picked up from the examples, producing business value for incoming data depends the rules that are later applied to it. When you finally decide to adopt business processes for automation, the same complexity in rules and their need to be set by their specialists remain but with the addition of being a bit more challenging.
While business processes normally handle fewer active processes and are spread over relatively long periods of time, there are situations where you need to apply rules to larger amounts of data or have faster response times (or more realistically, both), as you've seen in the scenarios previously.
“Put a rule in the engine”
To apply rules efficiently to the data (or "facts" as they are called in this context), they use rule engines that act as "black boxes" containing highly optimized software that take in data, apply rules and return answers. It's clear that the heart of these "engines" are the rules. But can these rules be easily set by their field experts? Can they see their complexity? Can they be easily changed? Remember that rules change all the time!
To understand how these three questions are answered, we can see how they are addressed by one of the most popular rule engines in the world, JBoss BRMS:
Easiness in setting rules: BRMS allows you to write rules using various languages (quite useful for developers) and it also provides a method to insert rules through a graphical editor. You can even import Excel spreadsheets that describe rules in a clear and understandable table format.
Complex rules: Once you've understood how to use them, the graphical editor and Excel spreadsheet importing functions will allow you to set very complex rules and even integrate them with each other. In rare cases when these tools are not enough, you can use the internal BRMS language (Drools) to define virtually every rule, regardless of its complexity.
Ease of maintenance: The fact that the rules are kept outside the rule engine makes them easy to modify without having to change the rest of the system whether by modifying an Excel spreadsheet, using the graphical editor or changing a Drools script. The engine will read the new rules and all will be updated.
No need to touch the code: Since the rules are placed somewhere else, you don't need analysts or software developers to apply the rules to the system.
In conclusion, using a rule engine can be a real life saver for companies that suffer from the increasing complexity of their systems, an ever-increasing amount of data and growing needs to process data faster. While custom software solutions can do the job, they still lack the same level of support, efficiency and safety afforded by a rule engine used all over the world with a large community of users and developers.