Abstract
Software architectures have recently emerged as a level of design concerned with specifying the overall structure of a system. Traditionally, software architectures only provide static descriptions of the participants and interaction structures in a system. Dynamic software architectures, however, can be reconfigured at runtime and therefore provide support for building dynamically adaptable applications. Software architectures can be specified using architectural reflection. In this paper we introduce an architecture meta-model that realises a dynamic software architecture. The architecture meta-model reifies the configuration graph of the architecture and is automatically generated from our component definitions and implementation language sourcecode. We show how graph transformations that re-write the architecture’s configuration graph can be implemented as reflective programs, called adaptation contracts. Adaptation contracts are written in a separate programming language, thus cleanly separating the adaptation code from the computational code. Adaptation contracts can even be replaced at run-time. They are deployed in a run-time meta-level architecture that addresses issues of system safety, integrity and overhead during graph transformation. The paper also describes a prototype implementation of our model called K-Components.
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
Carnegie Mellon Software Institute, Architecture Description Languages, URL = http://www.sei.cmu.edu/str/descriptions/adl_body.html.
Robert J. Allen, Remi Douence, and David Garlan, “Specifying and Analyzing Dynamic Software Architectures”, Conference on Fundamental Approaches to Software Engineering, March 1998.
Gordon Blair et Al., “The Design and Implementation of Open ORB v2”, DS Online Vol. 2, No. 6 2001.
Walter Cazzola, Andrea Savigni, Andrea Sosio, and Francesco Tisato, “Explicit Architecture and Architectural Reflection”. In Proceedings of the 2nd International Workshop on Engineering Distributed Objects (EDO 2000), LNCS. Springer-Verlag.
OMG, The CORBA Component Model, orbos/99-07-01.
Guy and Henry Eddon, Inside COM+ Base Services, Mircosoft Press, 1999.
A. Corradini, U. Montanari, F. Rossi, H. Ehrig, R. Heckel, M. Loewe, “Algebraic Approaches to Graph Transformation, Part I: Basic Concepts and Double Pushout Approach”, Technical Report: TR-96-17, University of Pisa, 1996.
Carlos E. Cuesta, Pablo de la Fuenta and Manuel Barrio Solrazano, “Dynamic Coordination Architecture through the use of Reflection”, Coordination Models, Languages and Applications Special Track of ACM SAC, 2001.
Krzysztof Czarnecki and Ulrich W. Eisenecker, Generative Programming, Ad. Wesley 2000.
J. Magee, N. Dulay, S. Eisenbach and J. Kramer, “Specifying Distributed Software Architectures”, In Proceedings of 5th European Software Engineering Conference, Sept. 1995.
Jim Dowling, Tilman Schaefer, Vinny Cahill, “Using Reflection to Support Dynamic Adaptation of System Software: A Case Study Driven Evaluation”, In Proceedings of Software Engineering and Reflection 2000, LNCS 1826.
Jim Dowling and Vinny Cahill, “Building a Dynamically Reconfigurable minimumCORBA Platform with Components, Connectors and Language-Level Support”, In IFIP/ACM Middleware’2000 Workshop on Reflective Middleware,New York, USA, April 2000.
Gregor Kiczales et Al., “Open Implementation Guidelines”, 19th International Conference on Software Engineering (ICSE), ACM Press, May 1997.
Jeff Kramer and Jeff Magee, “Analysing Dynamic Change in Distributed Software Architectures”, IEEE Proceedings-Software, 145(5):146–154, October 1998.
Fabio Kon, Tomonori Yamane, Christopher K. Hess, Roy H. Campbell and M. Dennis Mickunas, “Dynamic Resource Management and Automatic Configuration of Distributed Component Systems”, USENIX COOTS’2001.
D. Le Metayer, “Describing software architecture styles using graph grammars”, IEEE Transactions on Software Engineering, 24(7):521–553, July 1998.
Kaveh Moazami-Goudarzi, Consistency Preserving Dynamic Reconfiguration of Distributed Systems. PhD Thesis, Imperial College London, March 1999.
Nenad Medvidovic, Peyman Oreizy, Richard Taylor, Rohit Khare, and Michael Guntersdorfer, “An Architecture-Centered Approach to Software Environment Integration”, Tech Report UCI-ICS-00-11, Dept. of Info. and Computer Science, University of California, Irvine, March 2000.
Nenad Medvidovic and Richard N. Taylor, “A Classification and Comparison Framework for Software Architecture Description Languages”, IEEE Transactions on Software Engineering, January 2000.
Peyman Oreizy et Al., “An Architecture-Based Approach to Self-Adaptive Software”, IEEE Intelligent Systems, May/June 1999.
Pal PP, Loyall JP, Schantz RE, Zinky JA, Shapiro R, Megquier J., “Using QDL to Specify QoS Aware Distributed Application Configuration”, In Proceedings of ISORC 2000, March 2000.
David C. Luckham and James Vera, “An Event-Based Architecture Definition Language”, IEEE Transactions on Software Engineering, Vol 21, No 9, pp.717–734. Sep. 1995.
M. Shaw and D. Garlan, Software Architecture: Perspecitves on an Emerging Discipline. Prentice Hall, Englewood Cliffs, NJ, 1996.
Francisco Jose da Silva, M. Endler, F. Kon, Roy Campbell and Dennis Mickunas, “Modeling Dynamic Adaptation of Distributed Systems”, UIUCDCS-R-2000-2196, December 2000.
Michel Wermelinger, Specification of Software Architecture Reconfiguration, PhD Thesis Universidade Nove de Lisboa, 2000.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dowling, J., Cahill, V. (2001). The K-Component Architecture Meta-Model for Self-Adaptive Software. In: Yonezawa, A., Matsuoka, S. (eds) Metalevel Architectures and Separation of Crosscutting Concerns. Reflection 2001. Lecture Notes in Computer Science, vol 2192. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45429-2_6
Download citation
DOI: https://doi.org/10.1007/3-540-45429-2_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42618-9
Online ISBN: 978-3-540-45429-8
eBook Packages: Springer Book Archive