|
Abstract:
|
Na sociedade pós-moderna o imediatismo requerido pela humanidade gera uma urgência por um fluxo contínuo de informações, logo, a indisponibilidade de um serviço pode acarretar vários prejuízos. Para assegurar a disponibilidade contínua dos serviços, é possível replicá-los em múltiplos servidores, seguindo abordagens como a replicação passiva (ou primary-backup) ou a replicação ativa (ou Replicação de Máquina de Estados). Na replicação passiva, apenas uma réplica é responsável pelo processamento das requisições, enquanto as outras atuam como backups. Já na replicação ativa, prevê-se que todas as réplicas irão atuar no processamento das solicitações. Para tal, é necessário que todas as réplicas executem a mesma sequência de operações determinísticas para, assim, evoluírem por estados idênticos. Entretanto, devido aos desafios associados à implementação dessas duas estratégias, este trabalho visa o desenvolvimento do Middle-earth, um middleware para replicação, que atue como um serviço intermediário entre os clientes e as réplicas de uma determinada aplicação, assegurando consistência forte entre as réplicas e proporcionando transparência no processo de replicação. O Middle-earth é constituído por dois serviços: um log distribuído e um serviço denominado logger. O log distribuído é responsável pela durabilidade e disponibilidade dos dados, enquanto o logger é responsável por efetivamente interceptar as requisições e coordená-las para as réplicas. Com o objetivo de identificar o custo associado ao Middle-earth, foi executada uma avaliação experimental. Nesta, o desempenho do middleware apresentou-se inferior ao de uma estratégia sem replicação. Contudo, esse é um custo inerente à replicação e ao processo de interceptação. A avaliação também permitiu constatar que o middleware demonstrou capacidade para suportar acréscimos de servidores em sua carga de trabalho, evidenciando seu potencial de escalabilidade. |