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.
Similar content being viewed by others
References
Augusto JC, Hornos MJ (2013) Software simulation and verification to increase the reliability of Intelligent Environments. Adv Eng Softw 58:18–34
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
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
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
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
Cook R (2000) How complex systems fail. Cognitive technologies Laboratory, University of Chicago. http://www.ctlab.org/documents/HowComplexSystemsFail.pdf
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston
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)
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
Holzmann GJ (1997) The modelchecker SPIN. IEEE Trans Softw Eng 23(5):279–295. doi:10.1109/32.588521
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
Home Netflix/Hystrix Wiki. https://github.com/Netflix/Hystrix/wiki
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
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
Kernighan BW, Plauger PJ (1982) The elements of programming style, 2nd edn. McGraw-Hill Inc, New York
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
Krumm J (2009) Ubiquitous computing fundamentals, 1st edn. Chapman & Hall/CRC, New York
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
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
Lindsay B (2004) Designing for failure may be the key to success—interview by Steve Bourne. ACM Queue 2(8)
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
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
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
Montesi F, Weber J (2016) Circuit breakers, discovery, and API gateways in microservices. CoRR arXiv:1609.05830
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
Nygard M (2007) Release it!: design and deploy production-ready software. Pragmatic Bookshelf
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
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
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
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
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
Schuster A (2008) Robust intelligent systems, 1st edn. Springer, London
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
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
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
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
Acknowledgements
This research is partially funded by the Research Fund KU Leuven.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s40860-017-0037-y