We envision a world in which a wireless, mobile user makes use of whatever computational infrastructure is present in the vicinity, including devices and services such as large screens and printers, all accessed and controlled from one or more portable devices carried by the user. To achieve this long-heralded vision of “ubiquitous computing,” significant progress is required in system architecture, middleware, and application software design to make the environment intuitive to the user, practical from a technical point of view, and able to leverage existing infrastructure in a significant way. The current goal of the Mobile Project is to provide a model for an adaptive infrastructure supporting HTTP-based mobile applications and serivices.
We propose the model starting from the user view and expectations of the interactions with the data, the devices, and the services. The key elements for the model are the user, the data objects he or she interacts with, and the adaptation controls associated with these objects. The user is offered a simple control model, and there is no need to modify the browsers or the web servers. Objects are transferred, transformed, and adapted. This functionality is offered by an adaptation infrastructure (proxy-based), which also dynamically annotates the data objects with adaptation controls and assists in the execution of these controls.
As our prototype shows, the infrastructure to support adaptation is simple and leverages the existing web protocols and infrastructure. The user is the link between versions of an object at various devices. The data objects are copied, transferred, and adapted or transformed, starting from an original or from a more-or-less accurate version generated on the fly. Adaptation of data objects to the environment might be transparent to the application but is, most of the time, manifest as far as the user is concerned, and he or she can further refine the adaptation.
The user specifies his or her wishes by interacting with the controls. These controls refer to objects as abstract entities, that is, what the user sees. Usually, they are added dynamically to HTML pages by adaptation proxies, which also perform adaptive transformation on the data objects, either dynamically (as objects are transferred through them) or upon request. The code can be located at the mobile (in the form of JavaScript added to HTML pages or as Java applets) or at adaptation proxies (which “export” functionality accessible as CGI scripts).
This approach is important for two reasons. First, there is a clear recent trend towards all application software becoming web-based, transforming the web from a passive source of information to an interactive medium with an increasingly rich array of standard services and protocols. Major ERP system vendors like Oracle and PeopleSoft are turning their applications into “pure internet” applications. Second, our thesis is that this standard-based, internet framework for applications in fact provides an opportunity for a mobile, dynamic, and adaptive infrastructure that is qualitatively different from the “classical” view of applications as purpose-written software, linked with common libraries, running on some operating system, communicating via a proprietary client-server protocol. The openness of the internet standards allows easily migration of functionality and “intelligence” into proxies and services without requiring detailed knowledge of application semantics.

The model is at present developped and supportted through iterative prototyping. We are in the early phases of developing his framework and validating it with simple proofs of concept. For example, the adaptation infrastructure transparently replaces a GIF image in a web page with JavaScript controls and a smaller version of the image that uses less bandwidth to transmit. We also provide device and service discovery services at the adaptation infrastructure that give the user access to the local computational environment.
A mobile user or application needs to be able to obtain information tagged with geographic references, so that information relevant to a particular location can be found and made available to the user. The location may be where the user is currently, or it may be about some other location of interest, such as one to be visited in the future. Current web technology relies on simple keyword search to discover, for example, hotels in Halifax or restaurants in Rome.
One compontent of our project investigates how one might explicitly organize web-based information on geographic lines to permit more direct answers to queries of the form "find all web sites in geographic area G that have keywords K1, K2, … Kn." We propose to solve this problem through a hierarchy of "geometry managers" and "kiosks." Geometry managers are responsible for partitioning an area G into smaller areas that are passed recursively to other geometry managers or to the kiosks at the leaves of the tree. Each kiosk is responsible for maintaining a table of URLs and keywords for sites in its own geographic area. For example, a single kiosk might store references to all the (web sites of) stores in a shopping centre, monuments in a neighbourhood, or research labs in a university campus.
We are curently implementing a prototype will show how users can be given easy access to such a "geographic web" and how the hierarchy of geometry managers and kiosks interact to provide answers to users’ questions. This opens the possibility to offer value-added services to the mobile user. (Qiyan Li's master thesis)
One of the most obvious examples of geographic information is a map. There are many rich sources of such information already available on the web. However, making cartographic information available to a mobile user, on a limited portable device, over a slow wireless link poses some unique challenges of feasibility and usability. We attempt to further investigate these issues, in particular if large, information-rich maps can be usefully presented to a mobile user without requiring excessive data transfers and high bandwidth. FOr that we focused on understanding the effects of certain filtering operations applied to maps: reducing the number of information layers provided to the user, filtering out objects too small to be seen, and reducing the fidelity with which map objects are represented. Based on some exploratory data analysis of a number of different maps and usage scenarios, we hope to show that it is feasible to provide some automatic mechanisms allowing the user to navigate around a map to find only the informfation of interest. (Wegdan Abdelsalem's Master Thesis)
There are many useful services that are already deployed widely using standardized protocols designed without the limitations of wireless devices in mind. A client cannot address this problem itself, and modifying widely deployed servers to support new protocols is rarely an option. This problem can be solved by inserting a proxy on a more powerful computing platform in the network between the client and server, to handle some of the complex processing or protocol support on behalf of the client. We have investigated security issues associated with such proxy-based services.
The security of many wireless networking technologies is limited or non-existent. Inserting a proxy between a client and a server exacerbates this situation; a proxy is a third party that has explicitly been given access to any data sent between the client and the server. An untrusted party in this position could tamper with this data, affeccting the behaviour of the client or server. Thus, it is very important to know where the proxy came from and what actions it will perform on the data passing through it. Since the proxy must perform some processing on this data, the proxy will likely need access to much of it. However, there is often information that is private to the client and server that the proxy should not be able to access. Thus, a mechanism is required to allow such information to pass through the proxy securely.
We have designed an architecture in which proxies can be deployed dynamically and securely to perform a useful task, specically, to beneffit users of wireless devices in client-server applications. In such application the security considerations are well-defined and tractable. Our architecture supports traditional proxies as well as experimental and special-purpose proxies for wireless devices. (David Kennedy's Master Thesis)
At a lower level, we investigate the performance of TCP in a mobile environment where Mobile IP handoffs cause momentary datagram losses. We have focused on explaining the phenomena observed, and suggestting how or whether TCP implementations may be enhanced to provide less notable performance degradation when handoffs occur. (Martin McSweeney's Master Thesis)