Tolerância a Falhas(Software)
PAUTA:
Conceitos
Perspectivas
Dependabilidade
Técnicas
Redundância
Aplicações
APRESENTADORA
Vanessa Souza Analista Sistema dos projetos DF-e
8 anos de experiência na área de TI
Graduada em Ciência da Computação
7 anos de experiência em desenvolvimento soluções
SOA
Qualidade e bugs
Será que qualidade de software e bugs são coisas opostas e incompatíveis?
Não cometerás erros de programação
Tolerância a Falhas
Fornece um serviço esperado mesmo na presença de falhas
Modelo de 3 Universos
Universos do bug
Falha
Erro
Defeito
Tolerância a Falhas
➢ Perspectivas:● Tamanho e complexidade do software● Número de pessoas envolvidas● Ferramentas utilizadas● Custos associados à existência de erros● Custos associados à detecção e à remoção de erros
Dependabilidade
Confiabilidade
Capacidade de atender a especificação, dentro de condições definidas, durante certo período de funcionamento e condicionado a estar operacional no início do período
Disponibilidade
➢ Probabilidade do sistema estar operacional num instante de tempo determinado
➢ Alternância de períodos de funcionamento e reparo
Segurança (Safety)
Probabilidade do sistema ou estar operacional e executar sua função corretamente ou descontinuar suas funções de forma a não provocar dano a outros sistema ou pessoas que dele dependam
Segurança (Security)
Proteção contra falhas maliciosas, visando privacidade, autenticidade, integridade e irrepudiabilidade dos dados
Técnicas de Tolerância a Falhas
➢ Detecção de falhas➢ Localização➢ Confinamento➢ Recuperação➢ Reconfiguração➢ Tratamento➢ Mascaramento de falhas
Detecção de Falhas
➢ Antes da sua manifestação como erro, a falha está latente e não pode ser detectada.
➢ A falha pode permanecer no sistema durante toda a sua vida útil sem nunca levar o sistema a um estado errôneo.
➢ Testes
Confinamento
➢ Limites para a propagação do dano
➢ Depende de decisões de projeto pois sistemas por sua natureza não provêm confinamento.
➢ Durante o projeto devem ser previstas e implementadas restrições ao fluxo de informações para evitar fluxos acidentais e estabelecer interfaces de verificação para detecção de erros.
Recuperação
Ocorre após a detecção e envolve a troca do estado atual incorreto para um estado livre de falhas
Recuperação
Ocorre após a detecção e envolve a troca do estado atual incorreto para um estado livre de falhas
Tratamento
➢ Localizar a origem do erro (falha)
➢ Localizar a falha de forma precisa
➢ Reparar a falha➢ Recuperar o restante do sistema
Mascaramento de falhas
➢ Falhas não se manifestam como erros, pois são mascaradas na origem
➢ Redundância ● Informação● Temporal● Física● Software
Redundância
Redundância está tão intimamente relacionada a tolerância a falhas que, na indústria nacional, o termo usado para designar um sistema tolerante a falhas é sistema redundante.
Redundância de Software
➢ Diversidade (ou programação n-versões)➢ Blocos de recuperação➢ Verificação de consistência
Diversidade
Blocos de recuperacao
Aplicações
➢ Longa Vida● Satélite● Sondas espaciais● Marca-passo
➢ Computação crítica● Alarme de Incêndio● Airbag● Controles ferroviários
➢ Alta disponibilidade● Internet● Terminais de caixa eletrônico
Aplicações SGI
➢ Sistemas de informações críticas para a sociedade.● NF-e● CT-e● IPVA● e-Fronteiras e muitos outros
Caso Prático I
Banco de Dados=
Cluster deServidores
NF-e
NF-eBIG IP
Caso Prático II
Fila
Cluster deServidores
NF-eBIG IP
3min
Desafios
Referências Bibliográficas
➢ Qualidade de Software – André Koscianski e Michel dos Santos Soares 2ª Edição
➢ Um roteiro para exploração dos conceitos básicos de tolerância a falhas - Taisy Silva Weber Instituto de Informática – UFRGS
➢ Dúvidas?
➢ Obrigada!