Skip to main content

Software Architecture-Based Self-Adaptation

  • Chapter
  • First Online:

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Article  Google Scholar 

  2. ACM. Adaptive middleware. Communications of the ACM, 45(6), June 2002.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. Robert J. Allen. A Formal Approach to Software Architectures. PhD thesis, Carnegie Mellon University School of Computer Science,May 1997.

    Google Scholar 

  5. Robert Balzer. Probe run-time infrastructure.http://schafercorp-ballston.com/dasada/2001WinterPI/ProbeRun-TimeInfrastructureDesign.ppt, 2001.

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. Proc. of the Working Conf. on Complex and Dynamic Systems Architecture,December 12–14, 2001.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. Eric M. Dashofy, Andrè van der Hoek, and Richard N. Taylor. Towards architecture-based self-healing systems. In Garlan et al. , pages 21–26.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. A. G. Ganak and T. A. Corbi. The dawning of the autonomic computing era. IBM Systems Journal, 42(1):5–18, 2003.

    Article  Google Scholar 

  18. 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.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. 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).

    Google Scholar 

  22. David Garlan, Bradley Schmerl, and Jichuan Chang. Using gauges for architecture-based monitoring and adaptation. In CDSA.

    Google Scholar 

  23. Ioannis Georgiadis, Jeff Magee, and Jeff Kramer. Self-organizing software architectures for distributed systems. In Garlan et al. , pages 33–38.

    Google Scholar 

  24. Debanjan Ghosh, Raj Sharman, H. Raghav Rao, and Shambhu Upadhyaya. Self-healing systems - survey and synthesis. Decis. Support Syst., 42(4):2164–2185, 2007.

    Article  Google Scholar 

  25. Malcolm Gladwell. Blink: The Power of Thinking Without Thinking. Penguin, January 2006.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. 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.

    Google Scholar 

  28. IBM. An architectural blueprint for autonomic computing, 2004.

    Google Scholar 

  29. 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.

    Google Scholar 

  30. 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.

    Google Scholar 

  31. Daniel Le Mètayer. Describing software architecture styles using graph grammars. IEEE Transactions on Software Engineering, 24(7):521–533,1998.

    Article  Google Scholar 

  32. 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.

    Google Scholar 

  33. 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.

    Google Scholar 

  34. Microsoft Corporation. Dynamic systems initiative. http://www.microsoft.com/windowsserversystem/dsi/, 2003.

  35. Marija Mikik-Rakic, Nikunj Mehta, and Nenad Medvidovic. Architectural style requirements for self-healing systems. In Garlan et al., pages 49–54.

    Google Scholar 

  36. Robert T. Monroe. Capturing software architecture design expertise with Armani. Technical Report CMU-CS-98-163, Carnegie Mellon University School ofComputer Science, 1998.

    Google Scholar 

  37. 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.

    Google Scholar 

  38. Peyman Oreizy. Open Architecture Software: A Flexible Approach to DecentralizedSoftware Evolution. PhD thesis, University of California, Irvine, 2000.

    Google Scholar 

  39. 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.

    Article  Google Scholar 

  40. Robert H. Perry, Don W. Green, and James O. Maloney. Perry’s Chemical Engineers’ Handbook. McGraw-Hill, New York, seventh edition, 1997.

    Google Scholar 

  41. 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.

    Google Scholar 

  42. 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.

    Google Scholar 

  43. Mary Shaw. Beyond objects: A software design paradigm based on processcontrol. Software Engineering Notes, 20(1):27–38, January 1995.

    Article  Google Scholar 

  44. Mary Shaw and David Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, 1996.

    Google Scholar 

  45. 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.

    Google Scholar 

  46. 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.

    Google Scholar 

  47. Alexandre Sztajnberg and Orlando Loques. Describing and deploying self-adaptive applications. In Proc. 1st Latin American Autonomic Computing Symposium,July 14–20, 2006.

    Google Scholar 

  48. 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.

    Google Scholar 

  49. 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.

    Article  Google Scholar 

  50. 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].

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to David Garlan .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics