posted on 2009-07-01, 00:00authored byJoao Pedro Sousa, David Garlan
Ubiquitous computing poses a number of challenges for software architecture.
One of the most important is the ability to design software systems that accommodate
dynamically-changing resources. Resource variability arises naturally
in a ubiquitous computing setting through user mobility (a user moves
from one computing environment to another), and through the need to exploit
time-varying resources in a given environment (such as wireless bandwidth).
Traditional approaches to handling resource variability in applications attempt
to address the problem by imposing uniformity on the environment. We argue
that those approaches are inadequate, and describe an alternative architectural
framework that is better matched to the needs of ubiquitous computing. A key
feature of the architecture is that user tasks become first class entities. User
proxies, or Auras, use models of user tasks to set up, monitor and adapt computing
environments proactively. The architectural framework has been implemented
and is currently being used as a central component of Project Aura,
a campus-wide ubiquitous computing effort.