Ponder2 combines a general-purpose, distributed object management system with a Domain Service, Obligation Policy Interpreter, Command Interpreter and Authorisation Enforcement. The Domain Service provides an hierarchical structure for managing objects. The Obligation Policy Interpreter handles Event, Condition, Action rules (ECA). The Command Interpreter accepts a set of commands, compiled from a high-level language called PonderTalk, via a number of communications interfaces which may perform invocations on a ManagedObject registered in the Domain Service. The Authorisation Enforcement caters for both positive and negative authorisation policies, provides the ability to specify fine grained authorisations for every object and implements domain nesting algorithms for conflict resolution.
Ponder is the name of a policy specification language 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 is 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 has been designed as an entirely extensible framework that can be used at different levels of scale from small, embedded devices to complex services and Virtual Organisations.
Ponder2 has been realised with financial support from several sponsors.
The following documents will assist you in downloading, installing and running Ponder2.
Ponder2Overview A brief, high level, overview of Ponder2
Installation and Running Guide How to get Ponder2 and start it
Using Ponder2 How to write and send commands to Ponder2
Using Ponder2 with Eclipse How to configure Eclipse for use with Ponder2
PonderTalk The complete language reference
Writing Your Own Managed Objects Guide to using Java with Ponder2
Ponder2 Policies Descriptions of the policy types supported by Ponder2
Ponder2 Events How to define and create events for Policies
Ponder2 Authorisation Description with examples of authorisation constraints
The Ponder2 Shell How to interact with Ponder2
Ponder2 Communications How Ponder2 uses objects from another Ponder2 instantiation
Ponder2 External Communications How to interface Ponder2 to other applications
Ponder2 Internals A description of the inner workings of Ponder2
Ponder2 Tutorial Complete, self-contained runtime files and tutorial with examples
Glossary Explanation of some of the terms used in this site
To Do Notes for future changes/fixes
Managed Object Documentation Command documentation for Ponder2's core Managed Objects
Ponder2 Java API Documentation Full internal documentation for Ponder2
TrPonder A Teleo-Reactive support system using the Ponder2 SMC and Ponder2 Managed Objects
P2Android - Android integration
There are several downloads with different configurations of Ponder2 available.
This software is made available under the terms of the GNU Lesser General Public License as published by the Free Software Foundation.
The following documents contain the current tutorial for learning about Ponder2 by yourself. There are also copies of presentation tutorials given at various conferences in the past.
Ponder2 Tutorial (Zip file) Complete, self-contained, runtime files and tutorial with examples
(superseded) UK-Ubinet Workshop (July 2006) Ponder2.zip SMCTutorialSlides1up.pdf
This site and the Ponder2 software have been created and are maintained by Dr Kevin Twidle.
For information regarding Ponder2 please email <ponder2 AT doc DOT ic DOT ac DOT uk>.