Detalhes do Documento

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

Autor(es): Bangueses, Carlos Miguel Pereira

Data: 2012

Identificador Persistente: http://hdl.handle.net/10451/9356

Origem: Repositório da Universidade de Lisboa

Assunto(s): Engenharia Informática; Teses de mestrado - 2012


Descrição

O 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.

Tese de mestrado em Engenharia Informática, apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2012

Tipo de Documento Dissertação de mestrado
Idioma Inglês
Orientador(es) Lopes, Maria Antónia Bacelar da Costa, 1968-
Contribuidor(es) Bangueses, Carlos Miguel Pereira
facebook logo  linkedin logo  twitter logo 
mendeley logo

Documentos Relacionados

Não existem documentos relacionados.