JISGA is a Jini-based service-oriented architecture (SOA)
for Grid computing. In addition to the basic functionalities of a general Jini
system, it has the following features:
- It gives users easy access to services by supporting
an XML-based job description language (where a job, in general, is a
composition of services).
- It automatically processes the job for the user by
dynamically creating and executing the job processes.
- It allows both blocking and non-blocking job
- It allows both sequential and parallel job
Here the job that is submitted to JISGA is not a
traditional software application written in some programming language or an
executable code generated by a compiler, but a service-based application
described by an XML document. The XML description document is based on Service
Workflow Language (SWFL) and describes a job by specifying the workflow
structure among the services of which it is composed. The automatic processing
of such a job involves creating the Java code for the job, compiling the code,
loading the class, executing the code, and sending the results to the job
Although JISGA is a Jini system, all its basic services are presented as Web
services as well. The Jini lookup service and UDDI registry server coexist as
the central mechanisms for publishing and discovering services. In JISGA the Jini
lookup service provides the link between the Jini services and users
and the UDDI registry server provides the link between Jini services and non-Jini
users. Several assistant services or components are used in JIGSA:
- The Visual Service Composition Environment (VSCE)
provides a graphical tool for generating composite service-based
applications through a "drag-and-drop" interface. This generates an
application described by an SWFL document.
- The Workflow Engine provides an execution
environment for the composite applications described in SWFL. It allows both
blocking and non-blocking job submission, and sequential and parallel job
- A JobProcessor service mainly processes parallel
jobs, which includes partitioning parallel jobs into sequential sub-jobs and
then processing each sequential sub-job.
- JavaSpaces is a basic service provided by Jini,
and its tuple-space is used in JISGA as a shared memory mechanism.
JavaSpaces stores the job queues of the JISGA system, and also serves as an
intermediary in communicating between distributed processes.
- A JSHousekeeper service is used to deal with
certain tasks relating to the use of JavaSpaces, such as removing objects
that have not been recently used, and updating the state of certain objects.
- A ServiceManager service is used to publish and
remove services. The ServiceBrowser service is a support tool that allows a
user to graphically and dynamically monitor the services within a JISGA
system. Other supporting tools include service maintenance tools for service
The following Figure depicts the architecture of
the JISGA system.