Abstract
Increasingly, systems must have the ability to self-adapt to meet changes in their execution environment. Unfortunately, existing solutions require human oversight, or are limited in the kinds of systems and the set of quality-of-service concerns they address. Our approach, embodied in a system called Rainbow, uses software architecture models and architectural styles to overcome existing limitations. It provides an engineering approach and a framework of mechanisms to monitor a target system and its environment, reflect observations into a system’s architecture model, detect opportunities for improvement, select a course of action, and effect changes in a closed loop. The framework provides general and reusable infrastructures with well-defined customization points, allowing engineers to systematically customize Rainbow to particular systems and concerns.
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
Gregory D. Abowd, Robert Allen, and David Garlan. Formalizing style to understand descriptions of software architecture. ACM Trans. Softw. Eng. Methodol., 4(4):319–364,1995.
ACM. Adaptive middleware. Communications of the ACM, 45(6), June 2002.
Robert Allen, Steve Vestal, Dennis Cornhill, and Bruce Lewis. Using an architecture description language for quantitative analysisof real-time systems. In Proc. of the 3rd International Workshop on Software andPerformance, ACM Press, pages 203–210. 2002.
Robert J. Allen. A Formal Approach to Software Architectures. PhD thesis, Carnegie Mellon University School of Computer Science,May 1997.
Robert Balzer. Probe run-time infrastructure.http://schafercorp-ballston.com/dasada/2001WinterPI/ProbeRun-TimeInfrastructureDesign.ppt, 2001.
Thaìs Vasconcelos Batista, Ackbar Joolia, and Geoff Coulson. Managing dynamic reconfiguration in component-based systems. In EWSA, volume 3527 of LNCS, Springer, pages 1–17,June 13–14, 2005.
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, and Michel Wermelinger. A survey of self-management in dynamic software architecturespecifications. In WOSS ’04: Proc. of the 1st ACM SIGSOFT Workshop onSelf-managed Systems, ACM, New York, pages 28–33, 2004.
Proc. of the Working Conf. on Complex and Dynamic Systems Architecture,December 12–14, 2001.
Shang-Wen Cheng. Rainbow: Cost-Effective Software Architecture-BasedSelf-Adaptation. Technical Report CMU-ISR-08-113, Carnegie Mellon University Schoolof Computer Science, 5000 Forbes Avenue, Pittsburgh, PA 15213, May 2008.
Shang-Wen Cheng, An-Cheng Huang, David Garlan, Bradley Schmerl, and PeterSteenkiste. An architecture for coordinating multiple self-management systems. In Proc. of the 4th Working IEEE/IFIP Conference on SoftwareArchitecture (WICSA-4), June 2004.
Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, ReedLittle, Robert Nord, and Judith Stafford. Documenting Software Architecture: Views and Beyond. Pearson Education, Inc., 2003.
Carlos E. Cuesta, Pablo de la Fuente, and Manuel Barrio-Solàrzano. Dynamic coordination architecture through the use of reflection. In SAC ’01: Proc. of the 2001 ACM Symposium on AppliedComputing, ACM, New York, pages 134–140, 2001.
Eric M. Dashofy, Andrè van der Hoek, and Richard N. Taylor. A highly-extensible, XML-based architecture description language. In Proceedings of WICSA2, Massachusetts, USA, August 28–31,2001. Kluwer Academic Publishers, New York.
Eric M. Dashofy, Andrè van der Hoek, and Richard N. Taylor. Towards architecture-based self-healing systems. In Garlan et al. , pages 21–26.
Jim Dowling and Vinny Cahill. The k-component architecture meta-model for self-adaptive software. In REFLECTION ’01: Proc. of the 3rd International Conf. onMetalevel Architectures and Separation of Crosscutting Concerns, Springer-Verlag, London, UK, pages81–88,2001.
Peter H. Feiler, Bruce Lewis, and Steve Vestal. Improving predictability in embedded real-time systems. Technical Report CMU/SEI-2000-SR-011, Carnegie Mellon UniversitySoftware Engineering Institute, Pittsburgh, PA 15213, December 2000.
A. G. Ganak and T. A. Corbi. The dawning of the autonomic computing era. IBM Systems Journal, 42(1):5–18, 2003.
David Garlan, Shang-Wen Cheng, and Bradley Schmerl. Increasing system dependability through architecture-basedself-repair. In Rogèrio de Lemos, Cristina Gacek, and Alexander Romanovsky,editors, Architecting Dependable Systems, Lecture Notes in ComputerScience, Springer-Verlag, Inc. New York, pages 61–89, 2003.
David Garlan, Jeff Kramer, and Alexander Wolf, editors. Proc. of the 1st ACM SIGSOFT Workshop on Self-Healing Systems(WOSS ’02), ACM Press, New York, November 18–19, 2002.
David Garlan, Robert T. Monroe, and David Wile. Acme: Architectural descriptions of component-based systems. In Gary T. Leavens and Murali Sitaraman, editors, Foundations ofComponent-Based Systems, pages 47–68. Cambridge University Press, Cambridge 2000.
David Garlan and Bradley Schmerl. The radar architecture for personal cognitive assistance. International Journal of Software Engineering and KnowledgeEngineering, 17(2), April 2007. A shorter version of this paper appeared in the 2006 Conference onSoftware Engineering and Knowledge Engineering (SEKE 2006).
David Garlan, Bradley Schmerl, and Jichuan Chang. Using gauges for architecture-based monitoring and adaptation. In CDSA.
Ioannis Georgiadis, Jeff Magee, and Jeff Kramer. Self-organizing software architectures for distributed systems. In Garlan et al. , pages 33–38.
Debanjan Ghosh, Raj Sharman, H. Raghav Rao, and Shambhu Upadhyaya. Self-healing systems - survey and synthesis. Decis. Support Syst., 42(4):2164–2185, 2007.
Malcolm Gladwell. Blink: The Power of Thinking Without Thinking. Penguin, January 2006.
Michael M. Gorlick and Rami R. Razouk. Using Weaves for software construction and analysis. In Proc. of the 13th International Conf. of SoftwareEngineering, IEEE Computer Society Press, Los Alamitos, CA, USA, pages 23–34, May1991.
Michael Hinz, Stefan Pietschmann, Matthias Umbach, and Klaus Meissner. Adaptation and distribution of pipeline-based context-aware webarchitectures. In WICSA ’07: Proc. of the 6th Working IEEE/IFIP Conf. onSoftware Architecture, IEEE Computer Society, Washington, DC, page 15, 2007.
IBM. An architectural blueprint for autonomic computing, 2004.
Jung Soo Kim and David Garlan. Analyzing architectural styles with Alloy. In Workshop on the Role of Software Architecture for Testing andAnalysis 2006 (ROSATEA 2006), Portland, ME, July 17, 2006.
John C. Knight, Dennis Heimbigner, Alexander L. Wolf, Antonio Carzaniga,Jonathan C. Hill, Premkumar Devanbu, and Michael Gertz. The Willow survivability architecture. In Proc. of the 4th Information Survivability Workshop, October2001.
Daniel Le Mètayer. Describing software architecture styles using graph grammars. IEEE Transactions on Software Engineering, 24(7):521–533,1998.
Yan Liu and Ian Gorton. Implementing adaptive performance management in server applications. In Proc. of the 2007 International Workshop on SoftwareEngineering for Adaptive and Self-Managing Systems (SEAMS ’07), IEEE Computer Society,Washington, DC, page 12, 2007.
Jeff Magee and Jeff Kramer. Dynamic structure in software architectures. In SIGSOFT ’96: Proc. of the 4th ACM SIGSOFT Symposium onFoundations of Software Engineering, ACM, New York, pages 3–14, 1996.
Microsoft Corporation. Dynamic systems initiative. http://www.microsoft.com/windowsserversystem/dsi/, 2003.
Marija Mikik-Rakic, Nikunj Mehta, and Nenad Medvidovic. Architectural style requirements for self-healing systems. In Garlan et al., pages 49–54.
Robert T. Monroe. Capturing software architecture design expertise with Armani. Technical Report CMU-CS-98-163, Carnegie Mellon University School ofComputer Science, 1998.
Ronald Morrison, Dharini Balasubramaniam, Flávio Oquendo, Brian Warboys,and R. Mark Greenwood. An active architecture approach to dynamic systems co-evolution. In ECSA, volume 4758 of LNCS, Springer, New York, pages 2–10.September 24–26,2007.
Peyman Oreizy. Open Architecture Software: A Flexible Approach to DecentralizedSoftware Evolution. PhD thesis, University of California, Irvine, 2000.
Peyman Oreizy, Michael M. Gorlick, Richard N. Taylor, Dennis Heimbigner,Gregory Johnson, Nenad Medvidovic, Alex Quilici, David S. Rosenblum, andAlexander L. Wolf. An architecture-based approach to self-adaptative software. IEEE Intelligent Systems, 14(3):54–62, May–June 1999.
Robert H. Perry, Don W. Green, and James O. Maloney. Perry’s Chemical Engineers’ Handbook. McGraw-Hill, New York, seventh edition, 1997.
Vahe Poladian. Tailoring Configuration to User’s Tasks under Uncertainty. PhD thesis, Carnegie Mellon University School of Computer Science,5000 Forbes Avenue, Pittsburgh, PA 15213, May 2008.
Dale E. Seborg, Thomas F. Edgar, and Duncan A. Mellichamp. Process Dynamics and Control. Wiley Series in Chemical Engineering. John Wiley & Sons, New York, 1989.
Mary Shaw. Beyond objects: A software design paradigm based on processcontrol. Software Engineering Notes, 20(1):27–38, January 1995.
Mary Shaw and David Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, 1996.
Joao Pedro Sousa. Scaling Task Management in Space and Time: Reducing UserOverhead in Ubiquitous-Computing Environments. Technical report cmu-cs-05-123, Carnegie Mellon University School ofComputer Science, 5000 Forbes Avenue, Pittsburgh, PA 15213, March 28, 2005.
Bridget Spitznagel and David Garlan. Architecture-based performance analysis. In Proc. of the 10th International Conf. on Software Engineeringand Knowledge Engineering, pages 146–151. Knowledge Systems Institute,1998.
Alexandre Sztajnberg and Orlando Loques. Describing and deploying self-adaptive applications. In Proc. 1st Latin American Autonomic Computing Symposium,July 14–20, 2006.
Giuseppe Valetto, Gail Kaiser, and Gaurav S. Kc. A mobile agent approach to process-based dynamic adaptation ofcomplex software systems. In 8th European Workshop on Software Process Technology, pages102–116, June 2001.
Michel Wermelinger, Antònia Lopes, and Josè Luiz Fiadeiro. A graph based architectural (re)configuration language.SIGSOFT Software Engineering Notes,26(5):21–32, 2001.
Alexander L. Wolf, Dennis Heimbigner, Antonio Carzaniga, Kenneth M. Anderson, and Nathan Ryan. Achieving survivability of complex and dynamic systems with the Willow framework. In CDSA [8].
Acknowledgments
This material is based up work supported by the US Army Research Office (ARO) under grant number DAAD19-02-1-0389 (“Perpetually Available and Secure Information Systems”) to CarnegieMellon University’s Cylab, and NSF grants IIS0534656 (“Role of Architecture in Facilitating Design Collaboration”) and CNS-0615305 (“Activity-Oriented Computing”). Views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of any of these funding agencies.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag US
About this chapter
Cite this chapter
Garlan, D., Schmerl, B., Cheng, SW. (2009). Software Architecture-Based Self-Adaptation. In: Zhang, Y., Yang, L., Denko, M. (eds) Autonomic Computing and Networking. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-89828-5_2
Download citation
DOI: https://doi.org/10.1007/978-0-387-89828-5_2
Published:
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-89827-8
Online ISBN: 978-0-387-89828-5
eBook Packages: EngineeringEngineering (R0)