Das “Internet der Dinge” oder “IoT” ist in aller Munde. Was versteht man darunter eigentlich? Wie so oft, ist die Definition etwas unscharf und vielfältig. Zunächst ist das Internet der Dinge ein Stück weit die Evolution dessen, was uns ohnehin schon umgibt. Ein Stückchen mehr Zusammenspiel einzelner, vormals separater “Bausteine” (in welcher Ausprägung auch immer), ein Stückchen mehr Automatisierung, ein bisschen mehr Erleichterung für uns Menschen durch "Maschinen” die lästige Arbeiten übernehmen.

In diesem Zusammenhang wird über das Internet der Dinge bisweilen auch von der “4. Phase der industriellen Revolution” gesprochen. Was waren eigentlich die ersten 3 Phasen, mag man sich hier fragen. Gemeinhin bezeichnet man als erste Phase die “Mechanisierung” (klassiches Beispiel: den Einsatz der Dampfmaschine). Die zweite Phase beschreibt den Einzug der “Massenfertigung” (bspw. Fließbandfertigung), die dritte die “Automatisierung” durch verstärkten Einsatz von Elektronik und Software in der Produktion. Und die vierte Phase? Die wäre in diesem Zusammenhang unter dem Stichpunkt “Vernetzung” einzusortieren und deckt eben das IoT mit ab.

Es geht unterm Strich darum, das vormals separate Komponenten durch Vernetzung in der Lage sind clever miteinander zu arbeiten. Ein schönes und vielzitiertes Beispiel wäre in diesem Fall ein Haushaltsroboter, der in der Lage ist bspw. den Tisch abzudecken. Sollte er dabei versehentlich in den Robotergreifern ein Glass zerstören, da die angewendete Greifkraft zu groß ist, wäre er im besten Falle in der Lage, durch die eben gegebene Vernetzung andere Roboter (in anderen Häusern) darüber zu informieren, dass bei bestimmten Gläsern ein bestimmtes Maß an Greifkraft nicht überschritten werden darf.
Während das noch Zukunftsmusik ist, hat Kuka zusammen mit Jeep die Produktion der Jeep Wrangler Fahrzeuge schon so weit automatisiert, dass hier das Grundgerüst eines Fahrzeugs unter zwei Minuten entsteht – wobei über 60000 Devices miteinander kommunizieren müssen. Es ist also schon da, dieses Internet of Things.

Konnektivität

Szenarien wie das des Roboters mögen den Anschein wecken, als würde es eigentlich ausreichen, wenn man jedem “Ding” einfach nur eine Netzwerkbuchse verpasst. Für jemanden, der nicht unbedingt in der IT Branche tätig ist, ist diese Erklärung vermutlich auch völlig ausreichend, da damit eben der “sichtbare” Teil des IoT (die Edge-Devices) ganz gut zusammengefasst wird.
Das IoT darauf zu beschränken ist vielleicht eine der größten Fehleinschätzungen, wenn es um das Internet der Dinge geht.
Natürlich ist für das Internet der Dinge die Möglichkeit der einzelnen Devices zur Kommunikation unabdingbar und die Verfügbarkeit von stabilen drahtlosen Kommunikationskanälen (Bluetooth, WiFi, etc) sowie die weitreichende Abdeckung großer Landflächen durch schnelle Mobilfunknetzwerke ist mit Sicherheit Wegbereiter für IoT.  Es ist aber eben nur eine Voraussetzung und nicht das IoT selbst.

Kompatibilität & Spezifikation

Neben der Fähigkeit miteinander zu sprechen, benötigen die “Dinge” auch die Fähigkeit die gleiche Sprache zu sprechen. Mittelfristig kann man also erwarten, dass sich für unterschiedliche Szenarien (bspw. Home Automation, Intelligent Cars) im besten Falle neue Standards etablieren und herstellerübergreifend kommuniziert werden kann. Man möchte als Anwender ja nicht gezwungen sein irgendwann auf Grund der Wahl eines bestimmten Automobils an einen bestimmten Kaffeemaschinenhersteller gebunden zu sein.  
Im Gegensatz zu den technischen Voraussetzungen, die schon sehr weit gediehen sind, stellt die Kompatibilität und der Bedarf von Spezifikationen eine Hürde dar, die nicht einfach mit mehr Leistung, mehr Technik und dem allgemeinen technischen Fortschritt genommen werden kann. Hier ist es erforderlich, dass sich unterschiedliche Interessensvertreter an einen Tisch setzten und einigen, was, wie die Erfahrung lehrt, bisweilen ein paar Iterationen dauern kann.

Cloud Computing

Daneben erfordert IoT neben den Endgeräten, die eben die “Dinge” darstellen und deren grundsätzlicher Kompatibilität zueinander über die Implementierung einheitlicher Protokolle, auch noch das Internet.
Und wenn man sich überlegt, wie viele Endgeräte in Zukunft existieren werden (angefangen bei Smartwatches, Brillen, Schuhe, Pulsmesser, Kühlschränken, TVs, Wetterstationen, Temperatursensoren, IP-Kameras etc), die potentiell alle in der Lage sind, entweder direkt mit anderen Rechnern im Internet zu kommunizieren oder über “Proxy”-Devices (bspw. Smartphones, die die Information von verbundenen Edge-Devices, die nicht direkt mit dem Internet kommunizieren, weitergeben), wird schnell klar, dass man es relativ schnell mit sehr vielen Daten zu tun bekommen kann.

Wenn schnell viele Daten gesammelt werden ist neben der reinen Konnektivität ein stabiler und skalierbarer Internetdienst notwendig, der die Daten entgegen nimmt und im einfachsten Falle einfach weiterreicht. Eine direkte Kommunikation der Geräte untereinander ist zwar möglich, bringt aber an anderer Stelle enorme Komplexität mit sich (woher soll ein Edge-Device wissen, dass ein anderes existiert…). Insofern sind Cloud Technologien und die damit verbundene Skalierbarkeit und Elastizität neben der generellen Möglichkeit zur Kommunikation, der zweite wesentliche Bestandteil des Internet of Things.

Dabei ist natürlich nicht zwingend die Rede von einer bestimmten Spielart der Cloud oder gar einem bestimmten Anbieter. Letztlich liegt es natürlich am jeweiligen Anbieter des Dienstes und somit am Dienst selbst, ob dieser in einer public, private oder hybrid Cloud zur Verfügung gestellt wird. Cloud Experte René Büst hat hierzu ein schöne Zusammenfassung in Form eines Tweets veröffentlich: No #cloud, no#IoT! #fact
Damit ist eigentlich alles gesagt.

Datenauswertung, Datenverarbeitung und Big Data

Wenn die einzelnen Edge Devices erst einmal anfangen fleißig Daten zu schicken, dann kommt ein weiterer Aspekt zum Internet of Things hinzu. Irgendjemand muss in der Lage sein, diese Daten zu verarbeiten. Dabei ist das Arbeiten mit diesen Daten keineswegs leicht, denn das riesige Volumen nimmt ständig zu und wir können nicht darauf wetten, dass sie einer sauberen Struktur folgen. 
In manchen Fällen sind es vielleicht tatsächlich die Edge-Devices selbst, die hier Berechnungen anstellen, was aber langfristig eine Ausnahme darstellen dürfte. Um viele Daten zu verarbeiten benötigt man viel Rechenleistung. Ein Smartphone kann hier eventuell noch eine gewisse Zeit lang mithalten. Ein Schrittzähler oder ein Herzfrequenzmesser eher nicht, anderenfalls würde er zu viel Energie verbrauchen. Demzufolge wird auch die Auswertung (und nicht nur deren Transfer und Speicherung) der Datenmengen ins Internet verlagert werden.
Dort werden unterschiedliche Mechanismen herangezogen um aus der Vielzahl der Daten, die die unterschiedlichen Sensoren liefern können wieder sinnvolle Nutzdaten zu machen.

Ein einfaches Beispiel hierfür sind Temperatursensoren, die rund um den Globus verteilt in zyklischen Abständen die aktuelle Temperatur sowie die eigene Position übermitteln. Diese Daten alleine sind wahrscheinlich relativ langweilig. Dennoch fällt innerhalb von kürzester Zeit eine beachtliche Datenmenge an. Nun sind weitere Aspekte an diesen Daten interessant:

  • Welche Information kann man aus den vorhandenen Daten beziehen?
    In diesem Fall ist die Antwort relativ trivial: Man kann die Temperatur zu bestimmten Zeitpunkten an bestimmten Orten feststellen.
  • Welche Information kann man aus einer Änderung der Daten beziehen?
    Hier wird es schon spannender. Wann ist eine Änderung der Daten eigentlich gravierend genug, um eine Bedeutung zu haben. Welche Möglichkeiten gibt es, solche Änderungen schnell festzustellen?
  • Was ist eigentlich wichtig?
    Diese Frage ist sicher nicht leicht zu beantworten – man wird sie aber beantworten müssen, will man nicht unendlich viele Daten speichern. Wie erkennt man in dem Moment, in dem Daten ankommen, ob diese eine Bedeutung haben? Abhängig davon können die Daten potentiell verworfen werden. Geht das vielleicht in Echtzeit, so dass in dem Moment, in dem die Daten ankommen, schon überprüft werden kann, was wichtige Information ist und was nicht?
  • Welche Information kann man gewinnen, wenn man die vorhandenen Daten mit anderen zur Verfügung stehenden Daten kombiniert?
    Auch das ist ein riesiges Feld: Welche Daten liegen sonst noch vor, die man mit den bestehenden Daten verknüpfen könnte? Wie wirkt sich zum Beispiel die Bevölkerungsdichte oder der Verkehrsfluss auf die Temperatur aus? Korreliert die Anfälligkeit für Asthma-Erkrankungen mit der Temperatur und der Luftfeuchtigkeit?
    Hier holt mich wieder meine Vergangenheit ein… In der Vergangenheit habe ich mit dem Team Foundation Server und den SQL Reporting Services für Software-Projekte Auswertungen erstellt, die ähnliche Ursache-Wirkung Bezüge zwischen nicht immer genau so erwarteten Faktoren ermöglicht haben. Vergleichbare Auswertungen sind jetzt denkbar für beliebige Daten, die irgendwelche Sensoren liefern – wenn man nur in der Lage ist mit der Datenmenge umzugehen.

Warum jetzt?

Man mag sich fragen, warum ausgerechnet jetzt jeder über das Internet der Dinge spricht. Die Antwort ist einfach: Weil jetzt eben die technischen Voraussetzungen dafür weitgehend existieren. Die Edge Devices sind klein und leistungsstark genug, die Akku und Batterielaufzeiten lang genug, die Drahtslosstandards gut und schnell genug, die Funkabdenkung in weiten Bereichen ausreichend, die Verbindungsgeschwindigkeiten schnell genug, die Serverinfrastruktur durch die skalibare Cloudtechnologie stark und flexibel genug und die Software auf den Servern skalierbar und leistungsstark genug. Alles da also. Worauf noch warten?

Was bedeutet das jetzt für einen Entwickler?

In erster Linie heißt das für uns Entwickler: In absehbarer Zeit werden spannende Technologien an Bedeutung gewinnen, in die es sich lohnt einzusteigen. Sei es das Auswerten von Daten, das Bereitstellen von Cloud Services oder hardwarenahe Arbeiten an den (embedded) Edge-Devices. Und natürlich sollte im Idealfall ein weiterer Aspekt eine tragende Rolle spiele: Die Sicherheit im Internet der Dinge, wenn es um Datenzugriffe, Auswertungen und Speicherung geht. Aber darüber sollte man sich eigentlich bei jeder Software Gedanken machen.  
Unterm Strich also: Die Kombination dieser jetzt vorhandenen Technologien in nie da gewesenen Form in Verbindung mit allgemein akzeptierten Regelungen zur Kommunikation – ist das Internet der Dinge.