62ª Reunião Anual da SBPC
A. Ciências Exatas e da Terra - 2. Ciência da Computação - 4. Engenharia de Software
TOLERANDO FALHAS DE ALTO-NÍVEL EM SISTEMAS AUTO-CONFIGURÁVEIS
João Henrique Correia Pimentel 1
Jaelson Freire Brelaz de Castro 1
1. Centro de Informática, Universidade Federal de Pernambuco / UFPE.
INTRODUÇÃO:
Auto-configuração, uma das características dos sistemas autonômicos, é a capacidade do sistema se ajustar automaticamente, seja devido a mudanças no ambiente ou para dar suporte a auto-recuperação, auto-proteção e auto-otimização. Nas arquiteturas propostas para sistemas auto-configuráveis, observa-se que existe um grande espaço para evolução no que se refere ao tratamento de falhas. Todas as falhas são tratadas igualmente, sem nenhuma flexibilidade. Em particular na arquitetura de Fabiano Dalpiaz et al. (2009), estudos experimentais têm mostrado que, durante a execução prolongada de um sistema, um número muito grande de falhas tende a acontecer. Por sua vez, o tratamento de todas essas falhas tende a provocar uma sobrecarga do sistema. Surge daí a necessidade de abordagens específicas para o tratamento de falhas em sistemas auto-configuráveis. Neste trabalho temos como objetivo definir mecanismos para a utilização de políticas no tratamento de falhas em um sistema auto-configurável, permitindo definir condições nas quais uma falha pode ser tolerada.
METODOLOGIA:
Esta pesquisa foi realizada utilizando-se o método de engenharia. Segundo Guilherme Travassos et al. (2002), este método tem por base a observação de soluções existentes. A partir dessa observação são identificados os problemas dessas soluções já existentes, sendo então proposta uma nova solução visando resolver esses problemas. Sendo assim, as arquiteturas para sistemas auto-configuráveis foram analisadas, sendo identificada a deficiência no tratamento de falhas. Analisando a literatura, chegamos à conclusão que o uso de políticas é adequado para permitir que um usuário defina condições nas quais certas falhas podem ser ignoradas. Dessa forma, este trabalho consistiu em definir uma política para tolerância de falhas, assim como definir os mecanismos para avaliação e aplicação desta política.
RESULTADOS:
Neste trabalho elaboramos uma política para tolerância de falhas, que se preocupa em definir quais falhas de tarefas de um sistema podem ser ignoradas. Esta política é composta por três tipos de regras: t.context, t.goal e t.limit. As regras do tipo t.context expressam que a falha de um conjunto de elementos deve ser ignorada de acordo com o estado do ambiente no qual o sistema está inserido - isto é, de acordo com um contexto. O tipo t.goal expressa que a falha de uma tarefa deve ser ignorada também, agora condicionada à satisfação de um certo objetivo do sistema. Por último, o tipo t.limit expressa um limite máximo de vezes que falhas consecutivas de um conjunto de elementos devem ser ignoradas. Cada um desses três tipos teve sua estrutura precisamente definida, utilizando-se expressões regulares. Para que a avaliação dessas regras seja feita sem ambigüidade, os mecanismos de avaliação foram definidos como algoritmos. Esses mecanismos identificam se uma determinada regra se aplica ou não. Para colocar essa política em prática, implementamos uma ferramenta para facilitar a criação de instâncias dessa política, com a qual evitamos a existência de erros de sintaxe. Também implementamos os algoritmos mencionados anteriormente, integrado a uma arquitetura auto-configurável.
CONCLUSÃO:
Neste trabalho foi apresentada uma abordagem para tratamento de falhas em sistemas auto-configuráveis, na qual é definida uma política para tolerância de falhas. Ao definir a tolerância a falhas definimos situações nas quais as falhas de um dado elemento do sistema serão ignoradas. . Executando simulações, observamos que realmente a política que definimos é capaz de reduzir o overhead durante a execução de um sistema, sem prejudicar a coerência do seu comportamento. Dessa forma, através da política para tolerância de falhas é possível amenizar o impacto que a compensação de falhas exerce no desempenho de um sistema. Como forma de aperfeiçoar esta política, temos duas linhas de trabalhos futuros. A primeira é aumentar a expressividade das regras da política, permitindo o uso de operadores lógicos como AND, OR e XOR. Com isto seria possível definir condições mais complexas e mais adequadas a situações reais. A segunda linha de trabalho consiste em generalizar a política definida, permitindo sua utilização por qualquer tipo de sistema, e não apenas os auto-configuráveis.
Instituição de Fomento: Fundação de Amparo à Ciência e Tecnologia do Estado de Pernambuco (FACEPE) e Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Palavras-chave: Sistemas autonômicos, Auto-configuração, Tolerância de falhas.