Software Architecture-Based Self-Adaptation

Chapter

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.CrossRefGoogle Scholar
  2. 2.
    ACM. Adaptive middleware. Communications of the ACM, 45(6), June 2002.Google Scholar
  3. 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. 4.
    Robert J. Allen. A Formal Approach to Software Architectures. PhD thesis, Carnegie Mellon University School of Computer Science,May 1997.Google Scholar
  5. 5.
  6. 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. 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. 8.
    Proc. of the Working Conf. on Complex and Dynamic Systems Architecture,December 12–14, 2001.Google Scholar
  9. 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. 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. 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. 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. 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. 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. 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. 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. 17.
    A. G. Ganak and T. A. Corbi. The dawning of the autonomic computing era. IBM Systems Journal, 42(1):5–18, 2003.CrossRefGoogle Scholar
  18. 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. 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. 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. 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. 22.
    David Garlan, Bradley Schmerl, and Jichuan Chang. Using gauges for architecture-based monitoring and adaptation. In CDSA.Google Scholar
  23. 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. 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.CrossRefGoogle Scholar
  25. 25.
    Malcolm Gladwell. Blink: The Power of Thinking Without Thinking. Penguin, January 2006.Google Scholar
  26. 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. 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. 28.
    IBM. An architectural blueprint for autonomic computing, 2004.Google Scholar
  29. 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. 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. 31.
    Daniel Le Mètayer. Describing software architecture styles using graph grammars. IEEE Transactions on Software Engineering, 24(7):521–533,1998.CrossRefGoogle Scholar
  32. 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. 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. 34.
    Microsoft Corporation. Dynamic systems initiative. http://www.microsoft.com/windowsserversystem/dsi/, 2003.
  35. 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. 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. 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. 38.
    Peyman Oreizy. Open Architecture Software: A Flexible Approach to DecentralizedSoftware Evolution. PhD thesis, University of California, Irvine, 2000.Google Scholar
  39. 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.CrossRefGoogle Scholar
  40. 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. 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. 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. 43.
    Mary Shaw. Beyond objects: A software design paradigm based on processcontrol. Software Engineering Notes, 20(1):27–38, January 1995.CrossRefGoogle Scholar
  44. 44.
    Mary Shaw and David Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, 1996.Google Scholar
  45. 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. 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. 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. 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. 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.CrossRefGoogle Scholar
  50. 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

Copyright information

© Springer-Verlag US 2009

Authors and Affiliations

  • David Garlan
    • 1
  • Bradley Schmerl
    • 1
  • Shang-Wen Cheng
    • 1
  1. 1.Carnegie Mellon UniversityPittsburghUSA

Personalised recommendations