[en] USING RUNTIME INFORMATION AND MAINTENANCE KNOWLEDGE TO ASSIST FAILURE DIAGNOSIS, DETECTION AND RECOVERY

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: THIAGO PINHEIRO DE ARAUJO
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: MAXWELL
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=28702&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=28702&idi=2
http://doi.org/10.17771/PUCRio.acad.28702
Resumo: [pt] Mesmo sistemas de software desenvolvidos com um controle de qualidade rigoroso podem apresentar falhas durante seu ciclo de vida. Quando uma falha é observada no ambiente de produção, mantenedores são responsáveis por produzir o diagnóstico e remover o seu defeito correspondente. No entanto, em um serviço crítico este tempo pode ser muito longo, logo, se for possível, a assinatura da falha deve ser utilizada para gerar um mecanismo de recuperação automático capaz de detectar e tratar futuras ocorrências similares, até que o defeito possa ser removido. Nesta tese, a atividade de recuperação consiste em restaurar o sistema para um estado correto, que permita continuar a execução com segurança, ainda que com limitações em suas funcionalidades. Para serem eficazes, as tarefas de diagnóstico e recuperação requerem informações detalhadas sobre a execução que falhou. Falhas que ocorrem durante a fase de testes em um ambiente controlado podem ser depuradas através da inserção de nova instrumentação e re-execução da rotina que contem o defeito, tornando mais fácil o estudo de comportamentos inesperados. No entanto, falhas que ocorrem no ambiente de produção apresentam informações limitadas à situação específica em que ocorrem, além de serem imprevisíveis. Para mitigar essa adversidade, informações devem ser coletadas sistematicamente com o intuito de detectar, diagnosticar para recuperar e, eventualmente, diagnosticar para remover a circunstância geradora da falha. Além disso, há um balanceamento entre a informação inserida como instrumentação e a performance do sistema: técnicas de logging geralmente apresentam baixo impacto no desempenho, porém não provêm informação suficiente sobre a execução; por outro lado, as técnicas de tracing podem registrar informações precisas e detalhadas, todavia são impraticáveis para um ambiente de produção. Esta tese propõe uma abordagem hibrida para gravação e extração de informações durante a execução do sistema. A solução proposta se baseia no registro de eventos, onde estes são enriquecidos com propriedades contextuais sobre o estado atual da execução no momento em que o evento é gravado. Através deste registro de eventos com informações de contexto, uma técnica de diagnóstico e uma ferramenta foram desenvolvidas para permitir que eventos pudessem ser filtrados com base na perspectiva de interesse do mantenedor. Além disso, também foi desenvolvida uma abordagem que utiliza estes eventos enriquecidos para detectar falhas automaticamente visando recuperação. As soluções propostas foram avaliadas através de medições e estudos conduzidos em sistemas implantados, baseando-se nas falhas que de fato ocorreram enquanto se utilizava o software em um contexto de produção.