Ponder2 was a general-purpose, distributed object management system with a Domain Service Obligation Policy Interpreter, Command Interpreter and Authorisation Enforcement. The Domain Service provided an hierarchical structure for managing objects. The Obligation Policy Interpreter handled Event, Condition, Action rules (ECA). The Command Interpreter accepted a set of commands, compiled from a high-level language called PonderTalk, via a number of communications interfaces that could perform invocations on a ManagedObject registered in the Domain Service. The Authorisation Enforcement catered for both positive and negative authorisation policies, provided the ability to specify fine grained authorisations for every object and implemented domain nesting algorithms for conflict resolution.

Ponder was the name of the policy specification language previously developed at Imperial College over a number of years. A set of tools and services were developed for the specification, analysis and enforcement of these policies. Thus, the name Ponder became associated not only with the language but with the entire toolkit. Ponder2 was a significant re-design and re-implementation of Ponder. Although some of the underlying concepts bear similarity to the basic constructs of Ponder the entire framework has been re-done. In contrast to the previous version, which was designed for general network and systems management, Ponder2 was designed as an entirely extensible framework that could be used at different levels of scale from small, embedded devices to complex services and Virtual Organisations.

Documents and Links

Please note that Ponder2 has not been updated since 2011. The following are provided for historical interest only.


Ponder2 wiki pages (pdf)

Ponder2 Tutorial (zip)

Slides - Ponder2 Policies in Pervasive Systems slides (pdf)

Slides - SMC (pdf)

The Wiki pdf includes references to various Ponder and Ponder2 papers.


Ponder2 software (zip)

Ponder2 Source (zip)

Ponder2 Examples (zip)

Teleo Reactive Ponder src (zip)

Teleo Reactive Ponder (jar)