Build a Compute Grid with Jini Technology
Jini technology is an open software architecture that enables Java dynamic networking for building distributed systems that are highly adaptive to change. It can be used to create technology systems that are scalable, evolvable, and ﬂexible, as typically required in dynamic runtime environments. Jini technology was originally created by Sun Microsystems, and was contributed by Sun to the Jini Community SM in 1999. It is freely available and is advanced by members of the Jini Community through the open Jini Community Decision Process.
Although the power of computers to process data has progressed at an astounding rate over the past decades, the problems to which people wish to apply this compute power have exploded in magnitude as well. A common approach to solving a demanding compute problem is to employ an algorithm that allows multiple processors to work on the problem in parallel, and to run this algorithm on a either a symmetric multiprocessing (SMP) computer, or more recently, on a compute grid that harnesses the collective processing power of multiple computers distributed over a network. The ready, low-cost availability of high network bandwidth and networkable CPUs, coupled with improvements in software networking technologies, has enabled the creation of capable, lower cost compute grids today. The ability of such compute grids to easily and affordably scale to meet the needs of large scale computation problems makes this approach to parallel processing appealing to a wide range of users today. Many patterns and system architectures have been developed for performing parallel processing on a compute grid. One popular approach centers around a master-worker arrangement of networked grid nodes. In such a system, one or more of the nodes are designated as masters while the other nodes act as workers. When a client submits a computation job to a master node, that master node divides the computation into smaller chunks, or tasks, and distributes those smaller jobs to workers. The workers then compute those tasks and return their results to the master. When all such jobs are completed, the master assembles the results and returns them to the client. This paper describes how Jini™ technology and JavaSpaces™ technology are used to implement the master/worker pattern to perform parallel computation on a compute grid. Jini technology, because it is designed to help people build distributed systems that are highly adaptive to change, can simplify and reduce the costs of building and running a compute grid. The JavaSpaces service, a component of Jini technology, provides a powerful yet simple way to coordinate parallel processing jobs.