Abstract
Software systems have become too complex to manage and fix manually. An emerging approach to overcome this problem is software self-healing. Studies in related disciplines have offered several self-healing solutions, however these usually address a single class of problems, or they are not applicable in fielded systems. To address the industrial need for software self-healing, we have initiated the EU SHADOWS project. This project concentrates on self-healing of complex systems, extending the state-of-art in several ways. It introduces pioneering technologies to enable the systematic self-healing of classes of failures which are not solved by other approaches. It additionally introduces an approach to the integration of several self-healing technologies in a common solution framework. It also adopts a model-based approach, where models of desired software behavior direct the self-healing process. Combined, these allow for lifecycle support of software self-healing, applicable to both academic and industrial systems.
This research is funded in part by the European Commission via the SHADOWS project under contract No. 035157.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Musa, J.D., Iannino, A., Okumoto, K.: Software Reliability: Measurement, Prediction, Application. Professional Edition: Software Engineering Series. McGraw-Hill, New York (1990)
Kan, S.H.: Metrics and Models in Software Quality Engineering, 2nd edn. Addison-Wesley, Reading (2002)
Galin, D.: Software Quality Assurance: From Theory to Implementation. Pearson Education, London (2003)
Myers, G.: The Art of Software Testing, 2nd edn. Wiley, Chichester (2004)
Tanenbaum, A.S., van Stee, M.: Distributed Systems: Principles and Paradigms. Prentice-Hall, Englewood Cliffs (2002)
Levi, S., Agrawala, A.: Fault Tolerant System Design. McGraw-Hill, New York (1994)
Ganek, A.G., Corbi, T.A.: The Dawn of Autonomic Computing, The Dawn of the Autonomic Computing Era. IBM Systems Journal 42(1) (2003)
The Berkeley/Stanford Recovery-Oriented Computing Project, http://roc.cs.berkeley.edu/
von Newmann, J., Burks, A.W. (eds.): Theory of self-Reproducing Automata. University of Illinois Press, Illinois (1966)
Turing, A.M.: Intelligent Machinery (1948) Report for National Physical Laboratory. In: Meltzer, B., Michie, D. (eds.) Machine Intelligence 7 (1969)
Bullock, S., Cliff, D.: Complexity and Emergent Behaviour in ICT Systems, HP Labs report HPL-2004 -187 (2004), http://www.hpl.hp.com/techreports/2004/HPL-2004-187.html
Zambonelli, F., Parunak, V.: Towards a Paradigm Change in Computer Science and Software Engineering: a Synthesis. The Knowledge Engineering Review 18(4), 329–342 (2004)
Proceedings of SELF-STAR: International Workshop on Self-* Properties in Complex Information Systems, 31 May - 2 June 2004. University of Bologna (2004), http://www.cs.unibo.it/self-star/program.html
Patterson, D., et al.: Recovery Oriented Computing: Motivation, Definition, Techniques, and Case Studies, Computer Science Technical Report UCB//CSD-02-1175, U.C. Berkeley, March 15 (2002), http://roc.cs.berkeley.edu/papers/ROC_TR02-1175.pdf
Herrmann, K., Mühl, G., Geihs, K.: Self-Management: The Solution to Complexity or Just Another Problem? IEEE Distributed Systems Online 6(1), 1 (2005)
Debusmann, M., Geihs, K.: Efficient and Transparent Instrumentation of Application Components Using an Aspect-oriented Approach. In: Brunner, M., Keller, A. (eds.) DSOM 2003. LNCS, vol. 2867, pp. 209–220. Springer, Heidelberg (2003)
Tosi, D.: Research Perspectives in Self-Healing Systems, Technical Report LTA:2004:06, University of Milano at Bicocca (July 2004), http://www.lta.disco.unimib.it/doc/ei/pdf/lta.2004.06.pdf
Colajanni, M., Andreolini, M., Lancellotti, R.: Open Issues in Self-Inspection and Self-Decision Mechanisms for Supporting Complex and Heterogeneous Information Systems. In: Proceedings of. Int’l SELF-STAR 2004 [13] (2004), http://www.cs.unibo.it/self-star/papers/colajanni.pdf
Poladian, V., Sousa, J.P., Garlan, D., Shaw, M.: Dynamic Configuration of Resoubrce-Aware Services. In: Proceedings of the 26th International Conference on Software Engineering (ICSE), Edinburgh, Scotland, May (2004)
Georgiadis, I., Magee, J., Kramer, J.: Self-organising software architectures for distributed software systems. In: Proceedings of the first workshop on Self-healing systems, pp. 33–38. ACM Press, New York (2002)
Mikic-Rakic, M., Mehta, N., Medvidovic, N.: Architecture style requirements for self-healing systems. In: Proceedings of the first workshop on self-healing systems, pp. 49–54. ACM Press, New York (2002)
Oreizy, P., Gorlick, M., Taylor, R., Heimhigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosemblum, D., Wolf, A.: An architecture-based approach to self-adaptive software. IEEE Intelligent Systems 14(3), 54–62 (1999)
Appavoo, J., Hui, K., Stumm, M., Wisniewski, R., Da Silva, D., Krieger, O., Soules, C.: An infrastructure for multiprocessor run-time adaptation. In: Proceedings of the first workshop on self healing systems, pp. 3–8. ACM Press, New York (2002)
Garlan, D., Schmerl, B.: Model-based adaptation for self-healing systems. In: Proceedings of the first workshop on self-healing systems, pp. 27–32. ACM Press, New York (2002)
Valetto, G., Kaiser, G.: Using process technology to control and coordinate software adaptation. In: Proc. 25th international conference on software engineering, pp. 262–272. IEEE Computer Society Press, Los Alamitos (2003)
Haerder, T., Reuter, A.: Principles of transaction-oriented database recovery. ACM Computer Surveys 15(4), 287–317 (1983)
Dabrowski, C., Mills, K.: Understanding self-healing in service-discovery systems. In: Proceedings of the first workshop on self-healing systems, pp. 15–20. ACM Press, New York (2002)
Fuggetta, A., Picco, G., Vigna, G.: Understanding code mobility. IEEE Transactions on Software Engineering 24(5), 342–361 (1998)
Cobleigh, J., Osterweil, L., Wise, A., Lerner, B.S.: Containment units: a hierarchically composable architecture for adaptive systems. In: Proc. of 10th ACM SIGSOFT symposium on Foundations of Software Engineering, pp. 159–165. ACM Press, New York (2002)
Farchi, E., Nir, Y., Ratsaby, G., Ur, S.: Multithreaded Java program test generation. IBM Systems Journal 41(1), 111–125 (2002)
Farchi, E., Nir, Y., Ur, S.: Concurrent Bug Patterns and How to Test Them. In: Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS’03), p. 286b (2003)
Mariani, L., Pezzè, M.: Behavior Capture and Test: Automated Analysis of Component Integration. In: Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer Systems, Shangai, China, 16-20 June, 2005, IEEE Computer Society Press, Los Alamitos (2005)
Breitgand, D., Henis, E., Shehory, O.: Automated and Adaptive Threshold Setting: Enabling Technology for Autonomy and Self Management. In: Proc. 2nd Intl. Conference on Autonomic Computing (ICAC’05), Seattle, June (2005)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shehory, O. (2007). A Self-healing Approach to Designing and Deploying Complex, Distributed and Concurrent Software Systems. In: Bordini, R.H., Dastani, M., Dix, J., Seghrouchni, A.E.F. (eds) Programming Multi-Agent Systems. ProMAS 2006. Lecture Notes in Computer Science(), vol 4411. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71956-4_1
Download citation
DOI: https://doi.org/10.1007/978-3-540-71956-4_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-71955-7
Online ISBN: 978-3-540-71956-4
eBook Packages: Computer ScienceComputer Science (R0)