Ein Kunde wollte durch Aufbau einer eigenen IoT-Plattform die Nutzungsmöglichkeiten seiner Messgeräte der Prozesstechnik ausweiten. Dazu sollte im ersten Schritt in der Cloud eine Datenplattform für Telemetriedaten der Sensoren bzw. Transmitter des Kunden und von Drittanbietern geschaffen werden. Danach war eine Infrastruktur für Cloud-Applikationen, die auf Basis der Gerätedaten zusätzliche Funktionalitäten bereitstellen kann, das Ziel. Die IoT-Plattform sollte für Anwender weltweit zur Verfügung stehen und Daten zehntausender Knoten in Echtzeit verarbeiten können.

Eine zentrale Herausforderung bestand darin, dass Telemetriedaten von 10 verschiedenen Gerätetypen in jeweils mehreren Versionen verarbeitet werden sollten. Als Datenquelle mussten unterschiedliche Edge-Devices unterstützt werden, die jeweils in anderen Protokollformaten – z.B. Sparkplug – die Dateninhalte der angeschlossenen Devices über MQTT in die Cloud lieferten. Nachdem der Anwender seine Edge-Devices physisch und logisch mit der Cloud verbunden hatte, sollten die Device-Daten der letzten sieben Tage über eine OPC-UA-Schnittstelle abrufbar sein. Von dort konnten diese im SCADA-System des Anwenders weiterverarbeitet werden.

Zur Realisierung wurde eine Microservice-Architektur auf einer Azure-Cloud gewählt. Die Applikationskonfiguration wurde in einer NoSQL-Datenbank abgelegt. Die einzelnen Services wurden in TypeScript oder Go zustandslos implementiert. Zur Authentifizierung greift ein Service auf Geheimnisse in einem Azure-Key-Vault zurück. Die Kommunikation zwischen Services findet über Apache-Kafka statt, wodurch man die einwöchige Persistenz bzw. Historie der Daten geschenkt bekommt. In der Datenplattform existieren:
- ein Bridge-Service zum Umsetzen von MQTT- in Kafka-Nachrichten;
- ein Business-Intelligence-Service pro Datenformat bzw. Edge-Device-Typ und
- ein OPC-Service zur Realisierung der OPC-UA-Schnittstelle.
Die Hauptarbeit wird in den jeweiligen Business-Intelligence-Services geleistet, die die Telemetriedaten von jedem Gerätetyp in eine einheitliche Form bringen, so dass sie vom OPC-Service einfach aufbereitet werden können. Dieser passt seine Datenstruktur an Anzahl, Typ und Version der angeschlossenen Geräte an. Bei Anschluss eines anderen Geräts aktualisiert sich der Parameterbaum dynamisch.
Jeder Service wird in einen separaten Docker-Container deployt. Skaliert werden kann das System durch Instanziierung weiterer Business-Intelligence-Services, zu denen Nachrichten nach Gerätetyp oder anderen auswählbaren Kriterien geroutet werden. Für jeden neuen Anwender der Plattform wurde dynamisch ein OPC-Server instanziiert. Mittels Kubernetes wurden alle Services der Cloud- bzw. IoT-Plattform orchestriert und überwacht.
Zusätzliche Cloud-Applikationen können von Anwender in der Plattform zugeschaltet werden. Dabei stehen generische Funktionalitäten, wie die vorbeugende Wartung oder die Überwachung von Gerätegesundheit oder Messwerten, sowie spezifisch für eine Anlage zugeschnittene Funktionalitäten, zur Verfügung. Applikationen können von Kunden entwickelt und jederzeit zur Laufzeit auf der Plattform deployet werden. Sie sind als Microservice realisiert, operieren auf den OPC-Daten der Plattform und stellen ihre Resultate auch als ebensolche dar. Mit Aktivierung der Applikationen erweitert sich der OPC-Parameterbaum dynamisch.

Während der Einführung der IoT-Plattform operierte diese noch mit 200 Geräten. Zwei Jahre später wurden schon 20.000 Knoten angepeilt. Das System wird in Europa, Amerika und Asien eingesetzt.