13 research outputs found

    A Conceptual Framework for Adapation

    Get PDF
    This paper presents a white-box conceptual framework for adaptation that promotes a neat separation of the adaptation logic from the application logic through a clear identification of control data and their role in the adaptation logic. The framework provides an original perspective from which we survey archetypal approaches to (self-)adaptation ranging from programming languages and paradigms, to computational models, to engineering solutions

    A Conceptual Framework for Adapation

    Get PDF
    We present a white-box conceptual framework for adaptation. We called it CODA, for COntrol Data Adaptation, since it is based on the notion of control data. CODA promotes a neat separation between application and adaptation logic through a clear identification of the set of data that is relevant for the latter. The framework provides an original perspective from which we survey a representative set of approaches to adaptation ranging from programming languages and paradigms, to computational models and architectural solutions

    A Conceptual Framework for Adapation

    Get PDF
    This paper presents a white-box conceptual framework for adaptation that promotes a neat separation of the adaptation logic from the application logic through a clear identification of control data and their role in the adaptation logic. The framework provides an original perspective from which we survey archetypal approaches to (self-)adaptation ranging from programming languages and paradigms, to computational models, to engineering solutions

    A MAPE-K Approach to Autonomic Microservices

    Get PDF
    Microservices are an emerging architectural style advocating for small loosely-coupled services in order to maximize scalability and adaptability. In order to help IT personnel, adaptability can be put (completely or partially) under the responsibility of the system using autonomic techniques, e.g., underpinned by a MAPE-K control loop. This paper discusses possible trade-offs, challenges and support techniques for soft-ware architects involved in building autonomic microservice-based systems

    A MAPE-K Approach to Autonomic Microservices

    Get PDF
    International audienceMicroservices are an emerging architectural style advocating for small loosely-coupled services in order to maximize scalability and adaptability. In order to help IT personnel, adaptability can be put (completely or partially) under the responsibility of the system using autonomic techniques, e.g., underpinned by a MAPE-K control loop. This paper discusses possible trade-offs, challenges and support techniques for software architects involved in building autonomic microservicebased systems

    Self-tuning of software systems through goal-based feedback control loop

    Get PDF
    Quality requirements of a software system cannot be optimally met, especially when it is running in an uncertain and changing environment. In principle, a controller at runtime can monitor the change impact on quality requirements of the system, update the expectations and priorities from the environment, and take reasonable actions to improve the overall satisfaction. In practice, however, existing controllers are mostly designed for tuning low- level performance indicators rather than high-level requirements. By maintaining a live goal model to represent the runtime requirements and linking the overall satisfaction to an earned business value indicator as feedback, we propose a control-theoretic self-tuning method that can dynamically tune the preferences of different quality requirements, and can autonomously make the tradeoff decisions among different quality requirements through our preference-based goal reasoning. The reasoning result is involved to reconfigure the variation points of the goal model, and accordingly mapped to the system architecture reconfiguration. The effectiveness of our self-tuning method is evaluated by comparing the earned business value with the static and ad-hoc methods and analysing the self-tuning process

    Run Time Models in Adaptive Service Infrastructure

    Full text link
    Software in the near ubiquitous future will need to cope with vari- ability, as software systems get deployed on an increasingly large diversity of computing platforms and operates in different execution environments. Heterogeneity of the underlying communication and computing infrastruc- ture, mobility inducing changes to the execution environments and therefore changes to the availability of resources and continuously evolving requirements require software systems to be adaptable according to the context changes. Software systems should also be reliable and meet the user's requirements and needs. Moreover, due to its pervasiveness, software systems must be de- pendable. Supporting the validation of these self-adaptive systems to ensure dependability requires a complete rethinking of the software life cycle. The traditional division among static analysis and dynamic analysis is blurred by the need to validate dynamic systems adaptation. Models play a key role in the validation of dependable systems, dynamic adaptation calls for the use of such models at run time. In this paper we describe the approach we have un- dertaken in recent projects to address the challenge of assessing dependability for adaptive software systems

    Integration of strategy-oriented and goal-oriented approaches to self-adaptation

    Get PDF
    Tese de mestrado em Engenharia Informática, apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2012O nosso modo de vida moderno é suportado por sistemas de Software complexos dos quais se espera sejam capazes de lidar com aspectos tais como mudanças nos recursos do sistema, nas necessidades do utilizador, ataques de segurança, falhas de Hardware, etc. Muitas vezes, o custo de um destes sistemas deixar de funcionar pode ser muito alto, chegando por vezes a por vidas humanas em risco. Estes sistemas críticos oferecem muitas vezes adaptações que permitem reagir a estas mudanças, no entanto os custos da adaptação manual destes sistemas tendem a ser muito altos. Ao longo dos últimos anos, a auto-adaptação estabeleceu-se como uma abordagem eficaz para lidar com as mudanças no ambiente em que operam as aplicações. Sistemas auto-adaptativos são capazes de ajustar automaticamente o seu comportamento em tempo de execução em função da sua percepção do ambiente e do próprio sistema. Existem várias abordagens para a auto-adaptação que seguem o princípio da separação de interesses, i.e., onde a lógica de adaptação é separada da lógica da aplicação. Um objectivo da utilização deste princípio é reduzir a complexidade do sistema. Outro objectivo é a redução dos custos de implementação de um comportamento adaptativo em sistemas existentes. Uma abordagem para a auto-adaptação designada por orientada por estratégias consiste em considerar que o comportamento adaptativo é fornecido por um operador humano (administrador) na forma de condições e estratégias de adaptação. Esta abordagem tira partido da experiencia e conhecimento do operador humano relativamente às situações que este identifica como problemáticas e às estratégias que melhor permitem lidar com elas. Uma desvantagem desta abordagem é que está bastante sujeita a erros humanos, pois nos casos em que o espaço de configurações possíveis é muito grande, encontrar as estratégias de adaptação adequadas é uma tarefa muito difícil. Espera-se do operador humano o conhecimento sobre todas as adaptações e os impactos esperados de cada uma. Outra desvantagem desta abordagem é a incapacidade de reacção a problemas imprevistos. Outra abordagem diferente designada por orientada por objectivos consiste em tirar partido da experiência dos responsáveis pelo desenvolvimento dos diferentes componentes usados no sistema, tal como o seu conhecimento relativamente ao desempenho e qualidades de serviço que os vários componentes oferecem nas suas diferentes configurações. Nesta abordagem o operador humano que administra o sistema limita-se a fornecer uma política especificada com os objectivos de alto nível do sistema. Essa política descreve o comportamento desejado para o sistema e é usada junto da informação sobre os componentes e suas adaptações para guiar o sistema de auto-adaptação na escolha autónoma das alterações a efectuar. A estratégia de adaptação que será usada para resolver um problema é computada automaticamente pelo sistema em tempo real. Ao contrário da abordagem anterior, esta abordagem não se limita a lidar com um conjunto de situações previsíveis. Quando um problema é detectado, e assumindo que existem adaptações capazes de corrigir esse problema, o sistema é capaz de calcular um plano para o resolver. No entanto o custo da computação do comportamento adaptativo adequado cresce rapidamente com o aumento do espaço de configurações possíveis, o que implica que o comportamento auto-adaptativo desta abordagem pode ter um impacto considerável no sistema. Existe ainda a possibilidade da execução de adaptações incorrectas ou desnecessárias quando a informação dos responsáveis sobre os componentes e suas adaptações não é correcta ou suficientemente precisa. O objectivo deste projecto é encontrar um meio-termo entre estas duas abordagens, a fim de obter um framework de auto adaptação que pode tirar proveito da experiência e conhecimento humano, enquanto continua sendo capaz de se adaptar autonomamente a situações imprevisíveis. Para isso é preciso isolar os factores comuns e as diferenças entre as duas abordagens. Este trabalho é feito no contexto do projecto ADAAS “Assuring Dependability in Architecture-based Adaptive Systems”. A abordagem para auto-adaptação orientada por objectivos utilizada neste projecto é a apresentada no trabalho ”Self-management of Adaptable Component-based Applications” e foi utilizada como base para este projecto. A abordagem orientada por estratégias utilizada na integração foi inspirada na abordagem descrita em Stitch , mas algumas simplificações tiveram de ser feitas. A arquitectura do sistema foi inspirada na framework Rainbow, uma framework que separa a lógica de adaptação e a lógica do sistema alvo em camadas. A camada de adaptação interage com o sistema alvo através de sensores e efetores oferecidos por este. É possível identificar nesta camada 4 componentes responsáveis por cada uma das actividades do modelo MAPE-K: - O Model Manager mantém uma representação do sistema alvo. Esta representação permite analisar o estado sistema. Este componente é responsável pela actividade MAPE-K de monitorização do sistema alvo e consequentemente é o componente que interage com os sensores deste. - O componente Architecture Evaluator é responsável pela actividade MAPE-K de análise. Este componente analisa a informação contida no modelo do Model Manager para detectar problemas no comportamento do sistema alvo. - O Adaptation Manager é responsável por planear o comportamento adaptativo adequado para resolver o problema detectado pelo Architecture Evaluator. No contexto desta framework o resultado deste planeamento chama-se estratégia de adaptação. - O Strategy Executor é responsável pela actividade MAPE-K de execução. O componente executa a estratégia planeada no Adaptation Manager recorrendo aos efetores oferecidos pelo sistema alvo. O sistema resultante foi implementado como um ciclo de controlo a executar numa camada por cima do sistema alvo. O sistema alvo é qualquer sistema composto por vários componentes que podem ser adaptados separadamente. A separação em camadas permite o sistema de adaptação funcionar separado do sistema alvo, monitorizando o desempenho deste, detectando problemas e efectuando alterações no seu comportamento para os corrigir, sem interferir demasiado na implementação do sistema alvo em si. Este sistema de adaptação precisa da seguinte informação: - As métricas usadas para descrever os vários aspectos do comportamento ou estado dos componentes do sistema. Estas métricas devem descrever também como se pode calcular o estado do sistema a partir dos estados dos seus componentes. - A política que descreve o comportamento desejado do sistema. Esta política está definida na forma de objectivos que utilizam as métricas explicadas no ponto anterior. - A descrição dos vários componentes do sistema alvo que podem ser adaptados. - Os sensores que permitem o sistema de adaptação obter informação sobre o estado dos componentes do sistema alvo. Estes sensores devem oferecer toda a informação necessária para o sistema poder calcular os valores das métricas utilizadas na descrição do estado. Note-se que nem todas as métricas requerem informação proveniente destes sensores, algumas podem referir-se a conceitos abstractos que dependem de aspectos como a configuração do sistema alvo ou dos seus componentes. - A descrição das adaptações existentes, os requisitos que definem quando podem ser utilizadas e os impactos esperados destas no estado do componente que adaptam. Esta informação é necessária para a abordagem para auto-adaptação orientada por objectivos. - As estratégias de adaptação capazes de corrigir problemas conhecidos e previstos. Estas estratégias são utilizadas pelo sistema quando este utiliza a abordagem para a auto-adaptação orientada por estratégias. - As ferramentas que permitem o sistema de adaptação provocar alterações no comportamento dos componentes do sistema alvo, ou seja, os efetores. O operador humano utiliza as métricas e objectivos de alto nível definidos na política para descrever o comportamento desejado para o sistema alvo. Quando um problema é detectado o sistema de adaptação tenta utilizar a abordagem orientada por estratégias para o resolver. Isto oferece ao operador humano um maior controlo sobre o comportamento adaptativo. Adicionalmente, o sistema tira partido da maior eficiência desta abordagem em resolver problemas conhecidos. No entanto, quando esta abordagem falha quer porque as estratégias existentes são incapazes de resolver o problema ou porque o problema não foi previsto, o sistema de adaptação utiliza a abordagem orientada por objectivos para o resolver. Assim temos um sistema que é capaz de reagir a um problema mesmo quando não existe uma estratégia desenhada para esse efeito por um operador humano.Our modern way of life is supported by complex software systems that are required to operate under substantial uncertainty, these critical systems are expected to deal with aspects such as changes in system resources, user needs, security attacks, hardware failures, etc. These critical systems usually offer adaptations that can modify and correct their behaviour, however the costs of manually maintaining them can be very high. Over the past few years, self-adaptation has established itself as an effective approach in dealing with changes in the environment in which many applications operate. Self-adaptive systems are able to adjust their behaviour at run-time in response to their perception of the environment and the system itself. There are several approaches to self-adaptation that follow the principle of separation of concerns, where the adaptation logic is kept apart from the application logic. This principle helps reduce the complexity and cost of implementing self-adaptation behavior on the target systems. One of these approaches depends on a human operator (administrator) to supply the adaptation behaviour through adaptation conditions and strategies. This approach takes advantage of the expertise of the human operator in regards to what a problematic situation is and how best to adapt to it. However, the approach is subject to human error, and in cases where the space of possible configurations is very large finding the right adaptation strategy can be very difficult. Also, this approach can only react to problems that have been predicted by the human operator. Another approach decentralizes the knowledge over the available adaptations and their results on the system by using information provided by the developers of the various adaptable components. The human operator that manages the system uses high-level policies to configure the desired behaviour for the system. A closed-loop control layer augmented with sensors and effectors uses all this information to compute adaptation strategies at run time. This allows the approach to react to unpredictable problems. However, the computation of an adaptation plan at run time is less efficient the bigger the space of possible configurations gets and can have a considerable impact on the system. The objective of this project is to merge these two approaches in order to achieve a self-adaptation framework that can take advantage of human expertise while still being able to adapt to unpredictable situations
    corecore