Diskussion zum Artikel "Entwicklung eines MQTT-Clients für Metatrader 5: ein TDD-Ansatz — Teil 4"

 

Neuer Artikel Entwicklung eines MQTT-Clients für Metatrader 5: ein TDD-Ansatz — Teil 4 :

Dieser Artikel ist der vierte Teil einer Serie, die unsere Entwicklungsschritte für einen nativen MQL5-Client für das MQTT-Protokoll beschreibt. In diesem Teil beschreiben wir, was MQTT v5.0 Properties sind, ihre Semantik, wie wir einige von ihnen lesen, und geben ein kurzes Beispiel, wie die Eigenschaften (Properties) zur Erweiterung des Protokolls verwendet werden können.

Eigenschaften sind Teil der „Erweiterungsmechanismen“, die in MQTT v5.0 hinzugefügt wurden. In der Vorgängerversion v3.1.1, der letzten Version vor diesem großen Upgrade, gab es sie noch nicht. Sie sind in MQTT v5.0 allgegenwärtig. Aber was sind MQTT-Eigenschaften? Eigenschaften wovon genau?

Eigenschaften der Anwendungsnachricht ist die Antwort. In der Terminologie des OASIS-Standards ist die Anwendungsmeldung:

„Die Daten, die das MQTT-Protokoll über das Netzwerk für die Anwendung überträgt. Wenn eine Anwendungsnachricht durch MQTT transportiert wird, enthält sie Nutzdaten (Payload data), eine Quality of Service (QoS), eine Sammlung von Eigenschaften und einen Topic-Namen.“ (Hervorhebung durch uns)

Bitte sehen Sie sich das gelbe Rechteck an, das die „Nutzdaten“ in Abbildung 1 unten darstellt. Es gibt einen wichtigen terminologischen Unterschied, auf den wir Sie hier aufmerksam machen möchten.

Abstraktes Diagramm der MQTT 5.0-Anwendungsnachricht

Abb.01 – Abstraktes Diagramm einer MQTT 5.0-Anwendungsnachricht

Wenn wir im Zusammenhang mit einem Protokoll zur gemeinsamen Nutzung von Nachrichten das Wort „Nachricht“ sehen, denken wir gewöhnlich an die Nutzernachricht, häufig eine Textnachricht. Meistens denken wir nicht an die Botschaft, sondern an die Anwendung als Ganzes. 

Aber hier ist die von den Nutzern über MQTT gesendete Nachricht Teil der Nutzdaten und die Eigenschaften sind Teil des abstrakten Protokollmodells namens Anwendungsnachricht. Wenn wir also eine Nutzernachricht über MQTT senden, können wir nicht nur Eigenschaften haben, die sich auf diese „Nutzernachricht“ beziehen, sondern auch Eigenschaften, die sich auf die Anwendungsnachricht als Ganzes beziehen: Eigenschaften für die Verbindung, Eigenschaften für die Veröffentlichung, Eigenschaften für das Abonnieren und Abbestellen von Themen, Eigenschaften für die Authentifizierung und so weiter.

Außerdem gibt es die Will Properties, die mit der Will Message verbunden sind.

"The Will Message consists of the Will Properties, Will Topic, and Will Payload fields in the CONNECT Payload." (Die Will-Meldung besteht aus den Feldern Will-Eigenschaften, Will-Thema und Will-Nutzlast in der CONNECT-Nutzlast.)

Diese Terminologie kann etwas verwirrend sein, wenn man mit der Implementierung des Protokolls beginnt, aber wir werden unser Bestes tun, um es so klar wie möglich zu machen.

Autor: Jocimar Lopes