A Systematic Examination of Inter-App Conflicts Detections in Open IoT Systems

Recent several years have witnessed the rapid development of open platforms for developing and deploying Internet of Things (IoT) apps. One of the important issues in such environments is the unintended interactions among independently developed apps installed in a single environment. Although there have been some recent studies trying to address the issue, the treatments to the problem remain preliminary, reflected by the rudimentary definitions of inter-app conflicts and the entailed inadequacy of the previously proposed solutions. This paper strives to provide a deeper and more systematic investigation to the problem. It offers a series of new definitions and categorizations to more precisely characterize the nature of IoT inter-app conflicts, and proposes a new representation named IA Nets for representing IoT controls and inter-app interplays. It then describes an efficient conflicts detection algorithm developed upon these new definitions and representations. It further presents DIAmond, a compiler and runtime framework that integrates all the proposed techniques together into a comprehensive solution. Experiments on SmartThings apps validate its effectiveness for IoT inter-app conflicts detections.

[1]  C. V. Ramamoorthy,et al.  Performance Evaluation of Asynchronous Concurrent Systems Using Petri Nets , 1980, IEEE Transactions on Software Engineering.

[2]  Wei Lin,et al.  Apollo: Scalable and Coordinated Scheduling for Cloud-Scale Computing , 2014, OSDI.

[3]  Matthias Grochtmann,et al.  Verifying Timing Constraints of Real-Time Systems by Means of Evolutionary Testing , 1998, Real-Time Systems.

[4]  Martin T. Vechev,et al.  Scalable race detection for Android applications , 2015, OOPSLA.

[5]  Zhao Li,et al.  Systematically Debugging IoT Control System Correctness for Building Automation , 2016, BuildSys@SenSys.

[6]  P. Merlin,et al.  Recoverability of Communication Protocols - Implications of a Theoretical Study , 1976, IEEE Transactions on Communications.

[7]  Wolfgang Reisig Petri Nets: An Introduction , 1985, EATCS Monographs on Theoretical Computer Science.

[8]  Brighten Godfrey,et al.  VeriFlow: verifying network-wide invariants in real time , 2012, HotSDN '12.

[9]  Bernard Berthomieu,et al.  An Enumerative Approach for Analyzing Time Petri Nets , 1983, IFIP Congress.

[10]  Carlo Ghezzi,et al.  A Unified High-Level Petri Net Formalism for Time-Critical Systems , 1991, IEEE Trans. Software Eng..

[11]  Joachim Wegener,et al.  A Comparison of Static Analysis and Evolutionary Testing for the Verification of Timing Constraints , 2004, Real-Time Systems.

[12]  Zhao Li,et al.  SIFT: building an internet of safe things , 2015, IPSN.

[13]  Alan Burns,et al.  A survey of hard real-time scheduling for multiprocessor systems , 2011, CSUR.

[14]  Peter Radford,et al.  Petri Net Theory and the Modeling of Systems , 1982 .

[15]  Sen Hu,et al.  Efficient system-enforced deterministic parallelism , 2010, OSDI.

[16]  Miguel Felder,et al.  Testing Timing Behavior of Real-Time Software , 1997 .

[17]  Nancy G. Leveson,et al.  Safety Analysis Using Petri Nets , 1987, IEEE Transactions on Software Engineering.

[18]  Sirajum Munir,et al.  DepSys: Dependency aware integration of cyber-physical systems for smart homes , 2014, 2014 ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS).

[19]  Joachim Wegener,et al.  A Comparison of Static Analysis and Evolutionary Testing for the Verification of Timing Constraints , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[20]  Rupak Majumdar,et al.  Race detection for Android applications , 2014, PLDI.

[21]  Stefan Saroiu,et al.  An Operating System for the Home , 2012, NSDI.

[22]  Ratul Mahajan,et al.  Systematically Exploring the Behavior of Control Programs , 2015, USENIX Annual Technical Conference.

[23]  Gernot Richter Clocks and their Use for Time Modeling , 1985, TFAIS.

[24]  Peter P. Puschner,et al.  Calculating the maximum execution time of real-time programs , 1989, Real-Time Systems.

[25]  Anita Sarma,et al.  Cassandra: Proactive conflict minimization through optimized task scheduling , 2013, 2013 35th International Conference on Software Engineering (ICSE).