Self-adaptive applications are essential to realize the ubiquitous computing vision of enabling users to accomplish their tasks anytime anywhere with minimal distraction in inherently spontaneous and heterogeneous ubiquitous computing environments. Numerous efforts have been made to facilitate the development and execution of self-adaptive applications, but they do not adequately support self-adaptation of ubiquitous computing applications that normally involve much more different types of self-adaptive behaviors than traditional enterprise and Internet applications. Due to lack of support for such diverse types of self-adaptive behaviors, the engineering of self-adaptive ubiquitous computing applications remains still a difficult and tedious task.
In this dissertation, we propose a simple yet flexible approach to building self-adaptive ubiquitous computing applications. The proposed approach consists of a comprehensive self-adaptation model for defining self-adaptive behaviors and a transparent self-adaptation framework for realizing such model. First, we design a utility-function based self-adaptation model that provides a comprehensive way of specifying diverse types of self-adaptive behaviors for ubiquitous computing applications. Second, we build the Autonomic-Binding based Self-Adaptation (ABSA) framework that provides a transparent way of realizing such self-adaptive behaviors. We have validated the flexibility and simplicity of our approach by building self-adaptive ubiquitous computing applications using the proposed model and framework.