A Programming Model for Mobile Context-Aware Applications - Biegel, Gregory (University of Dublin, Trinity College. Department of Computer Science, 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.

This thesis describes a model for the development of context-aware applications in mobile ad hoc environments known as the sentient object model. A domain-specific programming model is developed, based on a set of high-level abstractions defined within the sentient object model, that provides a systematic approach to developing context-aware applications in mobile, ad hoc environments. The programming model supports the developer in the areas of sensor and actuator abstraction, sensor fusion and intelligent inference for applications operating in a mobile ad hoc communication environment. In addition, this thesis describes a high-level graphical programming tool based on the sentient object model that exposes the programming model in an intuitive graphical manner, significantly reducing the need for the developer to write low-level syntax and aiding the rapid development of applications, through its code-generation ability. The main contribution of this thesis is the provision of a domain-specific programming model that aids in the development of context-aware applications, in mobile ad hoc environments. The programming model assists in the realisation of a vision of pervasive computing by easing the development of mobile, context-aware applications and making application development accessible to a wider range of developers. We validate our contribution through practical application of the programming model to representative context-aware applications. These applications illustrate how the sentient object model is applied in practice and validate the contribution of the model in easing the complexity of developing mobile, context-aware applications.
Keywords: Computer Science