Business rule is any real world knowledge or exception that can be explained in when this happens do this.
These rules should be explained in as simple as possible in expressive language.
Business Systems generally do the following things -
- Take information via User Interface.
- Process these information with pre-exsiting knowledge.
- Store the information in any format for further processing(like analytics etc.)
In these three layers of works the middle one is most variable in nature and the knowledge growth here is ever-growing.
This layer known as business layer is the most input centric layer in common business pratices. And it requires upgradation for each iteration in complex business world.
All the layers, as explained, are coupled in application and it is the most challanging part to de-couple those layers.
The Problem :
Generally Business logics are crafted in code and for every logic changes the code change is required which is difficult to maintain for each veersion and audit them. Also the domain knowledge experts and the application software exprts talk and work in different mode.
So the updation of business logic and implementation of these logics are having undesirable effects in organisation.
The Solution :
And here the requirement of rule engine comes.
In a rule engine we can evaluate the rules before implementing them in production nd can be verified by domain experts.
Here we can expressively declare “the things to do.” And so we can focus on the domain and separately work with rule verification and the presentation and repository layer coding can be developed separately with the help of tech guys for the application development.
As the rules are developed differently, the rules are more dynamic and scalable in nature through rule engine. The development and change management in rules can be parallel done with the change of infrastructure code.
Also the rules and implementation of the rules can be easily verified by domain experts before production – which can be termed as business logic audit.
In JBoss, the implementation of the rule engine is done through BRMS (Guvnor).
BRMS can be opened and the rules can be edited in any standard web browser.
It has -
1> Standard Web based rule editor (Guided).
2> Helpful wizards to develop the rules.
3> Team editing
4> Version management of rules and related assets
5> Rules Compiler
6> Fact Model (Assets)
7> Deployment mechanism
8> Import and export of data
Most helpful information about JBoss Drools can be found here.
An example of Drool based application is explained here.
Try to evaluate the rule engine to have ease in the application software development world.
Comments and suggestions are welcome.