JAM experimental module - integrating Jini(TM) technology with Grid Engine



JAM (for Job & Application Manager) is a proof-of-concept, Jini(TM) technology based, graphical interface to Grid Engine. It provides a framework for selecting from a set of registered applications (or specifying one yourself directly), and selecting a Grid Engine queue to which the job is submitted (from a set of available queues originating from one or more clusters or cells), with support for filtering on various queue attributes. Once the job is submitted, it can be monitored and controlled via JAM.

JAM is written in the Java(TM) programming language (except for the Grid Engine interface), and leverages Jini networking technology. The registered applications, Grid Engine queues and running jobs are all represented as Jini services. The dynamic nature of Jini technology assures that all information is always accurate and up-to-date. The support for service attributes is utilized when searching and filtering among available Grid Engine queue services. In addition, JavaSpaces(TM) technology and the remote event model are utilized for the lifecycle management of the jobs submitted through JAM.

JAM utilizes native (C++) code (via JNI) for interfacing with the Grid Engine API (GDI) as it exists in Grid Engine 5.3. It shows one potential integration methodology between Jini and Grid Engine technologies, though not necessarily an optimal one.

This code is of prototype quality (at best). It is known to be deficient in several areas. For example, applications to be controlled by JAM need to have wrapper code written to make them available as Jini services, and thus known to JAM. This is not a trivial exercise. Grid Engine queues are not distinguished by which cluster or cell they come from. Issues like security have been largely ignored. The code has also not been rigorously tested nor widely deployed. You get the idea.

JAM was initially the result of a joint collaborative research effort between Sun Microsystems (Sun) and the Swiss Center for Scientific Computing (CSCS).

It is being hosted as an experimental module, as we have no plans to run any kind of open source "project" around it. We are simply making it available in the hope that the community will find it useful. It is available in browsable source form, or can be retrieved using CVS. When using CVS, checkout against the V53_beta2_BRANCH tag, as that is the version that works with Grid Engine 5.3. We are working on getting the JAM trunk synchronized with the Grid Engine trunk, but it is currently broken.