Marinda is a tuple space implementation in the Ruby programming language, and is used for decentralized communication and coordination which can simplify network programming in a distributed system. It provides, for example, message-oriented synchronous and asynchronous group communication, a persistent connection, and automatic marshaling of structured data.
Marinda depends on three packages:
Installation and Required Packages
Marinda is distributed as a single installable Ruby gem file. The tar.gz contains the source code and (out-of-date) documentation. How you install Marinda depends on how you intend to use it.
For details on required packages, installation and configuration, please refer to the Installation Guide.
The Client Programming Guide provides a tutorial on writing Ruby programs that use Marinda. An Advanced Client Programming Guide is also available to cover the more advanced features and techniques available with Marinda.
Note on documentation: The programming API has changed and some details about the installation procedure may have changed. The current documentation is still useful for getting a sense of what Marinda is, but it's not yet a reliable source of information about using Marinda until it can be updated.
Marinda has a star (or hub-and-spokes) topology, with local servers connected to a central global server. Marinda consists of a single 'global' server called marinda-gs and multiple 'local' servers called marinda-ls.
The global server holds all the actual tuple data, and local servers act as the frontend or proxy to which Marinda clients (that is, user programs) connect. The local server is called 'local' because it serves all clients on the same machine (that is, the local machine) as itself. You must run a local server on each machine that will have Marinda clients. The local servers maintain a persistant TCP connection to the global server, while Marinda clients connect to the local server via a Unix-domain socket.
- Slideset: Archipelago: On-Demand IPv4 and IPv6 Topology Measurements - Overview of Ark and introducing Marinda
- Slideset: Archipelago: A Coordination-Oriented Measurement Infrastructure - explaining tuple space
- Slideset: The Archipelago Measurement Infrastructure - on tuple space implementation