The DiCE (Distributed Constraint Evaluator) system provides high-level, declarative constructs to describe network processes using safety properties which are monitored by an flexible accompanying runtime. The system not only monitors absolute properties such as "the temperature of any node must be below a given threshold", but also global properties such as "there should not be a temperature difference greater than a threshold". In their most general form, the properties consist of polynomial inequalities connected by logical operators. The polynomial variables represent the state of network nodes. The design allows the system to run on a heterogenous wireless network and to be easily reconfigured by adding or removing properties. Moreover, the monitoring takes place in a fully distributed and autonomous fashion.


Programming Wireless Sensor Networks (WSNs) is currently perceived as a difficult task, an issue which may seriously hamper a widespread adoption of this technology. Most often, WSN programmers work at the level of the operating system, using basic communication primitives. Differently, TeenyLIME empowers WSN programmers with a higher level of abstraction by replacing the OS-level communication constructs with the notion of a shared memory space spanning neighboring (1-hop) nodes. TeenyLIME can be used to implement both application-level and system-level mechanisms, e.g., routing and MAC protocols. In addition, unlike most programming models in the WSN literature, TeenyLIME is extensively used in real-world WSN deployments, e.g., monitoring heritage buildings and control of road tunnels, where it provides a foundation to build efficient WSN systems with reduced programming effort.

TeenyLIME has been or will be used in Torre Aquila, TRITon and ACube.

For more information and source code, visit http://teenylime.sf.net.