47 research outputs found
An Infrastructure Modeling Approach for Multi-Cloud Provisioning
Cloud Computing has become the primary model of pay-per-use used by practitioners and researchers to obtain an infrastructure in a short time. DevOps uses the Infrastructure as Code approach to infrastructure automation based on software development practices. Moreover, the DevOps community provides different tools to orchestrate the infrastructure provisioning in a particular cloud provider. However, the traditional method of using a single cloud provider has several limitations regarding privacy, security, performance, geography reach, and vendor lock-in. To mitigate these issues industry and academia are implementing multiple clouds (i.e., multi-cloud). In previous work, we have introduced ARGON, which is an infrastructure modeling tool for cloud provisioning that leverages the model-driven engineering (MDE) to provide a uniform, cohesive, and seamless process to support the DevOps concept. In this paper, we present an extension of ARGON to support the multi-cloud infrastructure provisioning and propose a flexible migration process among cloud
End-to-End Automation in Cloud Infrastructure Provisioning
Infrastructure provisioning in the cloud can be time-consuming and error-prone due to the manual process of building scripts. Configuration Management Tools (CMT) such as Ansible, Puppet or Chef use scripts to orchestrate the infrastructure provisioning and its configuration in the cloud. Although CMTs have a high level of automation in the infrastructure provisioning still remains a challenge to automate the iterative development process in the cloud. Infrastructure as Code is a process where the infrastructure is automatically built, managed, and provisioned by scripts. However, there are several infrastructure provisioning tools and scripting languages that need to be used coherently. In previous work, we have introduced the ARGON modelling tool with the purpose of abstracting the complexity of working with different DevOps tools through a DSL. In this work, we present an end-to- end automation for a toolchain for infrastructure provisioning in the cloud based on DevOps community tools and ARGON
An Incremental and Model Driven Approach for the Dynamic Reconfiguration of Cloud Application Architectures
In incremental development approaches, the integration of new services into the actual cloud application may trigger the dynamic reconfiguration of the cloud application architecture, thus changing its structure and behavior at runtime. This paper presents a model driven approach that uses the specification of how the integration of new services will change the current cloud application architecture to obtain: i) the orchestration of services, ii) skeletons of interface implementations, and iii) the operationalization of reconfiguration actions to be applied at runtime. This approach follows the DIARy-process, which defines the activities needed to reconfigure dynamically the architecture of cloud services. The feasibility of the approach is illustrated by means of a case study that uses Microsoft Azure© as a service deployment platform. WCF Workflow services are generated and deployed for orchestration, whereas XML transformation files are generated to update services’ binding configurations at runtim
A COMPARATIVE STUDY ON MODEL-DRIVEN REQUIREMENTS ENGINEERING FOR SOFTWARE PRODUCT LINES
Model-Driven Engineering (MDE) and Software Product Lines (SPL) are two software development paradigms that emphasize reusing. The former reuse domain knowledge is represented as models and model transformations for product development, and the latter reuse domain knowledge is represented as core assets to produce a family of products in a given domain. The adequate combination of both paradigms can bring together important advantages to the software development community. However, how to manage requirements during a model-driven product line development remains an open challenge. In particular, the Requirements Engineering (RE) activity must deal with specific properties such as variability and commonality for a whole family of products. This paper presents a comparative study of eleven approaches that perform a MDE strategy in the RE activity for SPL, with the aim of identifying current practices and research gaps. In summary, most of the approaches are focused on the Domain Engineering phase of the SPL development, giving less attention to the Application Engineering phase. Moreover there is a lack of coverage of the Scoping activity, which defines the SPL boundaries. Several approaches apply some model transformations to obtain architectural and application requirements artifacts. Regarding the tool support for requirements specification and management, we found that most of the approaches use only academic prototypes. Regarding the validation of the approaches, the use of Case Studies as a proof of concept was the most commonly used method; however, there is a lack of well-defined case studies and empirical studies to improve the proposals.Model-Driven Engineering (MDE) and Software Product Lines (SPL) are two software development paradigms that emphasize reusing. The former reuse domain knowledge is represented as models and model transformations for product development, and the latter reuse domain knowledge is represented as core assets to produce a family of products in a given domain. The adequate combination of both paradigms can bring together important advantages to the software development community. However, how to manage requirements during a model-driven product line development remains an open challenge. In particular, the Requirements Engineering (RE) activity must deal with specific properties such as variability and commonality for a whole family of products. This paper presents a comparative study of eleven approaches that perform a MDE strategy in the RE activity for SPL, with the aim of identifying current practices and research gaps. In summary, most of the approaches are focused on the Domain Engineering phase of the SPL development, giving less attention to the Application Engineering phase. Moreover there is a lack of coverage of the Scoping activity, which defines the SPL boundaries. Several approaches apply some model transformations to obtain architectural and application requirements artifacts. Regarding the tool support for requirements specification and management, we found that most of the approaches use only academic prototypes. Regarding the validation of the approaches, the use of Case Studies as a proof of concept was the most commonly used method; however, there is a lack of well-defined case studies and empirical studies to improve the proposals
On the Effectiveness of Tools to Support Infrastructure as Code: Model-Driven Versus Code-Centric
[EN] Infrastructure as Code (IaC) is an approach for infrastructure automation that is based on software development practices. The IaC approach supports code-centric tools that use scripts to specify the creation, updating and execution of cloud infrastructure resources. Since each cloud provider offers a different type of infrastructure, the definition of an infrastructure resource (e.g., a virtual machine) implies writing several lines of code that greatly depend on the target cloud provider. Model-driven tools, meanwhile, abstract the complexity of using IaC scripts through the high-level modeling of the cloud infrastructure. In a previous work, we presented an infrastructure modeling approach and tool (Argon) for cloud provisioning that leverages model-driven engineering and supports the IaC approach. The objective of the present work is to compare a model-driven tool (Argon) with a well-known code-centric tool (Ansible) in order to provide empirical evidence of their effectiveness when defining the cloud infrastructure, and the participants & x2019; perceptions when using these tools. We, therefore, conducted a family of three experiments involving 67 Computer Science students in order to compare Argon with Ansible as regards their effectiveness, efficiency, perceived ease of use, perceived usefulness, and intention to use. We used the AB/BA crossover design to configure the individual experiments and the linear mixed model to statistically analyze the data collected and subsequently obtain empirical findings. The results of the individual experiments and meta-analysis indicate that Argon is more effective as regards supporting the IaC approach in terms of defining the cloud infrastructure. The participants also perceived that Argon is easier to use and more useful for specifying the infrastructure resources. Our findings suggest that Argon accelerates the provisioning process by modeling the cloud infrastructure and automating the generation of scripts for different DevOps tools when compared to Ansible, which is a code-centric tool that is greatly used in practice.This work was supported by the Ministry of Science, Innovation, and Universities (Adapt@Cloud project), Spain, under Grant TIN2017-84550-R. The work of Julio Sandobalin was supported by the Escuela Politecnica Nacional, Ecuador.Sandobalín, J.; Insfran, E.; Abrahao Gonzales, SM. (2020). On the Effectiveness of Tools to Support Infrastructure as Code: Model-Driven Versus Code-Centric. IEEE Access. 8:17734-17761. https://doi.org/10.1109/ACCESS.2020.2966597S1773417761
Monitoring Cloud Services through Models at Runtime: A Case in an Ambient Assisted Living Environment
[EN] Ambient Assisted Living (AAL) has become an important domain that provides software systems and services to support and improve people¿s daily quality of life. Yet, it has not achieved large market penetration. Existing works suggest that this is primarily due to not sufficiently addressing the quality requirements posed by healthcare organizations. In particular, there is a lack of comprehensive frameworks that allow the assessment of the quality of AAL systems. In previous work, we introduced a method for monitoring cloud services using models at runtime (MoS@RT), which allows the monitoring requirements or the metric operationalizations of these requirements to be changed at runtime without the modification of the underlying infrastructure. The method and its supporting infrastructure have been successfully applied in the monitoring of cloud services, but further evaluation in other domains is needed. In this paper, we report a case study on the use of MoS@RT to monitor cloud services in an AAL environment aimed at supporting the elderly¿s well-being. The results suggest that relevant quality attributes of AAL systems can be adequately monitored using MoS@RT and that the report generated by the monitoring infrastructure is useful for service providers and customers to help them ensure that cloud services meet the required levels of quality.We thank to Fundación Carolina, Universidad de Cuenca, and Universitat Politècnica de València for their support. This research is supported by the project Fog Computing applied to monitoring devices used in AAL environments: platform for the elderly (Research Projects DIUC XVII).Cedillo, P.; Insfran, E.; Abrahao Gonzales, SM. (2022). Monitoring Cloud Services through Models at Runtime: A Case in an Ambient Assisted Living Environment. Journal of Object Technology. 21(4):1-19. https://doi.org/10.5381/jot.2022.21.4.a111921
A Comparative Study on Reward Models for UI Adaptation with Reinforcement Learning
Adapting the User Interface (UI) of software systems to user requirements and
the context of use is challenging. The main difficulty consists of suggesting
the right adaptation at the right time in the right place in order to make it
valuable for end-users. We believe that recent progress in Machine Learning
techniques provides useful ways in which to support adaptation more
effectively. In particular, Reinforcement learning (RL) can be used to
personalise interfaces for each context of use in order to improve the user
experience (UX). However, determining the reward of each adaptation alternative
is a challenge in RL for UI adaptation. Recent research has explored the use of
reward models to address this challenge, but there is currently no empirical
evidence on this type of model. In this paper, we propose a confirmatory study
design that aims to investigate the effectiveness of two different approaches
for the generation of reward models in the context of UI adaptation using RL:
(1) by employing a reward model derived exclusively from predictive
Human-Computer Interaction (HCI) models (HCI), and (2) by employing predictive
HCI models augmented by Human Feedback (HCI&HF). The controlled experiment will
use an AB/BA crossover design with two treatments: HCI and HCI&HF. We shall
determine how the manipulation of these two treatments will affect the UX when
interacting with adaptive user interfaces (AUI). The UX will be measured in
terms of user engagement and user satisfaction, which will be operationalized
by means of predictive HCI models and the Questionnaire for User Interaction
Satisfaction (QUIS), respectively. By comparing the performance of two reward
models in terms of their ability to adapt to user preferences with the purpose
of improving the UX, our study contributes to the understanding of how reward
modelling can facilitate UI adaptation using RL.Comment: 6 pages + 1 refs. 2 figure
A Monitoring Infrastructure for the Quality Assessment of Cloud Services
Service Level Agreements (SLAs) specify the strict terms under which cloud services must be provided. The assessment of the quality of services being provided is critical for both clients and service providers. In this context, stakeholders must be capable of monitoring services delivered as Software as a Service (SaaS) at runtime and of reporting any eventual non-compliance with SLAs in a comprehensive and flexible manner. In this paper, we present the definition of an SLA compliance monitoring infrastructure, which is based on the use of [email protected], its main components and artifacts, and the interactions among them. We place emphasis on the configuration of the artifacts that will enable the monitoring, and we present a prototype that can be used to perform this monitoring. The feasibility of our proposal is illustrated by means of a case study, which shows the use of the components and artifacts in the infrastructure and the configuration of a specific plan with which to monitor the services deployed on the Microsoft Azure© platform
Evaluating the Efficacy of Value-driven Methods: A Controlled Experiment
A value model is an abstract representation of an organization and is used for capturing and describing the rationale of how the organization creates, delivers, and captures business value. Value-driven development methods use the notion of “economic value exchange” to define more efficient business strategies and align Information Systems with the organization goals. However, current value-driven methods are complex and there is not enough empirical evidence about which of the existing methods is more effective under what circumstances. This paper addresses this issue by presenting a controlled experiment aimed at comparing the Dynamic Value Description (DVD) method, which is a recently defined cognitive early requirements approach, with the well-known e3value method, with respect to their effectiveness, efficiency, perceived ease of use, perceived usefulness and intention to use. The results show that DVD has proved to be a promising method for specifying business value
Incremental Integration of Microservices in Cloud Applications
Microservices have recently appeared as a new architectural style that is native to the cloud. The high availability and agility of the cloud demands organizations to migrate or design microservices, promoting the building of applications as a suite of small and cohesive services (microservices) that are independently developed, deployed and scaled. Current cloud development approaches do not support the incremental integration needed for microservice platforms, and the agility of getting new functionalities out to customers is consequently affected by the lack of support for the integration design and automation of the development and deployment tasks. This paper presents an approach for the incremental integration of microservices that will allow developers to specify and design microservice integration, and provide mechanisms with which to automatically obtain the implementation code for business logic and interoperation among microservices along with deployment and architectural reconfiguration scripts specific to the cloud environment in which the microservice will be deployed