Proposta de uma biblioteca para replicação transparente em Sistemas Distribuı́dos utilizando JGroups
DOI:
https://doi.org/10.5902/2448190471725Keywords:
Sistemas distribuídos, Replicação, Comunicação em grupo, Tolerância a falhasAbstract
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
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.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2022 Revista ComInG - Communications and Innovations Gazette
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Os manuscritos aceitos e publicados são de propriedade da revista ComInG.
Os originais deverão ser acompanhados de documentos de transferência de direitos autorais contendo assinatura dos autores.
A carta de direitos autorais deve ser enviada para o e-mail coming@inf.ufsm.br
É vedada a submissão integral ou parcial do manuscrito a qualquer outro periódico. A responsabilidade do conteúdo dos artigos é exclusiva dos autores.
É vedada a tradução para outro idioma sem a autorização escrita do Editor ouvida a Comissão Editorial.
ENGLISH
Manuscripts accepted and published are the property of the journal ComInG.
The originals must be accompanied by documentation of copyright transfer containing the signature of the authors.
You may not submit full or partial manuscript to another journal. The responsibility of the article's content is exclusive of the authors.
You may not translating into another language without the written permission of the Editor after consultation with the Editorial Board.