Gerenciamento de Recursos em Sistemas Distribuídos usando ... - LSI
Gerenciamento de Recursos em Sistemas Distribuídos usando ... - LSI
Gerenciamento de Recursos em Sistemas Distribuídos usando ... - LSI
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>• Quantida<strong>de</strong> <strong>de</strong> área <strong>em</strong> disco – Para um <strong>de</strong>terminado tipo <strong>de</strong> aplicação po<strong>de</strong>mosnecessitar consultar o total <strong>de</strong> área <strong>em</strong> disco, ocupada <strong>em</strong> cada um dos microsgerenciados, baseado no nome padrão usado para i<strong>de</strong>ntificar a extensão. Ex<strong>em</strong>plo, ototal <strong>de</strong> arquivos do tipo doc, exe, zip, etc.• Localizar um usuário – A partir do nome <strong>de</strong> login do usuário, saber se ele se encontra<strong>usando</strong> um equipamento, i<strong>de</strong>ntificado pelo seu login ativo e informando <strong>em</strong> qualequipamento, <strong>em</strong> qual a localização física do usuário.• Software <strong>em</strong> uso – Permite gerenciar quantas cópias <strong>de</strong> um <strong>de</strong>terminado software estão<strong>em</strong> uso <strong>em</strong> neste momento da consulta <strong>em</strong> todo o ambiente do sist<strong>em</strong>a distribuído.O gerenciamento dos recursos aqui listados ocorre <strong>em</strong> t<strong>em</strong>po real. As consultas quandorealizadas fornec<strong>em</strong> resultados com base <strong>em</strong> respostas recebidas <strong>de</strong> todos os componentes queformam o sist<strong>em</strong>a distribuído. Apenas no caso <strong>de</strong> t<strong>em</strong>po <strong>de</strong> uso, a análise dos dados é pertinente aum <strong>de</strong>terminado período <strong>de</strong> um <strong>de</strong>terminado equipamento.3 COMUNICAÇÃO EM GRUPOA comunicação entre os computadores interligados, po<strong>de</strong> ocorrer <strong>de</strong> diferentes formas,<strong>usando</strong> diversos protocolos tanto <strong>em</strong> ambiente <strong>de</strong> re<strong>de</strong> local como ambiente <strong>de</strong> re<strong>de</strong>s <strong>de</strong> longadistância. Um caso particular <strong>de</strong> comunicação ocorre quando uma mesma mensag<strong>em</strong> t<strong>em</strong> que serenviada para diversos computadores na re<strong>de</strong>, <strong>em</strong> especial mensagens <strong>de</strong> solicitação <strong>de</strong> status paratodos os componentes gerenciados. Alguns ambientes físicos <strong>de</strong> re<strong>de</strong> permit<strong>em</strong> o broadcast, on<strong>de</strong>um único comando <strong>de</strong> envio manda a mensag<strong>em</strong> para todos os en<strong>de</strong>reços da re<strong>de</strong> porém aconfiabilida<strong>de</strong> <strong>de</strong>ste método não é garantida, po<strong>de</strong>ndo ocorrer alguma perda s<strong>em</strong> que o <strong>em</strong>issor damensag<strong>em</strong> seja notificado <strong>de</strong>sta perda.Visando aten<strong>de</strong>r esta necessida<strong>de</strong> <strong>de</strong> comunicação <strong>de</strong> um para muitos, com confiabilida<strong>de</strong>,escalabilida<strong>de</strong>, e <strong>de</strong> forma transparente para qu<strong>em</strong> <strong>de</strong>senvolve uma aplicação como esta <strong>de</strong>gerenciamento, foi criado um novo paradigma chamado comunicação <strong>em</strong> grupo. Um protocolo <strong>de</strong>comunicação <strong>em</strong> grupo separa a complexida<strong>de</strong> <strong>de</strong> controle e gerenciamento das mensagens, dacomplexida<strong>de</strong> da aplicação, tratando os diversos computadores como sendo pertencentes a umgrupo. Assim po<strong>de</strong>mos nos preocupar apenas com a aplicação, suas funcionalida<strong>de</strong>s, seusprocedimentos, seus algoritmos particulares, s<strong>em</strong> nos envolvermos com os probl<strong>em</strong>as da
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>comunicação. Passa a ser responsabilida<strong>de</strong> do protocolo <strong>de</strong> comunicação <strong>em</strong> grupo o controle <strong>de</strong>fluxo, a confiabilida<strong>de</strong>, o sequenciamento e a garantia <strong>de</strong> entrega das mensagens ao aplicativo <strong>de</strong>gerência <strong>de</strong> recursos, b<strong>em</strong> como o controle <strong>de</strong> quais computadores estão fazendo parte <strong>de</strong>ste grupo,controlando a entrada <strong>de</strong> novos m<strong>em</strong>bros no grupo, saída voluntária ou saídas involuntárias <strong>de</strong>vidoa quebras no computador ou particionamento da re<strong>de</strong>.Diversos mecanismos <strong>de</strong> comunicação <strong>em</strong> grupo exist<strong>em</strong> tais como: ISIS (BIRMAN,1994); PHOENIX (MALLOTH, 1996); RMP (WHETTEN, 1994); TOTEM (MOSER, 1996);HORUS (RENESSE, 1996); ENSEMBLE (HAYDEN, 1998); TRANSIS (DOLEV, 1996);NEWTOP (EZHILCHELVAN, 1995); ATOMIC (KOCH, 2000); INTERGROUP (BERKET,2000); JGROUP (MONTRESOR, 2000) e SPREAD (AMIR,1998).Alguns <strong>de</strong>stes mecanismos foram <strong>de</strong>senvolvidos, tiveram alguma evolução e <strong>de</strong>poispermaneceram s<strong>em</strong> atualizações. Outros como INTERGROUP e JGROUP são b<strong>em</strong> recentes etotalmente baseado <strong>em</strong> ambiente Java/RMI. Já o SPREAD é um dos mecanismos <strong>de</strong> comunicação<strong>em</strong> grupo que v<strong>em</strong> evoluindo ao longo do t<strong>em</strong>po, com boa documentação, disponibilida<strong>de</strong> <strong>de</strong> fontesna modalida<strong>de</strong> Open Source, portado para diversos sist<strong>em</strong>as operacionais como UNIXes (AIX,BSDI, LINUX, FreeBSD, SGI, MAC OSX, SGI, SOLARIS, SUNos), Windows e Mac OS. Contacom bibliotecas que po<strong>de</strong>m ser usadas <strong>em</strong> linguagens tipo C, PERL e JAVA.Para o presente trabalho foi adotado o mecanismo <strong>de</strong> comunicação <strong>em</strong> grupo SPREAD(AMIR, 1998) por ser disponível <strong>em</strong> diversas plataformas ter uma boa documentação e aten<strong>de</strong>rtanto comunicação <strong>em</strong> grupo para re<strong>de</strong>s locais (LAN) como re<strong>de</strong>s <strong>de</strong> longa distância (WAN).Possui uma interface <strong>de</strong> programação <strong>de</strong> aplicação (API) com as seguintes funções:• SP_connect – Para estabelecer a comunicação com o da<strong>em</strong>on SPREAD.• SP_disconnet – Para terminar a conexão com o da<strong>em</strong>on SPREAD.• SP_join – Para iniciar a conexão a um <strong>de</strong>terminado grupo, passando a fazer parte <strong>de</strong>stegrupo.• SP_leave – Para <strong>de</strong>ixar <strong>de</strong> fazer parte <strong>de</strong> um <strong>de</strong>terminado grupo.• SP_multicast – Para enviar uma mensag<strong>em</strong> a todos os m<strong>em</strong>bros <strong>de</strong> um grupo.• SP_receive – Para receber mensagens, tanto mensagens <strong>de</strong> aplicação como mensagens<strong>de</strong> transições informando alterações dos m<strong>em</strong>bros do grupo.
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>A aplicação aqui apresentada neste artigo não é uma extensão do SPREAD n<strong>em</strong> acrescentanovas funcionalida<strong>de</strong>s ao mesmo. É uma ferramenta in<strong>de</strong>pen<strong>de</strong>nte apenas <strong>usando</strong> todas asfuncionalida<strong>de</strong>s relativas a comunicação <strong>em</strong> grupo que são disponibilizadas pelo SPREAD atravésdo uso <strong>de</strong> suas API anteriormente <strong>de</strong>scritas.4 IMPLEMENTAÇÃO DO GERENCIAMENTOA aplicação <strong>de</strong> gerenciamento <strong>de</strong> recursos <strong>em</strong> ambiente distribuído é composta <strong>de</strong> doisambientes. Um ambiente <strong>de</strong> coleta <strong>de</strong> dados para o tratamento exclusivo da consulta <strong>de</strong> t<strong>em</strong>po <strong>de</strong>uso <strong>de</strong> um recurso no sist<strong>em</strong>a distribuído, na forma <strong>de</strong> um arquivo log registrando quando um microé ligado ou <strong>de</strong>sligado, que será <strong>de</strong>scrito no it<strong>em</strong> 4.3. Outro ambiente <strong>de</strong> gerenciamento <strong>em</strong> t<strong>em</strong>poreal com programas, na forma <strong>de</strong> mestre escravo. No atual contexto o programa escravo é tratadocomo um conjunto <strong>de</strong> escravos que faz<strong>em</strong> parte do mesmo grupo. Assim um programa mestre, <strong>de</strong>consulta, que será <strong>de</strong>scrito <strong>em</strong> 4.2, enviará mensagens aos programas clientes que i<strong>de</strong>ntificarão otipo <strong>de</strong> consulta e fornecerão a resposta a<strong>de</strong>quada, conforme <strong>de</strong>scrito <strong>em</strong> 4.1.Figura 1: Programa <strong>de</strong> Consulta e Programas Cliente
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>4.1 PROGRAMA CLIENTEImpl<strong>em</strong>entado para trabalhar <strong>em</strong> ambiente WINDOWS, como um aplicativo (da<strong>em</strong>on) quefica ativo s<strong>em</strong>pre e s<strong>em</strong> ícone na barra <strong>de</strong> tarefas. Quando este programa for iniciado, vai seconectar ao SPREAD com uma i<strong>de</strong>ntificação única (nome da máquina). Este programa só será<strong>de</strong>sativado via mensag<strong>em</strong> enviada pelo programa <strong>de</strong> consulta, mostrado na Figura 1. Todos osclientes faz<strong>em</strong> parte <strong>de</strong> um grupo chamado GG, grupo geral. Este programa cliente é carregadomesmo antes do processo <strong>de</strong> login na estação. Fica s<strong>em</strong>pre aguardando alguma mensag<strong>em</strong> que v<strong>em</strong>para o grupo GG ao qual pertence.O programa cliente terá as seguintes funções:• Função 1 – Mostra mensag<strong>em</strong> recebida <strong>em</strong> uma janela tipo pop-up. Ex<strong>em</strong>plo na Figura2.• Função 2 – Informa se o micro (cliente) está livre, s<strong>em</strong> usuário com login ativo.• Função 3 – Verifica se o software XYZ está <strong>em</strong> uso neste cliente.• Função 4 – Verifica se exist<strong>em</strong> arquivos com a terminação XYZ neste cliente. Se existe,conta quantos arquivos e o total <strong>de</strong> k bytes <strong>de</strong>stes arquivos. Respon<strong>de</strong> com o número <strong>de</strong>arquivos e com o total <strong>de</strong> k bytes.• Função 5 – Verifica se um <strong>de</strong>terminado usuário está com seu login ativo neste cliente.Confere se o login enviado na consulta é o corrente neste cliente e se for respon<strong>de</strong> com ai<strong>de</strong>ntificação da máquina.• Função Z – Desativa o cliente. Quando recebe este código Z o cliente encerra a suaexecução.Figura 2: Ex<strong>em</strong>plo <strong>de</strong> mensag<strong>em</strong> recebida pelo programa cliente
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>Figura 3: Tela <strong>de</strong> comandos do Programa <strong>de</strong> Consulta4.2 PROGRAMA DE CONSULTAEste é um programa que foi impl<strong>em</strong>entado <strong>em</strong> ambiente WINDOWS e que vai interagircom os clientes que estarão fazendo parte do grupo GG. T<strong>em</strong>os um botão para selecionar cada umadas funções conforme ex<strong>em</strong>plo da tela mostrada na Figura 3. Para cada função selecionada, abreuma nova janela para receber os dados compl<strong>em</strong>entares que sejam necessários. Impl<strong>em</strong>enta asseguintes funções:• Função 1 – Mensag<strong>em</strong> Geral. Esta é uma situação <strong>de</strong> broadcast geral on<strong>de</strong> umamensag<strong>em</strong> será mostrada <strong>em</strong> todos os clientes. Recebe a i<strong>de</strong>ntificação do grupo e amensag<strong>em</strong> que é enviada a todos <strong>de</strong>ste grupo. Ex<strong>em</strong>plo conforme Figura 4.
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>Figura 4: Envio <strong>de</strong> mensag<strong>em</strong> genérica• Função 2 – Consulta <strong>de</strong> micro livre. Ex<strong>em</strong>plo na Figura 5. Manda uma mensag<strong>em</strong> <strong>de</strong>consulta a micro livre e aguarda respostas. Po<strong>de</strong>rá receber N respostas que serãomostradas <strong>em</strong> uma janela com barra <strong>de</strong> rolag<strong>em</strong>. Assume um time-out <strong>de</strong> 1 minuto parareceber todas as respostas. Este t<strong>em</strong>po <strong>de</strong> time-out é um parâmetro na tela já incializadocom o valor <strong>de</strong> 1 minuto e que o usuário po<strong>de</strong> alterar.Figura 5: Consulta <strong>de</strong> micro livre
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>• Função 3 – Consulta se o software XYZ está <strong>em</strong> uso. Ex<strong>em</strong>plo na Figura 6. Recebe dousuário um campo com o nome do software a ser consultado. Manda a mensag<strong>em</strong>consultando os clientes e aguardar resposta <strong>em</strong> um <strong>de</strong>terminado t<strong>em</strong>po conforme<strong>de</strong>scrito na função 2. Uma janela mostrara todas as maquinas que estão executando estesoftware.Figura 6: Consulta se <strong>de</strong>terminado software esta <strong>em</strong> uso• Função 4 – Consulta se t<strong>em</strong> arquivos do tipo XYZ na maquina cliente. Ex<strong>em</strong>plo naFigura 7. Recebe do usuário um campo com o tipo <strong>de</strong> arquivo. Manda a mensag<strong>em</strong> <strong>de</strong>consulta a todos os clientes e mostra o resultado <strong>em</strong> uma janela on<strong>de</strong> cada linha t<strong>em</strong> onome da maquina, número <strong>de</strong> arquivos e tamanho total dos arquivos. Permite classificarpor maquina, número <strong>de</strong> arquivos, tamanho total. T<strong>em</strong> o mesmo controle <strong>de</strong> time-out dafunção 2.
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>Figura 7: Consulta tipo <strong>de</strong> arquivos <strong>em</strong> todas os micros• Função 5 – Consulta se um <strong>de</strong>terminado usuário está com seu login ativo. Ex<strong>em</strong>plona Figura 8. Recebe o login <strong>de</strong> um usuário e envia uma mensag<strong>em</strong> com esta consulta.. Sevier resposta informa a localização on<strong>de</strong> está o usuário, nome da maquina e en<strong>de</strong>reço IP.Usa o mesmo controle <strong>de</strong> time-out da função 2.Figura 8: Consulta usuário
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>• Função Z – Desativa o programa cliente. Se esta solicitação for efetivada, apósvalidar uma senha <strong>de</strong> acesso a este recurso, será enviada uma mensag<strong>em</strong> a todos osclientes e os mesmos serão encerrados. Normalmente um cliente é ativado quando se ligao micro, fica s<strong>em</strong>pre executando, até que a maquina seja <strong>de</strong>sligada.4.3 PROGRAMA GERADOR DE LOG DE CONEXÃONo mecanismo <strong>de</strong> Comunicação <strong>em</strong> Grupo que foi usado neste trabalho, o SPREAD,<strong>de</strong>scrito anteriormente, todas as informações relativas às transições <strong>de</strong> estado estão disponíveisautomaticamente. Assim para cada cliente que é ativado ou <strong>de</strong>sativado, esta mudança nos m<strong>em</strong>brosdo grupo se reflete <strong>em</strong> uma mensag<strong>em</strong> <strong>de</strong> transição <strong>de</strong> estado que é enviada pelo SPREAD paratodos os m<strong>em</strong>bros do grupo.Aproveitando esta facilida<strong>de</strong> foi <strong>de</strong>senvolvido um programa para ficar executando nomesmo equipamento on<strong>de</strong> está instalado o SPREAD. Este programa foi impl<strong>em</strong>entado no ambienteLINUX e t<strong>em</strong> como objetivo gravar um arquivo log com registros on<strong>de</strong> são informadas a data ehora <strong>em</strong> que cada cliente foi ativado e <strong>de</strong>sativado. Com esta facilida<strong>de</strong> passamos a ter um log quenos mostra a hora que o micro foi ligado e a hora que o micro foi <strong>de</strong>sligado. Como as maquinas queestão sendo monitoradas estão na mesma re<strong>de</strong> local, on<strong>de</strong> está o da<strong>em</strong>on do SPREAD não t<strong>em</strong>osprobl<strong>em</strong>as com particionamento <strong>de</strong> re<strong>de</strong>.Desta forma um programa <strong>de</strong> visualização seleciona e tabula os registros <strong>de</strong> logs <strong>de</strong>conexão <strong>de</strong> um <strong>de</strong>terminado micro, apresentando um relatório <strong>de</strong> uso (maquina ligada) do mesmo<strong>em</strong> <strong>de</strong>terminado período <strong>de</strong> t<strong>em</strong>po, conforme Figura 9.Este programa gerador <strong>de</strong> log é ativado como um serviço na partida do sist<strong>em</strong>a e somenteserá <strong>de</strong>sativado quando o sist<strong>em</strong>a for <strong>de</strong>sligado. O arquivo <strong>de</strong> logs é incr<strong>em</strong>ental e é rotacionado narotina padrão <strong>de</strong> tratamento dos <strong>de</strong>mais logs do sist<strong>em</strong>a.
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>Figura 9: Relatório <strong>de</strong> uso <strong>de</strong> um equipamento5 CONCLUSÃOO uso <strong>de</strong> um mecanismo <strong>de</strong> comunicação <strong>em</strong> grupo permite total abstração quanto aescalabilida<strong>de</strong> no contexto <strong>de</strong> gerenciamento dos recursos <strong>em</strong> um sist<strong>em</strong>a distribuído. Todos osrecursos estejam eles na re<strong>de</strong> local ou <strong>em</strong> re<strong>de</strong>s <strong>de</strong> longa distância po<strong>de</strong>m ser gerenciadossimultaneamente pelo mesmo programa <strong>de</strong> consulta. Em termos práticos é recomendado umgerenciador SPREAD <strong>em</strong> cada segmento <strong>de</strong> re<strong>de</strong>, controlando os equipamentos <strong>de</strong>sta re<strong>de</strong> local.Estes gerenciadores se integram formando um sist<strong>em</strong>a único <strong>de</strong> controle <strong>de</strong> grupo permitindo queuma consulta feita <strong>em</strong> qualquer ponto da re<strong>de</strong> seja respondida por todos os outros pontos quecompõ<strong>em</strong> este grupo mesmo estando <strong>em</strong> segmentos <strong>de</strong> re<strong>de</strong>s distintos. Uma eventual queda <strong>de</strong>conexão entre dois segmentos vai particionar o ambiente <strong>em</strong> dois grupos distintos e quando houvera reconexão automaticamente é feita uma reorganização voltando a ter um grupo único com todosos micros do sist<strong>em</strong>a distribuído, idêntico à situação anterior à queda da re<strong>de</strong>. Outra gran<strong>de</strong>vantag<strong>em</strong> é po<strong>de</strong>rmos integrar num único gerenciamento diferentes arquiteturas <strong>de</strong> hardware esist<strong>em</strong>as operacionais.
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>Esta ferramenta <strong>de</strong> gerenciamento <strong>de</strong> sist<strong>em</strong>as distribuídos, <strong>usando</strong> comunicação <strong>em</strong> gruponão foi comparada com produtos similares pois não encontramos produtos s<strong>em</strong>elhantes <strong>usando</strong>comunicação <strong>em</strong> grupo. Este artigo contribui para divulgar o uso <strong>de</strong> mecanismos <strong>de</strong> comunicação<strong>em</strong> grupo mostrando o seu uso prático <strong>em</strong> um software <strong>de</strong> gerenciamento <strong>de</strong> recursos <strong>em</strong> sist<strong>em</strong>asdistribuídos.Como trabalhos futuros fica a sugestão <strong>de</strong> portar o aplicativo cliente para outrasplataformas como MAC e LINUX. Também uma versão do programa <strong>de</strong> consulta <strong>em</strong> JAVA seriamuito interessante pois permitiria o uso do mesmo <strong>em</strong> ambiente WEB.6 REFERÊNCIAS BIBLIOGRÁFICASAMIR, Y.; STANTON, J. The SPREAD Wi<strong>de</strong> Area Group Communication Syst<strong>em</strong>. Technicalreport, Center of Networking and Distributed Syst<strong>em</strong>s, Johns Hopkins University, Baltimore,Mariland, 1998. Disponível na internet URL: http://www.cnds.jhu.edu/publications/ capturado <strong>em</strong>agosto <strong>de</strong> 2001.BERKET, K., The InterGroup Protocols: Scalable Group Communication for the Internet.Dissertation, University of California – USA 2000. Disponível na internet URL http://wwwitg.lbl.gov/InterGroupcapturado <strong>em</strong> <strong>de</strong>z<strong>em</strong>bro <strong>de</strong> 2001.BIRMAN, K; RENESSE, R. van, Reliable Distributed Computing with the ISIS Toolkit, IEEEComputer Society Press, 1994.COULOURIS G.; DOLLIMORE J.; KINDBERG T., Distributed Syst<strong>em</strong>s Concepts and Design,Addison Wesley, Third Edition, 2001DOLEV, D.; MALKI, D.; The Transis Approach to High Availability ClusterCommunication., Communications of the ACM, 39(4), April 1996EZHILCHELVAN, P.; MACEDO, R.; SHRIVASTAVA, A. NEWTOP: A Fault-tolerante GroupCommunication Protocol. Proceedings of the 15 th IEEE International Conference onDistributed Computing Syst<strong>em</strong>s, pag 296-306, Vancouver, Canada, maio 1995.HAYDEN, M. The Ensenble Syst<strong>em</strong>, PhD thesis, Department of Computer Science, CornellUniversity, January 1998KOCH, R.R. The Atomic Group Protocols: Reliable Or<strong>de</strong>red message <strong>de</strong>livery for ATMnetworks PhD Dissertation, Department of Electrical and Computer Engineering, University ofCalifornia, Santa Barbara, CA, Dec<strong>em</strong>ber 2000
II Congresso Brasileiro <strong>de</strong> Computação – CBComp 2002Sist<strong>em</strong>as Paralelos e <strong>Distribuídos</strong>MALLOTH, C; Conception and Impl<strong>em</strong>entation of a Toolkit for Building Fault-TolerantDistributed Applications in Large-Scale Networks, PhD thesis , Ecole Polytechnique Fe<strong>de</strong>rale <strong>de</strong>Lausanne, 1996.MONTRESOR, A., Syst<strong>em</strong> Support for Programming Object-Oriented DependableApplications in Partitionable Syst<strong>em</strong>s, Technical Report UBLCS-2000-10 Department ofComputer Science, University of Bologna, Bologna – Italy, 2000. Disponível na internet URLhttp://www.cs.unibo.it capturado <strong>em</strong> <strong>de</strong>z<strong>em</strong>bro <strong>de</strong> 2001.MOSER, L. E.; MELLIAR-SMITH, P.M.; AGARWAL, D.A.;BUDHIA, R.;LINGLEY-PAPADOULOS, C. Tot<strong>em</strong>: A Fault-Tolerant Group Communication Syst<strong>em</strong>. Communicationsof the ACM, 39(4) , April 1996.RENESSE, R. van; BIRMAN, K.P.; MAFFEIS, S. Horus: A Flexible Group CommunicationSyst<strong>em</strong>, Communications of ACM, 39(4):76-83, April 1996.WHETTEN, B.; MONTGOMER, Y., T.; KAPLAN, S., A High Performance Totally Or<strong>de</strong>redMulticast Protocol. Proceedings of the International Workshop on Theory and Practice inDistributed Syst<strong>em</strong>s, pag 33-57, Dagstuhl Castle, Al<strong>em</strong>anha, Set<strong>em</strong>bro 1994.