Automatic Control and Computer Sciences

, Volume 51, Issue 7, pp 463–478 | Cite as

Component-Based Systems Reconfigurations Using Graph Transformations with GROOVE

Article

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.

Keywords

component-based systems dynamic reconfigurations consistency simulation relation implementation GROOVE 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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
  2. 2.
    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.CrossRefGoogle Scholar
  3. 3.
    Dijkstra, E.W., Guarded commands, nondeterminacy and formal derivation of programs, Commun. ACM, 1975, vol. 18, pp. 453–457.MathSciNetCrossRefMATHGoogle Scholar
  4. 4.
    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.CrossRefGoogle Scholar
  5. 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. 6.
    Schneider, S. and Treharne, H., Csp theorems for communicating b machines, Formal Asp. Comput., 2005, pp. 390–422.Google Scholar
  7. 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
  8. 8.
    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.CrossRefGoogle Scholar
  9. 9.
    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.CrossRefMATHGoogle Scholar
  10. 10.
    Hamilton, A.G., Logic for Mathematicians, Cambridge: Cambridge University Press, 1978.MATHGoogle Scholar
  11. 11.
    Hoare, C.A.R., An axiomatic basis for computer programming, Commun. ACM, 1969, vol. 12, pp. 576–580.CrossRefMATHGoogle Scholar
  12. 12.
    Garlan, D., Software architecture, in Wiley Encyclopedia of Computer Science and Engineering, Wah, B.W., Ed., John Wiley & Sons, Inc., 2008.Google Scholar
  13. 13.
    Le Metayer, D., Describing software architecture styles using graph grammars, IEEE Trans. Software Eng., 1998, vol. 24, pp. 521–533.CrossRefGoogle Scholar
  14. 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. 15.
    Handbook of Graph Grammars and Computing by Graph Transformations, vol. 1: Foundations, Rozenberg, G., Ed., World Scientific, 1997.Google Scholar
  16. 16.
    Milner, R., Communication and Concurrency, Prentice-Hall, Inc., 1989.MATHGoogle Scholar
  17. 17.
    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.CrossRefGoogle Scholar
  18. 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
  19. 19.
    Kramer, J. and Magee, J., The evolving philosophers problem: Dynamic change management, IEEE Trans. Software Eng., 1990, vol. 16, pp. 1293–1306.CrossRefGoogle Scholar
  20. 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
  21. 21.
    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.CrossRefGoogle Scholar
  22. 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. 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
  24. 24.
    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.CrossRefGoogle Scholar

Copyright information

© Allerton Press, Inc. 2017

Authors and Affiliations

  1. 1.FEMTO-ST CNRS and University Bourgogne Franche-ComtéBesançonFrance

Personalised recommendations