-
Stand der
Technik
-
Die
Erfindung geht aus von einem Verfahren zur Installation einer Programmkomponente
nach der Gattung des Hauptanspruchs. Es ist bekannt, Recheneinheiten
so auszuführen,
dass bestimmte Programmkomponenten nachträglich installiert oder durch
neuere Versionen der jeweiligen Programmkomponente ersetzt werden
können.
Hierzu ist es bekannt, vor der Installation zu überprüfen, ob die zu installierende
Komponente bereits auf der Recheneinheit in der entsprechenden Version
vorliegt, um einen unnötigen
Installationsaufwand zu vermeiden.
-
Vorteile der
Erfindung
-
Das
erfindungsgemäße Verfahren
zur Installation einer Programmkomponente mit den Merkmalen des
Hauptanspruchs hat demgegenüber
den Vorteil, dass zudem die Kompatibilität einer Programmkomponente
zu auf der Recheneinheit bereits vorhandenen Programmkomponenten
vor der Eingabe überprüft wird.
Hierdurch wird ein unnötiger
Installationsvorgang vermieden, da die installierte Software bei
einer Inkompatibilität
zu übrigen
Programmkomponenten nicht lauffähig
ist. Darüber
hinaus wird vermieden, dass eine lauffähige Version einer Programmkomponente
durch eine nicht lauffähige
Version überschrieben
wird. Zudem wird sichergestellt, dass die Recheneinheit nach Installation
der Programmkomponente lauffähig
bleibt. Unter Kompatibilität
ist hierbei zu verstehen, dass die in dem Gerät vorhandene und ungeändert verbleibende
Softwarekomponente zusammen mit der neu installierten Programmkomponente
lauffähig
ist. Zwei Komponenten werden insbesondere dann als kompatibel zueinander
angesehen, wenn alle ihre Schnittstellen jeweils zueinander kompatibel
sind. Unter Lauffähigkeit
ist zu verstehen, dass eine zuvor definierte Funktionalität auch nach
der Installation einer Komponente durch die Recheneinheit noch bereitgestellt
wird. Durch die Installation der weiteren Programmkomponente kann
die Funktionalität
gegebenenfalls umfangreicher, aber auch eingeschränkter bezogen
auf den ursprünglichen
Funktionsstand sein.
-
Durch
die in den Unteransprüchen
aufgeführten
Maßnahmen
sind vorteilhafte Weiterbildungen und Verbesserungen des im Hauptanspruch
angegebenen Verfahrens zur Installation einer Programmkomponente
möglich.
Besonders vorteilhaft ist, eine Kompatibilität zweier Programmkomponenten
durch eine Überprüfung der
Kompatibilität
der einzelnen Schnittstellen der Programmkomponenten zu bestimmen.
Hierdurch kann z.B. auf eine Untersuchung des Codes der einzelnen
Programmkomponenten selbst verzichtet werden. Hierdurch wird die Kompatibilitätsprüfung vereinfacht.
-
Ferner
ist es vorteilhaft, eine Kompatibilität von Programmkomponenten durch
einen Vergleich von den Programmkomponenten zugeordneten Versionskennzahlen
zu ermitteln. Ein Vergleich zweier Programmkomponenten wird damit
auf einen Vergleich von Versionskennzahlen zurückgeführt und damit weiter vereinfacht.
Insbesondere wird hierdurch ein schneller Vergleich möglich, wobei
nur ein Mindestmaß an
Arbeitsspeicher benötigt
wird. Insbesondere gegenüber
einem Vergleich, bei dem die Kompatibilität der einzelnen Schnittstellen
jeweils für sich überprüft werden,
wird eine erhebliche Zeitersparnis erreicht. Besonders vorteilhaft
ist, eine Versionskennzahl einer Programmkomponente aus der Schnittstellenkonfiguration
der Programmkomponente herzuleiten und damit in Abhängigkeit
von ihrer Schnittstellenkonfiguration einer Programmkomponente eine
Versionskennzahl zuzuordnen. Es ist ferner besonders vorteilhaft,
den einzelnen Programmkomponenten Listen mit Versionskennzahlen
zuzuordnen, aus denen die entsprechenden Versionen ersichtlich sind,
zu der die jeweilige Programmkomponente kompatibel ist. Da bei einer
Aktualisierung möglicherweise
zukünftige
Programmkomponenten nicht bekannt sind, ist es ferner vorteilhaft,
als Kriterium für
eine Kompatibilität
lediglich zu verlangen, dass es ausreicht, wenn bereits eine der
beiden Programmkomponenten in einer Liste der jeweiligen anderen
Programmkomponente enthalten ist. Die Programmkomponente selbst
muss dann keinen Hinweis auf die andere Programmkomponente mehr umfassen,
um eine Kompatibilität
festzustellen. Das vorgestellte Verfahren ist insbesondere dann
vorteilhaft, wenn die einzelnen Programmkomponenten eine Vielzahl
von unabhängigen
Schnittstellen aufweisen, wobei die Programmkomponenten gegenseitig
auf die Schnittstellen zugreifen. Es ist ferner vorteilhaft, die
zu installierende Programmkomponente zum Austausch einer bereits
auf der Recheneinheit vorhandenen Programmkomponente zu installieren.
Durch die erfindungsgemäße Installation nur
bei vorliegender Kompatibilität
wird sichergestellt, dass ein möglicherweise
nicht mehr verfügbarer
Datensatz einer ursprünglich
installierten Programmkomponente nicht durch eine Programmkomponente
ersetzt wird, die mit den übrigen
Programmkomponenten nicht lauffähig
ist. Das erfindungsgemäße Verfahren
erlaubt es dabei eine Kompatibilitätsprüfung durchzuführen, wenn
zum einen eine Programmkomponente durch eine neuere Version ausgetauscht
wird, und zum anderen, wenn eine Programmkomponente durch eine ältere Version
ersetzt wird.
-
Es
ist ferner vorteilhaft, bei der Installation von Anwendungsprogrammen,
die gegebenenfalls des öfteren
aktualisiert werden, jeweils bei der Installation eine Kompatibilitätsprüfung durchzuführen.
-
Sollte
eine Installation nicht erfolgt sein, so wird vorteilhaft eine Fehlermeldung
ausgegeben, durch die ein Benutzer auf die nicht erfolgte Installation
hingewiesen wird.
-
Das
erfindungsgemäße Verfahren
kann für beliebige
Recheneinheiten und damit für
beliebige technische Geräte
mit Recheneinheiten verwendet werden. Besonders vorteilhaft ist
die Verwendung des erfindungsgemäßen Verfahrens
in einem Kraftfahrzeug, das eine Recheneinheit mit darin eingebrachten
eingebetteten Systemen aufweist. Da in der Regel Programme schneller
entwickelt werden, als dass ein Kraftfahrzeug ersetzt wird, kann
insbesondere eine Nachinstallation von Programmkomponenten mit dem
erfindungsgemäßen Verfahren
sicher durchgeführt
werden, ohne dass ein Benutzer Gefahr läuft, dass das Fahrzeug hinterher
nicht mehr funktioniert oder dass z. B. bei einer vor Ort auftretenden Störung nicht
mehr verfügbare
Daten durch eine falsche Installation überschrieben werden.
-
Zeichnung
-
Ausführungsbeispiele
der Erfindung sind in der Zeichnung dargestellt und in der nachfolgenden Beschreibung
näher erläutert. Es
zeigen
-
1 eine Fahrerinformationsvorrichtung
in einem Fahrzeug mit verschiedenen installierten Programmkomponenten,
-
2a bis 2c Programmkomponenten verschiedener
Versionen, die miteinander in Verbindung stehen,
-
3 ein Ablauf eines erfindungsgemäßen Verfahrens
zur Installation einer Programmkomponente auf einer Recheneinheit.
-
Beschreibung
des Ausführungsbeispiels
-
Im
Folgenden wird die Erfindung am Beispiel einer Fahrerinformationsvorrichtung
in einem Fahrzeug erläutert.
Das Verfahren ist entsprechend auf beliebige andere Recheneinheiten übertragbar.
-
1 zeigt eine Recheneinheit 1,
auf der eine erste Programmkomponente 11, eine zweite Programmkomponente 12 und
eine dritte Programmkomponente 13 installiert sind. Die
Programmkomponenten interagieren dabei in der Weise, dass sie über in Software
realisierte Schnittstellen verfügen,
bei denen Daten und Parameter von einer Programmkomponente an eine
andere Programmkomponente übertragen
werden. Die einzelnen Schnittstellen sind jeweils unidirektional
ausgeführt,
wobei zwischen zwei Programmkomponenten eine Vielzahl einzelner Schnittstellen
vorgesehen sein kann.
-
Diese
Vielzahl von Schnittstellen kann dabei insgesamt unidirektional
ausgerichtet sein, sie kann jedoch auch eine Datenübertragung
in beide Richtungen zulassen. Zwischen der dritten Programmkomponente 13 und
der ersten Programmkomponente 11 sind eine erste Schnittstelle 131 und
eine zweite Schnittstelle 132 vorgesehen, mit denen Daten
von der dritten Programmkomponente 13 an die erste Programmkomponente 11 übertragen
werden können.
Ferner ist eine dritte Schnittstelle 133 vorgesehen, mit
der Daten von der ersten Programmkomponente 11 an die dritte
Programmkomponente 13 übertragen
werden können.
Ferner ist eine erste Schnittstelle 121 zwischen der ersten
Programmkomponente 11 und der zweiten Programmkomponente 12 vorgesehen,
die dazu dient, Daten von der zweiten Programmkomponente 12 an
die erste Programmkomponente 11 zu übertragen. Eine zweite Schnittstelle 122 dient
zum Datentransport in die umgekehrte Richtung. Die Programmkomponenten 11, 12, 13 werden
von einer in der 1 nicht
gezeigten Prozessoreinheit der Recheneinheit 1 abgearbeitet.
-
Die
Schnittstellen können
dabei z.B. auch Funktionsaufrufe umfassen, die für eine Ausführung der Funktion durch die
jeweils andere Programmkomponente einen bestimmten Parametersatz
erfordern, der für
die Bearbeitung der Funktion in der anderen Programmkomponente erforderlich
ist.
-
Die
Programmkomponenten sind in einem der Recheneinheit 1 zugeordneten
Speicher für
die Ausführung
der Programmkomponenten abgelegt, der in der 1 nicht gezeigt ist. Der Speicher kann einerseits
ein Magnetspeicher sein, z. B. ein Festplattenlaufwerk, kann aber
auch als eine überschreibbare
Speicherzelle, z. B. ein EEPROM, ausgeführt sein. Unter einer Installation
der Programmkomponenten kann einerseits ein reines Kopieren von
Daten in den Speicher der Recheneinheit verstanden werden. Darüber hinaus
ist es auch möglich,
dass die installierten Programmkomponenten in ein auf der Recheneinheit 1 installiertes
Betriebssystem, also ein Betriebsprogramm zur Bereitstellung der
Grundfunktionen der Recheneinheit, eingebunden werden. Hierzu ist
es erforderlich, dass zusätzlich
zu der Programmkomponente z.B. Systemdateien an die Recheneinheit 1 übertragen
werden. Ferner ist es auch möglich,
dass der Recheneinheit 1 Registrierungsdaten zum Verwalten
der Programmkomponente mitübertragen
werden.
-
Die
Recheneinheit 1 ist in dem hier dargestellten Ausführungsbeispiel
als eine Navigationsvorrichtung in einem Fahrzeug ausgeführt. Die
erste Programmkomponente dient in diesem Fall als Betriebssystem
für die
Recheneinheit, die noch weitere Funktionen übernehmen kann, deren Programmkomponenten
ebenfalls in der Recheneinheit 1 abgelegt, in der 1 jedoch nicht dargestellt
sind. Die zweite Programmkomponente 12 dient z.B. als eine Routenberechnungsfunktion,
während
die dritte Programmkomponente eine Datenbereitstellungsfunktion
von Straßenkartendaten
einerseits und Multimediadaten andererseits beinhaltet. Sowohl bei
der Routenberechnungsfunktion, als auch bei der Datenbereitstellungsfunktion
ist es wahrscheinlich, dass sich diese Programmkomponenten während der
Nutzung der Recheneinheit, also während der Lebensdauer des Fahrzeugs, ändern werden.
Gründe
hierfür
könnten
erweiterte, bereitzustellende Daten sein, bei der z.B. die touristischen
Hinweisfunktionen erweitert werden. Ferner ist es auch möglich, dass
ein optimierter Routenermittlungsalgorithmus zur Verfügung steht,
der entweder schneller eine zu fahrende Route ermitteln kann oder
der z.B. in der Lage ist, die aktuelle Verkehrssituation in die
Routenberechnung mit einzubeziehen, wenn dies bisher noch nicht
der Fall war.
-
Will
ein Benutzer nun eine derartige neue Programmkomponente auf der
Recheneinheit 1 installieren, so sind hierfür verschiedene
Installationsmöglichkeiten
vorhanden, die an einer Recheneinheit jeweils ausschließlich, aber
auch zur Auswahl realisiert werden können. In einer ersten Ausführungsform
weist die Recheneinheit eine Luftschnittstelle 2 auf, die
z.B. eine Schnittstelle zu einem Datennetz oder zu einem Mobilfunknetz
darstellt. Die Daten der Programmkomponente werden der Recheneinheit 1 über die
Luftschnittstelle zur Verfügung
gestellt. Ferner ist auch eine drahtlose Übertragung von einem Rechner
im Fahrzeug möglich,
z.B. über
eine sogenannte Bluetooth-Schnittstelle. Ferner weist die Recheneinheit 1 einen
Steckkontakt 3 zum Anschluss eines weiteren Rechners auf,
von dem die Daten übertragbar
sind. In einer weiteren Ausführungsform weist
die Recheneinheit 1 ein Datenträgerlaufwerk 14 auf,
in das ein Datenträger
mit einer entsprechend aktualisierten Softwarekomponente zur Installation eingelegt
werden kann.
-
Bei
der Installation ist es einerseits möglich, dass eine neue, zusätzliche
Programmkomponente in der Recheneinheit 1 installiert wird.
Hierzu könnte z.B.
die dritte Programmkomponente 13 eine vierte Schnittstelle 134 aufweisen,
die bei der Darstellung in der 1 noch
offen ist, an die jedoch eine zu installierende, weitere Programmkomponente
angehängt werden
kann. In einer bevorzugten Ausführungsform wird
bei der Installation eine bereits vorhandene Programmkomponente,
z.B. die zweite Programmkomponente, für die Routenberechnungsfunktion 12, durch
eine neu installierte Programmkomponente ersetzt.
-
Eine
Installation einer derartigen Programmkomponente ist in der 3 gezeigt. Ausgehend von einem
Initialisierungsschritt 20, mit dem eine Installation gestartet
wird, wird in einem Ermittlungsschritt 21 sowohl eine Versionskennzahl
einer auf der Recheneinheit 1 bereits installierten Komponente,
als auch eine Versionskennzahl der zu installierenden Komponente
ermittelt. Diese Versionskennzahl wird dadurch bestimmt, dass bei
jeder Änderung
einer Schnittstellenkonfiguration einer jeweiligen Programmkomponente
eine neue Versionskennzahl zugewiesen wird. Die Versionskennzahl
ist durch ein einfaches Auslesen eines entsprechenden Parameterwertes
der jeweiligen Programmkomponente möglich. Ferner ist jeder Programmkomponente
eine Liste für
jede mit ihr verbindbare Programmkomponente zugeordnet, die jeweils
alle Versionskennzahlen der zu der Programmkomponente kompatiblen
Versionen der anderen Programmkomponente aufweist. In einem anschließenden ersten
Prüfschritt 22 wird überprüft, ob die
Versionskennzahl der zu installierenden Komponente in der Liste
der auf der Recheneinheit bereits vorhandenen Komponente vorhanden
ist oder ob die Versionskennzahl der auf dem Rechner vorhandenen
Komponente in der Liste der zu installierenden Komponente vorhanden
ist. Ist bereits eine dieser beiden Bedingungen erfüllt, so
ist die Kompatibilität der
beiden Programmkomponenten zueinander sichergestellt. In diesem
Fall wird zu einem zweiten Prüfschritt 23 weiterverzweigt,
in dem überprüft wird, ob
die zu installierende Komponente außer zu dieser ersten Programmkomponente
noch zu weiteren, auf dem Rechner bereits vorhandenen Programmkomponenten
kompatibel sein muss. Dies wäre
z.B. der Fall, wenn gemäß dem Ausführungsbeispiel
der 1 die erste Programmkomponente 11 durch
eine neuere Version zu ersetzen würde, da diese sowohl mit der
zweiten, als auch mit der dritten Programmkomponente 12, 13 in
Wechselwirkung steht. In diesem Fall wird zu dem Ermittlungsschritt 21 zurückverzweigt
und es wird derselbe Vergleich zwischen der zu installierenden Programmkomponente
und der weiteren, auf dem Rechner bereits vorhandenen Programmkomponente
durchgeführt.
Gibt es keine weiteren zu überprüfenden Programmkomponenten,
so wird zu einem Installationsschritt 24 verzweigt, in dem
die zu installierende Programmkomponente in den Speicher der Recheneinheit 1 übertragen
wird, wobei die dort bereits vorhandene Programmkomponente entweder überschrieben
wird, zumindest aber aus der Abarbeitung des Programms herausgenommen
wird.
-
Wird
in dem ersten Prüfschritt 22 festgestellt, dass
die zu installierende Komponente nicht kompatibel zu einer in der
Recheneinheit 1 bereits vorhandenen Komponente ist, so
wird zu einem Abbruchschritt 25 verzweigt und es wird über eine
Anzeige 4 oder über
einen Lautsprecher 5 der Recheneinheit 1 ein akustisches
und/oder optisches Warnsignal an einen Benutzer ausgegeben. Es wird
darauf hingewiesen, dass eine Installation nicht erfolgt ist. Bevorzugt wird
auch mitgeteilt, welcher Softwarestand für eine Installierung erforderlich
ist.
-
Sollte
eine Installierung umfangreicher sein, kann es gegebenenfalls erforderlich
sein, bestimmte Komponenten in einer vorgegebenen Reihenfolge so zu
installieren, dass stets nur zueinander kompatible Programmkomponenten
auf der Recheneinheit vorliegen. Sollen nun z.B. die erste und die
zweite Programmkomponente 11, 12 ausgetauscht
werden, kann es gegebenenfalls erforderlich sein, zuerst eine neue
Version der ersten Programmkomponente und dann eine neue Version
der zweiten Programmkomponente zu installieren, da gegebenenfalls
die neu zu installierende zweite Programmkomponente zu der auf der
Recheneinheit bereits vorhandenen ersten Programmkomponente 11 nicht
kompatibel sein mag.
-
In
den 2a, 2b und 2c sind
verschiedene Beispiele für
eine Aktualisierung der ersten und der zweiten Programmkomponente 11, 12 dargestellt.
In der 2a stehen die
erste Programmkomponente und die zweite Programmkomponente über die
erste und die zweite Schnittstelle 121, 122 in
Verbindung. Hierbei ist der ersten und der zweiten Programmkomponente 11, 12 jeweils
die Versionskennzahl 1 zugeordnet. Die erste Programmkomponente 11 weist eine
Versionskennzahlliste 6 auf, in der alle Versionen der
zweiten Programmkomponente abgelegt sind, die zu der vorliegenden
Version der ersten Programmkomponente 11 kompatibel sind.
In dem hier vorliegenden Ausführungsbeispiel
ist dies lediglich die Versionskennzahl 1 der zweiten Programmkomponenten.
Ebenso weist die zweite Programmkomponente 12 eine entsprechende
Versionskennzahlliste 7 auf, in der diejenigen Versionskennzahlen
der ersten Programmkomponente 11 abgelegt sind, zu denen
die zweite Programmkomponente 12 mit der Versionskennzahl 1 kompatibel
ist. Dies ist hier ebenfalls nur die Versionskennzahl 1.
-
In
der 2b ist nun eine
neuere Version 110 der ersten Programmkomponente 11 und
eine neuere Version 120 der zweiten Programmkomponente 12 dargestellt.
Die Programmkomponenten unterscheiden sich dadurch, dass die erste
Schnittstelle 121 durch eine neuere Schnittstelle 123 ersetzt
wurde. Die beiden Schnittstellen können sich z.B. dadurch unterscheiden,
dass gegenüber
der ersten Schnittstelle 121 ein zusätzlicher Parameter von der neuen
ersten Programmkomponente 110 zur Bearbeitung durch die
neue zweite Programmkomponente 120 bereitgestellt wird.
Die neue erste Programmkomponente 110 erhält damit
die Versionskennzahl 2, ebenso wie die neue zweite Programmkomponente 120.
In einer Versionskennzahlliste 60 der neuen ersten Programmkomponente 110 ist
lediglich die Versionskennzahl 2 enthalten, während in
der Versionskennzahlliste 70 der neuen zweiten Programmkomponente 120 die
Versionskennzahlen 1 und 2 enthalten sind. Wird
nun ausgehend von der Konfiguration gemäß der 2b versucht, die neue zweite Programmkomponente 120 durch
die zweite Programmkomponente 12 in der ursprünglichen
Ausführung
zu ersetzen, wird bei einem Vergleich der Versionskennzahllisten
eine Inkompatibilität
festgestellt. Denn in der Versionskennzahlliste der zweiten Programmkomponente 12 ist
lediglich die Versionskennzahl 1 vorhanden, die neue zweite
Programmkomponente 110 hat jedoch die Versionskennzahl 2.
In der Versionskennzahlliste 60 dieser neuen ersten Programmkomponente 110 ist
jedoch ebenfalls lediglich die Versionskennzahl 2 abgelegt.
Da die jeweils andere Komponente in keiner der beiden Versionskennzahllisten
aufgefunden werden kann, wird eine Installation abgebrochen.
-
Wird
dagegen versucht, ausgehend von der Konfiguration gemäß der 2a die zweite Programmkomponente 12 durch
die neue zweite Programmkomponente 120 zu ersetzen, so
wäre dies möglich, da
in deren Versionskennzahlliste 70 auch die Versionskennzahl 1 vorhanden
ist. Ausgehend von der Konfiguration in der 2a wäre
also ein Austausch der zweiten Programmkomponente 12 durch
die neue zweite Programmkomponente 120 möglich. Eine
entsprechende Konfiguration ist in der 2c dargestellt. Mit dem Bezugszeichen 121' ist hiermit
die Schnittstelle von der ersten Komponente 11 zu der neuen
zweiten Programmkomponente 120 bezeichnet. Dies könnte z.B.
dadurch realisiert werden, dass der von der ersten Programmkomponente 11 nicht
bereitgestellte, zusätzliche
Parameter entweder auf einen Standardwert eingestellt wird oder ganz
ignoriert wird. Gegebenenfalls wäre
es auch möglich,
von der Konfiguration in der 2b ebenfalls
zu der Konfiguration in der 2c zu
gelangen. Gegebenenfalls kann ein Benutzer vor der Installation
noch davor gewarnt werden, dass eine aktuellere Version durch eine ältere Version
einer Programmkomponente ersetzt werden soll.
-
Für einen
Vergleich ist es damit ausreichend, den Inhalt der Versionskennzahllisten 6, 60, 7, 70 mit den
Versionskennzahlen der jeweils anderen Programmkomponente zu vergleichen.
-
Der
Kompatibilitätsvergleich
ist bevorzugt für Geräte vorgesehen,
bei denen die verschiedenen Programmkomponenten in ein einziges
großes
Programmpaket eingebunden sind. Jedoch ist es auch möglich, z.B.
die Kompatibilität
von Programmen auf verschiedenen Recheneinheiten, die miteinander verbunden
sind und bei denen zumindest auf einer Recheneinheit eine Installation
erfolgen soll, entsprechend zu überprüfen.
-
Neben
einer Verwendung für
die Überprüfung bei
einem Endnutzer ist es jedoch auch möglich, bereits während der
Fertigung die Funktionalität
des Systems dadurch zu überprüfen, dass
das erfindungsgemäße Installationsverfahren
bei der Erstinstallation von Software auf einem Gerät berücksichtigt wird
und die Kompatibilität
z.B. zu einem auf dem System bereits vorhandenen Betriebssystem
jeweils überprüft wird.