next up previous contents
Next: Rule Based Context Awareness Up: Context Awareness Previous: Profiles and Profile Values

Recursive Context Awareness

 Another issue of context awareness is the nature of the set of profile values which are used to describe the environment. A fixed set of basic profile values has the advantage, that the functions for acquiring these parameters can be integrated into context awareness efficiently. The disadvantage is that the application programmer is restricted to the set of profile values offered by the context awareness. This suggests that context awareness must be open to allow the application programmer to define new profile values.

E.g. the implementation group IConfiguration selects the suitable implementation class, depending on the installed default browser. This is an application dependent type of profile value and cannot be provided by default in context awareness. Another problem concerns the way how profile values are retrieved from the host system. After the mobile code is moved to the new host it can only interact over the standardized common interface of the Java API to figure out more about the environment. In the case of the default browser this API is insufficient. The information about the default browser is saved on Windows operating systems in the registry database which is e.g. accessible via Win32 native C functions, but not through the Java API. On Unix systems it is sufficient to check the home directory for configuration files of a specific browser. Therefore context awareness must not only support the new definition of profile values, but also the adaptation of functions for retrieving system information.

The easiest way to overcome this is by folding the establishment of code for the environment determination into the very adaptation mechanism itself and hence to arrive at a recursive mechanism: recursive context awareness . The recursive dependencies must end in axiomatic values which do not need adaptation. In the browser example the information about the default web client must be designed as additional adaptable part of the mobile code.


 
Table: Implementation classes of example  
functionality interface implementation class environment
  DefaultWebClient_UX Unix
[-1.5ex]IDefaultWebClient DefaultWebClient_WINNT_X86 Windows NT, x86

Table [*] shows the implementation classes and their environment profiles which only contain values, operating system and CPU architecture , that can be determined by Java functions, and resolve the recursive dependency of the implementation group IConfiguration. The implementation classes of the implementation group IConfiguration need not only to know the operating system and the CPU architecture, but also the default web browser (s. fig. [*]).


 
Figure: Recursive dependencies 

In order to get the information about the default web browser, it is necessary to perform adaptation, because the way to retrieve this information from the system depends on the operating system and the CPU architecture as explained above. This adaptation is realized by the implementation group IDefaultWebClient, which is a recursive profile value . I.e. a profile value which must perform adaptation in order to execute the generating function. In this case the generating function must create a profile value for the current environment representing the default web browser.

The chain of recursive profile values must end in an axiomatic profile value . An axiomatic profile value has a generating function which is environment independent. In the case of the profile value IDefaultWebClient, which represents an implementation group and a profile value at the same time, the dependency chain is resolved by the axiomatic profile values CPU architecture and operating system , which are the only profile values that are needed by IDefaultWebClient.

In the cases of CPU architecture and operating system the environment independent Java function System.getProperty() is used to resolve the dependencies.

In the following subsections three different approaches will be presented and compared.


next up previous contents
Next: Rule Based Context Awareness Up: Context Awareness Previous: Profiles and Profile Values
Copyright Munich Network Management Team