First Contact: Is There Life in JavaSpace?by Robert Flenner
I often went to bed as a child wondering about life in outer space. Was there other life out there, or are we all alone? The notion of "first contact" was always exciting, stimulating, and left you with a feeling that was difficult to describe. I could not have imagined that software engineering would lead me to a space where first contact is a reality -- space where encounters with aliens (other software engineers) can occur anywhere in the universe.
Jini and JavaSpaces hold great promise in allowing information workers to make contact and collaborate on the edge of emerging technologies. These technologies enable multidimensional information exchange and intuitive, ad hoc work group formation.
Jini network technology provides a network-centric view to services and service delivery. Services have a broad definition from applications to mobile appliances and anything in between on the network. You can make first contact with these services without prior knowledge of where they reside. Services take on a life of their own in Jini networks. The goal is to minimize the amount of human intervention and administration required.
JavaSpaces is an example service that runs on the Jini network. JavaSpaces is closely tied to the Jini architecture; in fact it is one of the few services that comes bundled with Jini. JavaSpaces was heavily influenced by the concept of a tuple space that was first described in 1982 in a programming language called Linda. The basic idea is that you can have many active programs distributed over physically dispersed machines, unaware of each other's existence, and yet still able to communicate. They communicate to each other by releasing data (a tuple) into tuple space. Programs read, write, and take tuples (entries) from tuple space that are of interest to them.
This distributed network of loosely coupled collaborating processes is an ideal foundation for the global competitive markets of the twenty-first century. Progressive corporations are investing in technologies to help information workers become more effective in the capture, analysis, and dissemination of information.
This series of articles will explain Jini and JavaSpaces in the context of promoting and creating a virtual work space -- a work space where project team members can assemble to discuss and exchange information without the physical constraints of the world around them. Let's start our journey in Jini and JavaSpaces to the fictitious land of JavaOffice Space (JOS).
Experiencing JavaOffice Space
Meet Elliot Franks, a software engineer with Global Business Intelligence (GBI). Elliot has been working on a new software design of Tracker for GBI. Tracker is agent-based software that tries to anticipate human interaction with software programs and assists with user navigation. The company wants to integrate Tracker into existing systems on-the-fly and, thus, reduce the time it currently takes to analyze human-to-system patterns of behavior. Elliot is a superior software designer, but this project has stretched his capabilities in design and cognitive science.
This morning Elliot has scheduled a meeting with Ian Gestal a noted researcher and engineer in pattern recognition strategies. Both men have worked together on previous projects and have mutual admiration and respect for each other.
As time draws near Elliot retreats to his office. His office this morning is cast in a blue amber light emanating from the floor of the room. On the far wall is a black doorway shaped opening. Above the opening is a neon light that radiates "Destination: Hong Kong". Yesterday Elliot spent time talking to the research group in Hong Kong and had not changed the transporter destination since then. This morning Elliot will be "space traveling" to London to discuss the Tracker project.
Elliot has looked forward to the meeting with Ian. It is always fascinating to experience the work space that Ian delivers to every meeting and encounter. From the moment you meet Ian and the connection occurs, your creative capabilities are stretched in new dimensions. The workspace that Ian delivers has proven advantageous in differentiating Ian's consultations from those of the masses and the herds of consultants on the channels.
Elliot casually adjusts his chair as he prepares for transportation. On his lap sits a panel which displays the world. e zooms into London and activates the transportation process. The neon light over the dark doorway changes to "Destination: London" and a momentary pause occurs as the instrumentation adjusts to the new location; the doorway lightens and Ian enters the room.
Ian, spinning a ball projecting bright lights, smiles coyly and quips about the thread traffic in the channel. "Almost 60 miles just to get here today", he says, "the commute was miserable this morning".
Elliot and Ian spend the next hour discussing the project goals and objectives of Tracker. Ian suggests some alternative design considerations and also points Elliot to a research team in Germany doing work that may be applicable to his project. During the course of the conversation Ian pulls up numerous references and plugs into a number of similar initiatives. In addition Ian agrees to multicast their conversation to an AI group developing human expectations based software.
Elliot thanks Ian and agrees to share any information that would be of value to their projects. They agree their software-agents will be in contact to schedule and coordinate future meetings. The doorway grows dark as Ian leaves the space. Elliot returns to his work. The spinning ball slowly dims at the entry to the gateway.
Analysis of our virtual work space
Elliot and Ian just experienced might seem far-fetched and a bit on the sci-fi edge. However most of the communication techniques are available today. While the scale and the illusion of the encounter may be exaggerated, the relevance of the content and the exchange is not. Let's look at the interaction from a technical perspective. More specifically how can Jini and JavaSpaces begin to lead us on a journey of collaboration in the information "space" age.
Discovery and The London Channel
Of course Elliot and Ian never physically left their offices. Their transportation was strictly digital. The channel that was referenced was a connection established between two well-known end points. The meeting required services to be invoked to facilitate and coordinate the exchange of information. Jini and JavaSpaces are ideal candidate technologies for dynamic exchange of content. Jini provides the infrastructure and JavaSpaces provides the content framework for creating, updating, and deleting data.