next up previous contents
Next: Continuous Adaptation Up: Dynamic Adaptation Previous: Dynamic Adaptation

LEAD

In [#!AmWa1997!#] a language for dynamically adaptable applications is presented. LEAD is a methodology of the field of dynamic adaptation. The granularity of LEAD is a procedure. LEAD enables applications to select the right implementation according to the current environment from a set of available procedure implementations for various environments. In LEAD such an adaptable procedure is called generic procedure call and an environment specific implementation for this generic procedure call is named method . The static (non-adaptable) part of a program is the base-level which calls generic procedures in the meta-level . LEAD consists of the following parts:
1.
a new programming language, which supports the definition of generic procedure calls and associated methods
2.
a runtime system, which selects the appropriate method for a generic procedure call

If the runtime system in the meta-level receives a generic procedure call from the application, it obtains the information about the current environment from the OS, evaluates the information based on a built-in adaptation strategy and selects the suitable method. The method is sent back to the application and executed on the base-level.

The runtime system can detect changes in the environment and informs the application by asynchronous events. Generic procedure calls are associated with those events and enable the application to react on a changed environment. The environment is described by environmental elements which are an abstraction of the environment. LEAD provides a fixed set of basic environmental elements:

 
Figure: Behavioral reflection and reification  
environmental element property
network represents network connectivity
memory free memory size
display display size
power power source type
battery battery remainder

A function is associated with each environmental element and is executed by the runtime system determining the state of the environmental element. Based on the built-in elements new environmental elements can be constructed on a higher abstraction level.

The definition of a method contains a list of conditions referring to states of environmental elements. The list is evaluated by the runtime system and the result of the evaluation determines the selection of the method.

How the list of conditions is evaluated is defined by the adaptation strategy . The goal of the evaluation is to determine a suitable method for the environment. By default the simple strategy is applied which evaluates the condition list with AND and OR s. If this strategy fails, the priority strategy is applied, which evaluates the conditions according to the priorities associated with them.

The LEAD approach can not fulfill two requirements defined in section [*]. The requirement R1 which interdicts a meta language for dynamic adaptation is violated by LEAD. LEAD presents an extension of Scheme in order to define adaptable procedures. This would involve a new programming language into the development of an application for using adaptation.

The second violation of a requirement is a consequence of the first. The definition of adaptable procedures as string variables in Scheme , prevents that the adaptable methods are syntax-checked during compilation time and runtime errors may occur during their interpretation at runtime. The purpose of R4 is to avoid such a situation.

Due to the listed reasons it is not desirable to use LEAD for dynamic adaptation.


next up previous contents
Next: Continuous Adaptation Up: Dynamic Adaptation Previous: Dynamic Adaptation
Copyright Munich Network Management Team