Modeling run-time adaptation at the system architecture level in dynamic service-oriented environments

  • Nikolaus HuberEmail author
  • André van Hoorn
  • Anne Koziolek
  • Fabian Brosig
  • Samuel Kounev
Special Issue Paper


Today, software systems are more and more executed in dynamic, virtualized environments. These environments host diverse applications of different parties, sharing the underlying resources. The goal of this resource sharing is to utilize resources efficiently while ensuring that quality-of-service requirements are continuously satisfied. In such scenarios, complex adaptations to changes in the system environment are still largely performed manually by humans. Over the past decade, autonomic self-adaptation techniques aiming to minimize human intervention have become increasingly popular. However, given that adaptation processes are usually highly system-specific, it is a challenge to abstract from system details, enabling the reuse of adaptation strategies. In this paper, we present S/T/A, a modeling language to describe system adaptation processes at the system architecture level in a generic, human-understandable and reusable way. We apply our approach to multiple different realistic contexts (dynamic resource allocation, run-time adaptation planning, etc.). The results show how a holistic model-based approach can close the gap between complex manual adaptations and their autonomous execution.


Adaptation Language Run-time  Meta-model  Model-based 


  1. 1.
    Agrawal A, Karsai G, Shi F (2003) A UML-based graph transformation approach for implementing domain-specific model transformations. J Softw Syst Model 1–19Google Scholar
  2. 2.
    Becker S, Koziolek H, Reussner R (2009) The Palladio component model for model-driven performance prediction. J Syst Softw 82(1):3–22Google Scholar
  3. 3.
    Brosig F, Huber N, Kounev S (2012) Modeling parameter and context dependencies in online architecture-Level Performance Models. In: International symposium on component based software engineering (CBSE), ACM, pp 3–12Google Scholar
  4. 4.
    Cheng B et al. (2009) Software engineering for self-adaptive systems: a research roadmap. Softw Eng Self-Adaptive Syst 1–26Google Scholar
  5. 5.
    Cheng SW, Garlan D (2012) Stitch: a language for architecture-based self-adaptation. J Syst Softw 85(12):2860–2875CrossRefGoogle Scholar
  6. 6.
    Cheng SW, Garlan D, Schmerl B (2006) Architecture-based self-adaptation in the presence of multiple objectives. In: International workshop software engineering for adaptive and self-managing systems (SEAMS), ACM, pp 2–8Google Scholar
  7. 7.
    da Silva C, de Lemos R (2009) Using dynamic workflows for coordinating self-adaptation of software systems. In: Software engineering for adaptive and self-managing systems (SEAMS). IEEE, pp 86–95Google Scholar
  8. 8.
    de Lemos R, Giese H, Müller H, Shaw M (2011) Software engineering for self-adaptive systems: a second research roadmap. In: Software engineering for self-adaptive systems, no. 10431 in dagstuhl seminar proceedingsGoogle Scholar
  9. 9.
    Esfahani N, Malek S, Sousa J, Gomaa H, Menascé D (2009) A modeling language for activity-oriented composition of service-oriented software systems. In: International conference on model driven engineering languages and systems (MODELS), ACM, pp 591–605Google Scholar
  10. 10.
    Fischer T, Niere J, Torunski L, Zündorf A (2000) Story diagrams: a new graph rewrite language based on the unified modeling language and java. Theory Appl Graph Transform, pp 296–309Google Scholar
  11. 11.
    Frey S, van Hoorn A, Jung R, Hasselbring W, Kiel B (2011) MAMBA: A measurement architecture for model-based analysis. Technical report, University of Kiel, GermanyGoogle Scholar
  12. 12.
    Garlan D, Cheng S, Huang A, Schmerl B, Steenkiste P (2004) Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10):46–54CrossRefGoogle Scholar
  13. 13.
    Huber N, Brosig F, Kounev S (2011) Model-based self-adaptive resource allocation in virtualized environments. In: International symposium on software engineering for adaptive and self-managing systems (SEAMS), ACM, pp 90–99Google Scholar
  14. 14.
    Huber N, Brosig F, Kounev S (2012a) Modeling dynamic virtualized resource landscapes. In: International conference on the quality of software architectures (QoSA), ACM, pp 81–90Google Scholar
  15. 15.
    Huber N, van Hoorn A, Koziolek A, Brosig F, Kounev S (2012b) S/T/A: meta-modeling run-time adaptation in component-based system architectures. In: International conference on e-business engineering (ICEBE), IEEE, pp 70–77Google Scholar
  16. 16.
    Kephart J, Walsh W (2004) An artificial intelligence perspective on autonomic computing policies. In: International workshop on policies for distributed systems and networks. IEEE, pp 3–12Google Scholar
  17. 17.
    Kounev S, Brosig F, Huber N (2012) Descartes meta-model (DMM). Technical report, Karlsruhe Institute of Technology (KIT),, to be published
  18. 18.
    Koziolek A, Reussner R (2011) Towards a generic quality optimisation framework for component-based system models. In: International symposium on component-based software engineering (CBSE), ACM, pp 103–108Google Scholar
  19. 19.
    Koziolek H (2010) Performance evaluation of component-based software systems: a survey. Perform Eval 67(8):634–658CrossRefGoogle Scholar
  20. 20.
    Kramer J, Magee J (2007) Self-managed systems: an architectural challenge. In: Future of software engineering (FOSE), pp 259–268Google Scholar
  21. 21.
    Martens A, Koziolek H, Becker S, Reussner RH (2010) Automatically improve software models for performance, reliability and cost using genetic algorithms. In: International conference on performance engineering (ICPE), ACM, pp 105–116Google Scholar
  22. 22.
    Maswar F, Chaudron MRV, Radovanovic I, Bondarev E (2007) Improving architectural quality properties through model transformations. In: Software engineering research and practice. CSREA Press, pp 687–693Google Scholar
  23. 23.
  24. 24.
    Object Management Group (2012) Structured Metrics Meta-Model (SMM).
  25. 25.
    Oreizy P et al (1999) An architecture-based approach to self-adaptive software. Intell Syst Appl, IEEE 14(3):54–62CrossRefGoogle Scholar
  26. 26.
    S/T/A Framework and Meta-Model (2013)
  27. 27.
    van der Aalst W, ter Hofstede A (2005) YAWL: yet another workflow language. Inf Syst 30(4):245–275CrossRefGoogle Scholar
  28. 28.
    van Hoorn A (2013) Online capacity management for increased resource efficiency of component-based software systems. PhD thesis, University of Kiel, Germany, work in progress Google Scholar
  29. 29.
    van Hoorn A, Waller J, Hasselbring W (2012) Kieker: a framework for application performance monitoring and dynamic software analysis. In: International conference on performance engineering (ICPE), ACM, pp 247–248Google Scholar
  30. 30.
    von Massow R, van Hoorn A, Hasselbring W (2011) Performance simulation of runtime reconfigurable component-based software architectures. In: European conference on software architecture (ECSA). Springer, pp 43–58Google Scholar
  31. 31.
    Vogel T, Giese H (2012) Requirements and assessment of languages and frameworks for adaptation models. In: International conference on models in software engineering (MODELS). Springer, pp 167–182Google Scholar

Copyright information

© Springer-Verlag London 2013

Authors and Affiliations

  • Nikolaus Huber
    • 1
    Email author
  • André van Hoorn
    • 2
  • Anne Koziolek
    • 3
  • Fabian Brosig
    • 1
  • Samuel Kounev
    • 1
  1. 1.Institute for Programme Structures and Data OrganisationKarlsruhe Institute of TechnologyKarlsruheGermany
  2. 2.Institute of Software TechnologyUniversity of StuttgartStuttgartGermany
  3. 3.Department of InformaticsUniversity of ZurichZurichSwitzerland

Personalised recommendations