I have been working on a project for the past year or so. This project was originally decided to be implemented in a BizTalk environment. Although most of us were new to this form of SOA development we went ahead with the understanding that we would eventually learn enough to stand up, manage, and develop for BizTalk. With this in mind we developed our entire application in such a way that we thought the app would simply plug in to the BizTalk environment (from an orchestration point of view any ways).
Some of the reasons that we decided to go with BizTalk was that it was very scalable, configurable, flexible, and that it had many components that we could easily use in our application. Some of these components were the Business Rules Engine (BRE), various reporting tools (BAM), built in queue integration, etc. We liked the idea of using already built and tested components. Why recreate the wheel after all? After we played with BizTalk for quite some time, took several classes, and spent many months with our BizTalk consultants, we eventually heard one statement that summed up BizTalk in every way:
“BizTalk can do anything you want it too, it just can’t do anything out of the box!”
Whaaaaa?
Any ways…again…a year later I am still working on an application that needs some of these BizTalk style components. One of which we have found is needed more and more. We needed an external program to manage the flow of our application. One might immediately jump to Windows Workflow Foundation and the Rules Engine that comes with WWF. However, one of the marching orders of this application is that the business users can make changes to the logic of the application in such a way that it doesn’t require a code push and is not restricted by the length of a development cycle. We had looked into several rules engines along the way to see if any were capable of addressing this need. All of the rules engines that we came across were Java based and forced you to integrate with them via web services. Yuck.
We eventually came across ILOG Rules for .NET. This is a program (now owned by IBM and a Microsoft Gold partner) that integrates into a .NET developers world in a very seamless manner. It plugs right into Visual Studio allowing the developer to define flows, express facts to rule editors, verbalize those facts in a more business friendly manner, and call into the execution server to run the rules all without any headache at all.
In addition to that the rules, decision tables, and flows can be edited externally in Microsoft Word or Excel.
And for those in a real Microsoft shop you probably have a SharePoint installation to manage all of your documents. SharePoint is also fully integrated into this suite for rule doc management, workflow management, etc. (sorry, no screen shot of this yet)
The best part of this application in my mind is that ILOG gives you a 6 month free trial of the fully functional suite! This means that you can easily knock together a proof of concept before you purchase their (very reasonably priced) program. http://www.ilog.com/dev/brms/rfdntrial/ And another benefit to their free trial is that they provide you will full access to their support forum. I had a few issues during my POC development that I got pretty quick help with through this online help format!
In future posts I will show my proof of concept and address some of the gotchas that I ran into.
I am going to assume that you can get through their registration and free trial download process. I am also going to assume that you can get all of their programs installed and running (they cover that pretty well).
One word to the wise – do be sure to install the execution server first so that you don’t have to mess with any configuration files down the road! This should be pretty easy as it is the first installer you come across.
Also, be sure to read through their various documents and white papers (with the QuickStart being the most helpful!):