Mit dem Internet der Dinge, cloudbasierenden Lösungen und Big Data kommen große Herausforderungen auf die System-Designer der Zukunft zu. Mit Microsoft Azure steht heute schon ein Framework zur Verfügung, mit dem diese Paradigmen in konkrete Bahnen geleitet und beherrschbar gemacht werden können.
MSC hat jetzt seine wichtigsten COM-Produkte (Computer-on-Module) fit gemacht für die Cloud, mit einer Azure-Zertifizierung versehen und bietet darüber hinaus mit »Easy IOT« eine laufbereite Cloud-Anwendung für Azure an.
Die Zukunft beginnt jetzt, und wenn das aktuelle Entwicklungsprojekt noch nicht mit dem IoT zu tun hat, wird es sicherlich beim nächsten oder übernächsten der Fall sein. Milliarden untereinander verbundener Netzelemente repräsentieren das Internet der Dinge (Bild 1), Konzentratoren am Rande der Cloud betreiben »Fog-Computing« und dünnen die Datenströme in die Cloud nach bestem Vermögen aus, wo dennoch aberwitzige Mengen an Daten ankommen und durchsucht, verarbeitet und extrahiert werden können. Die Cloud: Das sind einfach dezentrale Ansammlungen von Großrechnern mit gigantischen Speicherbänken, die von Providern betrieben und für Zwecke der Kunden ausgenutzt werden können.
Unter den Cloud-Anbietern hat sich Microsoft als führend beim Wachstum der Nutzerzahlen und der gespeicherten Objekte hervorgetan. Bereits im Jahr 2016 verwendeten 57 % aller »Fortune-500-Firmen« die Azure-Cloud, und Microsoft berichtete von einem Wachstum der zugehörigen Umsatzsparte in Höhe von 127 %.
Microsoft Azure ist eine stetig wachsende Sammlung von Cloud-Diensten, die von Systementwicklern und IT-Fachleuten verwendet werden können, um ihre Anwendungen für die Daten in der Cloud und die im Feld angeschlossenen IoT-Geräte zusammenzustellen und zu verwalten. Für die Verwendung der Azure Cloud kommt ein »Global Cloud Services Provider Agreement« (CSP) zum Tragen, das auf einfache Weise die Kosten für die Cloud-Dienste zusammenfasst und kalkulierbar macht. Avnet und MSC sind Cloud-Service-Provider-Partner von Microsoft und können ihren Kunden mit Rat und Tat zur Seite stehen, wenn diese ihre Hardware zum Anschluss an die Cloud zusammenstellen oder entwickeln wollen.
Unter Verwendung der Computermodule von MSC ergeben sich skalierbare, robuste und zukunftssichere Lösungen, die aufgrund der bereits durchgeführten Azure-Zertifizierung unmittelbar für den IoT-Betrieb mit der Cloud vorbereitet sind. Bisher hatte MSC schon alle COM Express-, Qseven- und SMARC-Module mit Intel Atom »BayTrail« und »Braswell« sowie mit den »Skylake-Core-Prozessoren« für Azure zertifiziert, und gerade wurde die Zertifizierung für die ARM-basierenden Qseven-Module mit dem i.MX6-Prozessor von NXP abgeschlossen. Alle übrigen aktuellen Module werden kurzfristig folgen, damit Kunden die volle Auswahl der COM-Module für cloudbasierende Lösungen haben.
Zum IoT-Einsatz wird ein azure-kompatibler Software-Stack benötigt, der die Kommunikation mit der Cloud übernimmt. Dieses Paket hat MSC für seine COM-Module portiert und bei Microsoft für Azure-Anwendungen zertifizieren lassen. Jeder MSC-Kunde mit IoT-Anwendungen kann diese Software kostenlos erhalten und sich eine Zertifizierung bei Microsoft ersparen.
»Easy IoT« – schlüsselfertig in die Cloud
MSC und Avnet haben ein Programm »Easy IoT« gestartet, um ihren Kunden beim Einstieg in die Cloud-Zukunft zu helfen. Dazu bieten sie neben der IoT-Hardware – bestehend aus einem COM-Modul auf Carrierboard – und dem Azure-Softwarestack auch eine Demo-Applikation an, die im Feldelement die Kommunikation mit der Azure-Cloud bewerkstelligt. Als Teil der Applikation werden Telemetrie-Funktionen zur Fernabfrage des System-Status ermöglicht, doch ist dies noch nicht der volle Funktionsumfang. Darüber hinaus wird es Kunden ermöglicht, eigene Erweiterungen in die Applikation zu integrieren. Zur Abrundung umfasst »Easy IoT« noch eine dreimonatige Basis-Lizenz für Azure sowie ein web-basierendes Tool zur Kontrolle der IoT-Hardware im Feld über die Cloud - das AAoT (Avnet Azure on-boarding Tool).
Mit dem AAoT erhält der Kunde ein gebrauchsfertiges Testbett sowie eine Suite von Funktionsbausteinen, um seine eigene IoT-Lösung für IoT-Targetsysteme im Feld, bestehend aus COM-Produkten von MSC, zusammenzustellen. Für den Betrieb des AAoT-Tools ist auf der Kundenseite lediglich ein beliebiger Rechner mit Web-Browser notwendig, über den der Kontakt mit der Azure-Cloud möglich ist. Beim Log-in werden die Kenndaten der Azure-Lizenz benötigt, die bei »Easy IoT« für die ersten drei Monate kostenlos ist. Bild 2 zeigt die Übersicht der bereits registrierten Boards mit ihrer Seriennummer (ID), dem Status (Grün=Aktiv, Rot=Offline) und dem Zeitpunkt der letzten Verbindung. Über einen direkten Link geht es zum Dashboard des entsprechenden Boards. Dazu weiter unten mehr. Um ein neues Board anzumelden, gibt man einfach die vom Board abgelesene ID in das Eingabefeld ein und erhält einen im IoT-Hub erzeugten sicheren Schlüssel, der auf der einzigartigen Board-ID basiert.
Im Dashboard eines Devices kann man sich die Aktualdaten der Zielapplikation anzeigen lassen oder nach bestimmten Regeln durchsuchen (Bild 3). Neben den in Bild 3 ersichtlichen Werten für CPU-, GPU- und Speicherauslastung sowie Drehzahl des CPU-Lüfters (soweit er überhaupt vorhanden ist), sind noch weitere Parameter wie beispielsweise CPU-, Chipset- und System-Temperatur oder die Versorgungsspannung überwachbar. Die Anzeige erfolgt dabei in Echtzeit inklusive der letzten 100 Messpunkte. Der letzte Wert wird dazu ergänzend in Textform in seiner Maßeinheit (°C, %,…) angezeigt. Wenn der letzte Wert etwaige eingestellte Grenzwerte überschreitet, wechselt die Anzeige in rote Farbe.
Rechts oben in in Bild 3 erkennt man einen Toggle für einen Alarm (rot). Wenn dieser eingeschaltet ist, erhält der eingeloggte Benutzer eine E-Mail, dass einer der Werte einen der voreingestellten Grenzwerte überschreitet. Wenn man das Grenzwertfenster öffnet, kann man für jeden Parameter einen oberen und einen unteren Grenzwert definieren (Bild 4).
Doch nicht nur der Status der Zielhardware kann angezeigt werden, mit dem AAoT kann man auch Nachrichten zur IoT-Anwendung senden. In der Beispielapplikation von »Easy IoT« können diese später wieder ausgelesen und angezeigt werden. Damit lässt sich das »Cloud-to-Device-Messaging« ebenso simulieren wie der »Device-to-Cloud-Nachrichtenaustausch«, was dem späteren Telemetriebetrieb unter Vorgabe von Trigger-Stellgrößen und Grenzwerten nahe kommt, der dann im Endeffekt das ereignisgesteuerte Überwachen der Zielhardware über die Cloud realisiert.
Architektur der AAoT
Bild 5 zeigt die verwendete Architektur des Azure-on-boarding-Tools von Avnet. Das Avnet-IoT-Portal ist eine auf dem Client in JavaScript entwickelte multi-mandantenfähige und responsive Web-Applikation, die in den Azure-App-Services gehostet wird und für die Geschäftslogik in der Cloud ein entsprechendes API verwendet.
Eigenschaften des Azure-Active-Verzeichnisses werden verwendet, um die unterschiedlichen Nutzer zu authentifizieren. Neben dem Account einer Organisation, der im Azure-Active-Directory abgelegt ist, ist auch ein »einfacher« Microsoft Account möglich.
Das sogenannte Mandanten-Verzeichnis beinhaltet die Verbindungen zwischen den Devices und den Benutzern im Azure-Active-Directory.
Application Insights ist ein erweiterbarer, für Webentwickler konzipierter Dienst zur Verwaltung der Anwendungsleistung (Application Performance Management, APM) auf mehreren Plattformen. Er wird verwendet, um die Webanwendung zu überwachen. Die Telemetriedatenströme werden in das Azure-Portal integriert, wo auf die Rohdaten Analysen und Suchtools angewendet werden können.
Der Azure-IoT-Hub wird genutzt, um alle Telemetriedaten von den unterschiedlichen Boards aufzunhemen. Jedes Board existiert im IoT-Hub als ein separates Device mit Board-ID und sicherem Schlüssel. Die Device-Management-Funktionen werden eingesetzt, um den unterschiedlichen Devices einige Meta-Daten wie Kunden-Informationen anzuhängen, was die Verwaltung vereinfacht.
Um die Telemetriedaten in Echtzeit zum Web-Portal schicken zu können, werden die Azure-Service-Fabric und das sogenannte Aktor-Modell eingesetzt, was deutlich einfacher zu skalieren und anzupassen ist als die Azure-Stream-Analytics. Die Anzeige im Web-Portal werden über die SignalIR-Funktion aktualisiert.
Service Fabric ermöglicht das Erstellen und Verwalten skalierbarer und zuverlässiger Anwendungen, die sich aus Microservices zusammensetzen. Diese Microservices werden in einem gemeinsam genutzten Computerpool (als Cluster bezeichnet) ausgeführt. Die Plattform bietet umfassende Funktionen für die Anwendungsverwaltung zum Organisieren, Bereitstellen, Überwachen, Upgraden/Patchen und Löschen bereitgestellter Anwendungen, einschließlich Diensten in Containern. Reliable-Actors ist ein Service-Fabric-Anwendungsframework, dessen API ein Singlethread-Programmiermodell, das auf der Skalierbarkeit und Zuverlässigkeit aufbaut, bietet.
SignalR ist ein Satz von Server- und Clientbibliotheken, die eine einfache bidirektionale Kommunikation in Echtzeit zwischen Server und Client ermöglichen. Nicht nur der Client kann den Kontakt mit dem Server initiieren, wie dies bei der Webentwicklung der Fall ist, sondern der Server kann auch den Client kontaktieren.
Hierbei handelt es sich nicht nur um einfache HTTP-Antworten. Es sind richtige Methodenaufrufe vom Server zum Client, wie bei der Push-Technologie. Über die serverseitige Komponente von SignalR können Clients sogar andere Clients kontaktieren. Dies ist möglich, da SignalR eine dauerhafte Verbindung zwischen dem Server und Client herstellt.
Jeder möchte moderne Software erstellen, und moderner als Vollduplexkommunikation geht nicht. Mehrere Gründe sprechen für die Verwendung von SignalR. Die einfache Verwendung zum Schreiben von Websites und Apps ist einer der guten Gründe. Ein anderer guter Grund ist, wenn man wie hier Livekommunikation für die Software benötigt. Man könnte dies auch selbst mit einer Reihe verschiedener Techniken durchführen, wie etwa WebSockets oder AJAX-Abruf. Man müsste jedoch alle Grundlagen neu schreiben, was das SignalR-Team bereits für einen erledigt hat.
Linux-Image für Zielhardware
Als Teil des »Easy IoT-Programms« erhält der Kunde ein passendes Linux-Image für seine COM-basierende Zielhardware (demnächst wahlweise auch für Windows 10), das den Microsoft-Azure-Softwarestack ebenso enthält wie die beschriebene Testapplikation, die Daten für die Azure-Cloud und deren Abfrage bereitstellt. Diese Daten sind mit einem Schlüssel versehen, der mit Hilfe der Board-ID der Hardware ermittelt und einmalig mit dem AAoT Tool in der Cloud und dem abfragenden Rechner des Kunden gekoppelt wird. Dies dient der Sicherheit, dass Cloud-Daten untereinander vollständig isoliert sind und Zugriffe nur für berechtigte User möglich sind. Das Thema »Sicherheit« stand bei MSC schon immer an führender Stelle, nicht erst seit MSC zu den ersten Anbietern gehörte, die einen Security-Chip (TPM = Trusted Platform Module) standardmäßig auf ihren COM-Modulen integrierten und das BIOS mit erheblichen Sicherheitsfeatures erweiterten, wie der »Chain of Trust«.
Fazit
Mit den robusten und langzeitverfügbaren COM-Modulen von MSC lässt sich jede Art von IoT-Zielhardware realisieren, angefangen von stromsparenden Sensorknoten mit Qseven- oder SMARC-Module (ARM oder x86) über lokale Konzentratoren basierend auf COM-Express (x86 Atom- oder Core-Prozessoren) bis hin zu anspruchsvollen Aufgaben mit den leistungsfähigsten Core- oder Xeon-CPUs auf Basis von COM-Express-Modulen. Alle aktuellen COM-Produkte sind nun für die Verwendung mit der Microsoft Azure Cloud zertifiziert. Zum leichten Einstieg in cloudbasierende Entwicklungen bieten Avnet und MSC das Einsteigerprogramm »Easy IoT«, das alle einzelnen Tools und Programme enthält, um quasi schlüsselfertig mit der Azure-Cloud und COM-Modulen von MSC zu kommunizieren und eigene Entwicklungen darauf aufzubauen. Die Software wird übrigens kostenlos überlassen, und auch die Azure-Basislizenz ist für die ersten drei Monate gratis abgesehen von den anfallenden Nutzungsgebühren der Cloud. (fr)