ILOG JRules User Guide > Optimizing Execution > Concepts > Java and ILOG JRules

ILOG JRules integrates with Java to maximize optimization.

Integration with Java

While traditional rule-based systems often require a proprietary language to define the objects used by the rule engine, the ILOG JRules engine directly infers from Java objects in the application--without any duplication. There is no restriction on the types of classes that are usable in the ILOG Rule Language (IRL). Any application classes can be used, and there is no need to derive the application classes from the ILOG JRules classes.

Utilizing Java introspection, rules are directly applied to the application's objects, meaning ILOG JRules rules only carry a reference to the object. Consequently, no intermediate layer between the application classes and rules is required. This saves memory and increases performance, as no synchronization between "shadow" objects and application objects is necessary.

Optimization for J2EE

ILOG JRules can scale inexpensively with respect to:

Rules are usually pre-parsed when the rule engine is created, which avoids ruleset parsing time when the engine evaluates business rules.

Optimization for Enterprise JavaBeans

ILOG JRules provides flexible integration for Enterprise JavaBeans, including a rule engine server packaged as a JavaBean. Delivered ready for EJB and J2EE, ILOG JRules takes advantage of all the middleware services provided by application servers--load balancing, persistence, and fail over. It also supports the latest EJB 2.0 specification and includes support for local interfaces and message-driven beans.

ILOG JRules can be embedded directly into Enterprise JavaBeans--entity, session, and message-driven beans. Multiple instances of the rule engine can be executed in parallel--because it is thread safe--making ILOG JRules scalable as well as suitable for high-speed parallel processing architectures. Using Java's synchronization capability, ILOG JRules is thread hot, allowing multithreaded applications to share objects and rules, and allowing multiple rule engines to operate on the same set of application objects.

Related Concepts

Performance and Scalability
Applications and ILOG JRules Performance
Java and ILOG JRules
The Configuration Resource File

Related Tasks

Setting Rule Engine Configuration Properties
Improving RetePlus Execution Mode Performance
Improving Sequential Execution Mode Performance
Improving Fastpath Algorithm Performance
Improving Equality Test Evaluation Performance
Instrumenting Join Tests with Finders
Running Several Rule Engines in Parallel
Executing a Rule Task Directly

Related Reference

Rule Engine Configuration Properties