Section 31.1. INTRODUCTION


31.1. INTRODUCTION

Researchers have already recognized that adapting a system's software is important for supporting mobile applications [22, 25]. Faced with variations in bandwidth, location, disparity of available services, or the presence of other mobile devices, applications must adapt their behavior to their execution context. According to a taxonomy by Satyanarayanan [26], possible adaptation strategies range between two extremes. At one end, the laissez faire approach stipulates that an application running on a mobile node is entirely responsible for modifying its behavior in response to external stimuli. For example, if the light level diminishes, a text editor would recognize this change and might increase the font size. At the other end, the transparent adaptation strategy places the entire responsibility for adaptation on the computing environment where the application runs (e.g., the operating system and the network infrastructure).

Within this classification, the notion of application awareness [13, 26] denotes that the computing environment (i) is aware of the applications running within its boundaries and (ii) provides the applications with the necessary adaptations to the local conditions. From an engineering point of view, the question is how to design systems capable of exhibiting application awareness. This chapter attempts to answer this question and describes how to use aspect-orientation [6, 9, 33] to implement application awareness.

An illustrative example of application awareness is a neighborhood that requires encrypted communication within its boundaries. When a mobile computing device enters this space, the environment should be able to adapt the device accordingly. To meet this objective, it should suffice that one node in the system (e.g., a base station associated with the location or one of the peer devices) has the required functionality. This device sends a run-time extension to the new device, which immediately and transparently becomes capable of encrypted communication. Participants should not be required to carry with them all the software needed for encryption. This functionality should be a property of the computing environment and should be delivered on demand.

Using current technology, this level of application awareness is difficult to achieve since typical adaptations are crosscutting concerns. Existing platforms for mobile computing [2, 11] lack the support for dynamically applying crosscutting adaptations. Approaches like configurable middleware platforms [3, 7] open the definition of the infrastructure but have the disadvantage of being tailored to a particular purpose. We present here an approach that provides generic support for adaptation when each mobile device carries with it its own platform for dynamic aspect-oriented programming (AOP) [5, 14, 15, 16, 21].

In this chapter, we demonstrate the feasibility of this approach and its suitability for application awareness. Although the techniques we describe are generic, we assume for the discussion a Java-based environment. We start in Section 31.2 with an application scenario. Based on this scenario, we address in Section 31.3 the problem of providing an AOP platform for a single node. Section 31.4 gives a concrete example of this type of support. Once each node is prepared for application awareness, we can apply adaptations to all nodes of a network. In Section 31.5, we address the problem of ensuring that an entire community of mobile nodes can be adapted correctly. In Section 31.6, we give additional examples of how to use this technology.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net