skip to main content
research-article

Software Adaptation in Wireless Sensor Networks

Published:23 January 2018Publication History
Skip Abstract Section

Abstract

We present design concepts, programming constructs, and automatic verification techniques to support the development of adaptive Wireless Sensor Network (WSN) software. WSNs operate at the interface between the physical world and the computing machine and are hence exposed to unpredictable environment dynamics. WSN software must adapt to these dynamics to maintain dependable and efficient operation. However, developers are left without proper support to develop adaptive functionality in WSN software. Our work fills this gap with three key contributions: (i) design concepts help developers organize the necessary adaptive functionality and understand their relations, (ii) dedicated programming constructs simplify the implementations, (iii) custom verification techniques allow developers to check the correctness of their design before deployment. We implement dedicated tool support to tie the three contributions, facilitating their practical application. Our evaluation considers representative WSN applications to analyze code metrics, synthetic simulations, and cycle-accurate emulation of popular WSN platforms. The results indicate that our work is effective in simplifying the development of adaptive WSN software; for example, implementations are provably easier to test and to maintain, the run-time overhead of our dedicated programming constructs is negligible, and our verification techniques return results in a matter of seconds.

References

  1. G. Abowd, A. Dey, P. Brown, N. Davies, M. Smith, and P. Steggles. 1999. Towards a better understanding of context and context-awareness. In Proceedings of the International Symposium on Handheld and Ubiquitous Computing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Ball and S. K. Rajamani. 2002. The SLAM project: Debugging system software via static analysis. In Proceedings of the ACM Symposium on Principles of Programming Languages (POPL’02). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. E. Bardram. 2005. The java context awareness framework (JCAF) -- A service infrastructure and programming framework for context-aware applications. In Proceedings of the International Conference on Pervasive Computing (PERVASIVE’05). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Beyer, T. A. Henzinger, R. Jhala, and R. Majumdar. 2007. The software model checker blast: Applications to software engineering. Int. J. Softw. Tools Technol. Transf. 9, 5--6 (2007), 505--525. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. N. A. Bhatti, M. H. Alizai, A. A. Syed, and L. Mottola. 2016. Energy harvesting and wireless transfer in sensor network applications: Concepts and experiences. ACM Trans. Wireless Sensor Networks (TOSN) 12, 3 (2016), 24:1--24:40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. T. Bourdenas, D. Wood, P. Zerfos, F. Bergamaschi, and M. Sloman. 2011. Self-adaptive routing in multi-hop sensor networks. In Proceedings of the International Conference on Network and Service Management (CNSM’11). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Bucur and M. Kwiatkowska. 2009. Bug-free sensors: The automatic verification of context-aware tinyos applications. In Proceedings of the Conference on Ambient Intelligence (AmI’09). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. B. Cheng and others. 2009. Software Engineering for Self-Adaptive Systems: A Research Roadmap. Springer, 1--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. Clarke, O. Grumberg, and D. Peled. 1999. Model Checking. MIT press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. Clarke, D. Kroening, and F. Lerda. 2004. A tool for checking ANSI-C programs. In Tools and Algorithms for the Construction and Analysis of Systems. Springer, 168--176.Google ScholarGoogle Scholar
  11. E. Clarke, D. Kroening, N. Sharygina, and K. Yorav. 2005. SATABS: SAT-based predicate abstraction for ANSI-C. In Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’05). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. E. M. Clarke, E. A. Emerson, and A. P. Sistla. 1986. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans. Program. Lang. Syst. 8, 2 (1986), 244--263. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Coutaz, J. Crowley, S. Dobson, and D. Garlan. 2005. Context is key. Commun. ACM 48, 3 (2005), 49--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. A. Dey. 2001. Understanding and using context. Personal. Ubiq. Comput. 5, 1 (2001), 4--7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J.-P. Diguet, Y. Eustache, and G. Gogniat. 2011. Closed-loop-based self-adaptive hardware/software-embedded systems: Design methodology and smart cam case study. ACM Trans. Embedded Comput. Syst. (TECS) 10, 3 (2011), Article No. 38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Dunkels, B. Gronvall, and T. Voigt. 2004. Contiki—A lightweight and flexible operating system for tiny networked sensors. In Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Eriksson, F. Oesterlind, N. Finne, N. Tsiftes, A. Dunkels, T. Voigt, R. Sauter, and P. J. Marroon. 2009. COOJA/MSPSim: Interoperability testing for wireless sensor networks. In Proceedings of the Simutools. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. F. Ferrari, M. Zimmerling, L. Mottola, and L. Thiele. 2012. Low-power wireless bus. In Proceedings of the ACM Conference on Embedded Network Sensor Systems (SenSys’12). Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Filman, T. Elrad, S. Clarke, and M.ehmet Akşit. 2004. Aspect-oriented Software Development. Addison-Wesley Professional. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. N. Finne, J. Eriksson, N. Tsiftes, A. Dunkels, and T. Voigt. 2010. Improving sensornet performance by separating system configuration from system logic. In Proceedings of the International Conference on Embedded Wireless Systems and Networks (EWSN’10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. F. Fleurey, B. Morin, and A. Solberg. 2011. A model-driven approach to develop adaptive firmwares. In Proceedings of the 6th SEAMS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. H. Fotouhi, M. Zuniga, M. Alves, A. Koubaa, and P. Marron. 2012. Smart-HOP: A reliable handoff mechanism for mobile wireless sensor networks. In Proceedings of the International Conference on Embedded Wireless Systems and Networks (EWSN’12). Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. E. Gaura, L. Girod, J. Brusey, M. Allen, and G. Challen. 2010. Wireless Sensor Networks: Deployments and Design Frameworks. Springer Science 8 Business Media. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. 2003. nesC language: A holistic approach to networked embedded systems. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI’03). Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. O. Gnawali, R Fonseca, K. Jamieson, D. Moss, and P. Levis. 2009. Collection tree protocol. In Proceedings of the ACM Conference on Embedded Networked Sensor Systems (SENSYS’09). Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Grevecom 2017. GrEVeCOM: Software Adaptation in Wireless Sensor Networks. Retrieved from bitbucket.org/neslabpolimi/conesc/wiki/.Google ScholarGoogle Scholar
  27. F. Gustafsson. 2010. Statistical Sensor Fusion. Springer.Google ScholarGoogle Scholar
  28. R. Hirschfeld, P. Costanza, and O. Nierstrasz. 2008. Context-oriented programming. J. Object Technol. 7, 3 (2008), 125--151.Google ScholarGoogle ScholarCross RefCross Ref
  29. K. Iwanicki, P. Horban, P. Glazar, and K. Strzelecki. 2014. Bringing modern unit testing techniques to sensornets. ACM Trans. Sen. Netw. 11, 2 (2014), Article No. 25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. Jackson. 1995. The world and the machine. In Proceedings of the International Conference on Software Engineering (ICSE’95). Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. JavaCC 2016. JavaCC - The Java Compiler Compiler. Retrieved from javacc.java.net.Google ScholarGoogle Scholar
  32. T. Kamina, T. Aotani, and H. Masuhara. 2011. EventCJ: A context-oriented programming language with declarative event-based context transition. In Proceedings of the International Conference on Aspect-Oriented Software Development (AOSD’11). Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. S. Kang, J. Kee, H. Jang, Y. Lee, S. Park, and J. Song. 2008. SeeMon: Scalable and energy-efficient context monitoring framework for sensor-rich mobile environments. In Proceedings of the 6th International Conference on Mobile Systems, Applications, and Services (MOBISYS’08). Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. R. Keays and A. Rakotonirainy. 2003. Context-oriented programming. In Proceedings of the ACM International Workshop on Data Engineering for Wireless and Mobile Access (MobiDe’03). Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. N. Kern, B. Schiele, and A. Schmidt. 2003. Multi-sensor activity context detection for wearable computing. In Proceedings of the European Symposium on Ambient Intelligence.Google ScholarGoogle Scholar
  36. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. 1997. Aspect-oriented programming. Proceedings of the European Conference on Object-oriented Programming (ECOOP’97).Google ScholarGoogle Scholar
  37. J. Ko, C. Lu, M. B. Srivastava, J. A. Stankovic, A. Terzis, and M. Welsh. 2010. Wireless sensor networks for healthcare. Proc. IEEE (2010).Google ScholarGoogle Scholar
  38. P. Koopman. 2010. Better Embedded System Software. Carnagie Mellon Press.Google ScholarGoogle Scholar
  39. P. Li and J. Regehr. 2010. T-check: Bug finding for sensor networks. In Proceedings of the International Symposium on Information Processing in Sensor Networks (IPSN’10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. C. Magerkurth, A. D. Cheok, R. L. Mandryk, and T. Nilsen. 2005. Pervasive games: Bringing computer entertainment back to the real world. Comput. Entertain. 3, 3 (2005), 4--4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. G. Mainland, G. Morrisett, and M. Welsh. 2008. Flask: Staged functional programming for sensor networks. In Proceedings of the International Conference on Functional Programming (ICFP’08). Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. F. Mattern, T. Staake, and M. Weiss. 2010. ICT for green: How computers can help us to conserve energy. In Proceedings of the International Conference on Energy-Efficient Computing and Networking (ICEECN’10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. L. Mottola, A. L. Murphy, and G. P. Picco. 2006. Pervasive games in a mote-enabled virtual world using tuple space middleware. In Proceedings of the ACM Conference on NETGAMES. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. L. Mottola and G. P. Picco. 2011. Programming wireless sensor networks: Fundamental concepts and state of the art. ACM Comp. Surveys 43, 3 (2011), Article No. 19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. L. Mottola, T. Voigt, F. Österlind, J. Eriksson, L. Baresi, and C. Ghezzi. 2010. Anquiro: Enabling efficient static verification of sensor network software. In Proceedings of the International Conference on Software Engineering (ICSE/SENSEA’10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. R. Newton, G. Morrisett, and M. Welsh. 2007. The regiment macroprogramming system. In Proceedings of the Proceedings of the International Symposium on Information Processing in Sensor Networks (IPSN’07). Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. NuSMV 2017. NuSMV: A New Symbolic Model Checker. Retrieved from nusmv.fbk.eu.Google ScholarGoogle Scholar
  48. R. Olfati-Saber. 2007. Distributed kalman filtering for sensor networks. In Proceedings of the IEEE Conference on Decision and Control. IEEE.Google ScholarGoogle ScholarCross RefCross Ref
  49. B. Pásztor, L. Mottola, C. Mascolo, G. P. Picco, S. Ellwood, and D. Macdonald. 2010. Selective reprogramming of mobile sensor networks through social community detection. In Proceedings of the International Conference on Embedded Wireless Systems and Networks (EWSN’10).Google ScholarGoogle Scholar
  50. G. P. Picco. 2010. Software engineering and wireless sensor networks: Happy Marriage or Consensual Divorce? In Proceedings of the International Symposium on Foundations of Software Engineering (FSE/SDP FOSER’10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. J. Polastre, R. Szewczyk, and D. Culler. 2005. Telos: Enabling ultra-low power wireless research. In Proceedings of the Proceedings of the International Symposium on Information Processing in Sensor Networks (IPSN’05). Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. K. Romer and Junyan Ma. 2009. PDA: Passive distributed assertions for sensor networks. In Proceedings of the Proceedings of the International Symposium on Information Processing in Sensor Networks (IPSN’09). Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. G. Salvaneschi, C. Ghezzi, and M. Pradella. 2012. Context-oriented programming: A software engineering perspective. J. Syst. Softw. 85, 8 (2012), 1801--1817. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. G. Salvaneschi, C. Ghezzi, and M. Pradella. 2013. Towards language-level support for self-adaptive software. ACM Trans. Auton. Adapt. Syst. 8, 2 (2013), Article No. 7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. R. Sasnauskas, O. Landsiedel, M. Hamad Alizai, C. Weise, S. Kowalewski, and K. Wehrle. 2010. KleeNet: Discovering insidious interaction bugs in wireless sensor networks before deployment. In Proceedings of the Proceedings of the International Symposium on Information Processing in Sensor Networks (IPSN’10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. B. Schilit, N. Adams, and R. Want. 1994. Context-aware computing applications. In Proceedings of the 1st Workshop on Mobile Computing Systems and Applications (WMCSA’94). Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. A. Schmidt, M. Beigl, and H.-W. Gellersen. 1999. There is more to context than location. Comput. Graphics 23, 6 (1999), 893--901.Google ScholarGoogle ScholarCross RefCross Ref
  58. S. Sehic, F. Li, and S. Dustdar. 2011. COPAL-ML: A macro language for rapid development of context-aware applications in wireless sensor networks. In Proceedings of the Workshop on Software Engineering for Sensor Network Applications (SESENA’11). Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. W. Stevens and E. N. Yourdon. 1979. Classics in software engineering. Chapter Structured Design. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. L. Subramanian and R. H. Katz. 2000. An architecture for building self-configurable systems. In Proceedings of the International Symposium on Mobile Ad Hoc Networking and Computing (MobiHOC’00). Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. TinyOS 2016. TinyOS 2.1.2. Retrieved from www.tinyos.net.Google ScholarGoogle Scholar
  62. E. Visser. 2002. Meta-programming with concrete object syntax. In Proceedings of the International Conference on Generative Programming and Component Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. A. D. Wood, J. A. Stankovic, G. Virone, L. Selavo, Z. He, Q. Cao, T. Doan, Y. Wu, L. Fang, and R. Stoleru. 2008. Context-aware wireless sensor networks for assisted living and residential monitoring. IEEE Netw. 22, 4 (2008), 26--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. H. Wu, M. Siegel, R. Stiefelhagen, and J. Yang. 2002. Sensor fusion using Dempster-Shafer theory {for context-aware HCI}. In Proceedings of the IEEE Instrumentation and Measurement Technology Conference.Google ScholarGoogle Scholar
  65. M. Zimmerling, F. Ferrari, L. Mottola, T. Voigt, and L. Thiele. 2012. pTunes: Runtime parameter adaptation for low-power MAC protocols. In Proceedings of the Proceedings of the International Symposium on Information Processing in Sensor Networks (IPSN’12). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Software Adaptation in Wireless Sensor Networks

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM Transactions on Autonomous and Adaptive Systems
                ACM Transactions on Autonomous and Adaptive Systems  Volume 12, Issue 4
                December 2017
                224 pages
                ISSN:1556-4665
                EISSN:1556-4703
                DOI:10.1145/3155314
                Issue’s Table of Contents

                Copyright © 2018 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 23 January 2018
                • Revised: 1 September 2017
                • Accepted: 1 September 2017
                • Received: 1 July 2016
                Published in taas Volume 12, Issue 4

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article
                • Research
                • Refereed

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!