Hi folks,
 

We have a web application that can accommodate many individual users simultaneosly. When a user does something it affects one or more objects (creates one or more events) in the system for that user (including updating a database etc). Certain events are candidates for rules to be fired when they occur that will then affect website objects (via function calls of the Java objects etc.).

 

Issue/Question 1)

 

Do we implement using 1 "global" rete engine for all events/ users/contexts, or do we use a separate rete engine for each event/user/contex?

 

If the approach is to use one global rete engine  to handle the rules for all events/users/contexts, how does one maintain separateness of  events/users/contexts, when multiple users are updating the web site (that will be  firing the same (or different) rules) at the same time?

 

In the separate engines/event approach, for each event that occurs, we create an engine (or grab an engine from a pool), definstance the appropriate objects into Jess working memory and run. When done the engine can be returned to the pool or destroyed.

 

What are the pros/cons of ewach approach.

 

Further, we were thinking of using AspectJ against our core website code such that each event (of interest) is "intercepted" by an AspectJ function and then calls Jess (using either single or multiple engine approaches as above) with that event/user/context information.  Thoughts?

 

 

Issue/Question 2)

 

If we choose to implement separate engines per event/user - rete engine A for event/user/context A, and rete engine B for event/user/context B etc., we were also thinking of having in addition, a global engine X with the ability to receive fact assertions from one or more of the individual rete engines. The global  Has this been done.  Would one use a function call from rete engine A, to Java, that would then assert a fact(s) into the global engine/context?  This could lead to hierarchical engines whose contexts grow wider in scope etc.   Thoughts?

 

 

Thanks for any insight.

Mike

Reply via email to