Component-Based Systems Reconfigurations Using Graph Transformations with GROOVE
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.
Keywordscomponent-based systems dynamic reconfigurations consistency simulation relation implementation GROOVE
Unable to display preview. Download preview PDF.
- 1.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.CrossRefGoogle Scholar
- 5.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.Google Scholar
- 6.Schneider, S. and Treharne, H., Csp theorems for communicating b machines, Formal Asp. Comput., 2005, pp. 390–422.Google Scholar
- 7.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.Google Scholar
- 12.Garlan, D., Software architecture, in Wiley Encyclopedia of Computer Science and Engineering, Wah, B.W., Ed., John Wiley & Sons, Inc., 2008.Google Scholar
- 14.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.Google Scholar
- 15.Handbook of Graph Grammars and Computing by Graph Transformations, vol. 1: Foundations, Rozenberg, G., Ed., World Scientific, 1997.Google Scholar
- 18.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.Google Scholar
- 20.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.Google Scholar
- 22.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.Google Scholar
- 23.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.Google Scholar