Mongochain : um framework para implementação de sistemas transacionais - SOUSA, Carlos Manoel Vasconcelos (2020)
Sistemas de Gerenciamento de Banco de Dados (SGBD) relacionais têm como característica fornecer consistência forte aos dados por meio de transações que mantêm as propriedades de Atomicidade, Consistência, Isolamento e Durabilidade (ACID). Porém, não são triviais quando executados em sistemas distribuídos compostos por clusters, nos quais pode-se obter escalabilidade horizontal com a adição de mais nodes. Logo, os SGBD Não Apenas SQL (NoSQL) de agregados são usados pelos desenvolvedores para fornecer dados com maior disponibilidade. Todavia, a consistência é sacrificada ao adotar os conceitos Basicamente Disponível, Estado Leve e Consistência Eventual (BASE). Ademais, a blockchain é uma tecnologia que pode substituir o uso de ACID e BASE ao realizar transações seguras e transparentes em uma rede distribuída e descentralizada. Encontram-se no estado da arte, soluções que integram tecnologias divergentes para contemplar requisitos transacionais em diferentes domínios. Porém, não há um ambiente programável que auxilie os desenvolvedores a implementar e gerenciar sistemas transacionais com ACID, BASE e blockchain. Sendo assim, este trabalho apresenta o MongoChain, um framework proveniente da integração entre o SGBD NoSQL de agregados MongoDB com uma rede blockchain. Foi realizado um experimento para mostrar a capacidade do MongoChain em garantir a consistência dos dados ao executar transações ACID em múltiplos documentos do MongoDB e gerenciar uma rede blockchain. Além disso, para validar a capacidade de extensão do MongoChain, foram construídos dois frameworks especialistas que auxiliaram no desenvolvimento das seguintes aplicações: agendamentos em clínicas médicas e marketplace de produtos automotivos. Os resultados mostram que o MongoChain fornece os mecanismos necessários para provê dados consistentes, escaláveis, disponíveis, seguros e transparentes.