Design and evaluation of adaptive software for mobile computing systems
Authors: Philip K. Mckinley
Venue:  (2006)

Increasingly, software must adapt to a changing environment during execution. One of the key driving forces behind the need for adaptation is the advent of the "Mobile Internet," where software on portable computing devices must adapt to several, potentially conflicting, concerns, including quality of service, security, and energy consumption. Moreover, mobile systems often comprise multiple heterogeneous applications, each of which might support different types of adaptation. Such situations motivate the need for comprehensive approaches to designing adaptive mobile systems, in which multiple software components, possibly at different system layers, collaborate to achieve overall system goals. In this dissertation, we investigate software adaptation for mobile computing. Composing a single adaptive system from existing adaptive/non-adaptive applications requires an adaptation infrastructure to orchestrate the behavior of adaptive systems and guide the collaboration among system participating applications. We propose a new concept called expressive orchestration , which refers to the techniques that enable system designers to specify the system requirements, generate infrastructure for interaction among participating applications, and codify logic for the run-time management of the system. This dissertation addresses three aspects of design and evaluation of adaptive software for mobile computing systems. First, we evaluate the tradeoffs that exist among concerns (such as energy consumption and quality of service) in mobile devices. Understanding these tradeoffs is a precursor to designing adaptive systems. This investigation, which includes experimentation on a mobile computing testbed, has produced several results that are directly applied to other aspects of this research. Second, we investigate the use of message-based communication to facilitate the integration and collaboration of adaptive/non-adaptive applications. As a proof of concept, we develop COCA (COmposing Collaborative Adaptation), an infrastructure for collaborative adaptation in composite systems. COCA provides a set of development utilities to aid system designers in specifying system configuration and adaptation logic, as well as automatically generating the corresponding code. In addition, COCA provides a set of run-time utilities to enforce the collaborative adaptation execution. The methods used in COCA are general and can be extended to other distributed computing models that require collaborative adaptation. Third, we propose ASSL (Autonomic Service Specification Language), an XML-based approach to specifying and realizing adaptation in distributed service-oriented systems. Focusing on system integration, configuration, and run-time interaction management, ASSL is an extension of COCA that provides a unified platform to describe and support interactions among different parties in the development and execution of autonomic systems. Combined, these contributions provide the research and development communities with a better understanding of the opportunities for adaptation in mobile system and the means to realize such systems from existing, non-adaptive software components.