Livespaces
Livespace Bus

Overview

The Livespace bus provides a distributed space where information models can be published, similar in concept to a tuple space. The Livespace Bus extends the tuple space idea to allow complex data models to be published, with a similar level of expressivity to an XML document.

Services publish data models known as entities which represent their state, clients query and subscribe to them. Changes to the entities may be made at either the client or server end and are replicated out to all subscribers.

A key difference between the Livespace Bus and many other distributed systems is that it makes very little distinction between the concept of client and server. The only real conceptual difference between a client and a server is a server "owns" the entities it contains: a client may modify and create entities owned by a server, the server controls access, persistence, etc. All entity manipulations are exactly the same regardless of whether the entity is on a server or a replica on a client.

Services may be used to represent devices in the room such as lights, projectors, video switches, etc. The screenshot below shows the Livespace Browser application displaying details for a projector device. The powerOn property can be toggled to control whether the projector is on or off.

Livespace browser screenshot

Services do not have to be device controllers. For example, the shared clipboard service publishes a single entity with a text attribute that is the contents of the shared clipboard. Other services publish complex information such preconfigured room setups, automatic demonstrations (the Meta Applications system) and room layout schematics.

Under the hood, the Livespace Bus uses the Elvin event notification system.

Relation To Other Technologies

A number of new technologies take a similar distributed service model approach. These include:

All these systems acknowledge the limitations of of point-to-point RPC + static data models (e.g. SOAP). Complex service provision benefits from a looser, model-centric architecture

More Information

See the Livespace Overview page for links to more information on the Livespace technical architecture. The Developer Training Pack has information for developing for Livespaces.

category: Documentation, Public