Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Agha, G. A. Adaptive Middleware. Communications of the ACM 45(6):30–32, Jun. 2002.
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.
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.
Allen, R.J and Garlan, D. A Formal Basis for Architectural Connection. ACM Transactions of Software Engineering and Methodology, Jul. 1997.
Bertsekas, D. and Gallager, R. Data Networks, Second Edition. Prentice Hall, 1992. ISBN 0-13-200916-1.
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.
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.
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.
Gantenbien, R.E. Dynamic Binding in Strongly Typed Programming Languages. Journal of Systems and Software 14(1):31–38, 1991.
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.
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.
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.
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.
Gorlick, M.M. Distributed Debugging on $5 a day. Proc. California Software Symposium, University of California, Irvine, CA, 1997 pp. 31–39.
Gosling, J. and McGilton, H. The Java Language Environment: A White Paper. Sun Microsystems Computer Company, Mountain View, California, May 1996. Available at http://java.sun.com/docs/white/langenv/.
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.
Ho, W.W. and Olsson, R.A. An Approach to Genuine Dynamic Linking. Software — Practice and Experience 21(4):375–390, 1991.
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.
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.
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.
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.
Magee, J., and Kramer, J. Concurrency: State Models and Java Programs. Wiley, 1999.
Métayer, D.L. Describing Software Archtiecture Styles using Graph Grammars. IEEE Transactions on Software Engineering, 24(7):521–553, Jul. 1998.
Miller, N., and Steenkiste, P. Collecting Network Status Information for Network-Aware Applications. IEEE INFOCOM 2000, Tel Aviv, Israel, Mar. 2000.
Monroe, R.T. Capturing Software Architecture Design Expertise with Armani. Carnegie Mellon University School of Computer Science Technical Report CMU-CS-98-163.
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.
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.
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.
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.
Shaw, M. and Garlan, D. Software Architectures: Perspectives on an Emerging Discipline. Prentice Hall, 1996.
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.
Spitznagel, B. and Garlan, D. Architecture-Based Performance Analysis. Proc. 1998 Conference on Software Engineering and Knowledge Engineering, Jun. 1998.
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.
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.
Vestel, S. MetaH Programmer’s Manual, Version 1.09. Technical Report, Honeywell Technology Center, Apr. 1996.
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.
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.
Wile, D.S. AML: An Architecture Meta-Language. Proc. Automated Software Engineering Conference, Cocoa Beach, FL, Oct. 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Garlan, D., Cheng, SW., Schmerl, B. (2003). Increasing System Dependability through Architecture-Based Self-Repair. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds) Architecting Dependable Systems. Lecture Notes in Computer Science, vol 2677. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45177-3_3
Download citation
DOI: https://doi.org/10.1007/3-540-45177-3_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40727-0
Online ISBN: 978-3-540-45177-8
eBook Packages: Springer Book Archive