Increasing System Dependability through Architecture-Based Self-Repair
One increasingly important technique for improving system dependability is to provide mechanisms for a system to adapt at run time in order to accommodate varying resources, system errors, and changing requirements. For such “self-repairing” systems one of the hard problems is determining when a change is needed, and knowing what kind of adaptation is required. In this paper we describe a partial solution in which stylized architectural design models are maintained at run time as a vehicle for automatically monitoring system behavior, for detecting when that behavior falls outside of acceptable ranges, and for deciding on a high-level repair strategy. The main innovative feature of the approach is the ability to specialize a generic run time adaptation framework to support particular architectural styles and properties of interest. Specifically, a formal description of an architectural style defines for a family of related systems the conditions under which adaptation should be considered, provides an analytic basis for detecting anomalies, and serves as a basis for developing sound repair strategies.
KeywordsSoftware Architecture Constraint Violation Architectural Model Server Group Architectural Style
Unable to display preview. Download preview PDF.
- Allen, R.J. A Formal Approach to Software Architecture. PhD Thesis, published as Carnegie Mellon University School of Computer Science Technical Report CMU-CS-97-144, May 1997.Google Scholar
- Allen, R.J., Douence, R., and Garlan, D. Specifying Dynamism in Software Architectures. Proc. the Workshop on Foundations of Component-Based Software Engineering, Sept. 1997.Google Scholar
- Allen, R.J and Garlan, D. A Formal Basis for Architectural Connection. ACM Transactions of Software Engineering and Methodology, Jul. 1997.Google Scholar
- Bertsekas, D. and Gallager, R. Data Networks, Second Edition. Prentice Hall, 1992. ISBN 0-13-200916-1.Google Scholar
- Carzaniga, A., Rosenblum, D.S., and Wolf, A.L. Achieving Expressiveness and Scalability in an Internet-Scale Event Notification Service. Proc. 19th ACM Symposium on Principles of Distributed Computing (PODC 2000), Portland OR, Jul. 2000.Google Scholar
- Cheng, S-W., Garlan D., Schmerl, B.R., Steenkiste, P.R., Hu. N. Software Architecture-based Adaptation for Grid Computing. Proc. 11th IEEE Conference on High Performance Distributed Computing (HPDC 2002), Edinburgh, Scotland, July 2002.Google Scholar
- Dashofy, E., Garlan, D., van der Hoek, A., and Schmerl, B. http://www.ics.uci.edu/pub/arch/xarch/.
- Dashofy, E., van der Hoek, A., and Taylor, R.N. A Highly-Extensible, XML-Based Architecture Description Language. Proc. Working IEEE/IFIP Conference on Software Architecture, Amsterdam, The Netherlands, Aug. 2001.Google Scholar
- Garlan, D., Allen, R.J., and Ockerbloom, J. Exploiting Style in Architectural Design. Proc. SIGSOFT’ 94 Symposium on the Foundations of Software Engineerng,, New Orleans, LA, Dec. 1994.Google Scholar
- Garlan, D., Monroe, R.T., and Wile, D. Acme: Architectural Description of Component-Based Systems. Foundations of Component-Based Systems. Leavens, G.T., and Sitaraman, M. (eds). Cambridge University Press, 2000 pp. 47–68.Google Scholar
- Garlan, D., Schmerl, B.R., and Chang, J. Using Gauges for Architecture-Based Monitoring and Adaptation. Proc. 1st Working Conference on Complex and Dynamic System Architecture. Brisbane, Australia, Dec. 2001.Google Scholar
- Gorlick, M.M., and Razouk, R.R. Using Weaves for Software Construction and Analysis. Proc. 13th International Conference on Software Engineering, IEEE Computer Society Press, May 1991.Google Scholar
- Gorlick, M.M. Distributed Debugging on $5 a day. Proc. California Software Symposium, University of California, Irvine, CA, 1997 pp. 31–39.Google Scholar
- Gross, P.N, Gupta, S., Kaiser, G.E., Kc, G.S., and Parekh, J.J. An Active Events Model for Systems Monitoring. Proc. 1st Working Conference on Complex and Dynamic Systems Architecture, Brisbane, Australia, Dec. 2001.Google Scholar
- Klein, M., Kazman, R., Bass, L., Carriere, J., Barbacci, M., Lipson, H. Attribute-Based Architecture Styles. Software Architecture Proc. 1st Working IFIP Conference on Software Architecture (WICSA1), (San Antonio, TX), Feb. 1999, 225–243.Google Scholar
- Kon, F., Romn, M., Liu, P., Mao, J., Yamane, T., Magalh, C., Campbell, R.H. Monitoring, security, and dynamic configuration with the dynamic TAO reflective ORB. IFIP/ACM International Conference on Distributed Systems Platforms, 2000, New York, New York.Google Scholar
- Magee, J., Dulay, N., Eisenbach, S., and Kramer, J. Specifying Distributed Software Architectures. Proc. 5th European Software Engineering Conference (ESEC’95), Sitges, Sept. 1995. Also published as Lecture Notes in Computer Science 989, (Springer-Verlag), 1995, pp. 137–153.Google Scholar
- Magee, J., and Kramer, J. Concurrency: State Models and Java Programs. Wiley, 1999.Google Scholar
- Miller, N., and Steenkiste, P. Collecting Network Status Information for Network-Aware Applications. IEEE INFOCOM 2000, Tel Aviv, Israel, Mar. 2000.Google Scholar
- Monroe, R.T. Capturing Software Architecture Design Expertise with Armani. Carnegie Mellon University School of Computer Science Technical Report CMU-CS-98-163.Google Scholar
- Moriconi, M. and Reimenschneider, R.A. Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies. Technical Report SRI-CSL-97-01, SRI International, Mar. 1997.Google Scholar
- Morrison, R., Connor, R.C.H., Cutts, Q.I., Dunstan, V.S., and Kirby, G.N.C. Exploiting Persistent Linkage in Software Engineering Environments. The Computer Journal 38(1): 1–16, 1995.Google Scholar
- Object Management Group. The OMG Unified Modeling Language Specification, Version 1.4. Sep. 2001. Available at http://www.omg.org/technology/documents/formal/uml.htm.
- The OpenGroup. Architecture Description Markup Language (ADML) Version 1. Apr. 2000. Available at http://www.opengroup.org/publications/catalog/i901.htm.
- Oriezy, P., Medvidovic, N., and Taylor, R.N. Architecture-Based Runtime Software Evolution. Proc. International Conference on Software Engineering 1998 (ICSE’98). Kyoto, Japan, Apr. 1998, pp. 11–15.Google Scholar
- Shaw, M. and Garlan, D. Software Architectures: Perspectives on an Emerging Discipline. Prentice Hall, 1996.Google Scholar
- Schmerl, B.R., and Garlan, D. Exploiting Architectural Design Knowledge to Support Self-repairing Systems. Proc. 14th International Conference on Software Engineering and Knowledge Engineering, Ischia, Italy, Jul. 15–19, 2002.Google Scholar
- Spitznagel, B. and Garlan, D. Architecture-Based Performance Analysis. Proc. 1998 Conference on Software Engineering and Knowledge Engineering, Jun. 1998.Google Scholar
- Valetto, G., and Kaiser, G. A Case Study in Software Adaptation. Proc. 1st ACM SIGSOFT Workshop on Self-Healing Systems (WOSS 2002), Charleston, SC, Nov. 2002.Google Scholar
- Vestel, S. MetaH Programmer’s Manual, Version 1.09. Technical Report, Honeywell Technology Center, Apr. 1996.Google Scholar
- Wells, D., and Pazandak, P. Taming Cyber Incognito: Surveying Dynamic / Reconfigurable Software Landscapes. Proc. 1st Working Conference on Complex and Dynamic Systems Architectures,, Brisbane, Australia, Dec 12–14, 2001.Google Scholar
- Wermelinger, M., Lopes, A., and Fiadeiro, J.L. A Graph Based Architectural (Re)configuration Language. Proc. Joint 8th European Software Engineering Conference and the 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering. Vienna, Austria, Sep. 2001, pp. 21–32.Google Scholar
- Wile, D.S. AML: An Architecture Meta-Language. Proc. Automated Software Engineering Conference, Cocoa Beach, FL, Oct. 1999.Google Scholar