A Programming Model for Mobile, Context-Aware Applications
Gregory Biegel · 2005
Continuing advances in hardware miniaturisation and networking technologies have contributed to the widespread deployment of a range of mobile computing devices. Ad hoc communication between mobile devices enables the deployment of networks anywhere, without the need for pre-installed infrastructure. In contrast to the traditional stationary, desktop-bound model of computing, mobile computing applications experience frequent changes in location and execution environment, i.e., their context. At the same time, advances in miniaturization, and cost-effective fabrication of sensor technology, have led to the emergence of small, low-cost sensors, enabling applications to measure a host of environmental parameters. These advances have led to the emergence of a new class of application which may dynamically alter their behaviour based on the execution environment, as perceived through sensor input, in a computing paradigm known as context-aware computing. In addition to the complexity introduced by the dynamic nature of ad hoc networks, context-awareness raises a further set of challenges related to the acquisition and fusion of sensor data and the inference of appropriate behaviours. Existing mobile context-aware applications tend to be built in an application-specific manner and there is a lack of a generic, and commonly-accepted, programming model that may be applied across the domain. As a result, such applications remain difficult to build and deploy, with developers often having to deal with low-level issues not directly related to application development. Whilst a small number of approaches to supporting the development of such applications deal with the abstraction of low-level sensor data, there remains no generic programming model providing systematic support to the developer for the capture, representation, and use of context data.