Proposta de uma biblioteca para replicação transparente em Sistemas Distribuı́dos utilizando JGroups

Authors

DOI:

https://doi.org/10.5902/2448190471725

Keywords:

Sistemas distribuídos, Replicação, Comunicação em grupo, Tolerância a falhas

Abstract

O desenvolvimento de sistemas distribuídos implica em uma série de desafios, que vão desde a heterogeneidade de servidores que hospedam aplicações, passando por escalabilidade e segurança, indo até o tratamento de falhas. O presente trabalho tem como foco o último aspecto e, mais precisamente, a replicação para oferecer tolerância a falhas, mantendo réplicas de um sistema disponíveis em diferentes servidores a despeito da ocorrência de um número limitado de falhas. Entretanto, nem todos os sistemas distribuídos implementam essa característica originalmente e, consequentemente, é necessário que o desenvolvedor desenvolva a lógica de replicação especificamente para o sistema alvo. Esse processo pode ser caro, demorado e suscetível a erros, pois implica que o programador possua conhecimentos específicos relacionados a sistemas distribuídos e tolerância a falhas. Visando melhorar e facilitar o uso de replicação em aplicações, o trabalho que está sendo desenvolvido propõe a implementação de uma biblioteca que ofereça replicação de forma transparente para o programador. Com isso, sistemas que desejem aplicar essa estratégia de tolerância a falhas, podem facilmente fazê-la, apenas utilizando a nossa biblioteca. Para a implementação da biblioteca será utilizado o JGroups, uma biblioteca para comunicação em grupo.

Downloads

Download data is not yet available.

References

Abdellatif, T., Cecchet, E., and Lachaize, R. (2004). Evaluation of a group communication middleware for clustered J2EE application servers. In OTM Confederated International Conferences On the Move to Meaningful Internet Systems, pages 1571–1589. Springer.

Ban, B. (2011). Reliable Multicasting with the JGroups Toolkit. http://www.jgroups.org/manual/html single/. [Online; acessado em 15/12/2021].

Charron-Bost, B., Pedone, F., and Schiper, A. (2010). Replication: Theory and Practice, volume 5959. Springer.

CNN (2021). Mark Zuckerberg perde quase US$ 6 bi em dia de falhas e denúncias ao Facebook. https://www.cnnbrasil.com.br/business/mark-zuckerberg-perde-quase-us-6-bi-em-dia-de-falhas-e-denuncias-ao-facebook/. [Online; acessado em 04/03/2022].

de Simone, S. (2020). GitHub Was down Multiple Times Last February: Here’s Why. https://www.infoq.com/news/2020/03/github-february-incidents. [Online; acessado em 25/07/2022].

Facebook (2020). RocksDB. http://rocksdb.org/. [Online; acessado em 25/07/2022].

Globo, O. (2021). Sistema do BB volta a funcionar, após ficar sete horas fora do ar. https://oglobo.globo.com/economia/sistema-do-bb-volta-funcionar-apos-ficar-sete-horas-fora-do-ar-1-25174388. [Online; acessado em 24/07/2022].

JGroups (2002). JGroups - A Toolkit for Reliable Messaging. http://www.jgroups.org/. [Online; acessado em 23/07/2022].

Lamport, L. (2001). Paxos made simple. ACM SIGACT News (Distributed Computing Column) 32, 4 (Whole Number 121, December 2001), pages 51–58.

Microsoft (2022). Padrão embaixador. https://docs.microsoft.com/pt-br/azure/architecture/patterns/ambassador. [Online; acessado em 25/07/2022].

Oracle (2014). Socket (Java Platform SE 8). https://docs.oracle.com/javase/8/docs/api/java/net/Socket.html. [Online; acessado em 25/07/2022].

Pereira, P. M., Dotti, F. L., Meinhardt, C., and Mendizabal, O. M. (2019). A library for services transparent replication. In Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, SAC ’19, page 268–275, New York, NY, USA. Association for Computing Machinery.

TAHTEC (2020). Diferença entre Unicast, multicast e broadcast. https://tahtec.com.br/diferenca-entre-unicast-multicast-e-broadcast/. [Online; acessado em 25/07/2022].

Tanenbaum, A. S. (1995). Distributed Operating Systems. Prentice Hall, New Jersey.

Tanenbaum, A. S. and Steen, M. V. (2007). Sistemas Distribuídos: princípios e paradigmas. Pearson Prentice Hall, São Paulo, 2. ed. edition.

Ugliara, F. A., Vieira, G. M. D., and de Oliveira Guimarães, J. (2017). Transparent replication using metaprogramming in cyan. In Proceedings of the 21st Brazilian Symposium on Programming Languages, SBLP 2017, New York, NY, USA. Association for Computing Machinery.

Verissimo, P. and Rodrigues, L. (2001). Distributed systems for system architects.

White, B., Lepreau, J., Stoller, L., Ricci, R., Guruprasad, S., Newbold, M., Hibler, M., Barb, C., and Joglekar, A. (2002). An integrated experimental environment for distributed systems and networks. ACM SIGOPS Operating Systems Review, 36(SI):255–270.

Published

2022-11-18

How to Cite

Alves, C. M., & Mendizabal, O. M. (2022). Proposta de uma biblioteca para replicação transparente em Sistemas Distribuı́dos utilizando JGroups. Revista ComInG - Communications and Innovations Gazette, 6(1), 24–35. https://doi.org/10.5902/2448190471725