Automatic deployment of distributed software systems: Definitions and state of the art

This article renews knowledge about distributed software deployment.It provides up-to-date definitions and terminology.It proposes a framework to analyze the state of the art of automatic deployment.It reviews the recent research works and synthesizes the results.Actual methods barely satisfy heterogeneity, scalability and dynamics requirements. Deployment of software systems is a complex post-production process that consists in making software available for use and then keeping it operational. It must deal with constraints concerning both the system and the target machine(s), in particular their distribution, heterogeneity and dynamics, and satisfy requirements from different stakeholders. In the context of mobility and openness, deployment must react to the instability of the network of machines (failures, connections, disconnections, variations in the quality of the resources, etc.). Thus, deployment should be an uninterrupted process which also works when software is running and requires adaptiveness in order to continually satisfy the constraints and the requirements. Originally managed "by hand", software deployment demands an increasing level of automation and autonomy.This article first provides up-to-date terminology and definitions related to software deployment. Then, it proposes an analytical framework and reviews recent research works on automatic deployment with reference to this framework, and synthesizes the results. The review shows that existing solutions are incomplete, and possibly inefficient or unusable, when distribution, heterogeneity, scalability, dynamics and openness are primary concerns. In particular, they barely support dynamic reactions to unforeseeable events. Additionally, abstraction level and expressiveness at design time are rather limited regarding deployment complexity.

[1]  Ed Bailey,et al.  Maximum RPM , 1997 .

[2]  Mark Strembeck,et al.  An approach for the systematic development of domain‐specific languages , 2009, Softw. Pract. Exp..

[3]  Kevin Ashton,et al.  That ‘Internet of Things’ Thing , 1999 .

[4]  Pedro José Marrón,et al.  FlexCup: A Flexible and Efficient Code Update Mechanism for Sensor Networks , 2006, EWSN.

[5]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java: Experiences with Auto-adaptive and Reconfigurable Systems , 2006 .

[6]  Parastoo Mohagheghi,et al.  Towards a Domain-Specific Language to Deploy Applications in the Clouds , 2012, CLOUD 2012.

[7]  Wei Cai,et al.  Towards a component-based middleware framework for configurable and reconfigurable grid computing , 2004, 13th IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises.

[8]  Wei Cai,et al.  A component‐based middleware framework for configurable and reconfigurable Grid computing , 2006, Concurr. Comput. Pract. Exp..

[9]  Chenyang Lu,et al.  Rapid Development and Flexible Deployment of Adaptive Wireless Sensor Network Applications , 2005, 25th IEEE International Conference on Distributed Computing Systems (ICDCS'05).

[10]  A. Dearie,et al.  Software Deployment, Past, Present and Future , 2007, ICSE 2007.

[11]  Paramvir Bahl,et al.  The Case for VM-Based Cloudlets in Mobile Computing , 2009, IEEE Pervasive Computing.

[12]  Daniel Hagimont,et al.  Large Scale Deployment , 2010, 2010 Sixth International Conference on Autonomic and Autonomous Systems.

[13]  Philippe Roose,et al.  Kalimucho: contextual deployment for QoS management , 2011, DAIS'11.

[14]  Séverine Sentilles,et al.  A Classification Framework for Software Component Models , 2011, IEEE Transactions on Software Engineering.

[15]  Sander van der Burg,et al.  A self-adaptive deployment framework for service-oriented systems , 2011, SEAMS '11.

[16]  Huan Liu Rapid application configuration in Amazon cloud using configurable virtual appliances , 2011, SAC '11.

[17]  Jun Wang,et al.  Deployment of Context-Aware Component-Based Applications Based on Middleware , 2007, UIC.

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

[19]  Sander van der Burg,et al.  Disnix: A toolset for distributed deployment , 2014, Sci. Comput. Program..

[20]  Ritu Sabharwal Grid Infrastructure Deployment using SmartFrog Technology , 2006, International conference on Networking and Services (ICNS'06).

[21]  Noel De Palma,et al.  Autonomic management policy specification in Tune , 2008, SAC '08.

[22]  Wouter Joosen,et al.  Advanced Sensor Network Software Deployment using Application-level Quality Goals , 2011, J. Softw..

[23]  Cristian Cadar,et al.  Safe software updates via multi-version execution , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[24]  Alan Dearle,et al.  Software Deployment, Past, Present and Future , 2007, Future of Software Engineering (FOSE '07).

[25]  Andrew J. McCarthy,et al.  A framework for constraint-based development and autonomic management of distributed applications , 2004 .

[26]  Humberto Cervantes,et al.  FROGi: Fractal Components Deployment over OSGi , 2006, SC@ETAPS.

[27]  Behzad Bordbar,et al.  A DSL-Based Approach to Software Development and Deployment on Cloud , 2010, 2010 24th IEEE International Conference on Advanced Information Networking and Applications.

[28]  Jun Wang,et al.  Towards A Context-Aware Middleware for Deploying Component-Based Applications in Pervasive Computing , 2006, 2006 Fifth International Conference on Grid and Cooperative Computing (GCC'06).

[29]  Nicolas Le Sommer,et al.  Opportunistic Software Deployment in Disconnected Mobile Ad Hoc Networks , 2010, Int. J. Handheld Comput. Res..

[30]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[31]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[32]  Jason Flinn,et al.  Cyber Foraging: Bridging Mobile and Cloud Computing , 2012, Cyber Foraging: Bridging Mobile and Cloud Computing.

[33]  Mark Weiser The computer for the 21st century , 1991 .

[34]  Samia Nefti-Meziani,et al.  QUIET: A Methodology for Autonomous Software Deployment using Mobile Agents , 2010, J. Netw. Comput. Appl..

[35]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[36]  Gustavo Alonso,et al.  R-OSGi: Distributed Applications Through Software Modularization , 2007, Middleware.

[37]  Alistair N. Coles,et al.  The SmartFrog configuration management framework , 2009, OPSR.

[38]  Philippe Roose,et al.  Kalimucho: software architecture for limited mobile devices , 2009, SIGBED.

[39]  Richard S. Hall,et al.  A Characterization Framework for Software Deployment Technologies , 1998 .

[40]  Samia Nefti-Meziani,et al.  Silent Unattended Installation Package Manager--SUIPM , 2008, 2008 International Conference on Computational Intelligence for Modelling Control & Automation.

[41]  Gabriel Antoniu,et al.  CoRDAGe: towards transparent management of interactions between applications and ressources , 2008 .

[42]  Pierre-Yves Cunin,et al.  ORYA: A Strategy Oriented Deployment Framework , 2005, Component Deployment.

[43]  Mani B. Srivastava,et al.  Multi-level software reconfiguration for sensor networks , 2006, EMSOFT '06.

[44]  Sander van der Burg,et al.  Automated Deployment of a Heterogeneous Service-Oriented System , 2010, 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications.

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

[46]  Ewa Deelman,et al.  Automating Application Deployment in Infrastructure Clouds , 2011, 2011 IEEE Third International Conference on Cloud Computing Technology and Science.

[47]  Claudia Roncancio,et al.  DASIMA: A Flexible Management Middleware in Multi-Scale Contexts , 2009, 2009 Sixth International Conference on Information Technology: New Generations.

[48]  Osgi Alliance,et al.  Osgi Service Platform, Release 3 , 2003 .

[49]  Wouter Joosen,et al.  LooCI: The Loosely-coupled Component Infrastructure , 2012, 2012 IEEE 11th International Symposium on Network Computing and Applications.

[50]  P. Hartvigsen The Computer for the 21st Century (1991) , 2014 .

[51]  Richard S. Hall,et al.  A cooperative approach to support software deployment using the Software Dock , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[52]  Martin Odersky,et al.  Event-Based Programming Without Inversion of Control , 2006, JMLC.

[53]  Imrich Chlamtac,et al.  Internet of things: Vision, applications and research challenges , 2012, Ad Hoc Networks.

[54]  Abbas Heydarnoori,et al.  Deploying Component–Based Applications: Tools and Techniques , 2008 .

[55]  Guillaume Pierre,et al.  Challenges in very large distributed systems , 2011, Journal of Internet Services and Applications.

[56]  Andrew J. McCarthy,et al.  A Framework for Constraint-Based Deployment and Autonomic Management of Distributed Applications , 2004, ICAC.

[57]  Jürgen Dunkel,et al.  Enterprise JavaBeans (EJB) , 2003 .

[58]  Marimuthu Palaniswami,et al.  Internet of Things (IoT): A vision, architectural elements, and future directions , 2012, Future Gener. Comput. Syst..

[59]  W H I T E P A P Building the Virtualized Enterprise with VMware Infrastructure , 2006 .

[60]  Gordon S. Blair,et al.  A generic component model for building systems software , 2008, TOCS.