Abstract
Component-based systems permit standardisation and re-usability of code through the use of components. The architecture of component-based systems can be modified thanks to dynamic reconfigurations, which contribute to systems’ (self-)adaptation by adding or removing components without incurring any system downtime. In this context, the present article describes a formal model for dynamic reconfigurations of component-based systems. It provides a way of expressing runtime reconfigurations of a system and proving their correctness according to a static invariant for consistency constraints and/or a user-provided post-condition. Guarded reconfigurations allow us to build reconfigurations based on primitive reconfiguration operations using sequences of reconfigurations and the alternative and the repetitive constructs, while preserving configuration consistency. A practical contribution consists of the implementation of a component-based model using the GROOVE graph transformation tool. This implementation is illustrated on a cloud-based multi-tier application hosting environment managed as a component-based system. In addition, after enriching the model with interpreted configurations and reconfigurations in a consistency compatible manner, component systems’ implementations are related to their specifications by a simulation relation.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
De Lemos, R., Giese, H., Müller, H.A., Shaw, M., Andersson, J., Litoiu, M., Schmerl, B., Tamura, G., Villegas, N.M., Vogel, T., et al., Software engineering for self-adaptive systems: A second research roadmap, in Software Engineering for Self-Adaptive Systems II, Springer, 2013, pp. 1–32.
Lanoix, A., Dormoy, J., and Kouchnarenko, O., Combining proof and model-checking to validate reconfigurable architectures, Electron. Notes Theor. Comput. Sci., 2011, vol. 279, pp. 43–57.
Dijkstra, E.W., Guarded commands, nondeterminacy and formal derivation of programs, Commun. ACM, 1975, vol. 18, pp. 453–457.
Ghamarian, A.H., de Mol, M., Rensink, A., Zambon, E., and Zimakova, M., Modelling and analysis using GROOVE, Int. J. Software Tools Technol. Transfer, 2012, vol. 14, pp. 15–40.
Bruneton, E., Coupaye, T., Leclercq, M., Quema, V., and Stefani, J.B., The fractal component model and its support in java, Software: Pract. Exper., 2006, vol. 36, pp. 1257–1284.
Schneider, S. and Treharne, H., Csp theorems for communicating b machines, Formal Asp. Comput., 2005, pp. 390–422.
Seinturier, L., Merle, P., Rouvoy, R., Romero, D., Schiavoni, V., and Stefani, J.B., A component-based middleware platform for reconfigurable service-oriented architectures, Software: Pract. Exper., 2012, vol. 42, pp. 559–583.
Garlan, D., Software architecture: A travelogue, in Proceedings of the on Future of Software Engineering, FOSE 2014, Herbsleb, J.D. and Dwyer, M.B., Eds., Hyderabad, 2014, pp. 29–39.
Dormoy, J., Kouchnarenko, O., and Lanoix, A., Using temporal logic for dynamic reconfigurations of components, Lect. Notes Comput. Sci., 2012, vol. 6921, pp. 200–217.
Hamilton, A.G., Logic for Mathematicians, Cambridge: Cambridge University Press, 1978.
Hoare, C.A.R., An axiomatic basis for computer programming, Commun. ACM, 1969, vol. 12, pp. 576–580.
Garlan, D., Software architecture, in Wiley Encyclopedia of Computer Science and Engineering, Wah, B.W., Ed., John Wiley & Sons, Inc., 2008.
Le Metayer, D., Describing software architecture styles using graph grammars, IEEE Trans. Software Eng., 1998, vol. 24, pp. 521–533.
Hirsch, D., Inverardi, P., and Montanari, U., Modeling software architecutes and styles with graph grammars and constraint solving, in Software Architecture, TC2 First Working IFIP Conference on Software Architecture (WICSA1), February 22–24, 1999, Donohoe, P., Ed., San Antonio, 1999, pp. 127–144.
Handbook of Graph Grammars and Computing by Graph Transformations, vol. 1: Foundations, Rozenberg, G., Ed., World Scientific, 1997.
Milner, R., Communication and Concurrency, Prentice-Hall, Inc., 1989.
Kouchnarenko, O. and Weber, J.F., Adapting component-based systems at runtime via policies with temporal patterns, Lect. Notes Comput. Sci., 2014, vol. 8348, pp. 234–253.
Ma, X., Baresi, L., Ghezzi, C., Panzica La Manna, V., and Lu, J., Version-consistent dynamic reconfiguration of component-based distributed systems, in Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, ACM (2011), pp. 245–255.
Kramer, J. and Magee, J., The evolving philosophers problem: Dynamic change management, IEEE Trans. Software Eng., 1990, vol. 16, pp. 1293–1306.
Vandewoude, Y., Ebraert, P., Berbers, Y., and D’Hondt, T., Tranquility: A low disruptive alternative to quiescence for ensuring safe dynamic updates, IEEE Trans. Software Eng., 2007, pp. 856–868.
Kouchnarenko, O. and Weber, J.F., Decentralised evaluation of temporal patterns over component-based systems at runtime, Lect. Notes Comput. Sci., 2015, vol. 8997, pp. 108–126.
Boyer, F., Gruber, O., and Pous, D., Robust reconfigurations of component assemblies, Int. Conf. on Software Engineering, ICSE '13, Piscataway, NJ, 2013, pp. 13–22.
Kouchnarenko, O. and Weber, J.F., Practical analysis framework for component systems with dynamic reconfigurations, ICFEM’15, 17th Int. Conf. on Formal Engineering Methods, 2015, pp. 287–303.
Kähkönen, K., Lampinen, J., Heljanko, K., and Niemelä, I., The lime interface specification language and runtime monitoring tool, Lect. Notes Comput. Sci., 2009, vol. 5779, pp. 93–100.
Author information
Authors and Affiliations
Corresponding author
Additional information
Published in Russian Modelirovanie i Analiz Informatsionnykh Sistem, 2016, Vol. 23, No. 6, pp. 804–825.
The article was translated by the authors.
About this article
Cite this article
Kouchnarenko, O., Weber, JF. Component-Based Systems Reconfigurations Using Graph Transformations with GROOVE. Aut. Control Comp. Sci. 51, 463–478 (2017). https://doi.org/10.3103/S014641161707015X
Received:
Published:
Issue Date:
DOI: https://doi.org/10.3103/S014641161707015X