and Infrastructure for Mobile Multimedia Applications
EPSRC GR/L64140 & GR/L64157
Alan Dix, 21/2/2002
Infrastructure Support Interactive Mobile Applications
Mobile environments are characterized by frequent and sudden changes in both context and resource availability. While existing systems have focused on supporting adaptation to changes in resource constraints (e.g. ) or contextual-awareness (e.g ), in this project we focused on obtaining insights into the design and implementation of an infrastructure platform that would handle both types of variation with equal ease. Our analysis of existing systems revealed that they have been primarily designed to support an extremely limited set of triggers, reflecting changes in either resource availability (typically network QoS) or context (typically location). However, research carried out as part of this project has demonstrated that as the number of triggers increases there is a clear need for a common platform to allow the resolution of conflicts and to perform system-wide behavioral optimization .
As an example, consider the case of two or more network-centric adaptive applications running on a single mobile end-system. If the available energy drops below a certain level the system may generate an event in the hope that the applications will respond by decreasing their power consumption. If we assume that only one of the applications is energy aware and responds to this trigger by reducing its demands on the network there is a risk that the second application will perceive this as an increase in available network bandwidth and increase its use of the network effectively canceling out the benefits accrued by the first applications adaptation. This simple example demonstrates the problems that can arise if multiple system components are capable of adapting but are uncoordinated. In  we present a comprehensive set of scenarios that illustrate this point in more detail.
The key design problem that we identified was a lack of mechanisms by which application level adaptation can be coordinated. In other words, existing platforms support application-level adaptation by providing information to applications and allowing them to adapt as they see fit. In an environment with many triggers and many applications this approach simply does not scale. This new insight led to the specification of a series of architectural requirements for next generation support platforms for advanced mobile applications. These requirements are reported in  and summarized below:
(i) Support for an extensible set of adaptation attributes.
(ii) Support for the control and coordination of adaptive applications by infrastructure components.
(iii) Support for system wide (rather than application specific) adaptation policies.
(iv) Support for user awareness and interaction.
This set of requirements represented a significant advance in our understanding of the role the infrastructure should play in supporting advanced mobile applications. In particular, it is now clear that a three-way partnership is required between the infrastructure, applications that are capable of adaptation and the user that must specify adaptation polices, monitor progress and resolve conflicts.
Figure 2: Architecture diagram
To explore these ideas further we developed a prototype platform designed to meet the above requirements. Within this platform mechanisms and policies are decoupled and, furthermore, mechanisms can be exposed and externalised in order to enable control by independent entities. Figure 2 shows the relationship between the main components of the architecture of our platform. The basic functionality of the architecture is two-fold. Firstly, it provides a repository for representations of application functionality and, secondly, it coordinates the behaviour of applications according to the user defined policies. The platform allows applications and tools monitoring changes in the systems environment to provide a description of their functionality including information that they can offer and actions that they can perform. This description of an applications capabilities is based heavily on the UPnP service description model and includes an XML description of the applications adaptation methods and a list of externally visible state variables. The descriptions are stored in the platform's registry. The adaptation control component is responsible for making decisions about the appropriate adaptive actions that applications should take and is driven by policies defined by the user. These policies are specified using a policy language derived from the Event Calculus logic programming formalism (obviously we are not expecting users to learn this language directly we would anticipate most users exploiting predefined policies or using higher-level tools to create or tailor policies). This degree of formalism is required in our platform since we need to be able to coordinate the actions specified by different policies and eventually identify and resolve conflicts between adaptation policies. Full details of our policy language can be found in . The active participation of the user in the adaptation process is achieved by the user awareness module. This module notifies the user of the adaptive decisions being made by the platform, and allows the dynamic resolution of potential conflicts. Drawing on the results of our work on user interface issues the notification module can support various intrusion levels when interacting with the user.
A prototype version of the platform was implemented in Microsoft Visual C++ and provides a full implementation of the registry and partial implementation of the adaptation control - the policy evaluation mechanism is capable of accepting policies specified according to the event calculus policy language and triggering applications in response to changes in resource availability or context.