Software-Test Durch Simulation bessere IoT-Systeme entwickeln

Autor / Redakteur: Jakob Engblom * / Franz Graser

Bei der Entwicklung von Software, die auf Hunderten oder Tausenden IoT-Nodes läuft, stellt sich die Frage, wie sich Programme möglichst praxisnah testen lassen. Simulation ist eine gute Antwort darauf.

Anbieter zum Thema

Bild 1: Simulation des Internets der Dinge. Die Lösung simuliert die Hardware jedes Knotens wie Prozessoren, Speicher, Timer, Wireless Radio und dergleichen. Auf den simulierten Nodes laufen das Betriebssystem und Zielapplikationen mit den gleichen Binaries wie auf der echten Hardware.
Bild 1: Simulation des Internets der Dinge. Die Lösung simuliert die Hardware jedes Knotens wie Prozessoren, Speicher, Timer, Wireless Radio und dergleichen. Auf den simulierten Nodes laufen das Betriebssystem und Zielapplikationen mit den gleichen Binaries wie auf der echten Hardware.
(Bild: Wind River)

Die IoT-Systeme, die heute entwickelt werden, basieren oft auf einer dreistufigen Architektur (Bild 1). Es gibt viele kleine Knoten, die über Wireless Mesh-Netzwerke miteinander oder mit Gateways verbunden sind. Die Gateways selber sind mit einem Management Server oder mit der Cloud verbunden. Bei den kleinen Knoten kann es sich um Sensoren (Temperatursensoren, Stromzähler, Kameras) oder Aktoren (Thermostate, Dimmer oder Türöffner) handeln. Gateways oder Konzentratoren sind für die Verbindung zur Außenwelt verantwortlich und sorgen für Sicherheit. Der Back-End-Server, der sich oft in der Cloud befindet, ist für die Geschäfts- und Steueraspekte des IoT-Systems zuständig.

Bildergalerie

Zum Testen dieses Systemtyps sollten die Wireless-Nodes über eine große Fläche verteilt sein, damit nicht alle miteinander in Verbindung stehen. Dies setzt voraus, dass als Labor ganze Gebäudekomplexe verwendet werden. Die Einrichtung und Wartung eines solchen Netzwerks ist sehr aufwändig. Die Arbeitskosten können die Kosten der Knoten selbst deutlich übersteigen.

Ein Programm verwaltet Hunderte simulierter Objekte

In einem Simulator (Bild 1) lässt sich ein umfangreiches Netzwerk relativ leicht einrichten. Man muss lediglich ein Programm schreiben, um die Nodes virtuell zu platzieren und über den erforderlichen virtuellen Bereich zu verteilen. Anschließend modelliert man die Wireless-Reichweite zwischen den Nodes. Statt Hunderte physikalischer Objekte manuell zu verwalten, arbeitet man mit einem einzigen Skript oder Programm.

Mit einer Lösung wie Wind River Simics simuliert man die Hardware jedes Knotens: Prozessoren, Speicher, Timer, LEDs, Wireless Radio und alles andere, das man braucht. Auf den simulierten Nodes laufen das Betriebssystem und Zielapplikationen. Dabei werden die gleichen Binaries genutzt, die auf der echten Hardware laufen. Die verschiedenen Typen von Nodes werden sinngemäß simuliert und laufen mit dem gleichen Simulationsaufbau.

Die Simulation des gesamten IoT-Systems auf diese Art erlaubt, alle Aspekte der Software zu testen. Dies enthält zum Beispiel:

  • den Wireless-Kommunikationsstack und seinen Umgang mit Netzwerkproblemen,
  • den Sensor- und Aktor-Code und wie er mit der Umgebung arbeitet,
  • Sleep-Betriebsarten und Wake-up-Intervalle an den Knoten und ihre Energiespar-Eigenschaften,
  • die Reporting-Funktion von Sensoren zu Gateways und weiter zum Server,
  • Middleware, die Netzwerk-Nodes administriert und Software auf den Nodes aktualisiert, einschließlich Over-the-air-Updates,
  • Onboarding und sichere Konnektivität,
  • Datensicherheit (Gateways und Nodes),
  • Skalierbarkeit des Datenmanagementsystems bei steigender Nodes-Zahl.

Simulation bietet die Möglichkeit, Systeme beliebiger Größe zu entwickeln – von sehr kleinen bis hin zu äußerst umfangreichen Systemen. Das bedeutet, dass das Verhalten des Systems über ein ganzes Spektrum getestet werden kann: Von kleinen Unit-Tests oder Subsystem-Tests bis hinauf zu größten vorstellbaren Einrichtungen. Oft wirft jede Skalierung andere Probleme im System auf. Es geht nicht nur um die allergrößten Setups, sondern auch darum, sicherzustellen, dass auch bei Systemen mittlerer Größe alles effizient arbeitet.

Ergänzendes zum Thema
Originalbeitrag als ePaper oder im pdf-Format lesen

Dieser Autorenbeitrag ist in der Printausgabe ELEKTRONIKPRAXIS 11/2015 erschienen. Diese ist auch als kostenloses ePaper oder als pdf abrufbar.

Das Bild 1 zeigt auch die Simulation der Umgebung, in der das IoT-System arbeitet. Jeder Sensorknoten hat typischerweise eine Schnittstelle zu einer Simulation der ihn umgebenden Umwelt – somit verfügt er über Daten, die er zum Gateway und Server schickt. Ein IoT-Knoten ohne eine ihn umgebende Welt ist nicht nützlich.

Zum Systemtest gehört auch, die simulierten Funknetzwerkbedingungen zu variieren. In einem Simulator ist es einfach, bestimmte Signalstärken zwischen beliebigen Knotenpaaren zu definieren und Regeln zu implementieren, nach denen Datenpakete bei nachlassender Signalstärke wahlfrei fallengelassen werden. Die Konfiguration kann während eines Tests verändert werden, um zu prüfen, wie Nodes auf geänderte Bedingungen reagieren – etwa wenn ein Zug die Sichtverbindung zwischen zwei Knoten durchquert und die Funkkommunikation kurzzeitig unterbricht. Solche Tests lassen sich in der Simulation genau steuern und wiederholen. Ganz im Gegensatz zur realen Welt, in der es schwierig sein kann, bestimmte Funksituationen nachzubilden.

Artikelfiles und Artikellinks

(ID:43361104)