-
Here at DoublePositive, the technology team recently decided to implement a business rules engine. Being that we have a mostly Microsoft oriented architecture, one of the logical places to begin our research and development was with the Microsoft Business Rules Framework. We also reviewed some tried and true BRE products, including BEA, Jess and Drools (Java Based). What we found about the various products in a head to head comparison was not that much different from prior unrelated software comparisons. There were benefits and deficiencies associated with each product. And, there was no clear winner that made an easy choice for us. In the end, it came down to cost and ease of implementation / integration with our current environment. The Microsoft Business Rules Framework was our winner. Your mileage may vary.
Before we began to go down the BRE road we had already began to implement BiztTalk as a core part of our business. We already had a few successful projects under out belt when the BRE project was brought to the table. As stated earlier, one of our key deciding factors was ease of implementation. Because BizTalk was installed in our production environment, the Microsoft BRE was already installed as a part of that package. It doesn’t get much easier than that. But the story only begins here.
So, why implement a BRE in the first place? The most significant factor for DoublePositive was the speed of change in our business. The rules that ran our business were being changed, and changed again at record pace. A sizable portion of these rules existed in our database where they were easy to modify, but a nightmare to manage. The rest lived in our compiled code where they were difficult to modify and not much better on the management side. Small changes in rules were causing us to have to write code… recompile… test… deploy… and test far too often. It was time for our architecture to mature a little more.
Rapid change was our catalyst, but there were many other benefits that we could not ignore. Among them are…
- Centralization of business rules management
- Visibility of rules to key business policy makers
- Minimization of new coding
- Simplification of coding through rule abstraction
- Enhancement of rule performance
There are many other reasons why your business might choose this design avenue. These are the ones that rang true to us.
Next, we picked a project and decided that for it no rules will exist inline. We also want to create a SOA framework that would make our BRE available to any of our applications, not just BizTalk applications. Creating this SOA layer was more challenging that we originally anticipated, but once done we were off and running. (I will write about our experiences there in a later entry.) Writing the rules was a lot more straight forward. We still had to watch our for various pitfalls of this BRE such as deterministic rules vs. non-deterministic ones. As well as, navigating our way around Negation as Failure. (Also not discussed here). After cementing our design we got the SOA stack in place, rules written and then we were ready to roll it out.
We deployed our new architectural styling to our production environment without much pomp or circumstance. This was one of those projects that the rest of the business does not necessarily celebrate with the rest of IT. It’s benefits are realized by all, but are not as tangible to most of our business users. The true celebration came the next day. A change request arrived. Policy Maker, “We need you to change rule 57 from Fruit = Apple to Fruit <> Orange”. Developer, “Oh my, that is the most horrendously difficult thing you could have asked me to do. But for you, I will make it happen”. The developer went back to his office and changed the rule in the new Rule Composer in a little under 30 seconds. He tested the rule and published it to production in another 15 minutes. The applications utilizing the BRE automatically and seamlessly picked the rule change . The Developer spritzes his forehead with water and runs into the Policy Makers office announcing, “I gave her all I had captain. The warp… I mean BRE engine has been updated with the latest rule”. Then he collapsed on the floor for extra drama. But there we were; our business was able to react instantly to our customers needs with minimal cost, resources, time and risk. All of IT was BREathing fresh air.




