3,736 research outputs found
A Self-healing Architecture based on RAINBOW for Industrial Usage
Over recent decades computer and software systems become more and more complex because of the applications’
and user’s requirements. The complexity makes the software systems more vulnerable to the error and bugs. Also, environmental situations affect software systems which do not react to the environmental activities. Self-healing architectures have been proposed in order to make systems defeat these problems and to make systems capable of reacting to the environmental activity. Hence, these architectures help system to become dynamic and more robust, but finding a proper architecture which can support and cover system’s requirements is an issue. This is particularly true in industrial environments, which consist of some known and some unknown parameters.
This paper presents an architecture that can be used in some industrial environment to facilitate the process of adapting the system to unpredicted situations. This architecture has been developed over the base of RAINBOW infrastructure and it is compliant to the MAPE control loop (Autonomic Computing control loop). The paper reports also about the practical experience of implementing this architecture for a painter robot in an automotive factory, which deals with problems in painted part by itself. The proposed architecture uses rule-based reasoning and it actualizes the method of environmental modeling by using a rule-based system as the model extractor. The results of the implementation shows huge benefits in reusability and even in the quality of painting process
A deliberative model for self-adaptation middleware using architectural dependency
A crucial prerequisite to externalized adaptation is an understanding of how components are interconnected, or more particularly how and why they depend on one another. Such dependencies can be used to provide an architectural model, which provides a reference point for externalized adaptation. In this paper, it is described how dependencies are used as a basis to systems' self-understanding and subsequent architectural reconfigurations. The approach is based on the combination of: instrumentation services, a dependency meta-model and a system controller. In particular, the latter uses self-healing repair rules (or conflict resolution strategies), based on extensible beliefs, desires and intention (EBDI) model, to reflect reconfiguration changes back to a target application under examination
DEPAS: A Decentralized Probabilistic Algorithm for Auto-Scaling
The dynamic provisioning of virtualized resources offered by cloud computing
infrastructures allows applications deployed in a cloud environment to
automatically increase and decrease the amount of used resources. This
capability is called auto-scaling and its main purpose is to automatically
adjust the scale of the system that is running the application to satisfy the
varying workload with minimum resource utilization. The need for auto-scaling
is particularly important during workload peaks, in which applications may need
to scale up to extremely large-scale systems.
Both the research community and the main cloud providers have already
developed auto-scaling solutions. However, most research solutions are
centralized and not suitable for managing large-scale systems, moreover cloud
providers' solutions are bound to the limitations of a specific provider in
terms of resource prices, availability, reliability, and connectivity.
In this paper we propose DEPAS, a decentralized probabilistic auto-scaling
algorithm integrated into a P2P architecture that is cloud provider
independent, thus allowing the auto-scaling of services over multiple cloud
infrastructures at the same time. Our simulations, which are based on real
service traces, show that our approach is capable of: (i) keeping the overall
utilization of all the instantiated cloud resources in a target range, (ii)
maintaining service response times close to the ones obtained using optimal
centralized auto-scaling approaches.Comment: Submitted to Springer Computin
Developing self-adaptive microservices
The modern development approaches are establishing microservices and cloud computing as major
trends to benefit the technological community. However, these technologies are often prone to
multiple issues regarding parallel development by numerous parties, delivery strategies and resource
allocation. This paper proposes a novel architecture for developing self-adaptive microservices, using
Kubernetes through the Azure Container Apps, including a strategy that will complement the
architecture to enhance the development of microservices and aiming to achieve a solution that allows
the readers to deliver software faster, with more resilience, more scalable, and more cost-effective,
depending as low as possible from human intervention to maintain and scale. The author will apply
the acquired knowledge to propose and test an architecture for a real use case scenario, building a
notifications service integrated with a complex cloud-based web application system.As abordagens de desenvolvimento mais recentes estão a estabelecer os microsserviços e a
computação em nuvem como tendências importantes para benefício da comunidade tecnológica. No
entanto, estas tecnologias são frequentemente propensas a vários problemas relacionados com o
desenvolvimento paralelo por várias partes, estratégias de entrega de software desenvolvido e
afetação de recursos. Este artigo propõe uma nova arquitetura para o desenvolvimento de
microsserviços autoadaptativos, utilizando Kubernetes através do Azure Container Apps, incluindo
uma estratégia que complementará a arquitetura para melhorar o seu desenvolvimento, visando
alcançar uma solução que permita aos leitores entregar software mais rapidamente, com mais
resiliência, mais escalável e mais económico, dependendo o menos possível da intervenção humana
para manter e escalar. O autor irá aplicar os conhecimentos adquiridos para propor e testar uma
arquitetura para um caso de uso real, construindo um serviço de notificações integrado com um
sistema complexo de aplicações web hospedado na nuvem
Recommended from our members
Effecting Runtime Reconfiguration in Managed Execution Environments
Managed execution environments such as Microsoftäó»s Common Language Runtime (CLR) and Sun Microsystemsäó» Java Virtual Machine (JVM) provide a number of services äóñ including but not limited to application isolation, security sandboxing, garbage collection and structured exception handling äóñ that are aimed primarily at enhancing the robustness of managed applications. However, none of these services directly enables performing reconfigurations, repairs or diagnostics on the managed applications and/or its constituent subsystems and components. In this paper we examine how the facilities of a managed execution environment can be leveraged to support runtime system adaptations, such as reconfigurations and repairs. We describe an adaptation framework we have developed, which uses these facilities to dynamically attach/detach an engine capable of performing reconfigurations and repairs on a target system while it executes. Our adaptation framework is lightweight, and transparent to the application and the managed execution environment: it does not require recompilation of the application nor specially compiled versions of the managed execution runtime. Our prototype was implemented for the CLR. To evaluate our framework beyond toy examples, we searched on SourceForge for potential target systems already implemented on the CLR that might benefit from runtime adaptation. We report on our experience using our prototype to effect runtime reconfigurations in a system that was developed and is in use by others: the Alchemi enterprise Grid Computing System developed at the University of Melbourne, Australia
Self-Adaptation in Industry: A Survey
Computing systems form the backbone of many areas in our society, from
manufacturing to traffic control, healthcare, and financial systems. When
software plays a vital role in the design, construction, and operation, these
systems are referred as software-intensive systems. Self-adaptation equips a
software-intensive system with a feedback loop that either automates tasks that
otherwise need to be performed by human operators or deals with uncertain
conditions. Such feedback loops have found their way to a variety of practical
applications; typical examples are an elastic cloud to adapt computing
resources and automated server management to respond quickly to business needs.
To gain insight into the motivations for applying self-adaptation in practice,
the problems solved using self-adaptation and how these problems are solved,
and the difficulties and risks that industry faces in adopting self-adaptation,
we performed a large-scale survey. We received 184 valid responses from
practitioners spread over 21 countries. Based on the analysis of the survey
data, we provide an empirically grounded overview of state-of-the-practice in
the application of self-adaptation. From that, we derive insights for
researchers to check their current research with industrial needs, and for
practitioners to compare their current practice in applying self-adaptation.
These insights also provide opportunities for the application of
self-adaptation in practice and pave the way for future industry-research
collaborations.Comment: 43 page
Uma solução de implantação auto-adaptativa para plataformas Android
Orientador: Cecília Mary Fischer RubiraDissertação (mestrado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: Os dispositivos móveis, hoje em dia, fornecem recursos semelhantes aos de um computador pessoal de uma década atrás, permitindo o desenvolvimento de aplicações complexas. Consequentemente, essas aplicações móveis podem exigir tolerar falhas em tempo de execução. No entanto, a maioria das aplicações móveis de hoje são implantados usando configurações estáticas, tornando difícil tolerar falhas durante a sua execução. Nós propomos uma infraestrutura de implantação auto-adaptativa para lidar com este problema. A nossa solução oferece um circuito autônomo que administra o modelo de configuração atual da aplicação usando um modelo de características dinâmico associado com o modelo arquitetônico da mesma. Em tempo de execução, de acordo com a seleção dinâmica de características, o modelo arquitetônico implantado na plataforma se re-configura para fornecer uma nova solução. Uma aplicação Android foi implementada utilizando a solução proposta, e durante sua execução, a disponibilidade de serviços foi alterada, de tal forma que sua configuração corrente foi dinamicamente alterada para tolerar a indisponibilidade dos serviçosAbstract: Mobile devices, nowadays, provide similar capabilities as a personal computer of a decade ago, allowing the development of complex applications. Consequently, these mobile applications may require tolerating failures at runtime. However, most of the today¿s mobile applications are deployed using static configurations, making difficult to tolerate failure during their execution. We propose an adaptive deployment infrastructure to deal with this problem. Our solution offers an autonomic loop that manages the current configuration model of the application using a dynamic feature model associated with the architectural model. During runtime, according to the dynamic feature selection, the deployed architectural model can be modified to provide a new deployment solution. An Android application was implemented using the proposed solution, and during its execution, the services availability was altered so that its current configuration was changed dynamically in order to tolerate the unavailability of servicesMestradoCiência da ComputaçãoMestre em Ciência da Computação131830/2013-9CNP
- …