Much of the complexities of maintaining modern computing systems are becoming the responsibility of the system itself. Systems, may have a notion of how they behave and, in a similar way to traditional control systems, maintain functional parameters so that the non-functional requirements of the system remain; even when the environment in which the system lives has changed. However, we can take this further and make this self-adaptive system more Autonomic, in the sense that it now observes how well it is maintaining itself and perhaps learns how to change its parameters to work more efficiently or faster etc.
There are many ways one can tackle the issues above. Our approach has been to continue the highly-decentralised theme, whereby the adaptivity control and autonomic function is as distributed as possible so that the system is agile and can scale. Further, as some of our systems (e.g. sensors) consist of low resourced devices, we have a co-aim to make this as lightweight as possible. As a result we have been examining notions of engineered emergence, borrowing from fire-flies (PCOs) and ants etc. showing that we can out-perform more ridged approaches significantly. We have over fifteen years of work in this area and so only list some highlights or quite interesting work below:
Engineered Emergence for Wireless Sensor Networks (2008-2011): EPSRC funded work with Mike Breza examining bio-inspired distributed solutions to managing WSN. A protocol managed the aggregates of different, non-related protocols which often fail to function simultaneously using self-organising queue length scheduling leading to a more agile management scheme based on combining Fire-fly (PCO) and Gossip for synchronization and update dissemination, namely FiGO.
iPOJO- Context Aware Autonomic Home Control (2009): short project with Philip Lalanda and Johann Bourcier, sponsored by University of Grenoble, examining state-flapping and dynamic reconfiguration.
ANS Autonomic Networked Systems (2003-2005): DTI funded hardware and software project that brings self-adaptation to wireless sensor networks. The Beastiesensor node and the Tesserae dynamic reconfiguration programming model resulted from this project. This system was used in the smart aware buildings project BOP! with Arup and BT.
GO! No-Kernel OS (1998-2001): EPSRC funded project with Greg Law researching the design of a fully component-based OS that ran natively on IA32 (Intel 80386+) based PCs. Go! uses a novel protection mechanism which allows increased decomposition of the OS, and achieved unrivaled performance at the time. This work complemented Magnet (below) aiming to build more dynamic operating systems architectures.
Patia Adaptive Distributed Web Management System (1999-2001): explored adaptive data placement and request scheduling for self-adaptive web servers. This work was funded by EPSRC with Douglas Adam’s The Digital Village and Sun Microsystems.
Magnet Dynamic Resource Management Architecture (1999): with Patty Kostkova, exploring dynamic resource allocation via the use of the tuplespace paradigm.
Kendra Adaptive Content Delivery System (1996-1999): mixed smart cashing and adaptive data streaming research. This project was funded by EPSRC and partnered with Daniel Harries from Cerberus Sound & Vision, and lead to the formation of the Kendra Initiative.