Software-Updates im Internet der Dinge

Implementierung und Fazit

Implementierung in der Praxis

Für die praktische Umsetzung von Software-Update-Systemen im IoT existiert eine Reihe von Angeboten.

Zunächst sind die klassische Device-Management-Systeme wie ProSyst mPRM und Axeda Device Management zu nennen, die das Software-Update als Unterfunktion ihres Aufgabenspektrums verstehen. Diese Systeme kommen zum Teil aus dem IoT-(Gateway-) und dem Telekommunikationsmarkt.

Spezialisierte Software-Update-Systeme für IoT sind zum jetzigen Zeitpunkt hingegen noch selten. Zwei gute Beispiele stammen aus der Open-Source-Welt. Apache ACE, historisch betrachtet aus dem OSGi-Bundle-Update entstanden, ist flexibel genug für den Einsatz in anderen Szenarien. Es beinhaltet neben den Kernfunktionalitäten des Update-Managements (Übertragen des Update-Kommandos, Feedback Kanal, Artefakt Repository) auch ein Dependency Management, um konsistente (OSGi bundle) Distributionen zusammenzustellen.

Das von Bosch Software Innovations initiierte Eclipse hawkBit-Projekt hat sich zum Ziel gesetzt, eine domänenunabhängige und offene Plattform für Software-Updates im IoT-Kontext bereitzustellen.

Module auf Basis von Spring

Eclipse hawkBit stellt eine Reihe von Modulen bereit, die auf Spring (Boot) basieren und mit denen Entwickler einen Cloud-Service für Software-Updates im IoT bauen und entweder eigenständig betreiben oder in ein bestehendes System integrieren können. Ein Repository für Geräte- und Softwarepaket-Informationen, Schnittstellen zur direkten und indirekten Geräteintegration sowie eine RESTful-Management-Schnittelle (alternativ eine Benutzeroberfläche für die Verwaltung) stehen dem Anwender ebenso zur Verfügung.

Anders als Apache ACE stellt hawkBit allerdings kein Dependency Management bereit. Es konzentriert sich auf die Update-Verteilung und will über die Beschaffenheit der Artefakte dabei möglichst wenig wissen.

Insbesondere die indirekte Geräteintegration stellt eine Besonderheit dar, da sie die Nutzung eines Device Connectivity Layers ermöglicht. Hier bietet hawkBit eine AMQP-basierte (Advanced Message Queuing Protocol) Schnittstelle zur Verknüpfung mit dieser Ebene. Mittelfristig ist zudem eine Integration mit dem Eclipse hono-Projekt geplant, um die Off-the-Shelf-Funktionen aus Eclipse IoT heraus zu verbreitern. Hono kümmert sich um die Gerätekonnektivität und ermöglicht dabei verschiedenen Services mit einem Gerät Daten auszutauschen, hawkBit als spezialisiertes Software Update System ist typischerweise nur ein Interessent unter mehreren an dem Gerät.

Eclipse hawkBit stellt dazu eine Reihe von Beispielimplementierungen bereit: von Netflix-Feign-basierten REST-Clients bis hin zu einem umfangreichen Gerätesimulator.

Software-Updates im Internet der Dinge mit Eclipse hawkBit (Abb. 2)

Das Projekt steckt noch in der Anfangsphase, ist allerdings bereits heute die Basis für viele Update-Systeme im industriellen Umfeld.

Fazit

Dem IoT-Systemarchitekten stehen neben den proprietären Angeboten offene Plattformen zur Verfügung, um den beschriebenen Herausforderungen zu begegnen. Allein die Sicherheitsanforderungen machen das Software-Update zu einem "Must Have" jeder modernen IoT-Architektur und -Anwendung. Die möglichen Erweiterungen des IoT-Geschäftsmodells durch Software-Updates machen es noch einmal attraktiver. (rme)

Kai Zimmermann
ist bei der Bosch Software Innovations GmbH verantwortlicher Product Owner für den Bosch IoT Rollouts Cloud Service und Project Lead für Eclipse hawkBit.