UNIVERSITY OF CAMBRIDGE COMPUTER LABORATORY
HOME AREA NETWORKS GROUP
Architecture and Authoring tools for Home Devices and Sensor/Actuator systems
AutoHAN is an umbrella project investigating automatic control of the home network. The results may be applied to other domains, including sensor/actuator networks and safety-critical control systems.
AutoHAN concerns the creation of applications, automatic proof checking for feature interaction and automatic binding and execution of applications in the target environment.
the AutoHAN project is split into a core systems part, lead by David Greaves and a user interface and application creation part, lead by Alan Blackwell.
From 2003 to 2006, the main actives in AutoHAN were undertaken under the Cambridge/MIT initiative Pebbles/Goals Project.
A full implementation of an AutoHAN architecture was recently completed using the CMI Pebbles and the Pushlogic scripting language. However, recent thoughts are that instead of constraining the source language, we should define a series of profiles that span difficulty of automatic checking for feature interaction and classify all executable code according to profile, rather than according to source language.
The main current work is the definition of the domain manager. This is now using a database held in DL form within the Protege ontology manager and is lead by Atif Alvi. In addition, the code reflection facilities are being extended to use IL bytecode (as used in Microsoft .net) instead of being restricted to Pushlogic object code.
AutoHan is a UbiComp project using a component architecture. The reference model consists, at the lowest level, of three types of entity: infrastructure, pebble and application code. These are aggregated into devices and/or systems that act as containers, providing modular management, licensing, physical delivery, revision control and other engineering needs. As well as defining a component architecture, AutoHAN supports scripting and authoring environments and automated consistency checking with proof engines.
The lowest-level components are:
All components carry meta-info, using XML. This describes the component. All components have the ability to register themselves in the registery component so that the description becomes available.
An AutoHAN device or service is a collection of components grouped together. There is no semantic difference, but the term `device' is mainly used for physical entities whereas the term `service' is mainly used for a software-only collection. A device or service also carries XML meta-info. This lists the components making up the device or service and also lists restrictions on how they may be instantiated and used. For instance, a physical hardware device cannot be dynamically instantiated on a server.
The AutoHAN group work from 1995 to 2001 is archived here LINK. The most challenging ideas that we have investigated since then are the feature interaction detection and the incorporation of every level into a single ontology, with overlapping domains instead of disjoint domains.