DE102015112511A1 - Verfahren und Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen - Google Patents

Verfahren und Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen Download PDF

Info

Publication number
DE102015112511A1
DE102015112511A1 DE102015112511.0A DE102015112511A DE102015112511A1 DE 102015112511 A1 DE102015112511 A1 DE 102015112511A1 DE 102015112511 A DE102015112511 A DE 102015112511A DE 102015112511 A1 DE102015112511 A1 DE 102015112511A1
Authority
DE
Germany
Prior art keywords
software package
software
unit
fingerprint
class
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
DE102015112511.0A
Other languages
English (en)
Inventor
Christian Nötzel
Fabian Kück
Philip Schmick
Sven Roggenkamp
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.)
Rheinmetall Electronics GmbH
Original Assignee
Rheinmetall Defence Electronics 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 Rheinmetall Defence Electronics GmbH filed Critical Rheinmetall Defence Electronics GmbH
Priority to DE102015112511.0A priority Critical patent/DE102015112511A1/de
Priority to PCT/EP2016/062210 priority patent/WO2017016709A1/de
Publication of DE102015112511A1 publication Critical patent/DE102015112511A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

Es wird ein Verfahren zur Softwareverteilung von Software auf eine Mehrzahl von Systemen vorgeschlagen, mit: Bestimmen eines digitalen Soll-Fingerabdrucks für eine jeweilige Systemklasse einer Mehrzahl von Systemklassen, Bereitstellen eines Softwarepakets für die jeweilige Systemklasse, Erfassen eines digitalen Ist-Fingerabdrucks eines bestimmten Systems der Mehrzahl der Systeme, Ermitteln einer Differenz zwischen dem erfassten digitalen Ist-Fingerabdruck des bestimmten Systems und dem bestimmten digitalen Soll-Fingerabdruck der dem bestimmten System zugeordneten Systemklasse, Berechnen eines Übereinstimmungswerts aus der ermittelten Differenz, Bestimmen einer Installationsentscheidung zur Installation des Softwarepakets auf dem bestimmten System in Abhängigkeit von dem berechneten Übereinstimmungswert, und Installieren des Softwarepakets auf den elektronischen Komponenten des bestimmten Systems in Abhängigkeit von der bestimmten Installationsentscheidung.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen, wobei das jeweilige System einer Systemklasse einer Mehrzahl von Systemklassen zugeordnet ist und eine Mehrzahl von elektronischen Komponenten aufweist. Des Weiteren betrifft die vorliegende Erfindung ein Computerprogrammprodukt zur Softwareverteilung von Software auf eine Mehrzahl von Systemen.
  • Das technische Gebiet der vorliegenden Erfindung betrifft die Softwareverteilung von Software auf eine Mehrzahl von Systemen. Beispiele für solche Systeme sind militärische Systeme, beispielsweise Ausrüstungssysteme oder Militärfahrzeuge. Ziel der Softwareverteilung (Software Deployment) ist die automatische Installation, Konfiguration und Wartung einer großen Anzahl von Systemen, wie Steuerrechnern, mit geringem Aufwand. Weiterhin soll ein störungsarmer und sicherer Betrieb erreicht werden. Häufig strebt man auch an, dass die Systeme möglichst einheitlich mit Software ausgestattet werden.
  • Technisch schwieriger ist die Softwareverteilung insbesondere bei solchen Systemen, welche nicht über eine IT-Infrastruktur, beispielsweise über das Internet, oder ein Extranet, an eine die Softwareverteilung veranlassende oder ausführende Instanz, zum Beispiel eine Zentrale, angebunden sind. Beispiele für solche Systeme sind Militärfahrzeuge eines Heeres, welche über mehrere Orte, auch über Landesgrenzen hinweg, verteilt sein können, aber nicht informationstechnisch, beispielsweise über ein Extranet, gekoppelt sind.
  • Des Weiteren ist es möglich, dass zwischen zwei Softwareverteilungen von Software auf dasselbe Militärfahrzeug einzelne Komponenten bei dem Militärfahrzeug, beispielweise eine Netzwerkkarte oder ein Mainboard, ausgetauscht worden sind. Insbesondere ist es auch möglich, dass bei verschiedenen Militärfahrzeugen verschiedene Komponenten ausgetauscht worden sind. Dies erschwert eine zentralisierte und einfache Verteilung von Software auf diese technischen Systeme.
  • Vor diesem Hintergrund besteht eine Aufgabe der vorliegenden Erfindung darin, eine verbesserte Softwareverteilung von Software auf eine Mehrzahl von Systemen zu schaffen.
  • Gemäß einem ersten Aspekt wird ein Verfahren zur Softwareverteilung von Software auf eine Mehrzahl von Systemen vorgeschlagen. Dabei ist das jeweilige System einer Systemklasse einer Mehrzahl von Systemklassen zugeordnet und weist eine Mehrzahl von elektronischen Komponenten auf. Das Verfahren umfasst folgende Schritte a) bis g):
    • a) Bestimmen eines digitalen Soll-Fingerabdrucks für die jeweilige Systemklasse der Mehrzahl von Systemklassen, b) Bereitstellen eines Softwarepakets für die jeweilige Systemklasse, c) Erfassen eines digitalen Ist-Fingerabdrucks eines bestimmten Systems der Mehrzahl der Systeme, d) Ermitteln einer Differenz zwischen dem erfassten digitalen Ist-Fingerabdruck des bestimmten Systems und dem bestimmten digitalen Soll-Fingerabdruck der dem bestimmten System zugeordneten Systemklasse, e) Berechnen eines Übereinstimmungswerts aus der ermittelten Differenz, f) Bestimmen einer Installationsentscheidung zur Installation des Softwarepakets auf dem bestimmten System in Abhängigkeit von dem berechneten Übereinstimmungswert, und g) Installieren des Softwarepakets auf den elektronischen Komponenten des bestimmten Systems in Abhängigkeit von der bestimmten Installationsentscheidung.
  • Insbesondere können die Schritte a) und b) für alle Systeme zentral an einem Ort, zum Beispiel in einer Zentrale, vorbereitet werden. Die Schritte c) bis g) können dann vor Ort bei dem jeweiligen System automatisch oder durch einen Benutzer geführt, halb-automatisch durchgeführt werden.
  • Hierdurch reduziert sich die notwendige Zeit vor Ort bei dem jeweiligen System, die der Benutzer für die Installation des Softwarepakets benötigt.
  • Durch die zentrale Vorbereitung und die automatische beziehungsweise geführte, halb-automatische Durchführung der Installation wird die Wahrscheinlichkeit für Fehler deutlich reduziert. Damit erhöht sich die Qualität, insbesondere hinsichtlich der Vermeidung bzw. Verringerung von direkten und indirekten Fehlerkosten.
  • Dadurch, dass die Schritte a) und b) zentral und die Schritte c) bis g) bei jedem System separat durchführbar sind, ist hinsichtlich der Schritte c) bis g) eine maximale Parallelisierung möglich. Ferner werden Fehler verursacht durch nicht ausreichendes Wissen von Benutzern, harten Umweltbedingungen, wie beispielsweise Frost, und Stress beim Benutzer durch die zentrale Vorbereitung der Schritt a) und b) und der Parallelisierung der Schritt c) bis g) minimiert. Auch hierdurch werden die Zuverlässigkeit und Reproduzierbarkeit des Gesamtsystems vergrößert.
  • Ferner werden hierdurch, insbesondere durch die beschriebene Parallelisierung, die Kosten für die Softwareverteilung verringert beziehungsweise minimiert.
  • Durch die automatische beziehungsweise halb-automatische Durchführung der Schritte c) bis g) wird das notwendige Expertenwissen zur Installation und Konfiguration des Softwarepakets auf ein Minimum reduziert. Im Umkehrschluss werden damit die Kosten reduziert und die Reproduzierbarkeit maximiert.
  • Außerdem ist es möglich, für das Softwarepaket für die jeweilige Systemklasse eine Mehrzahl von Betriebssystemen, insbesondere verschiedene Generationen, und andere Software unterschiedlicher Generationen, wie Applikationen und Treibersoftware, vorzubereiten. Ferner ist es möglich, Konfigurationstemplates für unterschiedliche Hardware-Konfigurationen vorzubereiten und durch die Schritte a) und b) zentral vorzubereiten.
  • Insbesondere haben die Systeme, auf welche die Software zu verteilen ist, keine Ankopplung an eine IT-Infrastruktur, zum Beispiel an das Internet, insbesondere an die die Softwareverteilung veranlassende oder ausführende Instanz, zum Beispiel eine Zentrale.
  • Der Prozess der Softwareverteilung kann auch als Software Deployment oder Deployment bezeichnet werden.
  • Das jeweilige System umfasst eine Mehrzahl von elektronischen Komponenten, wie Recheneinheit, Steuereinheit oder Buseinheit, und kann daher auch als technisches System oder technische Rechenvorrichtung bezeichnet werden.
  • Der digitale Fingerabdruck kann auch als Fingerprint bezeichnet werden und wird beispielsweise mittels einer Hash-Funktion berechnet.
  • Die ermittelte Differenz zwischen dem erfassten digitalen Ist-Fingerabdruck des bestimmten Systems und dem bestimmten digitalen Soll-Fingerabdruck der zugeordneten Systemklasse kann beispielsweise eine Liste umfassen, welche die Unterschiede für einen Benutzer visualisiert. Der Übereinstimmungswert wird aus der ermittelten Differenz berechnet und kann beispielsweise als ein Maß, zum Beispiel in Prozent, ausgebildet sein, um eine prozentuale Übereinstimmung zwischen dem erfassten digitalen Ist-Fingerabdruck und dem digitalen Soll-Fingerabdruck darzustellen.
  • Die Installationsentscheidung kann eine positive Installationsentscheidung oder eine negative Installationsentscheidung zur Blockierung der Installation sein. Ferner kann die Installationsentscheidung auch mehrere graduell unterschiedliche positive Installationsentscheidungen umfassen, beispielsweise eine erste positive Installationsentscheidung, in Folge welcher voll-automische installiert wird, und eine zweite positive Installationsentscheidung, bei welcher in Folge durch einen Benutzer geführt, halb-automatisch installiert wird.
  • Das jeweilige Softwarepaket kann Software für eine elektronische Komponente des Systems, für eine Untermenge aller elektronischen Komponenten des Systems oder für alle elektronischen Komponenten des Systems umfassen.
  • Gemäß einer Ausführungsform umfasst der Schritt a) für die jeweilige Systemklasse:
    • – Feststellen eines Hardware-Standes der in einem jeden System der Systemklasse verbauten elektronischen Komponenten, und
    • – Berechnen des digitalen Soll-Fingerabdrucks für die Systemklasse in Abhängigkeit des festgestellten Hardware-Standes.
  • Der festgestellte Hardware-Stand gibt vorzugsweise die auf dem System installierte Hardware konkret an.
  • Dabei können folgende Schritte durchgeführt werden:
    • – Bereitstellen einer Identifikations-Information für zumindest einen Teil der in der Systemklasse verbauten elektronischen Komponenten, und
    • – Eingeben der bereitgestellten Identifikations-Informationen in eine Hashfunktion zur Berechnung des digitalen Soll-Fingerabdrucks für die Systemklasse.
  • Die Identifikations-Information ist insbesondere eine eindeutige Kennzeichnung der jeweiligen elektronischen Komponente.
  • Gemäß einer weiteren Ausführungsform ist die Identifikations-Information als eine Geräte-ID oder als eine eindeutige Adresse ausgebildet. Ein Beispiel für eine solche eindeutige Adresse ist die MAC-Adresse.
  • Gemäß einer weiteren Ausführungsform ist die Hashfunktion eine Einweg-Hashfunktion. Ein Beispiel für die Einweg-Hashfunktion ist SHA (Secure Hash Algorithm), zum Beispiel SHA-3.
  • Gemäß einer weiteren Ausführungsform umfasst das für die jeweilige Systemklasse bereitgestellte Softwarepaket zumindest ein Betriebssystem, zumindest eine Steuersoftware, zumindest eine Treibersoftware und/oder zumindest ein Konfigurationstemplate.
  • Gemäß einer weiteren Ausführungsform umfasst der Schritt b):
    • – Bereitstellen einer Mehrzahl von unterschiedlichen Varianten des Softwarepakets, und
    • – Bereitstellen von Konfigurationsdaten für eine jede der bereitgestellten Varianten des Softwarepakets.
  • Die unterschiedlichen Varianten des Softwarepakets können sich beispielsweise dadurch unterscheiden, dass das Betriebssystem in der jeweiligen Variante in einer unterschiedlichen Generation vorliegt. Genauso können die unterschiedlichen Varianten unterschiedliche Generationen einer Steuersoftware, einer Treibersoftware und/oder eines Konfigurationstemplates umfassen. Damit ist ein Variantenmanagement für die Systeme ermöglicht.
  • Gemäß einer weiteren Ausführungsform umfasst der Schritt g):
    • – Auswählen einer Variante aus der bereitgestellten Mehrzahl von Varianten des Softwarepakets, und
    • – Installieren der ausgewählten Variante des Softwarepakets unter Verwendung der für die ausgewählte Variante bereitgestellten Konfigurationsdaten.
  • Die Zuordnung zwischen Variante und Konfigurationsdaten ist insbesondere bijektiv.
  • Gemäß einer weiteren Ausführungsform umfasst der Schritt b):
    • – Bereitstellen einer Mehrzahl von Varianten des Softwarepakets,
    • – Bereitstellen einer Anzahl von Projektdaten für verschiedene durch das System ausführbare Projekte,
    • – Bereitstellen einer Anzahl von Applikationen, und
    • – Bereitstellen einer Anzahl von Bibliotheken.
  • Damit können unterschiedliche Projekte, unterschiedliche Applikationen und unterschiedliche Bibliotheken vorbereitet und automatisch auf das jeweilige System verteilt werden.
  • Gemäß einer weiteren Ausführungsform umfasst der Schritt g):
    • – Auswählen einer Variante aus der bereitgestellten Mehrzahl von Varianten des Softwarepakets,
    • – Auswählen von Projektdaten aus der Anzahl von bereitgestellten Projektdaten,
    • – Auswählen zumindest einer Applikation aus einer Anzahl von bereitgestellten Applikationen,
    • – Auswählen zumindest einer Bibliothek aus einer Anzahl von bereitgestellten Bibliotheken, und
    • – Installieren der ausgewählten Variante des Softwarepakets unter Verwendung der für die ausgewählte Variante bereitgestellten Konfigurationsdaten, der ausgewählten Projektdaten, der ausgewählten zumindest einen Applikation und der ausgewählten zumindest einen Bibliothek.
  • Damit ist eine Unterstützung unterschiedlicher Projekte, unterschiedlicher Applikationen, unterschiedlicher Bibliotheken und Mischformen daraus möglich. Die Auswahl der Projektdaten, der Applikationen und der Bibliotheken kann je nach System automatisch oder auch vom Benutzer geführt durchgeführt werden.
  • Gemäß einer weiteren Ausführungsform umfassen die in dem jeweiligen System verbauten elektronischen Komponenten zumindest eine Steuereinheit, zumindest eine Recheneinheit, zumindest eine Buseinheit, zumindest einen Datenspeicher, zumindest einen Energiespeicher, zumindest eine Eingabeeinheit, zumindest eine Ausgabeeinheit, zumindest eine Netzwerkkarte und/oder zumindest einen Netzwerkadapter. Ein Beispiel für eine Steuereinheit ist ein Steuerrechner eines Militärfahrzeugs. Ein Beispiel für eine Recheneinheit ist ein in dem Militärfahrzeug verbauter Micro-Controller. Ein Beispiel für eine Buseinheit ist ein in dem Militärfahrzeug verbauter Bus zur Kopplung von Steuereinheit, Recheneinheit, Datenspeicher, Eingabeeinheit, Ausgabeeinheit und/oder Netzwerkkarte. Ein Beispiel für einen Datenspeicher ist ein ROM Speicher oder ein RAM Speicher. Ein Beispiel für einen Energiespeicher ist ein Akkumulator oder eine Powerbank. Ein Beispiel für eine Eingabeeinheit ist ein berührungssensitiver Bildschirm, eine Tastatur oder eine Maus. Ein Beispiel für eine Ausgabeeinheit ist ein Bildschirm oder ein Lautsprecher.
  • Gemäß einer weiteren Ausführungsform umfasst der Schritt d):
    • – Darstellen der ermittelten Differenz für einen Benutzer mittels eines Ausgabegeräts, zum Beispiel mittels eines Bildschirms.
  • Die ermittelte Differenz kann beispielsweise eine Liste sein, welche die Unterschiede zwischen dem Ist-Hardware-Stand und dem Soll-Hardware-Stand illustriert. Diese Liste kann beispielsweise auf einem Ausgabegerät, zum Beispiel auf einem Bildschirm, für den Benutzer dargestellt werden.
  • Gemäß einer weiteren Ausführungsform umfasst der Schritt f):
    • – Festlegen einer ersten positiven Installationsentscheidung und Ausgeben einer entsprechenden ersten Anzeige an einen Benutzer, falls der berechnete Übereinstimmungswert angibt, dass der digitale Ist-Fingerabdruck dem digitalen Soll-Fingerabdruck entspricht,
    • – Festlegen einer zweiten positiven Installationsentscheidung und Ausgeben einer entsprechenden zweiten Anzeige an den Benutzer, falls der berechnete Übereinstimmungswert angibt, dass der digitale Ist-Fingerabdruck unterschiedlich zu dem digitalen Soll-Fingerabdruck ist, und der berechnete Übereinstimmungswert größer als ein vorbestimmter Schwellwert ist, und
    • – Festlegen einer negativen Installationsentscheidung und Ausgeben einer entsprechenden dritten Anzeige an den Benutzer, falls der berechnete Übereinstimmungswert kleiner als der vorbestimmte Schwellwert oder gleich dem vorbestimmten Schwellwert ist.
  • Bei der ersten positiven Installationsentscheidung wird dem Benutzer beispielsweise ein grünes Anzeigefeld auf einem Bildschirm als erste Anzeige ausgegeben. Bei dieser ersten positiven Installationsentscheidung wird beispielsweise automatisch installiert.
  • Bei der zweiten positiven Installationsentscheidung wird dem Benutzer beispielsweise ein orangefarbiges Anzeigefeld als zweite Anzeige ausgegeben. Die zweite positive Installationsentscheidung kann bedingen, dass die Installation durch den Benutzer geführt durchgeführt wird.
  • Die negative Installationsentscheidung bedingt eine Blockierung der Installation. Zur Visualisierung für den Benutzer kann beispielweise ein rotfarbiges Anzeigefeld auf dem Bildschirm verwendet werden. Der vorbestimmte Schwellwert entspricht beispielsweise 60% der Übereinstimmung zwischen Ist-Fingerabdruck und Soll-Fingerabdruck.
  • Gemäß einer weiteren Ausführungsform ist das System als ein militärisches System, beispielsweise als ein Ausrüstungssystem oder als ein Militärfahrzeug, als ein medizintechnisches System, als ein Geldautomat oder als ein Warenautomat, beispielsweise als ein Selbstverkäufer, ausgebildet.
  • Gemäß einer weiteren Ausführungsform korrespondieren die verschiedenen Systemklassen zu verschiedenen Ausrüstungsständen des Systems.
  • Gemäß einem zweiten Aspekt wird ein Computerprogrammprodukt vorgeschlagen, welches auf einer programmgesteuerten Einrichtung die Durchführung des Verfahrens gemäß dem ersten Aspekt oder gemäß einer der Ausführungsformen des ersten Aspekts veranlasst.
  • Ein Computerprogrammprodukt, wie z.B. ein Computerprogramm-Mittel, kann beispielsweise als Speichermedium, wie z.B. Speicherkarte, USB-Stick, CD-ROM, DVD, oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogrammprodukt oder dem Computerprogramm-Mittel erfolgen.
  • Gemäß einem dritten Aspekt wird eine Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen vorgeschlagen, wobei das jeweilige System einer Systemklasse einer Mehrzahl von Systemklassen zugeordnet ist und eine Mehrzahl von elektronischen Komponenten aufweist. Die Vorrichtung umfasst eine erste Einheit, eine zweite Einheit, eine dritte Einheit, eine vierte Einheit, eine fünfte Einheit, eine sechste Einheit und eine siebte Einheit. Die erste Einheit ist zum Bestimmen eines digitalen Soll-Fingerabdrucks für die jeweilige Systemklasse der Mehrzahl von Systemklassen eingerichtet. Die zweite Einheit ist zum Bereitstellen eines Softwarepakets für die jeweilige Systemklasse eingerichtet. Die dritte Einheit ist zum Erfassen eines digitalen Ist-Fingerabdrucks eines bestimmten Systems der Mehrzahl der Systeme eingerichtet. Die vierte Einheit ist zum Ermitteln einer Differenz zwischen dem erfassten digitalen Ist-Fingerabdruck des bestimmten Systems und dem bestimmten digitalen Soll-Fingerabdruck der dem bestimmten System zugeordneten Systemklasse eingerichtet. Die fünfte Einheit ist zum Berechnen eines Übereinstimmungswerts aus der ermittelten Differenz eingerichtet. Die sechste Einheit ist zum Bestimmen einer Installationsentscheidung zur Installation des Softwarepakets auf dem bestimmten System in Abhängigkeit von dem berechneten Übereinstimmungswert eingerichtet. Die siebte Einheit ist zum Installieren des Softwarepakets auf den elektronischen Komponenten des bestimmten Systems in Abhängigkeit von der bestimmten Installationsentscheidung eingerichtet.
  • Die jeweilige Einheit, zum Beispiel die erste Einheit, kann hardwaretechnisch und/oder auch softwaretechnisch implementiert sein. Bei einer hardwaretechnischen Implementierung kann die Einheit als Vorrichtung oder als Teil einer Vorrichtung, zum Beispiel als Computer oder als Mikroprozessor ausgebildet sein. Bei einer softwaretechnischen Implementierung kann die Einheit als Computerprogrammprodukt, als eine Funktion, als eine Routine, als Teil eines Programmcodes oder als ausführbares Objekt ausgebildet sein.
  • Gemäß einem vierten Aspekt wird eine Anordnung vorgeschlagen, welche eine Mehrzahl von Systemen und eine wie oben beschriebene Vorrichtung gemäß dem dritten Aspekt umfasst.
  • Die Vorrichtung kann beispielsweise als Computerprogrammprodukt ausgebildet sein.
  • Die für das vorgeschlagene Verfahren beschriebenen Ausführungsformen und Merkmale gelten für die vorgeschlagene Vorrichtung entsprechend.
  • Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmale oder Ausführungsformen. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen.
  • Im Weiteren wird die Erfindung anhand von bevorzugten Ausführungsformen unter Bezugnahme auf die beigelegten Figuren näher erläutert.
  • 1 zeigt ein schematisches Ablaufdiagramm eines Ausführungsbeispiels eines Verfahrens zur Softwareverteilung von Software auf eine Mehrzahl von Systemen;
  • 2 zeigt ein schematisches Blockschaltbild eines Ausführungsbeispiels einer Anordnung mit einer Mehrzahl von Systemen und einer Zentrale zur Softwareverteilung;
  • 3 zeigt die Anordnung gemäß 2 mit einer Zuordnung der Schritte der 1 auf die Einrichtungen der Anordnung der 2;
  • 4 zeigt ein schematisches Blockschaltbild eines Ausführungsbeispiels für die in dem jeweiligen System verbauten elektronischen Komponenten;
  • 5 zeigt ein schematisches Blockschaltbild einer ersten Ausführungsform für das Bestimmen eines digitalen Soll-Fingerabdrucks;
  • 6 zeigt ein schematisches Blockschaltbild einer zweiten Ausführungsform für das Bestimmen eines digitalen Soll-Fingerabdrucks;
  • 7 zeigt ein schematisches Blockschaltbild einer ersten Ausführungsform für das Bereitstellen eines Softwarepakets;
  • 8 zeigt ein schematisches Blockschaltbild einer ersten Ausführungsform für das Installieren eines Softwarepakets;
  • 9 zeigt ein schematisches Blockschaltbild einer zweiten Ausführungsform für das Bereitstellen eines Softwarepakets;
  • 10 zeigt ein schematisches Blockschaltbild einer zweiten Ausführungsform für das Installieren eines Softwarepakets;
  • 11 zeigt ein schematisches Blockschaltbild einer Ausführungsform für das Bestimmen einer Installationsentscheidung zur Installation des Softwarepakets; und
  • 12 zeigt ein schematisches Blockschaltbild eines Ausführungsbeispiels einer Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen.
  • In den Figuren sind gleiche oder funktionsgleiche Elemente mit denselben Bezugszeichen versehen, sofern nichts anderes angegeben ist.
  • In 1 ist ein schematisches Ablaufdiagramm eines Ausführungsbeispiels eines Verfahrens zur Softwareverteilung von Software auf eine Mehrzahl von Systemen 11, 12, 13, 21, 22 dargestellt. Das jeweilige System 11, 12, 13, 21, 22 ist einer Systemklasse K1, K2 einer Mehrzahl von Systemklassen K1, K2 zugeordnet. Die verschiedenen Systemklassen K1, K2 korrespondieren insbesondere zu verschiedenen Ausrüstungsständen des Systems 11, 12, 13, 21, 22. Ohne Einschränkung der Allgemeinheit wird im Folgenden das Beispiel von zwei Systemklassen K1, K2 erläutert, wobei eine erste Systemklasse K1 beispielsweise einen höheren, ersten Ausrüstungsstand bezeichnet und eine zweite Systemklasse K2 einen niedrigeren, zweiten Ausrüstungsstand bezeichnet.
  • Das System 11, 12, 13, 21, 22 kann beispielsweise ein militärisches System, insbesondere ein Ausrüstungssystem, wie zum Beispiel Gladius, oder ein Militärfahrzeug, wie beispielsweise Puma, sein. Das jeweilige System 11, 12, 13, 21, 22 umfasst eine Mehrzahl von elektronischen Komponenten 4149. Details zu den elektronischen Komponenten 4149 sind mit Bezug zu 4 beschrieben. Auf der Mehrzahl von elektronischen Komponenten 4149 wird die zu verteilende Software installiert. Alternativ wird nur auf einer Untermenge der Mehrzahl von elektronischen Komponenten 4149 die Software installiert.
  • Die Schritte S10–S70 des Verfahrens der 1 werden unter Bezugnahme auf die 2, 3 und 4 erläutert. Hierzu zeigt die 2 ein schematisches Blockschaltbild eines Ausführungsbeispiels einer Anordnung 1 mit einer Mehrzahl von Systemen 11, 12, 13, 21, 22 und einer Zentrale 30 zur Softwareverteilung.
  • An einem ersten Ort O1 gemäß 2 ist die Zentrale 30 angeordnet. An einem zweiten Ort O2 sowie einem dritten Ort O3 sind die Systeme 11, 12, 13, 21, 22 angeordnet. Für das Beispiel, dass das System ein Militärfahrzeug ist und sich die Zentrale 30 in Deutschland O1 befindet, kann der zweite Ort O2 mit den Systemen 11, 12 und 21 beispielsweise in Polen sein und der dritte Ort O3 mit den Systemen 13 und 22 kann beispielsweise in Bulgarien sein.
  • An dem zweiten Ort O2 sind ein erstes System 11 der ersten Systemklasse K1, ein zweites System 12 der ersten Systemklasse K1 und ein erstes System 21 der zweiten Systemklasse K2 platziert.
  • Demgegenüber sind an dem dritten Ort O3 ein drittes System 13 der ersten Systemklasse K1 und ein zweites System 22 der zweiten Systemklasse K2 platziert.
  • Das Ausführungsbeispiel des Verfahrens der 1 umfasst die folgenden Schritte S10–S70:
    In Schritt S10 wird ein digitaler Soll-Fingerabdruck SF für die jeweiliges Systemklasse K1, K2 bestimmt. Beispiele hierfür ergeben sich aus den nachfolgend erläuterten 5 und 6.
  • In Schritt S20 wird ein Softwarepaket P1, P2 für die jeweilige Systemklasse K1, K2 bereitgestellt. Beispielsweise wird ein erstes Softwarepaket P1 für die erste Systemklasse K1 bereitgestellt, wohingegen ein zweites Softwarepaket P2 für die zweite Systemklasse K2 bereitgestellt wird. Beispiele für das Bereitstellen des Softwarepakets P1, P2 sind in den nachfolgenden 7 und 9 erläutert.
  • Das für die jeweilige Systemklasse K1, K2 bereitgestellte Softwarepaket P1, P2 umfasst vorzugsweise zumindest ein Betriebssystem (Operating System, OS), zumindest eine Steuersoftware, beispielsweise für ein Steuergerät, zumindest eine Treibersoftware, beispielsweise für eine Schnittstelleneinrichtung, wie eine Netzwerkkarte oder einen Netzwerkadapter, und/oder zumindest ein Konfigurationstemplate zum Konfigurieren der zu installierenden Software.
  • In diesem Zusammenhang sei auf die 3 verwiesen, welche die Anordnung gemäß 2 mit einer Zuordnung der Schritte S10–S70 der 1 auf die Einrichtungen der Anordnung 1 der 2 zeigt. Wie in 3 dargestellt, werden die Schritte S10 und S20 durch die Zentrale 30 durchgeführt. Die Schritte S30–S70 werden an den verschiedenen Orten O2, O3 auf dem jeweiligen System 11, 12, 21; 13, 22 durchgeführt. Mit anderen Worten werden die Schritte S10 und S20 zentral von der Zentrale 30 durchgeführt, wohingegen die Schritte S30–S70 auf jedem der Systeme 11, 12, 13, 21, 22 durchgeführt werden.
  • In Schritt S30 wird ein digitaler Ist-Fingerabdruck IF des jeweiligen Systems, beispielsweise des Systems 11 an dem Ort O2, erfasst.
  • In Schritt S40 wird eine Differenz D zwischen dem erfassten digitalen Ist-Fingerabdruck IF des bestimmten Systems 11, 12, 13, 21, 22, in dem obigen Beispiels des Systems 11, und dem bestimmten digitalen Soll-Fingerabdruck SF der dem bestimmten System 11, 12, 13, 21, 22 zugeordneten Systemklasse K1, K2 ermittelt. In dem Beispiel des Systems 11 ist die zugeordnete Systemklasse die erste Systemklasse K1.
  • Vorzugsweise kann der Schritt S40 auch ein Darstellen der ermittelten Differenz D für einen Benutzer mittels eines Ausgabegeräts (nicht gezeigt) umfassen. Das Ausgabegerät umfasst beispielsweise einen Bildschirm und/oder einen Lautsprecher.
  • In Schritt S50 wird ein Übereinstimmungswert C aus der ermittelten Differenz D ermittelt. Der Übereinstimmungswert C kann auch als Compliance-Wert oder Compliance-Value bezeichnet werden.
  • In Schritt S60 wird eine Installationsentscheidung E zur Installation des Softwarepakets P1, P2 auf dem bestimmten System 11, 12, 13, 21, 22 in Abhängigkeit von dem berechneten Übereinstimmungswert C bestimmt. Ein detailliertes Beispiel hierfür ist mit Bezug zu 6 beschrieben. Für das Beispiel des Systems 11 wird in Schritt S60 darüber entschieden, ob das dem System 11 zugeordnete Softwarepaket P1 auf diesem installiert wird.
  • In Schritt S70 wird das Softwarepaket P1, P2 auf den elektronischen Komponenten 4149 des bestimmten Systems 11, 12, 13, 21, 22 in Abhängigkeit von der bestimmten Installationsentscheidung E installiert. Insbesondere werden Teile des Softwarepakets P1, P2 auf einer Untermenge der elektronischen Komponenten 4149 des bestimmten Systems 11, 12, 13, 21, 22 installiert.
  • 4 zeigt ein schematisches Blockschaltbild eines Ausführungsbeispiels für die in dem jeweiligen System 11, 12, 13, 21, 22 verbauten elektronischen Komponenten 4149. Die elektronischen Komponenten 4149 umfassen beispielsweise zumindest eine Steuereinheit 41, zumindest eine Recheneinheit 42, zumindest eine Buseinheit 43, zumindest einen Datenspeicher 44, zumindest einen Energiespeicher 45, wie beispielweise eine Batterie oder einen Akkumulator, zumindest eine Eingabeeinheit 46, wie beispielsweise eine Maus, eine Tastatur oder einen berührungssensitiven Bildschirm, zumindest eine Ausgabeeinheit, wie beispielsweise einen Bildschirm und/oder einen Lautsprecher, zumindest eine Netzwerkkarte 48 und/oder zumindest einen Netzwerkadapter 49.
  • In 5 ist ein schematisches Blockschaltbild einer ersten Ausführungsform für das Bestimmen eines digitalen Soll-Fingerabdrucks gemäß Schritt S10 der 1 dargestellt.
  • Gemäß der ersten Ausführungsform der 5 umfasst der Schritt S10 die folgenden Schritte S11 und S12:
    In Schritt S11 wird ein Hardware-Stand HW der in dem System 11, 12, 13, 21, 22 verbauten elektronischen Komponenten 4149 festgestellt. In Schritt S12 wird der digitale Soll-Fingerabdruck SF für die Systemklasse K1, K2 in Abhängigkeit des festgestellten Hardware-Stands HW berechnet.
  • 6 zeigt ein schematisches Blockschaltbild einer zweiten Ausführungsform für das Bestimmen des digitalen Soll-Fingerabdrucks SF gemäß Schritt S10 der 1.
  • Gemäß 6 umfasst die zweite Ausführungsform des Schritts S10 die folgenden Schritte S13 und S14:
    In Schritt S13 wird eine Identifikations-Information II für zumindest einen Teil oder für alle der in der Systemklasse K1, K2 verbauten elektronischen Komponenten 4149 bereitgestellt. Die Identifikations-Information II ist beispielsweise eine Geräte-ID oder eine eindeutige Adresse, wie beispielsweise die MAC-Adresse des Geräts.
  • In Schritt S14 werden die bereitgestellten Identifikations-Informationen II in eine Hashfunktion zur Berechnung des digitalen Soll-Fingerabdrucks SF für die Systemklasse K1, K2 eingegeben. Die Hashfunktion ist vorzugsweise eine Einweg-Hashfunktion. Ein Beispiel hierfür ist SHA (Secure Hash Algorithm), zum Beispiel SHA-3.
  • In 7 ist ein schematisches Blockschaltbild einer ersten Ausführungsform für das Bereitstellen eines Softwarepakets P1, P2 gemäß Schritt S20 der 20 dargestellt. In dem Beispiel der 7 umfasst der Schritt S20 die nachfolgend beschriebenen Schritte S21 und S22:
    In Schritt S21 wird eine Mehrzahl von Varianten V11, V12, V21, V22 des Softwarepakets P1, P2 dargestellt. Für das oben beschriebene Beispiel der zwei Systemklassen K1 und K2 und der zwei Softwarepakete P1, P2 können beispielsweise die folgenden vier Varianten bereitgestellt werden:
    Variante V11: erste Variante des ersten Softwarepakets P1,
    Variante V12: zweite Variante des ersten Softwarepakets P1,
    Variante V21: erste Variante des zweiten Softwarepakets P2, und
    Variante V22: zweite Variante des zweiten Softwarepakets.
  • In Schritt S22 werden Konfigurationsdaten KD11, KD12, KD21, KD22 für eine jede der bereitgestellten Varianten V11, V12, V21, V22 des Softwarepakets P1, P2 bereitgestellt. Beispielsweise sind die Konfigurationsdaten KD11 der Variante V11 zugeordnet, die Konfigurationsdaten KD12 der Variante V12, die Konfigurationsdaten KD21 der Variante V21 und die Konfigurationsdaten KD22 der Variante V22.
  • Diese Zuordnung ist auch an dem Ausgabepfeil des Schritts S22 in 7 illustriert.
  • 8 zeigt ein schematisches Blockschaltbild einer ersten Ausführungsform für das Installieren des Softwarepakets P1, P2 gemäß Schritt S70 der 1.
  • In dem Beispiel der 8 umfasst der Schritt S70 die nachfolgend beschriebenen Schritte S71 und S72:
    Die Eingabeparameter des Schritts S71 sind die getroffene Installationsentscheidung E und die verschiedenen Varianten V11, V12, V21, V22 mit ihren zugeordneten Konfigurationsdaten KD11, KD12, KD21, KD22.
  • In Schritt S71 wird eine Variante, in dem Beispiel der 8 die Variante V22, aus der bereitgestellten Mehrzahl von Varianten V11, V12, V21, V22 des Softwarepakets P1, P2 ausgewählt. Dies Auswahl kann vollautomatisch, manuell durch einen Benutzer oder halbautomatisch, unterstützt durch den Benutzer an dem Ort O2 oder O3 durchgeführt werden.
  • In Schritt S72 wird die ausgewählte Variante V22 des Softwarepakets P2 unter Verwendung der für die ausgewählte Variante V22 bereitgestellten Konfigurationsdaten KD22 installiert.
  • 9 zeigt ein schematisches Blockschaltbild einer zweiten Ausführungsform für das Bereitstellen eines Softwarepakets gemäß Schritt S20 der 1.
  • Die zweite Ausführungsform des Schritts S20 gemäß 9 umfasst die Schritte S21–S25:
    Die Schritte S21 und S22 entsprechen denen der 7 und sind bereits oben detailliert erläutert.
  • In Schritt S23 wird eine Anzahl von Projektdaten PD1, PD2, PD3 für verschiedene durch das System 11, 12, 13, 21, 22 ausführbare Projekte bereitgestellt. Ohne Einschränkung der Allgemeinheit sind drei verschiedene Projekte durch das jeweilige System 11, 12, 13, 21, 22 ausführbar und entsprechend drei Datensätze PD1, PD2, PD3 an Projektdaten bereitgestellt.
  • In Schritt S24 wird eine Anzahl von Applikationen AP1, AP2, AP3 bereitgestellt. Ohne Einschränkung der Allgemeinheit werden auch hier drei verschieden Applikationen AP1, AP2, AP3 bereitgestellt.
  • In Schritt S25 wird eine Anzahl von Bibliotheken B1, B2, B3, insbesondere Drittanbieterbibliotheken, bereitgestellt. Auch hier sind ohne Einschränkung der Allgemeinheit beispielshaft drei Bibliotheken B1, B2, B3 bereitgestellt.
  • In 10 ist ein schematisches Blockschaltbild einer zweiten Ausführungsform für das Installieren des Softwarepakets des Schritts S70 der 1 dargestellt. Die 10 bezieht sich dabei auch auf die 9. Gemäß dem Beispiel der 10 umfasst der Schritt S70 die Schritte S73, S74, S75, S76 und S77:
    In Schritt S73 wird eine Variante, beispielsweise die Variante V22, aus der bereitgestellten Mehrzahl von Varianten V11, V12, V21, V22 des Softwarepakets P1, P2 ausgewählt.
  • In Schritt S74 werden Projektdaten, beispielsweise die Projektdaten PD1, aus der Mehrzahl von bereitgestellten Projektdaten PD1, PD2 und PD3 ausgewählt.
  • In Schritt S75 wird zumindest eine Applikation, beispielsweise die Applikation AP2, aus der Anzahl von bereitgestellten Applikationen AP1, AP2, AP3 ausgewählt.
  • In Schritt S76 wird zumindest eine Bibliothek, beispielsweise die Bibliothek B3, aus der Anzahl von bereitgestellten Bibliotheken B1, B2, B3 ausgewählt.
  • In Schritt S77 wird die ausgewählte Variante V22 des Softwarepakets P2 unter Verwendung der für die ausgewählte Variante V22 bereitgestellten Konfigurationsdaten KD22, der ausgewählten Projektdaten PD1, der ausgewählten zumindest einen Applikation AP2 und der ausgewählten zumindest einen Bibliothek B3 installiert.
  • In 11 ist ein schematisches Blockschaltbild einer Ausführungsform für das Bestimmen einer Installationsentscheidung E zur Installation des Softwarepakets P1, P2 gemäß Schritt S60 der 1 dargestellt.
  • Gemäß dem Beispiel der 11 umfasst der Schritt S60 die folgenden Schritte S61–S64:
    In Schritt S61 wird der berechnete Übereinstimmungswert C geprüft. Der Übereinstimmungswert C beschreibt insbesondere die Übereinstimmung von Ist-Fingerabdruck IF und Soll-Fingerabdruck SF. Entsprechen sich der Ist-Fingerabdruck IF und der Soll-Fingerabdruck SF, so ist C gleich 100% und das Verfahren wird mit Schritt S62 fortgeführt. Ist C aber kleiner 100% und größer als ein vorbestimmter Schwellwert, in der 11 beispielsweise 60%, so wird das Verfahren mit Schritt S63 fortgeführt. Ist aber der Übereinstimmungswert C kleiner/gleich dem vorbestimmten Schwellwert, beispielsweise kleiner oder gleich 60%, so wird das Verfahren mit Schritt S64 fortgesetzt.
  • Für C = 100%:
  • In Schritt S62 wird eine erste positive Installationsentscheidung I getroffen und eine entsprechende erste Anzeige A1 an den Benutzer ausgegeben. Für das Beispiel eines Bildschirms als Ausgabegerät für den Benutzer kann die erste Anzeige ein grünfarbiges Anzeigefeld sein.
  • Für 60% < C < 100%:
  • In Schritt S63 wird eine zweite positive Installationsentscheidung I getroffen und eine entsprechende zweite Anzeige A2 an den Benutzer ausgegeben. Die zweite Anzeige A2 kann beispielsweise ein orangefarbiges Anzeigefeld sein.
  • Für C ≤ 60%:
  • In Schritt S64 wird eine negative Installationsentscheidung B getroffen, welche einer Blockierung der Installation entspricht, und eine entsprechende dritte Anzeige A3 an den Benutzer ausgegeben. Die dritte Anzeige A3 kann beispielsweise als ein rotes Anzeigefeld ausgebildet sein.
  • 12 zeigt ein schematisches Blockschaltbild eines Ausführungsbeispiels einer Vorrichtung 100 zur Softwareverteilung auf eine Mehrzahl von Systemen 11, 12, 13, 21, 22. Das jeweilige System 11, 12, 13, 21, 22 ist einer Systemklasse K1, K2 einer Mehrzahl von Systemklassen K1, K2 zugeordnet und umfasst eine Mehrzahl von elektronischen Komponenten 4149.
  • Die Vorrichtung 100 weist eine erste Einheit 101, eine zweite Einheit 102, eine dritte Einheit 103, eine vierte Einheit 104, eine fünfte Einheit 105, eine sechste Einheit 106 und eine siebte Einheit 107 auf.
  • Die erste Einheit 101 ist dazu eingerichtet, einen digitalen Soll-Fingerabdruck SF für die jeweilige Systemklasse K1, K2 zu bestimmen.
  • Die zweite Einheit 102 ist dazu eingerichtet, ein Softwarepaket P1, P2 für die jeweilige Systemklasse K1, K2 bereitzustellen. Das jeweilige Softwarepaket P1, P2 und der zugehörige digitale Soll-Fingerabdruck SF werden beispielsweise auf einem Datenträger, wie einem USB-Stick oder einer CD-ROM, bereitgestellt.
  • Die dritte Einheit 103 ist dazu eingerichtet, einen digitalen Ist-Fingerabdruck IF eines bestimmten Systems der Mehrzahl der Systeme 11, 12, 13, 21, 22 zu erfassen.
  • Die vierte Einheit 104 ist zum Ermitteln einer Differenz D zwischen dem erfassten digitalen Ist-Fingerabdruck IF des bestimmten Systems 11, 12, 13, 21, 22 und dem bestimmten digitalen Soll-Fingerabdruck SF der dem bestimmten System 11, 12, 13, 21, 22 zugeordneten Systemklasse K1, K2 eingerichtet.
  • Die fünfte Einheit 105 ist dazu eingerichtet, einen Übereinstimmungswert C aus der ermittelten Differenz D zu berechnen.
  • Die sechste Einheit 106 ist dazu eingerichtet, eine Installationsentscheidung E zur Installation des Softwarepakets P1, P2 auf dem bestimmten System 11, 12, 13, 21, 22 in Abhängigkeit von dem berechneten Übereinstimmungswert C zu bestimmen.
  • Die siebte Einheit 107 ist zum Installieren des Softwarepakets P1, P2 auf den elektronischen Komponenten 4149 des bestimmten Systems 11, 12, 13, 21, 22 in Abhängigkeit von der bestimmten Installationsentscheidung E eingerichtet.
  • Obwohl die vorliegende Erfindung anhand von Ausführungsbeispielen beschrieben wurde, ist sie vielfältig modifizierbar.
  • Bezugszeichenliste
  • 1
    Anordnung
    11
    erstes System einer ersten Systemklasse
    12
    zweites System einer zweiten Systemklasse
    13
    drittes System einer dritten Systemklasse
    21
    erstes System einer zweiten Systemklasse
    22
    zweites System einer zweiten Systemklasse
    30
    Zentrale
    41
    Steuereinheit
    42
    Recheneinheit
    43
    Buseinheit
    44
    Datenspeicher
    45
    Energiespeicher
    46
    Eingabeeinheit
    47
    Ausgabeeinheit
    48
    Netzwerkkarte
    49
    Netzwerkadapter
    100
    Vorrichtung
    101
    erste Einheit
    102
    zweite Einheit
    103
    dritte Einheit
    104
    vierte Einheit
    105
    fünfte Einheit
    106
    sechste Einheit
    107
    siebte Einheit
    A1
    erste Anzeige
    A2
    zweite Anzeige
    A3
    dritte Anzeige
    B
    Blockierung der Installation
    C
    Übereinstimmungswert (Compliance-Wert)
    D
    Differenz
    E
    Installationsentscheidung
    IF
    Ist-Fingerabdruck
    K1
    erste Systemklasse
    K2
    zweite Systemklasse
    KD11
    Konfigurationsdaten für Variante V11
    KD12
    Konfigurationsdaten für Variante V12
    KD21
    Konfigurationsdaten für Variante V21
    KD22
    Konfigurationsdaten für Variante V22
    O1
    erster Ort
    O2
    zweiter Ort
    O3
    dritter Ort
    P1
    Softwarepaket für erste Systemklasse
    P2
    Softwarepaket für zweite Systemklasse
    S10–S11
    Schritt
    S11, S12, S13
    Schritt
    S14, S21, S22
    Schritt
    S21–S25
    Schritt
    S61–S64
    Schritt
    S71, S72
    Schritt
    S71–S77
    Schritt
    SF
    Soll-Fingerabdruck
    V11
    erste Variante des ersten Softwarepakets
    V22
    zweite Variante des ersten Softwarepakets
    V21
    erste Variante des zweiten Softwarepakets
    V22
    zweite Variante des zweiten Softwarepakets

Claims (15)

  1. Verfahren zur Softwareverteilung von Software auf eine Mehrzahl von Systemen (11, 12, 13, 21, 22), wobei das jeweilige System (11, 12, 13, 21, 22) einer Systemklasse (K1, K2) einer Mehrzahl von Systemklassen (K1, K2) zugeordnet ist und eine Mehrzahl von elektronischen Komponenten (4149) aufweist, mit: a) Bestimmen (S10) eines digitalen Soll-Fingerabdrucks (SF) für die jeweilige Systemklasse (K1, K2) der Mehrzahl von Systemklassen (K1, K2), b) Bereitstellen (S20) eines Softwarepakets (P1, P2) für die jeweilige Systemklasse (K1, K2), c) Erfassen (S30) eines digitalen Ist-Fingerabdrucks (IF) eines bestimmten Systems (11, 12, 13, 21, 22) der Mehrzahl der Systeme (11, 12, 13, 21, 22), d) Ermitteln (S40) einer Differenz (D) zwischen dem erfassten digitalen Ist-Fingerabdruck (IF) des bestimmten Systems (11, 12, 13, 21, 22) und dem bestimmten digitalen Soll-Fingerabdruck (SF) der dem bestimmten System (11, 12, 13, 21, 22) zugeordneten Systemklasse (K1, K2), e) Berechnen (S50) eines Übereinstimmungswerts (C) aus der ermittelten Differenz (D), f) Bestimmen (S60) einer Installationsentscheidung (E) zur Installation des Softwarepakets (P1, P2) auf dem bestimmten System (11, 12, 13, 21, 22) in Abhängigkeit von dem berechneten Übereinstimmungswert (C), und g) Installieren (S70) des Softwarepakets (P1, P2) auf den elektronischen Komponenten (4149) des bestimmten Systems (11, 12, 13, 21, 22) in Abhängigkeit von der bestimmten Installationsentscheidung (E).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Schritt a) für die jeweilige Systemklasse (K1, K2) umfasst: – Feststellen (S11) eines Hardware-Standes (HW) der in einem jeden System (11, 12, 13, 21, 22) der Systemklasse (K1, K2) verbauten elektronischen Komponenten (4149), und – Berechnen (S12) des digitalen Soll-Fingerabdrucks (SF) für die Systemklasse (K1, K2) in Abhängigkeit des festgestellten Hardware-Standes (HW).
  3. Verfahren nach Anspruch 2, gekennzeichnet durch – Bereitstellen (S13) einer Identifikations-Information (II) für zumindest einen Teil der in der Systemklasse (K1, K2) verbauten elektronischen Komponenten (4149), und – Eingeben (S14) der bereitgestellten Identifikations-Informationen (II) in eine Hashfunktion zur Berechnung des digitalen Soll-Fingerabdrucks (SF) für die Systemklasse (K1, K2).
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die Identifikations-Information (II) als eine Geräte-ID oder als eine eindeutige Adresse, beispielsweise als MAC-Adresse, ausgebildet ist und/oder dass die Hashfunktion eine Einweg-Hashfunktion ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass der Schritt b) umfasst: – Bereitstellen (S21) einer Mehrzahl von Varianten (V11, V12, V21, V22) des Softwarepakets (P1, P2), und – Bereitstellen (S22) von Konfigurationsdaten (KD11, KD12, KD21, KD22) für eine jede der bereitgestellten Varianten (V11, V12, V21, V22) des Softwarepakets (P1, P2).
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass der Schritt g) aufweist: – Auswählen (S71) einer Variante (V22) aus der bereitgestellten Mehrzahl von Varianten (V11, V12, V21, V22) des Softwarepakets (P1, P2), und – Installieren (S72) der ausgewählten Variante (V22) des Softwarepakets (P2) unter Verwendung der für die ausgewählte Variante (V22) bereitgestellten Konfigurationsdaten (KD22).
  7. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass der Schritt b) umfasst: – Bereitstellen (S21) einer Mehrzahl von Varianten (V11, V12, V21, V22) des Softwarepakets (P1, P2), – Bereitstellen (S22) von Konfigurationsdaten (KD11, KD12, KD21, KD22) für eine jede der bereitgestellten Varianten (V11, V12, V21, V22) des Softwarepakets (P1, P2), – Bereitstellen (S23) einer Anzahl von Projektdaten (PD1, PD2, PD3) für verschiedene durch das System (11, 12, 13, 21, 22) ausführbare Projekte, – Bereitstellen (S24) einer Anzahl von Applikationen (AP1, AP2, AP3), und – Bereitstellen (S25) einer Anzahl von Bibliotheken (B1, B2, B3).
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Schritt g) umfasst: – Auswählen (S73) einer Variante (V22) aus der bereitgestellten Mehrzahl von Varianten (V11, V12, V21, V22) des Softwarepakets (P1, P2), – Auswählen (S74) von Projektdaten (PD1) aus der Anzahl von bereitgestellten Projektdaten (PD1, PD2, PD3), – Auswählen (S75) zumindest einer Applikation (AP2) aus der Anzahl von bereitgestellten Applikationen (AP1, AP2, AP3), – Auswählen (S76) zumindest einer Bibliothek (B3) aus der Anzahl von bereitgestellten Bibliotheken (B1, B2, B3), und – Installieren (S77) der ausgewählten Variante (V22) des Softwarepakets (P2) unter Verwendung der für die ausgewählte Variante (V22) bereitgestellten Konfigurationsdaten (KD22), der ausgewählten Projektdaten (PD1), der ausgewählten zumindest einen Applikation (AP2) und der ausgewählten zumindest einen Bibliothek (B3).
  9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die in dem jeweiligen System (11, 12, 13, 21, 22) verbauten elektronischen Komponenten (4149) zumindest eine Steuereinheit (41), zumindest eine Recheneinheit (42), zumindest eine Buseinheit (43), zumindest einen Datenspeicher (44), zumindest einen Energiespeicher (45), zumindest eine Eingabeeinheit (46), zumindest eine Ausgabeeinheit (47), zumindest eine Netzwerkkarte (48) und/oder zumindest einen Netzwerkadapter (49) umfassen.
  10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass das für die jeweilige Systemklasse (K1, K2) bereitgestellte Softwarepaket (P1, P2) zumindest ein Betriebssystem, zumindest eine Steuersoftware, zumindest eine Treibersoftware und/oder zumindest ein Konfigurationstemplate umfasst.
  11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass der Schritt d) umfasst: – Darstellen der ermittelten Differenz (D) für einen Benutzer mittels eines Ausgabegeräts.
  12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass der Schritt f) umfasst: – Festlegen einer ersten positiven Installationsentscheidung (I) und Ausgeben einer entsprechenden ersten Anzeige (A1) an einen Benutzer, falls der berechnete Übereinstimmungswert (C) angibt, dass der digitale Ist-Fingerabdruck (IF) dem digitalen Soll-Fingerabdruck (SF) entspricht, – Festlegen einer zweiten positiven Installationsentscheidung (I) und Ausgeben einer entsprechenden zweiten Anzeige (A2) an den Benutzer, falls der berechnete Übereinstimmungswert (C) angibt, dass der digitale Ist-Fingerabdruck (IF) unterschiedlich zu dem digitalen Soll-Fingerabdruck (SF) ist, und der berechnete Übereinstimmungswert (C) größer als ein vorbestimmter Schwellwert ist, und – Festlegen einer negativen Installationsentscheidung (B) und Ausgeben einer entsprechenden dritten Anzeige (A3) an den Benutzer, falls der berechnete Übereinstimmungswert (C) kleiner als der vorbestimmte Schwellwert oder gleich dem vorbestimmten Schwellwert ist.
  13. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, dass das System (11, 12, 13, 21, 22) als ein militärisches System, beispielsweise als ein Ausrüstungssystem oder als ein Militärfahrzeug, als ein medizintechnisches System, als ein Geldautomat oder als ein Warenautomat ausgebildet ist.
  14. Computerprogrammprodukt, welches auf einer programmgesteuerten Einrichtung die Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 13 veranlasst.
  15. Vorrichtung (100) zur Softwareverteilung von Software auf eine Mehrzahl von Systemen (11, 12, 13, 21, 22), wobei das jeweilige System (11, 12, 13, 21, 22) einer Systemklasse (K1, K2) einer Mehrzahl von Systemklassen (K1, K2) zugeordnet ist und eine Mehrzahl von elektronischen Komponenten (4149) aufweist, mit: – einer ersten Einheit (101) zum Bestimmen eines digitalen Soll-Fingerabdrucks (SF) für die jeweilige Systemklasse (K1, K2) der Mehrzahl von Systemklassen (K1, K2), – einer zweiten Einheit (102) zum Bereitstellen eines Softwarepakets (P1, P2) für die jeweilige Systemklasse (K1, K2), – einer dritten Einheit (103) zum Erfassen eines digitalen Ist-Fingerabdrucks (IF) eines bestimmten Systems (11, 12, 13, 21, 22) der Mehrzahl der Systeme (11, 12, 13, 21, 22), – einer vierten Einheit (104) zum Ermitteln einer Differenz (D) zwischen dem erfassten digitalen Ist-Fingerabdruck (IF) des bestimmten Systems (11, 12, 13, 21, 22) und dem bestimmten digitalen Soll-Fingerabdruck (SF) der dem bestimmten System (11, 12, 13, 21, 22) zugeordneten Systemklasse (K1, K2), – einer fünften Einheit (105) zum Berechnen eines Übereinstimmungswerts (C) aus der ermittelten Differenz (D), – einer sechsten Einheit (106) zum Bestimmen einer Installationsentscheidung (E) zur Installation des Softwarepakets (P1, P2) auf dem bestimmten System (11, 12, 13, 21, 22) in Abhängigkeit von dem berechneten Übereinstimmungswert (C), und – einer siebten Einheit (107) zum Installieren des Softwarepakets (P1, P2) auf den elektronischen Komponenten (4149) des bestimmten Systems (11, 12, 13, 21, 22) in Abhängigkeit von der bestimmten Installationsentscheidung (E).
DE102015112511.0A 2015-07-30 2015-07-30 Verfahren und Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen Pending DE102015112511A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102015112511.0A DE102015112511A1 (de) 2015-07-30 2015-07-30 Verfahren und Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen
PCT/EP2016/062210 WO2017016709A1 (de) 2015-07-30 2016-05-31 Verfahren und vorrichtung zur softwareverteilung von software auf eine mehrzahl von systemen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015112511.0A DE102015112511A1 (de) 2015-07-30 2015-07-30 Verfahren und Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen

Publications (1)

Publication Number Publication Date
DE102015112511A1 true DE102015112511A1 (de) 2017-02-02

Family

ID=56116406

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015112511.0A Pending DE102015112511A1 (de) 2015-07-30 2015-07-30 Verfahren und Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen

Country Status (2)

Country Link
DE (1) DE102015112511A1 (de)
WO (1) WO2017016709A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003266A1 (en) * 2000-09-22 2004-01-01 Patchlink Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US20090144719A1 (en) * 2007-11-29 2009-06-04 Jan Pazdziora Using system fingerprints to accelerate package dependency resolution

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138563A1 (en) * 2003-12-18 2005-06-23 International Business Machines Corporation Method and system for providing computer system software images
US8972967B2 (en) * 2011-09-12 2015-03-03 Microsoft Corporation Application packages using block maps
EP2816469A1 (de) * 2013-06-19 2014-12-24 British Telecommunications public limited company Anwendungs-Broker für mehrere virtualisierte Rechnerumgebungen

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003266A1 (en) * 2000-09-22 2004-01-01 Patchlink Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US20090144719A1 (en) * 2007-11-29 2009-06-04 Jan Pazdziora Using system fingerprints to accelerate package dependency resolution

Also Published As

Publication number Publication date
WO2017016709A1 (de) 2017-02-02

Similar Documents

Publication Publication Date Title
DE112011103048B4 (de) Ein Verfahren zum Beglaubigen einer Vielzahl von Datenverarbeitungssystemen
DE102005010900A1 (de) Modellspezifische Registeroperationen
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
DE102017121141A1 (de) Robotersimulationsvorrichtung
DE102011005382A1 (de) Aufgabenausführungs-Steuereinheit und Aufzeichnungsmedium, auf dem ein Aufgabenausführungs-Steuerprogramm aufgezeichnet ist
EP3130970A1 (de) Verfahren zum verbinden einer eingabe/ausgabe-schnittstelle eines für die steuergerätentwicklung eingerichteten testgeräts
DE10332307B4 (de) Verfahren und Vorrichtung zur Implementierung von Hot-key-Funktionen
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE112012002647T5 (de) Erkennen eines durch Interrupt-Verarbeitung verursachten anormalen Betriebs
DE102015112511A1 (de) Verfahren und Vorrichtung zur Softwareverteilung von Software auf eine Mehrzahl von Systemen
DE102009043287A1 (de) Verfahren und Anordnung zum Installieren und Konfigurieren eines Computersystems
DE102006060322A1 (de) Verfahren und Vorrichtung zum automatischen Testen von modellbasierten Funktionen
DE19834620C2 (de) Verfahren zum Aufrüstung der Bestückungsautomaten einer Bestückungslinie für ein Mix unterschiedlicher Leiterplattentypen
DE102012103654A1 (de) Installieren und Prüfen einer Anwendung auf einer stark genutzten Computerplattform
WO2016169828A1 (de) Ressourcen-optimierer für software-ökosysteme
DE112019001332T5 (de) Ermittlungsvorrichtung, fotoelektrischer Sensor mit mehreren optischen Achsen, Verfahren zur Steuerung einer Ermittlungsvorrichtung, Informationsverarbeitungsprogramm und Aufzeichnungsmedium
EP3627262A1 (de) Verfahren und assistenzsystem zur parametrisierung eines anomalieerkennungsverfahrens
DE102021130117A1 (de) Diagnosemuster-erzeugungsverfahren und computer
DE112010003525T5 (de) Verfahren zum Sperren der Ausführung eines Hackprozesses
DE102008039380A1 (de) Prüfsystem
EP3757698A1 (de) Verfahren und vorrichtung zur bewertung und auswahl von signal-vergleichsmetriken
EP1546949B1 (de) Verfahren und vorrichtung zur verifikation von digitalen schaltungen
DE102019217427A1 (de) Steuern und/oder Überwachen einer Maschinenanordnung
CN107844397A (zh) 用于嵌入式系统的分析方法、计算机程序产品和分析设备
DE60219551T2 (de) Verfahren zum prüfen der Steuersoftware eines Telekommunikationsgerätes mit einer verteilten Steuerung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication