Embedded Geräte, egal ob Steuerungen oder kleine IIoT Geräte, die ein Updatesystem besitzen, sollten ohne Zutun von Menschen mit aktuellen Softwareständen bespielt werden können. Gleichzeitig sollte Ihr Zustand (letzte SW-Version, Nutzungsdauer, Speicherverbrauch, Temperatur usw.) jederzeit bekannt sein. Und aus den vorliegenden Daten sollte optional auch eine Wartung voraussagbar sein. All diese Funktionen bietet ein modernes Gerätemanagement und Update System.
Was muss ein Update System alles können?
Ein Gerät muss sicher authentifiziert werden können, bevor es an den Update Server ankoppeln darf. Ebenso muss das Gerät sich sicher sein können, dass es am richtigen Server angedockt hat.
Hierzu gibt es unterschiedliche Verfahren, die auch von der Leistungsfähigkeit des Endgerätes abhängen. Dies kann, im einfachsten Fall, eine eineindeutige Identität des Gerätes sein, eine UUID (universal unique identity). Diese wird bei der Produktion im Gerät sicher abgelegt. Auf den Management Server wird sie dann durch eine manuelle Handlung gebracht (Austausch von Daten).
Neben derart einfachen (und daher auch leicht manipulierbaren Ansätzen) gibt es aber auch sehr viel sicherere Verfahren (siehe auch Onboarding / Zero Touch Onboarding) wie beispielsweise ein Nachweis der Identität durch Zertifikate. Hierbei wird eine durchgängige Kette von vertrauenswürdigen Zertifikaten auf dem Gerät gespeichert und ein derartiges Zertifikat dem Update Server bekanntgegeben. Dieser wiederum besitzt eine Liste mit vertrauenswürdigen Zertifikatsquellen (CA – certificate authorities) und prüft das angebotene Zertifikat dagegen. Bei einer positiven Überprüfung wird das Gerät angenommen und mit seinen Attributen (Name, Einsatzort usw.) abgespeichert.
Hauptzweck des Updateservers ist ja das Ausspielen eines Updates über eine Internetschnittstelle. Das bevorzugte Verfahren wird e sein, dass sich ein gerät meldet und nachsieht, ob es ein Update gibt. Sollte das der Fall sein, so wird es sich das Updatefile downloaden.
Der Update Server muss auch in der Lage sein mit Geräten, die länger nicht mehr aktiv im Netz waren, umzugehen, Das kann bedeuten, dass zuerst ältere Updates ausgespielt werden müssen, bevor das aktuellste zum Einsatz kommt.
Geräte sollten zu Gruppen zusammengefasst werden können, wobei die Kriterien für die Auswahl vom Nutzer frei vorgebbar sein sollten. Gruppen können beispielsweise Geräte in der gleichen geografischen Region beschreiben, aber auch Geräte mit dem gleichen Hardware Stand, dem gleichen Produktnamen und Ähnlichem.
Eine Gruppe sollte dann ein Update automatisch erhalten, sofern dies so konfiguriert wurde.
Hilfreich ist es, wenn zuerst nur eine kleine Untergruppe Ihr Update erhält und nur im Erfolgsfalle (wenn also beispielsweise 100 % der Updates erfolgreich waren) dann die restlichen Geräte automatisch Ihr Update erhalten. Diese Kampagnenfähigkeit erhöht die Qualität der Updates im Feld signifikant.
Und es ist hilfreich, wenn ein Update auch nur für ein einzelnes Gerät ausgerollt werden kann. Dies kann der Erprobung dienen, aber auch der Lösung von Problemen, die nur auf einem einzelnen Gerät vorhanden sind.
Sollte ein Gerät kein Update durchführen – auswelchem Grund auch immer – so muss der Status des Gerätes dies anzeigen und das Update zu einem späteren Zeitpunkt wieder ermöglichen.
Ein Gerät muss nach einem Update eine Rückmeldung senden und darin den Status des Updates beschreiben. Nur so ist eine Auswertung des Updateerfolges möglich.
Dieser Kanal kann auch zum optionalen Monitoring der Geräte verwendet werden. Hierbei werden relevante Systemparameter kontinuierlich an den Server übermittelt und dort gespeichert.
Die Auswertung dieser Daten kann lokal im Server oder remote in einem Maintenance Server (Cloud) erfolgen, grafisch dargestellt werden und Basis für predictive maintenance sein.
Monitoring Daten könnten sein:
Powerstatus – Ein oder Aus, Laufzeit seit letztem Ein
Ressourcen – CPU-Nutzung, Speicherauslastung, Netzwerkverkehr, Netzwerkdurchsatz
Sensordaten – auf der Hardware vorhandene Sensoren und deren Daten wie Temperatur, Ort usw.
Log-Daten – Informationen, die Ihre Applikation regelmäßig monitort und ablegt, Zugriffe, Änderungen.
Es gibt verschiedenste Möglichkeiten, diese Daten vom Gerät zum Server zu bekommen. Dabei ist viel vom Einsatzort etc. abhängig. Unsere Standardlösung baut auf OPC UA auf und nutzt dessen Fähigkeiten. Gerne passen wir unseren Ansatz an Ihre spezifischen Anforderungen an.