The Mobile Bristol Application Framework is intended to facilitate the rapid development and deployment of pervasive mobile applications within our emerging infrastructure. The framework reflects an emerging, mixed-reality metaphor for Mobile Bristol applications and consists of three main components:

• An XML based specification language for laying out the virtual world of the application and defining how client devices should respond to events
• A PC-based graphical authoring tool for creating application specifications in this language
• Portable client hardware and software that can download and interpret such specifications

As well as enabling a broad set of applications and technology research, the framework itself addresses a range of related research issues, for example:

• How to provide developers with a simple, helpful but not overly restrictive metaphor for application development in Mobile Bristol
• How to reflect the uncertainties of the real world, such as patchy GPS coverage, in the virtual world presented by the authoring tools
• How to distribute applications so as to facilitate their discovery, exploration and use by roaming users
• How to facilitate media delivery in a world of intermittent connectivity and varying bandwidth through opportunistic and pre-emptive caching
• How to integrate a range of sensors in a variety of configurations
• How to maintain a consistent state view for multiple users, for example through messaging or a shared, distributed data space
• How to integrate services provided outside the Mobile Bristol world

The framework is being developed by researchers from Hewlett-Packard Laboratories and the University of Bristol and will be available to all Mobile Bristol participants. A white paper outlining the framework is available here.

We hope to provide a rapid and convenient development path for researchers, creatives, schoolchildren and others who are interested in exploring new values for context-sensitive applications and services, but may not necessarily have programming skills. In this light, we can identify the following objectives for the framework:

• It should support a diverse set of applications, many of which will not have been identified before the framework appears.
• It should not require developers to commit to a particular application architecture.
• It should allow new applications to be introduced without any need to re-program client devices already released into the Mobile Bristol environment.
• It should allow rapid development of new applications by providing a set of in-built capabilities.
• It should allow (some) applications to be developed without programming expertise.

Our belief is that these objectives can be best met by adopting the separation of application behaviour from the implementation of the client devices illustrated above and demonstrated in an earlier form in Hull.R and Reid.J (2002). Experience Design for Pervasive Computing: Appliance Design 1 (2), May 2002.



Application development frameworks usually derive their power from the adoption of an appropriate metaphor for a certain class of interesting applications. For example, Macromedia Director adopts the metaphor of movie making through concepts such as the stage, cast members, and a timeline. In Mobile Bristol, the application metaphor is still under development but we can already identify some of its main elements:

  • A mapping between the physical world and the digital landscape created by the application that overlays it
  • A set of events in the digital world that are triggered by changes sensed in the physical world
  • The connection of users in the real world to the digital world through devices whose behaviour is determined by scripted responses to those events
  • The use of messages to communicate between user devices and with background services in the virtual world

This mixed reality metaphor is embedded in the specification language, authoring tools and clients in Mobile Bristol, easing the development of applications that broadly correspond to the metaphor at the inevitable cost of some loss of generality. Fine tuning the metaphor and implementing its consequences is a significant research activity of this part of the programme.

The specification language provided in the Mobile Bristol framework is used by the developer to define the key concepts implied in the metaphor outlined above, such as digital regions, devices, event handlers, scripts, and messages. It is derived from XML and is currently being refined and documented. The simplified fragment below illustrates an event handler in a device script that causes an audio file to start playing when the user enters a digital region corresponding to some physical area.

<onEnterRegion name="QueenSquare">
play("welcome.mp3");
</onEnterRegion>

A rich, graphical authoring tool is essential if we are to achieve our objective of enabling non-programmers to develop and deploy applications in Mobile Bristol. Our approach is to develop a integrated suite of editing tools that facilitate the definition of particular parts of the application specification. For example, 2D and 3D views of a layout editor for the virtual world are shown below:


The objective is that a typical user should be able to build most or all of their application through the use of graphical editors, wizards or structured dialogues. However, the authoring tool also provides the ability for power users to directly edit the XML specification to achieve more complicated application behaviour when necessary. In addition to editing, the authoring tool will also include tools for acquiring and managing media objects, and for publishing the resulting application.

Perhaps the main research issue in the development of the authoring tools is to find ways to reflect the uncertainties of the mixed-reality Mobile Bristol world. For example, could we illustrate the intermittent nature of both wireless connectivity and GPS coverage in the real world to a developer by incorporating some representation of likely reception strength in the layout editor?

The purpose of the client hardware strand is to provide a large number of client devices that can be used to support particular application pilots or experiments. A typical client device will consist of a processing unit, such as an iPaq handheld computer, an I2C sensor bus, and one or more attached sensors:

At present we are attempting to provide 50 device kits including an iPaq, bus controller, GPS adapter, GPS unit, cables, and battery unit. From September 2003, we aim to introduce one or more sensors into this set of parts on a quarterly basis.

The client software that we are developing for Mobile Bristol is capable of finding, downloading and interpreting the application specifications developed on our authoring tools. It provides a set of built-in capabilities to detect and respond to changes in the sensed environment, to download, cache, render and capture a variety of media types, and to exchange messages with other clients and with services.