Für die Wartung Linux-basierter industrieller IoT-Systeme hat Mixed Mode das Linux Update Framework (LIUF) entwickelt. Es basiert auf einem breiteren Konzept als andere Paketmanagementsysteme und bietet mit umfassenderen Tools sowie Plug-ins auch eine größere Flexibilität und Erweiterbarkeit.
Verteilte IoT-Applikationen sind bei Embedded-Systemen im industriellen Umfeld längst üblich. Sie erfordern jedoch beständige Wartung wie Updates, Erweiterungen, Anpassungen etc. bezüglich Funktion, Gleichzeitigkeit der Verfügbarkeit, Konsistenz und Safety/Security. Dabei stellen sie hohe Ansprüche an die Verwaltungsinfrastruktur, was fast zwangsläufig zu einem potenziell hohen Aufwand führt. Ebenso streng ist von wirtschaftlicher Seite der Anspruch, die dabei entstehenden Kosten und Aufwände so minimal wie möglich zu halten. Als dritter Aspekt muss die sichere Kommunikation und Übertragung bei der Wartung unbedingt beachtet werden.
Für Linux-basierte verteilte IoT-Systeme wurde hierzu von Mixed Mode das »Linux Update Framework« (LIUF) entwickelt, das sich an die Client-Seite richtet: Die zu wartende Software sowie das LIUF laufen auf den Embedded-Systemen (Bild 1).
Das Linux Update Framework setzt daran an, Laufzeitinstanzen eines Update-Systems auf dem aktuellen Stand der Technik »as a commodity« zu erzeugen, also mit möglichst geringem Beschaffungsaufwand. Es minimiert die Risiken, die durch sich ändernde Anforderungen im Bereich der Softwarebereitstellung entstehen und richtet den Fokus der Entwicklungstätigkeit weg von dem Aufwandsanteil, der zwar nicht reduziert werden kann, aber generisch im Voraus gelöst werden muss – im Entwicklerjargon: »Boilerplate« – hin zu der individuellen, fachlichen Domänenlogik.
Das Framework ist seit 2020 verfügbar und wird bereits von mehreren industriellen Nutzern erfolgreich eingesetzt. Den Anstoß dazu gab eine anlassbezogene Evaluierung bisheriger Open-Source-Software zur Update-Verwaltung, bei denen jede einen bestimmten funktionellen Vorzug hat, dafür andere Aspekte aber nicht befriedigend löst. Beispielsweise lässt sich eine gut für Image Updates einsetzen, aber die Update-Quelle ist festgelegt, oder der Download der Update-Daten ist nicht geregelt usw. Irgendetwas fehlt also immer, sodass der Versuch unternommen wurde, eine an den praktischen Notwendigkeiten orientierte, umfassende Software zur Update-Verwaltung zu bieten.
Für immer mehr IoT-Anwendungen ist Linux das Betriebssystem der Wahl. Auf adäquater Hardware lassen sich damit beliebig viele Anwendungen und Implementierungsvarianten realisieren. Als Beispiel kann hier eine autonome, in sich abgeschlossene Energieerzeugung dienen, die aus einem Cluster von z. B. Heizungswärme erzeugenden Komponenten besteht, die auf Mikrocon- trollern basieren. Der Cluster wird von einem Monitoringsystem gesteuert und überwacht. Das LIUF rollt die Software-Updates via CAN-Bus auf die Mikrocontroller aus.
Verteilte Applikationen stellen hohe Ansprüche an die Verwaltung und das Ausrollen der Software auf die verteilten Endgeräte: Es können zwar vielfältige technische Distributionsverfahren genutzt werden, jedoch müssen Authentizität und Integrität jedes einzelnen Schritts des Update-Vorgangs gewährleistet sein (Bilder 1 und 2, unverzichtbare Eigenschaften). In der Regel müssen der Update-Vorgang gegen Fehlerfälle abgesichert ablaufen und valide Verfahren für unvorhergesehene Störfälle vorgehalten werden, wenn ein Ereignis doch alle anderen Sicherungen durchdringen sollte. Im Allgemeinen muss jedes der Systeme folgende Fragen »beantworten«:
Über die Jahre haben sich einige Me-chanismen etabliert, um Softwareinstallationen in der Linux-Umgebung zu verwalten. Bekannte Implementierungen sind Paketverwaltungssysteme wie das Advanced Packaging Tool (APT) oder der RPM Package Manager, die im verbreiteten debian-Linux zu finden sind, weswegen ein gewisser Reifegrad aufgrund der debian-eigenen Reifemetrik vorausgesetzt werden kann. Das sind Beispiele für weit verbreitete und allgemein verfügbare Paketverwaltungssysteme mit einer beständigen Nutzerbasis. Teil des Erfolgs ist das Commitment verschiedener Linux-Distributionen, einzelne Paketverwaltungen jeweils als zentrale Anlaufstelle oder Rückgrat des Installationsmanagements zu verwenden.
Unverzichtbare Eigenschaften |
---|
Ein Update-Systems für verteilte Software muss folgende Eigenschaften aufweisen:
|
Für die Entwicklung eines IoT-Produkts liegt es zunächst nahe, in diesen Paketmanagementsystemen nach einem passenden Konzept und der günstigsten Implementierung zu suchen und anschließend zu hoffen, dass das ausgesuchte System alle Anforderungen erfüllt und auch zukünftige Entwicklungen des Produkts problemlos nachgezogen werden können. Eine kurzfristige Anpassung der Strategie der Softwaredistribution stellt sich aber in der Praxis oft hinterher als schwer möglich heraus, wenn die strukturierte Paketverwaltung nur eine geringe Anpassbarkeit aufweist. Das kann besonders schwer wiegen, wenn bereits das Initialsystem von Kompromissen gekennzeichnet ist. Dadurch wird die Paketverwaltung, die in der Gesamtheit einer IoT-Applikation eigentlich nur ein Hygienefaktor sein sollte, zum aktiven Projektrisiko: Die Gefahr, in einem Projekt länger und schmerzhafter als nötig an ein Paketverwaltungssystem gebunden zu sein, ist hoch.
Besonders teuer wird es, wenn spezielle Projektanforderungen Entwicklungskapazität binden, weil das Paketverwaltungssystem an einer Stelle umständlich und aufwendig ist oder Spezialkenntnisse erfordert: Die Entwicklungskapazität trägt am meisten zum Projekterfolg bei, wenn sie fokussiert auf dem fachlichen Schwerpunkt eines Produkts eingesetzt wird. Standardaufgaben, die anderswo bereits gelöst worden sind, nochmal zu lösen, stärkt die Unique Selling Proposition des Produkts demgegenüber nur sehr bedingt.
Daher wurde in den letzten Jahren eine Anzahl von frei verfügbaren abstrahierenden Frameworks (AFs) geschaffen, um Linux-Systeme verteilt zu aktualisieren. Sie setzen dabei nicht so sehr auf eine feingranular definierte Implementierung, sondern sollen eine modulare, konfigurierbare Plattform zur Umsetzung individueller Wünsche bereitstellen.
Dadurch soll die Softwareverwaltung möglichst flexibel und anpassbar, aber auch möglichst sicher und skalierbar gestaltet werden. Spezifische Implementierungen sollen sich bestmöglich in ein robustes, werthaltiges Basissystem einfügen lassen. Im besten Fall geht das einher mit einer realistischen Lernkurve und geringen Einstiegshürden. Dennoch zeigt der Praxistest: Alle untersuchten AFs lösen die gegebenen Anforderungen zu etwa 70 %, wogegen 30 % unberücksichtigt bleiben und bestimmte Aufgaben nur schwer lösbar machen.
Diesen Mangel versucht das LIUF auszugleichen (siehe Kasten Vorteile des LIUF). Viele der AFs – beileibe nicht alle – implementieren zwar einzelne Aspekte eines Framework-Konzepts, aber sind dann doch stets wieder sehr rigide an verschiedene Bibliotheken und Toolkits, z. B. APT (Advanced Package Tool), gekoppelt. Derartigen Abhängigkeiten stellt LIUF ein Plug-in-Konzept entgegen (Bild 3), wobei die in der aktuell out-of-the-box verfügbaren Version des LIUF vorhandenen Plug-ins durch weitere problemlos ergänzt werden können.
So lässt sich auf diesem Wege der Funktionsumfang von LIUF auf das gewünschte Maß »aufbohren«, auch mit Blick auf eine stets sichere Datenübertragung: Die Sicherheit bei der Kommunikation und Übertragung ist bei anderen AFs nicht immer unbedingt gewährleistet bzw. nicht immer zweifelsfrei dokumentiert. LIUF hingegen garantiert eine sichere, verschlüsselte Kommunikation. Schließlich ist das LIUF nicht auf eine einzige Linux-Distribution beschränkt, selbst wenn aktuell nur die debian-Variante eingesetzt wird: Eine Übertragung auf andere Linux-Distributionen ist möglich.