Movatterモバイル変換


[0]ホーム

URL:


DE102020103314A1 - Procedure for updating software and nodes in a network - Google Patents

Procedure for updating software and nodes in a network
Download PDF

Info

Publication number
DE102020103314A1
DE102020103314A1DE102020103314.1ADE102020103314ADE102020103314A1DE 102020103314 A1DE102020103314 A1DE 102020103314A1DE 102020103314 ADE102020103314 ADE 102020103314ADE 102020103314 A1DE102020103314 A1DE 102020103314A1
Authority
DE
Germany
Prior art keywords
software
network
node
handler
program instructions
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
DE102020103314.1A
Other languages
German (de)
Inventor
Benedikt Niedermayr
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.)
Ingenics Digital De GmbH
Original Assignee
Mixed Mode 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 Mixed Mode GmbHfiledCriticalMixed Mode GmbH
Priority to DE102020103314.1ApriorityCriticalpatent/DE102020103314A1/en
Publication of DE102020103314A1publicationCriticalpatent/DE102020103314A1/en
Pendinglegal-statusCriticalCurrent

Links

Images

Classifications

Landscapes

Abstract

Translated fromGerman

Die Erfindung betrifft ein Verfahren zum Aktualisieren von mindestens einer Softwarekomponente (OS, 24, 26) eines Knotens (10) eines Netzwerkes (16), Das Verfahren umfasst die Schritte:A) Herunterladen einer aktualisierten Version (P.OS, P.24, P.26) der mindestens einen Softwarekomponente (OS, 24, 26) von einem Server (14) über das Netzwerk (16),B) Herunterladen von dem Server (14) über das Netzwerk (16) einer Handler-Software (P.H.OS, P.H.24, P.H.26), die mindestens eine Programmanweisung zum Aktualisieren der mindestens einen Softwarekomponente (OS, 24, 26) aufweist,C) Ausführen der mindestens einen Programmanweisung der Handler-Software (P.H.OS, P.H.24, P.H.26) zum Aktualisieren der mindestens einen Softwarekomponente (OS, 24, 26), wobei die Schritte A), B) C) durch eine Update Service Software (28) ausgeführt werden, welche zumindest ein Plugin (36, 44, 46) umfasst.Die Erfindung betrifft weiter einen Knoten (10) eines Netzwerkes (16) mit mindestens einer aktualisierbaren Softwarekomponente (OS, 24, 26), wobei der Knoten (10) eine Update Service Software (28) aufweist, welche Programmanweisungen zum Ausführen des Verfahrens aufweist.The invention relates to a method for updating at least one software component (OS, 24, 26) of a node (10) of a network (16). The method comprises the steps: A) Downloading an updated version (P.OS, P.24, P.26) the at least one software component (OS, 24, 26) from a server (14) via the network (16), B) downloading from the server (14) via the network (16) handler software (PHOS , PH24, PH26), which has at least one program instruction for updating the at least one software component (OS, 24, 26), C) executing the at least one program instruction of the handler software (PHOS, PH24, PH26) for updating the at least one software component (OS, 24, 26), steps A), B) C) being carried out by update service software (28) which comprises at least one plug-in (36, 44, 46). The invention also relates a node (10) of a network (16) with at least one updatable software co components (OS, 24, 26), the node (10) having an update service software (28) which has program instructions for carrying out the method.

Description

Translated fromGerman

Die vorliegende Erfindung betrifft ein Verfahren zum Aktualisieren von mindestens einer Softwarekomponente eines Knotens eines Netzwerkes sowie einen Knoten eines Netzwerkes mit mindestens einer aktualisierbaren Softwarekomponente.The present invention relates to a method for updating at least one software component of a node of a network and a node of a network with at least one updatable software component.

InUS5845077 wird ein Verfahren zum Aktualisieren von Computer Software beschrieben, bei dem die aktualisierte Software mittels eines Update Service von einem entfernten Computer heruntergeladen wird.In US5845077 describes a method for updating computer software, in which the updated software is downloaded from a remote computer by means of an update service.

Demgegenüber soll das Aktualisieren von Software flexibler gestaltet werden.In contrast, updating software should be made more flexible.

Diese Aufgabe wird gelöst durch ein Verfahren zum Aktualisieren von mindestens einer Softwarekomponente gemäß Anspruch 1 und durch einen Knoten eines Netzwerkes gemäß Anspruch 10. Die abhängigen Ansprüche betreffen vorteilhafte Weiterbildungen der Erfindung.This object is achieved by a method for updating at least one software component according toclaim 1 and by a node of a network according toclaim 10. The dependent claims relate to advantageous developments of the invention.

Es ist darauf hinzuweisen, dass die in der nachfolgenden Beschreibung einzelnen aufgeführten Merkmale in beliebiger, technisch sinnvoller Weise miteinander kombiniert werden können und weitere Ausgestaltungen der Erfindung aufzeigen. Die Beschreibung charakterisiert und spezifiziert die Erfindung insbesondere im Zusammenhang mit den Figuren zusätzlich.It should be pointed out that the features listed individually in the following description can be combined with one another in any technically meaningful way and show further embodiments of the invention. The description additionally characterizes and specifies the invention, in particular in connection with the figures.

Es sei ferner angemerkt, dass eine hierin nachstehend verwendete, zwischen zwei Merkmalen stehende und diese miteinander verknüpfende Konjunktion „und/oder“ stets so auszulegen ist, dass in einer ersten Ausgestaltung des erfindungsgemäßen Gegenstands lediglich das erste Merkmal vorhanden sein kann, in einer zweiten Ausgestaltung lediglich das zweite Merkmal vorhanden sein kann und in einer dritten Ausgestaltung sowohl das erste als auch das zweite Merkmal vorhanden sein können.It should also be noted that a conjunction “and / or” used hereinafter between two features and linking them must always be interpreted in such a way that only the first feature can be present in a first embodiment of the subject matter according to the invention, in a second embodiment only the second feature can be present and, in a third embodiment, both the first and the second feature can be present.

Ein Verfahren zum Aktualisieren von mindestens einer Softwarekomponente eines Knotens eines Netzwerkes umfasst die Schritte:

  1. A) Herunterladen einer aktualisierten Version der mindestens einen Softwarekomponente von einem Server über das Netzwerk,
  2. B) Herunterladen von dem Server über das Netzwerk einer Handler-Software die mindestens eine Programmanweisung zum Aktualisieren der mindestens einen Softwarekomponente aufweist,
  3. C) Ausführen der mindestens einen Programmanweisung der Handler-Software zum Aktualisieren der mindestens einen Softwarekomponente.
A method for updating at least one software component of a node of a network comprises the steps:
  1. A) Downloading an updated version of the at least one software component from a server via the network,
  2. B) Downloading from the server via the network a handler software which has at least one program instruction for updating the at least one software component,
  3. C) executing the at least one program instruction of the handler software for updating the at least one software component.

Die Schritte A), B) C) werden durch eine Update Service Software ausgeführt, welche zumindest ein Plugin umfasst. Das zumindest eine Plugin wird dabei bei der Durchführung des Verfahrens ausgeführt. Bei dem Netzwerk kann es sich beispielsweise um das Internet handelnSteps A), B) C) are carried out by an update service software which comprises at least one plug-in. The at least one plug-in is executed when the method is carried out. The network can be the Internet, for example

Ein Plugin, auch als Software-Erweiterung oder Zusatzmodul bezeichnet, ist eine Software, die eine bestehende Software erweitert bzw. verändert. Plugins können von der bestehenden Software während der Laufzeit eingebunden werden. Plugins greifen auf Elemente der bestehenden Software zu und nutzen diese während ihrer Ausführung. Plugins sind deshalb auf die gleichzeitige Ausführung mit der bestehenden Software, von der sie eingebunden wurden, abhängig und können in der Regel nicht ohne diese ausgeführt werden. Der Vorteil der Nutzung von Plugins, die zur Laufzeit in die Update Service Software eingebunden werden, ist, dass die Einbindung der Plugins flexibel und schlank auf die aktuellen Hardware- und Softwareumgebung abgestimmt werden kann. Bei den Plugins kann es sich beispielsweise um ein Kommunikations-Plugin, ein Kryptographie Plugin und/oder ein Schlüssel Plugin.A plug-in, also known as a software extension or additional module, is software that extends or changes existing software. Plugins can be integrated by the existing software during the runtime. Plugins access elements of the existing software and use them while it is running. Plugins are therefore dependent on the simultaneous execution with the existing software from which they were integrated and, as a rule, cannot be executed without it. The advantage of using plugins that are integrated into the update service software at runtime is that the integration of the plugins can be flexibly and leanly tailored to the current hardware and software environment. The plugins can be, for example, a communication plugin, a cryptography plugin and / or a key plugin.

Ein Kommunikations-Plugin bietet die Möglichkeit, die Update-Service Software dahingehend anzupassen, dass flexibel ist, von welchem Server die mindestens eine Softwarekomponente heruntergeladen wird. Hierfür kann beispielsweise ein zu dem gewünschten Server passendes Kommunikations-Plugin in die Update Service Software eingebunden werden. Wird das Herunterladen von einem anderen Server gewünscht, kann ein anderes Kommunikations-Plugin eingebunden werden. In einer Ausführungsform der Erfindung kann das Kommunikations-Plugin selbst vor der Ausführung von Schritt A) über ein Netzwerk heruntergeladen werden.A communication plug-in offers the possibility of adapting the update service software so that it is flexible from which server the at least one software component is downloaded. For this purpose, for example, a communication plug-in suitable for the desired server can be integrated into the update service software. If the download from another server is desired, another communication plug-in can be integrated. In one embodiment of the invention, the communication plug-in itself can be downloaded via a network before step A) is carried out.

Ein Kryptographie Plugin bietet die Möglichkeit, die Update-Service Software dahingehend anzupassen, dass die Softwarekomponenten und/oder Handler Software, die über das Netzwerk heruntergeladen werden, flexibel verschlüsselt werden können. Hierfür kann beispielsweise ein zu dem verwendeten Verschlüsselungsverfahren passendes Kryptographie Plugin in die Update Service Software eingebunden werden. Wird ein anderes Verschlüsselungsverfahren verwendet, so kann ein anderes Kryptographie Plugin eingebunden werden. In einer Ausführungsform der Erfindung kann das Kryptographie Plugin selbst auch über ein Netzwerk heruntergeladen werden.A cryptography plug-in offers the possibility of adapting the update service software so that the software components and / or handler software that are downloaded via the network can be flexibly encrypted. For this purpose, for example, a cryptography plug-in that matches the encryption method used can be integrated into the update service software. If a different encryption method is used, a different cryptography plug-in can be integrated. In one embodiment of the invention, the cryptography plug-in itself can also be downloaded via a network.

Ein Schlüssel Plugin bietet die Möglichkeit, die Update-Service Software dahingehend anzupassen, dass die Verschlüsselung, die für die Softwarekomponenten und/oder Handler Software, die über das Netzwerk heruntergeladen werden, Anwendung findet, mit einem Schlüsselwort im Sinne eines Passwortes versehen werden kann. Das Schlüssel Plugin kann dieses Schlüsselwort zur Verfügung stellen, indem es das Schlüsselwort aus einer Datei lädt oder einem sicheren Chip lädt. Abhängig davon, von wo das Schlüsselwort geladen wird, kann beispielsweise das passende Schlüssel Plugin in die Update Service Software eingebunden werden. In einer Ausführungsform der Erfindung kann das Schlüssel Plugin selbst auch über ein Netzwerk heruntergeladen werden.A key plug-in offers the possibility of adapting the update service software so that the encryption is used for the software components and / or handler software that are downloaded via the network finds, can be provided with a keyword in the sense of a password. The key plugin can provide this keyword by loading the keyword from a file or loading it onto a secure chip. Depending on where the keyword is loaded from, the appropriate key plug-in can be integrated into the update service software, for example. In one embodiment of the invention, the key plug-in itself can also be downloaded via a network.

Ein solches Verfahren eignet sich besonders für die Aktualisierung von Software von eingebetteten Systemen, da durch die Plugins, das Verfahren selbst flexibel gestaltet werden kann. Außerdem kann die Handler Software, die die Programmanweisung oder die Programmanweisungen umfasst, die zum Aktualisieren der Software ausgeführt werden, flexibel mit der aktualisierten Software kombiniert werden kann und im zeitlichen Zusammenhang mit dem Aktualisierungsvorgang selbst heruntergeladen werden.Such a method is particularly suitable for updating software in embedded systems, since the plug-ins allow the method itself to be designed flexibly. In addition, the handler software, which comprises the program instruction or the program instructions that are executed to update the software, can be flexibly combined with the updated software and can be downloaded in a temporal context with the update process itself.

Ein eingebettetes System (engl. embedded system) ist ein elektronischer Rechner oder auch Computer, der in einen technischen Kontext eingebunden, also eingebettet ist. Dabei übernimmt der Rechner beispielsweise Überwachungs-, Steuerungs- oder Regelungsaufgaben oder beispielsweise spezielle Formen der Daten- oder Signalverarbeitung. Eingebettete Systeme finden sich in einer Vielzahl von Anwendungsbereichen und Geräten, beispielsweise in Geräten im Haushalt, Verkehr, Energieversorgung, medizinischen Versorgung, Mobiltelefonen. Im Zug der zunehmenden Vernetzung werden eingebettete Systeme zunehmend untereinander vernetzt, beispielsweise auch über das Internet, dem sog. Internet of Things (IoT) .An embedded system is an electronic calculator or computer that is integrated into a technical context. The computer takes on, for example, monitoring, control or regulation tasks or, for example, special forms of data or signal processing. Embedded systems can be found in a large number of application areas and devices, for example in household devices, traffic, energy supply, medical care, cell phones. In the course of increasing networking, embedded systems are increasingly being networked with one another, for example also via the Internet, the so-called Internet of Things (IoT).

Eingebettete Systeme können auch Betriebssysteme aufweisen, beispielsweise kann ein als Embedded Linux (deutsch: „eingebettetes Linux“) bezeichnetes Betriebssystem Anwendung finden, das auf einem Linux-Kernel basiert. Bei einem solchen Betriebssystem kann ein Update des Betriebssystems z. B. dadurch erfolgen, dass das komplette Betriebssystem im Flashspeicher überschrieben wird.Embedded systems can also have operating systems, for example an operating system known as embedded Linux (German: “embedded Linux”), which is based on a Linux kernel, can be used. In such an operating system, an update of the operating system can e.g. B. can be done by overwriting the entire operating system in the flash memory.

Auf Embedded Linux basierende Softwaresysteme werden mit zunehmend größeren Herausforderungen unterschiedlichster Natur, z. B. Leistungsfähigkeit, Sicherheit etc., konfrontiert. Die Anforderungen an ein System ändern sich zudem bedingt durch die sich beschleunigenden Entwicklungszyklen sehr schnell. Somit ist es vorteilhaft, ein System zur Verfügung zu stellen, das ständig an die neuen Bedingungen angepasst werden kann.Software systems based on Embedded Linux are faced with increasingly greater challenges of the most varied nature, e. B. performance, security, etc., faced. The requirements placed on a system also change very quickly due to the accelerating development cycles. It is therefore advantageous to provide a system that can be continuously adapted to the new conditions.

In einer Ausführungsform werden die Schritte A) und B) gemeinsam ausgeführt, indem z. B. die aktualisierte Version der mindestens einen Softwarekomponente und die Handler-Software zusammen in einem Paket über das Netzwerk heruntergeladen werden. Ein Paket ist dabei eine Einheit, die beispielsweise als solche gegen Übertragungsfehler geschützt werden kann, z. B. durch Checksummen, Verschlüsselung, Signatur etc. Das Paket kann als Ganzes geschützt sein und/oder Teile des Paketes können getrennt geschützt sein, z. B. durch z. B. Checksummen, Verschlüsselung, Signatur etc. Nach dem Herunterladen werden die Teile des Paketes, also z. B. die aktualisierte Version der Softwarekomponente und die Handler-Software, aus dem Paket extrahiert und stehen für die weitere Verarbeitung zur Verfügung. Zum Ausführen des eigentlichen Aktualisierungsvorgangs können die Programmanweisungen der Handler-Software dann ausgeführt werden.In one embodiment, steps A) and B) are carried out together, e.g. B. the updated version of the at least one software component and the handler software can be downloaded together in a package over the network. A packet is a unit which, for example, can be protected as such against transmission errors, e.g. B. by checksums, encryption, signature, etc. The package can be protected as a whole and / or parts of the package can be protected separately, e.g. B. by z. B. checksums, encryption, signature, etc. After downloading, the parts of the package, so z. B. the updated version of the software component and the handler software, extracted from the package and are available for further processing. The program instructions of the handler software can then be executed to carry out the actual update process.

In einer Ausführungsform ist die Handler-Software als ein oder mehrere Plugins ausgebildet. Ein Plugin, auch als Software-Erweiterung oder Zusatzmodul bezeichnet, ist eine Software, die eine bestehende Software erweitert bzw. verändert. Plugins können von der bestehenden Software während der Laufzeit eingebunden werden. Plugins greifen auf Elemente der bestehenden Software zu und nutzen diese während ihrer Ausführung. Plugins sind deshalb auf die gleichzeitige Ausführung mit der bestehenden Software, von der sie eingebunden wurden, abhängig und können in der Regel nicht ohne diese ausgeführt werden. Der Vorteil der Ausführung der Handler-Software als Plugin besteht darin, dass die Handler-Software schlank ausgeführt werden kann, effizient über das Netzwerk übertragen werden kann und auf dem Knoten des Netzwerkes mit der zu aktualisierenden Softwarekomponente wenig Speicher beansprucht.In one embodiment, the handler software is designed as one or more plugins. A plug-in, also known as a software extension or additional module, is software that extends or changes existing software. Plugins can be integrated by the existing software during the runtime. Plugins access elements of the existing software and use them while it is running. Plugins are therefore dependent on the simultaneous execution with the existing software from which they were integrated and, as a rule, cannot be executed without it. The advantage of executing the handler software as a plug-in is that the handler software can be executed in a lean manner, can be efficiently transmitted over the network and requires little memory on the node of the network with the software component to be updated.

In einer Ausführungsform umfasst die Handler-Software zwei oder mehr Programmanweisungen. Die Programmanweisungen können in Gruppen unterteilt sein. Zum Beispiel können die Programmanweisungen in zumindest 3 Gruppen, nämlich zumindest eine erste Gruppe, eine zweite Gruppe und eine dritte Gruppe unterteilt sein. Die Programmanweisungen der ersten Gruppe werden dann vor den Programmanweisungen der zweiten und dritten Gruppe ausgeführt. Die Programmanweisungen der zweiten Gruppe werden nach den Programmanweisungen der ersten Gruppe und vor den Programmanweisungen der dritten Gruppe ausgeführt. Die Programmanweisungen der dritten Gruppe werden nach den Programmanweisungen der ersten und zweiten Gruppe ausgeführt.In one embodiment, the handler software comprises two or more program instructions. The program instructions can be divided into groups. For example, the program instructions can be divided into at least 3 groups, namely at least a first group, a second group and a third group. The program instructions of the first group are then executed before the program instructions of the second and third groups. The program instructions of the second group are executed after the program instructions of the first group and before the program instructions of the third group. The program instructions of the third group are executed according to the program instructions of the first and second group.

Mittels der Programmanweisungen der mindestens drei Gruppen kann angegeben werden, was vor (1. Gruppe), während (2. Gruppe) und nach (3. Gruppe) dem Update ausgeführt werden soll. Zum Beispiel können die Programmanweisungen in 3 Gruppen unterteilt sein, die mit „prepare“, „flash“, „finalize“ bezeichnet werden können. Die Programmanweisungen der Gruppen können dann in der folgenden Reihenfolge ausgeführt werden:

  1. 1. Programmanweisungen der Gruppe „prepare“, auszuführen vor dem Aktualisieren der zugeordneten Softwarekomponente. Hier können Vorbereitungen für den Aktualisierungsvorgang getroffen werden.
  2. 2. Programmanweisungen der Gruppe „flash“, auszuführen während dem Aktualisieren der zugeordneten Softwarekomponente. Hier geschieht das eigentliche Schreiben der Aktualisierung in den Speicher.
  3. 3. Programmanweisungen der Gruppe „finalize“, auszuführen nach dem Aktualisieren der zugeordneten Softwarekomponente. Hier können im Anschluss an den Aktualisierungsvorgang Aufräumarbeiten stattfinden.
The program instructions of the at least three groups can be used to specify what should be carried out before (1st group), during (2nd group) and after (3rd group) the update. For example, the program instructions in 3 groups, which can be designated as “prepare”, “flash”, “finalize”. The program instructions of the groups can then be executed in the following order:
  1. 1. Program instructions of the “prepare” group, to be executed before updating the assigned software component. Preparations for the update process can be made here.
  2. 2. Program instructions of the “flash” group to be executed while the assigned software component is being updated. This is where the actual writing of the update to memory takes place.
  3. 3. Program instructions of the “finalize” group to be executed after the assigned software component has been updated. After the update process, clean-up work can take place here.

In einer vorteilhaften Ausführungsform des Verfahrens könnten z. B. während des Ausführens der Programmanweisungen der Gruppe „prepare“ alle Kommunikationsschnittstellen - außer des Netzwerkes, über das das Update geladen wird, - abgeschaltet werden. Während des Ausführens der Programmanweisungen der Gruppe „finalize“ könnten dann alle Kommunikationsschnittstellen wieder aktiviert werden und damit - bezogen auf die Kommunikationsschnittstellen - der Ausgangszustand wiederhergestellt werden. Dieses Verfahren könnte gewählt werden, um die Sicherheit während des eigentliche Updatevorgangs (Programmanweisungen der Gruppe „flash“) zu erhöhen.In an advantageous embodiment of the method, for. For example, while executing the program instructions of the “prepare” group, all communication interfaces - except for the network via which the update is loaded - are switched off. During the execution of the program instructions of the “finalize” group, all communication interfaces could then be reactivated and, with reference to the communication interfaces, the initial state could be restored. This procedure could be chosen to increase the security during the actual update process (program instructions of the group "flash").

Eine solche Einteilung der Programmanweisungen in Gruppen bietet auch Vorteile beim Wiederverwenden von Programmteilen. Zum Beispiel könnte es sein, dass in einem Knoten mehrere Mikrocontroller mit Softwarekomponenten vorhanden sind. Bei einem Update der Softwarekomponenten müssen die verschiedenen Mikrocontroller jeweils auf eine spezielle Weise unterschiedlich behandelt werden. Dagegen ist es möglich, dass die prozeduralen Schritte vor und nach den Updates im Großen und Ganzen immer gleich sind oder nur kleine Unterschiede aufweisen. Die Gemeinsamkeiten könne hier durch Wiederverwendung von Programmanweisungen der Gruppe „prepare“ und/oder „finalize“ realisiert werden.Such a division of the program instructions into groups also offers advantages when reusing program parts. For example, it could be that there are several microcontrollers with software components in a node. When the software components are updated, the various microcontrollers must each be treated differently in a special way. On the other hand, it is possible that the procedural steps before and after the updates are by and large always the same or have only small differences. The similarities can be realized here by reusing program instructions from the “prepare” and / or “finalize” groups.

Bevorzugt erfolgt die Implementierung objektorientiert, so dass eine Wiederverwendung über Basisklassen realisiert werden kann.The implementation is preferably carried out in an object-oriented manner, so that reuse can be realized via base classes.

In einer Ausführungsform wird die Softwarekomponente eines Internetknotens aktualisiert, wobei die aktualisierte Version der Softwarekomponente und die Handler-Software über das Internet heruntergeladen werden, wobei die Anbindung des Knotens an das Internet bevorzugt über eine Luftschnittstelle, z. B. WLAN erfolgt.In one embodiment, the software component of an Internet node is updated, the updated version of the software component and the handler software being downloaded via the Internet, the connection of the node to the Internet preferably being via an air interface, e.g. B. WLAN takes place.

Bevorzugt ist auf dem Knoten Embedded Linux als Betriebssystem installiert, wobei es möglich ist, das Betriebssystem selbst, das Kommunikationsmodul, weitere Software, Treiber und/oder Firmware etc. mittels des erfindungsgemäßen Verfahrens zu aktualisieren. Bevorzugt wird dabei zu jeder aktualisierten Version einer Softwarekomponente eine zugeordnete Handler-Software heruntergeladen, wobei die Programmanweisungen der Handler-Software dann zum eigentlichen Aktualisieren der Softwarekomponente ausgeführt werden.Embedded Linux is preferably installed as the operating system on the node, it being possible to update the operating system itself, the communication module, further software, drivers and / or firmware, etc. by means of the method according to the invention. In this case, associated handler software is preferably downloaded for each updated version of a software component, the program instructions of the handler software then being executed for the actual updating of the software component.

Bevorzugt ist der Server, von dem die aktualisierte Version der Softwarekomponente und die Handler-Software heruntergeladen wird, in der Cloud angeordnet. Mit Cloud (deutsch: Rechnerwolke oder Datenwolke) ist in diesem Zusammenhang eine IT-Infrastruktur gemeint, welche beispielsweise über das Internet verfügbar gemacht wird. Sie beinhaltet den Server, welcher als Dienstleistung von dem Cloud-Betreiber betrieben wird. Angebot und Nutzung der Dienstleistung erfolgt durch technische Schnittstellen und Protokolle.The server from which the updated version of the software component and the handler software are downloaded is preferably arranged in the cloud. In this context, the term cloud (German: computer cloud or data cloud) means an IT infrastructure that is made available, for example, via the Internet. It contains the server, which is operated as a service by the cloud operator. The service is offered and used through technical interfaces and protocols.

Der Knoten des Netzwerkes mit der mindestens einen aktualisierbaren Softwarekomponente weist eine Update Service Software auf, welche Programmanweisungen zum Ausführen des oben beschriebenen Verfahrens aufweist. Die Update Service Software ist bevorzugt die Software, die die Plugins einbindet, die die Flexibilität der Update Service Software erhöhen, wie z. B. Kommunikations-Plugin, Kryptographie Plugin, Schlüssel Plugin. Das Kommunikations-Plugin kann z. B. als eine Client-Software ausgebildet sein, die die Kommunikation zu dem Server ausführt. Die Client-Software nimmt dabei Benachrichtigungen des Servers entgegen und führt den Download von z. B. aktualisierter Version der Softwarekomponente und der Handler-Software aus. Diese Plugins, die die Flexibilität der Update Service Software erhöhen, können optional vor oder während eines Update Vorgangs über das Netzwerk heruntergeladen werden.The node of the network with the at least one updatable software component has an update service software which has program instructions for carrying out the method described above. The update service software is preferably the software that integrates the plugins that increase the flexibility of the update service software, such as B. Communication plug-in, cryptography plug-in, key plug-in. The communication plug-in can e.g. B. be designed as a client software that carries out the communication with the server. The client software receives notifications from the server and carries out the download of z. B. updated version of the software component and the handler software. These plugins, which increase the flexibility of the update service software, can optionally be downloaded via the network before or during an update process.

Die Update Service Software kann außerdem die Plugins, die gemeinsam mit der aktualisierten Version der Softwarekomponenten heruntergeladen werden, also z. B. der Handler Software, einbinden.The update service software can also use the plugins that are downloaded together with the updated version of the software components, e.g. B. the handler software.

Plugins können in einer Ausführungsform mittels eines Plugin Paketmanagers aus einem Plugin-Paket-Repository heruntergeladen und installiert werden. Der Plugin Paketmanager kann dabei selbst als Plugin ausgebildet sein. Der Plugin Paketmanager kann dabei mittels des erfindungsgemäßen Verfahrens selbst aktualisiert werden. Paket-Repositories finden vorteilhaft in Verbindung mit Linux und/oder Embedded Linux Anwendung.In one embodiment, plug-ins can be downloaded and installed from a plug-in package repository by means of a plug-in package manager. The package manager plug-in can itself be designed as a plug-in. The plug-in package manager can itself be updated using the method according to the invention. Package- Repositories are advantageously used in connection with Linux and / or Embedded Linux.

In einem Ausführungsbeispiel ist die Update Service Software ausgelegt, über einen Eventbus zu kommunizieren und/oder Konfigurationsdaten über eine Konfigurationsdatei einzulesen. Ein Eventbus basiert dabei auf einem publish-subscribe Kommunikationsverfahren. Sender von Nachrichten, publishers genannt, veröffentlichen dabei Nachrichten, welche sie in Klassen kategorisieren. Die Nachrichten müssen dabei keinen direkten Empfänger, subscriber genannt, enthalten. Die Sender könnten sogar die Empfänger der Nachrichten nicht kennen. Die Empfänger auf der anderen Seite registrieren sich für Nachrichten bestimmter Klassen, ohne dass sie zwingend wissen müssen, von wem die Nachrichten, die in dieser Klasse veröffentlicht werden, stammen. Die Kommunikation über einen Eventbus ermöglicht eine große Skalierbarkeit der Kommunikation und eine flexible Netzwerktopologie.In one exemplary embodiment, the update service software is designed to communicate via an event bus and / or to read in configuration data via a configuration file. An event bus is based on a publish-subscribe communication process. Senders of messages, called publishers, publish messages which they categorize into classes. The messages do not have to contain a direct recipient, called a subscriber. The senders may not even know the recipients of the messages. The recipients on the other hand register for messages of certain classes without necessarily having to know who the messages that are published in this class came from. Communication via an event bus enables great scalability of communication and a flexible network topology.

Programmanweisungen von Plugins können sich beim Eventbus zu einer bestimmten Klasse registrieren und werden dann ausgelöst (gestartet), wenn eine andere Programmanweisung ein Ereignis zu dieser Klasse veröffentlicht. Ein Beispiel dafür wäre, dass ein Programmablauf gestartet wird, sobald eine aktualisierte Version einer Softwarekomponente von dem Server heruntergeladen wurde. Dies ermöglicht es auf flexible Weise, die Abläufe mehrere Prozesse oder auch Plugins untereinander zu koordinieren.Program statements of plugins can register with the event bus for a certain class and are then triggered (started) when another program statement publishes an event for this class. An example of this would be that a program sequence is started as soon as an updated version of a software component has been downloaded from the server. This makes it possible in a flexible way to coordinate the processes of several processes or plugins with one another.

In einer Ausführungsform der Erfindung können die Plugins der Update Service Software über die Konfigurationsdatei geladen und aktiviert werden. Werden Plugins über das Netzwerk heruntergeladen, wird das Plugin z. B. über eine Identifikationsnummer in der Konfigurationsdatei identifiziert, so dass das heruntergeladene Plugin in der Folge von der Update Service Software geladen und aktiviert werden kann. Plugins können Prioritäten besitzen. Die Prioritäten können in der Konfigurationsdatei definiert werden. Es müssen die Prioritäten der Plugins somit nicht in den Plugins selbst abgelegt werden. Die Prioritäten legen die Ausführungsreihenfolge Plugins fest. Damit kann über die Prioritäten beispielsweise die Ausführung der Plugins der Handler-Software festgelegt werden.In one embodiment of the invention, the update service software plugins can be loaded and activated via the configuration file. If plugins are downloaded over the network, the plugin is e.g. B. identified via an identification number in the configuration file, so that the downloaded plug-in can then be loaded and activated by the update service software. Plugins can have priorities. The priorities can be defined in the configuration file. The priorities of the plugins do not have to be stored in the plugins themselves. The priorities determine the order in which the plugins are executed. In this way, for example, the execution of the plug-ins of the handler software can be determined via the priorities.

Das beschriebene Verfahren und der beschriebene Knoten können eine flexible Implementierung von Software-Aktualisierungen durch den Einsatz und die Verknüpfung verschiedener Plugins erlauben, wobei die Plugins aktiviert und geladen werden können. Diese Plugins können auf dem Knoten vorinstalliert sein oder erst mit dem heruntergeladenen Paket zum Zeitpunkt der Update-Ausführung heruntergeladen werden. Auch eine Installation von Plugins über Paketmanager, wie z. B. bei Linux-Distributionen, ist möglich. Dies ermöglich eine große Flexibilität. Plugins können weiter auf verschiedenen Medien (Speicherarten) geschrieben werden und ganze Update-Strategien können mit Hilfe ladbarer Plugins umgesetzt werden. Über den Eventbus ist es möglich, komplexe Abhängigkeiten zwischen verschiedenen Plugins zu implementieren. Z. B. können sich Plugins am Eventbus zu verschiedenen Klassen registrieren und werden dann gestartet, wenn ein Ereignis zu dieser Klasse eintritt.The method described and the node described can allow flexible implementation of software updates through the use and linking of various plugins, with the plugins being able to be activated and loaded. These plugins can be preinstalled on the node or can only be downloaded with the downloaded package at the time of the update. Installation of plugins via package manager, such as B. with Linux distributions is possible. This allows great flexibility. Plugins can continue to be written on different media (storage types) and entire update strategies can be implemented with the help of loadable plugins. It is possible to implement complex dependencies between different plugins via the event bus. For example, plugins can register on the event bus for different classes and are then started when an event for this class occurs.

Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung von nicht einschränkend zu verstehenden Ausführungsbeispielen der Erfindung, die im Folgenden unter Bezugnahme auf die Figuren näher erläutert wird. In den Figuren bezeichnen gleiche Bezugszeichen gleiche oder gleich wirkende Elemente. Es zeigen schematisch:

  • 1 einen beispielhaften Ablauf eines Verfahrens zum Aktualisieren einer Softwarekomponente;
  • 2 ein Beispiel eines Knoten eines Netzwerkes mit aktualisierbaren Softwarekomponenten;
  • 3 ein Beispiel einer Update Service Software;
  • 4 ein Beispiel der Update Service Software nach dem Herunterladen von aktualisierter Software und Plugins;
  • 5 ein Beispiel eines Ablaufs für die Initialisierung der Update Service Software;
  • 6 ein Beispiel eines Ablaufs für das Herunterladen von aktualisierter Software und Plugins;
  • 7 ein Beispiel eines Ablaufs für die Installation von aktualisierter Software.
Further features and advantages of the invention emerge from the following description of non-restrictive exemplary embodiments of the invention, which are explained in more detail below with reference to the figures. In the figures, the same reference symbols denote elements that are the same or have the same effect. They show schematically:
  • 1 an exemplary sequence of a method for updating a software component;
  • 2 an example of a node of a network with updatable software components;
  • 3 an example of an update service software;
  • 4th an example of the Update Service Software after downloading updated software and plugins;
  • 5 an example of a sequence for the initialization of the update service software;
  • 6th an example of a process for downloading updated software and plugins;
  • 7th an example of a process for installing updated software.

In1 ist schematisch ein möglicher Ablauf eines Verfahrens zum Aktualisieren von SoftwarekomponentenOS,24,26 eines Knotens10 eines Netzwerkes18 dargestellt. In SchrittA) wird eine aktualisierte VersionP.OS,P.24,P.26 der Softwarekomponente in einem Paket P von einem Server14 über das Netzwerk16 heruntergeladen. In SchrittB), der bevorzugt gleichzeitig oder in engem zeitlichem Zusammenhang mit SchrittA) abläuft, wird von dem Server14 eine Handler-SoftwareP.H.OS,P.H.24,P.H.26 in dem Paket P mit heruntergeladen. Die Handler-Software umfasst Programmanweisungen um die jeweils aktualisierte Version der Softwarekomponente zu installieren und damit die jeweilige SoftwarekomponenteP.OS,P.24,P.26 zu aktualisieren. In SchrittC) werden die Programmanweisungen der Handler SoftwareP.H.OS,P.H.24,P.H.26 ausgeführt und die aktualisierte Version der SoftwarekomponenteP.OS,P.24,P.26 dabei installiert. Hierbei wird zu jeder aktualisierbaren SoftwarekomponenteP.OS,P.24,P.26, für die eine aktualisierte Version heruntergeladen wird, eine dazugehörige Handler-SoftwareP.H.OS,P.H.24,P.H.26 heruntergeladen. Nach dem Entpacken vonP.H.OS,P.H.24,P.H.26 wird die entpackte Handler-SoftwareH.OS,H.24,H.26 ausgeführt, um die dazugehörige SoftwarekomponenteOS,24,26 zu aktualisieren. Zur SoftwarekomponenteP.OS gehört dabei der Software HandlerP.H.OS (entpacktH.OS). Zur SoftwarekomponenteP.24 gehört dabei der Software HandlerP.H.24. (entpacktH.24). Zur SoftwarekomponenteP.26 gehört dabei der Software HandlerP.H.26 (entpacktH.26).In 1 is a schematic of a possible sequence of a method for updating software components OS , 24 , 26th of anode 10 of a network 18th shown. In step A) will be an updated version P.OS , P.24 , P.26 the software component in a package P from a server 14th over thenetwork 16 downloaded. In step B) , which is preferably at the same time or closely related to step A) expires is from the server 14th a handler software PHOS , PH24 , PH26 in the package P downloaded with. The handler software includes program instructions to install the updated version of the software component and thus the respective software component P.OS , P.24 , P.26 to update. In step C) are the program instructions of the handler software PHOS , PH24 , PH26 executed and the updated version of the software component P.OS , P.24 , P.26 installed in the process. Here, for each upgradeable software component P.OS , P.24 , P.26 for which an updated version is downloaded, an associated handler software PHOS , PH24 , PH26 downloaded. After unzipping PHOS , PH24 , PH26 becomes the unpacked handler software H.OS , H.24 , H.26 executed to the associated software component OS , 24 , 26th to update. To the software component P.OS belongs to the software handler PHOS (unzipped H.OS ). To the software component P.24 belongs to the software handler PH24 . (unzipped H.24 ). To the software component P.26 belongs to the software handler PH26 (unzipped H.26 ).

In2 ist beispielhaft schematisch ein Knoten10 eines Netzwerkes16 mit aktualisierbaren SoftwarekomponentenOS,24,26 dargestellt. Die SoftwarekomponenteOS ist dabei ein Betriebssystem des Knotens10, z. B. Embedded Linux. Die SoftwarekomponenteOS ist dabei in einer SpeicherpartitionOS.1 abgelegt. Bei einem Updatevorgang für die SoftwarekomponenteOS wird im SpeicherbereichOS.1 eine aktualisierte Version der SoftwarekomponenteOS abgelegt.In 2 is a schematic example of anode 10 of anetwork 16 with upgradeable software components OS , 24 , 26th shown. The software component OS is an operating system of thenode 10 , e.g. B. Embedded Linux. The software component OS is in a storage partition OS.1 filed. During an update process for the software component OS is in the memory area OS.1 an updated version of the software component OS filed.

Die Softwarekomponente24 ist z. B. das WLAN Modul24 des Knotens10. Das WLAN Modul24 stellt dabei die Verbindung des Knotens10 über WLAN18 und einen WLAN Router12 mit dem Netzwerk16, z. B. dem Internet, her. Über das Netzwerk16 ist der Knoten10 mit der Cloud14 verbunden. Die Softwarekomponente24 ist dabei in einer Speicherpartition24.1 abgelegt. Bei einem Updatevorgang für die Softwarekomponente24 wird im Speicherbereich24.1 eine aktualisierte Version der Softwarekomponente24 abgelegt.Thesoftware component 24 is z. B. theWLAN module 24 of thenode 10 . TheWLAN module 24 establishes the connection of thenode 10 via WiFi 18th and a wireless router 12th with thenetwork 16 , e.g. B. the Internet. Over thenetwork 16 is theknot 10 with the cloud 14th connected. Thesoftware component 24 is in a storage partition 24.1 filed. During an update process for thesoftware component 24 is in the memory area 24.1 an updated version of thesoftware component 24 filed.

Die Softwarekomponente26 ist z. B. Controllersoftware für einen Aktuator LED des Knotens10. Bei einem Updatevorgang für die Softwarekomponente26 wird im Speicherbereich26.1 eine aktualisierte Version der Softwarekomponente26 abgelegt. Der Aktuator LED ist dabei bevorzugt Teil der technischen Einbettung des Knotens10. Der Aktuator ist für den Fall, dass der Knoten10 ein LED Leuchtmittel ist, z. B. die LED Leuchte, die das LED Leuchtmittel zum Leuchten bringt. Ein solcher Knoten10 weist beispielsweise keine Nutzerschnittstelle in Form einer Maus oder Tastatur oder eines Bildschirmes auf. Eine Interaktion mit einem Nutzer kann beispielsweise über das Netzwerk16 erfolgen. Ein Updatevorgang kann z. B. über das Netzwerk16 angestoßen werden oder durch regelmäßiges „Nachfragen“ des Knotens10 über das Netzwerk. Es ist ebenfalls möglich in einem solchen Knoten10 eine Hardware-Schnittstelle vorzusehen, in die z. B. durch Einführen eines Speichermediums der Updatevorgang angestoßen werden kann. Ein Beispiel hierfür wäre eine USB-Schnittstelle.The software component 26th is z. B. Controller software for an actuator LED of thenode 10 . During an update process for the software component 26th is in the memory area 26.1 an updated version of the software component 26th filed. The actuator LED is preferably part of the technical embedding of thenode 10 . The actuator is in case theknot 10 is an LED light source, e.g. B. the LED lamp that lights up the LED light source. Such aknot 10 has no user interface in the form of a mouse or keyboard or a screen, for example. An interaction with a user can, for example, be via thenetwork 16 respectively. An update process can e.g. B. over thenetwork 16 be initiated or by regular "inquiries" from thenode 10 over the network. It is also possible in such anode 10 to provide a hardware interface into which z. B. the update process can be initiated by inserting a storage medium. An example of this would be a USB interface.

Es sind aber auch Knoten10 denkbar, die Benutzerschnittstellen wie z. B. Maus, Tastatur, Bildschirm etc. aufweisen. Dann ist eine Kommunikation mit dem Nutzer über diese Benutzerschnittstellen möglich. Zusätzlich kann die Kommunikationsmöglichkeit über das Netzwerk gegeben sein.But there are alsoknots 10 conceivable, the user interfaces such. B. mouse, keyboard, screen, etc. have. Communication with the user is then possible via these user interfaces. In addition, there can be communication via the network.

In3 ist schematisch die Struktur einer Update Service Software28 dargestellt, wie sie z. b. in einem Knoten10 eines Netzwerkes angeordnet ist. Die Update Service Software28 ist über eine DBUS Schnittstelle (nicht dargestellt) zugänglich. Aufrufe können dabei an den Eventbus weitergeleitet werden - in beide Richtungen. Somit ist die gesamte Funktionalität der Update Service Software28 über den DBUS zugänglich.In 3 is the schematic structure of anupdate service software 28 shown, for example, in a knot 10 a network is arranged. Theupdate service software 28 is accessible via a DBUS interface (not shown). Calls can be forwarded to the event bus - in both directions. Thus, the entire functionality of theupdate service software 28 accessible via the DBUS.

Die Update Service Software28 weist eine Client-Software36 auf. Die Client-Software36 kann als Plugin ausgebildet sein und dient der Kommunikation. Sie kann also als Kommunikations-Plugin bezeichnet werden. Die Client Software36 empfängt über das Netzwerk16 Benachrichtigungen von dem Server14. Die Client Software empfängt über das Netzwerk16 heruntergeladene Daten, die Downloads, von dem Server14. Die heruntergeladenen Daten umfassen z. B. aktualisierte VersionenP.OS,P.24,P.26 von SoftwarekomponentenOS,24,26 des Knotens10. Eine Zentralkomponente30 der Update Service Software28 kommuniziert über einen Eventbus32 mit der Client Software36. Die Client-Software36 kann insbesondere mehrere Plugins umfassen, die nach Bedarf in die Update Service Software28 eingebunden werden. Z. B. kann je nach verwendetem Server14 das dazu passende Kommunikations-Plugin36 eingebunden werden.Theupdate service software 28 assigns aclient software 36 on. Theclient software 36 can be designed as a plug-in and is used for communication. So it can be called a communication plug-in. Theclient software 36 receives over thenetwork 16 Notifications from the server 14th . The client software receives over thenetwork 16 downloaded data, the downloads, from the server 14th . The downloaded data include e.g. B. updated versions P.OS , P.24 , P.26 of software components OS , 24 , 26th of thenode 10 . A central component 30th theupdate service software 28 communicates via anevent bus 32 with theclient software 36 . Theclient software 36 can in particular include several plugins that are integrated into theUpdate Service Software 28 be integrated. For example, depending on the server used 14th the appropriate communication plug-in 36 be integrated.

Die Update Service Software28 weist weiter eine Kryptographie Software44 auf. Die Kryptographie Software44 kann als Plugin ausgebildet sein und dient der Verschlüsselung von Dateien und/oder der Entschlüsselung von verschlüsselten Dateien. Sie kann also als Kryptographie-Plugin bezeichnet werden. Die Kryptographie Software44 kann insbesondere mehrere Plugins umfassen, die flexibel nach Bedarf eingebunden werden können. Insbesondere können über die Kryptographie Software44 heruntergeladene Pakete P oder deren Bestandteile entschlüsselt werden. Durch Verwendung der Kryptographie Software44 kann die Verschlüsselung flexibel gestaltet werden und das Kryptographie Plugin44 geladen werden, das zur Entschlüsselung des heruntergeladenen Paketes P geeignet ist. Die Zentralkomponente30 der Update Service Software28 kommuniziert über den Eventbus32 mit der Kryptographie Software44.Theupdate service software 28 further has acryptography software 44 on. Thecryptography software 44 can be designed as a plug-in and is used to encrypt files and / or decrypt encrypted files. So it can be called a cryptography plugin. Thecryptography software 44 can in particular include several plugins that can be flexibly integrated as required. In particular, thecryptography software 44 downloaded packages P or their components are decrypted. Using thecryptography software 44 the encryption can be designed flexibly and thecryptography plugin 44 be loaded, which is suitable for decrypting the downloaded package P. The central component 30th theupdate service software 28 communicates via theevent bus 32 with thecryptography software 44 .

Die Update Service Software28 kann weiter eine Schlüssel Software46 aufweisen. Die Schlüssel Software46 kann als Plugin ausgebildet sein und kann einen Schlüssel zur Verschlüsselung und/oder Entschlüsselung zur Verfügung stellen. Sie kann also als Schlüssel-Plugin46 bezeichnet werden. Verlangt z. B. die Kryptographie Software44 ein Schlüsselwort als Eingabe zur Ver- und/oder Entschlüsselung, so kann dieses Schlüsselwort über die Schlüssel Software46 zur Verfügung gestellt werden. Die Schlüssel Software46 kann insbesondere mehrere Plugins umfassen, die flexibel nach Bedarf eingebunden werden können. Die Auswahl des jeweiligen Plugins erlaubt es dann, das Passwort z. B. von einer Datei oder aus einem sicheren Chip zu laden. Durch Verwendung der Schlüssel Software46 kann die Verschlüsselung also noch flexibler gestaltet werden. Die Kryptographie Software44 der Update Service Software28 kommuniziert über den Eventbus32 mit der Schlüssel Software46.Theupdate service software 28 can also be akey software 46 exhibit. Thekey software 46 can be designed as a plugin and can provide a key for encryption and / or decryption. So you can use it as akey plugin 46 are designated. Requires z. B. the cryptography software 44 a keyword as input for encryption and / or decryption, this keyword can be entered via thekey software 46 to provide. Thekey software 46 can in particular include several plugins that can be flexibly integrated as required. The selection of the respective plugin then allows the password z. B. from a file or from a secure chip. By using thekey software 46 the encryption can therefore be made even more flexible. Thecryptography software 44 theupdate service software 28 communicates via theevent bus 32 with thekey software 46 .

Über den Eventbus32 sind dabei z. B. die folgenden Kommunikationsbeziehungen möglich: Zentralkomponente30 mit Handler-SoftwareH.OS,H.24,H.26, Zentralkomponente30 mit Client Software36, Zentralkomponente30 mit Kryptographie Software44, Zentralkomponente30 mit Schlüssel Software46, verschiedene Software36,44,46 untereinander, verschiedene Handler-SoftwareH.OS,H.24,H.26 untereinander, Handler-SoftwareH.OS,H.24,H.26 mit Client Software36, Handler-SoftwareH.OS,H.24,H.26 mit Kryptographie Software44, Handler-SoftwareH.OS,H.24,H.26 mit Schlüssel Software46.Via theevent bus 32 are z. B. the following communication relationships are possible: Central component 30th with handler software H.OS , H.24 , H.26 , Central component 30th withclient software 36 , Central component 30th withcryptography software 44 , Central component 30th withkey software 46 ,various software 36 , 44 , 46 among each other, different handler software H.OS , H.24 , H.26 among each other, handler software H.OS , H.24 , H.26 withclient software 36 , Handler software H.OS , H.24 , H.26 withcryptography software 44 , Handler software H.OS , H.24 , H.26 withkey software 46 .

Über eine Konfigurationsdatei34 werden Konfigurationsdaten von der Zentralkomponente30 der Update Service Software28 geladen. Die Zentralkomponente30 hat dabei die folgenden Hauptaufgaben: Laden und Verifizieren von Plugins, Initialisieren von Plugins, Initialisierung des Eventbus32, Auslesen und Bereitstellen von Informationen des Knotens10. Andere Funktionalitäten werden bevorzugt von Plugins ausgeführt, um die Flexibilität des Systems zu erhöhen.Via aconfiguration file 34 configuration data from the central component 30th theupdate service software 28 loaded. The central component 30th has the following main tasks: loading and verifying plugins, initializing plugins, initializing theevent bus 32 , Reading out and providing information from thenode 10 . Other functionalities are preferably carried out by plugins in order to increase the flexibility of the system.

Die in3 dargestellten Komponenten30,32,34,36 sind essentielle Komponenten der Update Service Software28, d. h. Komponenten, die bevorzugt auf einem Knoten10 vorinstalliert sind, um das erfindungsgemäße Verfahren auszuführen. Die dargestellten Komponenten44,46 sind ebenfalls bevorzugt vorinstalliert auf dem Knoten10.In the 3 illustrated components 30th , 32 , 34 , 36 are essential components of theupdate service software 28 , ie components that are preferred on anode 10 are preinstalled in order to carry out the method according to the invention. The components shown 44 , 46 are also preferably pre-installed on thenode 10 .

4 zeigt schematisch Komponenten einer Update Service Software28, wie sie z. B. vorliegen, nachdem aktualisierte VersionenP.OS,P.24,P.26 einer SoftwarekomponenteOS,24,26 samt zugehöriger Handler-SoftwareP.H.OS,P.H.24,P.H.26 heruntergeladen wurden und bevor der eigentliche Aktualisierungsvorgang gestartet wurde. Von dem Server14 wurde über das Netzwerk16 durch die Client-Software36 ein Datenpaket P heruntergeladen. Die Client-Software36 ist beispielsweise als Plugin der Zentralkomponente30 ausgebildet. Das Datenpaket P ist beispielsweise durch Checksummen, Signaturen und Verschlüsselung gegen Verfälschungen und Ausspionierung geschützt. Dieser Schutz kann sich sowohl auf das ganze Paket P als auch auf die BestandteileP.24,P.26,P.OS,P.H.OS,P.H.24 und/oderP.H.26 beziehen. Über die Konfigurationsdatei34 werden die jeweiligen Konfigurationen der jeweiligen Plugins geladen. Die Entschlüsselung kann beispielsweise durch ein Kryptographie Plugin44 ausgeführt werden, welches optional auf ein Schlüssel Plugin46 zurückgreift.4th shows schematically components of anupdate service software 28 how they z. B. be available after updated versions P.OS , P.24 , P.26 a software component OS , 24 , 26th including the associated handler software PHOS , PH24 , PH26 downloaded before the actual update process started. From the server 14th was over thenetwork 16 through the client software 36 a data packet P downloaded. Theclient software 36 is for example as a plug-in of the central component 30th educated. The data packet P is protected against corruption and spying, for example by checksums, signatures and encryption. This protection can apply to the entire package P as well as to the components P.24 , P.26 , P.OS , PHOS , PH24 and or PH26 relate. Via theconfiguration file 34 the respective configurations of the respective plugins are loaded. The decryption can be done for example by acryptography plugin 44 which is optionally available on akey plugin 46 falls back.

Über den Eventbus32 kommuniziert die Zentralkomponente30 mit den Plugins36,H.OS,H.24 undH.26. Die PluginsH.OS,H.24 undH.26 entsprechen der aus dem heruntergeladenen Datenpaket P entpackten Handler SoftwareP.H.OS,P.H.24 undP.H.26. Die Handler SoftwareH.OS für das Betriebssystem wird ausgeführt und schreibt über die Kommunikationsschnittstelle38, die z. B. als Raw Handler ausgebildet ist, die aktualisierte Version des BetriebssystemsOS in den zugehörigen SpeicherbereichOS.1. Die Handler SoftwareH.24 für das WLAN Modul wird ausgeführt und schreibt über die Kommunikationsschnittstelle40, die z. B. als SPI Handler ausgebildet ist, die aktualisierte Software Version des WLAN Moduls24 in den zugehörigen Speicherbereich24.1. Die Handler SoftwareH.26 für den LED Controller wird ausgeführt und schreibt über die Kommunikationsschnittstelle42, die z. B. als I2C Handler ausgebildet ist, die aktualisierte Software Version des LED Controllers26 in den zugehörigen Speicherbereich26.1.Via theevent bus 32 communicates the central component 30th with theplugins 36 , H.OS , H.24 and H.26 . The plugins H.OS , H.24 and H.26 correspond to the handler software unpacked from the downloaded data package P. PHOS , PH24 and PH26 . The handler software H.OS for the operating system is executed and writes over thecommunication interface 38 , the z. B. is designed as a raw handler, the updated version of the operating system OS into the associated memory area OS.1 . The handler software H.24 for the WLAN module is executed and writes via thecommunication interface 40 , the z. B. is designed as an SPI handler, the updated software version of theWLAN module 24 into the associated memory area 24.1 . The handler software H.26 for the LED controller is executed and writes via thecommunication interface 42 , the z. B. is designed as an I2C handler, the updated software version of the LED controller 26th into the associated memory area 26.1 .

Die Kommunikationsschnittstellen38,40,42 stellen Abstraktionsschichten für den Zugriff auf die darunter liegenden Technologien, z. B. Speicherbereiche, dar. Sie können, je nach darunterliegender Technologie, beispielsweise als Archive Handler, Raw Handler, Apt Handler, FOO Handler ausgebildet sein.The communication interfaces 38 , 40 , 42 provide abstraction layers for access to the underlying technologies, e.g. B. memory areas. They can, depending on the underlying technology, be designed, for example, as archive handlers, raw handlers, apt handlers, FOO handlers.

5 zeigt schematisch einen Ablauf zur Initialisierung der Update Service Software28. In Schritt50 wird der Ablauf gestartet und in Schritt52 der Eventbus32 initialisiert. In Schritt54 wir der Speicherbereich für Plugins initialisiert. In Schritt56 wird in Verzeichnissen für Plugins nach Plugins gesucht. Falls in Schritt58 ein Plugin gefunden wurde - Zweig „Ja“ - wird in Schritt60 das Plugin verifiziert und in Schritt62 dem Plugin Speicher hinzugefügt. Daraufhin werden Schritte 56 + 58 erneut ausgeführt und die Schritte60 und62 für jedes gefundene Plugin durchlaufen. Falls in Schritt58 kein Plugin (mehr) gefunden wird - Zweig „Nein“ - wird in Schritt64 überprüft, ob sich Handler SoftwareH.OS,H.24,H.26 im Speicher befindet. Falls ja - Zweig „Ja“ - wird die Handler SoftwareH.OS,H.24,H.26 in Schritt66 initialisiert. In Schritt68 wird dann die Client-Software36 initialisiert. In Schritt70 registriert sich die Software auf dem Eventbus für Ereignisse der Klasse „install“. In Schritt72 wird auf eingehende Ereignisse über die Client-Software36 gewartet. Falls ein solches Ereignis eingeht, wird der Ablauf in Schritt76 beendet und mit dem Ablauf von6 fortgesetzt.5 shows schematically a sequence for initializing theupdate service software 28 . Instep 50 the process is started and instep 52 theevent bus 32 initialized. Instep 54 the memory area for plugins is initialized. Instep 56 searches for plugins in directories for plugins. If in step 58 a plugin was found - branch "Yes" - is shown instep 60 the plugin verified and instep 62 added memory to plugin. Then steps 56 + 58 are carried out again and thesteps 60 and 62 for each plugin found. If instep 58 no plug-in (any more) is found - branch "No" - is shown instep 64 checks whether there is handler software H.OS , H.24 , H.26 is in memory. If so - branch "Yes" - the handler software is used H.OS , H.24 , H.26 in step 66 initialized. Instep 68 then becomes theclient software 36 initialized. Instep 70 the software registers itself on the event bus for events of the "install" class. Instep 72 will respond to incoming events via theclient software 36 waited. If such an event is received, the sequence instep 76 ended and with the expiration of 6th continued.

In6 ist ein Ablaufdiagramm für den Download und die Verifizierung von aktualisierten Versionen von SoftwarekomponentenP.OS,P.24,P.26 sowie dazugehöriger Handler SoftwareP.H.OS,P.H.24,P.H. 26 dargestellt. In Schritt80 von6 erreicht die Client Software36 ein Ereignis in Form einer Benachrichtigung vom Server14. In Schritt82 wird die Kommunikation mit dem Server14 abgewickelt und in den parallel ablaufenden SchrittenA) undB) ein Datenpaket P heruntergeladen. In Schritt84 werden die BestandteileP.24,P.26,P.OS,P.H.OS,P.H.24,P.H.26 des Paketes P extrahiert und in Schritt86 verifiziert. In Schritt88 wird überprüft, ob das Paket P Handler SoftwareP.H.OS,P.H.24 oderP.H.26 enthält. Falls ja - Zweig „Ja“ - werden die Handler Software Plugins in Schritt90 verifiziert und in Schritt92 dem Speicher hinzugefügt. In Schritt94 werden die Handler Software Plugins initialisiert. In Schritt96 wird auf auf dem Eventbus32 eine Nachricht der Klasse „install“ publiziert und in Schritt98 der Ablauf beendet und mit dem Ablauf von7 fortgesetzt.In 6th Figure 3 is a flow diagram for downloading and verifying updated versions of software components P.OS , P.24 , P.26 as well as the associated handler software PHOS , PH24 ,PH 26 shown. In step 80 from 6th reaches theclient software 36 an event in the form of a notification from the server 14th . Instep 82 will communicate with the server 14th processed and in the parallel steps A) and B) a data packet P downloaded. Instep 84 become the constituents P.24 , P.26 , P.OS , PHOS , PH24 , PH26 of the package P and extracted instep 86 verified. Instep 88 Checks whether the package P Handler Software PHOS , PH24 or PH26 contains. If so - branch "Yes" - the handler software plugins are instep 90 verified and instep 92 added to memory. Instep 94 the handler software plugins are initialized. Instep 96 will be on the event bus 32 a message of the class "install" is published and instep 98 the process ends and with the expiry of 7th continued.

In7 ist ein Ablaufdiagramm für die Installation von aktualisierten Versionen von SoftwarekomponentenP.24,P.26,P.OS dargestellt. In Schritt100 wird über den Eventbus32 eine Nachricht der Klasse „install“ empfangen. In Schritt102 wird die Ausführung der Installation gestartet. In Schritt104 wird der nächste aus dem Paket P extrahierte Bestandteil gelesen. In Schritt106 wird überprüft, ob es sich dabei um eine aktualisierte Version einer SoftwarekomponenteP.OS,P.24,P.26 handelt. Falls ja - Zweig „Ja“ - wird die aktualisierte Version in Schritt108 extrahiert. In Schritt110 wird die zu der extrahierten aktualisierten Version der Softwarekomponente gehörende Konfigurationsdatei geladen. In Schritt112 wird die zu der extrahierten aktualisierten Version der SoftwarekomponenteOS,24,26 gehörende Handler-SoftwareH.OS,H.24,H.26 geladen. In SchrittC) werden die Programmanweisungen der Handler-SoftwareH.OS,H.24,H.26 ausgeführt. Z. B. werden zunächst die Programmanweisungen der Gruppe „prepare“, danach die Programmanweisungen der Gruppe „flash“ und danach die Programmanweisung der Gruppe „finalize“ ausgeführt.In 7th Figure 3 is a flow diagram for installing updated versions of software components P.24 , P.26 , P.OS shown. Instep 100 is via theevent bus 32 received a message of the class "install". Instep 102 the installation is started. Instep 104 the next component extracted from the packet P is read. Instep 106 it is checked whether this is an updated version of a software component P.OS , P.24 , P.26 acts. If so - branch "Yes" - the updated version is instep 108 extracted. Instep 110 the configuration file belonging to the extracted updated version of the software component is loaded. Instep 112 becomes the updated version of the software component that is extracted OS , 24 , 26th related handler software H.OS , H.24 , H.26 loaded. In step C) are the program instructions of the handler software H.OS , H.24 , H.26 executed. For example, the program instructions of the group "prepare" are executed first, then the program instructions of the group "flash" and then the program instructions of the group "finalize".

Danach wird in Schritt104 der nächste aus dem Paket P extrahierte Bestandteil gelesen und der Ablauf wie oben beschrieben fortgesetzt. Wird in Schritt106 festgestellt, dass es sich nicht um eine aktualisierte Version einer Softwarekomponente handelt - Zweig no - so wird in Schritt114 auf dem Eventbus32 in der Klasse „update exit“ eine Nachricht veröffentlicht, dass der Updateprozess beendet ist. Der Ablauf wird dann in Schritt116 beendet.After that, instep 104 the next component extracted from the packet P is read and the process continues as described above. Will instep 106 found that it is not an updated version of a software component - branch no - so is shown instep 114 on the event bus 32 A message is published in the "update exit" class that the update process has ended. The process is then instep 116 completed.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

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.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • US 5845077 [0002]US 5845077 [0002]

Claims (12)

Translated fromGerman
Verfahren zum Aktualisieren von mindestens einer Softwarekomponente (OS, 24, 26) eines Knotens (10) eines Netzwerkes (16), umfassend die Schritte:A) Herunterladen einer aktualisierten Version (P.OS, P.24, P.26) der mindestens einen Softwarekomponente (OS, 24, 26) von einem Server (14) über das Netzwerk (16),B) Herunterladen von dem Server (14) über das Netzwerk (16) einer Handler-Software (P.H.OS, P.H.24, P.H.26), die mindestens eine Programmanweisung zum Aktualisieren der mindestens einen Softwarekomponente (OS, 24, 26) aufweist,C) Ausführen der mindestens einen Programmanweisung der Handler-Software (H.OS, H.24, H.26) zum Aktualisieren der mindestens einen Softwarekomponente (OS, 24, 26), wobei die Schritte A), B) C) durch eine Update Service Software (28) ausgeführt werden, welche zumindest ein Plugin (36, 44, 46) umfasst,Method for updating at least one software component (OS, 24, 26) of a node (10) of a network (16), comprising the steps:A) Downloading an updated version (P.OS, P.24, P.26) of the at least one software component (OS, 24, 26) from a server (14) via the network (16),B) downloading from the server (14) via the network (16) handler software (P.H.OS, P.H.24, P.H.26) which has at least one program instruction for updating the at least one software component (OS, 24, 26),C) executing the at least one program instruction of the handler software (H.OS, H.24, H.26) for updating the at least one software component (OS, 24, 26), steps A), B) C) by a Update service software (28) are executed which comprises at least one plug-in (36, 44, 46),Verfahren nachAnspruch 1,dadurch gekennzeichnet, dass die Schritte A) und B) gemeinsam ausgeführt werden, wobei die aktualisierte Version (P.OS, P.24, P.26) der mindestens einen Softwarekomponente (OS, 24, 26) und die Handler-Software (P.H.OS, P.H.24, P.H.26) zusammen in einem Paket (P) heruntergeladen werden und nach dem Herunterladen aus dem Paket (P) extrahiert werden.Procedure according to Claim 1 ,characterized in that steps A) and B) are carried out together, the updated version (P.OS, P.24, P.26) of the at least one software component (OS, 24, 26) and the handler software ( PHOS, PH24, PH26) can be downloaded together in a package (P) and extracted from the package (P) after downloading.Verfahren nachAnspruch 1 oder2,dadurch gekennzeichnet, dass die Handler-Software (P.H.OS, P.H.24, P.H.26) als Plugin ausgebildet ist.Procedure according to Claim 1 or 2 ,characterized in that the handler software (PHOS, PH24, PH26) is designed as a plug-in.Verfahren nach einem der vorhergehenden Ansprüche,dadurch gekennzeichnet, dass die Programmanweisungen der Handler-Software (P.H.OS, P.H.24, P.H.26) in drei Gruppen, nämlich eine erste Gruppe, eine zweite Gruppe und eine dritte Gruppe gruppiert sind, wobei die Programmanweisungen der Gruppen in der folgenden Reihenfolge ausgeführt werden:1. Programmanweisungen der ersten Gruppe2. Programmanweisungen der zweiten Gruppe3. Programmanweisungen der dritten GruppeMethod according to one of the preceding claims,characterized in that the program instructions of the handler software (PHOS, PH24, PH26) are grouped into three groups, namely a first group, a second group and a third group, the program instructions of the groups in the in the following sequence: 1. Program instructions of the first group 2. Program instructions of the second group 3. Program instructions of the third groupVerfahren nach einem der vorhergehenden Ansprüche,dadurch gekennzeichnet, dass das Netzwerk (16) das Internet ist.Method according to one of the preceding claims,characterized in that the network (16) is the Internet.Verfahren nach einem der vorhergehenden Ansprüche,dadurch gekennzeichnet, dass der Knoten (10) Embedded Linux als Betriebssystem (OS) aufweist.Method according to one of the preceding claims,characterized in that the node (10) has embedded Linux as the operating system (OS).Verfahren nach einem der vorhergehenden Ansprüche,dadurch gekennzeichnet, dass die Verbindung zwischen Knoten (10) und Netzwerk (16) über die Luftschnittstelle, insbesondere WLAN (18), erfolgt.Method according to one of the preceding claims,characterized in that the connection between the node (10) and the network (16) takes place via the air interface, in particular WLAN (18).Verfahren nach einem der vorhergehenden Ansprüche,dadurch gekennzeichnet, dass die mindestens eine aktualisierbare Softwarekomponente (OS, 24, 26) das Betriebssystem (OS) des Knotens und/oder eine Firmware, insbesondere das Kommunikationsmodul (24), des Knotens ist.Method according to one of the preceding claims,characterized in that the at least one updatable software component (OS, 24, 26) is the operating system (OS) of the node and / or firmware, in particular the communication module (24), of the node.Verfahren nach einem der vorhergehenden Ansprüche,dadurch gekennzeichnet, dass der Server (14) in der Cloud angeordnet ist.Method according to one of the preceding claims,characterized in that the server (14) is arranged in the cloud.Knoten (10) eines Netzwerkes (16) mit mindestens einer aktualisierbaren Softwarekomponente (OS, 24, 26), wobei der Knoten (10) eine Update Service Software (28) mit mindestens einem Plugin (36, 44, 46) aufweist, wobei die Update Service Software (28) Programmanweisungen zum Ausführen des Verfahrens nach einem der vorhergehenden Ansprüche aufweist.Node (10) of a network (16) with at least one updatable software component (OS, 24, 26), the node (10) having update service software (28) with at least one plug-in (36, 44, 46), the Update service software (28) has program instructions for carrying out the method according to one of the preceding claims.Knoten nachAnspruch 10,dadurch gekennzeichnet, dass die Update Service Software (28) zur Kommunikation einen Eventbus (32) aufweist.Knot after Claim 10 ,characterized in that the update service software (28) has an event bus (32) for communication.Knoten nachAnspruch 10 oder11,dadurch gekennzeichnet, dass die Update Service Software (28) eine Konfigurationsdatei (34) aufweist.Knot after Claim 10 or 11 ,characterized in that the update service software (28) has a configuration file (34).
DE102020103314.1A2020-02-102020-02-10 Procedure for updating software and nodes in a networkPendingDE102020103314A1 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
DE102020103314.1ADE102020103314A1 (en)2020-02-102020-02-10 Procedure for updating software and nodes in a network

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
DE102020103314.1ADE102020103314A1 (en)2020-02-102020-02-10 Procedure for updating software and nodes in a network

Publications (1)

Publication NumberPublication Date
DE102020103314A1true DE102020103314A1 (en)2021-08-12

Family

ID=76968722

Family Applications (1)

Application NumberTitlePriority DateFiling Date
DE102020103314.1APendingDE102020103314A1 (en)2020-02-102020-02-10 Procedure for updating software and nodes in a network

Country Status (1)

CountryLink
DE (1)DE102020103314A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5845077A (en)1995-11-271998-12-01Microsoft CorporationMethod and system for identifying and obtaining computer software from a remote computer
US20120137281A1 (en)2008-12-122012-05-31Nokia CorporationMethod and apparatus for installing programs on a computer platform
US20170039372A1 (en)2013-03-152017-02-09Electro Industries/Gauge TechDevices, systems and methods for upgrading firmware in intelligent electronic devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5845077A (en)1995-11-271998-12-01Microsoft CorporationMethod and system for identifying and obtaining computer software from a remote computer
US20120137281A1 (en)2008-12-122012-05-31Nokia CorporationMethod and apparatus for installing programs on a computer platform
US20170039372A1 (en)2013-03-152017-02-09Electro Industries/Gauge TechDevices, systems and methods for upgrading firmware in intelligent electronic devices

Similar Documents

PublicationPublication DateTitle
DE112020005928T5 (en) Master agent and distributed agent architecture for vehicles
DE69712448T2 (en) System and method for secure information transmission over a network
DE60318651T2 (en) Method and apparatus for dynamic configuration management
DE102012009482B4 (en) Functionally expandable vehicle control unit and method for supplementing the functionality of a vehicle control unit
EP3437012B1 (en)Method, processor and device for checking the integrity of user data
DE102013108020A1 (en) Authentication scheme for activating a special privilege mode in a secure electronic control unit
DE102019216462A1 (en) Method and device for operating a computing device
DE102012109615B4 (en) Using a manifest to record the presence of valid software and calibration
DE102013108022A1 (en) Method for activating the development mode of a secure electronic control unit
EP2779580B1 (en)Method and apparatus for installing applications on mobile terminals
DE102012109619A1 (en) A method of providing a digital signature for securing a flash programming function
EP4154139B1 (en)Extended integrity monitoring of a container image
DE102012109617A1 (en) A method for replacing a public key of a bootloader
EP4078415A1 (en)Method and device for operating a computing device
EP3752911A1 (en)Method for installing a program code packet onto a device, device, and motor vehicle
DE112020005949T5 (en) Information processing apparatus, anomaly detection method and computer program
WO2017102295A1 (en)Method and security module for providing a security function for a device
DE102022107393A1 (en) CENTER, DISTRIBUTION CONTROL METHOD AND NON-TRANSITORY STORAGE MEDIUM
DE102022113922A1 (en) OTA MASTER, SYSTEM, PROCEDURE, NON-TRANSITORY STORAGE MEDIUM AND VEHICLE
WO2022008201A1 (en)Method for the extended validation of a container image
EP4335128B1 (en)Licence verification for use of at least one feature in an internet of things (iot) device
DE102018213616A1 (en) Cryptography module and operating method therefor
DE102021104937B4 (en) VERIFICATION OF PROGRAMMABLE LOGIC BLOCKS
DE102020103314A1 (en) Procedure for updating software and nodes in a network
EP3311551B1 (en)Method, main unit, and vehicle for introducing applications into the main unit of a vehicle

Legal Events

DateCodeTitleDescription
R012Request for examination validly filed
R016Response to examination communication
R081Change of applicant/patentee

Owner name:INGENICS DIGITAL GMBH, DE

Free format text:FORMER OWNER: MIXED MODE GMBH, 82166 GRAEFELFING, DE


[8]ページ先頭

©2009-2025 Movatter.jp