Pushlogic: A Toolchain for Reliable Domain Automation with Automated Recovery

Reliable Interaction in a Dynamic Population of Autonomous Devices

     

Collaborative Applications Talk: Nov 06 Slides (60 pages).

Skirmishes Talk: May 05 Brief Slides.

Draft user manual: User Manual


Pushlogic is a scripting language originally developed as part of the CMI Pebbles Project.

Pushlogic is a strawman that supports what we call Code Reflection.

Pushlogic is a constrained language for a dynamic population of devices (sensors/processors/actuators) and dynamic number of concurrent applications in a reliable or safety-critical system. System stability is assured by idempotency constraints and intrinsic error recovery capabilities arise from the reversible nature of Pushlogic programs.

Although designed for highly-dynamic populations, today it is suited to domains where the population is infrequently changed, such as an aircraft, automobile or oil refinery: Fieldbus Pushlogic.

Pushlogic is a constrained language amenable to automated reasoning. It defines `re-hydration' for dynamic binding of rules to new device instances and a load-time model checker that runs before a new bundle of rules may join a domain of participation. In a typical application of Pushlogic, complex embedded devices are partitioned into passive components known as `pebbles'. API reflection is then used to expose the interfaces offered by the pebbles. All proactive and interactive behaviour between pebbles or over the network must then be implemented with Pushlogic and `code reflection', as we call it, exposes this behaviour for automated reasoning.

Pushlogic provides a compiler to generate its own object code. This object code can be run on a variety of hardware platforms. We have, so far, deployed puslogic in two situations:

White Papers

Papers are being placed here Dec 2005 to 2008.

  • 2006. `Using Simple Pushlogic'. DJ Greaves, D Gordon. At WEBIST 06. Heating controller paper: PDF, Un-cutdown version: PDF.

  • 2006. `A LOGICAL APPROACH TO HOME AUTOMATION.' A Alvi, DJ Greaves. 2nd IEE International Conference on Intelligent Environments, July, 2006, Athens (http://conferences.iee.org/ie06).

  • Small example: DVD player coupled to Alarm Clock - In preparation. D Gordon.

  • A web browser attached to a tuplecore execution platform: Screenshot.

    Other Resource Links

  • Slides SRG Talk Nov 2005.

  • For local access, the project source code is kept under CVS in /usr/groups/han/o2s-local/badger

  • Pebbles Project.

  • Early Pushlogic Web Pages

  • Manuals

    (C) 2005 University of Cambridge. END.