




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.
In
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 to
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:
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:
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:
In
In
Die Softwarekomponente
Die Softwarekomponente
Es sind aber auch Knoten
In
Die Update Service Software
Die Update Service Software
Die Update Service Software
Über den Eventbus
Über eine Konfigurationsdatei
Die in
Über den Eventbus
Die Kommunikationsschnittstellen
In
In
Danach wird in Schritt
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
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| DE102020103314.1ADE102020103314A1 (en) | 2020-02-10 | 2020-02-10 | Procedure for updating software and nodes in a network | 
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| DE102020103314.1ADE102020103314A1 (en) | 2020-02-10 | 2020-02-10 | Procedure for updating software and nodes in a network | 
| Publication Number | Publication Date | 
|---|---|
| DE102020103314A1true DE102020103314A1 (en) | 2021-08-12 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| DE102020103314.1APendingDE102020103314A1 (en) | 2020-02-10 | 2020-02-10 | Procedure for updating software and nodes in a network | 
| Country | Link | 
|---|---|
| DE (1) | DE102020103314A1 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US5845077A (en) | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer | 
| US20120137281A1 (en) | 2008-12-12 | 2012-05-31 | Nokia Corporation | Method and apparatus for installing programs on a computer platform | 
| US20170039372A1 (en) | 2013-03-15 | 2017-02-09 | Electro Industries/Gauge Tech | Devices, systems and methods for upgrading firmware in intelligent electronic devices | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US5845077A (en) | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer | 
| US20120137281A1 (en) | 2008-12-12 | 2012-05-31 | Nokia Corporation | Method and apparatus for installing programs on a computer platform | 
| US20170039372A1 (en) | 2013-03-15 | 2017-02-09 | Electro Industries/Gauge Tech | Devices, systems and methods for upgrading firmware in intelligent electronic devices | 
| Publication | Publication Date | Title | 
|---|---|---|
| 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 | 
| Date | Code | Title | Description | 
|---|---|---|---|
| R012 | Request for examination validly filed | ||
| R016 | Response to examination communication | ||
| R081 | Change of applicant/patentee | Owner name:INGENICS DIGITAL GMBH, DE Free format text:FORMER OWNER: MIXED MODE GMBH, 82166 GRAEFELFING, DE |