Smart aber clever

IoT als Herausforderung für die Softwareentwicklung

28.09.2016 von Frank Pientka
Das wirtschaftliche Potenzial des Internet der Dinge (IoT) ist groß. Doch die Auswirkungen auf die bestehende Strukturen in Industrie und Gesellschaft, aber auch die Herausforderungen für die Softwareentwicklung sind noch zu wenig bedacht.

Noch nie war eine so hohe Zahl von vernetzten Geräten verfügbar. Das Internet zählt bereits zu den größten und komplexesten, jemals von Menschen gebauten Systemen. Intelligente Geräte sind spätestens mit den Smartphones Teil unseres Lebens und übernehmen immer mehr die Steuerung und Optimierung von Prozessen.

Die neuen Möglichkeiten bringen jedoch auch neue Herausforderungen mit sich. Das Testen beschäftigt sich als eine wichtige Disziplin des Systems Engineering mit der Sicherstellung der nötigen Qualität von IoT-Produkten.

Ein wichtiger Aspekt bei IoT-Szenarien ist die Interoperabilität der Schnittstelle und Güte des dabei angebotenen oder genutzten Dienstes.
Foto: Shutterstock - Jirsak

Es geht um die Vernetzung

Im Internet der Dinge (IoT) liefern Sensoren vielfältige Informationen und fördern smarte Entscheidungen. Es erlaubt Menschen und Geräten von überall und zu jeder Zeit auf alle angeschlossene Produkte zuzugreifen und Informationen miteinander zu vernetzen. Schlaue und vernetzte Alltagsgegenstände können untereinander über das Internet zu jeder Zeit und an jedem Ort miteinander kommunizieren.

Dabei können das kleine Chips in Sensoren sein oder auch große Maschinen oder Anlagen. Ein wichtiger Aspekt ist die Interoperabilität der Schnittstelle und Güte des dabei angebotenen oder genutzten Dienstes. Eine große Schwierigkeit ist, dass aktuell nur sehr wenig branchenübergreifende Standards existieren. Meist wird auf bestehende low-level Standards, wie HTTP, Message Queue Telemetry Transport (MQTT), Constrained Application Protocol (CoAP) oder Extensible Messaging and Presence Protocol (XMPP) zurückgegriffen. Als Basis-Protokolle kommen Bluetooth Low-Energy (BLE), NFC (Near Field Communication), ZigBee oder WiFi zum Einsatz.

Diese IoT-Skills brauchen Unternehmen
Schaltkreisdesign
Geht es um Connected Devices, müssen Unternehmen sicherstellen, dass Chip-Design und -Entwicklung sich an den neuen Systemanforderungen orientieren. Applikationen, die beispielsweise von Batterien abhängig sind, brauchen unter Umständen spezielle Schaltkreise um den Energieverbrauch zu minimieren oder gleich mehrere Chips und Sensoren auf einer Platine.
Mikrocontroller-Programmierung
Das IoT besteht aus Milliarden kleiner, miteinander vernetzter Devices. Die meisten dieser Devices brauchen zumindest einen Mikrocontroller, um Daten verarbeiten zu können. Mikrocontroller sind günstige, energiesparende Chips, deren Programm- und Datenspeicher Teil des Systems sind.
AutoCAD
AutoCAD ist die derzeit am meisten verbreitete Design Software für Applikationen und erfährt aufgrund der Komplexität von IoT-Devices einen enormen Boom. Das liegt daran, dass gerade diese vernetzten Geräte nach völlig neuen Design-Grundsätzen entwickelt werden müssen – zum Beispiel wenn es um Hardware-Standardisierung oder Personalisierung geht.
Machine Learning
Smarte Appliances und Applikationen entstehen durch Machine-Learning-Algorithmen, die Sensordaten verarbeiten. Diese Algorithmen können zu Zwecken der Predictive Data Analysis verwendet werden. Das erfordert allerdings Experten für Big Data Management und Machine Learning.
Security-Infrastruktur
Laut einer Studie von TEKsystems hindert die steigende Angst vor Datenlecks Unternehmen maßgeblich daran, im IoT durchzustarten. „Firmen die bereits Erfahrung in Sachen Cloud Security haben, verfügen bereits über eine gute Basis. Allerdings machen die weitergehende Skalierung und Komplexität des Internet of Things die Dinge kompliziert.
Big Data
Das Internet der Dinge hat die Menge der Daten, die Unternehmen sammeln und auswerten, vervielfacht. Die Kunst besteht nun darin, redundante Datensätze direkt bei der Erhebung auszusortieren und relevante Daten zu schützen.
Elektrotechnik
Die nächste Generation der Connected Devices braucht nicht nur Software, sondern auch technische Expertise.
Security Engineering
IT-Sicherheit gehört zu den größten Sorgenkindern für den IoT-Markt. Prominente Datenlecks und Hacks haben nicht nur bei Unternehmen, sondern auch bei den Konsumenten ein neues Bewusstsein für IT-Security geschaffen.
GPS-Entwicklung
Der GPS-Markt steht dank des Internet of Things vor einer Renaissance. Insbesondere bei Unternehmen, die im Bereich Wearables, Connected Cars oder Logistik tätig sind.

Um den Protokoll-Overhead zu reduzieren, scheiden typische Internet-Protokolle wie HTTP/S aus und es wird öfters auf UDP und IP direkt gesetzt. Protokolle wie TCP/IP oder selbst HTTP, haben inzwischen mehrere Jahrzehnte auf den Buckel und wurden für ganz andere Nutzungsszenarien entwickelt und sind eher Server-, als Client-orientiert. Auch eher verbindungsorientiert als nachrichtenorientiert. Mit TLS 1.3 naht ein neuer Verschlüsselungsstandard, der die heutigen Anforderungen an eine sichere Übertragung besser wiedergibt als SSL.

Die Kommunikation ist bei IoT-Geräten meistens asynchron und nicht, wie bei typischen Web-Anwendungen, synchron. Insofern sind Fortschritte bei der effizienten Nutzung der Übertragungskapazitäten durch die Nachfolgerprotokolle, wie HTTP/2 oder TCP Fast Open gerade für IoT-Geräte zu begrüßen

Durch die Heterogenität und sehr unterschiedliche Leistungsfähigkeit der verwendeten Geräte müssen oft mehrere Protokolle unterstützt werden, um auf die unterschiedlichen Anforderungen oder Gegebenheiten reagieren zu können. Oft werden auch Gateways eingesetzt, um zwischen den unterschiedlichen Protokollen und Schnittstellen zu vermitteln.

Da sich in Hardware gegossene Software ganz anders verhält als typische Web-Anwendungen, kann zwar einiges an Wissen und Werkzeugen, das dort erworben wurde, wiederverwendet werden. Anstelle eines Monoliths aus einem Guss, hat man es im neuen Umfeld mit vielen kleinen unabhängigen Diensten und Systemen zu tun. Es gilt, in Bezug auf das Internet der Dinge nicht nur ein verteiltes System im Blick zu haben, sondern mit einer Vielzahl von verteilten und untereinander sehr unterschiedlichen Systemen (Systems-of-systems) zu operieren. Deshalb sollte man sich nicht nur mit geringen, unzuverlässigen und unsicheren Übertragungskapazitäten beschäftigen, sondern auch berücksichtigen, dass die Verarbeitung fehlertolerant und möglichst energieeffizient stattfindet.

Ohne Qualität geht nichts

Neben traditionell schon schwer und recht aufwändig zu testenden Qualitätsmerkmalen nach ISO/IEC 25000, kommen noch IoT -spezifische hinzu. Dazu zählen z.B. die Energieeffizienz, Selbstverwaltung, Langlebigkeit, Aktualisierbarkeit, Diagnostizierbarkeit, Robustheit oder Resilienz. Ebenso ist auch die Einhaltung ethischer Werte sowie die Privatsphäre, informationelle Selbstbestimmung und Sicherheit für den langfristigen Erfolg wichtig. Sicherheit und Datenschutz können hierbei nicht inkrementell geliefert werden. Sie müssen von Anfang an eingehalten werden.

Sensoren für das IoT: Sensors Expo 2016
Sensors Expo & Conference 2016
Sensoren sind das Herz des Internet of Things. Schließlich sammeln sie die Daten, die Wearables und Smart Cities erst möglich machen. In San Jose, Kalifornien versammelte sich Ende Juni 2016 das Who-is-Who der US-amerikanischen Sensoren-Industrie. Wir zeigen Ihnen die Highlights der Sensors Expo & Conference 2016.
Gut, wenn man flexibel ist
Dieser flexible Sensor von SpectraSymbol kann Biegungsbewegungen erkennen und kommt beispielsweise in der Medizin zum Einsatz, wenn es darum geht, den Bewegungsspielraum eines verletzten Gelenks zu bestimmen. Der Hersteller fertigt zahlreiche Sensoren für industrielle, medizinische und Verbraucherzwecke.
Photodioden
Wenn Sie auf das Bild schauen, stellen Sie sich einfach vor, es befände sich eine Nadel in der Mitte und das komplette Ding wäre an dem Flügel eines Flugzeugs montiert. Genau das passiert mit dieser Photodiode, denn sie ist dazu da, Flugzeuge auf dem ersten Testflug zu begleiten. Jede Bewegung der Nadel wird erfasst und kann von Experten auf dem Boden in Echtzeit ausgewertet werden. Aus den Daten lassen sich Erkenntnisse darüber gewinnen, ob der Flügel vor der Auslieferung neu ausgerichtet werden muss. Hersteller ist allerdings kein amerikanisches, sondern ein französisches Unternehmen namens Isorg, die diese Art von Sensoren nächstes Jahr massenhaft verbreiten will.
Fingerabdruck-Scanner Reloaded
Aktuelle iPhones verfügen zwar über einen Sensor, der Fingerabdrücke erkennt, allerdings ist der dafür konzipiert, nur eine einzige Person zu erkennen. Dieser Detektor - ebenfalls aus dem Hause Isorg - arbeitet präzise genug, um zwischen Millionen von Fingerabdrücken unterscheiden zu können. Die Technologie kommt bereits bei Grenzkontrollen zum Einsatz, wo die Behörden versuchen, ganz bestimmte Individuen zu identifizieren. Das System speichert allerdings keine Fingerabdruck-Daten wie man bei Isorg versichter, sondern gleicht lediglich bestimmte Koordinaten in Echtzeit auf einer Analytics-Plattform ab.
Sensoren und die Cloud
Sensoren müssen Daten an Rechner zurücksenden, die entweder in einem Rechenzentrum oder der Cloud "stehen". Dieses Netzwerk-Zubehör sendet diese Daten komplett kabellos - selbst wenn einige Knotenpunkte ausfallen sollten. Zur Anwendung kommt hierbei der beliebte, weil sehr energiesparende, Wireless-Standard IEEE 802-.15.4. Der Hersteller ist B+B Smartworx, ein in Ottawa, Illinois, ansässiges Tochterunternehmen von Advantech.
Wohltuendes fürs Rechenzentrum
Das IoT kann Unternehmen dabei helfen, ihre Data Center für weniger Geld zu betreiben. Zum Beispiel mit der Wzzard node. Das Teil wird in der Mitte eines Serverracks montiert. Auch in diesem Gerät arbeitet Technologie von B+B Smartworx: zwei kleine Sensoren an den Kabeln messen die Temperatur. Die Temperaturdaten geben Unternehmen Aufschluss darüber, wann sie die Klimaanlage im Rechenzentrum herunterfahren können.
Alt trifft Neu
Es gibt viele Wege, um elektronisch Musik zu machen, aber die meisten davon beinhalten weder hölzerne Tasten noch Hämmer. Ein Unternehmenskunde bat beim deutschen Elektronik-Hersteller Hoffman+Krippner um Unterstützung bei der Realisierung eines elektrischen Pianos mit traditionellen Bauteilen. Das Ergebnis ist im Bild zu sehen: Gedruckte Sensoren (die schwarzen Streifen auf der Platine) erfassen, wie stark die Tasten gedrückt werden. Je mehr Druck, desto lauter der Ton.
Extremer Härtefall
Wieviel Kaltverformung verträgt Ihr Auto? Diese Frage interessiert auch die Autobauer, weswegen sie sogenannte Sensor Strips in Prototypen verbauen. Gefertigt werden die Sensorenbänder vom US-Unternehmen Acellent Technologies.
Hammer trifft BMW
Wenn Sie Metall mit einem Hammer bearbeiten, entsteht meistens eine Beule. Die modernen Verbundmaterialien, die im Autobau zum Einsatz kommen, können dagegen beschädigt werden, ohne dass es sofort sichtbar ist. Zu verstehen, wieviel Belastung bestimmte Materalien aushalten, ist aber nicht nur für die Auto- sondern auch die Luft- und Raumfahrt-Industrie essentiell.
Altes Eisen, moderner Kern
Ein Inklinometer misst Neigungen - zum Beispiel den Winkel eines Kranarms oder den Flugwinkel von Flugzeugen. Der in Pennsylvania ansässige Familienbetrieb Rieker stellt diese Geräte bereits seit 1917 her. Auf der Sensors Expo gab es nun erstmals ein elektronisches Modell zu sehen, das Neigungen auf bis zu Einzehntel-Grad genau misst - egal ob es gerade sehr heiß oder kalt ist. Die Ergebnisse sind übrigens laut Rieker zehnmal so genau wie die eines Smartphones.

Nicht erst seit dem VW-Abgasskandal ist bekannt, dass Vertrauen ein hohes Gut ist und das Nichteinhalten bestimmter Standards enorme wirtschaftliche und gesellschaftliche Folgen haben kann. Deswegen ist ein Value Sensitive Design (VSD) und dessen Überprüfung durch geeignete Review- und Auditprozesse zur analytischen Qualitätssicherung und Einhaltung der Governance-Prozesse für IoT-Produkte eminent wichtig.

Gerade bei der großen Zahl der vernetzten Geräte ist es kaum möglich, dass alle zur gleichen Zeit auf demselben Softwarestand sein können. Das kann daran liegen, dass einige Geräte gar nicht oder über längere Zeit nicht erreichbar waren oder sind. Der angebotene Dienst muss also über eine längere Zeit auch mit älteren Nutzern umgehen können. Das bedeutet, dass Änderungen an der Schnittstelle abwärtskompatibel sein müssen und neue Funktionalitäten am Dienst nur sehr gezielt vorgenommen und abgestimmt werden.

Das Thema Interoperabilität und Kompatibilität hat beim Internet der Dinge eine große Bedeutung. Oft müssen über eine längere Zeit mehrere Versionen eines Dienstes angeboten werden., Deshalb werden auch organisatorische Maßnahmen benötigt, um den Testaufwand für die Kombination unterschiedlicher Dienstversionen miteinander in machbaren Grenzen zu halten. Die Schnittstellenflut sollte außerdem über geeignete Design-Muster wie Adapter, Wrapper oder Broker reduziert werden.

Standardimplementierungen auf OpenSource-Basis sollten immer Vorrang haben gegenüber Eigenimplementierungen, da nicht nur die Interoperabilität verbessert wird, sondern auch von der Reife der Implementierung profitiert wird. Eine stetig steigende Nutzeranzahl stößt oft auch schneller auf unterschiedliche Fehlersituationen. Gerade bei Open-Source wird eine große Anzahl an Tests mitausgeliefert, die dabei helfen, eigene darauf basierende Tests zu schreiben.

"Kannst Du mich verstehen?"

Es gilt, nicht nur die von der Schnittstelle zur Verfügung gestellte Funktionalität, sondern auch die von ihr angebotene Dienstgüte zu testen. Das allein ist für den Testaufbau ein großer Aufwand und eine Herausforderung, da die Voraussetzungen für das Testen der verschiedenen Qualitätsszenarien erst geschaffen werden müssen. Allein schon wegen der Menge und der Vielzahl der Varianten geht es nicht ohne Testplanung und eine automatisierten Bereitstellung und Automatisierung.

Hier helfen Konzepte wie sie von der DevOps, Cloud und leichtgewichtigen Containern zur Verfügung gestellt werden. Sie stellen schnell, wiederholbar und effizient unterschiedliche Umgebungen in großer Anzahl zur Verfügung. Neben bisher schon verwendeten Praktiken wie Mock-Objekte, Stubs oder Testtreiber, wird es auch simulierte Schnittstellen und eine Virtualisierung der angebotenen Dienste geben.

Die Test-Virtualisierung muss jedoch mit einer repräsentativen Auswahl von physikalischen Geräten im Feldtest regelmäßig ergänzt werden. Hier kann Crowdtesting zum Einsatz kommen, um möglichst realistische Testergebnisse mit Beta-Nutzern zu erhalten. Auch hierzu gibt es bereits Cloud-Plattformen im Bereich mobile Anwendungen, um solche Testarten, inklusive Tester und deren Ergebnisse zu organisieren. Diese müssten jedoch noch für die IoT-Spezifika erweitert werden.

Es wird nicht mehr reichen, nur die Schnittstellenbeschreibung zur Verfügung zu stellen. Die Nutzer müssen ihre Annahmen an die Schnittstelle als Consumer-Oriented-Tests beschreiben und dem Dienst-Producer zur Verfügung stellen, damit dieser die Tests im Rahmen seiner kontinuierlichen Integrationsprozesse verwenden kann. Schon die alten Römer wussten: Pacta sunt servanda. Einmal vereinbarte Verträge sind auch dauerhaft einzuhalten.

Nur so können frühzeitig Fehler durch Änderungen in der internen Implementierung getestet werden oder auch mit den unterschiedlichen Qualitätstest-Szenarien nachgestellt und simuliert werden. Die Diagnostizierbarkeit bei IoT-Umgebungen ist dafür eine wichtige Voraussetzung., Da die Geräte aber von keinem Administrator betreut werden, muss die Möglichkeit bestehen, aussagekräftige Diagnoseinformationen bei Fehlern über einen definierten Zeitraum vorzuhalten und automatisiert, oder auf Anfrage, zur Verfügung stellen zu können.

Sind diese Daten zudem maschinell les- und auswertbar, können sie als hervorragende Testdaten automatisiert zur Fehlerbehebung in der Entwicklung als Testtreiber eingespielt und im Rahmen der Integration für Regressionstests verwendet werden. Diese Diagnoseinformationen sollten deshalb, neben einer eindeutigen Eingliederung der Identifikation, auch fachlichen Testkategorien zugeordnet werden, um sie für später wiederverwendbar zu machen. Hier kann es sich lohnen, diese als Basis zu nehmen und daraus auch für neue Funktionen zeitgemäße Testdaten zu generieren oder per Mutationstest Varianten davon zu erstellen.

Vom Internet der Computer zum Internet der Dinge

Der Grad der Vernetzung nimmt immer mehr zu. Ein Gesamtsystemtest ist in einem realen System mit vertretbarem Aufwand nicht mehr möglich. Deswegen ist man darauf angewiesen, die Dienste und ihre Umgebungen zu simulieren und zu virtualisieren, um möglichst schnell und realistisch die unterschiedlichen Umgebungsbedingungen und Dienstvarianten nachstellen zu können und für die kontinuierlichen Tests zu verwenden.

Dem API-Management kommt eine immer größere Bedeutung zu, weil die erfolgreiche Nutzung der von einer Plattform oder Geräten angebotenen Dienste über den dauerhaften Erfolg von smarten Geräten entscheidet. Hier muss sicher ein Mittelweg zwischen Innovation und Langlebigkeit gesucht werden. Das Internet-der-Dinge bleibt eine große Herausforderung für das Testen, insbesondere, da die damit gebauten Systeme immer kritischer und komplexer werden. Der wirtschaftliche Druck ist groß, aber dieser sollte nicht auf Kosten der Produktqualität und der Nutzer gehen. (mb)