Um Fallstricke bei der Integration von IoT-Systemen zu vermeiden, müssen bereits bei Beginn des Designs diverse Front- und Backend-Techniken in Betracht gezogen werden. Das Qt-Framework und eine REST-basierte Kommunkiationsschnittstelle lassen die Cloud- und Datenanbindung leicht von der Hand gehen.
Das Qt-Logo.
(Bild: Qt Company)
Die Anwendungen und Neuerungen, die das IoT hervorbringt, sind beeindruckend, und die Technik zur Entwicklung solcher Systeme sowie deren Cloud-Backends sind bereits vorhanden. Aus der Sicht des Embedded-Software-Designs gestaltet sich die Entwicklung solcher Systeme jedoch immer komplexer, und die technischen Anforderungen steigen erheblich. Um Fallstricke bei der Integration zu vermeiden, müssen verschiedene Front- und Backend-Techniken angewendet und bereits bei Beginn des Designs das gesamte System berücksichtigt werden.
Eine völlig neue Welt durch Cloud-Datenanbindung
Wenn Geräte oder Einrichtungen nahtlos zusammenarbeiten, ermöglicht das IoT komplexe Dienste – von denen einige bei der Implementierung noch gar nicht in Betracht gezogen wurden –, indem vergleichsweise preiswerte und energieeffiziente Geräte zum Einsatz kommen. Hinzu kommt, dass sich jederzeit weitere Dienste aufrüsten lassen, ohne dabei die auf dem Gerät laufende Software zu stören. Dies ist insbesondere dann von Vorteil, wenn die verwendeten Technologien dynamische Softwareänderungen erlauben oder flexible externe APIs haben, die Plugin-basierte Designmuster verwenden, um eine einfache Erweiterung von Diensten zu ermöglichen.
Die Qt-Wetterstation – ein Anwendungsbeispiel
Die Qt-Wetterstation ist eine einfache Proof-of-Concept-Implementierung eines IoT-Systems. Sie verfügt über einzelne Wetterstationen, die Embedded-Systeme mit funkbasierten Wettersensoren sind. Diese Stationen sind mit der Qt Cloud verbunden, von wo aus sie überall per Mobilfunk- oder Desktop-Client-Anwendung zugänglich sind.
Architektur eines einfachen Qt-basierten IoT-Systems: die Qt-Wetterstation. Die Code-Wiederverwendung wird maximiert; alle Plattformen nutzen den gleichen Qt GUI Code und die gleichen Qt-Cloud-APIs. Die Client-Anwendungen verwenden den gleichen Code auf allen Plattformen.
(Bild: Qt Company)
Alle Teile der Qt-Wetterstation – das Embedded-System, Cloud-Backend und die Mobilfunk- bzw. Desktop-Cients – wurden ausschließlich mit Qt implementiert. Die Mobile- und Desktop-Clients teilen sich genau die gleiche Codebasis, und die Wetterstation nutzt das Client-seitige UI, genauso wie die UI für das Embedded-System.
Die Embedded-Wetterstation läuft auf einem Raspberry Pi Developer-Board oder auf dem Boundary Device SABRE LITE (Freescale i.MX 6) und nutzt den „Boot to Qt“ Embedded Linux Software-Stack, der sich bereits in Qt Enterprise Embedded befindet. Mit Qt wird die moderne Touch-Bedienschnittstelle nahtlos mit dem Lower-Level-Gerätetreiber-Code integriert, der mit den Funk-Wettersensoren über einen USB-fähigen Funkempfänger kommuniziert. Das System könnte auch ohne lokale Benutzerschnittstelle betrieben werden (Headless-Betrieb). Mit der Qt Cloud API lädt das Embedded-System die Sensordaten in den Enginio-Datenspeicher.
Die Client-Anwendung ist eine reguläre Qt-Anwendung, die nativ auf allen großen Mobil- und Desktop-Plattformen läuft. Mit der Qt Cloud API werden die Wettersensordaten von der Cloud erfasst und über die Qt Quick UI-Technik visualisiert.
Für Multi-Screen-Anwendungen wie diese ist es nicht unbedingt ideal, das gleiche UI-Layout für kleine oder große Bildschirme oder Hoch- und Querdarstellungen zu verwenden. Wir haben die Code-Wiederverwendung maximiert, indem genau die gleichen skalierbaren UI-Komponenten zum Einsatz kommen, lediglich die High-Level-Layout-Dateien unterscheiden sich für die verschiedenen Variationen. Damit müssen nur einige wenige separate Codezeilen für andere Layouts geschrieben werden.
Der Entwickler arbeitete mit einem UI-Designer zusammen. Mit der Qt Quick UI-Technologie war ein schnelles UI-Prototyping möglich, um verschiedene UI-Layouts auszuprobieren. Die Prototypen-UIs konnten vor Ort auf einer Desktop-Version von Qt erprobt werden, oder wurden direkt in das Embedded-System oder ein Mobilgerät mit der Qt Creator IDE integriert. Von Qt Creator aus kann man direkt zwischen den Zielplattformen hin und herschalten. Dabei wird automatisch die zugrundeliegende Cross-Kompilierungs-Toolkette geändert und über USB oder IP einem System zugewiesen.
Die Cloud-Server können als permanente, geräteunabhängige Speicher und Archive verwendet werden und Informationen über den Zustand jedes Geräts beinhalten. Im Unterhaltungsumfeld kann ein Anwender etwa auf einem Mobilgerät Musik hören und diese pausieren, um dann zuhause vor dem PC wieder dort fortzufahren, wo pausiert wurde. Durch die Cloud können Systeme Benachrichtigungen an Geräte senden, sowie Sensordaten empfangen, verarbeiten und für Statistikzwecke analysieren.
Da die Datenspeicherung und komplexe Datenanalyse im Cloud-Backend zentralisiert sind, kann die Kapazität der Rechenleistung dynamisch skaliert werden, ohne dabei die einzelnen angeschlossenen Geräte zu beeinträchtigen. Auch der zufällige Verlust der Verbindung zu einem Gerät macht für andere Teile des Systems keinen Unterschied. Die Forderung nach Verfügbarkeit besteht zwar weiter, allerdings nur für das Cloud-Backend. Um die Funktionalität eines einzelnen Geräts ohne Verbindung zum Backend zu gewährleisten sind demnach ein Offline- Speicher und ein logisches Offline-Verhalten erforderlich.
REST Assured: Funktionalität auf höchster Ebene
Obwohl das IoT-Konzept flexible, zukunftssichere, vernetzte Systeme ermöglicht, müssen bestimmte Herausforderungen bei der Entwicklung erfüllt werden. Die Architektur des Internet und World Wide Web ermöglicht es, bestimmte Aspekte des IoT-Designs zu vereinfachen. So bietet REST (Representational State Transfer), eine Architektur auf Basis einfacher HTTP-Protokollbefehle, mehr Flexibilität als herkömmliche Client-Server-Architekturen wie SOAP.
Stand vom 15.04.2021
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://support.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Bildergalerie
Eine RESTful-API ermöglicht es Clients und Servern in komplexer Weise zu interagieren, ohne dass der Client Details über mögliche Dienste kennen muss, bevor er mit dem Server verbunden wird. Dies spielt bei der Erweiterung des Systems um beliebige Geräte oder Dienstleistungen eine wichtige Rolle. Ein einfacher URI (Universal Resource Identifier) reicht aus, damit der Client den Server findet. Von hier aus führen der Server und der Client mittels HTTP-Befehlen eine Reihe von Verhandlungen und Datentransferschritten aus, die Informationen über die angebotenen Dienste enthalten, und wie auf sie zugegriffen werden kann.