We propose to use the conventional extension of the client-server model to a client-proxy-server model, demonstrated in the diagram above. The mobile devices execute the client, which provides the user interface and some part of the application logic. The proxy is a component of the application that executes in the wired network to support the client. One possible location for the proxy is the base station, the machine in the wired network that provides the radio interface. Depending on the exact purpose of the proxy, other locations are imaginable as well. As the user moves, the proxy may also move to remain on the communication path from the mobile device to the fixed network. Logically, the proxy hides the "mobile" client from the server, who thinks it communicates with a standard client (i.e., a client that executes on a powerful desktop directly connected to the wired network). The application logic of the "standard client" is split between the mobile client and the proxy to adapt to the dynamic wireless environment and to address the limitations of the portable device. The research carried out in our group will develop the components of a flexible and general-purpose runtime infrastructure to facilitate the rapid development and deployment of adaptive mobile applications. We will evaluate our infrastructure by implementing a number of wireless applications and by building simulation tools to validate the scalability of our architecture when considering metropolitan and provincial cellular systemsg.

Mobile computing is a relatively new field. While the challenges arising from mobility and the limitations of the portable devices are relatively well understood, there is no consensus yet as to what should be done to address these challenges. A comprehensive solution has to address many different aspects, such as the issue of dynamically changing bandwidth, the power, computational, and other limitations of the portable devices, the varying availability of services in different environments, etc. A number of papers propose specific solutions to individual problems and evaluate them in a rather small-scale testbed. Our work addresses many different problems, and the interactions among them. For example, a client might be willing to increase the bandwidth requirements by shifting more computation to the proxy, conserving battery power. Furthermore, we will develop and evaluate our solutions with respect to a non-trivial provincial cellular system.