Introducing
Your new presentation assistant.
Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.
Trending searches
Danielle Romano
Felipe Compan
Vitor Ardengue
MQTT (Message Queuing Telemetry Transport):
que fosse capaz de comunicar várias máquinas entre si, utilizando-se microcontroladores para que fosse possível obtenção de dados com uma taxa de transmissão leve para a comunicação entre as máquinas e os sensores.
Comparação com os padrões Request-Response e Observer:
Atores do Sistema:
RELAÇÃO CLIENTE X BROKER
“Foram posicionados dois sensores numa plantação. Um deles é utilizado para medir a umidade do solo enquanto que o outro mede a temperatura local. Ambos estão conectados a um servidor para onde enviarão os dados captados a cada 30 minutos.”
Nesse exemplo ambos os sensores são publishers, ou seja, enviam seus dados para um broker que realiza o armazenamento e controle desses dados. Entretanto, eles não serão armazenados no mesmo local (sob o mesmo tópico).
Os dados referentes à temperatura local serão guardados em um tópico “Temperatura”, por exemplo, enquanto que os dados referentes à umidade do solo serão guardados em um tópico “Umidade”. Além desses 2 clientes, também teremos outros clientes, agora subscribers. Esses serão, por exemplo, Raspberry Pis conectados ao sistema de irrigação do local. O raspberry receberá, do broker, os dados referentes à umidade do solo e temperatura do local e realizará sua tarefa.
Quanto a esse “receber os dados do broker”, é exatamente isso. Não é o cliente quem pede ao servidor pelos dados. Como ele já está listado em um devido tópico, o broker sabe que deve mandar esses novos dados para esse receptor, excluindo a necessidade de uma requisição. E além desse benefício, esse método também permite que clientes publishers não necessitem saber para quem esses dados devem ser mandados, já que é um trabalho do Broker.
O protocolo MQTT utiliza outro protocolo chamado TCP para a transmissão de dados. Além do TCP, também é usado o MQTT-SN, que é usado para outros tipos de transporte como UDP ou Bluetooth.
O Header do MQTT pode variar de 2 a 5 bytes. Em relação ao primeiro byte obrigatório, os 4 primeiros bits referem-se ao tipo de mensagem, o bit seguinte refere-se ao indicador de mensagem duplicada, dois bits para identificar o QoS(qualidade de serviço) do pacote e bit para indicar de se a mensagem deve ser retida ou não para quando alguém se conectar receber a última mensagem enviada. Os próximos 4 bytes irão definir o tamanho do resto do pacote, podendo ir de 0 a 268 435 455 bits. O restante são informações que podem variar e não existe um padrão.
Tipos de mensagens
3 principais tipos de mensagem:
Connect
Tenta criar uma conexão com o Broker e espera até que a conexão seja estabelecida, começando a escutar as mensagens publicadas.
Disconnect
Espera que até o cliente terminar alguma ação que esteja realizado e finaliza a conexão TCP/IP, parando assim de escutar as mensagens que serão publicadas.
Publish
A mensagem contém um tópico e uma carga útil de dados. Em seguida, o broker encaminha a mensagem a todos os clientes que assinam esse tópico.
Tabela de
Mensagens
Caso um tópico não possua nenhum subscriber e o Broker receber uma informação referente a este tópico, tal informação será deletada. Isso só não acontecerá caso seja especificado pelo publisher que tal dado deve ser armazenado, o que é uma prática muito usada, pois permite que os subscribers possam ter a informação mais atualizada sem ter que esperar o publisher enviar a nova informação.
Um outro caso é quando um publisher se conecta pela primeira vez a um Broker. Durante essa primeira conexão ele tem a oportunidade de definir uma mensagem padrão que será enviada aos subscribers caso o Broker perceba que esse publisher se desconectou dele
Figura 5 - Exemplo de conexão MQTT com QoS-0 e flag de armazenamento da mensagem. Fonte: https://commons.wikimedia.org/wiki File:MQTT_protocol_example_without_QoS.svg
Os usos desse protocolo depende apenas da criatividade do desenvolvedor. Podem ser criados sistemas de controle de mercadorias, automação de processos, controle de fluxo de pessoas, controle para eficiência energética, entre muitos outros.
Este protocolo possui 3 qualidades de serviço(QoS):
Cada conexão com o broker pode especificar qual será utilizada
Como o publisher não envia a informação direto para os subscribers, ele não precisa guardar a informação de todos os seus subscritores e nem precisa fazer vários envios de informação(uma para cada subscriber).
Apenas é necessário que ele realize um envio de informação para o broker com a informação que ele quer que seja enviada daquele tópico, dessa forma o processamento realizado e o consumo de memória do Publisher pode ser reduzido. Além disso, o header de uma mensagem no protocolo MQTT é muito menor do que um Header no protocolo HTTP, o que economiza muito o consumo de banda.
1. Em qual camada o MQTT trabalha?
2. Explique o paradigma Publish-subscribe.
3. Qual o tamanho do header fixo do MQTT?
4. Quais as QoS (qualidade de serviço) disponível no MQTT?
5. Quais as vantagens do MQTT?
4. Quais as QoS (qualidade de serviço) disponível no MQTT?
5. Quais as vantagens do MQTT?
1. Em qual camada o MQTT trabalha?
2. Explique o paradigma Publish-subscribe.
O paradigma possui três papéis: o broker, o publisher e o subscriber.
3.Qual o tamanho do header fixo do MQTT?
2 bytes
[1] https://www.gta.ufrj.br/ensino/eel878/redes1-2019-1/vf/mqtt/
[2] https://www.gta.ufrj.br/ensino/eel878/redes1-2018-1/trabalhos-vf/mqtt/
[3] https://www.embarcados.com.br/mqtt-protocolos-para-iot/#Implementacoes-e-exemplos-de-uso
[4] https://www.ibm.com/developerworks/br/library/iot-mqtt-why-good-for-iot/index.html