Client-transparent and self-managed MQTT broker federation at the application layer

Escalabilidade em sistemas de mensageria ainda é um tópico a ser explorado. As soluções existentes utilizam, principalmente, estratégias de clusterização, o que torna essas soluções adequadas para sistema com grandes fluxos de dados mas continuam dependendo unicamente de um orquestrador, que caracte...

Descripción completa

Detalles Bibliográficos
Autor: Machado Junior, José Fernando de Lacerda
Tipo de recurso: tesis de maestría
Estado:Versión publicada
Fecha de publicación:2023
País:Brasil
Institución:Universidade Federal do Rio Grande do Sul (UFRGS)
Repositorio:Biblioteca Digital de Teses e Dissertações da UFRGS
Idioma:inglés
OAI Identifier:oai:www.lume.ufrgs.br:10183/267015
Acceso en línea:http://hdl.handle.net/10183/267015
Access Level:acceso abierto
Palabra clave:Agentes federados
Tolerância a falhas
Programação
Internet das coisas
MQTT
Self-managed networks
Descripción
Sumario:Escalabilidade em sistemas de mensageria ainda é um tópico a ser explorado. As soluções existentes utilizam, principalmente, estratégias de clusterização, o que torna essas soluções adequadas para sistema com grandes fluxos de dados mas continuam dependendo unicamente de um orquestrador, que caracteriza um ponto único de falha. Por outro lado, algumas soluções, normalmente produtos comerciais, oferecem escalabilidade baseada em federação, sendo as principais características de robutez dessas soluções o fato de serem distribuídas e altamente tolerante a falhas. Spohn (2020) apresentou um solução inovadora baseada em federação, também sendo auto-gerenciada, que é o principal fundamento deste trabalho. Então, apresenta-se aqui um wrapper escrito em Python utilizado em conjunto com brokers MQTT Mosquitto, possibilitando que estes trabalhem de maneira federada e auto-organizada. Este wrapper é totalmente transparente ao cliente e pode ser anexado ao broker MQTT sem necessidade customização, apenas com pequenos ajustes de configuração de saída dos logs da aplicação.