It’s driving us: NATS – Modulares System dank Message Broker
Wir brauchen eine Anbindung an unser Elektronisches Schichtbuch. Das ist aber eine Eigenentwicklung…
(Kunde)
Das Forschungsprojekt zur Unterstützung von Maschinenrüstung und ‑wartung läuft gut. Die Ergebnisse könnten sich künftig gut als Erweiterung von MADDOX nutzen lassen…
(Fraunhofer IVV)
Kundenspezifische Wünsche und die zukünftige Integration neuer, innovativer Lösungen treiben von Anfang an unsere Produktentwicklung. Doch wie können wir diese jetzt schon berücksichtigen, obwohl ihre genauen Anforderungen noch gar nicht bekannt sind?
Unsere Lösung ist modulares System auf Basis einer Service-Architektur. In unserer Software laufen Kernmodule, Erweiterungsmodule und kundenspezifische Module als weitgehend eigenständige Teilprozesse. Dies macht das Gesamtsystem resilient und sehr flexibel. Aber wie lässt sich dieser “Zoo” im Griff halten? Ganz ähnlich wie ein Projektteam menschlicher Kollegen: Jeder arbeitet weitgehend eigenständig. Um sich gegenseitig zum Gesamtprojekt auf dem Laufenden zu halten, nutzen sie Newsletter, die je nach Informationsbedarf abonniert werden können.
Wir setzen das gleiche Prinzip technisch mit dem Message Broker NATS um. Unsere einzelnen Module senden Nachrichten in den zentralen Broker, die von den jeweils anderen Modulen abonniert werden können. Dadurch können sich zukünftige Module einfach einklinken und die für sie relevanten Nachrichten abonnieren, ohne dass Änderungen am bestehenden System notwendig sind. Dies ermöglicht eine effiziente Entwicklung trotz unbekannter zukünftiger Anforderungen.
“Aber der neue Quasi-Industriestandard ist doch MQTT…”
Das stimmt, aber wir setzen den Message Broker nur zur Kommunikation zwischen den einzelnen Prozessen auf unserer Maschine ein. Hier kommen die typischen Stärken von MQTT, wie beispielsweise die zuverlässige Übertragung über unzuverlässige Netzwerke, nicht zum tragen, während NATS seine Vorteile ausspielt. Dazu zählt beispielsweise seine enorme Geschwindigkeit, die wir für schnelle Übertragung großer Mengen von Maschinendaten brauchen. Für die Kommunikation nach außen setzen wir – ganz im Sinne der Microservice-Architektur – auf eigenständige, protokollspezifische Module; beispielsweise für OPC UA…und bei Bedarf selbstverständlich auch für MQTT 😉
Dieser Beitrag hat 0 Kommentare