XI Workshop de Testes e Tolerância a Falhas (WTF) - SBRC 2010
XI Workshop de Testes e Tolerância a Falhas (WTF) - SBRC 2010
XI Workshop de Testes e Tolerância a Falhas (WTF) - SBRC 2010
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>XI</strong> <strong>Workshop</strong> <strong>de</strong> <strong>Testes</strong> e Tolerância a <strong>Falhas</strong> 161<br />
Figura 4. Resultado dos testes em re<strong>de</strong>.<br />
5.3. Conjunto <strong>de</strong> <strong>Testes</strong> - Manutenção do Estado e Consistência<br />
Para o teste <strong>de</strong> manutenção <strong>de</strong> estado, a análise foi feita fazendo a réplica primária falhar<br />
continuamente e aplicando a operação <strong>de</strong> listar o número <strong>de</strong> itens no novo primário eleito.<br />
Para o teste <strong>de</strong> consistência, a listagem <strong>de</strong> elementos foi invocada em cada novo primário<br />
e armazenada para posterior comparação.<br />
O teste <strong>de</strong> manutenção <strong>de</strong> estado funcionou <strong>de</strong>ntro do esperado, <strong>de</strong> forma que cada<br />
réplica apresentou 3000 itens em seus vetores após a falha do servidor primário.<br />
O teste <strong>de</strong> consistência também foi bem sucedido. Para comparar os estados, após<br />
as invocações, a operação <strong>de</strong> listagem <strong>de</strong> conteúdo foi invocada em cada réplica e seus<br />
resultados armazenados para que pu<strong>de</strong>ssem ser comparados através da API Java.<br />
Os testes <strong>de</strong>monstraram que o maior overhead da replicação foi a comunicação em<br />
grupo. A pilha <strong>de</strong> protocolo utilizada nos testes foi a pilha padrão do JGroups, <strong>de</strong> forma<br />
que é necessário estudá-la melhor e customizá-la a fim <strong>de</strong> apresentar um <strong>de</strong>sempenho<br />
mais satisfatório.<br />
Como todas as modificações foram feitas na arquitetura Axis2, nenhuma mudança<br />
foi necessária diretamente no serviço web, <strong>de</strong> forma que, nesse aspecto, este trabalho<br />
garante que serviços web autônomos e heterogêneos sejam replicados <strong>de</strong> uma maneira<br />
transparente.<br />
6. Conclusão e Trabalhos Futuros<br />
Este trabalho propôs analisar a maneira pela qual os métodos <strong>de</strong> replicação são adotados<br />
em conjunto aos serviços web. Os protótipos implementados <strong>de</strong>monstraram que a<br />
replicação em serviços é praticável, inclusive no que se refere à manutenção e consistência<br />
<strong>de</strong> estado entre as réplicas. A principal fonte <strong>de</strong> latência encontrada foi a comunicação em<br />
grupo, <strong>de</strong>monstrando que a primitiva multicast e o controle <strong>de</strong> membros <strong>de</strong> grupo po<strong>de</strong>m<br />
ser bastante dispendiosos.<br />
Dentre os trabalhos futuros, <strong>de</strong>staca-se uma melhor análise da pilha <strong>de</strong> protocolos<br />
do JGroups para obter um melhor <strong>de</strong>sempenho, além <strong>de</strong> analisar a escalabilida<strong>de</strong> da<br />
solução proposta. Outrossim é a implementação <strong>de</strong> outros protocolos <strong>de</strong> replicação, tais<br />
como replicação semi-passiva e ativa.