Highlights• This article renews knowledge about distributed software deployment.• It provides up-to-date de nitions 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. AbstractDeployment 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.
With the Internet of Things (IoT) paradigm, ambient systems move from locally distributed systems to Internet distributed systems. These systems become huge in term of number of devices and imply high heterogeneity (e.g., of devices, of networks). They are continuously evolving with appearing and disappearing devices at runtime. The inner complexity of these systems, called multiscale systems, requires autonomic deployment middleware. Such middleware should deploy components where and when necessary, and adapt the architecture of the deployed systems considering the different scales of the systems. In this paper, we define MuScADeL, a domainspecific language (DSL) dedicated to multiscale and autonomic software deployment. MuScADeL allows designers to abstractly define deployment properties without exact knowledge of the devices and networks the system will be deployed on. This DSL is based on a scale-awareness framework, which helps designers to characterize the multiscale nature of a system from several viewpoints such as device, network, administration and geography. With MuScADeL, deployment designers may express multiscale properties of systems to deploy. MuScADeL is a building block for deployment middleware that targets multiscale distributed systems. We illustrate the possibilities of MuScADeL through a smart transport scenario.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.