Was ist Thin-edge?
Ob Predictive Maintenance, M2M Kommunikation oder Industrie 4.0: Immer mehr IoT-Anwendungen basieren auf Edge-Architekturen. Dabei stellt sich die Frage, zu welchem Teil Funktionalität in der Cloud respektive auf dem Device verlagert wird. Zwei oft genannte Probleme sind der hohe Aufwand für die Integration sowie das Vendor Lock-in.
An diesen Herausforderungen setzt das Thin-edge.io-Framework an. Entwickelt durch eine Kooperation zwischen der Software AG und der ifm electronic GmbH wird es Anwendern ermöglicht, Ressourcen-beschränkte Systeme mit einer beliebigen Cloud zu verbinden.
Warum soll ich Thin-edge einsetzen?
Thin-edge bedeutet, nur wenig Verarbeitung, Filterung oder Aggregation am Punkt des Ursprungs zu anzuwenden. Es werden zwar verschiedene Betriebssysteme unterstützt, doch die Hauptzielgruppe werden Linux-basierte Geräte sein.
Der grosse Nutzen des Frameworks besteht in wiederverwendbaren, modularen und zuverlässigen Komponenten zur einfachen Integration. Es wurde im Wesentlichen mit den Programmiersprachen Rust und C programmiert und als Open Source unter der Apache-2.0-Lizenz veröffentlicht. Es bietet Anwendern zahlreiche Vorteile:
Flexibilität: Das berüchtigte Vendor Lock-in wird vermieden. Egal, ob AWS, Azure, Cumulocity: Der Cloud-Service kann individuell ausgewählt werden. Eigene Anwendungen lassen sich in beliebigen Sprachen entwickeln und ergänzen. Die Payload wird angepasst durch den Einsatz von angepassten JSON-Formaten, ein Mapping auf beliebige Datenformate ist möglich. Es werden zahlreiche Plattformen unterstützt.
Robustheit: Die horizontale Skalierung, also die steigende Anzahl an Geräten, wird durch das Framework unterstützt. Somit gelingt die schnelle Verbindung zwischen verschiedenen Geräten und Applikationen. Lange und fehleranfällige Entwicklungen von generischen Lösungen für verschiedene Gerätetypen werden deutlich vereinfacht.
Effizienz: Der Fokus liegt auf einer minimalen CPU und minimalem Speicherbedarf (< 16 MB) sowie mehr Effizienz durch direkte, native Performanz. Dadurch wird der Einsatz auf Geräten wie PLCs, Protocol Gateways und allgemein Embedded-Systemen gewährleistet. Gleichermassen werden auch leistungsstarke Devices unterstützt.
Wie funktioniert Thin-edge?
Thin-edge.io basiert auf einem Device-Agenten, der die Steuerung des Geräts und die Kommunikation implementiert. Hierfür kommt MQTT (Message Queuing Telemetry Transport) zum Einsatz. Der interne Broker steuert Aufrufe zwischen Modulen und dem Agenten. Als Schnittstelle zur Cloud wird ebenfalls per MQTT über eine Bridge kommuniziert.
Das Framework wird über eine Kommandozeile mit allen Abhängigkeiten per Skript auf dem Zielgerät installiert und konfiguriert. Das Gerät kann anschliessend mit einem selbst-signierten Zertifikat registriert und mit der Cloud verbunden werden. Die Unterstützung einer Public Key Infrastructure ist grundsätzlich vorgesehen, befindet sich zum heutigen Zeitpunkt aber noch in der Entwicklungsphase. Wie das Zertifikat ausgetauscht wird, ist noch nicht geregelt.
Bei Verwendung der Cumulocity Cloud kommt das von der Software AG entwickelte Smart-Rest-Protokoll zum Einsatz, das mit einem minimalen Datenverbrauch auftrumpfen kann. Die speziellen Features der Cumulocity Cloud wie beispielsweise das Device Management, die Konfiguration und der Remote Access bieten ein hohes Mass an unterschiedlichen Möglichkeiten. Mit weiteren Modulen werden zudem weitere Funktionalitäten ergänzt, etwa zur Verwaltung von Firmware oder Software, ein Command Line Interface sowie eine Zertifikatsverwaltung. Auch die Echtzeitverarbeitung von Messwerten kann über die Cumulocity Streaming Analytics realisiert werden.
Fazit
Der Übergang zur «herkömmlichen» Edge mit weiteren Funktionalitäten wie beispielsweise Storage oder Data-Visualisierung ist fliessend. Bis zum voll ausgestatteten Datacenter im produktiven Netzwerk sind viele Möglichkeiten denkbar. Das hier vorgestellte Framework richtet sich an skalierbare Architekturen mit möglichst einfacher Integration von Ressourcen-beschränkten Geräten.
Das Ziel der Thin-edge.io ist es, eine Referenz-Architektur zu gestalten, die Verbindung zwischen Edge- und Cloud-Lösungen zu vereinfachen und eine zuverlässige Integration von IoT-Diensten und Applikationen anzubieten.
Die Zyklen vom Konzept bis zum ersten Proof-of-Concept werden deutlich verkürzt, zudem steht eine breite Palette von Werkzeugen zur Verfügung. Die typischen Anwendungen für Device Management und Echtzeitverarbeitung sind damit ganz in der Hand des Anwenders. Gleichzeitig sinkt der Aufwand für die Implementierung und Integration durch die Vorteile des Thin-edge-Frameworks.
Der Autor
Christian Fischer
Christian Fischer ist für die bbv als Senior Software Entwickler im Bereich Embedded / MedTech tätig und begeistert sich für das breite Spektrum von Clean Code über User Experience bis hin zu IoT-Anwendungen. Er ist zertifizierter Cumulocity IoT Specialist und Co-Moderator der IoT Community.