Abstract
An architectural approach to self-adaptive systems involves runtime change of system configuration (i.e., the system’s components, their bindings and operational parameters) and behaviour update (i.e., component orchestration). The architecture should allow for both configuration and behaviour changes selected from pre-computed change strategies and for synthesised change strategies at run-time to satisfy changes in the environment, changes in the specified goals of the system or in response to failures or degradation in quality attributes, such as performance, of the system itself. Although controlling configuration and behaviour at runtime has been discussed and applied to architectural adaptation, architectures for self-adaptive systems often compound these two aspects reducing the potential for adaptability. In this work we provide an extended description of our proposal for a reference architecture that allows for coordinated yet transparent and independent adaptation of system configuration and behaviour.
We acknowledge financial support for this work from ANPCYT PICT 2012-0724, ANPCYT PICT 2011-1774, ANPCYT PICT 2013-2341, UBACYT 036, UBACYT 0384, CONICET PIP 11220110100596CO, MEALS 295261, PIDDEF 04/ESP/15/BAA.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Sykes, D., Heaven, W., Magee, J., Kramer, J.: From goals to components: a combined approach to self-management. In: Proceedings of the 2008 International Workshop on Software Engineering for Adaptive and Self-managing Systems, SEAMS 2008, pp. 1–8. ACM, New York (2008)
Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003). https://doi.org/10.1109/MC.2003.1160055
Garlan, D., Cheng, S., Huang, A., Schmerl, B.R., Steenkiste, P.: Rainbow: architecture-based self-adaptation with reusable infrastructure. IEEE Comput. 37(10), 46–54 (2004)
Filieri, A., Hoffmann, H., Maggio, M.: Automated design of self-adaptive software with control-theoretical formal guarantees. In: Jalote, P., Briand, L.C., van der Hoek, A. (eds.) 36th International Conference on Software Engineering, ICSE 2014, Hyderabad, India, 31 May–07 June 2014, ACM, 2014, pp. 299–310. https://doi.org/10.1145/2568225.2568272
Parekh, S.: Feedback control techniques for performance management of computing systems. Ph.D. dissertation, Seattle, WA, USA (2010)
Baresi, L., Guinea, S.: Dynamo and self-healing BPEL compositions. In: Companion to the Proceedings of the 29th International Conference on Software Engineering, ICSE COMPANION 2007, pp. 69–70. IEEE Computer Society, Washington, DC. https://doi.org/10.1109/ICSECOMPANION.2007.31
Nau, D., Ghallab, M., Traverso, P.: Automated Planning: Theory & Practice. Morgan Kaufmann Publishers Inc., San Francisco (2004)
Ramadge, P.J., Wonham, W.M.: The control of discrete event systems. Proc. IEEE 77(1), 81–98 (1989)
Kang, S., Garlan, D.: Architecture-based planning of software evolution. Int. J. Softw. Eng. Knowl. Eng. 24(2), 211–242 (2014)
Arshad, N., Heimbigner, D., Wolf, A.L.: Deployment and dynamic reconfiguration planning for distributed software systems. Softw. Qual. J. 15(3), 265–281 (2007)
Tajalli, H., Garcia, J., Edwards, G., Medvidovic, N.: Plasma: a plan-based layered architecture for software model-driven adaptation. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE 2010, pp. 467–476. ACM, New York (2010). https://doi.org/10.1145/1858996.1859092
D’Ippolito, N., Braberman, V.A., Piterman, N., Uchitel, S.: Synthesizing nonanomalous event-based controllers for liveness goals. ACM Trans. Softw. Eng. Methodol. 22(1), 9 (2013)
Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: International Conference on Software Engineering, ISCE 2007, Workshop on the Future of Software Engineering, FOSE 2007, 23–25 May 2007, Minneapolis, MN, USA, pp. 259–268 (2007)
Dashofy, E.M., van der Hoek, A., Taylor, R.N.: Towards architecture-based self-healing systems. In: Proceedings of the First Workshop on Self-healing Systems, WOSS 2002, pp. 21–26. ACM, New York (2002)
Batista, T., Joolia, A., Coulson, G.: Managing dynamic reconfiguration in component-based systems. In: Morrison, R., Oquendo, F. (eds.) EWSA 2005. LNCS, vol. 3527, pp. 1–17. Springer, Heidelberg (2005). https://doi.org/10.1007/11494713_1
Oreizy, P., Gorlick, M.M., Taylor, R.N., Heimbigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D.S., Wolf, A.L.: An architecture-based approach to self-adaptive software. IEEE Intell. Syst. 14(3), 54–62 (1999)
Inverardi, P., Tivoli, M.: Software architecture for correct components assembly. In: Bernardo, M., Inverardi, P. (eds.) SFM 2003. LNCS, vol. 2804, pp. 92–121. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-540-39800-4_6
Leva, A., Maggio, M., Papadopoulos, A.V., Terraneo, F.: Control-Based Operating System Design, Ser. Control Engineering Series, IET (2013)
Kramer, J., Magee, J.: The evolving philosophers problem: dynamic change management. IEEE Trans. Softw. Eng. 16(11), 1293–1306 (1990). https://doi.org/10.1109/32.60317
Vandewoude, Y., Ebraert, P., Berbers, Y., D’Hondt, T.: Tranquility: a low disruptive alternative to quiescence for ensuring safe dynamic updates. IEEE Trans. Softw. Eng. 33(12), 856–868 (2007). https://doi.org/10.1109/TSE.2007.70733
Ghezzi, C., Greenyer, J., La Manna, V.P.: Synthesizing dynamically updating controllers from changes in scenario-based specifications. In: Proceedings of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2012, pp. 145–154. IEEE Press, Piscataway (2012). http://dl.acm.org/citation.cfm?id=2666795.2666819
Sykes, D., Magee, J., Kramer, J.: FlashMob: distributed adaptive self-assembly. In: Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2011, pp. 100–109. ACM, New York (2011)
Di Marco, A., Inverardi, P., Spalazzese, R.: Synthesizing self-adaptive connectors meeting functional and performance concerns. In: Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2013, pp. 133–142. IEEE Press, Piscataway (2013)
Bennaceur, A., Inverardi, P., Issarny, V., Spalazzese, R.: Automated synthesis of connectors to support software evolution. ERCIM News 2012, 88 (2012)
Issarny, V., Bennaceur, A., Bromberg, Y.-D.: Middleware-layer connector synthesis: beyond state of the art in middleware interoperability. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 217–255. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21455-4_7
D’Ippolito, N., Fischbein, D., Chechik, M., Uchitel, S.: MTSA: the modal transition system analyser. In: 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2008), 15–19 September 2008, L’Aquila, Italy, pp. 475–476. IEEE (2008). https://doi.org/10.1109/ASE.2008.78
D’Ippolito, N., Braberman, V.A., Piterman, N., Uchitel, S.: Synthesis of live behaviour models for fallible domains. In: Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, Waikiki, Honolulu, HI, USA, 21–28 May 2011, pp. 211–220 (2011)
D’Ippolito, N., Braberman, V.A., Piterman, N., Uchitel, S.: The modal transition system control problem. In: FM 2012: Formal Methods - Proceedings of 18th International Symposium, Paris, France, 27–31 August 2012, pp. 155–170 (2012)
D’Ippolito, N., Braberman, V.A., Kramer, J., Magee, J., Sykes, D., Uchitel, S.: Hope for the best, prepare for the worst: multi-tier control for adaptive systems. In: Jalote, P., Briand, L.C., van der Hoek, A. (eds.) 36th International Conference on Software Engineering, ICSE 2014, Hyderabad, India, 31 May–07 June 2014, pp. 688–699. ACM (2014)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972). https://doi.org/10.1145/361598.361623
Braberman, V.A., D’Ippolito, N., Kramer, J., Sykes, D., Uchitel, S.: MORPH: a reference architecture for configuration and behaviour self-adaptation. In: Filieri, A., Maggio, M. (eds.) Proceedings of the 1st International Workshop on Control Theory for Software Engineering, CTSE@SIGSOFT FSE 2015, Bergamo, Italy, 31 August–04 September 2015, pp. 9–16. ACM (2015). https://doi.org/10.1145/2804337.2804339
Hirsch, D., Kramer, J., Magee, J., Uchitel, S.: Modes for software architectures. In: Gruhn, V., Oquendo, F. (eds.) EWSA 2006. LNCS, vol. 4344, pp. 113–126. Springer, Heidelberg (2006). https://doi.org/10.1007/11966104_9
McVeigh, A., Kramer, J., Magee, J.: Evolve: tool support for architecture evolution. In: Taylor, R.N., Gall, H., Medvidovic, N. (eds.) Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, Waikiki, Honolulu, HI, USA, 21–28 May 2011, pp. 1040–1042. ACM (2011). https://doi.org/10.1145/1985793.1985990
McVeigh, A., Kramer, J., Magee, J.: Using resemblance to support component reuse and evolution, pp. 49–56 (2006). https://doi.org/10.1145/1181195.1181206
Lamsweerde, A.V.: Goal-oriented requirements engineering: a guided tour. In: Proceedings of the Fifth IEEE International Symposium on Requirements Engineering, IEEE Computer Society Washington, DC, USA, p. 0249. IEEE Computer Society, Los Alamitos (2001)
Yu, E.S.K.: Towards modeling and reasoning support for early-phase requirements engineering. In: Proceedings of the 3rd IEEE International Symposium on Requirements Engineering, RE 1997, pp. 226–235. IEEE Computer Society, Washington, DC (1997). http://dl.acm.org/citation.cfm?id=827255.827807
Jackson, M.: The world and the machine. In: Proceedings of the 17th International Conference on Software Engineering, ICSE 1995, pp. 283–292. ACM, New York (1995). https://doi.org/10.1145/225014.225041
Jackson, M.: Software Requirements & Specifications: A Lexicon of Practice, Principles and Prejudices. ACM Press/Addison-Wesley Publishing Co., New York (1995)
Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying distributed software architectures. In: Schäfer, W., Botella, P. (eds.) ESEC 1995. LNCS, vol. 989, pp. 137–153. Springer, Heidelberg (1995). https://doi.org/10.1007/3-540-60406-5_12
Garlan, D., Monroe, R., Wile, D.: ACME: an architecture description interchange language. In: Proceedings of the 1997 Conference of the Centre for Advanced Studies on Collaborative Research, CASCON 1997, p. 7. IBM Press (1997). http://dl.acm.org/citation.cfm?id=782010.782017
Heitmeyer, C.L.: Software Cost Reduction. John Wiley & Sons Inc. (2002). https://doi.org/10.1002/0471028959.sof307
Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987). https://doi.org/10.1016/0167-6423. 90035–90039
Sykes, D., Corapi, D., Magee, J., Kramer, J., Russo, A., Inoue, K.: Learning revised models for planning in adaptive systems. In: Proceedings of the 2013 International Conference on Software Engineering, Ser., ICSE 2013, pp. 63–71. IEEE Press, Piscataway (2013)
Hollnagel, E.: Human Reliability Analysis: Context and Control, A Volume in the Computers and People Series. Academic Press (1993). https://books.google.com.ar/books?id=jGtRAAAAMAAJ
de Lemos, R., Fields, B., Saeed, A.: Analysis of safety requirements in the context of system faults and human errors. In: Proceedings of the 1995 International Symposium and Workshop on Systems Engineering of Computer Based Systems, pp. 374–381 (1995)
Bertoli, P., Cimatti, A., Pistore, M., Roveri, M., Traverso, P.: MBP: a model based planner. In: Proceedings of the IJCAI 2001 Workshop on Planning under Uncertainty and Incomplete Information (2001)
Cimatti, A., Clarke, E.M., Giunchiglia, F., Roveri, M.: NUSMV: a new symbolic model checker. In: STTT, vol. 2, no. 4, pp. 410–425 (2000). https://doi.org/10.1007/s100090050046
Pistore, M., Barbon, F., Bertoli, P., Shaparau, D., Traverso, P.: Planning and monitoring web service composition. In: Bussler, C., Fensel, D. (eds.) AIMSA 2004. LNCS (LNAI), vol. 3192, pp. 106–115. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30106-6_11
Gat, E., Bonnasso, R.P., Murphy, R.: On three-layer architectures. In: Artificial Intelligence and Mobile Robots, pp. 195–210. AAAI Press (1997)
Braberman, V.A., D’Ippolito, N., Piterman, N., Sykes, D., Uchitel, S.: Controller synthesis: from modelling to enactment. In: 35th International Conference on Software Engineering, ICSE 2013, San Francisco, CA, USA, 18–26 May 2013, pp. 1347–1350 (2013)
Eighth IEEE International Conference on Self-Adaptive and Self-Organizing Systems, SASO 2014, London, United Kingdom, 8–12 September 2014. IEEE (2014). http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=6998166
Engels, G., Bencomo, N. (eds.): Proceedings of 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2014, Hyderabad, India, 2–3 June 2014. ACM (2014). http://dl.acm.org/citation.cfm?id=2593929
Poole, D.L., Mackworth, A.K.: Artificial Intelligence: Foundations of Computational Agents. Cambridge University Press, New York (2010)
da Silva, C.E., de Lemos, R.: A framework for automatic generation of processes for self-adaptive software systems. Informatica (Slovenia) 35(1), 3–13 (2011)
Cassandras, C.G., Lafortune, S.: Introduction to Discrete Event Systems, 2nd edn. Springer, Heidelberg (2010). https://doi.org/10.1007/978-0-387-68612-7
Allen, A.O.: Probability, Statistics, and Queueing Theory with Computer Science Applications. Academic Press Inc., Orlando (1978)
Cimatti, A., Pistore, M., Roveri, M., Traverso, P.: Weak, strong, and strong cyclic planning via symbolic model checking. Artif. Intell. 147(1–2), 35–84 (2003)
Giannakopoulou, D., Păsăreanu, C.S.: Context synthesis. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 191–216. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21455-4_6
Cobleigh, J.M., Giannakopoulou, D., PĂsĂreanu, C.S.: Learning assumptions for compositional verification. In: Garavel, H., Hatcliff, J. (eds.) TACAS 2003. LNCS, vol. 2619, pp. 331–346. Springer, Heidelberg (2003). https://doi.org/10.1007/3-540-36577-X_24
Swanson, J., Cohen, M.B., Dwyer, M.B., Garvin, B.J., Firestone, J.: Beyond the rainbow: self-adaptive failure avoidance in configurable systems. In: Cheung, S., Orso, A., Storey, M.D. (eds.) Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, (FSE-22), Hong Kong, China, 16–22 November 2014, pp. 377–388. ACM (2014). https://doi.org/10.1145/2635868.2635915
Brun, Y., et al.: Engineering self-adaptive systems through feedback loops. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 48–70. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02161-9_3
Diao, Y., Hellerstein, J.L., Parekh, S., Griffith, R., Kaiser, G.E., Phung, D.: A control theory foundation for self-managing computing systems. IEEE J. Sel. Areas Commun. 23(12), 2213–2222 (2006)
Kephart, J., Chess, D.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)
Lu, C., Lu, Y., Abdelzaher, T.F., Stankovic, J.A., Son, S.H.: Feedback control architecture and design methodology for service delay guarantees in web servers. IEEE Trans. Parallel Distrib. Syst. 17(9), 1014–1027 (2006)
Kihl, M., Robertsson, A., Andersson, M., Wittenmark, B.: Control-theoretic analysis of admission control mechanisms for web server systems. World Wide Web 11(1), 93–116 (2008)
Cheng, B.H.C., et al.: Software engineering for self-adaptive systems: a research roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 1–26. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02161-9_1
Baresi, L., Pasquale, L.: Live goals for adaptive service compositions. In: Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2010, pp. 114–123. ACM, New York (2010). https://doi.org/10.1145/1808984.1808997
Nakagawa, H., Ohsuga, A., Honiden, S.: Constructing self-adaptive systems using a KAOS model. In: Proceedings of the 2008 Second IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops, SASOW 2008, pp. 132–137. IEEE Computer Society, Washington, DC (2008). https://doi.org/10.1109/SASOW.2008.35
Whittle, J., Sawyer, P., Bencomo, N., Cheng, B.H.C., Bruel, J.-M.: Relax: a language to address uncertainty in self-adaptive systems requirement. Requir. Eng. 15(2), 177–196 (2010). https://doi.org/10.1007/s00766-010-0101-0
Vogel, T., Giese, H.: Model-driven engineering of self-adaptive software with Eurema. ACM Trans. Auton. Adapt. Syst. 8(4), 1801–1833 (2014)
Vromant, P., Weyns, D., Malek, S., Andersson, J.: On interacting control loops in self-adaptive systems. In: Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2011, pp. 202–207. ACM, New York (2011)
Cook, J.E., Dage, J.A.: Highly reliable upgrading of components. In: Proceedings of the 21st International Conference on Software Engineering, ICSE 1999, pp. 203–212. ACM, New York (1999). https://doi.org/10.1145/302405.302466
Jalote, P., Briand, L.C., van der Hoek, A. (eds.): 36th International Conference on Software Engineering, ICSE 2014, Hyderabad, India, 31 May–07 June 2014. ACM (2014)
Bernardo, M., Issarny, V. (eds.): SFM 2011. LNCS, vol. 6659. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21455-4
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Braberman, V., D’Ippolito, N., Kramer, J., Sykes, D., Uchitel, S. (2017). An Extended Description of MORPH: A Reference Architecture for Configuration and Behaviour Self-Adaptation. In: de Lemos, R., Garlan, D., Ghezzi, C., Giese, H. (eds) Software Engineering for Self-Adaptive Systems III. Assurances. Lecture Notes in Computer Science(), vol 9640. Springer, Cham. https://doi.org/10.1007/978-3-319-74183-3_13
Download citation
DOI: https://doi.org/10.1007/978-3-319-74183-3_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-74182-6
Online ISBN: 978-3-319-74183-3
eBook Packages: Computer ScienceComputer Science (R0)