Java Logo
October 19, 2004
Introduction to JavaSpaces

Presentation Slides

Thanks to Gad for his excellent introduction to JavaSpaces and Jini. At the heart of JavaSpaces is the tuple spaces models - an associative memory that provides a repository for tuples. This repository can be accessed from multiple processes on multiple machines and is hence really a shared memory. Tuples are accessed not by their address but rather by their content and type. Tuple spaces are thus used to provide inter-process coordination. Gad covered the basic tuple space operations including:

  • out - writing a tuple in a tuple space
  • rd - reads a tuple without removing it from tuple space
  • in - reads and removes a tuple from tuple space
  • eval - a live tuple, which start a process to evaluate each argument

Reading a tuple is accomplished by providing a template. Tuple implementations, such as JavaSpaces, also provide transactions, customizable indexes, etc. Gad also delved into Jini which JavaSpaces is an inextricable component. He wrapped up his presentation by briefly covering GigaSpaces efforts and mentioned that GigaSpaces has implemented their own tuple space engine that is compliant with the JavaSpaces specification to be used in their suite of products. Some interesting discussion followed as to differences between tuple spaces and databases as well as the complexity in implementing such a system.

Abstract

When the David Gelernter and his students developed the Linda programming language at Yale University – 20 years ago exactly – they were already laying the foundations for our current concerns with distributed computing. As programming concepts and computer systems have evolved to allow the realization of distributed computing, Linda’s simple and powerful concepts have enjoyed a massive revival and have been used at the core of advanced distributed systems. Sun Microsystems’ JavaSpaces is arguably the most widely-used and relevant Linda-inspired technology available to designers of such systems. JavaSpaces’ power comes into play within today’s Service Oriented Architectures, Data Management and Messaging platforms – to name a few – and it’s future seems destined to become a cornerstone for the light, adaptive and massively distributed systems of the future. This presentation will discuss the past, present and future of the Linda/JavaSpaces lineage.

Raffles