Increasing System Dependability through Architecture-Based Self-Repair

  • David Garlan
  • Shang-Wen Cheng
  • Bradley Schmerl
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2677)


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.


Software Architecture Constraint Violation Architectural Model Server Group Architectural Style 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Agha, G. A. Adaptive Middleware. Communications of the ACM 45(6):30–32, Jun. 2002.CrossRefGoogle Scholar
  2. [2]
    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
  3. [3]
    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
  4. [4]
    Allen, R.J and Garlan, D. A Formal Basis for Architectural Connection. ACM Transactions of Software Engineering and Methodology, Jul. 1997.Google Scholar
  5. [5]
    Bertsekas, D. and Gallager, R. Data Networks, Second Edition. Prentice Hall, 1992. ISBN 0-13-200916-1.Google Scholar
  6. [6]
    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
  7. [7]
    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
  8. [8]
    Dashofy, E., Garlan, D., van der Hoek, A., and Schmerl, B.
  9. [9]
    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
  10. [10]
    Gantenbien, R.E. Dynamic Binding in Strongly Typed Programming Languages. Journal of Systems and Software 14(1):31–38, 1991.CrossRefGoogle Scholar
  11. [11]
    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
  12. [12]
    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
  13. [13]
    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
  14. [14]
    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
  15. [15]
    Gorlick, M.M. Distributed Debugging on $5 a day. Proc. California Software Symposium, University of California, Irvine, CA, 1997 pp. 31–39.Google Scholar
  16. [16]
    Gosling, J. and McGilton, H. The Java Language Environment: A White Paper. Sun Microsystems Computer Company, Mountain View, California, May 1996. Available at Scholar
  17. [17]
    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
  18. [18]
    Ho, W.W. and Olsson, R.A. An Approach to Genuine Dynamic Linking. Software — Practice and Experience 21(4):375–390, 1991.CrossRefGoogle Scholar
  19. [19]
    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
  20. [20]
    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
  21. [21]
    Lowekamp, B., Miller, N., Sutherland, D., Gross, T., Steenkiste, P., and Subhlok, J. A Resource Query Interface for Networ-aware Applications. Cluster Computing, 2:139–151, Baltzer, 1999.CrossRefGoogle Scholar
  22. [22]
    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
  23. [23]
    Magee, J., and Kramer, J. Concurrency: State Models and Java Programs. Wiley, 1999.Google Scholar
  24. [24]
    Métayer, D.L. Describing Software Archtiecture Styles using Graph Grammars. IEEE Transactions on Software Engineering, 24(7):521–553, Jul. 1998.CrossRefGoogle Scholar
  25. [25]
    Miller, N., and Steenkiste, P. Collecting Network Status Information for Network-Aware Applications. IEEE INFOCOM 2000, Tel Aviv, Israel, Mar. 2000.Google Scholar
  26. [26]
    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
  27. [27]
    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
  28. [28]
    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
  29. [29]
    Object Management Group. The OMG Unified Modeling Language Specification, Version 1.4. Sep. 2001. Available at
  30. [30]
    The OpenGroup. Architecture Description Markup Language (ADML) Version 1. Apr. 2000. Available at
  31. [31]
    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
  32. [32]
    Oriezy, P., Gorlick, M.M., Taylor, R.N., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D., and Wolf, A. An Architecture-Based Approach to Self-Adaptive Software. IEEE Intelligent Systems 14(3):54–62, May/Jun. 1999.CrossRefGoogle Scholar
  33. [33]
    Shaw, M. and Garlan, D. Software Architectures: Perspectives on an Emerging Discipline. Prentice Hall, 1996.Google Scholar
  34. [34]
    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
  35. [35]
    Spitznagel, B. and Garlan, D. Architecture-Based Performance Analysis. Proc. 1998 Conference on Software Engineering and Knowledge Engineering, Jun. 1998.Google Scholar
  36. [36]
    Taylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead, E.J., Robbins, J.E., Nies, K.A., Oreizy, P., and Dubrow, D.L. A Component-and Message-Based Architectural Style for GUI Software. IEEE Transactions on Software Engineering 22(6):390–406, 1996.CrossRefGoogle Scholar
  37. [37]
    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
  38. [38]
    Vestel, S. MetaH Programmer’s Manual, Version 1.09. Technical Report, Honeywell Technology Center, Apr. 1996.Google Scholar
  39. [39]
    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
  40. [40]
    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
  41. [41]
    Wile, D.S. AML: An Architecture Meta-Language. Proc. Automated Software Engineering Conference, Cocoa Beach, FL, Oct. 1999.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • David Garlan
    • 1
  • Shang-Wen Cheng
    • 1
  • Bradley Schmerl
    • 1
  1. 1.School of Computer ScienceCarnegie Mellon UniversityPittsburgh

Personalised recommendations