DE102022201454A1 - Verfahren zum kompatiblen Einsatz von Softwaremodulen - Google Patents

Verfahren zum kompatiblen Einsatz von Softwaremodulen Download PDF

Info

Publication number
DE102022201454A1
DE102022201454A1 DE102022201454.5A DE102022201454A DE102022201454A1 DE 102022201454 A1 DE102022201454 A1 DE 102022201454A1 DE 102022201454 A DE102022201454 A DE 102022201454A DE 102022201454 A1 DE102022201454 A1 DE 102022201454A1
Authority
DE
Germany
Prior art keywords
software module
compatibility
software
metadata
check
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
DE102022201454.5A
Other languages
English (en)
Inventor
Nicolas Sommer
Holger Niemann
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 DE102022201454.5A priority Critical patent/DE102022201454A1/de
Publication of DE102022201454A1 publication Critical patent/DE102022201454A1/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/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum kompatiblen Einsatz von Softwaremodulen (10, 12), wobei Protokolle (26, 28) vorgesehen sind, die als automatisiert auf einer Transaktionsdatenbank (20) ausgeführte Computerprotokolle implementiert sind, wobei jedem Softwaremodul jeweils eines der Protokolle zugeordnet ist; wobei für jedes Softwaremodul (10, 12) Metadaten (22, 24) durch das Protokoll (26, 28), das dem jeweiligen Softwaremodul zugeordnet ist, gespeichert werden; wobei eine Prüfung (120) der Kompatibilität der Softwaremodule anhand der gespeicherten Metadaten erfolgt; wobei bestimmt wird, dass die Softwaremodule kompatibel einsetzbar sind, wenn die Prüfung erfolgreich ist.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum kompatiblen Einsatz von Softwaremodulen, sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
  • Hintergrund der Erfindung
  • Im Automotive-Bereich werden Steuerungsfunktionen von Fahrzeugkomponenten durch in Steuergeräten ausgeführte Computerprogramme, d.h. durch Software, implementiert. Die Software wird hierbei als sogenannte eingebettete bzw. embedded Software typischerweise speziell für die Hardware (Steuergerät, z.B. ein oder mehrere Mikrocontroller) geschrieben, auf der sie eingesetzt werden soll. Die Software und Hardware muss bestimmte Anforderung erfüllen, um die korrekte Funktion des Fahrzeugs zu gewährleisten. Dies betrifft insbesondere sicherheitsrelevante Steuerungsfunktionen bzw. Fahrzeugkomponenten, für die beispielsweise sogenannte „Automotive Safety Integrity Level“ (ASIL) anzuwenden sind.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zum kompatiblen Einsatz von Softwaremodulen sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Die Erfindung bedient sich der Maßnahme, eine Prüfung der Kompatibilität (bzw. Kompatibilitätsprüfung) von Softwaremodulen mittels Metadaten, die in Protokollen (sogenannten ‚Smart-Contract-Einheiten‘) in einer Transaktionsdatenbank gespeichert sind, durchzuführen. Jedem Softwaremodul ist jeweils eines der Protokolle zugeordnet (vorzugsweise in einer eins-zu-eins-Beziehung). Wenn die Kompatibilitätsprüfung erfolgreich ist, gelten die Softwaremodule als (gemeinsam) kompatibel einsetzbar. Anderenfalls wird insbesondere davon ausgegangen, dass die Softwaremodule nicht kompatibel einsetzbar sind. Es wird dadurch der Einsatz modular aufgebauter Software bei gleichzeitiger Einhaltung von Kompatibilitätsanforderungen ermöglicht. Da die Metadaten in Protokollen in einer Transaktionsdatenbank gespeichert werden, sind diese vor Manipulationen sicher bzw. jede Änderung kann anhand entsprechender protokollierter Transaktionen in der Transaktionsdatenbank manipulationssicher nachgewiesen werden. Die Kompatibilitätsprüfung ist also manipulationssicher.
  • Der Begriff ‚Softwaremodul‘ soll wie üblich ein Computerprogramm-Modul einer Software (bestehend aus einem oder mehreren Computerprogrammen) bezeichnen. Ein Softwaremodul implementiert (indem es entsprechend programmiert ist) typischerweise eine oder mehrere Funktionalitäten, z.B. Steuerungsfunktionalitäten von Steuergeräten. Die Gesamtsteuerungsfunktion, die durch Steuergeräte eines Fahrzeugs oder einer Maschine mittels darin ausgeführter Softwaremodule implementiert wird, ergibt sich aus dem Zusammenwirken von mehreren Softwaremodulen, die miteinander Daten austauschen. Beispielsweise könnte ein Softwaremodul Messdaten erfassen und vorverarbeiten und die vorverarbeiteten Messdaten an ein anderes Softwaremodul (das in derselben oder in einem anderen Steuergerät ausgeführt wird) übermitteln, welches die vorverarbeiteten Messdaten dann zur Steuerung einer Komponente, z.B. eines Motors, verwendet.
  • Es können zur Steuerung verschiedener Fahrzeugkomponenten jeweils eigene Softwaremodule eingesetzt werden, wobei Fahrzeugkomponenten und/oder Softwaremodule von unterschiedlichen Herstellern sein können und ein bestimmtes Softwaremodul auf unterschiedlichen Recheneinheiten ausgeführt werden kann, d.h. die im Mikrocontrollerbereich übliche Bindung der Software an die Hardware ist nicht unbedingt gegeben. Durch die Modularisierung der Steuerungssoftware können die Anpassung der Steuerung einzelner Fahrzeugkomponenten und der Einsatz einer bestimmten Fahrzeugkomponente in verschiedenen Fahrzeugen vereinfacht werden.
  • Wie vorstehend erläutert, wird die Gesamtfunktion einer modularisiert aufgebauten Software durch das Zusammenwirken der Softwaremodule verwirklicht. Damit dies fehlerfrei und so möglich ist, dass die Gesamtfunktion wie gewünscht erreicht wird, insbesondere so, dass vorgegebene Anforderungen an die Software bzw. deren Gesamtfunktion erfüllt werden, müssen die Softwaremodule miteinander ‚kompatibel einsetzbar‘ sein. D.h. wenn die Softwaremodule miteinander kompatibel einsetzbar sind, wird davon ausgegangen, dass die modulare Software die Gesamtfunktion fehlerfrei und wie gewünscht verwirklicht.
  • In dieser Anmeldung wird der Begriff ‚Protokoll‘ für ‚Smart-Contract‘ bzw. ‚intelligenter Vertrag‘ verwendet. Ein Protokoll ist also als ein Computerprotokoll bzw. Computerprogramm implementiert, das automatisiert ausgeführt wird. Ein Protokoll umfasst im Allgemeinen Programmcode und/oder Daten, die in der Transaktionsdatenbank gespeichert sind. Zur Interaktion können Protokolle Funktionenumfassen, etwa um im Protokoll umfasste bzw. gespeicherte Daten abzufragen. Protokolle werden automatisiert ausgeführt, müssen also nicht eigens aufgerufen werden, d.h. die im Programmcode in Form von Funktionen kodifizierten Abläufe werden automatisch durchgeführt, etwa in Reaktion auf das Vorliegen bestimmter Bedingungen oder in Reaktion auf einen Aufruf der jeweiligen Funktion. Bei der Ausführung eines Protokolls bzw. Programmcodes können Daten anfallen oder können Daten geändert werden, dies wird durch die Transaktionsdatenbank in Form von Transaktion gespeichert (etwa in Blöcken einer Blockkette („block chain“)). Ein Protokoll ist also als automatisiert auf der Transaktionsdatenbank ausgeführtes Computerprotokoll implementiert. Die Transaktionsdatenbank kann als Blockkette implementiert sein.
  • Protokolle bzw. Smart-Contract-Einheiten können im Prinzip als Computerprotokolle bzw. Computerprogramme angesehen werden, die einen Vertrag abbilden und insbesondere die Abwicklung und Einhaltung eines Vertrags in automatischer Form ermöglichen. Solche Computerprotokolle (‚Smart-Contract‘, ‚intelligenter Vertrag‘ können durch eine Programmiersprache in einer dezentralen Datenbank, etwa einer Blockkette verwirklicht werden. Hierfür kann z.B. die Programmiersprache Solidity verwendet werden, die eigens zur Implementierung dieser Computerprotokolle entwickelt wurde und z.B. in Ethereum bzw. in der „Ethereum Virtual Machine“ genutzt wird. Neben bekannten, im Prinzip allgemein verfügbaren Transaktionsdatenbanken (Blockketten) wie Ethereum kann auch eine proprietäre Transaktionsdatenbank verwendet werden. Beispielsweise könnte ein Fahrzeughersteller oder Maschinenhersteller eine eigene Transaktionsdatenbank implementieren, in der Protokolle im Sinne der vorliegenden Erfindung, d.h. Protokolle, die Metadaten speichern, automatisiert ausgeführt werden, um den kompatiblen Einsatz von Softwaremodulen in Recheneinheiten bzw. Steuergeräten, die der Steuerung von Komponenten von Fahrzeugen/Maschinen des jeweiligen Herstellers dienen, zu gewährleisten.
  • Bevorzugt erfolgt die Prüfung der Kompatibilität durch wenigstens eine in einem der Protokolle implementierte Prüffunktion. Dies ist vorteilhaft, da so anhand der in der Transaktionsdatenbank gespeicherten Transaktion, die sich auf die Prüfung beziehen, der Ablauf der Prüfung manipulationssicher nachvollzogen werden kann.
  • Bevorzugt beschreiben für jedes der Softwaremodule die Metadaten (unabhängig voneinander) wenigstens eine Eigenschaft des jeweiligen Softwaremoduls und/oder wenigstens eine Anforderung des jeweiligen Softwaremoduls. Beispiele für Eigenschaften sind ein erreichtes Sicherheitslevel, vorzugsweise ein erreichtes ASIL („Automotive Safety Integrity Level“ entsprechend Standard ISO 26262) oder auch ein erreichtes Sicherheitslevel nach IEC 61508 oder ISO 13849, Berechnungszyklen und daraus z.B. Zykluszeiten für zu sendende Daten. Beispiele für Anforderungen sind ein gefordertes Sicherheitslevel, vorzugsweise ein gefordertes ASIL oder auch ein gefordertes Sicherheitslevel nach IEC 61508 oder ISO 13849, Zykluszeiten eines Eingangssignals bzw. zu empfangender Daten, Speicherplatzbedarf.
  • Bevorzugt beschreiben für ein erstes der Softwaremodule die Metadaten wenigstens eine Eigenschaft und für ein zweites der Softwaremodule die Metadaten wenigstens eine Anforderung. Die Prüfung der Kompatibilität schließt ein Prüfen ein, ob die wenigstens eine Eigenschaft des ersten Softwaremoduls der wenigstens einen Anforderung des zweiten Softwaremoduls entspricht. Soweit eine Prüffunktion vorgesehen ist, ist diese Prüffunktion in dem Protokoll, das dem zweiten Softwaremodul zugeordnet ist, implementiert.
  • Weiter bevorzugt werden, wenn die Prüfung erfolgreich ist, Daten, die vom ersten an das zweite Softwaremodul übermittelt werden, durch das zweite Softwaremodul verwendet bzw. verarbeitet.
  • Ebenso weiter bevorzugt werden, wenn die Prüfung nicht erfolgreich ist, Daten, die vom ersten an das zweite Softwaremodul übermittelt werden, vom zweiten Softwaremodul nicht verwendet bzw. verarbeitet.
  • Entsprechend werden je nachdem, ob die Prüfung erfolgreich ist oder nicht, die Daten des ersten Softwaremoduls vom zweiten Softwaremodul verwendet oder nicht. Im Fall einer erfolgreichen Prüfung ist also ein kompatibler Einsatz des ersten und des zweiten Softwaremoduls möglich, wobei der Einsatz hier die Verwendung der Daten einschließt. Im Fall einer nicht erfolgreichen Prüfung (etwa zu geringes ASIL der Daten bzw. des ersten Softwaremoduls), können Fehlfunktionen oder Ähnliches, die sich aus fehlhaften Daten ergeben, im zweiten Softwaremodul verhindert werden (im Sinne der geprüften Anforderungen/Eigenschaften, hier etwa ASIL).
  • Bevorzugt wird wenn die Prüfung der Kompatibilität für ein Softwaremodul erfolgreich ist, das Softwaremodul auf einer Recheneinheit, auf der es zur Installation vorgesehen ist, installiert. Andernfalls, d.h. bei nicht erfolgreicher Prüfung, wird die Installation vorzugsweise unterbunden. Dadurch kann sichergestellt werden, dass nur kompatibel einsetzbare Softwaremodule installiert werden. Die Ausführung nicht kompatibler Softwaremodule wird also von vornherein unterbunden.
  • Bevorzugt werden die Metadaten unveränderlich durch die Protokolle gespeichert. Z.B. ist in den Protokollen keine Schreib- bzw. Änderungsfunktion für die Metadaten implementiert, sondern lediglich eine Lese- bzw. Abfragefunktion. Eine Manipulation ist dadurch ausgeschlossen, bzw. anhand von in der Transaktionsdatenbank protokollierten Transaktionen zumindest nachweisbar.
  • Eine erfindungsgemäße Recheneinheit (z.B. ein Steuergerät eines Kraftfahrzeugs oder einer Maschine), ist, insbesondere programmtechnisch, dazu eingerichtet, die Prüfung der Kompatibilität gemäß einem erfindungsgemäßen Verfahren zu veranlassen oder (selbst) durchzuführen, wenn wenigstens eines der Softwaremodule auf der Recheneinheit ausgeführt wird oder zur Installation auf der Recheneinheit vorgesehen ist. Um die Prüfung der Kompatibilität zu veranlassen, ist die Recheneinheit vorzugsweise eingerichtet, die Prüffunktion in einem Softwaremodul aufzurufen.
  • Bevorzugt ist die Recheneinheit weiter dazu eingerichtet, die Verarbeitung von Daten, die von einem Softwaremodul übermittelt werden, für das die Kompatibilität erfolgreich geprüft ist, durch ein auf der Recheneinheit ausgeführtes Softwaremodul zu veranlassen, und/oder die Installation eines Softwaremoduls, für das die Kompatibilität erfolgreich geprüft ist, zu veranlassen.
  • Ebenso bevorzugt ist die Recheneinheit weiter dazu eingerichtet, die Verarbeitung von Daten, die von einem Softwaremodul übermittelt werden, für das die Kompatibilität nicht erfolgreich geprüft ist, durch ein auf der Recheneinheit ausgeführtes Softwaremodul zu unterbinden, und/oder die Installation eines Softwaremoduls, für das die Kompatibilität nicht erfolgreich geprüft ist, zu unterbinden.
  • Durch diese Ausgestaltungen wird sichergestellt, dass nur kompatibel einsetzbare Softwaremodule gemeinsam verwendet bzw. ausgeführt werden.
  • Zweckmäßigerweise werden diese Funktionalitäten durch ein auf der Recheneinheit ausgeführtes Computerprogramm (Software-Verwaltungsprogramm) implementiert.
  • Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie vorstehend beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
  • Figurenliste
    • 1 zeigt ein Beispiel für eine Kompatibilitätsprüfung zwischen Softwaremodulen in zwei Komponenten bzw. Recheneinheiten gemäß einer bevorzugten Ausführungsform.
    • 2 zeigt ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform.
  • Ausführungsform(en) der Erfindung
  • 1 zeigt ein Beispiel für eine Kompatibilitätsprüfung zwischen Softwaremodulen 10, 12 in zwei Komponenten bzw. Recheneinheiten 14, 16 gemäß einer bevorzugten Ausführungsform. Die Recheneinheiten weisen wie üblich einen oder mehrere Prozessoren, Speicher, Schnittstellen usw. auf.
  • Die zwei Recheneinheiten können z.B. zur Steuerung von Fahrzeugkomponenten oder Maschinenkomponenten unter Verwendung der Softwaremodule dienen. Dabei sind eine erste Recheneinheit 14, in der ein erstes Softwaremodul 10 ausgeführt wird, und eine zweite Recheneinheit 16, in der ein zweites Softwaremodul 12 ausgeführt wird, gezeigt. Durch das erste Softwaremodul 10 werden Daten 18 (z.B. Messwerte, Steueranweisungen, o.Ä.) an das zweite Softwaremodul 12 übermittelt, das die Daten 18 verwenden soll, z.B. um einen Aktor anzusteuern. Das Übermitteln von Daten und Verwenden der Daten kann als gemeinsamer Einsatz der Softwaremodule angesehen werden, wobei durch die Prüfung der Kompatibilität sichergestellt werden soll, dass ein kompatibler Einsatz im Sinne von in Metadaten hinterlegten Informationen (Anforderungen/Eigenschaften) möglich ist. Anders als dargestellt ist es auch denkbar, dass das erste und das zweite Softwaremodul in derselben Recheneinheit ausgeführt werden.
  • Um sicherzustellen, dass das erste Softwaremodul 10 und damit die von diesem übermittelten Daten 18 bestimmte vorgegebene Anforderungen erfüllen, wird eine Kompatibilitätsprüfung durchgeführt. Die Anforderungen können sicherheitsrelevante Anforderungen (z.B. bestimmtes ASIL), technische Anforderungen (z.B., dass die Daten, etwa Messergebnisse, regelmäßig mit bestimmten zeitlichen Maximalabständen übermittelt werden), Anforderungen an das Datenformat, o.Ä. sein.
  • Entsprechend umfassen bzw. beschreiben erste Metadaten 22 des ersten Softwaremoduls 10 Eigenschaften des ersten Softwaremoduls (d.h. Eigenschaften, die vom ersten Softwaremodul erfüllt werden) und zweite Metadaten 24 des zweiten Softwaremoduls 12 umfassen bzw. beschreiben Anforderung des zweiten Softwaremoduls. Selbstverständlich können zusätzlich die ersten Metadaten auch Anforderungen des ersten Softwaremoduls und/oder die zweiten Metadaten auch Eigenschaften beschreiben.
  • Die ersten und die zweiten Metadaten werden jeweils durch (bzw. als) ein erstes Protokoll 26 bzw. zweites Protokoll 28 in einer Transaktionsdatenbank 20 gespeichert. Das erste Protokoll 26 umfasst insbesondere eine (Programm-) Funktion bzw. Abfragefunktion (nicht dargestellt), die eingerichtet ist, d.h. entsprechend programmiert ist, die ersten Metadaten (alle oder eine Teilmenge davon) an ein anderes Protokoll zu übermitteln, wenn dieses andere Protokoll diese Abfragefunktion aufruft bzw. die ersten Metadaten abfragt. Im dargestellten Fall fragt das zweite Protokoll 28 die ersten Metadaten ab, die an das zweite Protokoll 28 übermittelt werden (Pfeil 30). Es kann auch vorgesehen sein, dass nur eine in der Abfrage spezifizierte Teilmenge der ersten Metadaten übermittelt wird.
  • Das zweite Protokoll 28 umfasst insbesondere eine (Programm-)Funktion bzw. Prüffunktion 32, die eingerichtet ist, d.h. entsprechend programmiert ist, anhand von einem anderen Protokoll übermittelter Metadaten zu prüfen, ob die in den zweiten Metadaten 24 beschriebenen Anforderungen des zweiten Softwaremoduls 12 erfüllt sind. Im dargestellten Fall wird durch die Prüffunktion 32 anhand der übermittelten (Pfeil 30) ersten Metadaten 22 bzw. anhand der darin beschriebenen Eigenschaften des ersten Softwaremoduls 10 geprüft, ob das erste Softwaremodul 10 die Anforderungen, die in den zweiten Metadaten 24 beschrieben sind, erfüllt. Die Metadaten weisen insbesondere ein vorbestimmtes Datenformat auf, so dass entsprechende Vergleiche möglich sind. Datenformate können u.a. sein: textbasierte, vereinfachte Auszeichnungssprachen wie XML, JSON, YAML; anwendungsspezifische, binäre Formate; oder Bytecode, in dem Daten und Anwendungsalgorithmus als JIT-Code (just-in-time Code) verbunden sind. Letzteres erlaubt, den konkreten Prüfalgorithmus (bzw. die konkrete Prüffunktion) manipulationssicher in der Transaktionsdatenbank abzulegen. Das ermöglicht, auch mit der Anwendung wachsende Funktionsumfänge zu implementieren, ohne den grundlegenden Manipulationsschutz des ursprünglichen Programms zu gefährden.
  • Wie erwähnt sind das erste und das zweite Protokoll 26, 28 in einer Transaktionsdatenbank 20 realisiert, insbesondere in einer Blockkette, etwa in Ethereum, wobei beispielsweise Solidity als Programmiersprache verwendet wird. In den Protokollen ist ein automatisierter Ablaufplan, der Transaktionen innerhalb der Transaktionsdatenbank ausführen kann, implementiert, d.h. die Protokolle sind als automatisiert auf der Transaktionsdatenbank ausgeführte Computerprotokolle (d.h. im Wesentlichen als Computerprogramme) implementiert. Die Protokolle können als sogenannte „Smart Contracts“ angesehen werden.
  • Wenn die Prüfung erfolgreich ist, wenn also die Anforderungen erfüllt sind, wird das erste Softwaremodul 10 als kompatibel angesehen; ein kompatibler gemeinsamer Einsatz des ersten und des zweiten Softwaremoduls ist also möglich. Entsprechend verwendet das zweite Softwaremodul 12 Daten 18, die vom ersten Softwaremodul 10 übermittelt werden. Wenn die Prüfung nicht erfolgreich ist (mangelnde Kompatibilität, kompatibler Einsatz nicht möglich), wenn also die Anforderungen nicht erfüllt sind, werden vom ersten Softwaremodul 10 übermittelte Daten 18 vorzugsweise nicht durch das zweite Softwaremodul 12 verwendet. Die Prüfung der Kompatibilität erfolgt typischerweise nicht jedes Mal, wenn Daten 18 übermittelt werden, sondern an gewissen Zeitpunkten, etwa wenn das System, das die erste Komponente bzw. das erste Softwaremodul 10 und die zweite Komponente bzw. das zweite Softwaremodul 12 umfasst, konfiguriert wird, oder wenn eine Änderung des ersten und/oder des zweiten Softwaremoduls festgestellt wird. Auch eine Prüfung an vorgegebenen Zeitpunkten, z.B. regelmäßigen Zeitpunkten, oder zufälligen Zeitpunkten ist denkbar.
  • Die Metadaten können jeweils auch kryptographische Daten, z.B. öffentliche Schlüssel umfassen (nicht dargestellt), die es mittels eines kryptographischen Verfahrens ermöglichen, festzustellen, ob ein ausgeführtes Softwaremodul auch tatsächlich dasjenige Softwaremodul ist, auf das sich die Metadaten beziehen. Eine solche Feststellung könnte beispielsweise in der Kompatibilitätsprüfung (z.B. Prüffunktion 32) umfasst sein.
  • 2 zeigt ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform, die die Prüfung der Kompatibilität und den Einsatz eines ersten und eines zweiten Softwaremoduls beschreibt und die im Wesentlichen der in 1 gezeigten Struktur entspricht.
  • In einem optionalen Schritt 100 erfolgt ein Bestimmen von Metadaten und/oder Speichern der Metadaten für eines oder mehrere der Softwaremodule. Die Metadaten werden dabei mittels Protokollen, die den Softwaremodulen zugeordnet sind, gespeichert.
  • In einem bevorzugten Schritt 110 werden erste Metadaten des ersten Softwaremoduls durch das zweite Softwaremodul angefordert und an das zweite Softwaremodul übermittelt. Dazu kann, wie im Zusammenhang mit 1 erläutert, in einem ersten Protokoll, das dem ersten Softwaremodul zugeordnet ist, eine Abfragefunktion aufgerufen werden, die die angeforderten ersten Metadaten des ersten Softwaremoduls an das zweite Softwaremodul zurückgibt.
  • In Schritt 120 erfolgt ein Prüfen der Kompatibilität mittels der ersten Metadaten und zweiten Metadaten des zweiten Softwaremoduls. Letztere werden durch ein zweites Protokoll, das dem zweiten Softwaremodul zugeordnet ist, gespeichert. Diese Prüfung der Kompatibilität kann insbesondere durch eine Prüffunktion, die im zweiten Protokoll implementiert ist, erfolgen. Das Anfordern der ersten Metadaten, d.h. das Aufrufen der Abfragefunktion des ersten Protokolls, kann ebenfalls durch diese Prüffunktion erfolgen. Insofern kann Schritt 110 als Teil von Schritt 120 angesehen werden.
  • Wenn die Prüfung der Kompatibilität in Schritt 120 erfolgreich ist, können das erste und das zweite Softwaremodul gemeinsam eingesetzt (verwendet oder ausgeführt) werden. Beispielsweise können in Schritt 130 Daten, die vom ersten Softwaremodul an das zweite Softwaremodul übermittelt werden, durch das zweite Softwaremodul verarbeitet (verwendet) werden bzw. deren Verarbeitung (Verwendung) durch das zweite Softwaremodul zugelassen werden.
  • Wenn die Prüfung der Kompatibilität in Schritt 120 nicht erfolgreich ist, gelten die beiden Softwaremodule als nicht kompatibel und diese werden insbesondere nicht gemeinsam eingesetzt; z.B. werden die vom ersten Softwaremodul übermittelten Daten nicht vom zweiten Softwaremodul verwendet. In diesem Fall kann vorzugsweise in Schritt 140 eine Fehlermeldung oder Ähnliches erzeugt werden.
  • Die Schritte 110 und 120 werden bevorzugt innerhalb der Transaktionsdatenbank ausgeführt, d.h. wie erläutert durch entsprechende in den Protokollen implementierte Funktionen. Das ist vorteilhaft, da dadurch der Ablauf der Prüfung der Kompatibilität in der Transaktionsdatenbank in Form von Transaktionen gespeichert bzw. protokolliert wird und somit nachvollziehbar ist. Lediglich das Veranlassen der Prüfung erfolgt von außerhalb, z.B. durch Recheneinheit, in der das zweite Softwaremodul ausgeführt wird, bzw. durch eine darin implementierte Funktionalität. Alternativ könnten lediglich die Metadaten durch die Protokolle gespeichert sein und die Prüfung außerhalb der Transaktionsdatenbank erfolgen, im genannten Beispiel etwa durch eine entsprechende Funktionalität in der Recheneinheit, in der das zweite Softwaremodul ausgeführt wird. Die Metadaten sind dann vor Manipulationen geschützt, da die Metadaten in den Protokollen unveränderlich gespeichert sind oder zumindest jede Änderung in der Transaktionsdatenbank nachvollziehbar ist.
  • Die Schritte 130 und 140 werden insbesondere durch wenigstens eine Recheneinheit veranlasst, auf der eines der Softwaremodule ausgeführt wird bzw. installiert ist. Die wenigstens eine Recheneinheit führt hierfür z.B. entsprechende Computerprogramme aus. Solche Computerprogramme können auch die Prüfung veranlassen (Schritte 110, 120).
  • 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 Nicht-Patentliteratur
    • ISO 26262 [0011]
    • IEC 61508 [0011]
    • ISO 13849 [0011]

Claims (15)

  1. Verfahren zum kompatiblen Einsatz von Softwaremodulen (10, 12), wobei Protokolle (26, 28) vorgesehen sind, die als automatisiert auf einer Transaktionsdatenbank (20) ausgeführte Computerprotokolle implementiert sind, wobei jedem Softwaremodul jeweils eines der Protokolle zugeordnet ist; wobei für jedes Softwaremodul (10, 12) Metadaten (22, 24) durch das Protokoll (26, 28), das dem jeweiligen Softwaremodul zugeordnet ist, gespeichert werden; wobei eine Prüfung (120) der Kompatibilität der Softwaremodule anhand der gespeicherten Metadaten erfolgt; wobei bestimmt wird, dass die Softwaremodule kompatibel einsetzbar sind, wenn die Prüfung erfolgreich ist.
  2. Verfahren nach Anspruch 1, wobei die Prüfung (120) der Kompatibilität durch wenigstens eine in einem der Protokolle (28) implementierte Prüffunktion (32) erfolgt.
  3. Verfahren nach Anspruch 1 oder 2, wobei für jedes der Softwaremodule (10, 12) die Metadaten wenigstens eine Eigenschaft des jeweiligen Softwaremoduls beschreiben und/oder wenigstens eine Anforderung des jeweiligen Softwaremoduls beschreiben.
  4. Verfahren nach Anspruch 3, wobei für ein erstes der Softwaremodule (10) die Metadaten (22) wenigstens eine Eigenschaft beschreiben und für ein zweites der Softwaremodule (12) die Metadaten (24) wenigstens eine Anforderung beschreiben; wobei die Prüfung (120) der Kompatibilität ein Prüfen einschließt, ob die wenigstens eine Eigenschaft des ersten Softwaremoduls der wenigstens einen Anforderung des zweiten Softwaremoduls entsprechen.
  5. Verfahren nach Anspruch 4 und 2, wobei die Prüffunktion in dem Protokoll, das dem zweiten Softwaremodul zugeordnet ist, implementiert ist.
  6. Verfahren nach Anspruch 4 oder 5, wobei, wenn die Prüfung erfolgreich ist, Daten (18), die vom ersten an das zweite Softwaremodul übermittelt werden, durch das zweite Softwaremodul (24) verwendet bzw. verarbeitet werden.
  7. Verfahren nach einem der Ansprüche 4 bis 6, wobei, wenn die Prüfung nicht erfolgreich ist, Daten, die vom ersten an das zweite Softwaremodul übermittelt werden, vom zweiten Softwaremodul nicht verwendet bzw. verarbeitet werden.
  8. Verfahren nach einem der vorstehenden Ansprüche, wobei, wenn die Prüfung der Kompatibilität für ein Softwaremodul erfolgreich ist, das Softwaremodul auf einer Recheneinheit, auf der es zur Installation vorgesehen ist, installiert wird, und/oder wobei, wenn die Prüfung der Kompatibilität für ein Softwaremodul nicht erfolgreich ist, das Softwaremodul nicht auf der Recheneinheit, auf der es zur Installation vorgesehen ist, installiert wird.
  9. Verfahren nach einem der vorstehenden Ansprüche, wobei die Metadaten unveränderlich durch die Protokolle gespeichert werden.
  10. Verfahren nach einem der vorstehenden Ansprüche, wobei die Softwaremodule gemeinsam eingesetzt werden, wenn bestimmt wurde, dass diese kompatibel einsetzbar sind.
  11. Recheneinheit (14, 16), die dazu eingerichtet ist, die Prüfung der Kompatibilität gemäß einem der vorstehenden Ansprüche zu veranlassen, insbesondere durch Aufruf der Prüffunktion gemäß Anspruch 2, oder durchzuführen, wenn wenigstens eines der Softwaremodule (10, 12) auf der Recheneinheit ausgeführt wird oder zur Installation auf der Recheneinheit vorgesehen ist.
  12. Recheneinheit (16) nach Anspruch 11, die weiter dazu eingerichtet ist, die Verarbeitung von Daten (18), die von einem Softwaremodul (10) übermittelt werden, für das die Kompatibilität erfolgreich geprüft ist, durch ein auf der Recheneinheit (16) ausgeführtes Softwaremodul (12) zu veranlassen; und/oder die Installation eines Softwaremoduls, für das die Kompatibilität erfolgreich geprüft ist, zu veranlassen.
  13. Recheneinheit (16) nach Anspruch 11 oder 12, die weiter dazu eingerichtet ist, die Verarbeitung von Daten (18), die von einem Softwaremodul (10) übermittelt werden, für das die Kompatibilität nicht erfolgreich geprüft ist, durch ein auf der Recheneinheit ausgeführtes Softwaremodul (12) zu unterbinden; und/oder die Installation eines Softwaremoduls, für das die Kompatibilität nicht erfolgreich geprüft ist, zu unterbinden.
  14. Computerprogramm, das, wenn es auf einer Recheneinheit ausgeführt wird, die Prüfung der Kompatibilität gemäß einem der Ansprüche 1 bis 10 veranlasst, wenn wenigstens eines der Softwaremodule auf der Recheneinheit ausgeführt wird oder zur Installation auf der Recheneinheit vorgesehen ist.
  15. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 14.
DE102022201454.5A 2022-02-11 2022-02-11 Verfahren zum kompatiblen Einsatz von Softwaremodulen Pending DE102022201454A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022201454.5A DE102022201454A1 (de) 2022-02-11 2022-02-11 Verfahren zum kompatiblen Einsatz von Softwaremodulen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022201454.5A DE102022201454A1 (de) 2022-02-11 2022-02-11 Verfahren zum kompatiblen Einsatz von Softwaremodulen

Publications (1)

Publication Number Publication Date
DE102022201454A1 true DE102022201454A1 (de) 2023-08-17

Family

ID=87430475

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022201454.5A Pending DE102022201454A1 (de) 2022-02-11 2022-02-11 Verfahren zum kompatiblen Einsatz von Softwaremodulen

Country Status (1)

Country Link
DE (1) DE102022201454A1 (de)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IEC 61508
ISO 13849
ISO 26262

Similar Documents

Publication Publication Date Title
EP3379447B1 (de) Verfahren und vorrichtung zum manipulationssicheren speichern von informationen bezüglich objektbezogener massnahmen
EP2770434B1 (de) Verfahren zur Durchführung einer Inventarisierung der an ein Steuergeräte-Testsystem angeschlossenen Hardware-Komponenten
DE102008015352A1 (de) Verfahren zum Aufzeichnen von Daten und Datenaufzeichnungssystem
WO2019072840A1 (de) Vorrichtung zur absicherung von diagnosebefehlen an ein steuergerät und entsprechendes kraftfahrzeug
DE102022201454A1 (de) Verfahren zum kompatiblen Einsatz von Softwaremodulen
WO2005022382A2 (de) Verfahren zur installation einer programmkomponente
DE102009053753A1 (de) Verfahren zum Ermitteln der Ursache eines Fehlers an einem Kraftfahrzeug
EP4096198A1 (de) Verfahren zur diagnose eines bordnetzes eines fahrzeugs
DE102020209228A1 (de) Verfahren zum Überwachen wenigstens einer Recheneinheit
EP1683016A1 (de) Sichere erfassung von eingabewerten
DE102020213809A1 (de) Verfahren zum Betreiben eines Steuergeräts beim Testen einer Software des Steuergeräts und Verfahren zum Betreiben eines Testcomputers beim Testen einer Software eines Steuergeräts
EP1960854A1 (de) Diagnoseverfahren und diagnosevorrichtung zur funktionsorientierten diagnose eines systems mit vernetzten komponenten
DE102010047954A1 (de) Formelle offline-Verifikation ausführbarer Modelle
EP3933593A1 (de) Verfahren und computerprogramm zum testen eines technischen systems
WO2020127239A1 (de) Verfahren zur diagnose einer sicherheitskomponente in einem kraftfahrzeug
DE102005054695A1 (de) Verfahren und Prüfsystem zum Prüfen eines tragbaren Datenträgers
DE102019201953A1 (de) Verfahren und Detektionsvorrichtung zum Detektieren eines Eingriffs in ein Kraftfahrzeug sowie Kraftfahrzeug mit einer Detektionsvorrichtung
DE102018129354A1 (de) Verfahren zum Bearbeiten von Anwendungsprogrammen auf einem verteilten Automatisierungssystem
EP2284632B1 (de) Verfahren zur Steuerung eines Datenaustauschs zwischen einem Fahrzeugdiagnosesystem und in Fahrzeugen angeordneten Steuerungsgeräten, Steuerungsprogramm und Fahrzeugdiagnosesystem
DE102022212287A1 (de) Verfahren und System zum Ermitteln von Freigaben von Steuergerätefunktionen in einem Steuergerät einer technischen Einrichtung
EP2544090A1 (de) Computer Sytem, computerimplementiertes Verfahren und Computerprogrammprodukt zum bestimmen eines pessimistischen Zeitverhaltens eines Fehlertoleranzmechanismus
DE102021212595A1 (de) Verfahren zum Überwachen eines Rechensystems
DE102020208331A1 (de) Verfahren zum Betreiben eines Hardware-Sicherheits-Moduls
EP1529257A2 (de) Übernehmen eines datensatzes in eine recheneinheit
DE102014213503A1 (de) Verfahren zum Überwachen einer Software in einem Straßenfahrzeug