Project Description and Overview
jxtaSpaces is an experimental project to design and implement a distributed shared memory service on the JXTA peer-to-peer computing platform.See the new JXTASpaces project.
Generative Communication Model
Distributed shared memory is a model for inter-process communication that provides the illusion of a shared memory on top of a message passing system. Programming distributed applications using a shared memory abstraction is less complex than explicitly using message passing. In addition, the DSM model allows communicating processes to be uncoupled logically, temporally, and spatially.
A well-known software implementation of distributed shared memory is the generative communication model, best represented by the Linda coordination language for parallel computing. In this model, processes share a virtual memory space called a tuplespace. The fundamental data unit, a tuple, is an ordered vector of typed values. Processes communicate by reading, writing, and consuming these tuples. Another distinguishing feature of tuplespaces is that tuples are accessed associatively, that is, by their contents rather than by their addresses. A simple set of familiar operations allows highly complex communication and synchronization schemes to be constructed using this model.
The tuplespace model for distributed programming has recently seen an increase in popularity, with commercial systems in Java available from Sun (JavaSpaces), IBM (TSpaces), and others. These products differ from (and improve upon) the original Linda system in various ways, most notably by being object-oriented and not requiring language extensions or a special compiler.
Distributed Tuplespaces
Most tuplespace systems assume one or more spaces running on one or more processors; however, the notion of distributing a single space over multiple processors is less common. Suns JavaSpaces, for example, supports multiple local and remote shared spaces, but does not explicitly support distributed spaces. IBMs TSpaces has similar limitations.
True distributed spaces offer many advantages, in particular scalability and availability. jxtaSpaces intends to provide scalable shared memory services for networks of heterogeneous peers. In large peer-to-peer networks, a global shared memory can be used in many ways to simplify the building of complex distributed applications.