MQTT Topic Namespace: Best Practices & Schritt für Schritt Guide

Inhalt

Ein klar strukturierter MQTT Topic Namespace ist entscheidend für die effiziente Kommunikation innerhalb eines Industrial Unified Namespace (UNS). Die Kombination aus hierarchischer Organisation und präziser Definition von Topics schafft die Grundlage für eine flexible, skalierbare und benutzerfreundliche Architektur. Dieser Artikel beschreibt bewährte Best Practices und bietet eine Schritt-für-Schritt-Anleitung zur Entwicklung eines effektiven MQTT Topic Namespace.

 

Was ist ein MQTT Topic?

MQTT Topics dienen als Kommunikationskanäle im MQTT-Protokoll, unter denen MQTT Clients definierte Nachrichten veröffentlichen und abonnieren können. Ein Topic eine UTF-8-Zeichenkette, die als eindeutiger Bezeichner fungiert. Dabei bestehen MQTT Topics aus einer oder mehreren Ebenen, die durch einen Schrägstrich (/) getrennt sind (Topic Level). Diese Struktur ermöglicht eine hierarchische Organisation von Informationen und bietet einen Filtermechanismus für Nachrichten.

Beispiel: Ein Temperatursensor könnte das folgende MQTT Topic verwenden, um die Prozesstemperatur einer bestimmten Arbeitszelle zu veröffentlichen:

Durch diese Struktur wird die Flexibilität und Präzision des Datenaustauschs erhöht, da Clients nur die relevanten Informationen innerhalb der angegebenen Topic Hierarchie abonnieren und empfangen können.

 

Wie werden MQTT-Topics definiert?

In MQTT werden Topics von einem angebundenen System beim Veröffentlichen von Nachricht definiert. Dabei erstellt der Client einen Topic-String, unter dem die Nachricht veröffentlicht wird.  Der Prozess im Detail:

  1. Publisher: Ein System, welches Daten über MQTT versenden möchte, definiert den Topic-String und veröffentlicht die Nachricht unter diesem Namen im Broker.
  2. Broker: Der MQTT-Broker empfängt die Nachricht und verteilt sie an an alle Abonnenten.
  3. Subscriber: Clients erhalten diese Nachricht, sofern sie das Topics abonniert haben.

 

 

Best Practices

Die folgenden Best Practices unterstützen die Erstellung einer klar strukturierten MQTT Topic Hierarchie, welche die Grundlage einer skalierbaren Industrial Unified Namespace (UNS) Architektur ist.

 

1. Eindeutigkeit sicherstellen

Eindeutige Topics sind essenziell, um eine reibungslose Datenübertragung zwischen MQTT-Clients und Brokern zu gewährleisten. Dabei verhindert eine klare und eindeutige Topic-Benennung Konflikte und ermöglicht eine reibungslose Interoperabilität innerhalb des industriellen Ökosystems. Hinweis: MQTT-Topics unterscheiden zwischen Groß- und Kleinschreibung (case-sensitive). Das bedeutet, dass x/y und X/y als zwei unterschiedliche Topics behandelt werden.

 

2. Standardisierung über Fabriken hinweg

Es ist entscheidend, eine konsistente Topic Struktur für das gesamte Unternehmen zu entwickeln. Diese Struktur sollte in allen Einrichtungen, Produktionslinien und Maschinen anwendbar sein. Gleichzeitig können individuelle Anforderungen auf unterschiedlichen Organisationsebenen berücksichtigt werden, indem für spezielle Anwendungsfälle separate Topics eingeführt werden, z.B. enterprise/site/area/workCell/individual.

 

3. Granularität vs. Modularität

Eine gute Balance zwischen Granularität und Modularität ist entscheidend. Dabei sollte sich die Entscheidung für Granularität oder Modularität an den Anforderungen Ihrer Use-Cases orientieren.

  • Granularität ermöglicht die detaillierte Abbildung einzelner Datenpunkte, wie z. B. eines Temperaturwerts in einem spezifischen Topic .../temperature. Dies erleichtert das gezielte Abonnieren spezifischer Ereignisse und Daten.
  • Modularität fasst mehrere Datenpunkte in einem gemeinsamen Topic zusammen, was die Übersichtlichkeit und Skalierbarkeit des MQTT-Namespace unterstützt. Beispielsweise können in einem Topic wie .../sensor sämtliche Sensordaten, etwa Temperatur, Druck und Feuchtigkeit, gemeinsam veröffentlicht werden.

 

4. Hierarchische Organisation

Die Topic Struktur sollte eine klar definierte Hierarchie abbilden, die die physische und logische Struktur Ihres industriellen Ökosystems widerspiegelt. Eine baumartige Organisation der Topics ermöglicht es, breitere Kategorien auf höheren Ebenen zu platzieren (z. B. „Fabrik“ oder „Produktionslinie“) und spezifischere Topics (z. B. „Aufträge“ oder „Sensordaten“) darunter einzuordnen. Dies bietet mehrere Vorteile:

  • Übersichtlichkeit: Eine gut strukturierte Hierarchie erleichtert das Verständnis und die Navigation innerhalb des MQTT Namespace.
  • Flexibilität: Neue Topics können problemlos in die bestehende Struktur integriert werden, ohne die Konsistenz zu gefährden.
  • Effizienz: Clients können auf höheren Ebene eine breite Datenübersicht oder sehr spezifische Informationen in den unterliegenden Topics abonnieren.

 

5. Kontextbezogene Benennung

Verwenden Sie eindeutig und aussagekräftig benannte Topics, die den Kontext und Zweck klar vermitteln. Eine gut durchdachte, kontextbezogene Benennung erleichtert es den Benutzern, den Inhalt und die Funktion jedes Topics zu verstehen und reduziert potenzielle Missverständnisse. Dies steigert die Benutzerfreundlichkeit und verbessert die Übersichtlichkeit innerhalb des MQTT-Namespace. Beispiel: Statt .../data verwenden Sie .../machine1/status für präzisere Angaben. Dies gibt einen klaren Hinweis auf den Inhalt, ohne zusätzliche Dokumentation erforderlich zu machen.

 

6. Versionierung integrieren

Da sich der MQTT Namespace im Laufe der Zeit weiterentwickelt, ist es ratsam, eine Versionierung in die MQTT Topic Hierarchie zu integrieren. Dies erleichtert das Management von Änderungen und sorgt für die Wahrung der Abwärtskompatibilität. Durch Versionierung können neue Strukturen eingeführt werden, ohne bestehende Systeme zu beeinträchtigen. Ein Beispiel für die Integration von Versionierung v1/.../areaID/lineID/cellID oder mySpec/v1/.../areaID/lineID/cellID.

 

7. Zusätzliche Empfehlungen

  • Vermeiden Sie es, Topic Namen unnötig lang zu gestalten, um die Lesbarkeit zu erhöhen.
  • Verwenden Sie keine MQTT-spezifischen Zeichen wie #, +, / und $, da sie spezielle Funktionen im MQTT-Protokoll haben.
  • Leerzeichen sollten vermieden werden, da sie zu Verwirrung führen oder in einigen Systemen Probleme verursachen können.
  • Nutzen Sie nur ASCII-Zeichen und keine nicht druckbaren Zeichen.

 

 

Schritt für Schritt Guide zur Entwicklung eines MQTT Topic Namespace

Mit einem klaren Verständnis der Best Practices lässt sich eine effektive MQTT Topic Hierarchie Schritt für Schritt entwickeln. Dabei bietet ein Pilot Use-Case eine gute Grundlage, um die Struktur nach und nach zu erweitern.

 

Schritt 1: Pilot Use-Case definieren

Identifizieren Sie alle relevanten IT und OT Systeme, die im Rahmen des Pilot Use-Cases über MQTT kommunizieren sollen. Dies stellt sicher, dass die MQTT Topic Struktur den spezifischen Anforderungen entspricht und Ihnen praktische Orientierung für die nächsten Schritte bietet.

 

Schritt 2: Hierarchieebenen definieren

Erstellen Sie eine hierarchische Struktur mit mehreren Ebenen, die die verschiedenen Komponenten Ihres industriellen Ökosystems abbildet. Diese Ebenen könnten Fabriken, Produktionslinien und Maschinen umfassen. Ein solcher Ansatz sorgt für einen klaren und gut organisierten Rahmen, der sich oft an der ISA95-Norm orientiert.

ISA 95 based MQTT Topic Namespace

Was ist ISA95?
ISA95 ist ein international anerkannter Standard, der Modelle und Terminologien für die Integration von OT- und IT-Systemen in der Fertigung definiert. Dieser Standard hilft dabei, die Hierarchie der Topics in einem MQTT-basierten Unified Namespace (UNS) strukturiert zu gestalten und stellt sicher, dass Informationen logisch organisiert und leicht zugänglich sind.

 

Schritt 3: Subtopics identifizieren

Bestimmen Sie die relevanten Datenkategorien, die im Pilot Use-Case zwischen den Systemen ausgetauscht werden müssen. Diese Datenkategorien können Rohdaten, Steuerbefehle, Produktionsaufträge oder KPIs sein. Jedes Unternehmen hat auf den verschiedenen Hierarchieebenen unterschiedliche Datenkategorien, die entweder unternehmensweit geteilt oder exklusiv und individuell für eine bestimmte Ebene sind.

ISA 95 based MQTT Topic Namespace

 

Schritt 4: Metadaten berücksichtigen

Metadaten liefern zusätzlichen Kontext zu den Daten, welche Sie über MQTT verteilen (z. B. Gerätekennungen, Herstellerinformationen oder Maßeinheiten). Sie können entweder direkt in den Payload der Nachricht, den Topic String oder in separaten Topics integriert werden.

 

Schritt 5: Validierung und Testen

Vor der Implementierung im Produktivumfeld sollten Sie Ihre MQTT Topic Hierarchie validieren und testen, idealerweise in einer kontrollierten Testumgebung. Dadurch können mögliche Probleme frühzeitig identifiziert und behoben werden.

 

Schritt 6: Iterative Verfeinerung

Die MQTT Topic Hierarchie muss sich an wechselnde Anforderungen und Fortschritte in Ihrem Unified Namespace (UNS) anpassen. Implementieren Sie einen kontinuierlichen Verbesserungsprozess, welcher regelmäßige Feedbacks von Nutzern berücksichtigt. Sorgen Sie dafür, dass die Wartbarkeit gewährleistet bleibt, indem Sie Versionierung in Ihre Topic Hierarchie einbauen (siehe oben).

 

Schritt 7: Regelmäßige Bereinigung

Führen Sie eine regelmäßige Bereinigungen der MQTT Topic Namespace durch, um veraltete Elemente wie inaktive Topics oder nicht verbundene Systeme zu entfernen.

 

Fazit

Ein durchdachter MQTT Topic Namespace ist ein essenzieller Baustein für eine effiziente Kommunikation und Datenorganisation innerhalb eines Industrial Unified Namespace (UNS). Die Kombination aus Best Practices wie Eindeutigkeit, hierarchischer Organisation und Kontextbezogenheit ermöglicht eine skalierbare, flexible und benutzerfreundliche Architektur. Durch eine iterative Herangehensweise, regelmäßige Tests und kontinuierliche Verbesserungen bleibt die Topic Hierarchie anpassungsfähig und zukunftssicher.

Über i-flow: i-flow ist ein Unternehmen für industrielle Software mit Sitz in Süddeutschland. Wir bieten produzierenden Unternehmen die weltweit intuitivste Software zur Vernetzung von Fabriken. Täglich über 400 Millionen Datenoperationen in produktionskritischer Umgebung demonstrieren nicht nur die Skalierbarkeit der Software, sondern auch das tiefe Vertrauen, das unsere Kunden in i-flow setzen. Unser Erfolg basiert auf enger Zusammenarbeit mit Kunden und Partnern weltweit, darunter namhafte Fortune-500-Unternehmen und Branchenführer wie Bosch.

Jetzt selbst ausprobieren - Kostenlose Testversion

Überzeugen Sie sich in einem Test selbst von den unbegrenzten Möglichkeiten, die Sie mit i-flow erhalten. Jetzt 30 Tage kostenfrei testen, auf Ihren Systemen.

Ihre Frage wurde nicht be­antwortet? Kontaktieren Sie uns.

Ihr Kontakt:

Marieke Severiens (i-flow GmbH)
content@i-flow.io