The EasyLiving Viewpoint on Ubiquity

Steve Shafer, Brian Meyers, and Barry Brumitt

Microsoft Research,

Submitted to Workshop on Infrastructure for Smart Devices, HUC 2000

Claim: Ubiquitous computing not only requires that devices be connected to each other, it also requires that they share a representation of the world with each other and with application programs. Much of the R&D to date in the area of ubiquitous computing has to do with getting devices to connect to each other. At the lowest levels of transport, people are working on wireless networking; at a level above that, people are working on messaging models; and still above this level, people are working on device discovery protocols.

Even if all these efforts are successful, they still will not, in spite of some developers’ claims, lead to ubiquitous computing.

The reason is that all they address is how to have devices exchange information with each other. They do not describe what those devices have to say to each other, nor why they would want to say it.

In the EasyLiving project, we take a different view. We believe that the most fundamental aspect of the infrastructure is not a messaging paradigm, but rather a shared representation of the world, in which the following are modeled:

It is the world model that forms a milieu within which programs can be written to reason explicitly about the relationships of things, adapting their function to the available devices and to the current activities of the people and devices. Without the world model, each application needs to have its own model, tailored to a specific set of devices; and, each device would need to be assigned to a single application.

For example, consider a "smart home" with a home security system, and an automatic garage-door opener. Both require the use of cameras, with some areas of coverage in common. If there is no shared world model, then each of these two applications has to be configured to the specific cameras to be used. Further, since each application will have its own demands on the cameras, each camera will probably require to be dedicated to a single application. Thus, in the area in front of the garage, separate cameras would be needed; in effect, each application is running with its own dedicated devices. This is today’s model, and it is the only model supported by most much work in "ubiquitous computing".

However, in general, we cannot expect every application to require its own hardware. As the hardware becomes more pervasive, there would be a combinatorial explosion in the cost and bandwidth and complexity. Instead, we need to develop "middleware" that can isolate the application programs from the specific hardware, and allow the software to adapt to the available hardware. This requires that the software be able to reason explicitly about the hardware that is available, both in networking terms (how to connect to it) and in geometric terms (what its function is). Furthermore, resource allocation decisions can then be made in a dynamic and explicit manner. This capability for explicit reasoning allows ensembles of software and hardware to be formed in an ad hoc manner, which is the true and elusive requirement for ubiquitous computing.