Madeus: A Formal Deployment Model

Distributed software architecture is composed of multiple interacting modules, or components. Deploying such software consists in installing them on a given infrastructure and leading them to a functional state. However, since each module has its own life cycle and might have various dependencies with other modules, deploying such software is a very tedious task, particularly on massively distributed and heterogeneous infrastructures. To address this problem, many solutions have been designed to automate the deployment process. In this paper, we introduce Madeus, a component-based deployment model for complex distributed software. Madeus accurately describes the life cycle of each component by a Petri net structure, and is able to finely express the dependencies between components. The overall dependency graph it produces is then used to reduce deployment time by parallelizing deployment actions. While this increases the precision and performance of the model, it also increases its complexity. For this reason, the operational semantics needs to be clearly defined to prove results such as the termination of a deployment. In this paper, we formally describe the operational semantics of Madeus, and show how it can be used in a use- case: the deployment of a real and large distributed software (i.e., OpenStack).

[1]  Fabien Dagnat,et al.  Safe reconfiguration of Coqcots and Pycots components , 2016, J. Syst. Softw..

[2]  Christian Pérez,et al.  Increasing Reuse in Component Models through Genericity , 2009, ICSR.

[3]  Philippe Merle,et al.  Deploying on the Grid with DeployWare , 2008, 2008 Eighth IEEE International Symposium on Cluster Computing and the Grid (CCGRID).

[4]  Chang Jun CORBA Component Model , 2003 .

[5]  Antonio Brogi,et al.  From (Incomplete) TOSCA Specifications to Running Applications, with Docker , 2017, SEFM Workshops.

[6]  Roberto Di Cosmo,et al.  Aeolus: A component model for the cloud , 2014, Inf. Comput..

[7]  Ludovic Henrio,et al.  Formally Reasoning on a Reconfigurable Component-Based System - A Case Study for the Industrial World , 2013, FACS.

[8]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming, 2nd Edition , 2002, Addison-Wesley component software series.

[9]  Roberto Di Cosmo,et al.  Automatic Deployment of Services in the Cloud with Aeolus Blender , 2015, ICSOC.

[10]  Hélène Coullon,et al.  Extensibility and Composability of a Multi-Stencil Domain Specific Framework , 2017, International Journal of Parallel Programming.

[11]  Gordon S. Blair,et al.  Component-based architecture: the Fractal initiative , 2009, Ann. des Télécommunications.

[12]  Ludovic Henrio,et al.  Programming distributed and adaptable autonomous components—the GCM/ProActive framework , 2015, Softw. Pract. Exp..

[13]  James Arthur Kohl,et al.  A Component Architecture for High-Performance Scientific Computing , 2006, Int. J. High Perform. Comput. Appl..

[14]  Christian Pérez,et al.  A reconfigurable component model for HPC , 2015, 2015 18th International ACM SIGSOFT Symposium on Component-Based Software Engineering (CBSE).