Programação Diversitária
Componentes: Felipe Haack Schmitz - 106396
Lais Berlatto - 104493
Professor: Marcelo Trindade Reb...
Introdução
●Necessidade atual
●Tolerância a falhas - 1967
●Dependabilidade
Introdução
●Dependabilidade
Introdução
● N-Versões,
● programação N-Autoverificadora
● blocos de recuperação por consenso e votação
● blocos retry
● p...
Diversidade
●Ambiente de software com uma versão
Agrupa técnicas que são utilizadas para tolerar parcialmente falhas de
pr...
Diversidade
●Princípio-chave da diversidade: REDUNDÂNCIA
Utilizada nas mais diversas fases do ciclo de vida de um
software...
Programação N-Versões
●Sugeria por Elmendorf em 1972
●Conceito - Também chamada de programação
diversitária
● Consiste em ...
Programação N-Versões
● A programação diversitária acaba resultando em um
mascaramento de falhas garantindo a que não serã...
Programação N-Versões
●Vantagens
● A facilidade no reconhecimento de erros na fase de teste do sistema, a tolerância
tanto...
Programação N-Versões
● Fatores que influenciam na eficácia:
● Vários fatores influenciam a eficácia da programação divers...
Resumo
Em suma a programação diversitária, é uma técnica de
redundância usada para obter tolerância a falhas em
software. ...
Implementação (Estudo de caso)
●Paradigmas
●Linguagens de Programação
●Comunicação Socket em Diferentes Linguagens
Estrutura do Sistema
Computação Diversitária
●Cliente
●Servidor Central
●Servidor c#
●Servidor Python
●Servidor Java
Validação dos Dados por Votação
Referências
http://docs.oracle.com/javase/1.4.2
/docs/api/java/net/Socket.html
http://docs.python.org/library/socket.html
...
Referências
JALOTE, P. Fault Tolerance in Distributed systems. New
Jersey: Pretince Hall, 1994.
PRADHAN, Dhiraj K. Fault t...
Referências
WEBER, Taisy S. Um roteiro par a exploração dos
conceitos básicos de tolerância a falhas, 2002. Disponível
em:...
Perguntas?
Obrigado!
Próximos SlideShares
Carregando em…5
×

Programação Diversitária

296 visualizações

Publicada em

Técnica de tolerância a falhas

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
296
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Programação Diversitária

  1. 1. Programação Diversitária Componentes: Felipe Haack Schmitz - 106396 Lais Berlatto - 104493 Professor: Marcelo Trindade Rebonatto Sistemas Distribuídos
  2. 2. Introdução ●Necessidade atual ●Tolerância a falhas - 1967 ●Dependabilidade
  3. 3. Introdução ●Dependabilidade
  4. 4. Introdução ● N-Versões, ● programação N-Autoverificadora ● blocos de recuperação por consenso e votação ● blocos retry ● programação N-Cópias. ●Diversidade O foco desse mecanismo consiste em utilizar variadas implementações de um mesmo sistema para obter a tolerância a falhas, crendo assim que diferentes projetos e implementações autônomas também vão apresentar falhas independentes.
  5. 5. Diversidade ●Ambiente de software com uma versão Agrupa técnicas que são utilizadas para tolerar parcialmente falhas de projeto de software: Monitorando as técnicas - atomicidade das ações- verificações de decisões-tratamento de exceções ●Ambiente de software com múltiplas versões Diversas versões do mesmo software, com funcionalidades equivalentes
  6. 6. Diversidade ●Princípio-chave da diversidade: REDUNDÂNCIA Utilizada nas mais diversas fases do ciclo de vida de um software, desde sua concepção até os testes, sempre levando em conta os tipos de erro que se quer encontrar.
  7. 7. Programação N-Versões ●Sugeria por Elmendorf em 1972 ●Conceito - Também chamada de programação diversitária ● Consiste em uma técnica multi-versões em que todas as versões são desenvolvidas para satisfazer os mesmo requisitos básicos e a definição do resultado correto é realizado pela comparação dos resultados
  8. 8. Programação N-Versões ● A programação diversitária acaba resultando em um mascaramento de falhas garantindo a que não serão dadas respostas duvidosas, fazendo uso de recuperação de erros por avanço. ● Esta técnica é considerada estática pelo fato da seleção do resultado final ser definido através de um mecanismo de decisão, ser realizado após obterem-se todos os resultados advindos das diversas versões.
  9. 9. Programação N-Versões ●Vantagens ● A facilidade no reconhecimento de erros na fase de teste do sistema, a tolerância tanto de falhas intermitentes quanto de permanentes e a atuação potencial também contra erros externos ao sistema (como por exemplo erros do compilador, do sistema operacional e até mesmo falhas de hardware) ●Desvantagens Desvantagens da técnica também devem ser citadas, como o aumento dos custos de desenvolvimento e manutenção, a complexidade de sincronização das versões e o problema de determinar a correlação das fontes de erro. Experimentos comprovam que o número de manifestações idênticas (erros que assim não seriam detectados) é significativamente menor que o número total de erros.
  10. 10. Programação N-Versões ● Fatores que influenciam na eficácia: ● Vários fatores influenciam a eficácia da programação diversitária, como: as equipes podem trocar algoritmos entre si, os membros das equipes podem, por formação, tender a adotar os mesmos métodos de desenvolvimento, as equipes podem buscar suporte nas mesmas fontes. Qualquer uma dessas correlações imprevisíveis se constitui uma fonte potencial de erros.
  11. 11. Resumo Em suma a programação diversitária, é uma técnica de redundância usada para obter tolerância a falhas em software. A partir de um problema a ser solucionado são implementadas diversas soluções alternativas, sendo a resposta do sistema determinada por votação. Essa técnica é chamada de projeto diversitário quando o desenvolvimento do sistema é realizado de forma diversitária e de programação em N-Versões quando se restringe à implementação do sistema.
  12. 12. Implementação (Estudo de caso) ●Paradigmas ●Linguagens de Programação ●Comunicação Socket em Diferentes Linguagens
  13. 13. Estrutura do Sistema Computação Diversitária ●Cliente ●Servidor Central ●Servidor c# ●Servidor Python ●Servidor Java
  14. 14. Validação dos Dados por Votação
  15. 15. Referências http://docs.oracle.com/javase/1.4.2 /docs/api/java/net/Socket.html http://docs.python.org/library/socket.html http://msdn.microsoft.com/pt-br/library/kx37x362 PULLUM, Laura L. Software Fault Tolerance Techniques and Implementation Artech House, 2001.
  16. 16. Referências JALOTE, P. Fault Tolerance in Distributed systems. New Jersey: Pretince Hall, 1994. PRADHAN, Dhiraj K. Fault tolerant computer system design. New Jersey: Prentice Hall, 1996 PULLUM, Laura L. Software Fault Tolerance Techniques and Implementation Artech House, 2001.
  17. 17. Referências WEBER, Taisy S. Um roteiro par a exploração dos conceitos básicos de tolerância a falhas, 2002. Disponível em:<http://www.inf.ufrgs. br/~taisy/disciplinas/textos/Dependabilidade.pdf>.Acesso em: 27/11/2011. JALOTE, P. Fault Tolerance in Distributed systems. New Jersey: Pretince Hall, 1994. PRADHAN, Dhiraj K. Fault tolerant computer system design. New Jersey: Prentice Hall, 1996.
  18. 18. Perguntas? Obrigado!

×