SAPOTI: Servidor de APlicações cOnfiáveis Tcp/Ip

Egon Hilgenstieler, Emerson F. F. Carara, Roverli P. Ziwich
Monografia de Conclusão
Bacharelado em Ciência da Computação,
Universidade Federal do Paraná, Dept. Informática.
Curitiba, PR, Brazil, 2001.  [pdf]



Resumo

Este trabalho apresenta uma estratégia distribuída que garante a alta disponibilidade de servidores de aplicações TCP/IP (Transfer Control Protocol/Internet Protocol) aplicada especificamente para a implementação de um servidor Web (World Wide Web) tolerante a falhas. O serviço tolerante a falhas é baseado no algoritmo de diagnóstico distribuído Hi-ADSD with Timestamps que permite o monitoramento dos componentes de uma rede. O diagnóstico é baseado no protocolo SNMP (Simple Network Management Protocol), o padrão TCP/IP para gerência de redes. Uma MIB (Management Information Base) é utilizada pelo algoritmo Hi-ADSD with Timestamps que permite a especificação de testes em máquinas e recursos de uma rede. Através da determinação de uma relação ordenada de máquinas desta rede e com base nas informações obtidas através da MIB, a aplicação apresentada neste trabalho garante a alta disponibilidade de um servidor Web. Desta forma, uma outra máquina assume a disponibilização do serviço Web no caso de falha da máquina que antes oferecia o serviço. É designado um endereço IP (Internet Protocol) virtual que é assumido sempre pela máquina que estiver executando o serviço, tornando as mudanças transparentes. Experimentos foram realizados em um intervalo de cerca de 12 horas, em máquinas monitoradas pela ferramenta Hi-ADSD with Timestamps e que executavam a aplicação apresentada neste trabalho. Como resultado foi constatado que em configurações de rede com máquinas onde ocorreram 210 falhas distribuídas entre todas as máquinas, a disponibilidade do servidor Web foi de 97,3%. Em configurações de rede não tão instáveis, onde algumas máquinas juntas falharam 27 vezes, a disponibilidade do servidor Web foi de 99,5%.


Referências Bibliográficas

[1]   D. E. Comer, Internetworking with TCP/IP – Principles, Protocolos, and Architectures, Editora Prentice Hall, 4a ed., Vol. 1, 1995.

[2]   R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, e T. Berners-Lee, “Hypertext Transfer Protocol – HTTP/1.1”, RFC 2616, Jun 1999.

[3]   P. Jalote, Fault Tolerance in Distributed Systems. Editora Prentice Hall, 1994.

[4]   S. L. Hakimi, e K. Nakajima, “On Adaptive System Diagnosis”, IEEE Transactions on Eletronic Computers, Vol. 33, 1984.

[5]   E. P. Duarte Jr., e T. Nanya, “A Hierarquical Adaptive Distributed System-Level Diagnosis Algotithm”, IEEE Transactions on Eletronic Computers, Vol. 47, No.1, Jan 1998.

[6]   E. P. Duarte Jr., A. Brawerman, e L. C. P. Albini, “An Algorithm for Distributed Hierarquical Diagnosis of Dynamic Fault and Repair Events”, Proceedings of the IEEE International Conference on Parallel and Distributed Systems, 2000.

[7]   M. T. Rose, The Simple Book – An Introduction to Internet Management, Editora Prentice Hall, 2a ed., 1994.

[8]   A. S. Tanenbaum, Sistemas Operacionais Modernos, Editora LTC, 1992.

[9]   F. Preparata, G. Metze, e R. T. Chien, “On The Connection Assignment Problem of Diagnosable Systems”, IEEE Transactions on Eletronic Computers, Vol. 16, 1968.

[10] R. P. Bianchini e Buskens, “An Adaptive Distributed System-Level Diagnosis Algorithm and Its Implementation”, Proc. FTCS-21, 1991.

[11] E. P. Duarte Jr., A. Brawerman, e L. C. P. Albini, “A Diagnosis Algorithm based on Clusters with Detours”, disponível em http://www.inf.ufpr.br/~elias.

[12] S. Rangarajan, A. T. Dahbura, e E. A. Ziegler, “A Distributed System-Level Diagnosis for Arbitrary Network Topologies”, IEEE Transactions on Eletronic Computers, Vol. 44, 1955.

[13] M. Rose, e K. McCloghrie, “Structure of Management Information for TCP/IP-based internets”, RFC 1155, Performance Systems International, Hughes LAN Systems, Mai 1990.

[14] J. Case, M. Fedor, M. Schoffstall, e J. Davin, “Simple Network Management Protocol (SNMP)”, RFC 1157, SNMP Research, Performance Systems Internacional, MIT Laboratory for Computer Science, Mai 1990.

[15] K. McCloghrie, e M. Rose, Editors, “Management Information Base for Network Management of TCP/IP-based internets: MIB-II”, RFC 1213, Hughes LAN Systems, Performance Systems Internacional, 1991.

[16] E. S. Silva, e P. R. S. Rezende, “SNEMP: Uma ferramenta Java/Web para Monitoração de Objetos SNMP Replicados em Grupos de Agentes”, 2001, disponível em http://www.inf.ufpr.br/~elias.

[17] A. S. Tanenbaum, Redes de Computadores, Editora Campus, 1997.

[18] The NET-SNMP Project Home Page – http://www.net-snmp.org.

[19] The Linux Home Page at Linux on Line – http://www.linux.org.

[20] The Apache Software Foundation – http://www.apache.org.

[21] RSYNC – http://www.rsync.org.

[22] Bash – http://www.gnu.org/software/bash/bash.html.

[23] R. Elmasri, e S. B. Navathe, Fundamentals of DataBase Systems, Editora Addison Wesley, 3a ed., 2000.

[24] PHP Hypertext Preprocessor – http://www.php.net.

[25] R. Sandberg, D. Goldberg, S. Kleiman, D. Walsh, e B. Lyon, “Design and Implementation of the Sun Network File System”, Proc. Summer Techn. Conf. USENIX, 1985.

[26] S. Shepler, “NFS Version 4 Design Considerations.”, RFC 2624, Jun 1999.

[27] Debian GNU/Linux - The Universal Operating System – http://www.debian.org.

[28] L. C. E. Bona, “Gerência Confiável de Redes Locais baseada em Diagnóstico Distribuído”, disponível em http://www.inf.ufpr.br/~elias.