SQLSpaces is an implementation of the TupleSpaces concept that features many new ideas while keeping the API clear and simple. It is based on top of a relational database, which gives the project its name.
The idea of TupleSpaces goes back to the mid-80s, when they were first introduced by Gelernter and Carriero from Yale University together with the Linda coordination language. The idea is to have a client server architecture with a communication solely based on tuples, i.e. ordered lists of primitive data. The clients can write and take tuples from the server and do not need to know anything about other clients. They just communicate over the server without "knowing" any other client's address. The query mechanisms of a TupleSpaces system are mainly associative, i.e. the queries are defined by creating templates tuples with so-called formal fields, that are interpreted as wildcards.
TupleSpaces are an elegant and easy way of creating distributed software systems that are robust and modular since they are loosely coupled. In addition to the original set of operations (in, out, rd) and to some typical features already known by other TupleSpaces implementations, SQLSpaces furthermore introduces some unique features like multi-language support, versioning, reverse structured naming, wildcard fields and now even support for Android .
SQLSpaces were developed by the Collide Research Group at the University of Duisburg-Essen, Germany . It is distributed under the LGPL (client), respectively AGPL (server).
Have fun with it!
If you want to implement a distributed system and one or more of the following points apply to you, you should consider using SQLSpaces:
Look at our showcases page. Here you will find some videos of example applications as well as example code. You can also look at the most simple Hello World example at the quickstart section.
Since the server is written in Java, you need at least a JRE for the server. First download the server bundle from the download section. After extracting it, you can immediately start the server by executing the startServer.bat (Windows) or startServer.sh (Mac/Linux) file. Now you probably want to access the server from your application. For that you just need two jars in your classpath, the sqlspaces-commons and sqlspaces-client jar. Then go ahead and execute the test class that you can find under quickstart. If you have any problems, check if the documentation here can help you and otherwise feel free to contact us!
Check out who is using SQLSpaces in our testimonials section!