Corretor de mensagens realmente pequeno: IOT Parte 40

No tutorial anterior, foram discutidos os fundamentos do protocolo MQTT-SN. Foi mencionado que um Gateway MQTT-SN precisa se comunicar com um Broker MQTT-SN. Os corretores MQTT-SN são pouco diferentes dos corretores MQTT. Really Small Message Broker é um dos corretores MQTT-SN populares.
Imagem mostrando o corretor RSMB para MQTT-SN
Figura 1: Imagem mostrando o RSMB Broker para MQTT-SN
O corretor de mensagens realmente pequeno (também conhecido como RSMB) é um corretor de transporte de telemetria MQ de mensagens leve e de baixa sobrecarga (versão 3 ou 3.1) ou corretor MQTT-SN. É um corretor baseado em pub/sub. Ele permite mensagens de e para dispositivos minúsculos, como sensores e atuadores, em redes que são restritas em termos de baixa largura de banda, capacidades de processamento limitadas e confiabilidade variável. O editor envia a mensagem ao corretor que então as distribui aos “assinantes” que solicitaram o recebimento dessas mensagens.
O corretor RSMB é semelhante aos outros corretores MQTT (HiveMQ, Mosquitto, Adafruit), mas a diferença é que fornece conectividade a outros corretores também em paralelo. Ele cria uma “ponte” que permite conexões com outros corretores MQTT. Este broker permite que mensagens sejam passadas entre instâncias RSMB, bem como outros servidores MQTT. O corretor RSMB também suporta o protocolo MQTT-SN que, quando implementado, aceita os pacotes UDP e os envia para o corretor MQTT local e para os corretores MQTT em ponte (aquele que possui assinatura).
O corretor RSMB ocupa apenas 50 KB de espaço de armazenamento e pode ser executado em apenas 150 KB ou menos de memória, o que o torna ideal para instalação e execução em pequenos servidores e dispositivos incorporados. O corretor RSMB, por padrão, é executado na porta 1883 através do MQTT. Ele precisa ser configurado para permitir a conexão para portas definidas pelo usuário.
Instalando e executando o corretor RSMB –
O corretor RSMB pode ser instalado nos seguintes sistemas operacionais –
1) Linux para kernel Intel de 32 bits 2.6.8 ou superior
2) Linux para kernel Intel de 64 bits 2.6.8 ou superior
3) Linux para ARM XScale, kernel 2.0.0 ou superior (Crossbow Stargate ou Eurotech Viper)
4)WindowsXP
5) Apple Mac OS X Leopard
6) SO Raspbian
Para instalar o corretor no Windows, siga as etapas abaixo –
1) Baixe o arquivo zip da plataforma.
2) Extraia o arquivo zip para um local no computador.
3) No Windows, instale o Pacote Redistribuível do Microsoft Visual C++ 2008, se ainda não estiver instalado.
4) Execute o corretor clicando em broker.exe.
Para instalar o broker no Linux ou Raspbian, siga os passos abaixo –
1) Obtenha um clone do corretor RSMB.
2) Mude o diretório para: cd mosquito.rsmb/rsmb/src
3) Execute o make
4) Para executar o corretor, execute ./broker para mqtt e ./broker_mqtts para mqtt-sn. Para executar o broker em segundo plano, execute o comando nohup ./broker >> /dev/null
5) O corretor agora está ativo na máquina local. Por padrão, ele escuta 1883.
6) Para encerrar o corretor, digite Ctrl+C. O processo do corretor em execução pode ser eliminado passando os seguintes comandos –
Captura de tela do comando para matar o corretor
Figura 2: Captura de tela do comando para matar o corretor
Como funciona o corretor RSMB –
O broker RSMB, por padrão, escuta a conexão MQTT na porta 1883. O comportamento padrão pode ser alterado pelo arquivo de configuração. O corretor RSMB pode criar uma ponte entre MQTT e MQTT-SN. Ele escuta pacotes MQTT na pilha TCP/IP e pacotes MQTT-SN na pilha UDP. Os clientes MQTT-SN enviam a mensagem na pilha UDP com o ID do tópico para o corretor RSMB. O broker RSMB salva essa mensagem em seu buffer e também encaminha as mensagens para os clientes MQTT em ponte que assinaram o mesmo ID de tópico.
Configuração do corretor RSMB –
O broker por padrão não possui nenhum arquivo de configuração. Mas o arquivo de configuração pode ser adicionado para comandar o corretor para escutar em uma porta específica com um endereço de rede específico. O arquivo de configuração também é utilizado para controlar outros atributos do broker, passando os parâmetros de configuração. Cada parâmetro de configuração é definido em formato padrão com uma linha separada como segue –
Captura de tela do parâmetro de configuração do RSMB Broker
Fig. 3: Captura de tela do parâmetro de configuração do corretor RSMB
As linhas que começam com “#” são tratadas como comentários e são ignoradas pela corretora. Quando o broker é iniciado, ele procura um arquivo de configuração chamado broker.cfg no mesmo diretório em que o broker está instalado (no Windows, por exemplo, o mesmo diretório do arquivo broker.exe).
Quando o broker é executado a partir da linha de comando, o nome e o local do arquivo de configuração podem ser especificados como parâmetro. Por exemplo, se o arquivo de configuração for chamado broker.cfg, digite o seguinte comando para iniciar o broker –
Captura de tela do comando para iniciar o corretor
Fig. 4: Captura de tela do comando para iniciar o corretor
Um arquivo de configuração mqtts_conf.cfg se parece com o seguinte –
Captura de tela do arquivo de configuração mqtts_conf.cfg
Figura 5: Captura de tela do arquivo de configuração mqtts_conf.cfg
O arquivo de configuração possui os seguintes parâmetros definidos –
trace_output: um destino para gravar entradas de rastreamento conforme elas ocorrem.
Ouvinte: Um ouvinte é um processo que aguarda conexões de clientes. Possui uma porta e endereço de rede específicos.
Conexão: Qualquer nome de conexão. É o nome dado para identificar a conexão única. O nome da conexão deve ser alfanumérico e não deve conter espaços.
Endereço: A porta é o endereço IP do computador que hospeda o agente remoto e o número da porta que o agente remoto usa. Por padrão, a porta é 1883. Se nenhum número de porta for especificado, especifique o endereço IP sem os dois pontos (:).
Tópico # out: Representa a hierarquia de tópicos na qual o broker local publicará a mensagem para o broker remoto através da ponte. # out significa que qualquer mensagem sobre um tópico específico que o corretor RSMB receberá, ela será passada para o corretor MQTT. Um tópico específico também pode ser especificado para que apenas o tópico registrado seja usado para publicação ou assinatura.
Ponte entre dois corretores –
Pode-se observar que no arquivo de configuração foi especificada a conexão bridge entre RSMB e Mosquitto. Ambos estão rodando na mesma máquina. Esses dois corretores também podem ser executados de forma independente em máquinas diferentes. Para este arquivo de configuração precisa ser alterado. O endereço IP do broker MQTT e o número da porta precisam ser especificados no arquivo de configuração para ponte. Um corretor também pode começar a escutar em portas diferentes para a mesma máquina. O Cliente pode acessar o mesmo servidor com portas diferentes. As conexões também podem ser limitadas no servidor.
Segurança –
O servidor pode ser protegido definindo o nome de usuário e a senha no final do servidor. Então, apenas os clientes autenticados poderão acessar o servidor. A segurança pode ser habilitada limitando as conexões apenas a IDs de clientes específicos. A outra forma de fornecer segurança tanto no cliente quanto no servidor pode ser habilitada gerando os certificados para o cliente e o servidor, de forma que o cliente se comunique apenas com o corretor se tiver o certificado do servidor e vice-versa.
No próximo tutorial, aprenda a configurar a comunicação cliente-servidor através do protocolo MQTT-SN usando o RSMB Broker.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.