Steve Shafer, Brian Meyers, and Barry Brumitt
Microsoft Research, http://www.research.microsoft.com
Submitted to Workshop on Infrastructure for Smart Devices, HUC 2000
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:
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.