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 |
- JESS: multislot problem Jeremic Zoran
- Re: JESS: multislot problem ejfried
- JESS: Compare predicate function problem Michael Knapik
- Re: JESS: Compare predicate function probl... ejfried
- Re: JESS: Compare predicate function p... James Owen
- Re: JESS: Rete engines and contex... Michael Knapik
- Re: JESS: Rete engines and co... ejfried
- JESS: When is Java object... Brett Daniel
- Re: JESS: When is Java ob... ejfried
- JESS: Multislot problem Mehta, Chirag (IT)
- AW: JESS: Multislot problem Lars Hübner
- RE: JESS: Multislot problem Mehta, Chirag (IT)
- RE: JESS: Multislot problem Jason Morris