)
Docker und SDK: Die Zukunft der Porsche-Infotainment-Apps
Out of the box
Noch nie war es so einfach, Apps für den Modularen Infotainmentbaukasten (MIB) zu entwickeln und zu den Kunden zu bringen. Porsche Engineering realisiert im Rahmen der Weiterentwicklung des MIB für den Porsche Taycan innovative Applikationen, wobei die Containerisierungslösung Docker zum Einsatz kommt. Auf dieser Basis ist auch ein Software Development Kit (SDK) entstanden, mit dessen Hilfe auch Drittanbieter neue Anwendungen für den MIB auf den Markt bringen können.
Mit dem Porsche Taycan ist im September 2019 nicht nur der erste rein elektrische Porsche auf den Markt gekommen. Er ist auch das erste Fahrzeug des Sportwagenherstellers, das die dritte Version des Modularen Infotainmentbaukastens (MIB3) enthält. Der MIB3 bietet nicht nur Hardware auf dem neuesten Stand der Technik und ein größeres Display – er lässt sich auch einfach um neue Apps erweitern. Möglich wird das durch die im System integrierte Containerisierungslösung Docker: Sie erlaubt es, Apps samt ihren Abhängigkeiten in Container zu bündeln und auch nachträglich auf das System aufzuspielen. Dadurch ist die Entwicklung und die Distribution neuer Apps wesentlich einfacher als in den vorherigen Versionen des MIB.
Der Name spielt ganz bewusst auf die Logistik an: Seit Jahrzehnten werden Güter in standardisierten Containern verpackt, wodurch sie sich viel effizienter längs komplexer Lieferketten transportieren lassen. Analog dazu sollen auch neue Apps möglichst problemlos von einem Anbieter zu seinen Kunden gelangen. Allerdings weiß man hier nie genau, wie das jeweilige Zielsystem – etwa das MIB3 in einem Fahrzeug – konfiguriert ist. Das kann schnell zum Problem werden, denn oft benötigen Programme eine fest definierte Umgebung, um überhaupt laufen zu können. Dazu gehören zum Beispiel Systembibliotheken, die bestimmte Funktionen wie etwa den Zugang zu Netzwerken zur Verfügung stellen. Zudem erfordern interpretierte Sprachen wie JavaScript für ihre Ausführung eine Runtime-Engine – und zwar meist eine ganz bestimmte Version.
Bewährte Lösung: In der Logistik sind Container schon lange unverzichtbar – jetzt erobern sie die Softwareentwicklung.
„Wegen dieser vielen Abhängigkeiten kamen früher alle Apps für das Infotainmentsystem vom Zulieferer des MIB“, berichtet Fabian Breisig von Porsche Engineering. „Für uns war es bisher fast unmöglich, eigene Apps zu schreiben. Wir hätten dafür unseren Code an den Zulieferer schicken müssen, um ihn dort mit großem Aufwand in das Gesamtsystem integrieren zu lassen.“ Dank der Docker-Container gehört dieses Problem nun der Vergangenheit an: Im Prinzip können mit ihrer Hilfe jetzt beliebige Drittanbieter eigene Apps schreiben, in einen Container mit den benötigten Bibliotheken, Hilfsprogrammen und statischen Daten verpacken und dann nach einer Prüfung durch Porsche den Kunden zum komfortablen Download anbieten.
Zwischen dem Betriebssystem des Zielsystems und den Containern sitzt die „Docker Engine“. Sie ist für die Verwaltung und Ausführung der Container zuständig und abstrahiert die Ressourcen des Hostsystems für die in den Containern laufenden Programme. Dadurch können Container ohne Host-spezifische Anpassungen auf unterschiedlichen Zielsystemen betrieben werden. Im Gegensatz zu der in der IT weiter verbreiteten Virtualisierung mit Hypervisor und virtuellen Maschinen (VM) stellt ein Container einer Anwendung eine komplette Laufzeitumgebung mit allen notwendigen Abhängigkeiten virtuell zur Verfügung, ohne ein komplettes Gastbetriebssystem zu beinhalten. Dadurch verbrauchen Container weniger Ressourcen, sind leichter zu portieren und starten schneller. „Die Docker-Container sind eine leichtgewichtige Form der Virtualisierung auf Applikations-Ebene“, so Breisig.
Entwicklung innovativer Web-Applikationen
Unter Verwendung der Docker-Technologie entwickelt Porsche Engineering seit zweieinhalb Jahren Web-Applikationen nach dem Client-Server-Prinzip. In dieser Zeit sind bereits mehrere Anwendungen für den MIB3 entstanden: Die Kalender-App ermöglicht es beispielsweise, verschiedene Kalender – etwa von Office 365, Google oder vom Smartphone – zu kombinieren und auf dem Infotainment-Display anzuzeigen. Sie war beim Porsche Taycan von Beginn an bereits an Bord. Die Stocks-App zeigt aktuelle Aktienkurse an, und die App „Data Plan“ informiert über das Datenvolumen, das in einem bestimmten Zeitraum zulasten der SIM-Karte im MIB3 angefallen ist.
Unabhängig: Durch die Docker-Technologie werden die Update-Zyklen von Apps und MIB3 entkoppelt.
Neben solchen Serienprojekten beschäftigen sich die Softwareentwickler von Porsche Engineering auch mit innovativen Zukunftsideen. „Wir suchen ständig nach innovativen und sinnvollen neuen Use Cases, die wir im ersten Schritt als Proof of Concept realisieren“, sagt Breisig. „Dabei wollen wir herausfinden, welche Features einen spürbaren Mehrwert für den Kunden bringen, was unter den gegebenen Rahmenbedingungen umsetzbar ist und welche Limitierungen es seitens des Systems oder externer Schnittstellen gibt.“ Zu den aktuellen Innovationsprojekten gehört unter anderem der City Tour Guide: Angereichert mit Informationen und Bildern von verschiedenen Content-Providern werden Sehenswürdigkeiten, Restaurants und andere Points of Interest (POI) in der näheren Umgebung angezeigt. Zudem kann eine Turn-by-Turn-Navigation geplant und durchgeführt werden. Ergänzt wird das Proof of Concept um eine Augmented-Reality-Smartphone-App: Sobald das Smartphone auf einen POI ausgerichtet wird, werden Zusatzinformationen zu ihm auf dem Beifahrerdisplay des Taycan angezeigt. Nachdem ein Proof of Concept einen funktional erlebbaren Stand erreicht hat, wird es einem Gremium vorgestellt, das entscheidet, ob dieses zur Serienreife weiterentwickelt werden soll.
Kunden können solche Apps jederzeit „over the air“ herunterladen. Sie müssen nicht mehr bis zu einem Software-Update des MIB3 warten, wodurch die Update-Zyklen der Anwendungen von denen des Infotainmentsystems entkoppelt werden – genauso wie beim PC oder Smartphone, bei denen man neue Programme unabhängig von neuen Versionen des Betriebssystems installieren kann. Die Softwareentwickler wiederum profitieren von der Trennung zwischen Zielsystem und Applikation: „Wir können Applikationen dank der Docker-Container viel schneller entwickeln, weil wir nicht mehr detailliert in das Zielsystem schauen müssen“, erklärt Breisig. „Dadurch konnten wir uns ein völlig neues Geschäftsfeld erschließen.“
Werkzeugkasten zur App-Entwicklung
Um auch anderen Unternehmen die App-Entwicklung für den MIB3 zu erleichtern, stellt Porsche Engineering ihnen seit Mitte 2018 ein Software Development Kit (SDK) zur Verfügung. Das SDK ist eine für das MIB3 entwickelte Sammlung von Werkzeugen und Bibliotheken, die den gesamten Entwicklungsprozess einer Applikation vom Aufsetzen des Projekts über die Programmierung bis hin zum Release vereinfacht und beschleunigt. So müssen sich beispielsweise alle neuen Apps beim MIB3 registrieren – eine recht aufwendige Prozedur, deren Umsetzung das SDK dem Programmierer weitgehend abnimmt. Es stellt zudem einfache Schnittstellen bereit, um Funktionen anderer Apps wie der Navigation zu nutzen. Statt eine Unzahl von Parametern zu übergeben, reichen einfache Kommandos zur Übergabe des Ziels und zum Starten der Zielführung.
Applikationen für den MIB3: Mit der „City Tour Guide“-App lassen sich Routen zwischen POIs planen (oben). Zudem macht sie intermodale Routenvorschläge (unten).
Zu den ersten Anwendern des SDK gehörten Anfang des Jahres die 36 Teilnehmer des ersten einwöchigen MIB3-Hackathons in Weissach. Ziel war es, innovative Ideen als lauffähige Prototypen zu verwirklichen. Dabei profitierten die Teilnehmer von den Werkzeugen und Bibliotheken des SDK und konnten schnell erste Erfolge feiern. Tobias Schug war einer von ihnen: „Ich hatte einen sehr guten Eindruck vom SDK“, berichtet der Softwareentwickler, der bei der Porsche AG an der Cloud-Plattform „Gravity“ mitarbeitet. „Man kommt damit schneller zum Ziel, weil man nicht für alles den Code selbst schreiben muss – etwa für Frontend-Komponenten, die Bilder oder Texte anzeigen.“ Auch von der Container-Technologie ist er überzeugt: „Das ist wirklich eine sehr gute Möglichkeit, Apps zu verpacken und auszuliefern“, sagt Schug.
In Zukunft wird das SDK parallel zur Weiterentwicklung des MIB3 um neue Funktionen ergänzt, etwa um über den integrierten WLAN-Hotspot den Datenaustausch zwischen dem MIB und externen Geräten zu ermöglichen. „Durch das selbst entwickelte SDK sowie das Know-how in den Bereichen Docker, Web-Architekturen und Web-Frameworks wie Angular sind wir eine Anlaufstelle für progressive Web-Entwicklung“, fasst Breisig zusammen.
Architekturübersicht
Apps werden auf dem MIB3 innerhalb von Docker-Containern ausgeführt. Sie bestehen aus App Service und WebApp: Der App Service ist eine Node.js®-Applikation, die die Anwendungslogik enthält. Er kann mit anderen Services des MIB3 (z. B. der Navigation) oder über den Web Proxy mit Cloud Services interagieren und Daten austauschen. Die WebApp stellt bei Aufruf der App das User Interface auf Angular- und HTML5-Basis dar.
Während der Entwicklung kann die Entwicklungsumgebung mit dem MIB3 verbunden werden. So lassen sich dessen Schnittstellen direkt verwenden, ohne eine App bei jedem Entwicklungsschritt auf das MIB3 spielen zu müssen.
Info
Text erstmals erschienen im Porsche Engineering Magazin, Ausgabe 2/2019.
Text: Christian Buck
Mitwirkende: Fabian Breisig, Thomas Pretsch
Copyright: Alle in diesem Artikel veröffentlichten Bilder, Videos und Audio-Dateien unterliegen dem Copyright. Eine Reproduktion oder Wiedergabe des Ganzen oder von Teilen ist ohne die schriftliche Genehmigung von Porsche Engineering nicht gestattet. Bitte kontaktieren Sie uns für weitere Informationen.
Kontakt
Sie haben Fragen oder möchten weitere Informationen? Wir freuen uns über Ihre Kontaktaufnahme: info@porsche-engineering.de
Verbrauchsangaben
Die Taycan Modelle
Stromverbrauch (in kWh/100 km) kombiniert: 26,9-24,6 kWh/100 km
CO₂-Emissionen kombiniert: 0 g/km