TSpaces

What's New

Much of the code for TSpaces has been revised for the TSpaces V3 release. Many of the suggestions from our users have been implemented and it has been made more robust and secure.


Revised Transaction and Locking code

Many of the problems in the previous version of Tspaces were due to problems in both the design and implementation of Transactions and Locking. These have been redesigned and made more robust.


XPath for XML document selection

TSpaces' XML support has been augmented with support for XPath as the field matching language. Also, multiple XMLFields per tuple are now supported.
[More Details]


Regular expressions for string matching

Regular expressions can now be used for matching of java.lang.String fields.
[More Details]


Secure Socket Layer

We now support SSL for communication between the client and the server.
[More Details]


TCP Keep Alive

TCP Keep Alive is an optional parameter for both TSpaces clients and servers. If enabled, keep-alive can improve detection of TCP disconnections.
[More Details]


HTTP Server revision

The HTTP support has been rewritten and many new facilities have been added. It is also now possible to restrict the usage of the HTTP Support.
[More Details]


ThreadPool support

The command processing in the Server now uses ThreadPools. This was a performance improvement.




Revised support for Log and Debug records.

The debug cabability has been improved. It is now also possible to write a log file that will contain important events such as client connect/disconnect and access to spaces.


Secure Object Support

When you allow user objects to be sent to the server, then certain methods of those objects will be invoked in the server Virtual Machine. This may be a security problem and/or a reliability problem. We have provided an alternative way of running the TSpaces server where it will run with its own class loader and you can specify what authorizations the client classes will have.

[More Details]


Expired Tuple Notification

The processing of Tuple expiration has been changed so that a client can be notified when a Tuple expires.
[More Details]


New and Deprecated method names

With this release, we have tried to add some consistency to the Tspaces command names. For example, we now have new command names multiRead, multiTake to go with the old multiWrite and the original scan and consumingScan have been deprecated. Likewise we have added new commands readAll, takeAll and countAll to go with the original deleteAll. The xxxxAll commands are consistent in that they are applied to both Tuples and SubclassableTuples.


Incompatible changes.

The 3.1.0 server is not compatible with the current TSpaces 2.1.2 server. If you have an existing server, you will not be able to simply switch to using the new code base with the existing Spaces. We have a do have a Migrate procedure documented in the Install document.

It was our intent to provide compatibility with 2.1.2 clients being able to access a 3.1.0 server. In general they will work but because of some important changes that had to be made in the Server to Client exception handling they are not completely compatible. If a 2.1.2 client connects to a 3.1.0 server and recieves an exception, the client may not be able to correctly process the exception and/or be able to display the cause of the exception.

As mentioned above, compiling your client code with TSpaces 3.1.0 may cause some methods to be flagged as deprecated.

Also, because a Query object results in a Tuple that might return a SubclassableTuple the original signature for commands that accept a Tuple argument was invalid. The fix for this will cause some existing client code to be flagged.
For example: the code

    Tuple query = new Tuple((new IndexQuery(...));
    Tuple result =  ts.take(query); 
is incorrect because the take command can return either a Tuple or a SubclassableTuple. The signature has been fixed and the client code will have to be changed to either:
    Tuple result = (Tuple)ts.take(query);
or 
    SuperTuple result = ts.take(query);

Replication

The emphasis for Enterprise Tspaces (Version 3) was originally support for Replicated Spaces. However, the code for replication is still under development. But there are also many other new features and improvements in this release, so we are distributing this "Alpha" release of Tspaces Version 3 with Replication disabled so that interested users can try out some of the other new features. It will also give you a chance to give us some feedback on problems that you find in the release.