The core is the non-adaptable part of the mobile code. Note that its existence is a necessary boundary condition, since adaptation has to start from a well-defined state. The non-adaptable part must move to every host on which the mobile code will run and form the minimal footprint of executable code which must be transfered over the network. The adaptable parts are implementations of equivalent tasks, but suitable for different environments. The core and the adaptable parts are designed by the application programmer (shaded in grey in fig. ).
An adaptation framework which is application independent provides a mechanism to determine the appropriate adaptable parts for the current environment, referred as context awareness , to load the adaptable parts over the network from a repository and to link the parts into the core, denoted as reconfiguration , which is the contents of the following section.