Tuple Space Implementations

Fly Object Space

http://www.flyobjectspace.com/ Fly is a lightweight Object Space that can distribute and coordinate information on clusters of computers in the form of Objects. Fly is based on the 'Space' model of distributed computing and hence, has an extremely simple and powerful interface that can drastically reduce the complexity in distributed applications and frameworks. The use of Fly makes a raft of systems based on the Spaces architecture practical, including those in financial trading and risk modeling, video and audio processing, as well as bio-informatics applications such as protein folding and structure prediction for drugs development programmes. Fly is a generalised object server which means that it can be bound into a variety of languages used by space clients. Right now you can use Fly from Java, Ruby and Scala, via the language bindings. The Fly server runs natively on a number of operating systems and architectures, including Linux, Solaris, MacOSX and Windows. Hence it offers performance, and most of all scalability, supporting hundreds of clustered machines and cores, on a single server instance. You can use Fly Space server under both non-commercial and commercial licenses. To download a non-commercial version please go to the downloads page.


http://www.gigaspaces.com/ GigaSpaces eXtreme Application Platform (XAP) is a high-end application server with the world's leading in-memory data grid built-in. It is trusted by Fortune 100 companies such as Dow Jones and Societe General as a strategic solution that enhances IT efficiency and agility. XAP offers predictable scalability, guarantees performance under peak demand, and improves hardware utilization by up to 500%. It is the only application server that allows enterprises to build once and run on any hardware in any environment, both on and off the cloud. Used for In-Memory Data Grids, scaling JEE/J2EE, and Cloud PaaS. Commercial, clustered, fault-tolerant, Java, .Net, C++


http://incubator.apache.org/river/RIVER/index.html JavaSpaces is a service specification providing a distributed object exchange and coordination mechanism (which may or may not be persistent) for Java objects. It is used to store the distributed system state and implement distributed algorithms. In a JavaSpace, all communication partners (peers) communicate and coordinate by sharing state. Can be considered as a part of Jini. Obsolete, see Apache River

Apache River

http://incubator.apache.org/river/RIVER/index.html Comprises “Outrigger” - a JavaSpaces service. Welcome to Apache River, a project furthering the development and advancement of Jini technology. Jini is a service oriented architecture that defines a programming model which both exploits and extends Java technology to enable the construction of secure, distributed systems consisting of federations of services and clients. Jini technology can be used to build adaptive network systems that are scalable, evolvable and flexible as typically required in dynamic computing environments.

Blitz JavaSpaces (Pure Java Edition) 2.1

http://www.dancres.org/blitz/ The purpose of the Blitz project is to further the use of JavaSpaces and JINI^TM through the provision of essential resources such as: 1. Pattern library - these patterns should be available in both code and document forms and will provide users with solutions to common (and hopefully more advanced) issues. 2. Openly available implementations of various services, tools and frameworks - developed and refined over time, based on the experience of people using them in anger. 3. Deployment examples - reference information concerning the ways in which JavaSpaces and JINI technologies have been applied in the real world. These will be useful to both architects and administrators. We believe that the best way to achieve the above is in an open, co-operative manner thus Blitz is an OpenSource project. Until recently, SUN's approach to JINI licensing made things difficult, but JINI is now licensed under ALv2. Open-source single site server.


http://www-users.cs.york.ac.uk/~aw/pylinda http://code.google.com/p/pylinda/ PyLinda is a Python implementation of the Linda coordination language. It is supposed to be a very simple implementation of the Linda distributed computing environment. it supports several newly proposed extensions to Linda like garbage collection, multiple tuple spaces, bulk tuple operations, etc. Original homepage appears to be down


http://www.ruby-doc.org/stdlib/libdoc/rinda/rdoc/index.html Tuple Space implementation for Ruby. Rinda builds on Linda/tuplespaces paradigm by offering some interesting additions. In particular, the Rinda implementation uses the case comparison (===) operator to match tuples. This means that tuples may be matched using regular expressions, the classes of their elements, and the element values.


http://gruple.codehaus.org/ A concurrent programming library written in Groovy, providing simple programming models for complex multi-threaded tasks.At its core, Gruple provides an in-process tuplespace abstraction to enable a JavaSpaces-style programming model for communication and coordination among threads. A remote implementation allowing coordination among processes is planned for a future release. Tuplespaces are best represented by the Linda coordination language for parallel computing, and the more recent !JavaSpaces API from Sun's Jini project. Both of these technologies were meant to provide the illusion of a shared memory on top of a message passing system, along with a small set of operations to greatly simplify parallel programming. Now that multi-core processors are becoming the norm, methods of easing parallel programming within a single process are essential to allow programmers to take full advantage of increasing computing power without becoming experts on the intricacies of concurrent programming. The Gruple project (among many others) aims to provide a simple abstraction to allow programmers to coordinate and synchronize threads and processes with ease.


http://linuxtuples.sourceforge.net/ LinuxTuples is an open-source tuple space server, with associated code for writing clients, designed to run on a networked cluster of Linux/Intel boxes. The tuple space is maintained on one machine on the the network. LinuxTuples is written in C, with a client API for Python. It should be fairly easy to write client APIs for other languages, as long as they have a representation for ordered lists of different-typed values. Open-source, clustered, API for C and Python


http://www.semispace.org/semispace/ SemiSpace is a light weight Open Source interpretation of Tuple Space / Object Space based on ideas from JavaSpaces. It can be run as single, stand alone, space on one J2SE 6.0 VM (or greater), or clustered with Terracotta version 3.2.1_2.



http://code.google.com/p/terrastore/ Terrastore is a modern document store which provides advanced scalability and elasticity features without sacrificing consistency.


http://sqlspaces.collide.info/ Open-source (GPL & LGPL), server implementation in Java, clients for Java, C#, Prolog, PHP, Ruby

LIME (Linda in a Mobile Environment)

http://lime.sourceforge.net/ Lime (Linda in a Mobile Environment) is a model and middleware supporting the development of applications that exhibit physical mobility of hosts, logical mobility of agents, or both. Lime adopts a coordination perspective inspired by work on the Linda model. The context for computation, represented in Linda by a globally accessible, persistent tuple space, is refined in Lime to transient sharing of identically-named tuple spaces carried by individual mobile units. Tuple spaces are also extended with a notion of location and programs are given the ability to react to specified states. The resulting model provides a minimalist set of abstractions that facilitate rapid and dependable development of mobile applications.


http://lime.sourceforge.net/ TinyLIME is a middleware for wireless sensor networks (WSN) that departs from the traditional WSN setting where sensor data is collected by a central monitoring station, and enables instead multiple mobile monitoring stations to access the sensors in their proximity and share the collected data through wireless links. This intrinsically context-aware setting is demanded by applications where the sensors are sparse and possibly isolated, and where on-site, location-dependent data collection is required. An extension of LIME, TinyLIME makes sensor data available through a tuple space interface, providing the illusion of shared memory between applications and sensors. Data aggregation capabilities and a power-savvy architecture complete the middleware features.


http://lime.sourceforge.net/ TeenyLIME is a tuple space model and middleware supporting applications where sensing and acting devices themselves drive the network behavior. In other words, the application core is not confined to the powerful sinks, rather it is deployed on the devices embedded within the physical world. Tuple space operations are used both for data collection as well as to effect coordination among sensing and acting devices.


http://lights.sourceforge.net/ LighTS is a Java implementation of the tuple space concept proposed by the Linda model of communication. LighTS essentially provides: a lightweight, local implementation of a Linda tuple space; a set of optional extensions to the traditional Linda model; an adaptation layer that allows programmers to write applications using a given tuple space interface and run them by exploiting different underlying tuple space implementations.


http://slackspaces.geir.tv/ Open-source; main site is down, but project source is downloadable


http://www.almaden.ibm.com/cs/TSpaces/ An implementation by IBM using Java, Project in stalled mode since 2000


http://mobilab.cse.wustl.edu//projects/limone/ A lightweight coordination middleware for wireless ad hoc networks

TCP Linda

http://www.lindaspaces.com/ Commercial. Scientific Computing Associates, Inc. (SCAI) offers a new, updated, and enhanced edition of Linda, the proven industry standard for parallel programming in C and Fortran. TCP Linda supports parallel computations across collections of computers, even of different types, easily and reliably. TCP Linda now is available for Windows. TCP Linda technology is embedded in versions of Gaussian 03, the computational chemistry program based on the methodology for which John Pople won the 1998 Nobel Prize in Chemistry. Other uses by such companies as Lehman Brothers and Amerada Hess have proven the power of Linda's parallel processing capabilities.

Paradise (JParadise)

http://www.lindaspaces.com/ Commercial. Paradise is SCAI's most flexible and powerful distributed computing software environment for C and Java applications. Paradise permits multiple independent applications to share data and coordinate their computations.


http://www.lindaspaces.com/ Commercial and open source. New from SCAI, NetWorkSpaces with Sleigh is a powerful software package that makes it easy to use clusters from within scripting languages like R, Python, and Matlab. NetWorkSpaces uses globally-shared workspaces to develop and run distributed and parallel script applications. SCAI has chosen a dual licensing model to distribute NetWorkSpaces for R and for Python, which are open-source versions of NetWorkSpaces. These open-source versions of NetWorkSpaces are available for download from SourceForge.

Middleware to implement Tuple Spaces

Pyro (PYthon Remote Objects)

http://www.xs4all.nl/~irmen/pyro3/ An advanced and powerful Distributed Object Technology system written entirely in Python


http://code.google.com/p/redis/ A persistent key-value database with built-in net interface written in ANSI-C for Posix systems

Tuple Space in Cloud Computing


Others (to be investigated)

list-tuplespaces.txt · Last modified: 2011/04/20 12:20 by sgudenkauf
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki