Thursday, July 28, 2005

JavaSpaces and Java EE

I am new to the tuple spaces and I find it quite interesting. The implementation of spaces in the Java world is JavaSpaces. As mentioned in JavaSpaces' (and Jini) goals, it really deviates one's idioms on classic distributed system models. In my part of the world, commonly and pervasively used is RMI over JRMP or IIOP.

JavaSpaces technology aims to build distributed applications and can be used as a coordination tool. Unlike RMI, the JavaSpaces model views a distributed application as a collection of processes that cooperate through the flow of objects in and out of one or more (tuple) spaces. Processes or groups of processes can be producers or consumers or both.

JavaSpaces can provide quality and performing applications. I believe that depending on the nature of the domain problem, either Java EE or JavaSpaces or both can satisfy a client's requirement.

2 comments:

Anonymous said...

javaspaces can be thought of as a distributed microkernel having many inter-related daemons

Anonymous said...

A JavaSpace is distributed memory with a twist. The twist is that the entry in the JavaSpace can contain logic as well as data.

The simple read/take and write semantics leads to confusion sometimes. Many wonder "where's the iterator?" over a set of entries matching a read template. Not the point of a JavaSpace. If you need complex distributed memory build it out of a variety of entries. Example: a linked list would be built from head, tail and object entries.

I don't see how just a JavaSpace(s) will satisfy a client, but it can be part of a solution.

Bill