Distributed Jess on a Condor pool DANA PETCU*°, MARIUS PETCU** *Computer Science Department Western University of Timisoara B-dul Vasile Parvan 4, 300223 Timisoara °Institute e-Austria Timisoara **Aurel Vlaicu University, Arad ROMANIA http://web.info.uvt.ro/~petcu Abstract: - This Distributed rule-based systems, like a distributed version of Jess, are needed for real applications. The proposed architecture for such system is based on several instances of Jess distributed in a Condor pool and a central manager allowing the cooperation between these instances. Efficiency tests are performed on classical benchmarks. Key-Words: - Distributed rule-based engines, cluster simulations 1 Introduction The suites of benchmarks, like the one reported in [10], shows that the rule-based running on the current hardware need hours to give the solutions when the number of rules to be fired are of thousand order. In this context, parallel or distributed version of those systems will be welcome. The strategies to improve the speedup using multiple processors (see Section 2) were already discussed in the last twenty years. We selected Jess as current representative rule- based systems. Java Expert System Shell [9] is a rule-based programming environment written in Java. Inspired by Clips expert system shell [2], it has grown into a complete environment of its own, being today one of the fastest rule engines available. Jess uses the Rete algorithm [7] to compile rules, an efficient mechanism for solving the difficult many- to-many matching problem. One can build with Jess software that has the capacity to reason using knowledge supplied in the form of declarative rules. Jess is used in agent frameworks, expert systems from medicine to cryptography, intelligent tutoring, robotics, and so on [5]. The strategy adopted here to build a distributed rule-based system is one based on client-server model: a manager, the server, registers different Jess instance, the clients, and manages the cooperation between them. The manager can be the same or slightly different for most of the available rule-based systems. Jess has been taken as an example for this study mainly due to its openness to the environment (communication via sockets, ability to create Java objects and call Java methods). The structure of Distributed Jess is detailed in Section 3. The preliminary tests on Distributed Jess installed on a Condor pool of computers and presented in Section 4 show its efficiency in the case of using a cluster environment. 2 Distributed rule-based systems A rule-based system consists in a working memory, a set of rules and an inference engine. The working memory is a global database of data (elements) representing the system state. A rule is a condition- action pair. The inference engine is based on a three- phase cyclic execution model of condition evaluations (matching), conflict-resolution and action firing. An instantiation is a rule with a set of working memory elements. A conflict set is the set of all instantiations. In a sequential environment, conflict-resolution selects one instantiation from the conflict set for firing. In a distributed environment, multiple instantiations can be selected for firing simultaneously. Firing an instantiation can add, delete or modify elements in the working memory. Encompassing a high degree of parallelism, the time performance of rule-based systems can be improved through parallel or distributed processing. The interest in parallel and distributed rule-based systems has been raised after 1984 and the first parallel implementations were already available at the beginning of the last decade. Amaral in [1] presents a comprehensive synthesis of the efforts made before 1994 in providing parallel firing systems. Concerning the Jess predecessor, Clips, there are several parallel and distributed implementations produced mainly before 1994. For example, in the parallel version reported in [8] and developed in