I
have a question about rule storage and referencing with the JBRMS.
Mostly this is directed to Michael Neale (since I believe this is his
baby), but since I cant catch him on IRC I'll post it to here to see if
others have this similar concern.
A
little history before I get to the question. We have been using drools
since 2.x (still on 2.x) and have developed much around the core
engine. The way we currently store rules is in a
database, at runtime we pull them out and write an xml file. What this
allows is rule referencing back to the authoring source. We translate
from DB->XML so the "then" returns the ID. We also use it to create
unique names for rules. In our editor we have notes, versions and the
complete rule code, similar to the new JBRMS. When a rule fires in our
system the purpose may be to show an error or change a price. Either
way sometimes people ask why did this fire, or further, they dispute
the rule all together. So in each message or price change we track the
ID of the rule being fired/applied.
From
that we have developed 2 tools, one to lookup a rule and see a great
deal of info about that rule (whats/whys), the other is an Override
tool that allows you, given authority, to associate a rule ID to a
transaction and have coded so when the engine fires this rule, it will
be ignored by the system. Obviously how we override is not something I
expect you to solve, but giving me the ability by having a unique ID
would be.
I
would think the desire to "Track" and "Override" a rule is pretty high
for most people using a rule system in an enterprise. What makes this
possible is exposing a unique identifier in the storage of rules (think
database and editor) as well as the execution of rules (as they fire).
I setup the MR2 of the JBRMS and tried to look at the storage system to
see if a rule had some unique identifier that we could use, and found
none. Seems like a rulebase is a blob, though maybe I'm just looking at
it wrong.
So
my question and/or request is there a way to have each rule have a
unique identifier (by version is fine) in the JBRMS storage system. I
think this is the first step, the second is harder but make the system
associate the ID to a rule at execution ("then"). Similar to the option
of expiring a rule at X date.
While
this may not seem huge, and is definitely not as cool as changing
semantics in MVEL, it is a huge barrier of adopting this new very
feature rich JBRMS.
Thanks,
Michael
Rhoden
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users