Efficient Adaptation Decision Making Algorithms for Context-Aware Applications

Efficient Adaptation Decision Making Algorithms for Context-Aware Applications

Yves Vanrompay, Tim Smits, Yolande Berbers
DOI: 10.4018/978-1-4666-0255-7.ch012
(Individual Chapters)
No Current Special Offers


The current trend toward ubiquitous and autonomic computing leads to the necessity to realize adaptive applications. The environment of applications becomes more heterogeneous and user QoS needs and resource availability vary heavily. To maintain the usability, availability and reliability of these applications, adaptive behavior is needed. In this paper, the authors examine the decision-making phase in realizing adaptive behavior of an application. Algorithms reason about the adaptive application and the current context with the goal of selecting a new application variant that better fits the environment. This reasoning happens in a search space that is very complex and consequently poses a problem toward scalability; even when applications are relatively small. Therefore, the authors present two novel algorithms that handle the complex search space in an intelligent way. In this paper, both algorithms are introduced along with a thorough evaluation of their behavior and scalability.
Chapter Preview

2. Adaptation

The realization of adaptive behavior can be divided into three phases. In the first phase, information about the environment of the system, also named context, is being sensed and interpreted. Adaptive applications use this information to evaluate their fitness with respect to the current context with the goal to optimize the provided Quality of Service for the users. When, at a certain moment, this fitness becomes too low, an adaptation may be performed. Context is discussed in the first subsection. The second phase is called the decision making and is responsible for the reasoning about the adaptive application after a (significant) change in context took place. Our research is concentrated on the decision making phase which is discussed in subsection 2.2. Subsection 2.3 elaborates on the third phase where the running application is adapted to the changed context.

2.1. Context

Context information is information that provides relevant knowledge about the environment of a system. Well know examples are the available memory resources or battery level of a mobile device, the user’s name, age and location or the light level in a room. Many definitions of context are given in related work, but the most frequently used is given by Dey (2001):

Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves.

It follows that context information is very open for interpretation and is relative to the application needs. Chen and Kotz (2000) presented a classification of context information into three types: computing, environmental, and user context. Computing context describes the information about the infrastructure available to the system. Available memory or processing resources, type of network and battery level are common examples. Environmental context covers all the information about the physical environment of the system and its users. The location of a user and the noise or light level in a room are common examples. Finally user context describes the information about the users and their actions. The profile of a user, his mood and agenda are common examples. The sensing of and reasoning with context-information is extremely important for the realization of adaptive behavior. It allows the system to evaluate its fitness and the provided Quality of Service in the current environment. When, at a certain moment, this fitness becomes too low, an adaptation can be required.

Complete Chapter List

Search this Book: