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













Similar content being viewed by others
Notes
SPECjEnterprise2010 is a trademark of the Standard Performance Evaluation Corp. (SPEC). The SPECjEnterprise2010 results or findings in this publication have not been reviewed or accepted by SPEC; therefore, no comparison nor performance inference can be made against any published SPEC result. The official Web site for SPECjEnterprise2010 is located at http://www.spec.org/jEnterprise2010.
References
Agrawal A, Karsai G, Shi F (2003) A UML-based graph transformation approach for implementing domain-specific model transformations. J Softw Syst Model 1–19
Becker S, Koziolek H, Reussner R (2009) The Palladio component model for model-driven performance prediction. J Syst Softw 82(1):3–22
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–12
Cheng B et al. (2009) Software engineering for self-adaptive systems: a research roadmap. Softw Eng Self-Adaptive Syst 1–26
Cheng SW, Garlan D (2012) Stitch: a language for architecture-based self-adaptation. J Syst Softw 85(12):2860–2875
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–8
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–95
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 proceedings
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–605
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–309
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, Germany
Garlan D, Cheng S, Huang A, Schmerl B, Steenkiste P (2004) Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10):46–54
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–99
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–90
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–77
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–12
Kounev S, Brosig F, Huber N (2012) Descartes meta-model (DMM). Technical report, Karlsruhe Institute of Technology (KIT), http://www.descartes-research.net/metamodel/, to be published
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–108
Koziolek H (2010) Performance evaluation of component-based software systems: a survey. Perform Eval 67(8):634–658
Kramer J, Magee J (2007) Self-managed systems: an architectural challenge. In: Future of software engineering (FOSE), pp 259–268
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–116
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–693
OASIS (2007) WS-BPEL Version 2.0. http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html
Object Management Group (2012) Structured Metrics Meta-Model (SMM). http://www.omg.org/spec/SMM/1.0/
Oreizy P et al (1999) An architecture-based approach to self-adaptive software. Intell Syst Appl, IEEE 14(3):54–62
S/T/A Framework and Meta-Model (2013) http://www.descartes-research.net/tools/
van der Aalst W, ter Hofstede A (2005) YAWL: yet another workflow language. Inf Syst 30(4):245–275
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
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–248
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–58
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–182
Author information
Authors and Affiliations
Corresponding author
Additional information
This work was partly funded by the German Research Foundation (DFG) under Grant No. KO 34456-1.
Rights and permissions
About this article
Cite this article
Huber, N., van Hoorn, A., Koziolek, A. et al. Modeling run-time adaptation at the system architecture level in dynamic service-oriented environments. SOCA 8, 73–89 (2014). https://doi.org/10.1007/s11761-013-0144-4
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11761-013-0144-4