Escolar Documentos
Profissional Documentos
Cultura Documentos
Eliane Martins
Injeo de Falhas
Carlos Alberto Carvalho Daniel Carlos Guimares Pedronette
Roteiro
Validao de Sistemas Crticos [Som06] Motivao do Uso de Injeo de Falhas [Hsu97,Lem01] Conceitos e Definies [Hsu97,Lem01,ACC93] Injeo de Falhas e Mecanismos de Tolerncia a Falhas [Hsu97,Lem01,ACC93] Uma Tcnica de Injeo de Falhas e Uso da Ferramenta Jaca [MMM05] Aplicao ao Estudo de Caso Concluses Referncias
Motivao
Sistemas computacionais desempenham papel essencial na atividade humana; Dependabilidade torna-se uma caracterstica importante; Mecanismos de Tolerncia a Falhas provem meio para alcanar dependabilidade; Como avaliar a dependabilidade de um sistema? Como testar a tolerncia a falhas?
4
Motivao
Avaliaes de dependabilidade envolvem estudo de falhas e erros; Injeo de Falhas permite a insero de falhas e a observao do comportamento do sistema nessas situaes. Injeo de Falhas uma abordagem que tem sem mostrado eficiente para testar tais sistemas.
5
Motivao
[MMM05] afirmam que a injeo de falhas acelera o aparecimento de erros e defeitos; [Som06] lembra dos impactos do custo de uma falha em sistema crtico e a perda da confiana no sistema pelo usurio, ressaltando a importncia da validao de sistemas crticos; [Lem01] relata que a injeo de falhas prtica muito popular e enumera vrias ferramentas. Como a tcnica simula a falha e permite a observao do comportamento, ela consegue fazer o sistema captar as falhas. Se ele no conseguir tratar a falha, o erro detectado e corrigido; [ACC93] apontam a tcnica de injeo de falhas como um mecanismo que permite a validao com o objetivo de remover e prevenir falhas.
6
Conceitos e Definies
Falha (fault): componente de software ou hardware que apresenta comportamento anmalo dentro do sistema. Erro (error): uma falha do sistema durante um processamento leva a uma modificao do estado do sistema. Esse estado denominado erro. Defeito (failure): tendo a falha levada a um erro, o erro far com que o sistema apresente um defeito. O defeito indica que o servio oferecido no est de acordo com o especificado.
Falha
Erro
Defeito
[Lem01], [Lap95]
7
Conceitos e Definies
Injeo de Falhas por Simulao:
Utilizada em fase de projeto;
Conceitos e Definies
Injeo de Falhas por Software:
Vantagens:
No preciso usar o hardware onde o sistema ir rodar; Mais fcil de monitorar; Portvel; Facilmente adaptvel a outros tipos de falhas; Baixo custo de desenvolvimento (comparado a hardware); No h risco de danificar o sistema;
Desvantagens:
Se o modelo de falhas no bem definido por dar resultados pouco significativos.
Conceitos e Definies
Uma arquitetura genrica para injeo de falhas
[Hsu97]
10
Injeo de Falhas e Mecanismos de Tolerncia a Falhas FTAMs: Fault tolerance algorithms and mechanisms [ACC93]. FTAMs utilizados com sucesso para dependabilidade. Mtodos para avaliar eficincia das FTAMs:
Injeo de falhas
Aumentando a ocorrncia de erros, pode-se testar as FTAMs em relao as suas prprias entradas: as falhas que se pretende tolerar.
11
12
Injeo de Falhas e Mecanismos de Tolerncia a Falhas Aborda ambas as dimenses de validao das FTAMs:
Remoo de falhas: reduzir, por meio de verificaes, a presena de falhas nas FTAMs; Previso de falhas: avaliar a eficincia do comportamento das FTAMs.
13
Injeo de Falhas e Mecanismos de Tolerncia a Falhas Utilizar experimentos para estimar cobertura dos mecanismos de tolerncia a falhas; Estimativas relacionadas s taxas de ocorrncia e ativao de falhas:
Podem ser utilizadas para derivar medidas gerais de dependabilidade do sistema.
14
15
Domnio de Sada:
Conjunto R: comportamento do sistema na presena de falhas (readouts); Conjunto M: medidas (measures) derivadas da anlise e processamento dos conjuntos FAR;
16
18
Injeo de Falhas e Mecanismos de Tolerncia a Falhas Resultados do conjunto R caracterizam o estado do sistema:
Abstrao da especificao do comportamento dos FTAMs Pode ser representado em um grafo.
19
20
Uma Tcnica de Injeo de Falhas e Uso da Ferramenta Jaca A ferramenta Jaca consegue inserir as falhas sem a necessidade de acesso ao cdigo fonte, utilizando o bytecode. Escolhendo certas classes do sistema que tem poder de impactar outras classes possvel minimizar a quantidade de testes de validao (os erros podem se propagar)
[MMM05]
21
[MMM05]
22
SVBFaultInjector
Projeto e Implementao Experimento de Injeo de Falhas
Falhas Permanentes Falhas Intermitentes
24
25
Viso Lgica
27
Viso Fsica
Apache Tomcat
Apache Derby
28
Fluxo de Compra
29
Fluxo de Compra
30
Fluxo de Compra
31
Monitor Broker
32
[GT07]
33
34
Camada de Integrao
35
36
37
38
39
40
Tipo de Falhas
Permanentes
Em um dos WebServices
Intermitentes
Nos dois servios segundo uma dada probabilidade para cada WebService
41
42
Ferramenta JACA
Ferramenta desenvolvida em Java para injeo de falhas; Reflexo computacional; Utilizao para injeo de falhas em alto nvel: a nvel da linguagem de programao (bytecode), sem intervenes em Assembly; Padro de Projeto Fault Injector
43
[LM01]
44
Ferramenta Jaca
Conceitos:
Gerais: Nome do Projeto, Classe de Execuo, ClassPath, etc. Fault Set: Define os conjuntos de falhas geradas (atributos/mtodos), tipo de falha, etc. Monitor: Define as classes que sero monitoradas Campaign: Define uma execuo dada pela relao entre FaultSets x Monitors. Golden Run: Execuo sem Falhas. Documentao: Guia do Usurio, Problemas Comuns
45
Ferramenta JACA
46
Ferramenta JACA
47
Ferramenta JACA
48
Ferramenta JACA
49
Resultados Obtidos
Interao com Interface funcionando: OK; Load das classes do Pacote de Negcio: OK; Problema ao carregar classe do Pacote de Persistncia; Logs
Monitor Campaign Exception
50
SVBMonitorReport.csv
51
52
53
SVBFaultInjector
Injetor de Falhas para o Sistema de Venda de Bilhetes Implementao do padro Fault Injector
Com algumas simplificaes
Utilizao de Aspectos
Interceptar mtodo e Alterar parmetro JBoss AOP
54
SVBFaultInjector
55
SVBController
56
SVBInjector
JBoss AOP (jboss-aop.xml)
57
SVBInjector
58
SVBInjector
59
Experimento 0:
Sem Injeo de Falhas Golden Run
Experimento 1:
Falha Permanente
WebService 2: 100%
Experimento 3:
Falha Intermitente
WebService 1: 50 % WebService 2: 50 %
61
62
63
64
65
F
0%
100%
E
0%
100%
D
0%
100%
Experimentos no significativos
Failure
Compra OK:
100%
67
68
n > 2 tentativas
69
F
22%
78%
E
0%
78%
D
38%
40%
Experimentos no significativos
Failure
Compra OK:
62%
71
72
73
74
F
35%
65%
E
0%
65%
D
16%
49%
Experimentos no significativos
Failure
Compra OK:
84%
76
77
Concluses
Injeo de Falhas uma tcnica poderosa
Amplo horizonte de aplicaes em validao de sistemas crticos; Possvel utilizao em cenrios em que outras tcnicas dificilmente seriam aplicveis;
Referncias
[ACC93] J. Arlat, A. Costes, Y. Crouzet, J.-C. Laprie and D. Powell, Fault Injection and Dependability Evaluation of Fault-Tolerant Systems, IEEE Transactions on Computers, vol. 42, no.8, pp.913-923, 1993. [GT07] D.Z.G. Garcia, M.B.F. de Toledo. A Fault Tolerant Web Service Architecture. 5th IEEE Latin American Web Congress, 2007. [Hsu97] M.-C. Hsueh, T. K. Tsai, R. K. Iyer Fault Injection Techniques and Tools, 1997. [Lap95] J.-C. Laprie, B. Randell,H. Kopetz, B. Littlewood. Dependability - Its Attributes, Impairments and Means. Predictability, Dependable Computing Systemns, pginas 3-18, Springer, Berlim, Alemanha, 199. [Lem01] N. G. M. Leme. Um Sistema de Padres para Injeo de Falhas por Software. Dissertao de Mestrado. Unicamp, Campinas, Brasil, 2001. [LM01] N.G. M. Leme, E. Martins, C. M. F. Rubira, A Software Fault Injection Pattern System. 8th Conference on Pattern Languages of Programs, September 11-15, 2001, Monticello, Illinois, USA. 2001. [MMM05] R.L.O. Moraes, E. Martins, N.V. Mendes. Fault injection approach based on dependence analysis. In: Computer Software and Applications Conference, 2005. COMPSAC 2005. 29th Annual International, pp.181- 188, 2005.
79
Injeo de Falhas
Dvidas? Comentrios?
Obrigado!
80