DDS · MQTT Sparkplug B · AMQP · Pub/Sub

Datenverteilung und Messaging

Industrielle Datenarchitektur mit oder ohne Broker. Wir entwerfen und bauen die datenzentrierte Middleware und die Publish-Subscribe-Schicht, die Produktionsdaten zwischen Maschinen überträgt. Die Zustellgarantien lassen sich je Topic einstellen.

Zielgruppe

Für wen wir arbeiten

  • OEMs

    Sie legen einmal auf Plattformebene fest, ob die Daten mit oder ohne Broker verteilt werden. Alle Produktvarianten dieser Plattform übernehmen diese Entscheidung, und kein Projekt muss sie erneut treffen.

  • Maschinenbauer

    Sie brauchen einen globalen DDS-Datenraum, der Daten zwischen Maschinen so schnell verteilt, wie die Steuerung sie braucht. Telemetrie im Takt von Berichten reicht dafür nicht.

  • Systemintegratoren

    Request-Response reicht für Ihre Anwendung nicht mehr aus. Wir ergänzen darunter eine Verteilungsschicht für Echtzeitdaten.

Leistungsumfang

Was wir tun

  1. 01

    Architekturentwurf

    Wir entscheiden mit Ihnen, ob mit oder ohne Broker, gemessen an Ihren Anforderungen an Latenz, Teilnehmerzahl und Fehlerverhalten.

  2. 02

    Entwicklung eines DDS-Backbones

    Wir spezifizieren und bauen einen DDS-Backbone. Topics, Datentypen und QoS-Einstellungen legen wir je Datenfluss fest und setzen sie nicht global.

  3. 03

    MQTT und Sparkplug B

    Wo ein Broker zur Topologie passt, verteilen wir Industriedaten über MQTT Sparkplug B auf der Broker-Infrastruktur, die Sie schon betreiben, und setzen dabei die Zustands- und Birth-Certificate-Mechanismen von Sparkplug um.

  4. 04

    Steuerung und Telemetrie verbinden

    Wir bauen Gateways und Datenzuordnungen, damit eine Steuerungsschicht ohne Broker und eine Telemetrieschicht mit Broker nebeneinander laufen und jede ihre eigenen Zustellgarantien behält.

  5. 05

    QoS und Fehlerverhalten

    Wir legen Reliability, Durability, Deadline und Liveliness je Topic fest und legen ausdrücklich fest, wie sich das System bei einem verspäteten oder fehlenden Teilnehmer verhält.

  6. 06

    Integration und Test

    Wir prüfen die Verteilschicht mit Ihren Ingenieuren bei wechselnden Teilnehmern, Verbindungsverlust und dem Wiederanlauf spät hinzukommender Teilnehmer, bevor sie in Produktion geht.

  7. 07

    Schulung, gemeinsame Entwicklung und Langzeitbetreuung

    Wir führen Ihre Ingenieure durch Topic-Entwurf, QoS-Entscheidungen und Fehlerverhalten, damit sie die Verteilschicht selbst erweitern können. Im Produktivbetrieb übernehmen wir den Third-Level-Support als Ergänzung zum First-Level-Support Ihres Teams.

Technik

Middleware und Einsatzfelder

Middleware
DDS (RTPS) · MQTT und Sparkplug B · AMQP · OPC UA PubSub als Nachbar
Einsatzfelder
Steuerungsverkehr zwischen Maschinen · Backbones an Bord, in der Marine und in der Mobilität · Telemetrie in Fahrzeugtechnik und Luftfahrt · Datenaustausch von Gerät zu Gerät
Was Sie erhalten
Spezifikation von Topics, Typen und QoS · Implementierung mit Build-Umgebung · Testbericht zum Fehlerverhalten · Hinweise zur Integration

Was gehört zu einer Datenarchitektur mit oder ohne Broker?

Ob eine industrielle Datenarchitektur mit oder ohne Broker arbeitet, ist die erste Entscheidung in jedem Publish-Subscribe-Entwurf.

Wir treffen sie anhand von Latenz, Teilnehmerzahl und Fehlerverhalten, nicht anhand der Bibliothek, mit der der Prototyp entstand. Unser gelieferter Nachweis ist hier ein Steuerungssystem für einen Maschinenraum auf einem DDS-Backbone. Die meisten Projekte beginnen mit einem dieser Punkte:

  • Nur die Architekturentscheidung. Mit oder ohne Broker, begründet an Ihren Anforderungen und mit der Begründung dokumentiert.
  • Ein DDS-Backbone. Industrielle DDS-Arbeit vom Entwurf der Topics und Typen bis zum laufenden System, auch in der Mobilität und im Maschinenraum, wo es gerade um Redundanz geht.
  • MQTT mit echtem Zustand. Verteilung von Industriedaten über MQTT Sparkplug B, mit der Semantik von Birth und Death, die es von einfachem MQTT unterscheidet.
  • Eine Pipeline für Produktionsdaten in Echtzeit. Kommunikation von Maschine zu Maschine und Datenaustausch von Gerät zu Gerät mit Raten, die ein Request-Response-Entwurf nicht halten kann.
  • Steuerung und Telemetrie verbinden. Wo eine Steuerungsschicht ohne Broker und eine Telemetrieschicht mit Broker beide existieren, die Abbildung zwischen ihnen.

Topics, Typen, Zustellgarantien und Fehlerverhalten, in dieser Reihenfolge. Eine Publish-Subscribe-Architektur für Industriedaten ist eine Reihe von Zusagen: was passiert, wenn ein Abonnent langsam ist, wenn ein Publisher ausfällt, wenn ein Teilnehmer spät dazukommt und die Historie haben will, und wenn eine Verbindung nach einem Ausfall zurückkommt. In der meisten Middleware sind diese Zusagen Konfiguration, und oft bleiben sie auf dem Standardwert. Wir legen sie je Datenfluss fest, weil ein Sollwert und ein Diagnoseprotokoll nicht dieselbe Reliability, Durability oder Deadline brauchen.

Anlagen und Maschinen nehmen wir nicht in Betrieb. Die Verteilschicht in Ihrem Produkt oder Ihrer Plattform entwerfen und bauen wir, und wir prüfen sie mit Ihren Ingenieuren bei wechselnden Teilnehmern und Verbindungsverlust, vor Ort während dieser Phase und danach remote.

Dieselben fünf Knoten zweimal gezeichnet: links jeder nur mit einem zentralen Broker verbunden, sodass jede Nachricht zwei Hops braucht und der Broker ein Single Point of Failure ist; rechts finden sich die Knoten gegenseitig und verbinden sich direkt, mit einem Hop und ohne Single Point of Failure, um den Preis einer Discovery-Last, die mit jedem Teilnehmer wächst, und ohne zentralen Punkt, an dem sich der Verkehr beobachten lässt

Dieselben fünf Knoten, mit Broker und ohne.

Wann ist ein Broker die richtige Antwort?

Ein Broker ist oft die richtige Antwort, wenn der zusätzliche Hop ins Latenzbudget passt.

Er bietet einen Ort, an dem sich beobachten, autorisieren und puffern lässt, und eine Topologie, die eine Firewall und eine IT-Abteilung nachvollziehen können.

WannWann nicht
TelemetrieDer zusätzliche Hop passt nicht mehr ins Latenzbudget
Store-and-Forward über eine unzuverlässige VerbindungDer Broker wird zu einem Single Point of Failure, den das System nicht verkraftet
Alles, was eine Standortgrenze überschreitetTeilnehmerzahl und Nachrichtenrate machen ihn zum Engpass, hinter dem sich alles andere staut

Die rechte Spalte beschreibt die Bedingungen, die DDS und die zugehörige Konfigurationsarbeit rechtfertigen: Die Discovery läuft zwischen den Teilnehmern, die Zustellung ist direkt, und die Garantien gelten je Topic und nicht je Broker.

Was entscheidet Quality of Service in einem DDS-System?

Quality of Service entscheidet, ob das System kontrolliert nachlässt oder ausfällt.

  • Reliability entscheidet, ob ein verlorenes Sample erneut gesendet oder vergessen wird.
  • Durability entscheidet, ob ein spät hinzukommender Abonnent die Historie bekommt oder leer beginnt.
  • Deadline nennt die Rate, die ein Abonnent erwarten darf. Damit wird ein langsamer Publisher zu einem gemeldeten Fehler und nicht zu einem stillen.
  • Liveliness entscheidet, wie schnell ein ausgefallener Teilnehmer bemerkt wird.
  • History entscheidet, wie viel aufbewahrt wird, solange ein Abonnent zurückliegt.

Diese Einstellungen wirken gestaffelt: Ein Standardwert für die ganze Domain ist ein Ausgangspunkt, und es gilt die Einstellung, die näher an den Daten liegt, also die QoS von Writer oder Reader. Ein Domain-Standardwert für jeden Datenfluss verschwendet entweder Ressourcen an Verkehr, der sie nicht braucht, oder lässt Verkehr verhungern, der sie braucht. Ein großer Teil des Werts eines DDS-Projekts steckt in dieser Konfigurationstabelle.

Welche DDS-Implementierung passt zu uns?

Die Abwägungen sind dieselben wie bei einem Feldbus- oder Echtzeit-Ethernet-Stack.

Neben der Lizenz sind einige weitere Eigenschaften zu prüfen.

ImplementierungLizenzWas zu prüfen ist
FastDDS · Cyclone DDS · OpenDDSOpen SourceAlle drei laufen bis hinunter auf Embedded Linux und RTOS. Die verbreitete Annahme, DDS brauche Hardware der Serverklasse, ist also falsch. Speicherbedarf und der Discovery-Verkehr, den ein knapp ausgestatteter Knoten verkraften muss, sind die eigentlichen Grenzen, und beide lassen sich messen. Meist beginnen wir mit FastDDS, aus dem unten genannten Grund mit ROS 2
RTI ConnextKommerziell, meist je Produkt oder je KnotenDer größte kommerzielle Anbieter. Eine Lizenz bringt einen Supportvertrag, Unterlagen zur Zertifizierung für regulierte Programme und eigenen Support. Für ein Produkt mit langem Lebenszyklus und Servicepflicht kann das über die Laufzeit des Programms die wirtschaftlichere Wahl sein

Plattformfrage und Lizenzfrage sind dieselbe Frage, weil meist die knapp ausgestattete Zielplattform die Auswahl zuerst eingrenzt. Wir rechnen beides gegen Ihre Stückzahlen und Ihre Hardware und bauen dann auf der Implementierung auf, die Sie wählen. Selbst lizenzieren oder verkaufen wir keine DDS-Implementierung.

Kann ein DDS-System mehr als einen Standort umfassen?

Standardmäßig umfasst ein DDS-System nur einen Standort.

Die Discovery von DDS ist auf eine Multicast-Domain begrenzt, in der Praxis also auf einen Standort oder ein VLAN. Darin finden sich die Teilnehmer automatisch, außerhalb davon gar nicht.

Zwei Standorte, jeder mit eigener DDS-Domain, in der sich vier Teilnehmer gegenseitig finden und direkt beliefern, verbunden durch je einen Routing Service auf beiden Seiten einer gestrichelten WAN-Verbindung, deren Latenz schwankt und die abreißt und zurückkommt

Eine DDS-Domain je Standort, über das WAN durch einen Routing Service verbunden.

Diese Grenze zu überschreiten ist eine bewusste Netzkonfiguration: entweder ein Routing Service, der zwischen den Domains vermittelt, oder eine feste Unicast-Liste der Gegenstellen anstelle der Multicast-Discovery. Beides funktioniert. Beides fügt eine Komponente hinzu, die betrieben, abgesichert und überwacht werden muss, und beides ändert das Fehlerverhalten des Systems, weil eine Verbindung zwischen Standorten anders ausfällt als eine innerhalb eines Standorts. Das legen wir in der Entwurfsphase anhand Ihrer Topologie fest. Ist der Verkehr über die Grenze Telemetrie und keine Steuerung, ist ein Broker auf dieser Strecke oft die bessere Antwort, und die Brücke zwischen einer Steuerungsschicht ohne Broker und einer Telemetrieschicht mit Broker gehört zu den oben genannten Projektformen.

Wo liegt die Datenverteilung im Verhältnis zum übrigen Stack?

Die Datenverteilung liegt über dem Netz und neben dem Informationsmodell.

  • Was darunter liegt. Den Determinismus, mit dem eine Verteilschicht eine Deadline einhält, liefert das Netz: Qbv-Zeitpläne, Treiber, Messung. Diese Arbeit gehört zu Echtzeit-Ethernet.
  • Was daneben liegt. Die typisierte, durchsuchbare Beschreibung dessen, was eine Maschine bedeutet, die ein überlagertes System durchsucht und nicht abonniert, ist OPC UA und Informationsmodellierung.

Meist sind alle drei vorhanden. Welche einen bestimmten Datenfluss übernimmt, entscheidet sich daran, ob das Zielsystem ihn durchsuchen, abonnieren oder innerhalb einer Deadline sicher erhalten muss.

FAQ

Häufige Fragen

Wer entwirft eine industrielle Datenarchitektur mit oder ohne Broker?
Wir. Das ist die erste Entscheidung in jedem industriellen Publish-Subscribe-Entwurf, und wir treffen sie mit Ihnen anhand von Latenz, Teilnehmerzahl und Fehlerverhalten, nicht anhand der Bibliothek, mit der der Prototyp entstand.
Haben Sie DDS schon produktiv geliefert?
Ja. Ein Steuerungssystem für einen Maschinenraum wurde auf einem DDS-Backbone gebaut, und das ist der gelieferte Nachweis hinter dieser Seite.
Arbeiten Sie mit ROS 2?
Wir entwerfen und bauen DDS-Backbones, auf denen ROS 2 aufsetzen kann, und genau deshalb setzen wir bewusst auf FastDDS.
Wie steht es mit DDS in Fahrzeugen und in der Luftfahrt?
Hier geht es um Normen und Architektur, nicht um ein geliefertes System. Die Architektur ist öffentlich. Die OMG hat DDS-TSN 1.0 veröffentlicht, und AUTOSAR Adaptive spezifiziert eine DDS-Anbindung. Wir entwerfen nach beiden, haben aber selbst kein System zwischen Fahrzeugen und kein Flugsystem gebaut.
Ist das nicht dasselbe Thema wie OPC UA?
Nein. OPC UA ist ein Modell und unabhängig vom Transport; DDS bindet sein Modell an RTPS. DDS passt gut zu MQTT und Sparkplug B, die ebenfalls Transporte mit eigenen Festlegungen sind. Die Informationsmodellierung hat eine eigene Seite.
Sollen wir OPC UA, DDS oder MQTT/Sparkplug B wählen?
Danach, was das Zielsystem braucht, nicht nach Vorliebe. OPC UA liefert ein typisiertes, durchsuchbares Informationsmodell über eine Verbindung, die ein überlagertes System abfragt oder abonniert. MQTT und Sparkplug B liefern einen schlanken Publish-Subscribe-Transport ohne eigenes Modell, deshalb ergänzt Sparkplug den Zustand und die Struktur, die einer einfachen MQTT-Nutzlast fehlen. DDS liefert direkte Zustellung zwischen Teilnehmern mit QoS-Steuerung je Topic und ohne Broker dazwischen. Die meisten Landschaften nutzen am Ende mehr als eines, und die Grenze bestimmt meist, wer abonniert und wie schnell.
Wie viel Latenz fügt ein Broker hinzu?
Das hängt von der Broker-Software, der Hardware darunter und der Zahl der Hops in Ihrer Topologie ab. Ein einzelner veröffentlichter Wert würde deshalb mehr in die Irre führen als helfen. Wir messen die Latenz in der Entwurfsphase an Ihrer eigenen Architektur.
Unterstützt DDS Sicherheit und Verschlüsselung?
Ja, über die Spezifikation DDS-Security. Sie definiert Authentifizierung, Zugriffskontrolle und Verschlüsselung als getrennte, austauschbare Dienste und nicht als einen festen Mechanismus. Welche Plugins ein Entwurf braucht, hängt vom Bedrohungsmodell ab, und das klären wir zusammen mit dem Entwurf von Topics und QoS.
Wie findet man Fehler in einem Publish-Subscribe-System im laufenden Betrieb?
Mit derselben Disziplin wie beim QoS-Entwurf. Einstellungen für Liveliness und Deadline machen aus einem stillen Ausfall einen gemeldeten, und für beide Transporte gibt es Werkzeuge auf Protokollebene, vom RTPS-Dissector für den Netzverkehr bis zu einfachen MQTT-Clients für die Prüfung einzelner Topics. Von Anfang an legen wir fest, welche dieser Signale tatsächlich bei einem Bediener ankommen.
Wie migriert man ein System von Request-Response auf Publish-Subscribe, ohne es neu zu schreiben?
Schrittweise und meist hinter einer Brücke, nicht mit einer einzigen Umstellung. Der bestehende Request-Response-Weg läuft weiter, während die Topics einzeln migriert und gegen ihn geprüft werden, bevor er abgeschaltet wird. Ein Fehler im neuen Entwurf zeigt sich so als Abweichung und nicht als Ausfall.
Können Sie unsere Ingenieure schulen, statt nur den Code zu übergeben?
Ja, wie im Angebot zu Schulung, gemeinsamer Entwicklung und Langzeitbetreuung beschrieben. Ihre Ingenieure arbeiten beim ersten System mit unseren an Topic- und QoS-Entwurf und übernehmen dann Erweiterung und First-Level-Support selbst, mit unserem Third-Level-Support dahinter, solange das System läuft.
Normen und Quellen
  • OMG DDS – die Spezifikation des Data Distribution Service, mit RTPS als Übertragungsprotokoll
  • OMG DDS-TSN 1.0 – wie eine DDS-Installation auf die Zeitsteuerung von TSN abgebildet wird; veröffentlicht im April 2023, Beta2 im Mai 2024
  • Sparkplug B – die Spezifikation für Nutzlast und Zustand, die einfachem MQTT die Semantik von Birth, Death und Rebirth gibt, die Industriedaten brauchen
  • ISO/IEC 19464 – AMQP, wenn eine dauerhafte Queue und kein Topic die richtige Form ist
  • OMG DDS-Security – Authentifizierung, Zugriffskontrolle und Verschlüsselung als getrennte, austauschbare Dienste und nicht als ein fester Mechanismus
  • IEC 62541 – OPC UA, der vom Transport unabhängige Standard für die Informationsmodellierung
Weiterlesen

Sollen wir das für Ihr Produkt einschätzen?

Lesen Sie zuerst unsere technischen Notizen oder sprechen Sie direkt mit dem Team, das die Arbeit übernimmt.