RESISTing reliability degradation through proactive reconfiguration

Situated software systems are an emerging class of systems that are predominantly pervasive, embedded, and mobile. They are marked with a high degree of unpredictability and dynamism in the execution context. At the same time, such systems often need to satisfy strict reliability requirements. Most current software reliability analysis approaches are not suitable for situated software systems. We propose an approach geared to such systems, which continuously furnishes refined reliability predictions at runtime by incorporating various sources of information. The reliability predictions are leveraged to proactively place the software in the optimal configuration with respect to changing conditions. Our approach considers two representative architectural reconfiguration decisions that impact the system's reliability: reallocation of components to processes and changing the architectural style. We have realized the approach as part of a framework intended for mission-critical settings, called REsilient SItuated SofTware system (RESIST), and evaluated it using a mobile emergency response system.

[1]  Sam Malek,et al.  A Modeling Language for Activity-Oriented Composition of Service-Oriented Software Systems , 2009, MoDELS.

[2]  Ralf H. Reussner,et al.  Reliability prediction for component-based software architectures , 2003, J. Syst. Softw..

[3]  Aditya P. Mathur,et al.  On the estimation of reliability of a software system using reliabilities of its components , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[4]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[5]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[6]  John D. Musa,et al.  Software reliability - measurement, prediction, application , 1987, McGraw-Hill series in software engineering and technology.

[7]  MalekSam,et al.  A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems , 2005 .

[8]  Kai-Yuan Cai,et al.  Software Defect and Operational Profile Modeling , 1998, The Kluwer International Series in Software Engineering.

[9]  Amy L. Murphy,et al.  LIME: a middleware for physical and logical mobility , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[10]  Eila Niemelä,et al.  Survey of reliability and availability prediction methods from the viewpoint of software architecture , 2007, Software & Systems Modeling.

[11]  David Garlan,et al.  Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments , 2002, WICSA.

[12]  Bill N. Schilit,et al.  Context-aware computing applications , 1994, Workshop on Mobile Computing Systems and Applications.

[13]  S. Malek,et al.  Resisting Reliability Degradation through Proactive Reconfiguration A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science at George Mason University by , 2010 .

[14]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

[15]  Swapna S. Gokhale,et al.  Architecture-Based Software Reliability Analysis: Overview and Limitations , 2007, IEEE Transactions on Dependable and Secure Computing.

[16]  David S. Rosenblum,et al.  Using Scenarios to Predict the Reliability of Concurrent Component-Based Software Systems , 2005, FASE.

[17]  Bojan Cukic,et al.  A Bayesian approach to reliability prediction and assessment of component based systems , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[18]  Nenad Medvidovic,et al.  Early prediction of software component reliability , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[19]  Jeff Magee,et al.  Concurrency - state models and Java programs , 2006 .

[20]  Ye Wu,et al.  An architecture-based software reliability model , 1999, Proceedings 1999 Pacific Rim International Symposium on Dependable Computing.

[21]  Carlo Ghezzi,et al.  Model evolution by run-time parameter adaptation , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[22]  Gregory D. Abowd,et al.  Towards a Better Understanding of Context and Context-Awareness , 1999, HUC.

[23]  Nenad Medvidovic,et al.  A Bayesian Model for Predicting Reliability of Software Systems at the Architectural Level , 2007, QoSA.

[24]  Sam Malek,et al.  Improving the reliability of mobile software systems through continuous analysis and proactive reconfiguration , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[25]  Mary Shaw,et al.  Dynamic configuration of resource-aware services , 2004, Proceedings. 26th International Conference on Software Engineering.

[26]  Jesper Andersson,et al.  Modeling Dimensions of Self-Adaptive Software Systems , 2009, Software Engineering for Self-Adaptive Systems.

[27]  Florin Popentiu-Vladicesdu,et al.  A Software Architecture for Monitoring the Reliabity in Distributed Systems , 1999 .

[28]  William J. Stewart,et al.  Introduction to the numerical solution of Markov Chains , 1994 .

[29]  Mary Shaw,et al.  Leveraging Resource Prediction for Anticipatory Dynamic Configuration , 2007, First International Conference on Self-Adaptive and Self-Organizing Systems (SASO 2007).

[30]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[31]  Sam Malek,et al.  Scenario-Driven Dynamic Analysis of Distributed Architectures , 2007, FASE.

[32]  David Garlan,et al.  User Guidance of Resource-Adaptive Systems , 2008, ICSOFT.

[33]  Hany H. Ammar,et al.  Architectural-Level Risk Analysis Using UML , 2003, IEEE Trans. Software Eng..

[34]  Roger C. Cheung A User-Oriented Software Reliability Model , 1980, IEEE Trans. Software Eng..

[35]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[36]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[37]  Marija Mikic-Rakic,et al.  A style-aware architectural middleware for resource-constrained, distributed systems , 2005, IEEE Transactions on Software Engineering.

[38]  Katerina Goseva-Popstojanova,et al.  Architecture-based approaches to software reliability prediction , 2003 .

[39]  Homayoun Seraji,et al.  Behavior-based robot navigation on challenging terrain: A fuzzy logic approach , 2002, IEEE Trans. Robotics Autom..

[40]  Michael R. Lyu,et al.  What is software reliability? , 1994, Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance.

[41]  Cecilia Mascolo,et al.  CARISMA: Context-Aware Reflective mIddleware System for Mobile Applications , 2003, IEEE Trans. Software Eng..

[42]  Lawrence R. Rabiner,et al.  A tutorial on hidden Markov models and selected applications in speech recognition , 1989, Proc. IEEE.

[43]  Cecilia Mascolo,et al.  XMIDDLE: A Data-Sharing Middleware for Mobile Computing , 2002, Wirel. Pers. Commun..

[44]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[45]  Bradley R. Schmerl,et al.  Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure , 2004, Computer.

[46]  Peyman Oreizy,et al.  Runtime software adaptation: framework, approaches, and styles , 2008, ICSE Companion '08.

[47]  Alvin T. S. Chan,et al.  MobiPADS: A Reflective Middleware for Context-Aware Mobile Computing , 2003, IEEE Trans. Software Eng..

[48]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.