|Tailoring Configuration to User's Tasks under Uncertainty|
PhD thesis, Carnegie Mellon University, April 2008. Technical Report CMU-CS-08-121.
Online links: Plain Text
|The expansion of computing infrastructure has opened the possibility of a world in which users
can compute everywhere. Despite such advances, computing resources are often scarce and
changing, limiting a user�s ability to take advantage of the applications and devices, and requiring
changes to the application runtime settings.
Currently, the burden of managing the computing environment (devices, applications, and resources)
falls on the user. A user must manually start applications and adjust their settings according
to the available resources. Assigning such chores of configuration to the user has a
number of disadvantages. First, it consumes user�s precious cognitive resources. Second, effectively
managing the environment requires skills that a typical user might not have. Third, even
with adequate low-level expertise, managing the environment optimally (or even adequately) can
Ideally, the computing needs of a user are seamlessly matched with the capabilities of the environment:
devices, applications, and available resources. The user should enjoy the best possible
application quality, without worrying about managing the low-level computing mechanisms.
In this dissertation, we describe a novel approach that substantially automates the control of the
configuration of the environment for a user�s task: finding and starting applications, configuring
their runtime settings, and allocating possibly limited resources. Our approach simultaneously
satisfies two important requirements: utility and practicality. Utility ensures that configuration
decisions take into account user�s preferences for specific applications and quality of service.
Practicality ensures that configuration has low runtime overhead in terms of the latency of configuration
decisions and its usage of resources.
First, we model configuration analytically as a problem of optimizing user�s utility based on
three inputs: (1) user�s preferences, (2) application capability, and (3) resource availability.
Formally, automating the control of the configuration requires solving an optimization problem,
and then using the optimization solution to control the environment.
Next, we design a software infrastructure that is based on the analytical model. The infrastructure
implements efficient algorithms to solve the problem of configuration, eliminating the need
for manual configuration. We validate our approach using experiments and simulation, demonstrating
that the infrastructure satisfies the requirements of utility and practicality while substantially