Exploiting Architectural Style for Self-repairing Systems

An increasingly important requirement for software systems is the capability 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 coupling of architectural models with architectural styles that both exposes specific properties of interest and provides an analytic basis for detecting anomalies and suggesting verifiably sound repair strategies. We illustrate the approach for performance-oriented adaptation of web-based client-server applications, whose soundness can be determined through queuing theoretic analysis of the corresponding architectures.

[1]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[2]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[3]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[4]  Dean Sutherland,et al.  A resource query interface for network-aware applications , 1998, Proceedings. The Seventh International Symposium on High Performance Distributed Computing (Cat. No.98TB100244).

[5]  Leonard J. Bass,et al.  Attribute-Based Architecture Styles , 1999, WICSA.

[6]  Michael M. Gorlick,et al.  Using weaves for software construction and analysis , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[7]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[8]  Michel Wermelinger,et al.  A graph based architectural (Re)configuration language , 2001, ESEC/FSE-9.

[9]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[10]  Rex E. Gantenbein Dynamic binding in strongly typed programming languages , 1991, J. Syst. Softw..

[11]  David Garlan,et al.  Using Gauges for Architecture-Based Monitoring and Adaptation , 2001 .

[12]  James A. Gosling,et al.  The java language environment: a white paper , 1995 .

[13]  Ronald A. Olsson,et al.  An approach to genuine dynamic linking , 1991, Softw. Pract. Exp..

[14]  Peter Steenkiste,et al.  Collecting network status information for network-aware applications , 2000, Proceedings IEEE INFOCOM 2000. Conference on Computer Communications. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies (Cat. No.00CH37064).

[15]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[16]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[17]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[18]  Richard C. H. Connor,et al.  Exploiting Persistent Linkage in Software Engineering Environments , 1995, Comput. J..

[19]  Daniel Le Métayer Describing Software Architecture Styles Using Graph Grammars , 1998, IEEE Trans. Software Eng..

[20]  Robert A. Riemenschneider,et al.  Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies , 1997 .

[21]  David S. Rosenblum,et al.  Achieving expressiveness and scalability in an internet-scale event notification service , 2000, ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing.

[22]  David Garlan,et al.  Architecture-Based Performance Analysis , 1998 .

[23]  David Garlan,et al.  Specifying Dynamism in Software Architectures , 1997 .

[24]  Dimitri P. Bertsekas,et al.  Data Networks: Second Edition , 1992 .

[25]  Robert J. Allen A formal approach to software architecture , 1997 .

[26]  Robert T. Monroe Capturing Software Architecture Design Expertise with Armani , 2000 .

[27]  Dimitri P. Bertsekas,et al.  Data Networks , 1986 .

[28]  David S. Wile AML: an Architecture Meta-Language , 1999, 14th IEEE International Conference on Automated Software Engineering.