Automotive

Softwaretechnik für pilotiertes Fahren

Seite: 3/4

Firma zum Thema

2.2 Fast Data Plattform

Der Trend der Vernetzung wird sich in Zukunft weiter fortsetzen, und das Auto wird mehr und mehr mit seiner Umwelt interagieren. Die Car-to-X-Kommunikation ist jedoch nur eine Ausprägung – zusätzlich können durch die Kommunikation der Fahrzeuge mit einem zentralen IT-Backend viele Daten dezentral gesammelt und im nächsten Schritt zentral verarbeitet und aggregiert werden. Durch den gezielten Transfer zurück an die Fahrzeuge können so komplexe Informationen in der Flotte oder im Schwarm geteilt und genutzt werden. Es entsteht eine Schwarmintelligenz. Dadurch können beispielsweise frühzeitiger Verkehrsstörungen erkannt und Gefahrensituationen gemeldet, aber auch globale Handlungsstrategien für eine Flotte abgeleitet werden.

Ein Beispiel für eine sogenannte Fast Data Platform ist in Abbildung 6 in der Bildergalerie dargestellt. Diese bietet die Möglichkeit, Daten quasi in Echtzeit zu verarbeiten, was für das pilotierte Fahren essentiell ist. Dabei spielt das stream processing eine zentrale Rolle. Mit diesem Paradigma aus der Informatik werden Sequenzen von (Eingangs-)Daten mit bestimmten Operationen und Methoden aus der Algorithmik verarbeitet, anschließend werden die aggregierten Daten in einer No-SQL-Datenbank gespeichert. Methoden aus dem Bereich Künstliche Intelligenz und Machine Learning stellen auch hier eine Schlüsseltechnologie dar. Die Fahrzeuge können nun je nach Situation und Use Case gezielte Anfragen an die Plattform absetzen und so die relevanten Informationen abfragen.

Bildergalerie
Bildergalerie mit 14 Bildern

Eine zentrale Frage ist nun, wie das Konzept in eine IT-Infrastruktur integriert und auf Basis der traffic load horizontal skaliert werden kann. Dieses sogenannte scale-out bedeutet die Steigerung der Performance des Systems durch dynamisches Hinzufügen weiterer Rechnerknoten on-demand. Diese ist in der Regel für eine Grundlast statisch konfiguriert und wird um einen dynamischen Teil erweitert, sodass auf Änderungen schnell und flexibel reagiert werden kann, beispielsweise im Feierabendverkehr. Dabei kann die IT-Infrastruktur durch ein Rechenzentrum vor Ort oder einer Online-Cloud-Lösung dargestellt werden.

Mit Hilfe von Containertechnologien können diese Problemstellungen effizient gelöst werden. Die Anwendungen werden in Containern inklusive aller notwendigen Pakete, Binaries und Libraries gekapselt. Diese lassen sich auf diese Weise leicht zwischen verschiedenen Hosts transportieren, ohne großen Overhead starten und damit unabhängig voneinander horizontal skalieren. Dies vereinfacht die Handhabung und Bereitstellung von Anwendungen enorm, da diese auch eigenständig sowie voneinander isoliert ablaufen. Des Weiteren wird eine Trennung von Ressourcen erreicht, die Container stellen jedoch keine virtuelle Maschine dar. Abbildung 7 in der Bildergalerie zeigt den Ansatz grafisch, die Infrastruktur wird dabei vom Betreiber zur Verfügung gestellt (IaaS – Infrastructure-as-a-Service). Zu den verschiedenen Ebenen existiert eine Vielzahl an Produkten, Frameworks und Tools, z. B. Docker, Mesosphere als Data Center OS, u.v.m.

Das Deployment der Container kann beispielsweise mit Docker Machine und Docker Swarm durchgeführt werden, Docker Compose unterstützt basierend auf YAML-Konfigurationsfiles bei der Orchestrierung.

Das Containerkonzept passt hervorragend zum Microservice-Architektur-Ansatz. Mit diesem Architekturpattern wird eine komplexe Anwendung aus vielen kleinen (micro) unabhängigen Diensten (Services) mit jeweils klar definierten Aufgaben modular zusammengebaut. Zur Kommunikation wird eine Programmierschnittstelle definiert, die etwa über Publish/Subscribe-Mechanismen zu einer losen Kopplung führt. Die einzelnen Services werden nun in separate Container gekapselt. Damit ergibt sich eine hohe Portabilität, auch können die Dienste unabhängig voneinander skaliert und neu gestartet werden.

Zusätzlich ergeben sich weitere Vorteile für Microservices (Auszug):

  • Unabhängige Entwicklung der Services
  • Nutzung unterschiedlicher Programmiersprachen und Technologien pro Microservice
  • Enabler für DevOps-Prinzipien
  • Starten einer neuen Instanz bei Ausfall eines Services

Gerade der letzte Punkt ist essentiell für hochverfügbare und fehlertolerante Systeme (Resilienz). Darüber hinaus ergeben sich in den Bereichen Cluster Monitoring & Management, Workflow Management und Data Security weitere Punkte, die in enger Verzahnung mit der IT-Abteilung zu bearbeiten sind.

Im Cloud Computing existieren noch weitere interessante Ansätze für die Entwicklung. Dabei werden mehr und mehr Schichten des Cloud-Stacks durch den Cloud-Provider betrieben:

  • Platform-as-a-Service (PaaS): OS und Middleware
  • Software-as-a-Service (SaaS): PaaS-Ansatz und Applikationen + Datenhaltung

Function-as-a-Service (FaaS) ist eine neue Entwicklung, mit der Funktionen ohne Kenntnisse der Infrastruktur sehr schnell und einfach entwickelt, und auch gehostet werden können.

(ID:44546837)