Marcos Duarte – [email protected] O que é o problema Perda de dados, transtornos/prejuízos Alto custo dos sistemas de backups Terceirizar resolve? Solução Sistema de backup utilizando a plataforma peer-to-peer Utilizar os recursos ociosos da própria instituição Escalabilidade de recursos de forma transparente ao sistema e ao usuário final Custo mais acessível Falha em Sistemas críticos Conseqüências Perda de informações: ○ Muitas vezes a própria base de dados vale mais que o sistema que a opera Prejuízos altos: ○ Custo da falha pode ser maior que o valor do sistema que a opera Readequação da confiança ○ problemas de desempenho tendem a serem pontuais, falhas tendem a estarem distribuídas Confiança de software “capacidade do produto de software de manter um nível de desempenho especificado, quando usado em condições especificadas” Disponibilidade Confiabilidade Segurança Proteção Confiança de software Confiança de software Quantificado através das métricas ISO/IEC 9126 26 métricas de confiabilidade ○ Internas (8): produto não executável do softweare, como código fonte, especificação, entre outros ○ Externas (18): execução e comportamento do software. ○ Descartando as internas, e externas que não podem serem medias de forma automática, restam 7 métricas; Confiança de software Métrica Tempo médio entre falha (MTBF) Descrição Fórmula matemática Taxa de freqüência em que o software falha X = T / A, onde T representa o tempo total em operação. (falha recuperável) em operação, A representa o número total de falhas detectadas Tempo médio de indisponibilidade Qual é o tempo médio em que o sistema fica X = T / N,onde T é o tempo total de indisponível quando uma falha acontece. indisponibilidade, N é o número de indisponibilidade Remoção de defeitos Quantos defeitos foram sanados Prevenção de indisponibilidade Com que freqüência o sistema causa a X = 1 - B / A,onde A é o número de indisponibilidade completa do ambiente de indisponibilidades e B é o número de falhas produção Disponibilidade Percentagem de tempo em que o sistema se X = To / (To + Tr), onde To é o tempo de encontra operacional e capaz de oferecer os operação do sistema, Tr é o tempo de reparo serviços requerido do sistema Densidade de defeitos A quantidade de defeitos detectada durante X = A / B, onde A é o número de defeitos o período de teste encontrados, tamanho do sistema Densidade de defeitos latente estimada Quantidade de defeitos que existem ou ainda X = |A1 – A2| / B, números de defeitos podem surgir como falhas futuras latentes estimados, A2 o número de defeitos encontrados e B o tamanho do sistema. X = A1 / A2 , onde A1 é o número de defeitos corrigidos, A2 é o número de defeitos encontrados Confiança de software Modelos de confiança Segundo Lyu possui entre cerca de 200 modelos catalogados; Avaliar quantitativamente as tecnologias empregadas; Oportunamente avaliar a qualidade de um projeto na sua fase de concepção; Pode ser utilizado para monitoramento do desempenho operacional do software; Controlar as falhas introduzidas durante alterações no software Confiança de software Modelos de confiança Baseados em tempo Baseados em cobertura Confiança de software Modelos de confiança (tempo) Jelinski e Moranda Modelo Geométrico Modelo de Goel-Okumoto Modelo de Musa Modelos Bayesianos Confiança de software Confiabilidade (framework) Confiança de software Proteção Autenticação Criptografia de arquivos (pedaços) Troca de mensagens criptografadas Confiança de software Disponibilidade Quebra de arquivos e distribuição com base em algoritmo de ranqueamento dos peers envolvidos; Mecanismo de cache para de injeção de pacotes na rede com maior desempenho; Considerações finais Próximos passos: Selecionar um processo de desenvolvimento e adequá-lo ao processo de confiabilidade levantado Estabelecer critérios de escolha para a ferramenta de análise de confiabilidade Estabelecer e implementar a arquitetura Elaborar o algoritmo de rankeamento dos peers. Considerações finais O que é Confiabilidade, características, mensuração e modelos mais utilizados Escalabilidade transparente Custo mais baixo Economia de banda [1] NBR ISO/IEC 9126, Engenharia de software - Qualidade de produto. Modelo de qualidade, 2003. [2] A. Tridgell and P. Macherras. The rsync algorithm.Technical report, TR-CS-96-05, Australian National University, Jun 1996. [3] Sommerville, lan. Engenharia de Software/lan Sommerville. São Paulo, 2003. P. 299-311. [4] CRESPO, Adalberto N., Modelos de Confiabilidade de Softwares baseados em cobertura de critérios estruturais de tese de doutoramento de teste de software, UNICAMP, Campinas: 1997. [5] MUSA, J. D., Ianino , A ., Okumoto, K., Software Reliability-Measurement, Prediction, Application, Mc Graw-Hill, New York, 1987. [6] Emin Martinian. Distributed internet backup system (dibs). http://www.csua.berkeley.edu/_emin/source_code/dibs/. [7] Handbook of software reliability engineering / Michael R. Lyu, editor in chief p. cm. Includes index. ISBN 0-07-039400-8 (alk. paper) 1. Computer software— Reliability— Handbooks, manuals, etc. I. Lyu, Michael R. QA76.76.R44H36 1995005.1 — dc20. [8] Emin Martinian. Distributed internet backup system (dibs). http://www.mit.edu/~emin/source_code/dibs/index.html . [9] Fernando Meira. Resilia: A safe & secure backup-system. Final year project, Engineerng Faculty of the University of Porto, May 2005. [10] CleverSafe. Cleversafe dispersed storage project. http://www.cleversafe.org/dispersed-storage. [11] Landon P. Cox and Brian D. Noble. Samsara: honor among thieves in peer-to-peer storage. In SOSP ’03: Proceedings of the nineteenth ACM symposium on Operating systems principles, pages 120–132, New York, NY, USA, 2003. ACM Press. [12] Landon P. Cox, Christopher D. Murray, and Brian D. Noble. Pastiche: making backup cheap and easy. SIGOPS Oper. Syst. Rev., 36(SI):285–298, 2002. [13] Christopher Batten, Kenneth Barr, Arvind Saraf, and Stanley Trepetin. pStore: A secure peer-to-peer backup system. Technical Memo MIT-LCSTM-632, Massachusetts Institute of Technology Laboratory for Computer Science, October 2002. [14] A. Tridgell and P. Macherras. The rsync algorithm.Technical report, TR-CS-96-05, Australian National University, Jun 1996. [15] Jeantao, Pan. Software Reliability. Carnegie Mellon University 18-849b Dependable Embedded Systems Spring 1999. [16] A. L Goel and K. Okumoto. Time-dependent error-detection rate model for software reliability and other performance measures. IEEE Transactions on Reliability, 28:206-211, 1979. [17] P. L. Moranda and Z. Jelinski. Final report on software reliability study. Technical Report MADC Report, No, 63921, McDonnell Douglas Astronautics Company, 1972. [18] Ganesh J. Pai. A survey of softwre reliability models. Technical report, Department of DCE, University of Virginia, 2002. [19] Swapna S. Gokhale and Kishor S. Trivedi. A time/structure based software reliability model. Annals of Softwre Engineering, 8:85-121, 1999. [20] Tom Mitchell. Machine Learning. McGraw-Hill, 1997. [21] Dinesh D. Narkhede. Bayesian model for software reliability. Technical report, Indian Institute of Technology, 2001. [22] John J. Marciniak. Encyclopedia of Software Engineering, volume 2. John Winsley & Sons, 1994. [23] P. L. Moranda. Predictions of software reliability during debugging. In Proceedings ofthe Annual Reliability and Maintainability Symposium, 1975.