next up previous contents
Next: Runtime Overhead Up: Meeting the requirements Previous: Programming Effort

Interaction between Application and Adaptation Mechanism

 The definition of the term dynamic adaptation, is also stated in R5: adaptation during runtime, i.e. without termination of the application. Since the environment is assumed to be static during the runtime of an application on a host, adaptation is only necessary after moving to a new environment. Thus, the events of migration and adaptation are combined in the proposed methodology. Because most architectures of mobile code, e.g.  [#!Voy2000!#], support weak mobility (s. section [*]) only, there are no executing methods, including adaptable methods. Together with dynamic linking, which is supported by Java, the application needs not to be terminated for adaptation, because the new implementation classes are linked dynamically and the method calls are redirected through the adaptors (s. section [*]).

The semantic of class loading is changed for implementation classes concerning the source of the class files. Instead of being loaded from the local file system or the common platform for the mobile code, the implementation classes are loaded from the repository. This implies that the reliability of the repository and especially of the links between the application and the repository have an influence on the runtime behavior of the application. This problem is formulated by R6, which requires minimal influence on the application characteristics. This requirement is partially fulfilled by the proposed methodology through the concept of the proxy repository. The proxy repository minimizes the negative impact of a central repository.

Other kinds of transparency are required by R7 and R8. The initiation of adaptation and the necessary procedure of linking must be transparent to the application. This is provided by the adaptors. The adaptors are responsible for loading the suitable implementation classes and for the linking, for hiding everything to the application, and for simulating an ordinary Java class, which implements functionality for one environment only. Though the adaptors hide the initiation and the linking to the application, the introduction of adaptors into the application prevents a total transparency. The concept of adaptors introduces a high level of transparency but does not provide total transparency offered by virtual classes (proposal 3 in chapter [*]).

The concept of adaptor classes offers adaptable methods in standard Java syntax as required by R9. The semantic transparency is postulated by R10, but depends on the availability of a suitable implementation class for the current environment and the reliability of the repository.


next up previous contents
Next: Runtime Overhead Up: Meeting the requirements Previous: Programming Effort
Copyright Munich Network Management Team