Discussão do artigo "Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 4)"

 

Novo artigo Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 4) foi publicado:

Este artigo é a quarta parte de uma série que descreve as etapas do desenvolvimento de um cliente MQL5 nativo para o protocolo MQTT. Nesta parte, examinamos as propriedades do MQTT v5.0, sua semântica, como lemos algumas delas e também fornecemos um breve exemplo de como as propriedades podem ser usadas para expandir o protocolo.

As propriedades fazem parte dos "mecanismos de extensibilidade" adicionados no MQTT v5.0. Elas não estavam presentes na versão anterior 3.1.1, que foi a última antes desta grande atualização, mas são comumente encontradas no MQTT v5.0. Mas o que são propriedades MQTT? Propriedades de quê exatamente?

A resposta é: propriedades da mensagem de aplicação (application message). De acordo com o padrão OASIS, a ‘application message’ é

"Dados transmitidos pela rede por meio do protocolo MQTT para um aplicativo. Quando uma mensagem do aplicativo é transmitida por MQTT, ela contém dados úteis, qualidade de serviço (quality of service, QoS), um conjunto de propriedades e um tópico" (destacado por mim).

Olhe para o retângulo amarelo dados úteis (payload data) na Figura 1 abaixo. Existe uma distinção terminológica importante que gostaríamos de destacar.

Esquema abstrato da mensagem do aplicativo MQTT 5.0

Fig. 01. Esquema abstrato da mensagem do aplicativo MQTT 5.0

No contexto do protocolo de troca de mensagens, quando vemos a palavra mensagem (message), geralmente pensamos em uma mensagem de usuário, frequentemente uma mensagem de texto. Na maioria das vezes, não pensamos na mensagem como um aplicativo inteiro. 

Mas aqui, a mensagem enviada pelos usuários via MQTT faz parte dos dados úteis, e as propriedades fazem parte de um modelo abstrato do protocolo chamado ‘application message’. Assim, quando enviamos uma mensagem de usuário via MQTT, podemos ter não apenas propriedades relacionadas a essa "mensagem de usuário", mas também propriedades relacionadas à mensagem de aplicação como um todo: propriedades para conexão, publicação, assinatura e cancelar assinatura de tópicos, propriedades para autenticação, etc.

Além disso, existem as propriedades Will, que estão ligadas à mensagem Will.

"A mensagem Will consiste em propriedades Will, tópico Will e carga útil Will na carga útil de CONEXÃO (CONNECT payload)."

A terminologia pode parecer um pouco confusa quando você começa a implementar o protocolo, mas farei o meu melhor para torná-la o mais clara possível.

Autor: Jocimar Lopes

Razão: