Advanced Java Programming:
JavaSpaces

In object-oriented programs, objects send messages to objects. In distributed systems, components send messages (and sometimes whole components) to components. Such a flow of objects necessitates advanced mechanisms for message passing and communication between various applications. (consider: opportunistic programming or event-driven programming where it is not humans generating the events. Again, messaging is used for communication between software applications or software components. )

JavaSpaces services are tools for building distributed protocols. They are designed to work with applications that can model themselves as flows of objects through one or more servers. Sun's Intro gives links to some interesting pages

"JavaSpaces technology is a simple unified mechanism for dynamic communication, coordination, and sharing of objects between Java technology-based network resources such as clients and servers. In a distributed application, JavaSpaces technology acts as a virtual space between providers and requesters of network resources or objects. This allows participants in a distributed solution to exchange tasks, requests and information in the form of Java technology-based objects. JavaSpaces technology provides developers with the ability to create and store objects with persistence, which allows for process integrity".

A very nice JavaWorld tutorial (Part 1) on JavaSpaces ( local copy of Part 1 -intro) 11/20/1999 - Ease the development of distributed apps with JavaSpaces

JavaSpaces technology is available for downloading at http://www.sun.com/consumer-embedded/cover/jstk-990615.html.

A definition of the JavaSpaces application model and terms at the JavaSpaces Specs page http://java.sun.com/products/jini/2.0/doc/specs/html/jsTOC.html illustrates uses for JavaSpaces as a communication mechanism over multiple sources