Pushlogic: Automated Feature Interaction Detection for the Internet of Things
![]() |
Collaborative Applications Talk: Nov 06 Slides (60 pages) (PDF). Skirmishes Talk: May 05 Brief Slides. Draft user manual: User Manual |
Automated Feature Interaction Detection for the Internet of Things
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:
Papers are being placed here Dec 2005 to 2008.
(C) 2005 University of Cambridge. END.