Tutorial on"Easily Fighting Murphy: High-level Application Development in the IoT with Fault Tolerance" presented at ESSoS 2013

by Franoise Sailhan, Animesh Pathak,

Summary : The Internet of Things (IoT) holds great promises as an enabler of a wide spectrum of pervasive applications (e.g., urban monitoring, smart home or emergency scenario). As the range of applications of IoT extends in the fields of industrial and mission-critical, additional requisites relating to robustness and reliability appear. We are faced with systems that are noteworthy for their gathering ability but fail in ensuring their own reliance and proper operation. In this tutorial, we start by first discussing the various aspects of faults, with particular focus on those encountered in Wireless Sensor Networks and Internet of Things. We then cover the techniques of detection, tolerance and injection of faults in these systems. Finally, we discuss techniques for high-level application development in the IoT, coupled with new developments in expressing and ensuring fault tolerance requirements in IoT applications. The theoretical part of the tutorial will be followed by a practical session, where we will use the Srijan macroprogramming toolkit to develop IoT applications, including fault-tolerant components.
Definition of faults in distributed systems
Specific faults encountered in wireless [sensor]/IoT systems
Attributes qualifying the system dependability
Means for dealing with faults in WSN/IoT
Detection techniques
Tolerance techniques
Injection techniques
High-level application development in IoT
Motivation and related work in macroprogramming
Srijan: data-driven macroprogramming for the IoT
Expressing Fault-tolerance Requirements at a High Level
Macroprogramming constructs for Fault Tolerance
System-level support
Current projects in the area
Lab session
Macroprogramming using Srijan: Sun SPOTs, Android phones
Adding Fault tolerance to Macroprograms