Suchen

Praxiscase Software-Entwicklung

So entwickelt BMW neue IoT-Services

| Autor/ Redakteur: Jonas Sticha* und Christian Hoff* / Julia Moßner

Die Automobilindustrie arbeitet mit Hochdruck an neuen datengetriebenen Services, die den Kunden während der Fahrt zur Verfügung stehen sollen. Eine Herausforderung für die Entwickler, da Daten aus unterschiedlichsten Quellen integriert werden müssen.

Firmen zum Thema

Vernetzte Fahrzeugtechnologien und Dienste revolutionieren das Automobil.
Vernetzte Fahrzeugtechnologien und Dienste revolutionieren das Automobil.
( Bild: CC BY-ND / CC BY-ND NaN )

Die BMW Group setzte sogenannte "Connected Drive Services" ein, um ihren Kunden neue Dienstleistungen anzubieten, beispielsweise zur Parkplatzsuche auf der Straße bis hin zu Informationen entlang der Reiseroute. Nicht nur die technischen Möglichkeiten, auch die Herausforderungen sind immens. Insbesondere die Umstellung auf Elektro- und autonome Fahrzeuge erfordert neue aufwändige Services und Informationen, die den Fahrern zur Verfügung gestellt werden müssen. Elektrofahrzeuge informieren den Fahrer nicht nur über den Zustand der Autobatterie, sondern auch darüber, wo die nächsten Ladestationen liegen, wie weit sie entfernt und wie stark sie aktuell frequentiert sind. Diese Informationen müssen im integrierten Navigationssystem bereit stehen, am besten inklusive der Kosten und Abrechnungsdetails der jeweiligen Station. Dafür ist die Anbindung unterschiedlicher Daten und Dienste erforderlich. Automobil-Anbieter müssen solche neuen Anforderungen frühzeitig verstehen und das Potenzial für zukünftige Fahrzeugtypen und Dienstleistungen evaluieren.

Der folgende Praxiscase beschreibt, wie Software-Ingenieure von BMW neue IoT-Trends mit Diensten, die teilweise aus den Fahrzeugen selbst kommen oder in einer Cloud-Umgebung zur Verfügung gestellt wurden in die Umsetzung brachten.

Das Ziel: Anbindung an IoT-Cloud-Umgebungen

Ziel des vorliegenden Cases: die Integration verschiedener Datenquellen und Dienstleister in Backend-Systeme, die auf Serverless-Architekturen basieren. Außerdem war die Anbindung von Fahrzeugen der BMW Group an Serverless-Systeme über das leichtgewichtige MQ Telemetry Transport (MQTT) von besonderem Interesse. BMW führte daher eine technische Bewertung durch, um die Backend-Broker-Infrastruktur und die Auswirkungen auf den Fahrzeugkommunikationsstack zu verstehen.

Dafür konzipierten die Softwareingenieure der BMW Group einen theoretischen Anwendungsfall, ein sogenanntes "Point of Interest Poll System", das es erlaubt, die Technologie zu erforschen und gleichzeitig von Benutzern testen zu lassen. Dem Proof of Concept für vernetzte Dienste von BMW lag folgender Use Case zu Grunde: Eine Gruppe von Freunden, die im Konvoi unterwegs sind, will eine Pause einlegen. Sie wollen alle gemeinsam entscheiden, wo sie anhalten möchten. Dafür nutzen sie eine Echtzeit-Umfrage-App im Fahrzeug, die auf ein Backend-System zugreift, welches den Reisenden Möglichkeiten in einem bestimmten Umkreis entlang der Strecke vorschlägt. Nachdem die Freunde entschieden haben, wo sie rasten wollen, erhalten alle Fahrer eine Wegbeschreibung zum gewünschten Ziel.

Neben einer Anwendungsoberfläche im Fahrzeug muss der Proof of Concept die Fahrzeuge mit der IoT-Cloud verbinden. Backend-Services verwenden API’s zur Integration von Datenquellen, darunter zum Beispiel auch eine Mapping-API, die Details zu Sehenswürdigkeiten, Restaurants oder Tankstellen entlang der geplanten Route zusammenstellt.

Die Implementierung: Open Source im Fokus

Aufgrund der Vorteile hinsichtlich Kosten- und Flexibilität hat BMW verschiedene Open-Source-Cloud-Plattformen evaluiert. Bei Open Source lässt sich der Code inspizieren, um dadurch ein tieferes Verständnis der Technologie zu erlangen. Auswahlkriterien waren neben den Features der Produkte, die technische Einsatzbereitschaft und ein lebendiges Ökosystem. Zusätzlich zu Open-Source-Plattformen wurden auch kommerzielle Angebote geprüft und im Vergleich berücksichtigt.

Nach der Evaluierung verschiedener Serverless Frameworks fiel die Wahl auf OpenWhisk, eine Plattform, die durch Ereignisse getriggert Funktionen ausführt. Ein Vorteil: Das Ökosystem wird von vielen Unternehmen und unzähligen Software-Entwicklern genutzt. Zum Einsatz kam außerdem OpenShift, die Container-Anwendungsplattform für Cloud Computing von Red Hat. Hauptgrund für die Wahl von OpenShift war die einfach zu bedienende Web-Benutzeroberfläche. Den Softwareingenieuren bei BMW diente OpenShift als Grundlage für die Bereitstellung der Messaging-as-a-Service-Plattform EnMasse und des Serverless Frameworks OpenWhisk. Der Einsatz von Open-Source-Lösungen ermöglichte außerdem die technische Diskussion mit den Entwicklern und Solution-Architects bei Red Hat.

Der Aufbau der Lösung wurde folgendermaßen konzipiert: die Fahrzeuge verbinden sich über das MQTT-Protokoll mit dem EnMasse-Messaging-Service. Eingehende Nachrichten lösen OpenWhisk-Aktionen aus, welche in der Backend-Anwendungslogik implementiert sind. Dafür mussten die Fahrzeuge mit dem MQTT-Service und der Serverless-Backend-Architektur verbunden werden.

Die Fahrzeuge von BMW sprechen MQTT und nutzen das Open Source Framework Joynr für die Kommunikation mit Backend-Systemen. EnMasse bietet Messaging-as-a-Service in der Cloud-Umgebung an und besitzt einen AMQP Message Broker sowie ein MQTT-Gateway. Joynr ermöglicht es alle Anpassungen vorzunehmen, die für die Verbindung mit dem MQTT-Gateway von EnMasse erforderlich sind. Über Joynr und via EnMasse können Fahrzeuge mit OpenWhisk unter OpenShift verbunden werden. Auf der Fahrzeugseite war Toleranz gegenüber den unterstützten MQTT-Funktionen gefragt, um die Verbindung zu verschiedenen Cloud-Anbietern zu erleichtern. Die technische Umsetzung des „POI Poll PoC" dauerte letztendlich weniger als drei Wochen.

Ausblick: Skalierung auf Millionen Fahrzeuge?

Als nächstes ist geplant, die im Proof of Concept erarbeitete Architektur für vernetzte Dienste auf die Skalierbarkeit für eine hohe Zahl von Fahrzeugen zu prüfen. Die Möglichkeit zusätzliche Ressourcen dynamisch hinzuzufügen, um einen höheren Kapazitätsbedarf zu decken, ist ein wichtiger Vorteil von Cloud-Workloads. Dieser Proof of Concept wird ebenfalls auf OpenShift basieren.

* Jonas Sticha und Christian Hoff, Software-Ingenieure bei BMW Car IT

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de (ID: 46012847)