MQTT: mudanças entre as edições
Linha 13: | Linha 13: | ||
Conceitos básicos <ref name=LAMPKIN/>: | Conceitos básicos <ref name=LAMPKIN/>: | ||
* '''Publicador/Subscritor''': O protocolo MQTT é baseado no princípio de '''publicar mensagens''' (''' | * '''Publicador/Subscritor''': O protocolo MQTT é baseado no princípio de '''publicar mensagens''' ('''publisher''') e '''subscrever tópicos''' ('''subscriber''') para receber mensagens, conhecido como '''modelo publisher/subscriber'''. | ||
*:Um cliente pode subscrever tópicos e receber mensagens de atualizações quando algo for publicado sobre este tópico. Alternativamente, um cliente pode publicar mensagens relativas a um dado tópico e deixá-la disponível para os assinantes. | *:Um cliente pode subscrever tópicos e receber mensagens de atualizações quando algo for publicado sobre este tópico. Alternativamente, um cliente pode publicar mensagens relativas a um dado tópico e deixá-la disponível para os assinantes. | ||
* '''Tópicos e subscrições''': As mensagens MQTT são publicadas em '''tópicos''' (''' | * '''Tópicos e subscrições''': As mensagens MQTT são publicadas em '''tópicos''' ('''topic'''), que são áreas de interesse. | ||
*:Os clientes, por sua vez, assinam para receber mensagens de uma dada subscrição. As subscrições podem ser explicitas, ou organizadas hierarquicamente, com o cliente usando '''wildcards''' ('''#''') para receber mensagens de uma variedade de tópicos. | *:Os clientes, por sua vez, assinam para receber mensagens de uma dada subscrição. As subscrições podem ser explicitas, ou organizadas hierarquicamente, com o cliente usando '''wildcards''' ('''#''') para receber mensagens de uma variedade de tópicos. | ||
*:*topic: /casa/terreo/cozinha/temperatura | *:*'''topic''': /casa/terreo/cozinha/temperatura | ||
*:*wildcard: /casa/terreo/# | *:*'''wildcard''': /casa/terreo/# | ||
* '''Qualidade de Serviço''': O MQTT define três níveis de Qualidade de Serviço ('''QoS'''): | * '''Qualidade de Serviço''': O MQTT define três níveis de Qualidade de Serviço ('''QoS'''): | ||
*:*(0) | *:*(0) ''best effort'', envia a mensagem uma vez; | ||
*:*(1) envia a mensagem várias vezes; | *:*(1) envia a mensagem várias vezes; | ||
*:*(2) assegura o recebimento da mensagem. | *:*(2) assegura o recebimento da mensagem. | ||
Linha 28: | Linha 28: | ||
*'''Retem as mensagens''': Mantém as mensagens enviadas no '''brocker''' mesmo depois de enviada a todos os subscritores. | *'''Retem as mensagens''': Mantém as mensagens enviadas no '''brocker''' mesmo depois de enviada a todos os subscritores. | ||
*'''Conexões duráveis e sessões limpas''': Quando um cliente se conecta a um servidor e seta o ''clean session flag | *'''Conexões duráveis e sessões limpas''': Quando um cliente se conecta a um servidor e seta o ''clean session flag = true''. Desta forma, quando desconectar, todas as subscrições serão removidas. Se o ''clean session flag = false'' a conexão é tratada como durável e as subscrições do cliente continuam mesmo após uma desconexão. | ||
*'''Wills''': Quando um cliente se conecta a um servidor e pode informar que possui uma '''will''', isto é, mensagens importantes que deveriam ser publicadas, mesmo em caso de desconexão involuntária. Isto é importante para '''sensores de alerta''', que informam o sistema caso percam o contato com a rede. | *'''Wills''': Quando um cliente se conecta a um servidor e pode informar que possui uma '''will''', isto é, mensagens importantes que deveriam ser publicadas, mesmo em caso de desconexão involuntária. Isto é importante para '''sensores de alerta''', que informam o sistema caso percam o contato com a rede. | ||
O modelo '''publisher/ | O modelo '''publisher/subscriber''' oferece uma alternativa ao modelo '''cliente/servidor'''. No modelo '''cliente/servidor''' o cliente se comunica diretamente o servidor num serviço fim a fim. No modelo '''publisher/subscriber''' o '''publicador''' e o '''subscritor''' não se comunicam diretamente. A comunicação é realizada por um terceiro componente, o '''brocker''' <ref name=MQTT_Essentials/>. | ||
==Referências== | ==Referências== |
Edição das 17h04min de 2 de abril de 2020
MQTT - Message Queue Telemetry Transport
MQTT (Message Queue Telemetry Transport) é um protocolo de mensagens para sensores e pequenos dispositivos móveis, baseado no modelo Publicador/Subscritor, ideal para aplicações de Internet das Coisas, em particular para a comunicação máquina a máquina (M2M - Machine to Machine).
Referências:
- Livro (LAMPKIN etal, 2012) [1].
- Site: MQTT Essentials [2].
As aplicações de Internet das Coisas podem envolver abordagens avançadas de telemetria, de forma a poder conectar diferentes dispositivos inteligentes em atividades de sensoreamento, monitoramento e controle, além da conexão dos mesmos a Internet ou a sistemas de controle central [1].
MQTT - Conceitos básicos
Conceitos básicos [1]:
- Publicador/Subscritor: O protocolo MQTT é baseado no princípio de publicar mensagens (publisher) e subscrever tópicos (subscriber) para receber mensagens, conhecido como modelo publisher/subscriber.
- Um cliente pode subscrever tópicos e receber mensagens de atualizações quando algo for publicado sobre este tópico. Alternativamente, um cliente pode publicar mensagens relativas a um dado tópico e deixá-la disponível para os assinantes.
- Tópicos e subscrições: As mensagens MQTT são publicadas em tópicos (topic), que são áreas de interesse.
- Os clientes, por sua vez, assinam para receber mensagens de uma dada subscrição. As subscrições podem ser explicitas, ou organizadas hierarquicamente, com o cliente usando wildcards (#) para receber mensagens de uma variedade de tópicos.
- topic: /casa/terreo/cozinha/temperatura
- wildcard: /casa/terreo/#
- Os clientes, por sua vez, assinam para receber mensagens de uma dada subscrição. As subscrições podem ser explicitas, ou organizadas hierarquicamente, com o cliente usando wildcards (#) para receber mensagens de uma variedade de tópicos.
- Qualidade de Serviço: O MQTT define três níveis de Qualidade de Serviço (QoS):
- (0) best effort, envia a mensagem uma vez;
- (1) envia a mensagem várias vezes;
- (2) assegura o recebimento da mensagem.
- Retem as mensagens: Mantém as mensagens enviadas no brocker mesmo depois de enviada a todos os subscritores.
- Conexões duráveis e sessões limpas: Quando um cliente se conecta a um servidor e seta o clean session flag = true. Desta forma, quando desconectar, todas as subscrições serão removidas. Se o clean session flag = false a conexão é tratada como durável e as subscrições do cliente continuam mesmo após uma desconexão.
- Wills: Quando um cliente se conecta a um servidor e pode informar que possui uma will, isto é, mensagens importantes que deveriam ser publicadas, mesmo em caso de desconexão involuntária. Isto é importante para sensores de alerta, que informam o sistema caso percam o contato com a rede.
O modelo publisher/subscriber oferece uma alternativa ao modelo cliente/servidor. No modelo cliente/servidor o cliente se comunica diretamente o servidor num serviço fim a fim. No modelo publisher/subscriber o publicador e o subscritor não se comunicam diretamente. A comunicação é realizada por um terceiro componente, o brocker [2].
Referências
- ↑ 1,0 1,1 1,2 Valerie Lampkin; Weng Tat Leong; Leonardo Olivera; Sweta Rawat; Nagesh Subrahmanyam; Rong Xiang. Building Smarter Planet Solutions with MQTT and IBM WebSphere MQ Telemetry, ibm.com/redbooks, 2012.
- ↑ 2,0 2,1 MQTT Essentials: The Ultimate Kickstart For MQTT Beginners, https://www.hivemq.com/mqtt-essentials/.
Evandro.cantu (discussão) 11h27min de 25 de março de 2020 (-03)