Context Aware Application Development

This project was undertaken as part of my final year dissertation and provided a working framework for the creation of context aware applications. At present our software is static in design with it having no awareness of the people, surroundings and scenario is which it is being used. The platform also known as Nodal therefore gathers and aggregates data regarding the movement of mobile phones within a specified area allowing developers to access this information centrally through an API. This allows the running application to know where it is being used and what is within its vicinity. The whole project has been created with develops in mind providing full application distribution, tracking, debugging and push messaging through a developer content management system. (CMS)

The system operates by recording the presence of Bluetooth devices within a physical environment storing each occurrence which in turn allows various techniques such as reality mining to be undertaken. Located around the physical environment are distributed nodes that scan and disseminate content to Bluetooth devices within range. As a device is discovered the event is sent to the backend system where it can immediately be queried through the API. Within the system users can either register with the platform giving a more personalised experience or can remain anonymous throughout. For example once registered it is possible to send messages between users without relying on the existing cellular network. As a registered user you can compose messages which are then pushed centrally via the Bluetooth infrastructure where the backend then redistributes the content when the recipient is seen within the physical environment. By being registered various fail safe options are available allowing data to be pushed on via SMS and email if the user is not contactable over a period of time.

As the system requires physical nodes to be positioned around the environment visual display nodes have also been created. These allow developers to create interactive web based content that can react to the changing environment and be displayed at the nodes location. The displayed content is once again controlled through the central developer CMS. As the API produces both validated XML and JSON the information can be used within almost any programming environment. By making clearly defined calls to the system it is possible to to determine if users are within the building, calculate their average time spent in various zones, awake remote applications and push content to devices amongst many other functions.

Using this platform various example applications were created including a thermal interface and mobile application as well as an interactive door display and location checker. The thermal band was used to alert the wearer when a specified person arrives for a meeting removing the need for them to remain in their office. This was possible by creating a reoccurring CRON job which queries the API against the wearers calendar remotely starting the mobile application if the person moves from being outside the system to being located within it.

The visual applications included a door display which indicated if a specified person was within the room allowing messages to be left when they were absent. As the display was aware of who was physically in front of it the user did not need to explicitly state details such as who they were and the current time. A simple work tracker was also created indicating if a user was working if they were located within one of the university study rooms. This can be viewed here.

Example poster providing overview of the system can be found here

The Content Management System & Developer Registration is located at :

Password: password

Completion Status

Is It Done

More Info

Nodal Developer Registration, Is Rob Working,
Poster System Overview, API Documentation

Developer Content Management System

Visual Display& System Overview

Thermal Band