Ponder2 Overview

Ponder2 comprises a self-contained, stand-alone , general-purpose object management system with message passing between objects. It incorporates an awareness of events and policies and implements a policy execution framework. It has a high-level configuration and control language called PonderTalk and user-extensible managed objects are programmed in Java.

The design and implementation of Ponder2 has been designed to achieve the following goals:

Ponder2 can interact with other software and hardware components and is being used in environments ranging from single devices, to personal area networks, ad-hoc networks and distributed systems. Ponder2 is configured and controlled using PonderTalk, a high-level, object orientated language.

Ponder2 implements a self-managed cell (SMC). Management services interact with each other through asynchronous events propagated through a content-based event bus. Policies provide local closed-loop adaptation, managed objects generate events, policies respond and perform management activities on the same set of managed objects. Everything in Ponder2 is a Managed Object. The basic Ponder2 system comprises Event Types, Policies, Domains and External Managed Objects. It is up to the user to create or reuse Managed Objects for other purposes. A Managed Object, including all those mentioned, has to be loaded dynamically into the SMC from a library, thereby producing a factory managed object (c.f. a Java class). The factory managed object can now be sent messages to create new instances of managed objects; these managed objects are the ones which do the work of the system. This is the same as any object oriented system where the class has to be loaded before instances can be created. Once loaded, Ponder2 makes no distinction between factory managed objects and other managed objects. Both types can be sent messages asking them to do something and they both return replies. In the case of the factory managed objects they return a new instance of their underlying type.


Ponder was a highly successful policy environment used by many in both industry and academia. Yet its design suffered from the some of the same disadvantages as existing policy-based frameworks. Their designs were dependent on centralised infrastructure support such as LDAP directories and CIM repositories. The deployment model was often based on centralised provisioning and decision-making. Therefore they did not offer the means for policy execution components to interact with each other, collaborate or federate into larger structures. Policy specification was seen as an off-line activity, and policy frameworks did not allow them to interact easily with the managed systems. Consequently such frameworks were difficult to install, run, and experiment with. Additionally, they usually did not scale to smaller devices as is needed in pervasive systems.

Ponder2 has already been applied in a number of research projects for health monitoring using body-area networks of sensors and actuators [7], unmanned autonomous vehicles [8] as well as large web-service based infrastructures [9]. The software, documentation and tutorials are available from this site.

Ponder2Overview (last edited 2010-04-26 14:58:51 by KevinTwidle)