DE102021209627A1 - System und Verfahren zum Ausführen von funktional gleichen Applikationen - Google Patents

System und Verfahren zum Ausführen von funktional gleichen Applikationen Download PDF

Info

Publication number
DE102021209627A1
DE102021209627A1 DE102021209627.1A DE102021209627A DE102021209627A1 DE 102021209627 A1 DE102021209627 A1 DE 102021209627A1 DE 102021209627 A DE102021209627 A DE 102021209627A DE 102021209627 A1 DE102021209627 A1 DE 102021209627A1
Authority
DE
Germany
Prior art keywords
cloud
application
respective application
input data
functionally identical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021209627.1A
Other languages
English (en)
Inventor
Uwe Wilbrand
Bernd Gassmann
Charles Kalleppally
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021209627.1A priority Critical patent/DE102021209627A1/de
Priority to US17/887,087 priority patent/US20230066444A1/en
Priority to CN202211067490.8A priority patent/CN115723769A/zh
Publication of DE102021209627A1 publication Critical patent/DE102021209627A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0015Planning or execution of driving tasks specially adapted for safety
    • B60W60/0018Planning or execution of driving tasks specially adapted for safety by employing degraded modes, e.g. reducing speed, in response to suboptimal conditions
    • B60W60/00186Planning or execution of driving tasks specially adapted for safety by employing degraded modes, e.g. reducing speed, in response to suboptimal conditions related to the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/029Adapting to failures or work around with other constraints, e.g. circumvention by avoiding use of failed parts
    • B60W2050/0292Fail-safe or redundant systems, e.g. limp-home or backup systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • B60W50/045Monitoring control system parameters
    • B60W2050/046Monitoring control system parameters involving external transmission of data to or from the vehicle, e.g. via telemetry, satellite, Global Positioning System [GPS]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2756/00Output or target parameters relating to data
    • B60W2756/10Involving external transmission of data to or from the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die Erfindung betrifft ein System zum Ausführen von funktional gleichen Applikationen, umfassend:
ein mehrere Cloudinstanzen umfassendes Cloudsystem,
wobei die mehreren Cloudinstanzen jeweils eingerichtet sind, jeweils eine funktional gleiche Applikation basierend auf gleichen Eingangsdaten auszuführen, wobei das jeweilige Ausführen ein Verarbeiten der Eingangsdaten durch die jeweilige Applikation umfasst, um jeweils ein Applikations-Ergebnis auszugeben, und
eine Vergleichseinrichtung, welche eingerichtet ist, die jeweiligen Applikations-Ergebnisse zu vergleichen, um ein Vergleichsergebnis zu ermitteln und das ermittelte Vergleichsergebnis auszugeben.
Die Erfindung betrifft weiter ein Verfahren zum Ausführen von funktional gleichen Applikationen, ein Computerprogramm und ein maschinenlesbares Speichermedium.

Description

  • Die Erfindung betrifft ein System zum Ausführen von funktional gleichen Applikationen, ein Verfahren zum Ausführen von funktional gleichen Applikationen, ein Computerprogramm und ein maschinenlesbares Speichermedium.
  • Stand der Technik
  • Die Offenlegungsschrift US 2021/00274145 A1 offenbart ein System und ein Verfahren zum verteilten Rechnen unter Verwendung von Grafikprozessoren.
  • Die Offenlegungsschrift WO 2020/121292 A1 offenbart eine Datenverarbeitung in einer serverlosen Umgebung.
  • Die Patentschrift US 10,698,625 B2 offenbart eine Daten-Pipeline-Architektur.
  • Offenbarung der Erfindung
  • Die der Erfindung zugrunde liegende Aufgabe ist darin zu sehen, ein Konzept zum Ausführen von funktional gleichen Applikationen bereitzustellen.
  • Diese Aufgabe wird mittels des jeweiligen Gegenstands der unabhängigen Ansprüche gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand von jeweils abhängigen Unteransprüchen.
  • Nach einem ersten Aspekt wird ein System zum Ausführen von funktional gleichen Applikationen bereitgestellt, umfassend:
    • ein mehrere Cloudinstanzen umfassendes Cloudsystem,
    • wobei die mehreren Cloudinstanzen jeweils eingerichtet sind, jeweils eine funktional gleiche Applikation basierend auf gleichen Eingangsdaten auszuführen, wobei das jeweilige Ausführen ein Verarbeiten der Eingangsdaten durch die jeweilige Applikation umfasst, um jeweils ein Applikations-Ergebnis auszugeben, und
    • eine Vergleichseinrichtung, welche eingerichtet ist, die jeweiligen Applikations-Ergebnisse zu vergleichen, um ein Vergleichsergebnis zu ermitteln und das ermittelte Vergleichsergebnis auszugeben.
  • Nach einem zweiten Aspekt wird ein Verfahren zum Ausführen von funktional gleichen Applikationen unter Verwendung eines mehrere Cloudinstanzen umfassenden Cloudsystems bereitgestellt, umfassend die folgenden Schritte: jeweiliges Ausführen einer funktional gleichen Applikation basierend auf gleichen Eingangsdaten auf den Cloudinstanzen, wobei das jeweilige Ausführen ein Verarbeiten der Eingangsdaten durch die jeweilige Applikation umfasst, um jeweils ein Applikations-Ergebnis auszugeben,
    Vergleichen der jeweiligen Applikations-Ergebnisse, um ein Vergleichsergebnis zu ermitteln, und
    Ausgeben des ermittelten Vergleichsergebnisses.
  • Nach einem dritten Aspekt wird ein Computerprogramm bereitgestellt, welches Befehle umfasst, die bei Ausführung des Computerprogramms durch einen Computer, beispielsweise durch das System nach dem ersten Aspekt, diesen veranlassen, ein Verfahren gemäß dem zweiten Aspekt auszuführen.
  • Nach einem vierten Aspekt wird ein maschinenlesbares Speichermedium bereitgestellt, auf dem das Computerprogramm nach dem dritten Aspekt gespeichert ist.
  • Die Erfindung basiert auf der Erkenntnis und schließt diese mit ein, dass die obige Aufgabe dadurch gelöst wird, indem mehrere Cloudinstanzen verwendet werden, um funktional gleiche Applikationen basierend auf den gleichen Eingangsdaten auszuführen. Dadurch wird zum Beispiel der technische Vorteil bewirkt, dass eine Hochverfügbarkeit der der funktional gleichen Applikationen entsprechenden Funktion bewirkt werden kann. Selbst wenn eine Cloudinstanz ausfallen sollte, so stehen immer noch eine oder mehrere weitere Cloudinstanzen zur Verfügung, um die Applikationen ausführen zu können, um so letztlich die Funktion bereitstellen zu können.
  • Dies ist insbesondere für Anwendungen von Vorteil, bei denen es auf Sicherheit und Hochverfügbarkeit ankommt. Ein Beispiel, welches nachfolgend später erläutert wird, ist das zumindest teilautomatisierte Führen eines Kraftfahrzeugs. Hier werden Eingangsdaten, beispielsweise Umfelddaten, welche ein Umfeld des Kraftfahrzeugs beschreiben, verarbeitet, um zum Beispiel Objekte im Umfeld des Kraftfahrzeugs zu detektieren. Basierend auf den detektierten Objekten werden zum Beispiel Steuersignale zum zumindest teilautomatisierten Steuern einer Quer- und/oder Längsführung des Kraftfahrzeugs erzeugt und ausgegeben. Es besteht bei diesem Verarbeiten ein Bedarf an Hochverfügbarkeit.
  • Dadurch, dass mehrere funktional gleiche Applikationen ausgeführt werden, welche die gleichen Eingangsdaten verarbeiten, stehen entsprechend mehrere Applikations-Ergebnisse, also die Ergebnisse der Schritte des Verarbeitens der gleichen Eingangsdaten durch die Applikationen, zur Verfügung. Basierend auf diesen Ergebnissen werden zum Beispiel Entscheidungen getroffen und/oder Maßnahmen durchgeführt und/oder Maschinen gesteuert. Insbesondere in sicherheitskritischen Umgebungen besteht ein Bedarf, dass die Ergebnisse zuverlässig sind, dass ihnen vertraut werden kann, dass sie also korrekt sind.
  • Im Idealfall sollten alle Applikationen zum gleichen Ergebnis gelangen, zumindest im Rahmen von üblichen Toleranzen. Sofern die Ergebnisse zumindest teilweise unterschiedlich sind, kann dies ein Zeichen dafür sein, dass den Ergebnissen zum Beispiel nicht getraut oder nur eingeschränkt getraut werden kann. Zum Beispiel wird in einem solchen Fall eine Sicherheitsmaßnahme durchgeführt: Zum Beispiel wird eine Maschine in einen sicheren Zustand gefahren.
  • Im vorstehenden Beispiel des zumindest teilautomatisierten Führen eines Kraftfahrzeugs kann zum Beispiel vorgesehen sein, dass die Steuersignale derart erzeugt werden, dass bei einem zumindest teilautomatisierten Steuern der Quer- und/oder Längsführung des Kraftfahrzeugs basierend auf den Steuersignalen das Kraftfahrzeug verzögert und zum Beispiel anhält oder zum Beispiel mit einer geringeren Geschwindigkeit weiterfährt als vor der Verzögerung und/oder einen Abstand zu einem vorausfahrenden Verkehrsteilnehmer, beispielsweise einem Kraftfahrzeug oder einem Fahrradfahrer, vergrößert.
  • Dadurch, dass mehrere Applikations-Ergebnisse zur Verfügung stehen, kann zum Beispiel im Rahmen des Vergleichs ermittelt werden, welche Ergebnisse die Mehrheit bilden, sodass das der Mehrheit entsprechende Ergebnis als gültig, also als richtig, angesehen wird. Dadurch können zum Beispiel die hohen Anforderungen, welche an sicherheitskritische Anwendungen gestellt, erfüllt werden. Solche Anforderungen sind zum Beispiel in der ISO 26262 definiert.
  • Zusammenfassend wird ein Konzept zum Ausführen von funktional gleichen Applikationen bereitgestellt, welches eine Hochverfügbarkeit bewirkt und welches hohe Sicherheitsanforderungen erfüllt.
  • Nach einer Ausführungsform des Systems ist vorgesehen, dass in den Cloudinstanzen jeweils eine Kubernetes-basierte Überwachung implementiert ist, welche eingerichtet ist, das Ausführen der Applikation zu überwachen.
  • Dadurch wird zum Beispiel der technische Vorteil bewirkt, dass das Ausführen der Applikation effizient überwacht werden kann. Eine Kubernetes-basierte Überwachung umfasst zum Beispiel eine Kubernetes-Plattform und/oder eine Kubernetes-Infrastruktur. Die Kubernetes-basierte Überwachung kann zum Beispiel in Hardware und/oder in Software implementiert sein.
  • In einer Ausführungsform des Systems ist vorgesehen, dass die Vergleichseinrichtung eingerichtet ist, die jeweiligen Applikations-Ergebnisse Lockstep-basierend zu vergleichen.
  • Dadurch wird zum Beispiel der technische Vorteil bewirkt, dass die Applikations-Ergebnisse effizient verglichen werden können.
  • Gemäß dieser Ausführungsform ist also vorgesehen, dass der Lockstep, wie er bisher bei Mikrocontrollern und Prozessoren angewandt wurde, auf die Cloud übertragen wird. Lockstep-basierend bedeutet also, dass das Verarbeiten der Eingangsdaten durch zwei oder mehr ausführenden Einheiten (Anwendungen) auf jeweils einer Cloud-Infrastruktur verteilt, also mehrfach, ausgeführt wird. Die Applikationen berechnen unabhängig voneinander ein Applikations-Ergebnis. Diese Applikations-Ergebnisse werden zusammengeführt und miteinander verglichen. Ist der Vergleich erfolgreich, wird das Applikations-Ergebnis zur Weiterverarbeitung genutzt und ansonsten verworfen oder als nicht verlässlich gekennzeichnet (Konfidenz).
  • Der Vergleich kann zum Beispiel ein exakter sein und jeweils ein Vergleichen der kompletten Applikations-Ergebnisse umfassen. Der Vergleich kann zum Beispiel auch aus Effizienzgründen nur jeweils eine Prüfsumme und/oder Hash und/oder Fingerprint der Applikations-Ergebnisse vergleichen.
  • Ein fehlerhafter Vergleich führt zum Beispiel bei zwei Cloud-Instanzen zum Verwerfen des Applikations-Ergebnisses. Bei mehreren Cloud-Instanzen kann der Lockstep-Mechanismus zum Beispiel in eine Mehrheitsbewertung mit einer Fehlerkorrektur oder Bewertung des einzelnen Applikationsergebnisses mit einem Grad an Verlässlichkeit übergehen.
  • Die Verteilung kann sich zum Beispiel je nach Fehlerszenarien auf verschiedene Hardware-Instanzen im selben Rechenzentrum beschränken, sich zum Beispiel zusätzlich oder anstelle auf verschiedene netztechnisch getrennte Cloud-Instanzen (auf Englisch: „availability zones“; „Verfügbarkeitszonen“) oder geographisch verteilte Cloud-Instanzen beziehen. Das hängt insbesondere von den Sicherheitsanforderungen und verwendeten Fehlerszenarien ab.
  • Der Berechnung kann zum Beispiel von identischen Anwendungen durchgeführt werden, aber zum Beispiel zusätzlich oder anstelle auch von Anwendungen, die nur funktional identisch sind, ansonsten aber unterschiedliche Algorithmen, Programmiersprachen oder -techniken verwenden, ebenfalls abhängig von den betrachteten Fehlerszenarien.
  • In einer Ausführungsform des Systems ist vorgesehen, dass die Vergleichseinrichtung eingerichtet ist, die jeweiligen Applikations-Ergebnisse zu bewerten, sodass das Vergleichen der jeweiligen Applikations-Ergebnisse ein Vergleichen der bewerteten Applikations-Ergebnisse umfasst.
  • Dadurch wird zum Beispiel der technische Vorteil bewirkt, dass die Applikations-Ergebnisse effizient verglichen werden können.
  • Das Applikations-Ergebnisse werden zum Beispiel verwendet, zum Beispiel bei Gleichheit oder zum Beispiel nach Mehrheitsvotum, oder zum Beispiel verworfen, zum Beispiel bei Ungleichheit, im Fehlerfall und/oder bei Minderheit.
  • Zum Beispiel handelt es sich beim Vergleich um eine Prüfung, dass die Darstellung der Applikations-Ergebnisse als Bitfolge in allen Fällen identisch ist.
  • Gemäß einer Ausführungsform ist vorgesehen, dass der Vergleich umfasst, die Applikations-Ergebnisse jeweils auf eine Prüfsumme und/oder einen Fingerprint und/oder eine komprimierte Darstellung zu reduzieren und diese zu vergleichen.
  • Insbesondere bei einer großen Anzahl von Applikations-Ergebnissen und/oder bei Applikations-Ergebnissen, welche eine Vielzahl an, insbesondere unterschiedlichen, Informationen beschreiben, z.B. Objektlisten von Objekten im Umfeld eines Kraftfahrzeugs, wobei der Zustand jedes Objekts zum Beispiel durch eine Menge Attribute beschrieben wird, ist ein solches Vorgehen effizient und sinnvoll, insofern zum Beispiel weniger Daten für den Vergleich verarbeitet werden müssen, was den Vergleich beschleunigen kann,
  • In einer Ausführungsform ist vorgesehen, dass das Bewerten umfasst, dass festgelegt wird, dass bei Rundungsunterschieden und/oder Reihenfolgen in (Objekt-Listen) und/oder ähnlichen Abweichungen zwischen zwei oder mehr Applikations-Ergebnisse diese dennoch jeweils gleich sind.
  • Wird das Verarbeiten der Eingangsdaten nicht durch identische, sondern nur funktional gleiche Applikationen ermittelt, kann es notwendig und sinnvoll sein, beim Vergleich Rundungsunterschiede und/oder Reihenfolgen in Objekt-Listen und/oder ähnliche Abweichungen zu berücksichtigen und die jeweiligen Applikations-Ergebnisse dennoch als gleich zu bewerten.
  • In einer Ausführungsform des Systems ist vorgesehen, dass die jeweiligen Applikations-Ergebnisse abhängig von der jeweiligen Cloudinstanz zu bewerten, in welcher die entsprechende Applikation ausgeführt wurde.
  • Dadurch wird zum Beispiel der technische Vorteil bewirkt, dass die Applikations-Ergebnisse effizient bewertet werden können.
  • In einer Ausführungsform des Systems ist vorgesehen, dass die Cloudinstanzen jeweils durch eine oder mehrere der folgenden Cloudinstanzattribute charakterisiert sind, wobei die Vergleichseinrichtung eingerichtet ist, die jeweiligen Applikations-Ergebnisse abhängig von einem oder mehrere der Cloudinstanzattribute zu bewerten: Ort, Rechenkapazität, Bandbreite.
  • Dadurch wird zum Beispiel der technische Vorteil bewirkt, dass die jeweiligen Applikations-Ergebnisse effizient bewertet werden können.
  • In einer Ausführungsform des Systems ist vorgesehen, dass die der funktional gleichen Applikationen entsprechende Funktion eine zumindest teilautomatisierte Fahrfunktion, insbesondere eine infrastrukturbasierte zumindest teilautomatisierte Fahrfunktion, umfasst.
  • Dadurch wird zum Beispiel der technische Vorteil bewirkt, dass eine besonders wichtige Funktion zur Verfügung gestellt wird. Insbesondere wird dadurch der technische Vorteil bewirkt, dass Sicherheitsanwendungen, wie sie im Rahmen des zumindest teilautomatisierten Führens eines Kraftfahrzeugs erfüllt sein müssen, effizient erfüllt werden können.
  • In einer Ausführungsform des Systems ist vorgesehen, dass die Eingangsdaten Umfelddaten umfassen, welche ein Umfeld eines Kraftfahrzeugs repräsentieren, wobei das Verarbeiten der Eingangsdaten durch die jeweilige Applikation ein Analysieren der Umfelddaten umfasst, um ein oder mehrere Objekte in dem Umfeld des Kraftfahrzeugs zu detektieren, wobei das jeweilige Applikations-Ergebnis eine Objektliste umfasst, welche das oder die detektierten Objekte in dem Umfeld des Kraftfahrzeugs angibt.
  • Dadurch wird zum Beispiel der technische Vorteil bewirkt, dass die so erstellte Objektliste im Rahmen einer zumindest teilautomatisierten Fahrfunktion effizient und sicher verwendet werden kann.
  • In einer Ausführungsform des Verfahrens ist vorgesehen, dass in den Cloudinstanzen jeweils eine Kubernetes-basierte Überwachung implementiert ist, welche das Ausführen der Applikation überwacht.
  • In einer Ausführungsform des Verfahrens ist vorgesehen, dass die jeweiligen Applikations-Ergebnisse Lockstep-basierend verglichen werden.
  • In einer Ausführungsform des Verfahrens ist vorgesehen, dass die jeweiligen Applikations-Ergebnisse bewertet werden, sodass das Vergleichen der jeweiligen Applikations-Ergebnisse ein Vergleichen der bewerteten Applikations-Ergebnisse umfasst.
  • In einer Ausführungsform des Verfahrens ist vorgesehen, dass die jeweiligen Applikations-Ergebnisse abhängig von der jeweiligen Cloudinstanz bewertet werden, in welcher die entsprechende Applikation ausgeführt wurde.
  • In einer Ausführungsform des Verfahrens ist vorgesehen, dass die Cloudinstanzen jeweils durch eine oder mehrere der folgenden Cloudinstanzattribute charakterisiert sind, wobei die jeweiligen Applikations-Ergebnisse abhängig von einem oder mehrere der Cloudinstanzattribute bewertet werden: Ort, Rechenkapazität, Bandbreite.
  • In einer Ausführungsform des Verfahrens ist vorgesehen, dass die der funktional gleichen Applikationen entsprechende Funktion eine zumindest teilautomatisierte Fahrfunktion, insbesondere eine infrastrukturbasierte zumindest teilautomatisierte Fahrfunktion, umfasst.
  • In einer Ausführungsform des Verfahrens ist vorgesehen, dass die Eingangsdaten Umfelddaten umfassen, welche ein Umfeld eines Kraftfahrzeugs repräsentieren, wobei das Verarbeiten der Eingangsdaten durch die jeweilige Applikation ein Analysieren der Umfelddaten umfasst, um ein oder mehrere Objekte in dem Umfeld des Kraftfahrzeugs zu detektieren, wobei das jeweilige Applikations-Ergebnis eine Objektliste umfasst, welche das oder die detektierten Objekte in dem Umfeld des Kraftfahrzeugs angibt.
  • An dieser Stelle wird angemerkt, dass es bei den Eingangsdaten um beliebige Daten handeln kann. Das hier beschriebene Konzept kann prinzipiell für alle Arten von Cloud-Anwendungen verwendet werden.
  • Gemäß der vorstehenden Ausführungsform können die Eingangsdaten Umfelddaten sein, welche ein Umfeld eines Kraftfahrzeugs beschreiben. Umfelddaten umfassen zum Beispiel Umfeldsensordaten von einem oder von mehreren Umfeldsensoren, zum Beispiel Umfeldsensorrohdaten, beispielsweise in Form von jpeg und/oder Pixelwolken, und/oder vorverarbeitete Umfeldsensorrohdaten, zum Beispiel in Form von Objektlisten von Objekten im Umfeld des Kraftfahrzeugs. Umfelddaten beschreiben insbesondere eine Verkehrssituation einer observierten Örtlichkeit, insbesondere ganz oder in Ausschnitten (räumlich, zeitlich, spektral (Sichtbares Licht, Infrarot, Mikrowelle etc.).
  • Ein Umfeldsensor ist zum Beispiel einer der folgenden Umfeldsensoren: Radarsensor, Videosensor, Lidarsensor, Magnetfeldsensor, Infrarotsensor, Mikrowellensensor, Ultraschallsensor. Ein Umfeldsensor kann zum Beispiel ein Umfeldsensor des Kraftfahrzeugs sein. Ein Umfeldsensor kann zum Bei spiel ein Umfeldsensor einer Infrastruktur sein.
  • Ein Applikationsergebnis umfasst gemäß einer Ausführungsform, insbesondere wenn die Eingangsdaten die vorstehend genannten Umfelddaten umfassen, Objektlisten, die die Verkehrssituation der betrachteten Örtlichkeit beschreiben, sowohl statischer als auch dynamischer Objekte und/oder Steuerinformationen für einzelne Kraftfahrzeug, die deren Fahrkontrolle unterstützen.
  • Applikations-Ergebnisse werden zum Beispiel innerhalb der Cloud-Instanz weiterverarbeitet, und/oder werden zum Beispiel nach außen, zum Beispiel an ein Kraftfahrzeug, gesendet.
  • Ausführungen, die im Zusammenhang mit dem System gemacht sind, gelten analog für das Verfahren und umgekehrt.
  • Nach einer Ausführungsform ist vorgesehen, dass das Verfahren nach dem zweiten Aspekt ein computerimplementiertes Verfahren ist.
  • Eine zumindest teilautomatisierte Fahrfunktion kann das Kraftfahrzeug zumindest teilautomatisiert führen.
  • Die Formulierung „zumindest teilautomatisiertes Führen“ umfasst einen oder mehrere der folgenden Fälle: assistiertes Führen, teilautomatisiertes Führen, hochautomatisiertes Führen, vollautomatisiertes Führen. Die Formulierung „zumindest teilautomatisiert“ umfasst also einen oder mehrere der folgenden Formulierungen: assistiert, teilautomatisiert, hochautomatisiert, vollautomatisiert.
  • Assistiertes Führen bedeutet, dass ein Fahrer des Kraftfahrzeugs dauerhaft entweder die Quer- oder die Längsführung des Kraftfahrzeugs ausführt. Die jeweils andere Fahraufgabe (also ein Steuern der Längs- oder der Querführung des Kraftfahrzeugs) wird automatisch durchgeführt. Das heißt also, dass bei einem assistierten Führen des Kraftfahrzeugs entweder die Quer- oder die Längsführung automatisch gesteuert wird.
  • Teilautomatisiertes Führen bedeutet, dass in einer spezifischen Situation (zum Beispiel: Fahren auf einer Autobahn, Fahren innerhalb eines Parkplatzes, Überholen eines Objekts, Fahren innerhalb einer Fahrspur, die durch Fahrspurmarkierungen festgelegt ist) und/oder für einen gewissen Zeitraum eine Längs- und eine Querführung des Kraftfahrzeugs automatisch gesteuert werden. Ein Fahrer des Kraftfahrzeugs muss selbst nicht manuell die Längs -und Querführung des Kraftfahrzeugs steuern. Der Fahrer muss aber das automatische Steuern der Längs- und Querführung dauerhaft überwachen, um bei Bedarf manuell eingreifen zu können. Der Fahrer muss jederzeit zur vollständigen Übernahme der Kraftfahrzeugführung bereit sein.
  • Hochautomatisiertes Führen bedeutet, dass für einen gewissen Zeitraum in einer spezifischen Situation (zum Beispiel: Fahren auf einer Autobahn, Fahren innerhalb eines Parkplatzes, Überholen eines Objekts, Fahren innerhalb einer Fahrspur, die durch Fahrspurmarkierungen festgelegt ist) eine Längs- und eine Querführung des Kraftfahrzeugs automatisch gesteuert werden. Ein Fahrer des Kraftfahrzeugs muss selbst nicht manuell die Längs -und Querführung des Kraftfahrzeugs steuern. Der Fahrer muss das automatische Steuern der Längs- und Querführung nicht dauerhaft überwachen, um bei Bedarf manuell eingreifen zu können. Bei Bedarf wird automatisch eine Übernahmeaufforderung an den Fahrer zur Übernahme des Steuerns der Längs- und Querführung ausgegeben, insbesondere mit einer ausreichenden Zeitreserve ausgegeben. Der Fahrer muss also potenziell in der Lage sein, das Steuern der Längs- und Querführung zu übernehmen. Grenzen des automatischen Steuerns der Quer- und Längsführung werden automatisch erkannt. Bei einem hochautomatisierten Führen ist es nicht möglich, in jeder Ausgangssituation automatisch einen risikominimalen Zustand herbeizuführen.
  • Vollautomatisiertes Führen bedeutet, dass in einer spezifischen Situation (zum Beispiel: Fahren auf einer Autobahn, Fahren innerhalb eines Parkplatzes, Überholen eines Objekts, Fahren innerhalb einer Fahrspur, die durch Fahrspurmarkierungen festgelegt ist) eine Längs- und eine Querführung des Kraftfahrzeugs automatisch gesteuert werden. Ein Fahrer des Kraftfahrzeugs muss selbst nicht manuell die Längs -und Querführung des Kraftfahrzeugs steuern. Der Fahrer muss das automatische Steuern der Längs- und Querführung nicht überwachen, um bei Bedarf manuell eingreifen zu können. Vor einem Beenden des automatischen Steuerns der Quer- und Längsführung erfolgt automatisch eine Aufforderung an den Fahrer zur Übernahme der Fahraufgabe (Steuern der Quer- und Längsführung des Kraftfahrzeugs), insbesondere mit einer ausreichenden Zeitreserve. Sofern der Fahrer nicht die Fahraufgabe übernimmt, wird automatisch in einen risikominimalen Zustand zurückgeführt. Grenzen des automatischen Steuerns der Quer- und Längsführung werden automatisch erkannt. In allen Situationen ist es möglich, automatisch in einen risikominimalen Systemzustand zurückzuführen.
  • Nach einer Ausführungsform ist vorgesehen, dass das Verfahren gemäß dem zweiten Aspekt mittels des Systems nach dem ersten Aspekt ausgeführt oder durchgeführt wird.
  • Systemmerkmale ergeben sich insbesondere aus entsprechenden Verfahrensmerkmalen und umgekehrt. D. h. also insbesondere, dass sich technische Funktionalitäten des Systems nach dem ersten Aspekt analog aus entsprechenden technischen Funktionalitäten des Verfahrens nach dem zweiten Aspekt und umgekehrt ergeben.
  • Die hier beschriebenen Ausführungsbeispiele und Ausführungsformen können in beliebiger Kombination miteinander kombiniert werden, auch wenn dies nicht explizit beschrieben ist.
  • Eine zumindest teilautomatisierte Fahrfunktion ist gemäß einer Ausführungsform ein Element ausgewählt aus der folgenden Gruppe von zumindest teilautomatisierte Fahrfunktionen: Stauassistenzfunktion, Parkassistenzfunktion, Spurhalteassistenzfunktion, Überholassistenzfunktion, Längsführungsfunktion, Querführungsfunktion, Längs- und Querführungsfunktion.
  • Dadurch wird z. B. der technische Vorteil bewirkt, dass besonders geeignete zumindest teilautomatisierte Fahrfunktionen gewählt werden können.
  • Ein Umfeldsensor im Sinne der Beschreibung ist gemäß einer Ausführungsform einer der folgenden Umfeldsensoren: Radarsensor, LiDAR-Sensor, Ultraschallsensor, Videosensor, Magnetfeldsensor, kapazitativer Sensor, Temperatursensor, Feuchtigkeitssensor, Luftfeuchtigkeitssensor, Audiosensor und Infrarotsensor.
  • In einer Ausführungsform sind die mehreren Cloudinstanzen räumlich verteilt, zum Beispiel auf mehrere Ländern, zum Beispiel auf mehrere Kontinent verteilt.
  • Eine Cloudinstanz ist zum Beispiel wie folgt definiert, umfasst also zum Beispiel folgende Merkmale: Eine Kommunikationsschnittstelle zum Kommunizieren, also insbesondere zum Empfangen der Eingangsdaten und zum Senden des Applikations-Ergebnisses über ein Kommunikationsnetzwerk, und eine Recheneinheit zum Ausführen der Applikation.
  • Eine Cloudinstanz ist zum Beispiel eine Kubernetes-Plattform in der Azure Cloud und stellt zum Beispiel Services auf der Basis von Docker-Container zur Verfügung.
  • Die Cloudinstanz ist zum Beispiel derart eingerichtet, dass die Applikation skalierbar aufgesetzt werden kann und deren Konfiguration und deren Betrieb automatisiert werden kann. Das umfasst zum Beispiel das Aufsetzen von Instanzen, deren Verteilung auf verschiedene (räumlich getrennte, unabhängige) Verfügbarkeitszonen („availability zones“), deren Überwachung und gegebenenfalls Neuinstanziierung ein.
  • Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigen:
    • 1 ein erstes System zum Ausführen von funktional gleichen Applikationen,
    • 2 ein Ablaufdiagramm eines Verfahrens zum Ausführen von funktional gleichen Applikationen,
    • 3 ein maschinenlesbares Speichermedium,
    • 4 mehrere Cloudinstanzen,
    • 5 eine Kubernetes-basierte Überwachung und
    • 6 ein zweites System zum Ausführen von funktional gleichen Applikationen.
  • 1 zeigt ein erstes System 101 zum Ausführen von funktional gleichen Applikationen.
  • Das System 101 umfasst eine erste Cloudinstanz 103, eine zweite Cloudinstanz 105 und eine dritte Cloudinstanz 107. Die erste Cloudinstanz 103 ist eingerichtet, eine erste Applikation 109 auszuführen. Die zweite Cloudinstanz 105 ist eingerichtet, eine zweite Applikation 111 auszuführen. Die dritte Cloudinstanz 107 ist eingerichtet, eine dritte Applikation 113 auszuführen. Bei den drei Applikationen 109, 111, 113 handelt es sich um funktional gleiche Applikationen. Dies bedeutet, dass die drei Applikationen 109, 111, 113 eine gleiche Funktion ausführen. Zum Beispiel können die drei Applikationen 109, 111, 113 identisch sein oder zum Beispiel können Sie sich hinsichtlich ihrer Programmiersprache unterscheiden.
  • Die Cloudinstanzen 103, 105, 107 führen diese funktional gleichen Applikationen 109, 111, 113 basierend auf jeweils gleichen Eingangsdaten aus, wobei das jeweilige Ausführen ein Verarbeiten der Eingangsdaten durch die jeweilige Applikation 109, 111, 113 umfasst, um jeweils ein Applikations-Ergebnis auszugeben.
  • Das erste System 101 umfasst weiter eine Vergleichseinrichtung 115, welche eingerichtet ist, die jeweiligen Applikations-Ergebnisse zu vergleichen, um ein Vergleichsergebnis zu ermitteln und das ermittelte Vergleichsergebnis auszugeben.
  • 2 zeigt ein Ablaufdiagramm eines Verfahrens zum Ausführen von funktional gleichen Applikationen unter Verwendung eines mehrere Cloudinstanzen umfassenden Cloudsystems, umfassend die folgenden Schritte: jeweiliges Ausführen 201 einer funktional gleichen Applikation basierend auf gleichen Eingangsdaten auf den Cloudinstanzen, wobei das jeweilige Ausführen 201 ein Verarbeiten 203 der Eingangsdaten durch die jeweilige Applikation umfasst, um jeweils ein Applikations-Ergebnis auszugeben 205, Vergleichen 207 der jeweiligen Applikations-Ergebnisse, um ein Vergleichsergebnis zu ermitteln, und Ausgeben 209 des ermittelten Vergleichsergebnisses.
  • 3 zeigt ein maschinenlesbares Speichermedium 301, auf dem ein Computerprogramm 303 gespeichert ist. Das Computerprogramm 303 umfasst Befehle, die bei Ausführung des Computerprogramms 303 durch einen Computer diesen veranlassen, ein Verfahren gemäß dem zweiten Aspekt auszuführen.
  • 4 zeigt eine Cloud-Infrastruktur 401, welche verteilt auf eine erste Region 403, eine zweite Region 405 und eine dritte Region 407 implementiert ist, also verteilt ist.
  • Die drei Regionen 403, 405, 407 können sich zum Beispiel sich auf unterschiedlichen Kontinenten befinden.
  • Beispielhaft ist die zweite Region 405 in eine erste Zone 409, eine zweite Zone 411 und eine dritte Zone 413 unterteilt. Beispielhaft befinden sich innerhalb der ersten Zone 409 ein erstes Rechenzentrum 415, ein zweites Rechenzentrum 417 und ein drittes Rechenzentrum 419.
  • Beispielhaft sind in dem dritten Rechenzentrum 419 eine erste Cloudinstanz 421, eine zweite Cloudinstanz 423 und eine dritte Cloudinstanz 425 implementiert, also eingerichtet.
  • Obwohl in 4 nicht gezeigt, können auch für die erste Region 403 und die dritte Region 407 analog zur zweiten Region 405 entsprechende Zonen mit entsprechenden Rechenzentren mit entsprechenden Cloudinstanzen vorgesehen sein. Obwohl nicht gezeigt, können zum Beispiel für die zweite Zone 411 und für die dritte Zone 413 entsprechende Rechenzentren mit entsprechenden implementierten Cloudinstanzen vorgesehen sein. Obwohl nicht gezeigt, können zum Beispiel für das erste Rechenzentrum 415 und für das zweite Rechenzentrum 417 entsprechende Cloudinstanzen implementiert, also eingerichtet, sein.
  • 5 zeigt eine Kubernetes-basierte Überwachung 501.
  • Die Kubernetes-basierte Überwachung 501 umfasst einen Kubernetes-Cluster 503. Der Kubernetes-Cluster 503 umfasst eine Cloud-Provider-API 505, über welche Eingangsdaten empfangen und Applikations-Ergebnisse ausgegeben, also zum Beispiel gesendet, werden können.
  • Der Kubernetes-Cluster 503 umfasst eine erste Node 507, eine zweite Node 509 und eine dritte Node 511.
  • Die erste Node 507 umfasst einen ersten Kube-Proxy 513. Die zweite Node 509 umfasst einen zweiten Kube-Proxy 515. Die dritte Node 511 umfasst einen dritten Kube-Proxy 517.
  • Die erste Node 507 umfasst einen ersten Kubelet 519. Die zweite Node 509 umfasst einen zweite Kubelet 521. Die dritte Node 511 umfasst einen dritten Kubelet 523.
  • Die drei Noden 507, 509, 511 sind Kubernetes-Noden, auch Minion, genannt.
  • Der Kubernetes-Cluster 503 umfasst eine Steuerebene 525, innerhalb welcher mehrere Scheduler 527, mehrere Controller-Manager 529, mehrere API Server 531 und mehrere Cloud-Controller-Manager 533 implementiert sind.
  • In der Steuerebene 525 ist weiter ein etcd 535 implementiert.
  • Eine Kubernetes-basierte Überwachung ist zum Beispiel nach der sogenannten Master-Slave-Architektur aufgebaut. Der Control Plane (Master) steuert mit seinen Komponenten die Nodes (Minions), auf welchen die Container, in welchen die Applikationen ausgeführt werden, laufen.
  • Nachfolgend werden verschiedene Merkmale einer Kubernetes-basierten Überwachung erläutert:
    • Kubernetes Control Plane (Steuerebene 525):
  • Der Kubernetes Control Plane (ehem. Master) ist die Steuereinheit des Clusters, welcher die Pods und die darin enthaltenen Container auf die Nodes verteilt und verwaltet. Zur Verwaltung dieser Aufgaben existieren mehrere Prozesse. Diese können auf einem einzelnen Control Plane oder - zwecks Hochverfügbarkeit - auf mehreren verteilt sein. Die Prozesse teilen sich auf in:
    etcd:
    • Der etcd ist eine von CoreOS entwickelte persistente, leichtgewichtige, verteilte Key-Value-Datenbank zur Speicherung der Konfiguration des Kubernetes Clusters. Diese enthält den Gesamtstatus des Clusters und wird vom API-Server unterhalten.
  • API Server:
  • Der API Server ist eine der wichtigsten Komponenten der Architektur. Er versorgt alle anderen Komponenten bzw. Dienste, interne wie externe, mit JSONformatierten Informationen über eine REST-Schnittstelle. Der API Server speichert alle Informationen persistent im etcd. Die Autorisierung kann über verschiedene Mechanismen erfolgen.
  • Scheduler:
  • Der Scheduler entscheidet als eigenständige Komponente, auf welchem Node ein Pod gestartet wird. Dies ist abhängig von den zur Verfügung stehenden Ressourcen. Er verwaltet die Auslastung der Nodes und überwacht deren Last. Dafür muss der Scheduler die Anforderungen an die Ressourcen eines jeden Pods kennen. Berücksichtigt werden dabei Richtlinien wie QoS, Node-Zugehörigkeiten und z. B. Orte der Nodes im Cluster (Rechenzentren).
  • Controller Manager:
  • Der Controller Manager ist jener Prozess, welcher alle Kontrollmechanismen enthält, in dem z. B. ein DaemonSet oder ein Replication Controller laufen. Er kommuniziert mit dem API Server, um alle Status zu lesen und zu schreiben.
  • Kubernetes Node:
  • Der Kubernetes Node, auch Minion genannt, ist ein einzelner Server für Container. Dazu ist auf jedem dieser Nodes eine Container-Laufzeitumgebung installiert (z. B. Docker oder rkt (Rocket)) sowie die unten beschriebenen Komponenten:
  • Kubelet:
  • Der Kubelet ist für den Status jedes Nodes verantwortlich. Er wird vom Controller Manager gesteuert und übernimmt das Starten und Stoppen von Containern. Wenn ein Container nicht mehr läuft, sorgt das Kubelet auch für den Neustart auf dem gleichen Node. Alle paar Sekunden rapportiert er an den Kubernetes Control Plane über seinen Status. Bei einem Fehler oder der Nichterreichbarkeit des Nodes erkennt der Control Plane dies aufgrund des nicht gemeldeten Status'. Der Controller Manager startet dann die Pods auf anderen „gesunden“ Nodes erneut.
  • Kube-Proxy:
  • Der Kube-Proxy ist ein Proxy mit integrierter Lastausgleichsfunktion. Er öffnet die Ports zu den Container-Services und verwaltet die Verbindungen.
  • cAdvisor:
  • Der cAdvisor ist im Kubelet integriert und zeichnet die Ressourcen eines Containers auf (CPU, Memory). Andere Monitoring-Lösungen können diesen Dienst konsultieren, um Langzeitaufzeichnungen anzubieten.
  • 6 zeigt ein zweites System 601 zum Ausführen von funktional gleichen Applikationen.
  • Das zweite System 601 umfasst eine erste Cloudinstanz 603, eine zweite Cloudinstanz 605 und weitere mehrere Cloudinstanzen 607.
  • Das zweite System 601 umfasst einen Task-Scheduler 609 und eine Vergleichseinrichtung 611.
  • Der Task-Scheduler 609 nimmt Requests (Aufträge, siehe nachstehende Erläuterungen) entgegen und leitet diese an die Cloudinstanzen 603, 605, 607 weiter, die entsprechend die funktional gleiche Applikation ausführen und entsprechend Applikations-Ergebnisse an die Vergleichseinrichtung 611 ausgeben. Die Vergleichseinrichtung 611 vergleicht die jeweiligen Applikations-Ergebnisse und gibt an den Task-Scheduler 609 ein entsprechendes Vergleichsergebnis aus.
  • Der Task-Scheduler 609 nimmt den Auftrag für ein Verarbeiten von der Eingangsdaten von außerhalb des Systems entgegen und verteilt ihn auf zwei oder mehrere Cloudinstanzen, vorliegend die Cloudinstanzen 603, 605, 607. Dabei kann er den Auftrag zum Beispiel durch Metadaten (z.B. eine Sequenznummer) anreichern und/oder auch die empfangenen Eingangsdaten vorverarbeiten und aufbereiten (z.B. Eingangsdaten dekodieren, an ein inneres Modell adaptieren und/oder umrechnen).
  • Das Vergleichsergebnis wird in der Regel an den Task-Scheduler 609 zurückgeführt, weil dieser das Kommunikationsprotokoll mit einem Auftraggeber des Auftrags terminiert und deshalb die Applikations-Ergebnisse wieder an den Auftraggeber zurückgeben kann.
  • Dieses Zurückführen ist nicht zwingend, insbesondere bei Streaming-Anwendungen, bei denen Eingangsdaten kontinuierlich entgegengenommen werden, ohne dass eine Antwort auf jede Einzelnachricht erwartet wird, kann auch die Vergleichseinrichtung 611 die Applikations-Ergebnisse weitergeben und/oder zurückstreamen.
  • Das hier beschriebene Konzept bewirkt in vorteilhafter Weise zum Beispiel die Gewährleistung von „safety“ durch das Cloudsystem. Safety meint hier die Sicherheit, dass keine Fehler durch das Cloudsystem verursacht werden. Dies wird zum Beispiel dadurch erreicht, dass unter Nutzung der durch die Cloudprovider angebotenen Redundanzlösungen (auch regional oder sogar kontinental verteilt) auf mehr als eine laufende Cloudinstanz zurückgegriffen werden kann. Um abzusichern, dass die gewünschte Applikation auf allen Cloudinstanzen jeweils verlässlich läuft, wird sie dort zum Beispiel in einer überwachten Umgebung (z.B. Kubernetes) betrieben. Dies bietet den Nutzen, dass eine „degradierte“ oder inaktive Applikation erkannt, beendet und neugestartet wird.
  • Dies bewirkt in vorteilhafter Weise, dass immer mehr als eine Applikation gleichzeitig verfügbar ist.
  • Weiter ist vorgesehen, die Applikations-Ergebnisse der einzelnen Applikationen miteinander zu vergleichen, um sicherzustellen, dass die auch im vorgegebenen Rahmen gleich sind, bzw. bei Abweichungen entsprechend zu reagieren. Dies erfolgt zum Beispiel durch eine Überwachung (=Vergleich der Ergebnisse) mittels des Lockstepmechanismus.
  • Das hier beschriebene Konzept basiert also insbesondere auf einer Verbindung von vorhandenen Möglichkeiten wie „Hochverfügbarkeit der Applikation“ durch den Cloudprovider mit der Möglichkeit, die einzelne Applikation ständig zu überwachen und ggf. neu starten zu können, und einem Lösungsansatz, wie die einzelnen Applikations-Ergebnisse miteinander verglichen und bewertet werden können (Lockstep), um zu einem Ergebnis zu kommen, welches den hohen Anforderungen seitens Safety (z.B. ISO 26262) genügt.
  • Diesbezüglich zeigt 4, wie verschiedene Anwendungsinstanzen (Cloudinstanzen) an unterschiedlichen geographischen Stellen verteilt werden können (bis hin zu kontinentaler Verteilung). Hiervon werden mindestens 2 Cloudinstanzen verwendet. Auf jeder dieser Cloudinstanzen wird die gewünschte Applikation dann, wie zum Beispiel in 5 gezeigt, zum Beispiel im Rahmen eines Kubernetes-Clusters gestartet und überwacht. Über die Cloudprovider API werden die bearbeiteten Daten (Applikations-Ergebnisse) an die Vergleichseinrichtung (siehe 6) weitergegeben und dort mit den Applikations-Ergebnissen von den anderen Cloudinstanzen verglichen und bewertet. Die Summe dieser Schritte führt in vorteilhafter Weise dazu, dass die für eine akzeptierte Safety-Argumentation notwendige Redundanz gegeben ist und garantiert werden kann.
  • Ist für eine Safety Argumentation eine diversitäre Redundanz erforderlich, so muss dieser Systemaufbau nicht geändert werden. Erreicht wird die Diversität zum Beispiel durch unterschiedliche Algorithmik in den Applikationen, welche in den einzelnen Kubernetes-Clustern laufen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 202100274145 A1 [0002]
    • WO 2020121292 A1 [0003]
    • US 10698625 B2 [0004]

Claims (18)

  1. System (101, 601) zum Ausführen von funktional gleichen Applikationen (109, 111, 113), umfassend: ein mehrere Cloudinstanzen (103, 105, 107, 603, 605, 607) umfassendes Cloudsystem, wobei die mehreren Cloudinstanzen (103, 105, 107, 603, 605, 607) jeweils eingerichtet sind, jeweils eine funktional gleiche Applikation (109, 111, 113) basierend auf gleichen Eingangsdaten auszuführen, wobei das jeweilige Ausführen ein Verarbeiten der Eingangsdaten durch die jeweilige Applikation (109, 111, 113) umfasst, um jeweils ein Applikations-Ergebnis auszugeben, und eine Vergleichseinrichtung (115, 611), welche eingerichtet ist, die jeweiligen Applikations-Ergebnisse zu vergleichen, um ein Vergleichsergebnis zu ermitteln und das ermittelte Vergleichsergebnis auszugeben
  2. System (101, 601) nach Anspruch 1, wobei in den Cloudinstanzen (103, 105, 107, 603, 605, 607) jeweils eine Kubernetes-basierte Überwachung (501) implementiert ist, welche eingerichtet ist, das Ausführen der Applikation (109, 111, 113) zu überwachen.
  3. System (101, 601) nach Anspruch 1 oder 2, wobei die Vergleichseinrichtung (115, 611) eingerichtet ist, die jeweiligen Applikations-Ergebnisse Lockstep-basierend zu vergleichen.
  4. System (101, 601) nach einem der vorherigen Ansprüche, wobei die Vergleichseinrichtung (115, 611) eingerichtet ist, die jeweiligen Applikations-Ergebnisse zu bewerten, sodass das Vergleichen der jeweiligen Applikations-Ergebnisse ein Vergleichen der bewerteten Applikations-Ergebnisse umfasst.
  5. System (101, 601) nach Anspruch 4, wobei die Vergleichseinrichtung (115, 611) eingerichtet ist, die jeweiligen Applikations-Ergebnisse abhängig von der jeweiligen Cloudinstanz (103, 105, 107, 603, 605, 607) zu bewerten, in welcher die entsprechende Applikation (109, 111, 113) ausgeführt wurde.
  6. System (101, 601) nach Anspruch 5, wobei die Cloudinstanzen (103, 105, 107, 603, 605, 607) jeweils durch eine oder mehrere der folgenden Cloudinstanzattribute charakterisiert sind, wobei die Vergleichseinrichtung (115, 611) eingerichtet ist, die jeweiligen Applikations-Ergebnisse abhängig von einem oder mehrere der Cloudinstanzattribute zu bewerten: Ort, Rechenkapazität, Bandbreite.
  7. System (101, 601) nach einem der vorherigen Ansprüche, wobei die der funktional gleichen Applikationen (109, 111, 113) entsprechende Funktion eine zumindest teilautomatisierte Fahrfunktion, insbesondere eine infrastrukturbasierte zumindest teilautomatisierte Fahrfunktion, umfasst.
  8. System (101, 601) nach einem der vorherigen Ansprüche, wobei die Eingangsdaten Umfelddaten umfassen, welche ein Umfeld eines Kraftfahrzeugs repräsentieren, wobei das Verarbeiten der Eingangsdaten durch die jeweilige Applikation (109, 111, 113) ein Analysieren der Umfelddaten umfasst, um ein oder mehrere Objekte in dem Umfeld des Kraftfahrzeugs zu detektieren, wobei das jeweilige Applikations-Ergebnis eine Objektliste umfasst, welche das oder die detektierten Objekte in dem Umfeld des Kraftfahrzeugs angibt.
  9. Verfahren zum Ausführen von funktional gleichen Applikationen (109, 111, 113) unter Verwendung eines mehrere Cloudinstanzen (103, 105, 107, 603, 605, 607) umfassenden Cloudsystems, umfassend die folgenden Schritte: jeweiliges Ausführen (201) einer funktional gleichen Applikation (109, 111, 113) basierend auf gleichen Eingangsdaten auf den Cloudinstanzen (103, 105, 107, 603, 605, 607), wobei das jeweilige Ausführen (201) ein Verarbeiten (203) der Eingangsdaten durch die jeweilige Applikation (109, 111, 113) umfasst, um jeweils ein Applikations-Ergebnis auszugeben (205), Vergleichen (207) der jeweiligen Applikations-Ergebnisse, um ein Vergleichsergebnis zu ermitteln, und Ausgeben (209) des ermittelten Vergleichsergebnisses.
  10. Verfahren nach Anspruch 9, wobei in den Cloudinstanzen (103, 105, 107, 603, 605, 607) jeweils eine Kubernetes-basierte Überwachung implementiert ist, welche das Ausführen der Applikation (109, 111, 113) überwacht.
  11. Verfahren nach Anspruch 9 oder 10, wobei die jeweiligen Applikations-Ergebnisse Lockstep-basierend verglichen werden.
  12. Verfahren nach einem der Ansprüche 9 bis 11, wobei die jeweiligen Applikations-Ergebnisse bewertet werden, sodass das Vergleichen der jeweiligen Applikations-Ergebnisse ein Vergleichen der bewerteten Applikations-Ergebnisse umfasst.
  13. Verfahren nach Anspruch 12, wobei die jeweiligen Applikations-Ergebnisse abhängig von der jeweiligen Cloudinstanz (103, 105, 107, 603, 605, 607) bewertet werden, in welcher die entsprechende Applikation (109, 111, 113) ausgeführt wurde.
  14. Verfahren nach Anspruch 13, wobei die Cloudinstanzen (103, 105, 107, 603, 605, 607) jeweils durch eine oder mehrere der folgenden Cloudinstanzattribute charakterisiert sind, wobei die jeweiligen Applikations-Ergebnisse abhängig von einem oder mehrere der Cloudinstanzattribute bewertet werden: Ort, Rechenkapazität, Bandbreite.
  15. Verfahren nach einem der Ansprüche 9 bis 14, wobei die der funktional gleichen Applikationen (109, 111, 113) entsprechende Funktion eine zumindest teilautomatisierte Fahrfunktion, insbesondere eine infrastrukturbasierte zumindest teilautomatisierte Fahrfunktion, umfasst.
  16. Verfahren nach einem der Ansprüche 9 bis 15, wobei die Eingangsdaten Umfelddaten umfassen, welche ein Umfeld eines Kraftfahrzeugs repräsentieren, wobei das Verarbeiten der Eingangsdaten durch die jeweilige Applikation (109, 111, 113) ein Analysieren der Umfelddaten umfasst, um ein oder mehrere Objekte in dem Umfeld des Kraftfahrzeugs zu detektieren, wobei das jeweilige Applikations-Ergebnis eine Objektliste umfasst, welche das oder die detektierten Objekte in dem Umfeld des Kraftfahrzeugs angibt.
  17. Computerprogramm (303), umfassend Befehle, die bei Ausführung des Computerprogramms (303) durch einen Computer diesen veranlassen, ein Verfahren gemäß einem der Ansprüche 9 bis 16 auszuführen.
  18. Maschinenlesbares Speichermedium (301), auf dem das Computerprogramm (303) nach Anspruch 17 gespeichert ist.
DE102021209627.1A 2021-09-01 2021-09-01 System und Verfahren zum Ausführen von funktional gleichen Applikationen Pending DE102021209627A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102021209627.1A DE102021209627A1 (de) 2021-09-01 2021-09-01 System und Verfahren zum Ausführen von funktional gleichen Applikationen
US17/887,087 US20230066444A1 (en) 2021-09-01 2022-08-12 System and method for executing functionally equivalent applications
CN202211067490.8A CN115723769A (zh) 2021-09-01 2022-09-01 用于实施功能相同的应用程序的系统和方法以及计算机程序和机器可读的存储器介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021209627.1A DE102021209627A1 (de) 2021-09-01 2021-09-01 System und Verfahren zum Ausführen von funktional gleichen Applikationen

Publications (1)

Publication Number Publication Date
DE102021209627A1 true DE102021209627A1 (de) 2023-03-02

Family

ID=85174763

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021209627.1A Pending DE102021209627A1 (de) 2021-09-01 2021-09-01 System und Verfahren zum Ausführen von funktional gleichen Applikationen

Country Status (3)

Country Link
US (1) US20230066444A1 (de)
CN (1) CN115723769A (de)
DE (1) DE102021209627A1 (de)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013205392A1 (de) 2013-03-27 2014-10-02 Bayerische Motoren Werke Aktiengesellschaft Backend für Fahrerassistenzsysteme
DE102014019531A1 (de) 2014-12-23 2016-06-23 Liebherr-Aerospace Lindenberg Gmbh Verfahren zum Betrieb einer Steuerungskomponente für ein Luftfahrzeug sowie Steuerungskomponente
DE102015217386A1 (de) 2015-09-11 2017-03-16 Robert Bosch Gmbh Verfahren und System zum Betreiben eines Kraftfahrzeugs
WO2020121292A1 (en) 2018-12-11 2020-06-18 Signals Analytics Ltd. Efficient data processing in a serverless environment
US10698625B2 (en) 2017-05-15 2020-06-30 Accenture Global Solutions Limited Data pipeline architecture for analytics processing stack
US20210274145A1 (en) 2017-12-13 2021-09-02 Google Llc Methods, systems, and media for generating and rendering immersive video content

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013205392A1 (de) 2013-03-27 2014-10-02 Bayerische Motoren Werke Aktiengesellschaft Backend für Fahrerassistenzsysteme
DE102014019531A1 (de) 2014-12-23 2016-06-23 Liebherr-Aerospace Lindenberg Gmbh Verfahren zum Betrieb einer Steuerungskomponente für ein Luftfahrzeug sowie Steuerungskomponente
DE102015217386A1 (de) 2015-09-11 2017-03-16 Robert Bosch Gmbh Verfahren und System zum Betreiben eines Kraftfahrzeugs
US10698625B2 (en) 2017-05-15 2020-06-30 Accenture Global Solutions Limited Data pipeline architecture for analytics processing stack
US20210274145A1 (en) 2017-12-13 2021-09-02 Google Llc Methods, systems, and media for generating and rendering immersive video content
WO2020121292A1 (en) 2018-12-11 2020-06-18 Signals Analytics Ltd. Efficient data processing in a serverless environment

Also Published As

Publication number Publication date
US20230066444A1 (en) 2023-03-02
CN115723769A (zh) 2023-03-03

Similar Documents

Publication Publication Date Title
DE102017201789B4 (de) Verfahren zum Betrieb eines Kraftfahrzeugs und Kraftfahrzeug
DE69811148T2 (de) Mitgliedschaft in einem unzuverlässigen verteilten Rechnersystem
EP3211533B1 (de) Fehlertolerante systemarchitektur zur steuerung einer physikalischen anlage, insbesondere einer maschine oder eines kraftfahrzeugs
DE102015200422A1 (de) Fahrzeugspezifisches Berechnungsmanagementsystem für Cloud-Datenverarbeitung
EP3704573B1 (de) Verfahren zum durchführen eines softwareupdates in einem steuergerät eines kraftfahrzeugs sowie entsprechend eingerichtetes kraftfahrzeug
EP3929740A1 (de) Verfahren zur orchestrierung einer container-basierten anwendung auf einem endgerät
WO2011082904A1 (de) Verfahren zum betreiben einer recheneinheit
DE102019214453A1 (de) Verfahren zum Ausführen einer Funktion eines Kraftfahrzeugs
DE102014218215A1 (de) System zur Unterstützung bei intermittierender Konnektivität, ein entsprechendes lokales Gerät sowie eine entsprechende Rechnerwolken-Plattform
DE102021209627A1 (de) System und Verfahren zum Ausführen von funktional gleichen Applikationen
DE102015218898A1 (de) Verfahren zur redundanten Verarbeitung von Daten
DE102019214484A1 (de) Verfahren zum sicheren Ermitteln von Infrastrukturdaten
DE102019214482A1 (de) Verfahren zum sicheren zumindest teilautomatisierten Führen eines Kraftfahrzeugs
DE102019111623A1 (de) Lenksteuerapparat und lenksteuerverfahren und lenksystem
DE102019217047A1 (de) Verfahren und Vorrichtung zum Verwalten von Zugriffen mehrerer Softwarekomponenten auf Softwareschnittstellen
DE102018222086A1 (de) Steueranordnung für ein Fahrzeug, Fahrzeug und Verfahren zum Konfigurieren eines fahrzeuginternen Systems
WO2022084176A1 (de) Datenverarbeitungsnetzwerk zur datenverarbeitung
DE102021202935A1 (de) Verfahren und Vorrichtung zum Steuern einer Fahrfunktion
DE102018123563A1 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
DE102017116081A1 (de) Verfahren und Vorrichtung zum Konfigurieren einer Ausführungseinrichtung und zum Erkennen eines Betriebszustands derselben
DE10123822A1 (de) Einrichtung zur Verwaltung einer Dienstverbindung zwischen einem Clientprozess mit einer Single-Thread-Bibliothek und einem Serverprozess
DE112022001622T5 (de) 6fahrzeugsteuervorrichtung und fahrzeugsteuersystem
DE102021130899A1 (de) Elektronische steuerungseinheit, software-aktualisierungsverfahren, software-aktualisierungsprogramm und elektronisches steuerungssystem
DE102019207349A1 (de) Verfahren zum Verarbeiten von Daten für ein zumindest teilautomatisiertes Führen eines Kraftfahrzeugs
DE102022206816A1 (de) Verfahren zum Betreiben eines Steuergeräts

Legal Events

Date Code Title Description
R163 Identified publications notified