UCL Logo Networks Research Group Logo

UCL >> Department of Computer Science >> Networks Research Group >> Projects >> MARS
Main Overview People Publications


Emerging ubiquitous computing environments are projected to change the way we interact with each other and our immediate surroundings; whether at home, in the office or dealing with emergencies and disasters, they are posed to take a prominent role. However their appearance has not been halted by the lack of hardware, but rather the complexity of software development and management infrastructures to cope with the dynamism and heterogeneity of both software and interactions envisioned within such environments. The stated aim of the MARS project is the realisation of ``Dynamic, flexible, fault tolerant, service orientated systems" within such environments.


Emerging ubiquitous computing infrastructures are characterised by huge numbers of autonomous, heterogeneous entities, interacting across diffuse organisational boundaries. This poses considerable security and infrastructure challenges for the development and deployment of a consistant and functional ubicomp infrastructure. The MARS project addresses the development of software infrastructure to; (i) support the heterogeneity of devices and services and (ii) be reactive to the dynamism of infrastructure and the interactions within it. To realise these aims, the project has sub-divided to produce a number of distinct areas:

  • MACE: Middleware for Adaptive Component managEment aims to simplify software development and deployment for ubiquitous computing infrastructures.
  • RUBI: Robust resource discovery in a UBIquitous computing environment, aims to provide adaptive and autonomic discovery mechanisms to reduce the cognitive load on naive users, providing unobtrusive operation.
  • POLICY MANAGER: The Policy Manager aims to provide a holistic mechanism for defining and evaluating policy constraints on the principals involved in an interaction and the functional behaviour of the system.
  • ADAM: Autonomic Distributed Authorisation Middleware is a prototype of the kind of systems we envisage in such environments. ADAM is aimed at providing distributed and automatic knowledge acquisition and processing for the management of resource provision.


Middleware founded on logical mobility is often suggested as an enabling tool for ubicomp environments. MACE is aimed at simplifying software development and deployment for ubiquitous computing infrastructures. At the highest level, MACE enforces that components implement a set of three primitives: interfaces, receptacles and connections. These are used to specify the component's functionalities and dependencies and to execute a given component. The architecture enables an application to be constructed from components with varying capabilities that may be distributed in a heterogeneous environment; required functionality can be loaded and bound as and when required.

MACE enables (i) the modularisation of applications, (ii) the distribution and logical mobility of application components, (iii) asynchronous communication, (iv) the separation of policy concerns between application building and runtime configuration, (v) the selective transparency to deployment environment-specific features and above all, (vi) wide applicability to deployment environments.


RUBI incorporates an overarching adaptive process enabling it to change the way in which information is disseminated and retrieved in the network depending on the perceived level of stability of the links between nodes. To date, the RUBI API has been developed as a lightweight MACE component offering a context aware resource discovery to both service providers and users allowing the evaluation of local context against policy in the service selection process.


The ADAM Policy Manager addresses this through enabling a context sensitive and dynamic behaviour management for an application. This is achieved through a hierarchical and hybrid event based architecture; whereby the lower level components are responsible for dynamic aspects; such as environment sensing and reputation assessment or anomaly detection. The top layer consists of a custom rule engine that interprets the rules and policies of the system manager to reflect the state of the environment. i.e. the loading and unloading of components based on the environment context or the translation of the reputation assessment to rights.


ADAM fulfils two purposes: (i) First a proof of concept demonstration of distributed component based application built on the MACE libraries and principles. (ii) A prototype tool for exploring and experimenting with the issues regarding the provision of security and infrastructure management for massively heterogeneous, open and distributed systems aimed at ubiquitous networking environments.