Die Themen Big Data, Digitale Transformation, Industrie 4.0 und Internet of Things (IoT) sind derzeit in aller Munde. Das Extrahieren, Speichern, Zusammenführen und Analysieren von Daten aus unterschiedlichsten Quellen (ERP-Systeme, Social Media-Kanälen, Maschinen- und Sensordaten, etc.) ermöglicht die Beantwortung neuer Fragestellungen und hat einen Einfluss auf bestehende oder sogar komplett neue Geschäftsmodelle.

Teamfact besitzt als IT-Beratung mit Fokus auf dem Themenfeld SAP Business Intelligence zwar einen direkten Bezug zum Thema Big Data, jedoch keine eigenen Produkte um Daten in der Vielfältigkeit und den Größenordnungen zu generieren. Um das Thema dennoch greifbar zu machen, haben wir uns für das Leitthema der letzten ECD einen spielerischen Anwendungsfall überlegt und mit SAP-Technologien umgesetzt. 

Das IoT-Device: Sphero

Im Mittelpunkt steht dabei ein kleiner runder Sphero-Roboter, der von einer Firma mit gleichem Namen hergestellt und vertrieben wird. Ein Sphero verfügt über zwei Motoren und ein internes Stabilisierungssystem mit Sensoren (Gyroscope, Accelerometer), welche es ermöglichen, den Sphero mit einer maximalen Geschwindigkeit von 8 km/h präzise zu steuern.
Zwar ist der Sphero mit seinen zahlreichen Smartphone Apps und dem Fokus auf das spielerische Lernen von geometrischen und programmiertechnischen Grundlagen eher an ein jüngeres Publikum gerichtet, dank des verfügbaren SDKs ist es jedoch ebenfalls möglich, nahezu frei auf Motoren und generierten Sensordaten zurückzugreifen. Auf einem Sphero selber kann keine Software installiert werden und er ist auch nicht direkt mit dem Internet verbunden, mit Hilfe eines Edge Devices können die Sensor-Daten aber gezielt abgegriffen und ins Internet transportiert werden. Das macht den Sphero (es gibt in sogar in einer BB-8 Version für Star Wars Fans) zu einem echten und sehr spaßigen IoT-Gerät.

Der spielerische IoT-Anwendungsfall

Zwar lässt sich mit einem Sphero kein realistisches Business-Szenario umsetzen, aber eines, welches die Grundideen von IoT (und Big Data) sehr gut veranschaulicht... und dabei auch noch eine Menge Spaß macht!
Drei Spheros fahren gleichzeitig ein Rennen über eine selbst gebaute Rennstrecke. Gesteuert werden die Spheros dabei mit Hilfe von Xbox 360-Controllern und unterschiedlichen Fahrern. Die Renndaten (Fahrer, Position, Zeit) werden als transaktionelle Daten in einer Datenbank gespeichert und ermöglichen es Antworten auf folgende Business-Fragen zu finden:

  • Welche Zeit hat ein Fahrer in einem Rennen gefahren?
  • Welche Position hat ein Fahrer in einem Rennen erzielt?

Das ist zunächst ausreichend, um einen Sieger zu küren, allerdings lassen sich mit der Hinzunahme der IoT- und Sensordaten der Spheros noch eine Reihe an weiteren Fragestellungen beantworten:

  • Was war die maximale/durchschnittliche Geschwindigkeit eines Fahrers/in einem Rennen?
  • Welche Strecke ist ein Sphero gerollt?
  • Wer ist die kürzeste Strecke gefahren?
  • Wie viele Kollisionen hat ein Fahrer verursacht?
  • Was war die höchste Geschwindigkeit bei einer Kollision?
  • ...

Darüberhinaus lassen sich mit Hilfe der Sensordaten auch prädiktive Voraussagen treffen und Modelle entwerfen. Beispielsweise könnte man den Sphero die Rennstrecke lernen lassen und so einen autonom fahrenden Gegner mit künstlicher Intelligenz erschaffen.

Auch wenn das Fahren mit Spheros kein realistisches Business-Szenario ist, so lässt sich erkennen, dass durch die Hinzunahme von IoT-Daten tiefere Analysen möglich sind und neue Fragestellungen beantwortet werden können. Und auch im Hinblick auf die Änderung bestehender/Einführung neuer Business-Modelle lässt sich ein gutes Beispiel finden: So könnte man nicht nur den Fahrer der schnellsten Zeit zum Sieger erklären, sondern auch denjenigen, der am ökonomischsten (kürzeste Strecke) oder sichersten (wenigste Kollisionen) gefahren ist. Oder man kürt den finalen Sieger gar aus einer Berechnung aus allen drei Kennzahlen.

Die verwendeten SAP Technologien

Die SAP stellt eine Vielzahl von Technologien und Produkten für die Extraktion, Speicherung und Analyse von Daten bereit. Im Fokus steht dabei SAP HANA als hochperformante In-Memory Datenbank und Platform mit einer Vielzahl an Tools und Services zur weiteren Datenaufbereitung und -verarbeitung inklusive Schnittstellen in das Apache Hadoop/Spark-Ökosystem.

Für unseren Anwendungsfall gäbe es demnach eine ganze Reihe an möglichen Umsetzungsszenerien, auf die wir gegebenenfalls in Zukunft im Rahmen weiterer Blogeinträge eingehen werden. An dieser Stelle möchten wir jedoch zunächst eine Lösung mit SAP Technologien vorstellen, die unter Nutzung kostenloser Entwickler- und Trial-Accounts von jedem nachgebaut werden kann.

Das Grundgerüst unserer gewählten Umsetzung bildet die HANA Cloud Platform (HCP). Diese stellt als Platform as a Service (PaaS) eine Reihe an Services für die Entwicklung von Business-Anwendungen bereit, von denen wir folgende für die Umsetzung der Sphero-Rennen verwendet haben:

  • SAP HANA als In-Memory Datenbank zur Speicherung der Daten
  • SAP HANA XS und Java EE als Laufzeitumgebungen für die Backend-Applikationen
  • Web IDE als Entwicklungsumgebung für die Erstellung von SAPUI5-Anwendungen
  • HCP IoT services für die Integration der Sensordaten und IoT-Device-Konfiguration

Für die Steuerung des Spheros und den Zugriff auf die Sensordaten wurde auf Node.js zurückgegriffen, da Node.js durch die Integration einer entsprechenden Laufzeitumgebung in die erweiterten SAP HANA XS (ab HANA SPS11) auch in der SAP-Welt an Bedeutung gewinnt.
Da der Sphero nur über einen begrenzten internen Speicher verfügt, muss der Code zur Steuerung und der Abgriff der Sensordaten auf einem Edge Device erfolgen. In unserem Fall ist das ein MacBook Pro, es kann sich jedoch um ein beliebiges Gerät handeln, welche in der Lage ist via Bluetooth mit einem Sphero zu kommunizieren.

Die Sensordaten können mit einer Abtastete von maximal 400Hz abgegriffen werden, was bei drei fahrenden Spheros stolze 1.200 Datensätze pro Sekunde generiert. Diese werden über eine Websocket-Verbindung und die HCP IoT-Services direkt in die HANA Datenbank geschrieben.

Bei der Racing App handelt es sich um eine Webanwendung auf Basis von SAPUI5, welche via OData mit einem Backend-System kommuniziert. In der Rennanwendung können Rennen angelegt, Fahrer ausgewählt und sogar Echtzeitdaten von den Spheros (aktuelle Geschwindigkeit, Batteriezustand) angezeigt werden. Für die Echtzeit-Kommunikation wurde ein kleiner Message Broker in Node.js entwickelt, der aktuell nicht auf der HCP gehostet werden dann, da dort HANA SPS11 in den Entwickler-Accounts noch nicht zur Verfügung steht.

Die abschließende Analyse und Aufbereitung der Daten wurde mit SAP Lumira durchgeführt. Durch die vielen Möglichkeiten zur Datenanbindung und Visualisierung in Lumira, konnten die Renn- mit den Sensor- und Kollisionsdaten verknüpft, visuell aufbereitet und anschließend mehrere Sieger gekürt werden.

Selber fahren und Spaß haben

Wie dem obigen Video zu entnehmen ist, hatten wir eine Menge Spaß bei der Umsetzung des Szenarios und vor allem beim finalen Rennen fahren. Um es auch anderen zu ermöglichen, sich auf diesem Weg mit dem Thema IoT und Big Data auseinander zu setzen, werden wir deshalb im SAP Community Network (SCN) in den kommenden Wochen im Rahmen einer Blog-Reihe detaillierte Einblicke in die Umsetzung geben. In diesem Zuge steht auch der komplette Quellcode aller Bestandteile frei verfügbar in unserem Github-Profil bereit.

Falls Sie sich nicht die Mühe machen wollen, alles selber nachzubauen oder sich für echte Business-Themen rund um Big Data und IoT im SAP-Umfeld interessieren, dann rufen Sie uns doch einfach an oder schreiben uns eine E-Mail