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

Automatic deployment of distributed software systems: Definitions and state of the art
复制标题

DOI:
10.1016/j.jss.2015.01.040
复制
发表时间:
2015-05-01
影响因子:
3.5
通讯作者:
Leriche, Sebastien
Leriche, Sebastien
中科院分区:
计算机科学2区
文献类型:
--
作者:
Arcangeli, Jean-Paul;Boujbel, Raja;Leriche, Sebastien

文献摘要

被引文献

相似文献

软件系统的部署是一个复杂的后期制作过程,包括使软件可供使用,然后保持其运行。它必须处理有关系统和目标机器的约束,特别是它们的分布,异构性和动态性,并满足不同利益相关者的要求。在移动性和开放性的背景下,部署必须对机器网络的不稳定性(故障、连接、断开、资源质量的变化等)做出反应。因此,部署应该是一个不间断的过程,在软件运行时也可以工作,并且需要适应性,以便不断满足约束和需求。软件部署最初是“手工”管理的,现在它要求越来越高的自动化和自治水平。本文首先提供与软件部署相关的最新术语和定义。然后,它提出了一个分析框架,并回顾了最近的研究工作,自动部署参考这个框架,并综合的结果。审查表明,当分布性、异构性、可扩展性、动态性和开放性成为主要问题时,现有的解决方案是不完整的,并且可能效率低下或无法使用。特别是,它们几乎不支持对不可预见事件的动态反应。此外,设计时的抽象级别和表达能力在部署复杂性方面相当有限。(C)2015 Elsevier Inc. All rights reserved.
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. (C) 2015 Elsevier Inc. All rights reserved.