My PhD thesis
spanned the areas of Pervasive or Ubiquitous Computing, Autonomic Computing,
the Semantic Web, Distributed Systems and Middleware. It focused on trying
to make large-scale pervasive computing environments easier to program
and manage, and smarter in their interaction with humans. Other areas
where I did work are context-aware computing, artificial intelligence,
security, workflows, human-computer interfaces, social networks and ontologies.
I
was a research assistant under Prof Roy Campbell in the Gaia
project, which aims to develop a middleware for Active Spaces. Active
Spaces are which are
physical spaces that have been enriched with devices and services to become
interactive, pervasive computing environments. Such environments can be
seen as analogous to traditional computing systems; just as a computer
is viewed as one object, composed of input/output devices, resources and
peripherals, so is an Active Space. However, the heterogeneity, mobility
and sheer number of devices makes the system vastly more complex. Applications
may have the choice of a number of input devices such as location sensing
system, mouse, pen, or finger and output devices, such as an everywhere
display, monitor, PDA screen, wall-mounted display, speakers, or phone.
I have worked on a variety of pervasive computing issues including modeling,
sensing, reasoning about and using context information, ontologies, security
issues, location-awareness, mobility, metrics and wearable computing.
The title and abstract of my
PhD dissertation were:
Dissertation
Title :
A Framework for Autonomic Pervasive Computing
Dissertation
Abstract :
The complexity of developing, managing and using pervasive computing environments
has become a significant challenge. These environments feature large distributed
systems, contain a variety of inter-dependent, heterogeneous services
and devices, and are highly dynamic and fault-prone. My thesis focuses
on building a framework for autonomic pervasive computing, that enables
these environments to be self-configuring, self-repairing, and adaptive,
and require minimal user intervention. The framework allows developers
and administrators to program and configure pervasive computing environments
in terms of high-level, parameterized tasks. The values of task parameters
may be specified by the developer or administrator, provided by the end-user
or automatically inferred by the framework based on the current state
of the environment, context-sensitive policies, and learned user preferences.
The framework uses a novel semantic discovery process to infer the best
values of parameters. The autonomic framework frees developers, administrators
and end-users from the burden of choosing myriad task parameter values,
although it does allow them to override system choices and manually configure
how the task is to be performed. The framework also uses AI planning to
compose actions and tasks to achieve high-level goals. It can recover
from failures of one or more actions by re-planning. Experiments have
shown that this framework does make it easier to program, configure and
use our prototype environment.