Thursday, August 09, 2007

JBoss Drools vs ILog JRules - an anecdotal story

A user recently contacted me to share their experience with ILog JRules and investigations into a possible Drools migration. I've pasted part of the conversation below (with permission), and it makes nice anecdotal reading, I've removed a lot of the more ranting criticism of JRules, many of which surprised me, just to avoid this becoming too controversial :)

You can also read my previous blog article to see more user success stories Drools Success Stories - quotes from the mailing list

Snippets pasted from user email
X is one of the largest ILOG users, paying millions for license fees ...snip... We are satisfied about the rules engine (JRules) performance, but disappointed about the quality of rules management platform and their support ...snip... I have been on the user email (Drools) list for a while, and am very impressed at the energy and expertise you and other core team members demonstrated.
...snip...
I reviewed Drools 4.0.0 right before the GA release, and created a benchmark to test the engine. The rules used in the benchmark were translated from one of the most critical ILOG rule set in production, about 1,300 rules. I was also pleased to find that the declarative DRL in the new release was so rich that it made converting IRL to DRL a relatively easy task. The same data set used in ILOG benchmark were used in this benchmark, and as I expressed in the previous message, the initial result was very good ...snip... I would say that the benchmarks were very close to "Apple to Apple".
...snip...
I look at open source offering such as Drools as the perfect fit for us. We did a lot of reverse engineering trying to understand how JRules works and used many of the un-documented API's for some special business and technical requirements. It would be much easier if the source code were available.

14 comments:

  1. hi there,

    It appears that this user X is pretty expert developer on "Expert Systems"!

    Are you going to be working on a benchmark similar to what Jess did sometime back ?

    Thank you,

    BR,
    ~A

    ReplyDelete
  2. "Are you going to be working on a benchmark similar to what Jess did sometime back ?"

    Not sure what you mean. There are three main benchmarks - manners, waltz and waltzdb. We have implementations for the first two and a partially completed one for the last. However they only tell part of the story on an engines real world performance characteristics, so should be taken with a pinch of salt. And even those can have a number of configurations and things you need to understand to get an apple to apple comparison.

    ReplyDelete
  3. I totally agree. Everytime Ilog has a release, its a nightmare to migrate. Really poor documentation and have really bad support. It don't support annotations, generics ... I mean JDK 1.5 yet.

    ReplyDelete
  4. We don't support annotations or generics yet, sorry :( We've tried to support the legacy 1.4 platform for as long as possible. The good news is we are now dropping 1.4 and moving to 1.5. Although you could say we partially do as our consequences use the Eclipse JDT Compiler, thus inside of the conseqeunce you can use all of those things, just not in the left hand side "when" language part.

    ReplyDelete
  5. It also seems they have a dodgy JSR94 implementation, from another anonymous source:
    "The reason we create our own JSR94 is not only to improve performance, but also to support using precompiled rules. JRules caused core dump in our production when a rule set under some unknown conditions. To get around this problem, using precompiled rules seemed a good solution. It also reduced the memory consumption during rule compilation. For that particular rule set, our profiling showed that it would use more than 400 MB of transient memory. "

    ReplyDelete
  6. Commercial software is of inherently lower quality than comparable open-source software, because it is developed by people who are paid for writing software, instead of people who are fascinated about finding the best solution. -- Dirk Farin: Automatic Video Segmentation

    ReplyDelete
  7. One thing I will say is I don't need to get approval for any work I do, or financially justify any efforts. This means I can keep tweaking something and rewriting something till I'm happy. So many things get continuously reworked to as close to perfection, when a commercial entity would have long stopped the effort due to lack of financial return on the effort.

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. This link is the simple example how to

    change rule engines

    ILOG <-> drools

    http://www.ftponline.com/javapro/2006_03/

    magazine/features/yboglaev/default.aspx

    ReplyDelete
  10. I have been working with JRules for the last couple of years and I was really interested to see what Drools had to offer.

    To test Drools out, I created a little project in JRules, then try to port it to Drools.
    I posted up my findings in "Working with Drools from a JRules Perspective"

    ReplyDelete
  11. Hi Mark,

    Would I know the steps to convert a JRules project to Drools? You mentioned, you defined some approach. could you please post it here.

    thanks
    Rams

    ReplyDelete
  12. Open source tools are as good as individual and his interest. If an individual finds a good paying job and leaves spending time on open source than there is no guarantee that someone else will come and fix a bug that he might have left.

    In commecial tool, you have reliable channel for production support.

    ReplyDelete
  13. "Open source tools are as good as individual and his interest. If an individual finds a good paying job and leaves spending time on open source than there is no guarantee that someone else will come and fix a bug that he might have left.

    In commecial tool, you have reliable channel for production support."

    You must be talking about some other open source project. Drools is not some part time effort of volunteers. Red Hat is a commercial company that employs many full time developers dedicated to drools develop, such as myself. Red Hat is a large established organisation with world class production support and extensive world wide professional services.

    "The vendor claimed it is now closing in on its $1bn (£668m) turnover goal after reporting a 15 per cent surge in annual sales to $748m. Its fourth quarter, which ended on 28 February, was even better as revenues surged 18 per cent, topping analyst expectations."
    http://www.channelweb.co.uk/crn/news/2260214/open-source-channel-buoyant-red

    ReplyDelete
  14. What about PEGA rules engine and Drools, both are known rules engines, can you give a comparison between those two?

    ReplyDelete