The Server-Side Pad

by Fabien Tiburce, Best practices and personal experiences with enterprise software

Posts Tagged ‘BRMS

Case Study: Narrow-casting Using a Business Rules Engine

leave a comment »

The information age has allowed unprecedented access to information.  However simply broadcasting all available information to all users of a system, regardless of responsibility, department, geographic location or language, is counter-productive.  To engage the user, the information must be relevant. Narrow casting allows an organization to disseminate content to a narrow audience.  The following case-study discusses how Betterdot used a business rules engine to implement a corporate narrow casting application.

Imagine a page consisting of four quadrants.  Each quadrant is self-contained and hosts a widget or control.  Each widget may display an instructional video, operational tips or information concerning an upcoming promotion.  In this model, the view (presentation layer) is simply a template that binds widgets to the presentation layer.  The template does not know which widgets will be displayed, simply that a widget may be placed in each quadrant.  In this sense, the template is merely a wire frame.

The application server simply instantiates (enables) four  empty quadrants and passes these empty quadrants along with a reference to the logged-in user to the business rule engine for processing.  When done, the application server does little more.  It simply passes the request along to the view for display purposes.  There is no logic nor programming on the back-end, nor is there logic on the front-end.  

The business rules engine allows complex rules to be declaratively written for each user and each quadrant.  A rule might state that a user with a certain responsibility or geographic location sees an instructional video while another user sees information about an upcoming promotion.  The rules can be arbitrarily complex, nested and/or recursive.  More importantly, the rules are soft-coded and can be extracted from a text file or Excel document.  The rules are not bundled with the system, they qualify its output.

Business rule engines are powerful allies in an enterprise stack.  They allow the rules that govern the operations of a business to be captured efficiently by technical and non-technical resources.  They allow rules to be changed quickly and cheaply (no software development cycles, no compilation, no deployment) .   They allow rules to be reused accross systems.

We used the Drools rules engine for the above implementation, a great tool with an unfortunate name.  Drools was developed under open source by JBoss.

Written by Compliant IA

January 13, 2009 at 5:26 pm

Business Rule Engine

leave a comment »

Much of the development in server-side programming in recent years has focused on declarative, loosely coupled components. This essentially amounts to building components (aka beans) and using XML descriptors to assemble business processes around these components. There are definite advantages to doing this, shortened development cycles and more flexibility around change management being two of the most compelling. The flag bearer of this movement is probably the wonderful Spring framework. While Spring is multi-talented, general purpose framework, there is another core technology most businesses need: a Business Rule Engine. A Business Rule Management System (BRMS), as these products are formally known, allows developers to declare and implement business rules, outside the realm of compiled code. The very capable, full-featured, open-source (and unfortunately named…) Drools from JBoss labs, is an BRMS tool that allows rules to be described using business semantics close to natural language. Since business rules is the portion of an application most likely to change over time, decoupling the rules from the core product makes sense. A BRMS is particularly well suited to data transformation, data validation and the implementation of any rule-based, conditional business process.

Written by Compliant IA

April 1, 2008 at 8:36 pm