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.