Rules engines provide real seperation of business logic from the software coding. There are two key entities: the rules themselves and the facts that the rules work on.
The rules themselves can infer new facts from the facts that they are given which can lead to further rules being fired. This "inference engine" approach is amazingly powerful and the "chaining" of rules can lead to very powerful results with just a few simple rules.
For more about Business Rules Engines see the following article in wikipedia: http://en.wikipedia.org/wiki/Rules_engine
I have been developing solutions on 3 different engines recently, which I wanted to share a brief view on:
- Jess (http://herzberg.ca.sandia.gov/)
- JBoss Rules (Drools) (http://labs.jboss.com/drools/)
- Oracle Rules (http://www.oracle.com/technology/products/ias/business_rules/index.html)
Each of these platforms essentially offer the same general problem solving approach using inference engines and the ability to seperate business logic from coding. I have been involved in the Artificial Intelligence arena for over a decade in one shape or another and these types of technologies used to cost £100k+ and be used a variety of high end applications for big business and the military. Now however the technology is essentially free (well it is through JBoss Drools at least).
I am majorly impressed with these platforms now.
I have know of Jess for many years (and indeed Oracle licenced this technology) and for those of you who still like to use LISP and reverse polish notation you will be right at home. Jess is a fantastic environment for doing RAD rule development - but you need a bit of technical skill to get anything out of it. What has dissapointed me about Jess - and think this was such a missed opportunity from Scandia labs - is it never developed a decent (or any really) UI that would take it mass market... and that is a ral shame because I really do think it is the best core inference engine out there in this space. It performance is absolutely fantastic.
JBoss Rules(Drools) on the other hand has both a performantengine and has been putting a significant amount of effort in the UI side and is coming on leaps (no pun for those in the know) and bounds in this space. From being a new kid on the block I think that this will be the one to watch closely in the coming months. It is getting more akin to the Intellicorp rules platforms of a decade ago which was a dream to use to develop Knowledge based systems (but which is sadly no longer available).
Oracle Rules is an odd one that I both love but at the same time frustrates me in that Oracle I feel has missed a trick with this which could have seem them corner this part of the market. It appears to me that Oracle are not 100% convinced in this markspace so have launched something to test the water and have put just enough effort to make a decent effort and see what the customers say. That said, what Oracle have provided should be enough for most organisations to get started. As it is built on the JESS platform it has a fantastic pedigree, however Oracle being Oracle, they have bastardised the Jess platform (I dont know why - maybe commercial reasons) and you cant access the full power of Jess but some mixed/limited set of the stack. I am about to start a proper implementation of Oracle Rules in the next few weeks so I will let you know more.
Rules Engines to me are a fantastic addition into any organisations operational platform. They can, if deployed correctly, provide increadible organisational agility and power and critically real business advantage when used within an SOA. To me these are the unsung, underutilised but future heroes of the technology fabric that all major organisations will be deploying in the near future.
No comments:
Post a Comment