How do tuplespaces differ from messaging systems?
At first sight, both technologies may indeed look very similar. They expose similar interfaces – two operations in the case of messaging (GET, PUT) and three in the case of tuplespaces (IN, OUT, READ). Both contain the concept of a container called a “space” in one case and “queue” in the other, to refer to a set of message (or tuples). These findings have been extensively discussed in [1]. A closer look at both however reveals the following fundamental differences: Messages in a Queue have a defined ordering and can only be retrieved in that order (e.g. FIFO or priority ordering). In contrast, clients have random access to all the tuples stored in a tuplespace. Tuples in a tuplespace are accessed by content using a template-based mechanism that is somewhat similar to “query by example” known from database technology. Messages however are consumed exactly in the order the messaging system stores them in the queue. It is not possible to randomly access messages. Tuplespaces are a means