[rules-users] Drools and BRMS (60,000+ rules)

Michael Neale michael.neale at gmail.com
Sun Nov 18 19:43:03 EST 2007


Hi Len.

Sounds like your requirements are pretty clear, which is great.

In terms of scaling to that level we have the BRMS - which will need some
(planned) improvements to make it possible to navigate such a huge amount of
stuff without anyone going insane. On the otherwise we have the engine
needing to cope with this onslaught of rules.

It seems there there are several applications to consume the rules, the
largest single one being based around courses (being 2000 courses with about
10 rules each, which sounds pretty sensible) - so that would probably be the
most challenging thing in terms of memory use (its having enough memory
available to build/load etc that mostly concerns me - that actual
performance once you get past that should not really be an issue).

Would like to talk about this more offline if you are willing (just cause
there are lots of Q's that we have) - but it is interesting as cases like
these don't come along all that often (and its hard to anticipate all
requirements). Would also like to (if possible) take a look at what you are
doing already (as you have the course rules working it sounds like) and
build it from there.

Please ping me if you want to set up a time to chat (on IRC, or we can just
exchange mails, or voice etc).

Michael.



On Nov 9, 2007 9:06 AM, Carlsen, Len <len.carlsen at ubc.ca> wrote:

>  Hello,
>
>
>
> I am wondering if anyone has any experience in managing very large rule
> sets and facts and could share their experiences in the design and
> management of this.
>
>
>
> We are embarking on a new Student Information System project here at UBC
> in conjunction with several other American universities.  We have pretty
> much decided to use Drools as our rules engine and maybe also the Drools
> BRMS for our business rules management.  Our first application is the course
> curriculum application/module where we will manage course co-requisites,
> pre-requisites, etc. and we estimate that we will have about 20,000 course
> rules. We currently have about 15,000 course rules (QuickRules) in
> production now. We will also have security rules, input/form validation
> rules, student awards rules, degree rules, enrolment rules, admission rules,
> student financial rules etc. which will total about 40,000 rules. So
> currently we are looking at managing about 60,000 rules (not including
> versioning).  If we include versioning then there would probably be more
> than 100,000 rules.
>
>
>
> Example:
>
> A single course could have 10 or more rules per course version. We
> currently have about 2000 course and most courses have more than 1 version.
>
> We are looking into developing our own rules management system to define
> dependencies between rules, courses (facts) and course + rule versions.
> E.g. Course CHEM101 version 1 links to CHEM101 a single rule or a rule
> set/package version 1 by a rule id.
>
>
>
> We need the ability to notify users when rules are modified which impacts
> other rules and what impact changing a rule can cause for example a degree
> program. E.g. changing a course's pre-requisite may affect other courses'
> pre-requisites; rules about rules. We also need the ability to find out why
> a student was not able to register for a course etc. We will also need to
> show the course dependency graph visually (the RDBMS can probably help us
> here). Later, we are hoping to use the Drools Solver for course and exam
> scheduling and also to use it for student degree planning and student
> awards.
>
>
>
> We will need to translate the rules into English language syntax for
> publication in the course calendar and later into other languages (first
> French) since the SIS application will be used internationally. Listing
> requirements could just be shown in bulleted form. Probably can't use the
> DSL in this case since we would need to support several languages or maybe I
> am wrong here?
>
>
>
> If we use the Drools BRMS to store all of our rules on a relational
> database, will we be able to write SQL queries to get at specific
> rules/packages to link facts (courses) to rules? Or do we have to go through
> the BRMS to get at the rules. Does BRMS have a facility to validate rules
> against facts so you can see if your rules execute correctly against your
> data/facts before committing your rules. Or maybe we need a testing
> framework for this.
>
>
>
> Other issues are the performance of the Drools Solver and having thousands
> of rules compiled, loaded and running. During registration we could have
> thousands of rules executing concurrently. The rules engine and the BRMS
> would be services as part of an SOA infrastructure (and an OSGi service
> environment).  Anyone got any experience with Drools in an OSGi environment
> with respect to class loading issues when compiling rules and facts from
> other bundles since rules and facts may be in different bundles? Bundle
> buddy class loading?
>
>
>
> Later, we will need translators to/from other rule engines; maybe ruleML
> and JCR can help us here.
>
>
>
>
>
> So far, I think Drools can do most of this; am I correct here? Does any of
> this sound plausible?
>
>
>
>
>
> Thanks very much for any tips, thoughts or comments.
>
>
>
>
>
> Len
>
>
>
>
>
> Len Carlsen
>
> Enrolment Services - Student Systems
>
> University of British Columbia
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>


-- 
Michael D Neale
home: www.michaelneale.net
blog: michaelneale.blogspot.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20071119/7af1d3f5/attachment.html 


More information about the rules-users mailing list