|
Runtime API
The Runtime API provides a JDBC type access to vendor
implementations of the Rules Engine API. Vendors can expose
their rule engine implementations to the clients through the
RuleServiceProvider class. The RuleServiceProvider provides
access to the Runtime and the Administrative APIs of the
specific rules engine implementation. Every vendor who wishes to
expose a RuleServiceProvider will have a RuleServiceProvider
URL, which uniquely identifies the implementation. The
recommended standard is to have an Internet domain namespace
convention like "com.mycompany.myrulesengine.rules.
RuleServiceProvider". This would help in having uniqueness of
the access URL. The RuleServiceProvider internally implements
the interfaces required for rules administration and runtime
access. All RuleServiceProviders should be registered with a
RuleServiceProviderManager so that they can be accessible to
clients. The registration is done in a manner similar to the
DriverManager and Driver of the JDBC API. Only
RuleServiceProvider registered with the
RuleServiceProviderManager are exposed to the clients.
The RuleRuntime Interface is the heart of the Runtime API. The
RuleRuntime interface provides methods to create a RuleSession,
which in turn is used to run the rules. The RuleRuntime also
provides a mechanism to access the list of all the
RuleExecutionSets registered with the service provider. The
RuleSession Interface also defines the type of session that will
be used by the client. The clients have an option of having a
stateful session or a stateless session depending on the way the
client want to run the rules.
The StatelessRuleSession behaves like a stateless session bean,
it works on a per request basis. Clients can send either a
single input object or a list of objects and expect an output
object. A StatefulRuleSession is useful when the client needs a
dedicated session with the rules engine. Input objects can be
added to the session through the addObject method. Any number of
objects can be added to the same session. Existing objects on
the session can be updated using the updateObject method. The
objects are not lost as long as the session exists between the
client and the rules engine.
RuleExecutionSetMetaData interface is provided to the clients to
find out about the metadata of the RuleExecutionSets. The
information is not directly exposed to clients as rule
administrators without notice might modify the information about
the RuleExecutionSet. The metadata information is exposed
through the RuleSession Interface.
A snippet of sample code for the using the Runtime API is shown below:
RuleServiceProvider ruleProvider =
RuleServiceProviderManager.getRuleServiceProvider
(com.mycompany.myrulesengine.rules. RuleServiceProvider);
RuleRuntime ruleRuntime = ruleProvider.getRuleRuntime();
StatelessRuleSession ruleSession = (StatelessRuleSession)
ruleRuntime.createRuleSession(ruleURL, null, RuleRuntime.STTELESS_SESSION_TYPE);
List inputRules = new ArrayList();
inputRules.add(new String(Rule 1));
inputRules.add(new Integer(1));
List resultRules = ruleSession.executeRules(inputRules);
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|