Übersicht über das Internet der Dinge

Das Internet der Dinge (IdD) ist ein sich ausdehnender Bereich von Technologien und Anwendungsfällen, der keine klare, eindeutige Definition besitzt. Ein tragfähiger Ansatz sieht das IdD als die Nutzung von mit einem Netzwerk verbundenen Geräten, die in die physische Umgebung eingebettet sind, zur Verbesserung vorhandener Prozesse oder Erschließung neuer, bisher nicht möglicher Szenarien.

Diese Geräte oder Dinge sind mit dem Netzwerk verbunden, damit Informationen, die sie über Sensoren aus der Umgebung erfassen, zur Verfügung gestellt werden oder andere Systeme über Bedienungselemente weltweit agieren können. Dies können verbundene Versionen von alltäglichen Gegenständen sein, mit denen Sie bereits vertraut sind, oder neue und zweckgebundene Geräte für Funktionen, die bisher noch nicht umgesetzt wurden. Dies können aber auch Geräte sein, die Sie persönlich besitzen, immer dabei oder im Haus haben. Sie könnten auch in Werkseinrichtungen eingebettet oder ein Teil der Struktur der Stadt sein, in der Sie leben. Jedes von ihnen ist in der Lage, wertvolle Informationen aus der realen Welt in digitale Daten umzuwandeln, die eine erhöhte Transparenz darüber bieten, wie Ihre Nutzer mit Ihren Produkten, Diensten oder Anwendungen interagieren.

Die Anwendungsfälle und Möglichkeiten in den verschiedenen Branchen sind vielfältig und in vielerlei Hinsicht steht das Internet der Dinge noch ganz am Anfang. Aus diesen Szenarien ergibt sich eine Reihe von gemeinsamen Herausforderungen und Mustern. IdD-Projekte weisen zusätzliche Dimensionen auf, die eine höhere Komplexität im Vergleich zu anderen Cloud-zentrierten Technologieanwendungen mit sich bringen. Beispiele hierfür sind:

  • Verschiedene Hardware
  • Verschiedene Betriebssysteme und Software auf den Geräten
  • Verschiedene Netzwerk-Gateway-Anforderungen

In dieser Anleitung erfahren Sie, welche Elemente Sie mit der Google Cloud Platform kombinieren können, um eine leistungsfähige, einfach zu wartende und durchgängige IdD-Lösung auf der Cloud Platform zu entwickeln.

Übersicht über die übergeordneten Komponenten

Hier unterteilen wir das System in drei grundlegende Komponenten: das Gerät, das Gateway und die Cloud.

Drei Komponenten

Ein Gerät umfasst die Hardware und Software, die direkt weltweit interagieren. Geräte sind mit einem Netzwerk verbunden, damit sie miteinander oder mit zentralen Anwendungen kommunizieren können. Geräte können direkt oder indirekt mit dem Internet verbunden sein.

Ein Gateway ermöglicht es Geräten, die nicht direkt mit dem Internet verbunden sind, die Cloud-Dienste zu erreichen. Der Begriff Gateway hat zwar eine bestimmte Funktion im Kontext von Netzwerken, er wird aber auch zur Beschreibung einer Klasse von Geräten verwendet, die Daten für eine Gruppe oder ein Cluster von Geräten verarbeiten. Die Daten von jedem Gerät werden an die Cloud Platform gesendet, wo sie verarbeitet und mit Daten von anderen Geräten und potenziell mit anderen Daten hinsichtlich geschäftlicher Transaktionen kombiniert werden.

Arten von Informationen

Jedes Gerät kann verschiedene Arten von Informationen zur Verfügung stellen oder nutzen. Jede Form von Informationen kann am besten von einem eigenen Back-End-System verarbeitet werden und jedes System sollte speziell auf die entsprechende Datenrate, Datenmenge und bevorzugte API ausgerichtet sein. In diesem Abschnitt werden allgemeine Kategorien von Informationen beschrieben, die in IdD-Szenarien zu finden sind.

Gerätemetadaten

Metadaten enthalten Informationen über ein Gerät. Die meisten Metadaten sind unveränderlich oder ändern sich nur selten. Hier sind einige Beispiele für Metadaten-Felder:

  • Kennzeichnung (ID): Eine ID, die ein Gerät eindeutig kennzeichnet. Die Geräte-ID sollte sich im gesamten Lebenszyklus eines bereitgestellten Geräts niemals ändern.
  • Klasse oder Typ
  • Modell
  • Überarbeitung
  • Herstellungsdatum
  • Seriennummer der Hardware

Statusinformationen

Statusinformationen beschreiben den aktuellen Zustand des Geräts, nicht den der Umgebung. Auf diese Informationen kann Lese-/Schreibzugriff bestehen. Sie werden aktualisiert, aber nicht regelmäßig.

Telemetrie

Daten, die von dem Gerät erfasst werden, bezeichnet man als Telemetrie. Dies sind die "Augen und Ohren"-Daten, die IdD-Geräte Anwendungen zur Verfügung stellen. Telemetrie besteht aus schreibgeschützten Daten über die Umgebung, die in der Regel durch Sensoren erfasst werden.

Jede Telemetriequelle hat einen eigenen Kanal. Telemetriedaten können als eine zustandsorientierte Variable im Gerät oder in der Cloud beibehalten werden.

Auch wenn jedes Gerät vielleicht nur einen einzigen Datenpunkt pro Minute sendet, müssen Sie schnell Big Data-Strategien und -Muster anwenden, wenn Sie diese Daten mit einer großen Anzahl von Geräten multiplizieren.

Befehle

Befehle sind Aktionen, die von einem Gerät ausgeführt werden. Befehle haben oft Merkmale, die die verfügbaren Auswahlmöglichkeiten in Ihrer Implementierung begrenzen. Dies können z. B. folgende Merkmale sein:

  • Befehle können nicht einfach als Statusdaten dargestellt werden.

  • Befehle sind oft nicht idempotent, das heißt, jede doppelte Meldung hat in der Regel ein anderes Ergebnis zur Folge. Wie bei Nachrichtensystemen legt die Implementierung einer Befehlsfunktion die Übermittlungssemantik fest, z. B. "mindestens einmal" oder "genau einmal". Der Befehlsmechanismus kann einen Rückgabewert umfassen oder davon abhängen, ob die Bestätigung über eine separate Rückgabemeldung oder durch die Reflexion der erwarteten Änderung an den Statusdaten erfolgt.

  • Befehle können eine begrenzte zeitliche Relevanz haben, deshalb sollten sie eine Gültigkeitsdauer (TTL) oder einen anderen Ablaufwert enthalten.

Hier einige Beispiele für Befehle:

  • Um 360 Grad nach rechts drehen.
  • Selbstreinigungszyklus ausführen.
  • Die Rate um zehn Prozent erhöhen.

Betriebsinformationen

Betriebsinformationen sind Daten, die vor allem für den Betrieb des Geräts relevant sind statt für die Unternehmensanwendung. Dies kann z. B. die CPU-Betriebstemperatur und den Akkustatus umfassen. Diese Art von Daten hat ggf. keinen langfristigen Analysewert, ist aber dafür kurzfristig von Bedeutung. Mit diesen Daten kann der Betriebsstatus beibehalten werden, z. B. durch die Reaktion auf Fehler und die Korrektur von Leistungsverschlechterungen von Software nach Updates.

Betriebsinformationen können als Telemetrie- oder Statusdaten übermittelt werden.

Geräte

Es ist nicht immer ganz eindeutig, was ein Gerät ausmacht. Viele physische Dinge bestehen aus Modulen, und daher kann es schwierig zu bestimmen sein, ob die gesamte Maschine das Gerät ist oder jedes Modul ein eigenes Gerät darstellt. Auf diese Frage gibt es keine einzig richtige Antwort. Bei der Entwicklung Ihres IdD-Projekts müssen Sie die verschiedenen Abstraktionsebenen in Ihrem Design berücksichtigen und Entscheidungen darüber treffen, wie Sie physische Dinge und ihre Beziehungen zueinander darstellen. Die spezifischen Anforderungen Ihrer Anwendung helfen Ihnen, zu verstehen, ob etwas, das Informationen erzeugt, als Gerät betrachtet werden sollte und daher seine eigene ID verdient oder ob es einfach ein Kanal oder ein Statusdetail eines anderen Geräts ist.

Betrachten wir uns als Beispiel ein Projekt, das als Ziel die Überwachung der Temperatur in den Zimmern eines Hotels hat. In jedem Zimmer gibt es drei Sensoren, jeweils einen am Boden bei der Tür, einen an der Decke und einen neben dem Bett. Sie können dieses Setup modellieren, indem Sie jeden Sensor als ein Gerät darstellen:

{deviceID: "dh28dslkja", "location": "floor", "room": 128, "temp": 22 }
{deviceID: "8d3kiuhs8a", "location": "ceiling", "room": 128, "temp": 24 }
{deviceID: "kd8s8hh3o", "location": "bedside", "room": 128, "temp": 23 }

Sie können aber auch das gesamte Zimmer als ein Gerät modellieren. Normalerweise würden Sie ein Zimmer nicht als Gerät betrachten. Im IdD legen Sie jedoch über die Geräteabstraktion fest, was Sie als eine Einheit verwalten und zur Sammlung von Daten verwenden. Daher ist ein Gerät nicht immer notwendigerweise ein "Ding", das Sie in der Hand halten können. Wenn Sie das Ganze auf diese Weise betrachten, können Sie das Hotelzimmer als Gerät mit drei Sensoren modellieren:

{deviceID: "dh28dslkja", "room": 128, "temp_floor": 22, "temp_ceiling": 24, "temp_bedside": 23, "average_temp":  23 }

Je nach Zielsetzung kann eine dieser zwei Datendarstellungen richtiger sein als die andere. Beachten Sie das Feld für die durchschnittliche Temperatur im zweiten Beispiel. Dies könnte genau das sein, was das Hotel wissen möchte. Sind Metadaten von jedem Sensor einzeln am nützlichsten oder sind die einzelnen Metadaten sinnvoller, wenn sie auf das Zimmer als Ganzes angewendet werden? Was, wenn das Zimmer eine Suite wäre und die drei Sensoren sich im Bad, in der Lounge und im Schlafzimmer befänden? Diese Art von Fragen müssen Sie sich stellen, wenn Sie entscheiden, wie Sie die Daten modellieren möchten. Das Domainmodell der verbundenen Anwendung bestimmt die genaue Grenze dessen, was das Gerät ausmacht.

Gerätehardware

Allgemeine Überlegungen bei der Auswahl der Hardware

Berücksichtigen Sie bei der Auswahl der Hardware die folgenden Faktoren, die davon beeinflusst werden, wie die Hardware bereitgestellt wird:

  • Kosten: Überlegen Sie vor dem Hintergrund des Werts der zur Verfügung gestellten Daten, welche Kosten für jedes Gerät tragbar sind.
  • E/A-Rollen: Das Gerät kann primär ein Sensor, ein Bedienungselement oder eine Kombination aus beiden Rollen sein.
  • Stromversorgung: Das Gerät kann Zugriff auf Strom haben oder der Strom kann knapp sein. Überlegen Sie, ob das Gerät mit einem Akku oder mit Solarenergie betrieben werden soll.
  • Netzwerkumgebung. Überlegen Sie, ob das Gerät direkt an das Internet angeschlossen und über TCP/IP weitergeleitet werden soll. Einige Verbindungsarten, z. B. Mobilfunk, können bei hohem Traffic teuer sein. Berücksichtigen Sie die Zuverlässigkeit des Netzwerks und die Auswirkungen dieser Zuverlässigkeit auf Latenz und Durchsatz. Wenn das Gerät drahtlos ist, überlegen Sie, welchen Bereich die Übertragungsleistung abdeckt, und denken Sie an erhöhte Stromkosten.

Funktionseingaben und -ausgaben

Die zur Interaktion mit der physischen Welt verwendeten Geräte enthalten Komponenten oder sind mit Peripheriegeräten verbunden, über die eine Sensoreingabe oder Bedienelementausgabe möglich sind. Die spezifische Hardware, die Sie für diese Hardware-E/A-Komponenten auswählen, sollte die Funktionsanforderungen erfüllen. Beispielsweise bestimmt die Empfindlichkeit oder Komplexität der Bewegung, die Sie erkennen müssen, welche Art Beschleunigungsmesser Sie auswählen oder ob Sie stattdessen ein Gyroskop benötigen. Wenn Sie Gase erkennen müssen, kommt es auf die Art von Gasen an, die der Sensor ordnungsgemäß erkennen muss. Wenn Sie ein Gerät zum Erzeugen einer Ausgabe verwenden, müssen Sie die Anforderungen berücksichtigen, z. B. wie laut ein Summer sein soll, wie schnell ein Motor sich drehen muss oder wie viele Ampere ein Relais übertragen muss.

Zusätzlich zu den durch die Umgebungsleistung bestimmten Anforderungen kann die Auswahl dieser E/A-Komponenten oder -Peripheriegeräte auch mit der Art der Informationen zusammenhängen, die ihnen zugeordnet sind. Beispielsweise kann ein Schrittmotor in eine bestimmte Richtung eingestellt sein, die in den Gerätestatusdaten dargestellt wird, während ein Mikrofon ständig Frequenzdaten abtastet, die am besten als Telemetrie übertragen werden. Diese Komponenten sind mit den logischen Systemen des Geräts über eine Hardwareschnittstelle verbunden.

Geräteplattformen

Es gibt eine unglaubliche Vielfalt von spezifischer Hardware, die Ihnen für den Einbau in IdD-Anwendungen zur Verfügung steht. Diese Vielfalt beginnt mit den Optionen für Hardwareplattformen. Typische Beispiele für Plattformen sind Einplatinencomputer wie Beaglebone und Raspberry Pi sowie Mikrocontroller-Plattformen wie die Arduino-Reihe, Platinen von Particle und Adafruit Feather.

Jede dieser Plattformen ermöglicht Ihnen die Verbindung mehrerer Arten von Sensor- und Bedienelementmodulen über eine Hardwareschnittstelle.

Diese Plattformen verfügen über eine Schnittstelle mit den Modulen über einen Mehrebenen-Ansatz ähnlich wie bei Universalcomputern. Wenn Sie an die normale alltägliche Computermaus denken, können Sie sich die Ebenen als Peripheriegerät, Schnittstelle, Treiber und Anwendung vorstellen. In einem typischen Betriebssystem wie Linux oder Windows wird die Hardwareeingabe von einem Treiber interpretiert, der auf Betriebssystemdiensten beruht und Teil des Kernels ist. Zur Vereinfachung wird im folgenden Diagramm das Betriebssystem ausgelassen.

Drei Komponenten

Hardwareschnittstellen

Bei den meisten Hardwareschnittstellen handelt es sich um serielle Schnittstellen. Serielle Schnittstellen verwenden in der Regel mehrere Drähte zum Steuern des Flusses und des Timings binärer Daten entlang des primären Datendrahts. Jede Art Hardwareschnittstelle definiert eine Kommunikationsmethode zwischen einem Peripheriegerät und dem zentralen Prozessor.

IdD-Hardwareplattformen nutzen eine Reihe von üblichen Schnittstellen. Sensor- und Bedienelementmodule können eine oder mehrere dieser Schnittstellen unterstützen:

  • USB: Universal Serial Bus wird häufig für ein breites Spektrum von Plug-and-Play-fähigen Geräten verwendet.
  • GPIO: Allzweckeingabe-/-ausgabe-Pins (General-Purpose Input/Output) sind direkt mit dem Prozessor verbunden. Wie ihr Name schon besagt, werden diese Pins vom Hersteller angeboten, um kundenspezifische Nutzungsszenarien zu ermöglichen, für die der Hersteller sie nicht entworfen hat. GPIO-Pins können darauf ausgelegt sein, digitale oder analoge Signale zu übertragen, und digitale Pins haben nur zwei Status: HIGH (HOCH) oder LOW (NIEDRIG).

    Digitale GPIO kann die Pulsweitenmodulation (PWM) unterstützen. Mit PWM können Sie eine Stromquelle schnell ein- und ausschalten, wobei die Phase "Ein" ein Takt von einer bestimmten Dauer oder Weite ist. Der Effekt im Gerät kann eine niedrigere oder höhere Stromstufe sein. Beispielsweise können Sie mit PWM die Helligkeit einer LED ändern. Je weiter die "Ein"-Takte, desto heller strahlt die LED.

    Analoge Pins können Zugriff auf einen integrierten Analog-Digital-Wandler-Schaltkreis (ADC, Analog-to-Digital Conversion) haben. Ein ADC tastet regelmäßig eine fortlaufende analoge Wellenform, z. B. ein analoges Audiosignal, ab und weist jeder Abtastung einen digitalen Wert zwischen Null und Eins in Bezug auf die Systemspannung zu.

    Wenn Sie den Wert eines digitalen E/A-Pins im Code lesen, muss der Wert entweder HIGH (HOCH) oder LOW (NIEDRIG) sein, wobei ein analoger Eingabepin zu jedem Zeitpunkt einen beliebigen Wert im Bereich haben kann. Der Bereich hängt von der Auflösung des ADC ab. Ein 8-Bit-ADC kann beispielsweise digitale Werte von 0 bis 255 erzeugen, während ein 10-Bit-ADC einen größeren Wertebereich von 0 bis 1.024 umfasst. Mehr Werte bedeutet eine höhere Auflösung und daher eine naturgetreuere digitale Darstellung eines gegebenen analogen Signals.

    Die ADC-Abtastrate bestimmt den Frequenzbereich, den ein ADC wiedergeben kann. Eine höhere Abtastrate führt zu einer höheren maximalen Frequenz in den digitalen Daten. Ein bei 44.100 Hz abgetastetes Audiosignal erzeugt beispielsweise eine digitale Audiodatei mit einer Frequenzantwort von bis zu 22.050 Hz, wobei die typische Filterung und weitere Verarbeitung ignoriert werden. Die Bitgenauigkeit gibt die Auflösung der Amplitude des Signals vor.

  • I2C: Der serielle "Inter-Integrated Circuit"-Bus verwendet ein Protokoll, mit dem eine separate Adresse auf dem Bus für mehrere Module zugewiesen werden kann. I2C wird manchmal "I zwei C", "I-I-C" oder "I hoch zwei C" ausgesprochen.

  • SPI: "Serial Peripheral Interface Bus"-Geräte verwenden eine Master-Slave-Architektur mit einem einzigen Master und Vollduplex-Kommunikation. SPI gibt vier logische Signale an:

    • SCLK: Serial Clock, die Ausgabe vom Master
    • MOSI: Master Output Slave Input, die Ausgabe vom Master
    • MISO: Master Input Slave Output, die Ausgabe von einem Slave
    • SS: Slave Select, eine aktive niedrige Signalausgabe vom Master
  • UART: "Universal Asynchronous Receiver/Transmitter"-Geräte übersetzen Daten zwischen seriellen und parallelen Formen an dem Punkt, an dem die Daten vom Prozessor verarbeitet werden. UART ist beim zur Verfügung stellen von seriellen Daten auf parallele Art im Arbeitsspeicher erforderlich.

Hardwareabstraktion in Software

Ein Betriebssystem abstrahiert allgemeine Rechenressourcen wie den Arbeitsspeicher und die Datei-E/A. Das Betriebssystem bietet außerdem Unterstützung auf sehr niedriger Ebene für verschiedene Hardwareschnittstellen. Im Allgemeinen sind diese Abstraktionen nicht einfach direkt zu verwenden und oft bietet das Betriebssystem keine Abstraktionen für die breite Palette von Sensor- und Bedienelementmodulen, die Ihnen beim Erstellen von IdD-Lösungen begegnen können.

Sie können Bibliotheken nutzen, die Hardwareschnittstellen plattformübergreifend abstrahieren. Diese Bibliotheken ermöglichen Ihnen die direktere Arbeit mit einem Gerät wie einem Bewegungsmelder. Wenn Sie eine Bibliothek verwenden, können Sie sich auf das Erfassen der Informationen konzentrieren, die das Modul für Ihre Anwendung zur Verfügung stellt, anstatt sich um die Details auf niedriger Ebene beim direkten Arbeiten mit der Hardware zu kümmern.

Einige Bibliotheken bieten Abstraktionen, die Peripheriegeräte in der Form abgespeckter Treiber über der Hardwareschnittstelle darstellen. Beispiele für diese Bibliotheken sind das JavaScript-Framework Johnny-Five, die Bibliothek MRAA, die mehrere Sprachen unterstützt, die Go-Bibliothek EMBD, Arduino-wiring und Firmata.

Rechenumgebung

Die Rechenumgebung Ihrer Plattform führt die Software aus. Basierend auf den Einschränkungen der Hardware in den Bereichen Leistung und Kosten variieren die Fähigkeiten des Prozessors. Einige Rechenumgebungen bestehen aus einem vollständigen System auf einem Chip (SOC) und können ein eingebettetes Linux-Betriebssystem unterstützen. Mikrocontroller-basierte Geräte haben u. U. mehr Einschränkungen und die Anwendung könnte direkt auf dem Prozessor ohne die Unterstützung eines Betriebssystems ausgeführt werden.

Diese Rechenumgebungen sind die Brücke zwischen der Logik Ihres Anwendungscodes und der physischen Hardware der Plattform. Die von ihnen ausgeführte Software kann während des Systemstarts komplett aus dem schreibgeschützten Speicher (ROM, Read-Only Memory) geladen werden. Alternativ kann sich die Umgebung aus einem gestaffelten Startvorgang ergeben. Bei diesem Prozess wird ein kleines Programm (Bootloader) aus dem ROM geladen. Dieses Programm lädt dann ein vollständiges Betriebssystem aus dem integrierten Flash-Speicher oder von einer angeschlossenen SD-Karte.

Verarbeitung im Gerät

Nach Erfassung der Daten durch einen Sensor kann das Gerät Datenverarbeitungsfunktionen bereitstellen, bevor die Daten an die Cloud gesendet werden. Die Daten können von mehreren Geräten verarbeitet werden, bevor sie die Cloud erreichen, und jedes dieser Geräte kann ein bestimmtes Ausmaß an Verarbeitung durchführen.

Die Verarbeitung kann z. B. Folgendes umfassen:

  • Daten in ein anderes Format konvertieren
  • Daten sicher verpacken und in einem praktischen Stapel zusammenfassen
  • Daten validieren, damit sie eine Reihe von Regeln erfüllen
  • Daten in einer bevorzugten Reihenfolge sortieren
  • Daten optimieren, damit der Kernwert mit zusätzlichen zugehörigen Informationen angereichert wird
  • Daten zusammenfassen, damit ihr Umfang geringer ist und unnötige oder ungewünschte Details vermieden werden
  • Daten zu zusammengefassten Werten kombinieren

Die Analyse im Gerät kann mehrere Verarbeitungsaufgaben kombinieren und so eine sofortige, synthetisierte Interpretation bereitstellen, durch die mehr Informationen mit geringerem Datenvolumen übertragen werden können.

Drei Komponenten

Geräteverwaltung

Die Geräteverwaltung ähnelt einer IT-Ressourcenverwaltung: am wichtigsten sind hierbei die Bereitstellung, der Betrieb und die Aktualisierung der Geräte. Dies gilt für alle Geräte einschließlich Gateways.

Bereitstellung

Bereitstellung ist der Prozess der Einrichtung eines neuen Geräts und die Vorbereitung auf dessen Verwendung. Dazu gehören:

  • Bootstrapping mit grundlegenden Geräteinformationen: Ein Gerät benötigt mindestens eine ID sowie grundlegende Metadaten.
  • Für eine sichere Kommunikation sind Anmeldedaten und Authentifizierung erforderlich. Für das Gerät kann beispielsweise ein Token oder ein Schlüssel bereitgestellt werden, das bzw. der für die fortlaufende Kommunikation verwendet werden kann. Solche Anmeldedaten haben möglicherweise ein Ablaufdatum.
  • Das Gerät autorisieren: Die Autorisierung legt die Berechtigungen des Geräts fest, mit den Anwendungen oder anderen Diensten zu interagieren. Sie stützt sich dabei auf die oben genannten Anmeldedaten. Die Autorisierung ist die spezifische Berechtigung der Geräte-ID und der Anmeldedaten bei einer bestimmten Ressource, die das Gerät verwenden kann.
  • Die Netzwerkverbindung einrichten: Ein Gerät benötigt eine Netzwerkverbindung, damit es mit anderen Diensten kommunizieren und Daten übertragen kann.
  • Das Gerät registrieren: Anwendungen benötigen Informationen über verfügbare Geräte. Eine Geräte-Registry verfolgt, welche Geräte verwendet werden, verwaltet die Cloud-Seite der Authentifizierung und ordnet Geräte bestimmten Daten und Ressourcen zu (z. B. Telemetrie-Themen und Statusspeicher).

Vorgänge

Der tägliche Betrieb eines IdD-Systems macht erforderlich, dass Sie die richtigen Informationen darüber erfassen, was geschieht. Ähnlich wie bei jeder IT-Hardwarebereitstellung können Ihnen die Protokollierung verschiedener Ereignisse und die Überwachung der wichtigsten Statusmesswerte über Dashboards und Warnmechanismen den problemlosen Betrieb erleichtern. Die Cloud Platform bietet Funktionen, die Sie beim täglichen Betrieb zu Ihrem Vorteil nutzen können:

  • Stackdriver Logging erfasst und speichert Logs. Wichtige Ereignisse im Geräte-Lebenszyklus werden zur Prüfung in Logs gespeichert. Eine Teilmenge von Telemetrieereignissen kann zur Analyse und Berichterstellung an Stackdriver Logging übertragen werden. Mit Stackdriver Logging können Sie viel Zeit und Aufwand sparen, verglichen mit dem Aufbau einer benutzerdefinierten Logging-Lösung.

Over-the-Air-Aktualisierungen

Der schiere Umfang einer typischen IdD-Bereitstellung bedeutet, dass die Aktualisierung einzelner lokaler Geräte nicht sehr praktisch ist. Da die Geräte ohnehin mit einer Netzwerkverbindung ausgestattet sind, kann das Aktualisieren der Geräte durch das Übertragen von Updates über das Netzwerk mithilfe von Push vereinfacht werden. Bei Mobiltelefonen spricht man in diesem Fall von einem OTA-Update (Over the Air) und dasselbe Konzept gilt beim IdD. Folgende Optionen sind z. B. möglich:

  • Android Things. Wenn Sie Android-Things-basierte Hardware verwenden, ist die OTA-Aktualisierung integriert.
  • Ihr eigenes Debian Package Repository (APT) in der Cloud Platform einrichten.
  • Balena.io. Basierend auf dem Yocto Project können Sie mit balena.io vertraute Tools wie Docker und Git verwenden, um Container-Image-Updates hochzuladen.

Gateway

Ein Gateway verwaltet Traffic zwischen Netzwerken, die verschiedene Protokolle verwenden. Ein Gateway ist für die Protokollübersetzung und andere Interoperabilitätsaufgaben zuständig. Ein IdD-Gateway-Gerät wird manchmal eingesetzt, um die Verbindung und Übersetzung zwischen Geräten und der Cloud zur Verfügung zu stellen. Da manche Geräte nicht den für eine Internetverbindung erforderlichen Netzwerkstapel enthalten, agiert ein Gatewaygerät als Proxy, der Daten von Geräten empfängt und sie zur Übertragung über TCP/IP verpackt.

Ein dediziertes Gatewaygerät kann eine Voraussetzung sein, wenn auf die Geräte in der Bereitstellung Folgendes zutrifft:

  • Sie haben keine routingfähige Verbindung zum Internet, z. B. Bluetooth-Geräte.
  • Sie haben keine für Transport Layer Security (TLS) erforderlichen Verarbeitungsfunktionen und können somit nicht mit Google APIs kommunizieren.
  • Sie haben keine Stromversorgung zur Durchführung der erforderlichen Netzwerkübertragung.

Ein Gatewaygerät kann selbst dann verwendet werden, wenn die Geräte auch ohne Gateway kommunizieren können. In diesem Szenario bietet das Gateway Mehrwert, da es eine geräteübergreifende Verarbeitung von Daten bereitstellt, bevor diese an die Cloud gesendet werden. In diesem Fall erfolgen direkte Eingaben durch andere Geräte, nicht durch einzelne Sensoren. Die folgenden Aufgaben würden dann an ein Gateway delegiert:

  • Daten zur Maximierung der Datenmenge verdichten, die über einen einzelnen Link an die Cloud gesendet werden kann
  • Daten in einer lokalen Datenbank zur Weiterleitung bei einer zeitweiligen Verbindung mit der Cloud speichern
  • Eine Echtzeituhr mit einer Notstromversorgung mit Batterien bereitstellen: Damit wird ein konsistenter Zeitstempel für Geräte sichergestellt, die Zeitstempel nicht gut verwalten oder synchronisieren können.
  • IPV6-zu-IPV4-Übersetzung durchführen
  • Andere Flatfile-basierte Daten aus dem lokalen Netzwerk aufnehmen und hochladen, die relevant und mit den IdD-Daten verbunden sind
  • Als lokaler Cache für Firmware-Updates agieren

Cloud Platform

Wenn Ihr IdD-Projekt betriebsbereit ist, erzeugen viele Geräte große Datenmengen. Sie benötigen eine effiziente, skalierbare und erschwingliche Methode, diese Geräte zu verwalten und all diese Informationen zu verarbeiten und für sich zu nutzen. In den Bereichen Speicherung, Verarbeitung und Analyse von Daten, insbesondere von Big Data, kommt man an der Cloud kaum vorbei.

Das folgende Diagramm zeigt die verschiedenen Phasen der IdD-Datenverwaltung in der Cloud Platform:

ML-Modelle in der Cloud erstellen und trainieren

Geräteverwaltung

IoT Core-Gerätemanager

Google Cloud IoT Core bietet einen vollständig verwalteten Dienst zum Verwalten von Geräten. Er umfasst die Registrierung, Authentifizierung und Autorisierung in der Cloud Platform-Ressourcenhierarchie sowie die in der Cloud gespeicherten Gerätemetadaten und die Möglichkeit, Gerätekonfigurationen vom Dienst an Geräte zu senden.

Erfassung

Datenaufnahme ist der Vorgang, bei dem Informationen von Geräten in die Cloud Platform-Dienste importiert werden. Die Cloud Platform bietet verschiedene Datenaufnahmedienste, je nachdem, ob es sich um Telemetriedaten oder Betriebsdaten über die Geräte und die IdD-Infrastruktur handelt.

IoT Core MQTT

Google Cloud IoT Core bietet einen sicheren MQTT-Broker (Message Queue Telemetry Transport) für von IoT Core verwaltete Geräte. Dieser effiziente binäre Industriestandard ermöglicht eingeschränkten Geräten, Echtzeittelemetrie zu senden und Nachrichten, die von der Cloud an das Gerät gesendet werden, sofort zu empfangen. Hierzu wird die Konfigurationsverwaltung genutzt. Der IdD Core MQTT-Broker stellt eine direkte Verbindung mit Cloud Pub/Sub her.

Cloud Pub/Sub

Google Cloud Pub/Sub bietet einen weltweiten, dauerhaften Nachrichtenaufnahmedienst. Durch Erstellung von Themen für Streams oder Kanäle können Sie es verschiedenen Komponenten Ihrer Anwendung ermöglichen, bestimmte Datenstreams zu abonnieren, ohne auf jedem Gerät abonnentenspezifische Kanäle zu erstellen. Cloud Pub/Sub verbindet sich außerdem nativ mit anderen Cloud Platform-Diensten, sodass Sie einfacher Datenaufnahme, Daten-Pipelines und Speichersysteme miteinander verbinden können.

Cloud Pub/Sub kann wie ein Stoßdämpfer und Übertragungsratenausgleich fungieren, sowohl für eingehende Datenströme als auch für Änderungen in der Anwendungsarchitektur. Viele Geräte haben nur begrenzte Möglichkeiten, Telemetriedaten zu speichern und ein erneutes Senden von Daten zu versuchen. Cloud Pub/Sub wird skaliert, um Datenspitzen, die bei der Reaktion einer großen Anzahl von Geräten auf Ereignisse in der realen Welt auftreten, zu verarbeiten, und puffert diese Spitzen, um sie von den Anwendungen zu isolieren, mit denen die Daten überwacht werden.

Stackdriver Monitoring und Stackdriver Logging

Wie in den vorangegangenen Abschnitten erwähnt, können Cloud Monitoring und Stackdriver Logging operative Vorteile bieten. Betriebsinformationen werden von diesen Diensten über ihre verfügbaren Schnittstellen aufgenommen.

Pipeline-Verarbeitungsaufgaben

Pipelines verwalten Daten, nachdem diese auf der Cloud Platform eingehen, vergleichbar mit Bauteilen auf einem Fließband. Hierzu gehören unter anderem folgende Aufgaben:

  • Daten umwandeln: Sie können die Daten in ein anderes Format umwandeln, z. B. eine erfasste Gerätesignalspannung in eine kalibrierte Temperaturmaßeinheit.
  • Daten aggregieren und Berechnungen durchführen: Durch die Kombination von Daten können Sie Prüfungen hinzufügen, wie zum Beispiel die Ermittlung des Durchschnittswertes von Daten von mehreren Geräten, um die Nutzung eines einzelnen, unberechtigten Geräts zu verhindern. Dadurch können Sie sicherstellen, dass Sie verwertbare Daten haben, wenn ein einzelnes Gerät offline geht. Durch die Ergänzung Ihrer Pipeline mit einem Berechnungsvorgang können Sie Streaminganalysen an den Daten durchführen, während sich diese Daten noch in der Verarbeitungs-Pipeline befinden.
  • Daten anreichern: Sie können die von Geräten generierten Daten mit anderen Metadaten über das Gerät oder mit anderen Datasets wie Wetter- oder Verkehrsdaten zur Nutzung in einer darauffolgenden Analyse kombinieren.
  • Daten verschieben: Sie können die verarbeiteten Daten an einem oder mehreren endgültigen Speicherorten speichern.

Cloud Dataflow

Google Cloud Dataflow bietet das offene Programmiermodell Apache Beam als verwalteten Dienst für die Verarbeitung von Daten auf mehrere Arten, z. B. Batch-Vorgänge, ETL-Muster (Extract, Transform, Load) und kontinuierliche Streamingberechnung. Cloud Dataflow kann besonders nützlich für die Verwaltung der Verarbeitungs-Pipelines mit hohem Datenvolumen sein, die für IdD-Szenarien erforderlich sind. Cloud Dataflow ist außerdem auf eine nahtlose Integration mit den anderen Cloud Platform-Diensten ausgelegt, die Sie für Ihre Pipeline auswählen.

Datenspeicherung

Daten aus der realen Welt haben verschiedene Formen und Größen. Die Cloud Platform bietet eine Reihe von Speicherlösungen, von unstrukturierten Daten-Blobs wie Bildern oder Videostreams bis hin zu strukturierten Entitätsspeichern von Geräten oder Transaktionen und hochleistungsfähigen Schlüssel-Wert-Paar-Datenbanken für Ereignis- und Telemetriedaten.

Status in IdD Core speichern

Einige Gerätestatus sind möglicherweise direkt mit der Hardware verbunden. Wenn Sie beispielsweise den Status eines digitalen GPIO-Pins prüfen, wird dieser basierend auf der physischen Messung der Spannung an dem Pin als HIGH (HOCH) oder LOW (NIEDRIG) gelesen.

Andere Gerätestatus können auf Anwendungsebene vorhanden sein. recording-audio kann beispielsweise die Statusbedingung true oder false, haben, je nachdem, ob die Anwendung gerade das Mikrofon abtastet oder auf das Laufwerk schreibt. Auf der Hardwareebene kann das Mikrofon selbst eingeschaltet sein.

Aus Sicht der Software liegt die Quelle der Wahrheit in dem Anwendungscode, der auf dem Gerät ausgeführt wird. Es ist oft nützlich oder sogar erforderlich, dass andere Software den letzten bekannten Status des Geräts liest. Da sich IdD-Geräte einige Zeit in einem Stromsparmodus und möglicherweise auf besonders unzuverlässigen Netzwerken befinden können, ist es oft hilfreich, den Status eines Geräts in der Cloud zu speichern. Auf diese Weise können Statusdaten verfügbar gemacht werden, wenn die Geräte selbst vorübergehend offline sind.

Der letzte bekannte Gerätezustand kann gemeldet und in IdD Core gespeichert werden, damit Anwendungen ihn abrufen können. Statusinformationen, die über MQTT oder HTTP gesendet werden, bleiben in IdD Core gespeichert und sind in der Cloud verfügbar, auch wenn das Gerät getrennt oder gerade offline ist.

Anwendungsdaten in Datastore und Firebase speichern

Wenn Status- oder Telemetriedaten für mobile Apps oder Webanwendungen zur Verfügung gestellt werden müssen, können Sie verarbeitete oder unverarbeitete Daten in strukturierten, aber schemalosen Datenbanken wie Cloud Datastore und Firebase Realtime Database speichern, in denen Sie IdD-Gerätedaten als Objekte auf Domain- oder Anwendungsebene darstellen können.

Regelverarbeitung und Streaminganalysen in Cloud Functions und Cloud Dataflow

IdD-Ereignisse und -Daten können mit einer hohen Geschwindigkeit an die Cloud gesendet werden und müssen schnell verarbeitet werden. Bei vielen IdD-Anwendungen fällt die Entscheidung, ein Gerät in die physische Umgebung einzubinden, um einen schnelleren Zugriff auf die Daten zu erhalten. Beispielsweise können Frischwaren, die während des Versands hohen Temperaturen ausgesetzt sind, zur sofortigen Veräußerung markiert werden.

Es ist äußerst wichtig, diese Informationen schnell zu verarbeiten, um darauf auch schnell reagieren zu können. Mit Google Cloud Functions können Sie eine benutzerdefinierte Logik schreiben, die auf jedes Ereignis angewendet werden kann, sobald es eintritt. Dadurch können Warnmeldungen ausgelöst, ungültige Daten gefiltert oder andere APIs aufgerufen werden. Cloud Functions kann für jedes veröffentlichte Ereignis separat ausgeführt werden.

Wenn Sie Daten und Ereignisse mit anspruchsvolleren Analysen einschließlich Zeitfenstertechniken oder dem Zusammenführen von Daten aus mehreren Datenströmen verarbeiten müssen, bietet Cloud Dataflow ein sehr effizientes Analysetool, das auf Streaming- und Batch-Daten angewendet werden kann.

Analyse

Daten zu analysieren, die aus IdD-Quellen stammen, ist oft der ganze Zweck der Instrumentierung der physischen Welt. Nachdem Streaming-Daten bei der Verarbeitung analysiert wurden, beginnen sie, sich anzusammeln. Mit der Zeit bieten diese Daten eine umfangreiche Informationsquelle zum Erkennen von Trends und können mit anderen Daten von Quellen außerhalb Ihrer IdD-Geräte kombiniert werden.

BigQuery und Cloud Datalab

Google BigQuery bietet ein vollständig verwaltetes Data Warehouse mit einer vertrauten SQL-Schnittstelle, in dem Sie Ihre IdD-Daten zusammen mit Ihren anderen Unternehmensanalysen und -Logs speichern können. Durch die Leistungsfähigkeit und geringen Kosten von BigQuery können Sie wertvolle Daten länger aufbewahren, anstatt sie zu löschen, um Speicherplatz zu sparen.

Cloud Datalab ist ein interaktives Tool für die umfangreiche Erkundung, Analyse und Visualisierung von Daten. IdD-Daten können für viele Anwendungsfälle sehr nützlich sein, je nachdem, mit welchen anderen Daten sie kombiniert werden. Mit Cloud Datalab können Sie Ihre Daten mit einer gehosteten Daten-Workbench-Umgebung basierend auf dem Open-Source-Jupyter-Projekt interaktiv erkunden, umwandeln, analysieren und visualisieren.

Maschinelles Lernen

IdD-Daten sind naturgemäß oft mehrdimensional und enthalten viel "Rauschen". Deshalb kann es schwierig sein, mit herkömmlichen Analysetechniken Erkenntnisse zu gewinnen. Doch für diese Feinheiten und diese Komplexität sind neuronale Deep-Learning-Netzwerke oft besonders gut geeignet. TensorFlow ist ein führendes Open-Source-Framework für maschinelles Lernen. Auf der Cloud Platform können Sie TensorFlow über die Cloud Machine Learning Engine in einem verteilten und verwalteten Trainingsdienst anwenden.

Zeitachsen-Dashboards mit Cloud Bigtable

Bestimmte Arten von Daten müssen schnell anhand von Indizes und Dimensionen aufgeteilt werden, damit die wichtigsten Visualisierungen und Benutzeroberflächen aktualisiert werden können. Cloud Bigtable bietet eine Datenbank mit niedriger Latenz und hohem Durchsatz für NoSQL-Daten. Cloud Bigtable ist die ideale Anlaufstelle, um intensiv genutzte Visualisierungen und Abfragen in Bereichen zu fördern, in denen die Fragestellung bereits bekannt ist und Sie große Datenmengen aufnehmen oder bereitstellen müssen.

Im Vergleich zu BigQuery ist Cloud Bigtable besser für Abfragen geeignet, die an Zeilen oder Gruppen aufeinanderfolgender Zeilen durchgeführt werden, da Cloud Bigtable Daten in einem zeilenbasierten Format speichert. Verglichen mit Cloud Bigtable ist BigQuery eine bessere Wahl für Abfragen, die eine Datenaggregierung erforderlich machen.

Archivspeicherung in Cloud Storage Nearline

Weltweit werden ständig Daten gesammelt, die nicht immer strukturiert sind. Cloud Storage bietet eine einzige API sowohl für Objektspeicher zur aktuellen Nutzung als auch für archivierte Daten, die nur selten verwendet werden. Wenn Ihr IdD-Gerät Mediendaten erfasst, kann Cloud Storage praktisch unbegrenzte Mengen dauerhaft und wirtschaftlich speichern.

Fazit

Für das Entwickeln von Lösungen im Internet der Dinge müssen Herausforderungen in vielen Bereichen gelöst werden. Die Cloud Platform stellt Ihnen Gerätemanagement, Infrastruktur und Vernetzung in großem Maßstab sowie eine Reihe von Speicher- und Analyseprodukten zur Verfügung. Damit können Sie die von Ihren Geräten erzeugten Daten optimal nutzen.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...