Task-based Adaptation for Ubiquitous Computing

An important domain for autonomic systems in the area of ubiquitous computing: Users are increasingly surrounded by technology that is heterogeneous, pervasive, and variable. In this paper we describe our work in developing self-adapting computing infrastructure that automates the configuration and reconfiguration of such environments. Focusing on the engineering issues of self-adaptation in the presence of heterogeneous platforms, legacy applications, mobile users, and resource variable environments, we describe a new approach based on the following key ideas: (a) Explicit representation of user tasks allows us to determine what service qualities are required of a given configuration: (b) Decoupling task and preference specifications from the lower level mechanisms that carry out those preferences provides a clean engineering separation of concerns between what is needed and how it is carried out: and (c) Efficient algorithms allow us to calculate in real time near-optimal resource allocations and reallocations for a given task.