Halbleiter NanoService – Web Service für Embedded

IoT-Anwendungen können in einer Vielzahl von Marktsegmenten von Web-Technologie profitieren. Dieser Artikel zeigt ARMs Ansatz, um eine sichere und standardisierte Methode für Back-End-Anwendungen bereitzustellen, über die auf IoT-Daten mit Hilfe von Web Services zugegriffen werden kann.

Für 11,7 Mio. Dollar kaufte ARM die Firma Sensinode, obwohl die in der Bilanz ausgewiesenen Aktivposten nur 1,4 Mio. Dollar wert sind und ARM somit 10,3 Mio. Dollar Goodwill ausweisen musste. Die Frage, warum ARM so viel Geld bezahlt hat, beantwortete ARMs CEO Simon Segars damit, dass Sensinode eine sensationelle Technologie entwickelt habe, welche eine sehr energiesparende Kommunikation zwischen Sensorknoten und der Cloud erlauben würde. Zusammen mit den Low-Power CPU Cores glaubt ARM, damit dem Internet der Dinge einen großen Schub geben zu können. Die Frage ist: Was verbirgt sich hinter dieser „sensationellen Technologie“, mit der die sogenannten NanoServices gemeint sind?

Konkret bestehen die NanoServices aus Software für Geräte, Back-End Server und Web-Anwendungen, die gemeinsam eine End-to-End-Plattform bilden. ARMs NanoService-Paket verwendet standardisierte Web-Technologie, um einen schnellen und effizienten Einsatz einer Vielzahl von IoT-Diensten zu ermöglichen. Basierend auf dem Constrained Application Protocol (CoAP), besteht NanoService aus drei Hauptkomponenten: NanoService Platform (NSP), NanoService Client (Device-Bibliothek) und Referenzanwendungen.

Als Schlüsselelement ist die NanoService Platform, eine Back-End-Entwicklungsplattform, die effizienten und sicheren Datentransport und -management ermöglicht. Sie stellt eine optimierte Zwei-Wege-End-to-End-Service-Integration zwischen Back-End Services und IoT-Endpunkten bereit. Durch die Verwendung von RESTful-Web-Schnittstellen (REST bezeichnet ein Programmierparadigma für Webanwendungen), die von der NSP bereitgestellt werden, wird die Entwicklungszeit für die Entwicklung und Bereitstellung von webbasierten Anwendungen stark reduziert.

Die NanoService-Plattform stellt REST-Schnittstellen zu Web-Anwendungen zur Verfügung und übernimmt die Kommunikation mit IoT-Geräten über sichere und skalierbare Mechanismen. Sie kann flexibel auf einem lokalen PC, einem privaten Server, in einem virtualisierten Rechenzentrum oder in der Cloud bereitgestellt werden. NSP enthält eine grafische Admin-Anwendung, die es Benutzern ermöglicht, die Plattform zu überwachen und registrierte Endpunkte und Ressourcen zu durchsuchen.

Wie aus Bild 1 ersichtlich ist, interagieren Web-Anwendungen mit der NanoService-Plattform, indem sie diverse RESTful-Web-Schnittstellen über HTTP nutzen. Diese Schnittstellen bieten Lookup-, HTTP-Proxy, CoAP, Gruppen- und Abo-Dienste. Das NanoService SDK stellt für die Nutzung dieser Dienste eine Bibliothek bereit.

NanoService-Technologie

Ein wichtiges Technologie-Element der NanoServices ist CoAP (Constrained Application Protocol), ein neues Web-Protokoll, das in der IETF, dem primären Normungsgremium für alle Internet-Protokolle, standardisiert wurde. Durch die Nutzung von UDP statt TCP ermöglicht es CoAP selbst extrem ressourcenlimitierten IoT-Geräten, über ein REST-Modell ähnlich dem, was über HTTP für Webseiten verwendet wird, auf eine sehr zuverlässige Art und Weise miteinander zu kommunizieren. CoAP unterstützt Multicast-Datenverkehr, verbraucht sehr wenig Overhead (4 Byte pro Nachricht) und unterstützt die Zuordnung zu HTTP, was eine einfache Integration ins Web ermöglicht. Die Verwendung dieser Technologie ermöglicht einen extrem bandbreiteneffizienten Datenverkehr und optimiert die Leistungsaufnahme der zugrunde liegenden Chips, indem längere Schlafzeiten und kürzere Datenübertragungszeiten eintreten.

Die Sicherheit für NanoServices wird mittels TLS-Standards umgesetzt. NanoService unterstützt eine sichere Übertragung vom Endknoten bis hin zum Back End. Web-Schnittstellen werden mit HTTP-Authentifizierung und TLS (HTTPS) gesichert und IoT-Schnittstellen sind mit optimierten DTLS für die gegenseitige Authentifizierung gesichert – Details dazu später.

Die NanoService-Architektur und -Komponenten sind in Bild 2 dargestellt. Das REST- (Representational ­State Transfer) Paradigma ist der Kern des Web. Die NanoService-Lösung ist eine End-to-End-Architektur, die auf dem REST-Paradigma aufgebaut ist. Web-Anwendungen sind mit Lookup-, Abo-und Zugriffsschnittstellen auf IoT-Geräte und -Ressourcen ausgestattet, welche die bekannten HTTP-REST-Schnittstellen nutzen. Die Umsetzung dieser Schnittstellen wird mit dem NanoService Java SDK vereinfacht. Diese HTTP-Schnittstellen können in jeder Programmier- oder Skriptsprache wie C, C#, PHP, Ruby oder Javascript implementiert werden.

Die IoT-Schnittstellen und das CoAP-Protokoll wurden speziell für Embedded-Geräte konzipiert, die häufig über sehr begrenzte Ressourcen (Rechenleistung, Speicher, Bandbreite, zulässige Stromaufnahme) verfügen. Die einzige Anforderung für die Verwendung der NanoServices ist eine UDP/IP-Unterstützung durch das Netzwerk. Die Elemente der Lösung sind die NanoService Platform, NanoService-Gerätebibliothek und die Referenzanwendungen.

Die NanoService-Plattform

Die NanoService Platform (NSP) ist eine Back-End-Komponente, die eine effiziente IoT-Kommunikation mit IoT-Endpunkten und erweiterten Web-Schnittstellen für den Einsatz von Web-Anwendungen zusammenfügt. Bild 3 zeigt die interne Architektur der NSP.

Die NanoService Platform ist als eine A-priori-Suchmaschine (ein sogenanntes Ressourcenverzeichnis) zusammen mit einem Ressourcen-Cache modelliert. Wenn ein Endpunkt initialisiert oder verändert wird, registriert er Weblinks, die im Resourcenverzeichnis abgelegt werden. Wenn Ressourcenanforderungen von Web-Apps oder Benachrichtigungen von Endpunkten gesendet werden, werden die neuesten Daten in dem Ressourcen-Cache gespeichert.

Schlüsseleigenschaften, die vom NSP bereitgestellt werden, sind Lookup-, Gruppen-, Proxy- und Event-Funktionen. Die Lookup-Funktion wird für die Suche nach Endpunkten und Ressourcen, einschließlich der semantischen Informationen, eingesetzt. Die Gruppen-Funktion wird verwendet, um Gruppen von Web-Endpunkten zu erzeugen und zu verwalten, so dass RESTful-Gruppenoperationen ermöglicht werden. Die Proxy-Funktion sorgt für einen transparenten, gecachten HTTP-Zugriff auf IoT-Ressourcen. Und schließlich stellt die Event-Funktion Web-Apps asynchrone Benachrichtigungen über Änderungen im Resourcenverzeichnis oder neue Daten von Ressourcen zur Verfügung. Die NanoService-Plattform kommuniziert über drei Arten von Schnittstellen: Web-Schnittstellen, IoT-Schnittstellen und eine Überwachungsschnittstelle. Web-Schnittstellen sind als RESTful-HTTP(S)-Schnittstellen mit Domain-basierter Authentifizierung und IoT-Schnittstellen als CoAP, CoAP über SMS oder HTTP realisiert. Die Überwachung der NSP selbst kann über eine JMX-Schnittstelle vorgenommen werden. Die NSP wird mit einer Admin-Anwendung geliefert, einer grafischen Web-App für die Überwachung der NSP. Ein konfigurierbarer Node-Emulator ist ebenfalls enthalten, der ein Design auf einem PC vor der Implementierung auf einem Embedded-Gerät emulieren kann. Der Node-Emulator kann die Entwicklungszeit drastisch reduzieren und so die Marktreife deutlich beschleunigen. Er ist auch nützlich für eine schnelle Demonstration des End-to-End-Protokolls und der Datenflüsse in Kundenanwendungen.