Friday, May 11, 2007

The BRMS has landed - with Screenshots :) (Michael Neale)

The BRMS (Business Rule Management System) has been in the works for sometime. Well, finally, there is something you can use, which works end to end. This is now part of the JBoss Rules 4 Milestone releases, so please, go ahead and start testing it ! There has been great work going on elsewhere in Drools, with respect to the language features, core engine enhancements and the IDE as well (see previous posts).

For a very interim user guide, you can refer to the wiki Quick Start for BRMS. Much more documentation, tutorials etc is on the way.

You can use the milestone releases, or ideally the snapshots (as found here, referring to the wiki link above to make sure you have the latest info, also keep an eye on this blog).

The best way to get going is to take a look at the quick start guide (linked above) and also have some ideas for a model that you want to write rules over (as one of the first things you will do is configure a package).

As always, you can contribute: helpful bug reports are appreciated, as are contributing some specific examples. The wiki is also available to record notes/tips, which can feed into the manual/documentation. I plan on working on a flash based tutorial (a few tutorials will be needed to introduce the concept).

So, the whet the appetite, some screen shots, which show some of the new rule authoring capabilities, as well as the life cycle management are shown (they are not in any particular order, but you can guess what most of them are showing !).



  1. This project looks very promising.....

    could you please clarify the following statement from the quick start guide:

    # After you have edited some rules in a package, you can go to the package feature, and build the whole package.

    * If that succeeds, then you will be able to download a binary package file which can be deployed into a runtime system.

    Specifically, what format is the "binary package" in exactly?

    What type of runtime system would you deploy it to?


  2. The binary package is just a serialised pojo blob, nothing special.

  3. Thanks for the quick response.....

    How does one utilize this serialized pojo inside a java method?

    How do the rule definitions, DRLs, etc get inserted into the Rules Engine?

  4. If I have the following method to load rules from .drl files, how would I replace it to accomodate the serialized pojo?

    private RuleBase readRule(String ruleFileName)
    throws Exception {

    Reader source = new InputStreamReader(
    getResourceAsStream(ruleFileName) );

    PackageBuilder builder = new PackageBuilder();
    builder.addPackageFromDrl( source );
    Package pkg = builder.getPackage();

    RuleBase ruleBase = RuleBaseFactory.newRuleBase();
    ruleBase.addPackage( pkg );
    return ruleBase;

    Thanks again,

  5. How does one utilize this serialized pojo inside a java method?
    You unserialise the blob to a Package object, which is standard java, and then add the package to a RuleBase.

    How do the rule definitions, DRLs, etc get inserted into the Rules Engine?

    Everything is stored as part of a Package object.
    RuleBase ruleBase = RuleBaseFactory.newRuleBase();
    ruleBase.addPackage( myPackage );

  6. We are working on an agent API to make the deployment process smoother and more declarative.

  7. The project is really great.
    but i am unable to download the binary package.
    The steps followed by me is as below:
    1. created a category.
    2. created a package associated with that category.
    3.Loaded a fact model which is a bean class and linked it with the package.
    4. created some business rules.
    5.imported the bean class in the configure package option and saved the changes.
    6. created a new snapshot.
    7. Build the package and it shown a success message too.
    8. Now tried to download the package but it is giving package not found.
    Please let me know the solution.

  8. Hi,

    We have been using JBoss rules for a new project, but until now, the lack of a BRMS has meant that we been forced to look at commercial products.

    Having downloaded JBoss BRMS, I have had many problems getting it to run (on Tomcat - finding the right JSF implementation took ages)

    When I did get it to run, I could not import an object model and so could not create any rules at all. It simply did not do anything.

    I understand that the product is not yet ready for release, but I was surprised that I could not even import a JAR containing POJOs.

    Any ideas where I am going wrong? Any suggestions as to what the recommended web server / version of libraries to use?


  9. I would like the ability to import rules in drl form into the BRMS.

  10. You can do that, it allows you to use DRLs as assets, and publish as a Package. What it doesn't do is break the DRL down into individual rule assets, as it would be too hard to manage both the DRLs and the rules as seperate entities. Maybe one option is have the ability to "import" a drl as individual rules, but it will throw the drl away at the end.

  11. Thanks to author for this article. Very interesting. Write more!

  12. Is there a possibility to read the rules immediate from the database, without deploying to a serialized pojo blob? Or is this not good for performance?

  13. Hi,
    Does anyone run BRMS on jboss AS 4.0.2? I need to run it on that server but in doc recommended is 4.0.5. Thx for help!

  14. hi, it seems as you know a lot abuot business rules and especially droosl. my question is:
    I'd just like to use a business rule repository and a visualization and management tools. So therefore I don't need a business rule engine or something like JBossRules Working Memory.
    And what exactly is the difference of Drools and JBoss rules?
    thank you