Skip to main content
Log in

QoC\(^{2}\)Breaker: intelligent software circuit breakers for fault-tolerant distributed context-aware applications

  • Original Article
  • Published:
Journal of Reliable Intelligent Environments Aims and scope Submit manuscript

Abstract

Reliability is a key concern when distributed context-aware applications assist end-users in intelligent environments. As these adaptive applications are never deployed in isolation, delivering failsafe behavior is a non-trivial challenge. Indeed, they usually operate well in the cool comfort of a lab environment, but may not behave as expected in the real world due to unforeseen circumstances. Furthermore, intelligent environments continuously evolve as end-users install and interconnect new sensors, actuators or other appliances. These observations make it challenging for software engineers to design, develop and deploy context-aware distributed applications that guarantee fault-tolerant behavior under all possible situations. In this work, we advocate a ‘Design for Failure’ approach to build applications that are expected to handle faults gracefully. We use enhanced software circuit breakers for distributed context-aware applications to deliver fault-tolerant intelligent environments. Our QoC \(^{2}\) Breaker framework specializes circuit breakers with notions of Quality of Context to offer context-aware applications a greater stability and resilience against different types of faults. The evaluation of our framework on a prototypical case study shows that it can mitigate circumstances where isolated or transient errors can cascade into catastrophic failures throughout the whole intelligent environment, and this with a limited performance overhead.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

References

  1. Augusto JC, Hornos MJ (2013) Software simulation and verification to increase the reliability of Intelligent Environments. Adv Eng Softw 58:18–34

    Article  Google Scholar 

  2. Ceri S, Widom J (1990) Deriving production rules for constraint maintainance. In: McLeod D, Sacks-Davis R, Schek H (eds) Proceedings of the 16th international conference on very large data bases, pp 566–577. Brisbane, Queensland, Australia, 13–16 August 1990. Morgan Kaufmann. http://www.vldb.org/conf/1990/P566.PDF

  3. Chabridon S, Conan D, Abid Z, Taconet C (2013) Building ubiquitous qoc-aware applications through model-driven software engineering. Sci Comput Program 78(10):1912–1929. doi:10.1016/j.scico.2012.07.019

    Article  Google Scholar 

  4. Cho ES, Helal S (2011) A situation-based exception detection mechanism for safety in pervasive systems. In: 2011 IEEE/IPSJ international symposium on applications and the Internet, pp 196–201. doi:10.1109/SAINT.2011.35

  5. Conan D, Rouvoy R, Seinturier L (2007) Scalable processing of context information with COSMOS, pp 210–224. Springer, Berlin, Heidelberg. doi:10.1007/978-3-540-72883-2_16

  6. Cook R (2000) How complex systems fail. Cognitive technologies Laboratory, University of Chicago. http://www.ctlab.org/documents/HowComplexSystemsFail.pdf

  7. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston

    MATH  Google Scholar 

  8. Giese H, Vogel T, Wtzoldt S (2015) Towards smart systems of systems. In: Dastani M, Sirjani M (eds) Proceedings of the 6th international conference on fundamentals of software engineering (FSEN ’15). Lecture notes in computer science (LNCS), vol. 9392, pp. 1–29. Springer (2015). doi:10.1007/978-3-319-24644-4_1 (invited paper)

  9. Henricksen K, Robinson R (2006) A survey of middleware for sensor networks: state-of-the-art and future directions. In: Proceedings of the international workshop on middleware for sensor networks, MidSens ’06, pp 60–65. ACM, New York. doi:10.1145/1176866.1176877

  10. Holzmann GJ (1997) The modelchecker SPIN. IEEE Trans Softw Eng 23(5):279–295. doi:10.1109/32.588521

    Article  Google Scholar 

  11. Holzmann GJ (2002) The logic of bugs. In: Proceedings of the 10th ACM SIGSOFT symposium on foundations of software engineering, SIGSOFT ’02/FSE-10, pp 81–87. ACM, New York. doi:10.1145/587051.587064

  12. Home Netflix/Hystrix Wiki. https://github.com/Netflix/Hystrix/wiki

  13. Hoyos JR, Preuveneers D, Molina JG, Berbers Y (2011) A DSL for context quality modeling in context-aware applications. In: Novais P, Preuveneers D, Corchado JM (eds) Ambient intelligence—software and applications—2nd international symposium on ambient intelligence, ISAmI 2011, Salamanca, 6–8 April 2011. Advances in intelligent and soft computing, vol 92, pp 41–49. Springer. doi:10.1007/978-3-642-19937-0_6

  14. Hoyos JR, Molina JJG, Botía JA, Preuveneers D (2016) A model-driven approach for quality of context in pervasive systems. Comput Electr Eng 55:39–58. doi:10.1016/j.compeleceng.2016.07.002

    Article  Google Scholar 

  15. Kernighan BW, Plauger PJ (1982) The elements of programming style, 2nd edn. McGraw-Hill Inc, New York

    MATH  Google Scholar 

  16. Krause M, Hochstatter I (2005) Challenges in modelling and using quality of context (qoc). In: Proceedings of the second international conference on mobility aware technologies and applications, MATA’05, pp 324–333. Springer, Berlin, Heidelberg. doi:10.1007/11569510_31

  17. Krumm J (2009) Ubiquitous computing fundamentals, 1st edn. Chapman & Hall/CRC, New York

    Book  Google Scholar 

  18. Kulkarni D, Tripathi A (2010) A framework for programming robust context-aware applications. IEEE Trans Softw Eng 36(2):184–197. doi:10.1109/TSE.2010.11

    Article  Google Scholar 

  19. Leys C, Ley C, Klein O, Bernard P, Licata L (2013) Detecting outliers: do not use standard deviation around the mean, use absolute deviation around the median. J Exp Soc Psychol 49(4):764–766. doi:10.1016/j.jesp.2013.03.013. http://www.sciencedirect.com/science/article/pii/S0022103113000668

  20. Lindsay B (2004) Designing for failure may be the key to success—interview by Steve Bourne. ACM Queue 2(8)

  21. Manzoor A, Truong HL, Dustdar S (2008) On the evaluation of quality of context, pp 140–153. Springer, Berlin, Heidelberg. doi:10.1007/978-3-540-88793-5_11

  22. Manzoor A, Truong HL, Dustdar S (2014) Quality of context: models and applications for context-aware systems in pervasive environments. Knowl Eng Rev 29(2):154–170. doi:10.1017/S0269888914000034

    Article  Google Scholar 

  23. Marie P, Desprats T, Chabridon S, Sibilla M (2014) The qocim framework: concepts and tools for quality of context management. In: Brézillon P, Gonzalez AJ (eds) Context in computing—a cross-disciplinary approach for modeling the real world, pp 155–172. Springer. doi:10.1007/978-1-4939-1887-4_11

  24. Montesi F, Weber J (2016) Circuit breakers, discovery, and API gateways in microservices. CoRR arXiv:1609.05830

  25. Naqvi NZ, Devlieghere J, Preuveneers D, Berbers Y (2016) Mascot: self-adaptive opportunistic offloading for cloud-enabled smart mobile applications with probabilistic graphical models at runtime. In: Bui TX, Jr, RHS (eds) 49th Hawaii international conference on system sciences, HICSS 2016, Koloa, 5–8 January 2016, pp 5701–5710. IEEE Computer Society. doi:10.1109/HICSS.2016.705

  26. Nygard M (2007) Release it!: design and deploy production-ready software. Pragmatic Bookshelf

  27. Preuveneers D, Berbers Y (2012) Consistency in context-aware behavior: a model checking approach. In: Intelligent environments (workshops), ambient intelligence and smart environments, vol 13, pp 401–412. IOS Press

  28. Preuveneers D, Joosen W (2016) Semantic analysis and verification of context-driven adaptive applications in intelligent environments. J Reliab Intell Environ 2(2):53–73. doi:10.1007/s40860-016-0019-5

    Article  Google Scholar 

  29. Preuveneers D, Berbers Y (2014) Samurai: a streaming multi-tenant context-management architecture for intelligent and scalable internet of things applications. In: Proceedings of the 2014 international conference on intelligent environments, IE ’14, pp 226–233. IEEE Computer Society, Washington. doi:10.1109/IE.2014.43

  30. Preuveneers D, Chen CY, Ramakrishnan A, Feng MW, Wang PF, Berbers Y (2014) Design for failure: intelligent systems learning from their mistakes. In: Augusto J, Zhang T (eds) Workshop proceedings of the 10th international conference on intelligent environments, international workshop on the reliability of intelligent environments, Shanghai, China, 1 July 2014, Ambient intelligence and smart environments, vol 18, pp 171–182. IOS Press. doi:10.3233/978-1-61499-411-4-171

  31. Preuveneers D, Berbers Y, Joosen W (2016) SAMURAI: a batch and streaming context architecture for large-scale intelligent applications and environments. JAISE 8(1):63–78. doi:10.3233/AIS-150357

    Google Scholar 

  32. Schuster A (2008) Robust intelligent systems, 1st edn. Springer, London

    Book  Google Scholar 

  33. Shankar CS, Ranganathan A, Campbell R (2005) An eca-p policy-based framework for managing ubiquitous computing environments. In: The second annual international conference on mobile and ubiquitous systems: networking and services, pp 33–42. doi:10.1109/MOBIQUITOUS.2005.11

  34. Solaiman E, Ranjan R, Jayaraman PP, Mitra K (2016) Monitoring internet of things application ecosystems for failure. IT Prof 18(5):8–11. doi:10.1109/MITP.2016.90

    Article  Google Scholar 

  35. Xu C, Cheung S, Ma X, Cao C, Lu J (2012) Adam: identifying defects in context-aware adaptation. J Syst Softw 85(12):2812–2828. doi:10.1016/j.jss.2012.04.078. http://www.sciencedirect.com/science/article/pii/S0164121212001318. Self-Adaptive Systems

  36. Yoon TS, Choi JH, Cho ES, Helal S (2014) A formal modeling for exceptions in context-aware systems. In: 2014 IEEE 38th international computer software and applications conference workshops, pp 734–739. doi:10.1109/COMPSACW.2014.123

Download references

Acknowledgements

This research is partially funded by the Research Fund KU Leuven.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Davy Preuveneers.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Preuveneers, D., Joosen, W. QoC\(^{2}\)Breaker: intelligent software circuit breakers for fault-tolerant distributed context-aware applications. J Reliable Intell Environ 3, 5–20 (2017). https://doi.org/10.1007/s40860-017-0037-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s40860-017-0037-y

Keywords

Navigation