DE102011006892A1 - Method for migrating anti-skid system (ABS) to hardware platform of distributed embedded system in train, involves migrating software component of hardware platform on objective hardware platform at predetermined point of time - Google Patents

Method for migrating anti-skid system (ABS) to hardware platform of distributed embedded system in train, involves migrating software component of hardware platform on objective hardware platform at predetermined point of time Download PDF

Info

Publication number
DE102011006892A1
DE102011006892A1 DE201110006892 DE102011006892A DE102011006892A1 DE 102011006892 A1 DE102011006892 A1 DE 102011006892A1 DE 201110006892 DE201110006892 DE 201110006892 DE 102011006892 A DE102011006892 A DE 102011006892A DE 102011006892 A1 DE102011006892 A1 DE 102011006892A1
Authority
DE
Germany
Prior art keywords
hardware platform
software component
migration
determined
time
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.)
Ceased
Application number
DE201110006892
Other languages
German (de)
Inventor
Marc Zeller
Christian Prehofer
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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE201110006892 priority Critical patent/DE102011006892A1/en
Publication of DE102011006892A1 publication Critical patent/DE102011006892A1/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Abstract

The method involves determining (110) running time request of software component (102). The resources required for migration of software component are determined (112) based on running time requests. The point of time to which determined resources for migration of software component of hardware platform (104-1) are obtained on objective hardware platform is determined (114). The software component of hardware platform is migrated (116) on objective hardware platform at predetermined point of time. Independent claims are included for the following: (1) computer program for migrating software component of distributed embedded system; and (2) control device for controlling migration software component of distributed embedded system.

Description

Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf ein Verfahren zur Migration einer Softwarekomponente von einer Hardwareplattform eines verteilten eingebetteten Systems auf eine Ziel-Hardwareplattform des verteilten eingebetteten Systems. Weitere Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf ein Verfahren zur zuverlässigen Laufzeitrekonfiguration in verteilten eingebetteten Systemen.Embodiments of the present invention relate to a method for migrating a software component from a distributed embedded system hardware platform to a distributed embedded system target hardware platform. Further embodiments of the present invention relate to a method for reliable runtime reconfiguration in distributed embedded systems.

Verteilte eingebettete Systeme sind informationstechnische Systeme mit einer Mehrzahl von miteinander vernetzten eingebetteten Rechnerknoten. Sie bilden heute die Grundlage für die Funktionalität vieler unterschiedlicher technischer Systeme (z. B. Automobile, Züge, Flugzeuge, medizinische Systeme, Industrieanlagen etc.). Die Komplexität solcher Systeme steigt kontinuierlich an. Um diese Systeme auch künftig beherrschbar machen zu können und gleichzeitig deren Zuverlässigkeit zu erhöhen, sind neue Paradigmen notwendig.Distributed embedded systems are information technology systems with a plurality of interconnected embedded computer nodes. Today they form the basis for the functionality of many different technical systems (eg automobiles, trains, airplanes, medical systems, industrial plants, etc.). The complexity of such systems is increasing continuously. In order to make these systems manageable and at the same time increase their reliability, new paradigms are necessary.

Adaption ist eine Möglichkeit, komplexe Softwaresysteme beherrschbar zu machen und gleichzeitig die Flexibilität und die Robustheit derselben zu erhöhen. Adaptive Systeme können auf veränderte Gegebenheiten in der Umgebung des Systems (dem Kontext des Systems) oder auf Veränderungen innerhalb des Systems selbst reagieren. Neben der Adaption des Systemverhaltens (engl. behavioral adaption), ist die Adaption der Systemstruktur (engt. structural adaption) eine Möglichkeit, das System optimal an seine aktuelle Umgebung anzupassen. Da die Veränderung des Kontexts eines Systems zur Laufzeit erfolgt, muss auch die Anpassung der Systemstruktur zur Laufzeit geschehen (eng. dynamic adaption). Die technische Umsetzung der Adaption wird als Rekonfiguration bezeichnet. In einem verteilten eingebetteten System erfolgt die Adaption der Systemstruktur durch die Migration von Softwarekomponenten. Dabei wird die Zuordnung von Softwarekomponenten zu Hardwareplattformen zur Laufzeit dynamisch an den aktuellen Kontext des verteilten eingebetten Systems angepasst.Adaptation is a way to make complex software systems manageable while increasing their flexibility and robustness. Adaptive systems may respond to changes in the environment of the system (the context of the system) or to changes within the system itself. In addition to adapting the behavior of the system (behavioral adaptation), the adaptation of the system structure (structural adaptation) is a way of optimally adapting the system to its current environment. Since the change of the context of a system takes place at runtime, the adaptation of the system structure must also take place at runtime (close dynamic adaptation). The technical implementation of the adaptation is called reconfiguration. In a distributed embedded system, the system structure is adapted by migrating software components. The assignment of software components to hardware platforms at runtime is adapted dynamically to the current context of the distributed embedded system.

Im Bereich adaptiver Softwaresysteme gibt es eine Reihe von Ansätzen zur Laufzeitrekonfiguration. Aus den Artikeln „On Validity Assurance of Dynamic Reconfiguration for Component-based Programs” von M. Niagamanesh, N. F. Nobakht, R. Jalili, und F. H. Dehkordi , und ”The Evolving Philosophers Problem: Dynamic Change Management” von J. Kramer und J. Magee sind Ansätze zur Laufzeitrekonfiguration bekannt, die allerdings nur den allgemeinen Ablauf derselben beschreiben.In the field of adaptive software systems, there are a number of approaches to runtime reconfiguration. From the articles "On Validity Assurance of Dynamic Reconfiguration for Component-based Programs" by M. Niagamanesh, NF Nobakht, R. Jalili, and FH Dehkordi , and "The Evolving Philosophers Problem: Dynamic Change Management" by J. Kramer and J. Magee Approaches to runtime reconfiguration are known, but only describe the general course of the same.

Weitere Ansätze zur Laufzeitkonfiguration adaptiver Softwaresysteme sind aus dem Artikel „Process Migration” von D. S. Milojicic, F. Douglis, Y. Paindaveine, R. Wheeler, und S. Zhou bekannt. Diese beschreiben allerdings nur den allgemeinen Ablauf der Migration von Softwarekomponenten.Further approaches to the runtime configuration of adaptive software systems are from the article "Process Migration" by DS Milojicic, F. Douglis, Y. Paindaveine, R. Wheeler, and S. Zhou known. However, these only describe the general process of migrating software components.

Auch die in dem Artikel „Dynamic Reconfiguration of Component-based Real-time Software” von A. Rasche und A. Polze beschriebenen Ansätze zur Laufzeitkonfiguration adaptiver Softwaresysteme berücksichtigen die besonderen Problemstellungen bei der Laufzeitrekonfiguration von verteilten eingebetteten Systemen kaum.The approaches to runtime configuration of adaptive software systems described in the article "Dynamic Reconfiguration of Component-based Real-Time Software" by A. Rasche and A. Polze scarcely take into account the particular problems with the runtime reconfiguration of distributed embedded systems.

Darüber hinaus sind aus den Artikeln „Enabling Safe Dynamic Component-Based Software Adaptation” von J. Zhang, B. Cheng, Z. Yang, und P. McKinley , und „Automatically generating adaptive logic to balance non-functional tradeoffs during reconfiguration” von A. Ramirez, B. Cheng, P. Mckinley, und B. Beckmaan Ansätze zur Laufzeitkonfiguration adaptiver Softwaresysteme bekannt, bei denen sog. „adaptation paths” (Adaptionspfade) aufgebaut werden, um den Übergang von einer Konfiguration zu einer neuen Konfiguration zu beschreiben, der bestimmte Anforderungen einhält. Diese Adaptionspfade werden allerdings schon zur Entwurfszeit erzeugt, wobei anschließend der am besten passende Pfad zur Laufzeit ausgewählt wird.In addition, from the articles "Enabling Safe Dynamic Component-Based Software Adaptation" by J. Zhang, B. Cheng, Z. Yang, and P. McKinley , and "Automatically generating adaptive logic to balance non-functional tradeoffs during reconfiguration" by A. Ramirez, B. Cheng, P. Mckinley, and B. Beckmaan Approaches to the runtime configuration of adaptive software systems are known in which so-called "adaptation paths" (adaptation paths) are built to describe the transition from a configuration to a new configuration that meets certain requirements. However, these adaptation paths are already generated at design time, with the best matching path then being selected at runtime.

Die soeben aufgeführten bekannten Ansätze aus dem Bereich adaptiver Softwaresysteme ermöglichen es nicht, die Anforderungen, die sich bei der Rekonfiguration von verteilten eingebetteten Systemen zur Laufzeit stellen, garantiert einzuhalten.The well-known approaches in the field of adaptive software systems just do not make it possible to comply with the requirements that arise when reconfiguring distributed embedded systems at runtime.

Aus dem Artikel „Worst-case execution-time analysis for embedded real-time systems” von J. Engblom, A. Ermedahl, M. Sjödin, J. Gustafsson, und H. Hansson geht hervor, dass die Analyse der WCET von Softwarekomponenten (WCET = worst-case execution-time, dt. maximale Ausführungszeit) es ermöglicht, obere Zeitschranken zu errechnen. Dies ist besonders für Anwendungen mit Echtzeitanforderung entscheidend. Mit der WCET lassen sich zeitliche Anforderungen von Softwarekomponenten zur Laufzeit überprüfen. Da bei der Laufzeitrekonfiguration in verteilten eingebetteten Systemen auch Ressourcenanforderungen eingehalten werden müssen, ist die WCET-Analyse allein nicht ausreichend, um eine zuverlässige Laufzeitrekonfiguration in verteilten eingebetteten Systemen zu ermöglichen.From the article "Worst-case execution-time analysis for embedded real-time systems" by J. Engblom, A. Ermedahl, M. Sjödin, J. Gustafsson, and H. Hansson It can be seen that the analysis of the WCET of software components (WCET = worst-case execution time) makes it possible to calculate upper time limits. This is especially critical for real-time demand applications. With WCET, time requirements of software components can be checked at runtime. Because runtime reconfiguration in distributed embedded systems also complies with resource requirements alone, WCET analysis alone is not enough to allow reliable runtime reconfiguration in distributed embedded systems.

Des Weiteren sind Planungsalgorithmen bekannt. Diese sind ein Teilgebiet der künstlichen Intelligenz, das sich mit der Berechnung von Sequenzen von Aktionen beschäftigt, um spezifische Ziele unter bestimmten Bedingungen zu erreichen. Mit Hilfe von Planungsalgorithmen ist es möglich, von einer aktuellen Konfiguration über eine endliche Anzahl von spezifizierten Aktionen eine Rekonfiguration eines Softwaresystems durchzuführen. Aus dem Artikel „Using Automated Planning for Trusted Self-organising Organic Computing Systems” von B. Satzger, A. Pietzowski, W. Trumler, und T. Ungerer geht hervor, dass durch den Einsatz von Planungsalgorithmen Anforderungen des Systems bezüglich der Rekonfiguration mit in den Algorithmus einbezogen werden können. Allerdings müssen die einzelnen Aktionen, aus denen der Plan zur Laufzeit zusammengestellt wird, schon im Entwurf festgelegt werden. Daher sind die Aktionen eines Planungsalgorithmus meist sehr generisch und eventuell ist zur Laufzeit keine passende Aktion vorhanden und eine Rekonfiguration des Systems damit nicht möglich. Für eine zuverlässige Laufzeitrekonfiguration in verteilten eingebetteten Systemen – besonders von sicherheits-relevanten Systemen – eignen sich Planungsalgorithmen daher nicht.Furthermore, planning algorithms are known. These are a branch of artificial intelligence that deals with the calculation of sequences of actions to achieve specific goals under certain conditions. Using planning algorithms, it is possible to reconfigure a software system from a current configuration to a finite number of specified actions. From the article "Using Automated Planning for Trusted Self-organizing Organic Computing Systems" by B. Satzger, A. Pietzowski, W. Trumler, and T. Ungerer It can be seen that by using planning algorithms system requirements for reconfiguration can be included in the algorithm. However, the individual actions that compile the plan at runtime must already be defined in the draft. Therefore, the actions of a planning algorithm are usually very generic and possibly no suitable action is available at runtime and a reconfiguration of the system is thus not possible. Therefore, scheduling algorithms are not suitable for reliable runtime reconfiguration in distributed embedded systems, especially security-related systems.

Um zwischen verschiedenen Betriebsmodi eines verteilten Softwaresystems zu wechseln, müssen bestimmte Tasks beendet und andere neu gestaltet werden. Gemäß dem Artikel „Mode Change Protocols for Real-Time Systems: A Survey and a New Proposal” von J. Real und A. Crespo können hierzu sogenannte Mode-Change Protokolle (dt. Modus-Wechsel Protokolle) eingesetzt werden. Diese sollen den Wechsel des Betriebsmodus ermöglichen, ohne dass der Betrieb des eigentlichen Systems beeinträchtigt wird.To switch between different operating modes of a distributed software system, certain tasks must be stopped and others redesigned. According to the article "Mode Change Protocols for Real-Time Systems: A Survey and a New Proposal" by J. Real and A. Crespo, so-called mode-change protocols can be used for this purpose. These are to allow the change of the operating mode without affecting the operation of the actual system.

In dem Artikel „Consistency Challenges in Self-Organizing Distributed Hard Real-Time Systems” von S. Stein, M. Neukirchner, H. Schrom und R. Ernst wurde allerdings gezeigt, dass Mode-Change Protokolle nicht in der Lage sind, nicht-funktionale Eigenschaften (z. B. Timing-Anforderungen) beim Wechsel des Betriebsmodus zu garantieren. Da die Einhaltung von nicht-funktionalen Eigenschaften für die zuverlässige Laufzeitrekonfiguration unabdingbar ist, wird eine zuverlässige Laufzeitrekonfiguration in verteilten eingebetteten Systemen durch Mode-Change Protokolle nicht ermöglicht.In the article "Consistency Challenges in Self-Organizing Distributed Hard Real Time Systems" by S. Stein, M. Neukirchner, H. Schrom and R. Ernst however, it has been shown that mode change protocols are unable to guarantee non-functional characteristics (eg timing requirements) when changing the operating mode. Because compliance with non-functional properties is essential for reliable runtime reconfiguration, reliable runtime reconfiguration in distributed embedded systems is not enabled by mode change protocols.

Der vorliegenden Erfindung liegt somit die Aufgabe zugrunde, ein Konzept zu schaffen, dass eine zuverlässige Laufzeitrekonfiguration in verteilten eingebetteten Systemen ermöglicht.It is therefore an object of the present invention to provide a concept that enables reliable runtime reconfiguration in distributed embedded systems.

Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1, einem Computerprogramm gemäß Anspruch 15 und einer Steuervorrichtung gemäß Anspruch 16 gelöst.This object is achieved by a method according to claim 1, a computer program according to claim 15 and a control device according to claim 16.

Ausführungsbeispiele der vorliegenden Erfindung schaffen ein Verfahren zur Migration einer Softwarekomponente von einer Hardwareplattform eines verteilten eingebetteten Systems auf eine Ziel-Hardwareplattform des verteilten eingebetteten Systems. Dabei werden in einem ersten Schritt Laufzeitanforderungen der zu migrierenden Softwarekomponente ermittelt. In einem zweiten Schritt werden Ressourcen ermittelt, die für die Migration der Softwarekomponente unter Einhaltung der ermittelten Laufzeitanforderungen erforderlich sind. In einem dritten Schritt wird ein Zeitpunkt ermittelt, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente von der Hardwareplattform auf die Ziel-Hardwareplattform verfügbar sind. In einem vierten Schritt wird die Softwarekomponente zu dem ermittelten Zeitpunkt von der Hardwareplattform auf die Ziel-Hardwareplattform unter Einhaltung der ermittelten Laufzeitanforderungen migriert.Embodiments of the present invention provide a method for migrating a software component from a distributed embedded system hardware platform to a distributed embedded system target hardware platform. In a first step, runtime requirements of the software component to be migrated are determined. In a second step, resources are determined that are required for the migration of the software component in compliance with the determined runtime requirements. In a third step, a time is determined at which the determined resources for the migration of the software component from the hardware platform to the target hardware platform are available. In a fourth step, the software component is migrated from the hardware platform to the target hardware platform at the determined time in compliance with the determined runtime requirements.

Bei Ausführungsbeispielen werden in dem ersten Schritt die Laufzeitanforderungen der Softwarekomponente ermittelt. Basierend auf den ermittelten Laufzeitanforderungen werden in dem zweiten Schritt die Ressourcen ermittelt, die erforderlich sind, um die Softwarekomponente von der Hardwareplattform auf die Ziel-Hardwareplattform zu migrieren ohne die Laufzeitanforderungen der zu migrierenden Softwarekomponente durch die Migration zu verletzen. In dem dritten Schritt wird ermittelt, zu welchem Zeitpunkt die ermittelten Ressourcen zur Verfügung stehen, oder in anderen Worten, wann die verfügbaren Ressourcen des verteilten eingebetteten Systems ausreichen, um die Softwarekomponente von der Hardwareplattform auf die Ziel-Hardwareplattform zu migrieren ohne die Laufzeitanforderungen der Softwarekomponente zu verletzen. Dadurch, dass die Migration indem vierten Schritt zu dem ermittelten Zeitpunkt erfolgt, wird eine zuverlässige Migration der Softwarekomponente zur Laufzeit ermöglicht, ohne dass das Verhalten des verteilten eingebetteten Systems, z. B. durch eine zusätzliche Blackout-Zeit der Softwarekomponente, beeinträchtigt wird. Indem nur verfügbaren Ressourcen des verteilten eingebetteten Systems für die Migration der Softwarekomponente genutzt werden, kann darüber hinaus sichergestellt werden, dass Laufzeitanforderungen anderer Softwarekomponenten nicht verletzt werden.In embodiments, the runtime requirements of the software component are determined in the first step. Based on the determined runtime requirements, the second step identifies the resources required to migrate the software component from the hardware platform to the target hardware platform without violating the runtime requirements of the migrating software component by the migration. In the third step, it is determined when the resources discovered are available, or in other words, when the available resources of the distributed embedded system are sufficient to migrate the software component from the hardware platform to the target hardware platform without the runtime requirements of the software component to hurt. By migrating to the determined time in the fourth step, reliable migration of the software component at runtime is enabled without affecting the behavior of the distributed embedded system, e.g. B. by an additional blackout time of the software component is affected. In addition, by using only available resources of the distributed embedded system to migrate the software component, it can be ensured that runtime requirements of other software components are not violated.

Weitere Ausführungsbeispiele der vorliegenden Erfindung schaffen eine Steuervorrichtung zum Steuern einer Migration einer Softwarekomponente von einer Hardwareplattform eines verteilten eingebetteten Systems auf eine Ziel-Hardwareplattform des verteilten eingebetteten Systems. Die Steuervorrichtung weist eine Einrichtung zum Ermitteln von Laufzeitanforderungen der zu migrierenden Softwarekomponente auf. Ferner weist die Steuervorrichtung eine Einrichtung zum Ermitteln von Ressourcen, die für die Migration der Softwarekomponente unter Einhaltung der ermittelten Laufzeitanforderung erforderlich sind, auf. Des Weiteren weist die Steuervorrichtung eine Einrichtung zum Ermitteln eines Zeitpunkts, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente von der Hardwareplattform auf die Ziel-Hardwareplattform verfügbar sind, auf. Darüber hinaus weist die Steuervorrichtung eine Einrichtung zum Steuern der Migration von der Hardwareplattform auf die Ziel-Hardwareplattform zu dem ermittelten Zeitpunkt unter Einhaltung der ermittelten Laufzeitanforderung auf. Further embodiments of the present invention provide a controller for controlling a migration of a software component from a distributed embedded system hardware platform to a target distributed platform system hardware platform. The control device has a device for determining runtime requirements of the software component to be migrated. Furthermore, the control device has a device for determining resources which are required for the migration of the software component in compliance with the determined runtime request. Furthermore, the control device has a device for determining a time at which the determined resources for the migration of the software component from the hardware platform to the target hardware platform are available. In addition, the control device has a device for controlling the migration from the hardware platform to the destination hardware platform at the determined time while maintaining the determined runtime request.

Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:Embodiments of the present invention will be explained below with reference to the accompanying drawings. Show it:

1 ein Flussdiagramm eines Verfahrens zur Migration einer Softwarekomponente von einer Hardwareplattform eines verteilten eingebetteten Systems auf eine Ziel-Hardwareplattform des verteilten eingebetteten Systems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 1 a flowchart of a method for migrating a software component from a distributed embedded system hardware platform to a distributed distributed system target hardware platform according to an embodiment of the present invention;

2 eine schematische Darstellung eines Verfahrens zur zuverlässigen Laufzeitrekonfiguration in einem verteilten eingebetteten System gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 2 a schematic representation of a method for reliable runtime reconfiguration in a distributed embedded system according to an embodiment of the present invention;

3 ein Blockschaltbild eines verteilten eingebetteten Systems sowie ein Flussdiagramm der Migration der Softwarekomponente von der Hardwareplattform auf die Ziel-Hardwareplattform gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; 3 a block diagram of a distributed embedded system and a flowchart of the migration of the software component from the hardware platform to the target hardware platform according to an embodiment of the present invention;

4a ein Blockschaltbild des verteilten eingebetteten Systems vor der Laufzeitrekonfiguration gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und 4a a block diagram of the distributed embedded system before the runtime reconfiguration according to an embodiment of the present invention; and

4b ein Blockschaltbild des verteilten eingebetteten Systems nach der Laufzeitrekonfiguration gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. 4b a block diagram of the distributed embedded system after the runtime reconfiguration according to an embodiment of the present invention.

In der nachfolgenden Beschreibung der Ausführungsbeispiele der Erfindung werden in den Figuren gleiche oder gleichwirkende Elemente mit den gleichen Bezugszeichen versehen.In the following description of the embodiments of the invention, identical or equivalent elements are provided with the same reference numerals in the figures.

1 zeigt ein Flussdiagramm eines Verfahrens 100 zur Migration einer Softwarekomponente 102 von einer Hardwareplattform 104_1 eines verteilten eingebetteten Systems 106 auf eine Ziel-Hardwareplattform 104_2 des verteilten eingebetteten Systems 106 sowie ein Blockschaltbild des verteilten eingebetteten Systems 106 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. 1 shows a flowchart of a method 100 to migrate a software component 102 from a hardware platform 104_1 a distributed embedded system 106 on a target hardware platform 104_2 Distributed Embedded System 106 and a block diagram of the distributed embedded system 106 according to an embodiment of the present invention.

In einem ersten Schritt 110 des erfindungsgemäßen Verfahrens 100 werden Laufzeitanforderungen der zu migrierenden Softwarekomponente 102 ermittelt. In einem zweiten Schritt werden Ressourcen ermittelt, die für die Migration der Softwarekomponente 102 unter Einhaltung der ermittelten Laufzeitanforderungen erforderlich sind. In einem dritten Schritt 114 wird ein Zeitpunkt ermittelt, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 verfügbar sind. In einem vierten Schritt 116 wird die Softwarekomponente 102 zu dem ermittelten Zeitpunkt von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 unter Einhaltung der ermittelten Laufzeitanforderungen migriert.In a first step 110 the method according to the invention 100 are runtime requirements of the software component to be migrated 102 determined. In a second step, resources are determined for the migration of the software component 102 required in accordance with the established runtime requirements. In a third step 114 A time is determined at which the determined resources for the migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 Are available. In a fourth step 116 becomes the software component 102 at the time determined by the hardware platform 104_1 on the target hardware platform 104_2 migrated in compliance with the determined runtime requirements.

In 1 weist das verteilte eingebettete System 106 beispielhaft eine erste Hardwareplattform 104_1 und eine zweite Hardwareplattform 104_2 auf die über ein Kommunikationsnetzwerk 109 miteinander vernetzt sind, wobei die zweite Hardwareplattform 104_2 die Ziel-Hardwareplattform 104_2 ist, auf die die Softwarekomponente 102 migriert werden soll. Im allgemeinen kann das verteilte eingebettete System 106 eine Mehrzahl von Hardwareplattformen aufweisen, die über das Kommunikationsnetzwerk 109 miteinander vernetzt sind, wobei auf jeder Hardwareplattform Softwarekomponenten (z. B. Firmware, Applikationen) ausgeführt werden können. Ferner kann jede Hardwareplattform selbst ein eingebettetes System sein, das beispielsweise ausgebildet ist, um Steuer-, Regelungs-, Überwachungs-, Datenverarbeitungs- oder Signalverarbeitungs-Aufgaben auszuführen Verteilte eingebettete Systeme 106 werden in der Regel in Hinblick auf minimale Kosten sowie einen geringen Platz-, Energie- und Speicherverbrauch entwickelt, so dass die verfügbaren Ressourcen stark begrenzt sind. Die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 zur Laufzeit des verteilten eingebetteten Systems 106 ist daher nicht ohne Weiteres möglich.In 1 has the distributed embedded system 106 an example of a first hardware platform 104_1 and a second hardware platform 104_2 on the over a communication network 109 Networked with each other, the second hardware platform 104_2 the target hardware platform 104_2 is to which the software component 102 to be migrated. In general, the distributed embedded system 106 have a plurality of hardware platforms that communicate over the communication network 109 with each other, whereby software components (eg firmware, applications) can be executed on each hardware platform. Further, each hardware platform may itself be an embedded system, for example, configured to perform control, monitoring, monitoring, data processing, or signal processing tasks. Distributed Embedded Systems 106 These are typically designed to minimize costs, space, energy and storage, so resources are very limited. The migration of the software component 102 from the hardware platform 104_1 to the target hardware platform 104_2 at runtime of the distributed embedded system 106 is therefore not possible without further ado.

Ausführungsbeispiele der vorliegenden Erfindung ermöglichen jedoch eine zuverlässige Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 zur Laufzeit des verteilten eingebetteten Systems 106. Hierzu werden in dem ersten Schritt 110 die Laufzeitanforderungen der Softwarekomponente 102 ermittelt. In dem zweiten Schritt 112 werden die Ressourcen ermittelt, die erforderlich sind, um die Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 zu migrieren, so dass die Laufzeitanforderungen der Softwarekomponente 102 nicht verletzt werden. In dem dritten Schritt 114 wird der Zeitpunkt ermittelt, zu dem die erforderlichen Ressourcen für die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 verfügbar sind. In dem vierten Schritt 116 erfolgt die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform zu dem ermittelten Zeitpunkt, so dass die ermittelten Laufzeitanforderungen der Softwarekomponente 102 eingehalten werden. Das erfindungsgemäße Verfahren 100 ermöglicht somit eine zuverlässige Migration der Softwarekomponente 102 zur Laufzeit des verteilten eingebetteten Systems 106, ohne dass das Verhalten des verteilten eingebetteten Systems 106 durch die Migration der Softwarekomponente 102 beeinträchtigt wird. Dabei ist die Softwarekomponente 102 sowohl vor als auch nach der Migration ohne eine durch die Migration eingeführte zusätzliche Wartezeit Verfügbar. In anderen Worten, das verteilte eingebettete System 106 wird durch die Migration der Softwarekomponente 102 nicht negativ beeinflusst.However, embodiments of the present invention enable reliable migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 at runtime of the distributed embedded system 106 , This will be done in the first step 110 the runtime requirements of the software component 102 determined. In the second step 112 The resources required to identify the software component are determined 102 from the hardware platform 104_1 on the target hardware platform 104_2 to migrate, so that the runtime requirements of the software component 102 not hurt. In the third step 114 It determines the time at which the resources required to migrate the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 Are available. In the fourth step 116 the migration of the software component takes place 102 from the hardware platform 104_1 on the target hardware platform at the time determined so that the determined runtime requirements of the software component 102 be respected. The inventive method 100 thus enables a reliable migration of the software component 102 at runtime of the distributed embedded system 106 without affecting the behavior of the distributed embedded system 106 by the migration of the software component 102 is impaired. Here is the software component 102 both before and after migration, without any additional waiting period introduced by the migration. In other words, the distributed embedded system 106 is due to the migration of the software component 102 not negatively affected.

Bei Ausführungsbeispielen kann bei dem ersten Schritt 110 eine Periode und eine maximale Ausführungszeit (WCET) der Softwarekomponente 102 ermittelt werden, wobei bei dem zweiten Schritt 112 die Ressourcen derart ermittelt werden können, dass die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 innerhalb einer Leerlaufzeit der Softwarekomponente 102 erfolgt, wobei die Leerlaufzeit gleich einer Differenz zwischen der ermittelten Periode und der ermittelten maximalen Ausführungszeit ist (Leerlaufzeit = Periode – WCET). Die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 kann also während der Zeit erfolgen, während der die Softwarekomponente nicht läuft, um das Verhalten des verteilten eingebetteten Systems 106 (Systemverhalten) nicht zu beeinträchtigen. Das verteilte eingebettete System 106 kann daher sowohl vor als auch nach der Migration fehlerfrei arbeiten.In embodiments, at the first step 110 a period and a maximum execution time (WCET) of the software component 102 be determined, wherein in the second step 112 the resources can be determined such that the migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 within an idle time of the software component 102 where the idle time is equal to a difference between the determined period and the determined maximum execution time (idle time = period - WCET). The migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 Thus, during the time that the software component is not running, the behavior of the distributed embedded system may occur 106 (System behavior) not to be affected. The distributed embedded system 106 can therefore work without errors both before and after the migration.

Ferner kann bei dem ersten Schritt 110 ermittelt werden, ob die Softwarekomponente 102 von einer anderen Softwarekomponente auf der Hardwareplattform 104_1 abhängig ist, wobei bei dem vierten Schritt 116 die Softwarekomponente 102 zusammen mit der anderen Softwarekomponente von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 208 migriert werden kann, falls die Softwarekomponente 102 von der anderen Softwarekomponente auf der Hardwareplattform 104_1 abhängig ist. Wenn die Softwarekomponente 102 also von einer anderen Softwarekomponente auf der Hardwareplattform 104_1 abhängig ist, dann kann die Softwarekomponente 102 zusammen mit der anderen Softwarekomponente auf die Ziel-Hardwareplattform 104_2 migriert werden, so dass die Laufzeitanforderungen der Softwarekomponente 102 nicht verletzt und das Verhalten des verteilten eingebetteten Systems 106 nicht beeinträchtig wird.Furthermore, at the first step 110 to determine if the software component 102 from another software component on the hardware platform 104_1 dependent on the fourth step 116 the software component 102 along with the other software component from the hardware platform 104_1 on the target hardware platform 208 can be migrated if the software component 102 from the other software component on the hardware platform 104_1 is dependent. If the software component 102 that is, from another software component on the hardware platform 104_1 dependent, then the software component 102 along with the other software component on the target hardware platform 104_2 be migrated so that the runtime requirements of the software component 102 not hurt and the behavior of the distributed embedded system 106 is not affected.

Zum Beispiel kann die Hardwareplattform 104_1 eine erste, zweite und dritte Softwarekomponente 102_1 bis 102_3 aufweisen, wobei die erste Softwarekomponente 102_1 die zu migrierende Softwarekomponente ist. Dabei können in dem ersten Schritt 110 die Laufzeitanforderungen der ersten Softwarekomponente 102_1 derart ermittelt werden, dass die Laufzeitanforderungen der ersten Softwarekomponente 1021 die Laufzeitanforderungen der zweiten Softwarekomponente 102_2 umfassen, falls die erste Softwarekomponente 102_1 von der zweiten Softwarekomponente 102_2 abhängig ist. In dem zweiten Schritt 112 werden somit letztendlich die Ressourcen ermittelt, die für die Migration der ersten und zweiten Softwarekomponente 102_1 und 102_2 unter Einhaltung der ermittelten Laufzeitanforderungen erforderlich sind. Ferner wird in dem dritten Schritt 114 somit der Zeitpunkt ermittelt, zu dem die ermittelten Ressourcen für die Migration der ersten und zweiten Softwarekomponente 102_1 und 102_2 verfügbar sind, so dass in dem vierten Schritt 116 die erste und zweite Softwarekomponente 102_1 und 102_2 zusammen von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 migriert werden können. Darüber hinaus kann die dritte Softwarekomponente 102_3 analog zur zweiten Softwarekomponente 102_2 zusammen mit der ersten und zweiten Softwarekomponente 102_1 und 102_2 von der Hardwareplattform 104_2 auf die Ziel-Hardwareplattform 104_2 migriert werden, falls die erste oder zweite Softwarekomponente 102_1 und 102_2 von der dritten Softwarekomponente 102_3 abhängig ist.For example, the hardware platform 104_1 a first, second and third software component 102_1 to 102_3 have, wherein the first software component 102_1 is the software component to be migrated. It can in the first step 110 the runtime requirements of the first software component 102_1 be determined such that the runtime requirements of the first software component 1021 the runtime requirements of the second software component 102_2 if the first software component 102_1 from the second software component 102_2 is dependent. In the second step 112 Thus, ultimately, the resources are determined that for the migration of the first and second software component 102_1 and 102_2 required in accordance with the established runtime requirements. Further, in the third step 114 thus determines the time at which the resources identified for the migration of the first and second software component 102_1 and 102_2 are available, so in the fourth step 116 the first and second software components 102_1 and 102_2 together from the hardware platform 104_1 on the target hardware platform 104_2 can be migrated. In addition, the third software component 102_3 analogous to the second software component 102_2 along with the first and second software components 102_1 and 102_2 from the hardware platform 104_2 on the target hardware platform 104_2 be migrated if the first or second software component 102_1 and 102_2 from the third software component 102_3 is dependent.

Des Weiteren kann bei dem dritten Schritt 114 der Zeitpunkt derart ermittelt werden, dass Laufzeitanforderungen einer anderen Softwarekomponente (z. B. einer zweiten oder dritten Softwarekomponente 102_2 oder 102_3) durch die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 nicht verletzt werden. Es kann z. B. durch eine Analyse der verfügbaren Ressourcen 106 sichergestellt werden, dass für die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 keine Ressourcen genutzt werden, die zur Einhaltung der Laufzeitanforderungen der anderen Softwarekomponente erforderlich sind. Hierzu können z. B. bei dem dritten Schritt 114 verfügbare Ressourcen der Hardwareplattform 104_1, der Ziel-Hardwareplattform 104_2 und des Kommunikationsnetzwerks 109 ermittelt bzw. analysiert werden. Durch die Analyse der verfügbaren Ressourcen der Hardwareplattform 104_1 und der Ziel-Hardwareplattform 104_2 werden die Laufzeitanforderungen anderer Softwarekomponenten berücksichtig, die auf der Hardwareplattform 104_1 bzw. auf der Ziel-Hardwareplattform 104_2 ausgeführt werden. Darüber hinaus können durch die Analyse der verfügbaren Ressourcen des Kommunikationsnetzwerks 109 Laufzeitanforderungen anderer Softwarekomponenten berücksichtigt werden, die z. B. auf einer weiteren Hardwareplattform des verteilten eingebetteten Systems 106 ausgeführt werden. Furthermore, at the third step 114 the time is determined such that runtime requests of another software component (eg, a second or third software component 102_2 or 102_3 ) by the migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 not hurt. It can, for. By analyzing available resources 106 be sure that for the migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 No resources are needed to meet the runtime requirements of the other software component. For this purpose, z. At the third step 114 available resources of the hardware platform 104_1 , the target hardware platform 104_2 and the communication network 109 be determined or analyzed. By analyzing the available resources of the hardware platform 104_1 and the target hardware platform 104_2 consider the runtime requirements of other software components that are on the hardware platform 104_1 or on the target hardware platform 104_2 be executed. In addition, by analyzing the available resources of the communication network 109 Runtime requirements of other software components are taken into account, the z. On another hardware platform of the distributed embedded system 106 be executed.

Bei Ausführungsbeispielen wird bei der Migration der Softwarekomponente 102 die Softwarekomponente 102 (z. B. Programmcode und/oder Daten der Softwarekomponente 102) auf die Ziel-Hardwareplattform 104_2 kopiert Falls die Migration erfolgreich war, kann die (kopierte) Softwarekomponente 102 auf der Ziel-Hardwareplattform 104_2 aktiviert und die Softwarekomponente 102 auf der Hardwareplattform 104_1 vor Ablauf der Leerlaufzeit deaktiviert werden. Indem die Softwarekomponente 102 nicht gleichzeitig auf der Hardwareplattform 104_1 und der Ziel-Hardwareplattform 1042 aktiv ist, kann ein erhöhter Ressourcenverbrauch sowie eine Beeinflussung des Verhaltens des verteilten eingebetteten Systems 106 nahezu ausgeschlossen werden.In embodiments, migration of the software component 102 the software component 102 (eg program code and / or data of the software component 102 ) on the target hardware platform 104_2 If the migration was successful, the (copied) software component can 102 on the target hardware platform 104_2 activated and the software component 102 on the hardware platform 104_1 be deactivated before the idle time expires. By the software component 102 not at the same time on the hardware platform 104_1 and the target hardware platform 1042 is active, can increase resource consumption as well as affect the behavior of the distributed embedded system 106 almost excluded.

Des Weiteren kann die Migration der Softwarekomponente 102 zurück gerollt (engt. rollback) werden, falls die Migration der Softwarekomponente 102 von der. Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 nicht erfolgreich war. Zum Beispiel, kann die Migration der Softwarekomponente 102 rückgängig gemacht werden, indem die Softwarekomponente 102 auf der Hardwareplattform 104_1 nicht deaktiviert und bereits auf die Ziel-Hardwareplattform 104_2 übertragene Daten bzw. Datenfragmente gelöscht werden.Furthermore, the migration of the software component 102 rolled back (narrowed rollback) if the migration of the software component 102 of the. hardware platform 104_1 on the target hardware platform 104_2 was not successful. For example, the migration of the software component 102 be undone by the software component 102 on the hardware platform 104_1 not disabled and already on the target hardware platform 104_2 transferred data or data fragments are deleted.

Im Folgenden soll anhand eines Ausführungsbeispiels aufgezeigt werden, wie das erfindungsgemäße Verfahren 100 eine zuverlässige Laufzeitrekonfiguration eines verteilten eingebetteten Systems 106 ermöglicht.In the following, using an exemplary embodiment, it will be shown how the method according to the invention 100 a reliable runtime reconfiguration of a distributed embedded system 106 allows.

2 zeigt eine schematische Darstellung eines Verfahrens zur zuverlässigen Laufzeitrekonfiguration in einem verteilten eingebetteten System 106 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Bei einer Laufzeitrekonfiguration eines verteilten eingebetteten Systems 106 wird eine aktuelle Zuordnung von Softwarekomponenten zu Hardwarekomponenten in eine neue Zuordnung von Softwarekomponenten zu Hardwarekomponenten überführt, indem Softwarekomponenten auf andere (Ziel-)Hardwareplattformen migriert werden. Für die Migration der Softwarekomponenten kann das erfindungsgemäße Verfahren 100 genutzt werden, um eine zuverlässige Laufzeitrekonfiguration des verteilten eingebetteten Systems 106 zu ermöglichen. 2 zeigt dabei den einfachsten Fall einer Laufzeitrekonfiguration eines verteilten eingebetteten Systems 106, bei dem nur eine Softwarekomponente 102 von einer Hardwareplattform 104_1 auf eine Ziel-Hardwareplattform 104_2 migriert werden soll. Im einfachsten Fall kann die Laufzeitrekonfiguration eines verteilten eingebetteten Systems 106 somit auf die Migration nur einer Softwarekomponente reduziert werden. 2 shows a schematic representation of a method for reliable runtime reconfiguration in a distributed embedded system 106 according to an embodiment of the present invention. During a runtime reconfiguration of a distributed embedded system 106 converts a current mapping of software components to hardware components into a new mapping of software components to hardware components by migrating software components to other (target) hardware platforms. For the migration of the software components, the inventive method 100 be used to provide reliable runtime reconfiguration of the distributed embedded system 106 to enable. 2 shows the simplest case of a runtime reconfiguration of a distributed embedded system 106 in which only one software component 102 from a hardware platform 104_1 on a target hardware platform 104_2 to be migrated. In the simplest case, the runtime reconfiguration of a distributed embedded system 106 thus reduced to the migration of only one software component.

Ferner kann, wie in 2 gezeigt, eine Steuervorrichtung 118 (engl. controller) genutzt werden, die ausgebildet ist, dass erfindungsgemäße Verfahren 100 durchzuführen, um eine zuverlässige Laufzeitrekonfiguration des verteilten eingebetteten Systems 106 zu ermöglichen. Hierzu kann die Steuervorrichtung 118 eine Einrichtung zum Ermitteln von Laufzeitanforderungen der zu migrierenden Softwarekomponente 102 aufweisen. Ferner kann die Steuervorrichtung 118 eine Einrichtung zum Ermitteln von Ressourcen, die für die Migration der Softwarekomponente 102 unter Einhaltung der ermittelten Laufzeitanforderung erforderlich sind, aufweisen. Des Weiteren kann die Steuervorrichtung 118 eine Einrichtung zum Ermitteln eines Zeitpunkts, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 verfügbar sind, aufweisen. Darüber hinaus kann die Steuervorrichtung 118 eine Einrichtung zum Steuern der Migration von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 zu dem ermittelten Zeitpunkt unter Einhaltung der ermittelten Laufzeitanforderung aufweisen.Furthermore, as in 2 shown a control device 118 (English controller) are used, which is formed, the inventive method 100 to perform a reliable runtime reconfiguration of the distributed embedded system 106 to enable. For this purpose, the control device 118 a device for determining runtime requirements of the software component to be migrated 102 exhibit. Furthermore, the control device 118 a means of determining resources necessary for the migration of the software component 102 are required in compliance with the determined runtime requirement. Furthermore, the control device 118 means for determining a time at which the determined resources for the migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 are available. In addition, the control device 118 a mechanism for controlling the migration from the hardware platform 104_1 on the target hardware platform 104_2 at the time determined in compliance with the determined runtime requirement.

Bevor mit der Rekonfiguration des verteilten eingebetteten Systems 106 begonnen werden kann, können die für die Laufzeitrekonfiguration benötigten und die aktuell zur Verfügung stehenden Ressourcen des verteilten eingebetteten Systems 106 analysiert werden. Die Analyse kann durch eine übergeordnete Systemkomponente geschehen (Steuervorrichtung 118, die entweder zentral oder dezentral implementiert werden kann). Hierzu kann der Steuervorrichtung 118 mitgeteilt werden, welche Softwarekomponenten im Zuge der Laufzeitrekonfiguration auf andere Hardwareplattformen zu migrieren sind. Daraufhin kann die Steuervorrichtung 118 den Ressourcenbedarf für die Rekonfiguration des verteilten eingebetteten Systems 106 ermitteln. Zudem kann die Steuervorrichtung 118 die benötigten Informationen über verfügbare Ressourcen auf den involvierten Hardwareplattformen 104_1 und 104_2 und dem Kommunikationsnetzwerk 109 einholen. Zu den Ressourcen, die für die Migration von Softwarekomponenten in einem verteilten eingebetteten System 106 relevant sind, zählen unter anderem eine Bandbreite des Kommunikationsnetzwerks 109, die Speicherkapazität und CPU-Auslastung der involvierten Hardwareplattformen 104_1 und 104_2, und die zur Verfügung stehende Zeit für die Migration (Migrationszeit ≤ Leerlaufzeit = Periode – WCET). Die aktuell verfügbaren Ressourcen kann die Steuervorrichtung 118 bei den entsprechenden Hardwarekomponenten (Hardwareplattform 104_1, Ziel-Hardwareplattform 104_2 und Kommunikationsnetzwerk 109) erfragen. Der Ressourcenbedarf der Laufzeitrekonfiguration kann durch die von den Softwarekomponenten bereitgestellte Information (Selbstbeschreibung) ermittelt werden. Before reconfiguring the distributed embedded system 106 can be started, the resources required for the runtime reconfiguration and the currently available resources of the distributed embedded system 106 to be analyzed. The analysis can be done by a higher-level system component (control device 118 that can be implemented either centrally or remotely). For this purpose, the control device 118 which software components are to be migrated to other hardware platforms during runtime reconfiguration. Thereupon, the control device 118 the resource requirements for the reconfiguration of the distributed embedded system 106 determine. In addition, the control device 118 the required information about available resources on the involved hardware platforms 104_1 and 104_2 and the communication network 109 seek. Among the resources required for the migration of software components in a distributed embedded system 106 relevant include, among others, a bandwidth of the communication network 109 , the storage capacity and CPU utilization of the hardware platforms involved 104_1 and 104_2 , and the time available for the migration (migration time ≤ idle time = period - WCET). The currently available resources may be the control device 118 with the corresponding hardware components (hardware platform 104_1 , Target hardware platform 104_2 and communication network 109 ) ask. The resource requirement of the runtime reconfiguration can be determined by the information provided by the software components (self-description).

Ferner kann die Steuervorrichtung 118 die Laufzeitrekonfiguration in einzelne Transaktionen zerlegen, wobei jede Transaktion die Migration zumindest einer Softwarekomponente umfasst. Werden durch die Migration einer Softwarekomponente Abhängigkeiten (z. B. funktionale oder nicht-funktionale Abhängigkeiten) zu einer anderen Softwarekomponente verletzt, dann können diese Softwarekomponenten in einer Transaktion migriert werden. Die Steuervorrichtung 118 kann hierzu einen Ablaufplan erstellen, der festlegt, in welcher Reihenfolge die einzelnen Transaktionen durchgeführt werden. Dabei wäre wünschenswert, wenn sich das verteilte eingebettete System 106 nach jeder Transaktion wieder in einem stabilen, gültigen Zustand befindet, in dem keine Anforderungen/Beschränkungen verletzt werden. Damit wird die Gesamtzeit der Rekonfiguration in kleinere Teile zerlegt. Während die Dauer der Rekonfiguration zu groß ist, um das eigentliche Verhalten des verteilten eingebetteten Systems 106 nicht zu beeinträchtigen, kann eine Transaktion durchgeführt werden, während eine Softwarekomponente nicht läuft (Leerlaufzeit = Periode – WCET). Nach jeder Transaktion kann das verteilte eingebettete System 106 fehlerfrei arbeiten. Tritt während der Durchführung einer Transaktion ein Fehler auf, kann ein Rollback (dt. Zurückrollen) der Transaktion durchgeführt werden (d. h. eventuell schon auf der Ziel-Hardwareplattform 104_2 befindliche Daten werden wieder gelöscht) und das verteilte eingebettete System 106 befindet sich wiederum in einem stabilen Zustand Zudem kämmen im Ablaufplan der Steuervorrichtung 118 auch Prioritäten von Softwarekomponenten berücksichtigt werden. Eine Transaktion kann dabei den sogenannten ACID-Kriterien genügen: Atomarität (engl. atomicity), Konsistenz (engl. consistency), Isolation (engl. isolation) und Dauerhaftigkeit (engl. durability).Furthermore, the control device 118 decompose the runtime reconfiguration into individual transactions, each transaction involving the migration of at least one software component. If the migration of a software component violates dependencies (eg functional or non-functional dependencies) to another software component, then these software components can be migrated in one transaction. The control device 118 can create a schedule that determines the order in which each transaction is performed. It would be desirable if the distributed embedded system 106 after each transaction is again in a stable, valid state, in which no requirements / restrictions are violated. This decomposes the total time of reconfiguration into smaller parts. While the duration of the reconfiguration is too great, the actual behavior of the distributed embedded system 106 not affecting a transaction can be performed while a software component is not running (idle time = period - WCET). After each transaction, the distributed embedded system 106 work without errors. If an error occurs during the execution of a transaction, the transaction may be rolled back (ie possibly already on the target hardware platform) 104_2 data is deleted again) and the distributed embedded system 106 is again in a stable state In addition comb in the flowchart of the control device 118 also priorities of software components are considered. A transaction can meet the so-called ACID criteria: atomicity, consistency, isolation, and durability.

Im Anschluss an die Aufteilung der Rekonfiguration in einzelne Transaktionen kann die Steuervorrichtung 118 die Transaktionen gemäß der geplanten Reihenfolge im Ablaufplan anstoßen. Dabei kann eine Transaktion nur dann durchgeführt werden, wenn bestimmte Anforderungen erfüllt werden. Zum einen wäre es vorteilhaft, genügend Bandbreite des Kommunikationsnetzwerks 109 zur Verfügung zu stellen, um die erforderlichen Daten von der bisherigen Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 zu übertragen, ohne dass eine Kommunikation der anderen Softwarekomponenten in dem verteilten eingebetteten System 106 gestört wird. Zum anderen wäre es von Vorteil, wenn die Migration nicht länger dauert als die Periodendauer der Softwarekomponente abzüglich ihrer WCET (Migrationszeit ≤ Leerlaufzeit = Periode – WCET) auf der bisherigen Hardwareplattform 104_1. Die Steuervorrichtung 118 kann dabei ermitteln, ob die Anforderungen erfüllt werden bevor eine Transaktion gestartet wird. Falls eine der Anforderungen nicht eingehalten werden kann, kann mit der Durchführung der Transaktion gewartet oder die geplante Reihenfolge geändert werden.Following the division of the reconfiguration into individual transactions, the control device 118 start the transactions according to the planned order in the schedule. A transaction can only be carried out if certain requirements are met. First, it would be advantageous enough bandwidth of the communication network 109 to provide the required data from the previous hardware platform 104_1 on the target hardware platform 104_2 without communicating the other software components in the distributed embedded system 106 is disturbed. On the other hand, it would be an advantage if the migration does not take longer than the period of the software component minus its WCET (migration time ≤ idle time = period - WCET) on the previous hardware platform 104_1 , The control device 118 can determine whether the requirements are fulfilled before a transaction is started. If one of the requirements can not be met, the transaction can be waited for or the planned order can be changed.

Um eine Transaktion auszuführen, kann die Steuervorrichtung 118 zunächst alle an der Transaktion beteiligten Komponenten (Softwarekomponente 102, Hardwareplattform 104_1 und Ziel-Hardwareplattform 108) synchronisieren. Der aktuelle Kontext der zu migrierenden Softwarekomponente 102 kann dabei gesichert werden. Auf der Hardwareplattform 1041, die Ausgangspunkt für die Migration ist, kann der Datentransfer vorbereitet werden. Parallel kann die Ziel-Hardwareplattform 104_2, die Ziel der Migration ist, auf den Empfang der Migrationsdaten vorbereitet werden, indem ein entsprechender Prozess auf der Ziel-Hardwareplattform 104_2 gestartet wird. Anschließend kann der Transfer des gesicherten Kontext und eventuell des Programmcodes der zu migrierenden Softwarekomponente 102 angestoßen werden.To execute a transaction, the control device 118 First, all components involved in the transaction (software component 102 , Hardware platform 104_1 and target hardware platform 108 ) synchronize. The current context of the software component to be migrated 102 can be secured. On the hardware platform 1041 , which is the starting point for the migration, the data transfer can be prepared. In parallel, the target hardware platform 104_2 The goal of the migration is to be prepared to receive the migration data by completing an appropriate process on the target hardware platform 104_2 is started. Subsequently, the transfer of the saved context and possibly the program code of the software component to be migrated 102 be triggered.

Während der Dauer der Transaktion kann die Steuervorrichtung 118 den Prozess überwachen. Tritt ein Fehler auf, kann die entsprechende Transaktion abgebrochen und bereits migrierte Daten auf der Ziel-Hardwareplattform 104_2 gelöscht werden. Das verteilte eingebettete System 106 bleibt bis auf Weiteres in einem stabilen Zustand. Erst wenn der Datentransfer erfolgreich abgeschlossen ist, die Steuervorrichtung 118 die Softwarekomponente 102 auf der Ziel-Hardwareplattform 104_2 aktiviert und die Softwarekomponente 102 auf der Hardwareplattform 104_1 deaktiviert hat, ist die entsprechende Transaktion beendet. Sollen in einer Transaktion mehrere Softwarekomponenten simultan migriert werden, ist die Transaktion erst abgeschlossen, wenn der Prozess bzw. die Migration für alle Softwarekomponenten erfolgreich durchgeführt wurde. Die Steuervorrichtung 118 kann nun die nächste Transaktion durchführen.During the duration of the transaction, the control device 118 monitor the process. If an error occurs, the corresponding transaction can be aborted and data already migrated to the target hardware platform 104_2 to be deleted. The distributed embedded system 106 remains in stable condition until further notice. Only when the data transfer is successfully completed, the control device 118 the software component 102 on the target hardware platform 104_2 activated and the software component 102 on the hardware platform 104_1 disabled, the corresponding transaction is completed. If several software components are to be migrated simultaneously in one transaction, the transaction is not completed until the process or migration has been successfully completed for all software components. The control device 118 can now perform the next transaction.

Im Folgenden soll anhand eines Ausführungsbeispiels der einfachste Fall einer Laufzeitrekonfiguration beschrieben werden, bei dem nur eine Softwarekomponente 102 von einer Hardwareplattform 104_1 auf eine Ziel-Hardwareplattform 1042 migriert wird.In the following, the simplest case of a runtime reconfiguration will be described with reference to an exemplary embodiment, in which only one software component 102 from a hardware platform 104_1 on a target hardware platform 1042 is migrated.

3 zeigt ein Blockschaltbild des verteilten eingebetteten Systems 106 sowie ein Flussdiagramm der Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Steuervorrichtung ist dabei über das Kommunikationsnetzwerk 109 mit der Hardwareplattform 104_1 und der Ziel-Hardwareplattform 104_2 vernetzt, so dass diese das erfindungsgemäße Verfahren 100 durchführen können. 3 shows a block diagram of the distributed embedded system 106 and a flow chart of the migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 according to an embodiment of the present invention. The control device is via the communication network 109 with the hardware platform 104_1 and the target hardware platform 104_2 crosslinked, so that these the inventive method 100 can perform.

Wie aus dem in 3 gezeigtem Flussdiagramm hervorgeht, kann die Steuervorrichtung 118 in einem ersten Schritt 120 ermitteln, ob die Softwarekomponente 102 von einer anderen Softwarekomponente abhängig ist. Anschließend kann die Steuervorrichtung 118 in einem zweiten Schritt 122 eine Information über verfügbare Ressourcen für die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 und der Ziel-Hardwareplattform 104_2 einholen. Informationen über erforderlichen Ressourcen (z. B. Laufzeitanforderungen) für die Migration kann die Steuervorrichtung in einem dritten Schritt 124 direkt von der Softwarekomponente 102 einholen. Daraufhin kann die Steuervorrichtung 118 in einem vierten Schritt 126 ermitteln, ob die Ressourcenanforderungen für die Migration der Softwarekomponente 102 erfüllt werden. Der Zeitpunkt, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 verfügbar sind, kann von der Steuervorrichtung 118 in einem fünften Schritt 128 ermittelt werden.As from the in 3 shown flowchart, the control device 118 in a first step 120 determine if the software component 102 depends on another software component. Subsequently, the control device 118 in a second step 122 Information about available resources for the migration of the software component 102 from the hardware platform 104_1 and the target hardware platform 104_2 seek. Information about required resources (for example, runtime requirements) for the migration, the control device in a third step 124 directly from the software component 102 seek. Thereupon, the control device 118 in a fourth step 126 Determine if the resource requirements for the migration of the software component 102 be fulfilled. The time at which the identified resources for the migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 can be available from the control device 118 in a fifth step 128 be determined.

In einem sechsten Schritt 130 löst die Steuervorrichtung 118 die Migration der Softwarekomponente 102 zu dem ermittelten Zeitpunkt aus. Die physikalische Migration der Softwarekomponente 102 von der Hardwareplattform 104_1 auf die Ziel-Hardwareplattform 104_2 erfolgt daraufhin in einem siebten Schritt 132. In einem achten Schritt 134 kann die Steuervorrichtung 118 ermitteln, ob der Datentransfer abgeschlossen ist, wobei die Steuervorrichtung 118 in einem neunten Schritt 136 die Softwarekomponente 102 auf der Ziel-Hardwareplattform aktivieren und in einem zehnten Schritt 138 die Softwarekomponente 102 auf der Hardwareplattform deaktivieren kann, falls der Datentransfer erfolgreich abgeschlossen wurde. Die Migrationszeit erstreckt sich dabei von dem Zeitpunkt, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente 102 verfügbar sind, bis zum Abschluss der Migration durch das deaktivieren der Softwarekomponente 102 auf der Hardwareplattform 104_1. Die Migrationszeit liegt dabei innerhalb der Leerlaufzeit der Softwarekomponente 102 (Migrationszeit ≤ Leerlaufzeit = Periode – WCET).In a sixth step 130 triggers the control device 118 the migration of the software component 102 at the time determined. The physical migration of the software component 102 from the hardware platform 104_1 on the target hardware platform 104_2 then takes place in a seventh step 132 , In an eighth step 134 can the control device 118 determine whether the data transfer is complete, the control device 118 in a ninth step 136 the software component 102 on the target hardware platform and in a tenth step 138 the software component 102 on the hardware platform, if the data transfer was completed successfully. The migration time extends from the time at which the determined resources for the migration of the software component 102 are available until the migration is complete by disabling the software component 102 on the hardware platform 104_1 , The migration time lies within the idle time of the software component 102 (Migration time ≤ idle time = period - WCET).

Ferner kann auf der Steuervorrichtung 118 ein Programmcode zur Durchführung des Erfindungsgemäßen Verfahrens 100 ausgeführt werden. Im Folgenden soll daher ein Ausführungsbeispiel eines Programmcodes für die Laufzeitrekonfiguration eines verteilten eingebetteten Systems 106 aufgezeigt werden.Further, on the control device 118 a program code for carrying out the method according to the invention 100 be executed. In the following, therefore, an embodiment of a program code for the runtime reconfiguration of a distributed embedded system 106 be shown.

Anforderung: Rekonfiguration = Satz von Migrationen M Requirement: Reconfiguration = set of migrations M

Algorithmus:

Figure 00140001
Algorithm:
Figure 00140001

Nachfolgend soll ein weiteres Ausführungsbeispiel einer Laufzeitrekonfiguration eines verteilten eingebetteten Systems 106 beschrieben werden, bei dem eine aktuelle Zuordnung von Softwarekomponenten zu Hardwareplattformen in eine neue Zuordnung von Softwarekomponenten zu Hardwareplattformen überführt wird.The following is another embodiment of a runtime reconfiguration of a distributed embedded system 106 described in which a current assignment of software components to hardware platforms is converted into a new assignment of software components to hardware platforms.

4a zeigt ein Blockschaltbild eines verteilten eingebetteten Systems 106 vor der Laufzeitrekonfiguration, während 4b ein Blockschaltbild des verteilten eingebetteten Systems 106 nach der Laufzeitrekonfiguration gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt Das in den 4a und 4b gezeigte verteilte eingebetteten Systems 106 weist beispielhaft drei Hardwareplattformen 104_1 bis 104_3 auf. Die nachfolgende Beschreibung ist natürlich auch auf ein verteiltes eingebettetes System 106 mit einer viel höheren Anzahl n von Hardwareplattformen 104_1 bis 104_n übertragbar, wobei n eine natürliche Zahl größer gleich zwei ist (n ≥ 2). Ferner können auf den n Hardwareplattformen bis zu m Softwarekomponenten 102_1 bis 102_m ausgeführt werden, wobei m eine natürliche Zahl ist. 4a shows a block diagram of a distributed embedded system 106 before the runtime reconfiguration while 4b a block diagram of the distributed embedded system 106 after the time-of-flight reconfiguration according to an embodiment of the present invention, FIG 4a and 4b shown distributed embedded system 106 exemplifies three hardware platforms 104_1 to 104_3 on. The following description is of course also for a distributed embedded system 106 with a much higher number n of hardware platforms 104_1 to 104_N transferable, where n is a natural number greater than or equal to two (n ≥ 2). Furthermore, up to m software components can be used on the n hardware platforms 102_1 to 102_m where m is a natural number.

Vor der Laufzeitrekonfiguration sind eine erste Softwarekomponente 102_1, eine zweite Softwarekomponente 102_2 und eine dritte Softwarekomponente 102_3 der ersten Hardwareplattform 104_1 zugeordnet, eine vierte Softwarekomponente 102_4, eine fünfte Softwarekomponente 12_5 und eine sechste Softwarekomponente 102_6 sind der zweiten Hardwareplattform 104_2 zugeordnet, und eine siebte Softwarekomponente 102_7 und eine achte Softwarekomponente 102_8 sind der dritten Hardwareplattform 104_3 zugeordnet. Before the runtime reconfiguration are a first software component 102_1 , a second software component 102_2 and a third software component 102_3 the first hardware platform 104_1 assigned, a fourth software component 102_4 , a fifth software component 12_5 and a sixth software component 102_6 are the second hardware platform 104_2 assigned, and a seventh software component 102_7 and an eighth software component 102_8 are the third hardware platform 104_3 assigned.

Nach der Laufzeitrekonfiguration sind die zweite Softwarekomponente 102_2, die fünfte Softwarekomponente 102_5 und die sechste Softwarekomponente 102_6 der ersten Hardwareplattform 104_1 zugeordnet, die dritte Softwarekomponente 102_3 und die achte Softwarekomponente 102_8 sind der zweiten Hardwareplattform 104_2 zugeordnet, und die erste Softwarekomponente 102_1, die vierte Softwarekomponente 102_4 und die siebte Softwarekomponente 102_7 sind der dritten Hardwareplattform 104_3 zugeordnet.After the runtime reconfiguration are the second software component 102_2 , the fifth software component 102_5 and the sixth software component 102_6 the first hardware platform 104_1 assigned, the third software component 102_3 and the eighth software component 102_8 are the second hardware platform 104_2 assigned, and the first software component 102_1 , the fourth software component 102_4 and the seventh software component 102_7 are the third hardware platform 104_3 assigned.

Wie in den 4a und 4b gezeigt, wird bei der Laufzeitrekonfiguration eines verteilten eingebetteten Systems 106 eine aktuelle Zuordnung von Softwarekomponenten 102_1 bis 102_m (m = 8) zu Hardwareplattformen 104_1 bis 104_n (n = 3) in eine neue Zuordnung von Softwarekomponenten 102_1 bis 102_m (m = 8) zu Hardwareplattformen 104_1 bis 104_n (n = 3) überführt, wobei Softwarekomponenten 102_1 bis 102_m (m = 8) auf andere Hardwareplattformen 104_1 bis 104_n (n = 3) migriert werden. Bei der Rekonfiguration des verteilten eingebetteten Systems 106 wäre es wünschenswert, wenn bestimmte Anforderungen/Binschränkungen eingehalten werden, um das Verhalten anderer Softwarekomponenten 102_1 bis 102_m (m = 8) durch die Rekonfiguration nicht negativ zu beeinflussen, zumal die in dem verteilten eingebetteten Systemen 106 zur Verfügung stehenden Ressourcen knapp sind.As in the 4a and 4b is shown during runtime reconfiguration of a distributed embedded system 106 a current assignment of software components 102_1 to 102_m (m = 8) to hardware platforms 104_1 to 104_N (n = 3) in a new assignment of software components 102_1 to 102_m (m = 8) to hardware platforms 104_1 to 104_N (n = 3), using software components 102_1 to 102_m (m = 8) on other hardware platforms 104_1 to 104_N (n = 3) are migrated. When reconfiguring the distributed embedded system 106 it would be desirable if certain requirements / constraints were met for the behavior of other software components 102_1 to 102_m (m = 8) can not be adversely affected by the reconfiguration, especially as the embedded systems in the distributed 106 available resources are scarce.

Bei der Laufzeitrekonfiguration des verteilten eingebetteten Systems 106 können eine Reihe von Anforderungen eingehalten werden, um das Verhalten des verteilten eingebetteten Systems 106 durch die Laufzeitrekonfiguration nicht negativ zu beeinflussen. Erstens wäre es von Vorteil, wenn die Hardwareplattformen 104_1 bis 104_n (n = 3), die an der Migration beteiligt sind, über genügend verfügbare Ressourcen verfügen, um den Migrationsprozess durchführen zu können und die Ausführung anderer Softwarekomponenten 102_1 bis 102_m (m = 8) nicht zu verzögern. Zweitens wäre es wünschenswert, wenn genügend Bandbreite des Kommunikationsnetzwerks 109 zur Verfügung steht, um die für die Migration erforderlichen Daten zwischen den Hardwareplattformen 104_1 bis 104_n (n = 3) zu übertragen, ohne dass eine Kommunikation anderer Softwarekomponenten 102_1 bis 102_m (m = 8) in dem verteilten eingebetteten System 106 gestört wird. Drittens ändern sich durch die Migration die Mengen von Softwarekomponenten 102_1 bis 102_m (m = 8) auf den Hardwareplattformen 104_1 bis 104_n (n = 3), wobei es von Vorteil wäre sicherzustellen, dass trotz dieser Veränderungen alle Softwarekomponenten 102_1 bis 102_m (m = 8) lanffähig sind und keine Zeitgrenze (engl. deadline) im verteilten eingebetteten System 106 verletzt wird. Viertens wäre es erstrebenswert, wenn durch die Migration einer Softwarekomponente (z. B. 102_1) keine Abhängigkeiten (z. B. Ressourcenabhängigkeiten oder zeitliche Abhängigkeiten) zu anderen Softwarekomponenten (z. B. 102_2 bis 102_8) verletzt werden. Fünftens kann die Dauer der Migration zeitlich begrenzt sein, falls es erforderlich sein sollte, dass eine Softwarekomponente (z. B. 102_1) nach einer bestimmten Zeit wieder zur Verfügung steht. Dabei wäre es von Vorteil, wenn diese zeitliche Beschränkung bei der Rekonfiguration eingehalten wird, um das Verhalten des verteilten eingebetteten Systems 106 nicht negativ zu beeinflussen.During runtime reconfiguration of the distributed embedded system 106 A number of requirements can be met to determine the behavior of the distributed embedded system 106 not negatively affected by the runtime reconfiguration. First, it would be beneficial if the hardware platforms 104_1 to 104_N (n = 3) who are involved in the migration, have enough resources available to complete the migration process, and to run other software components 102_1 to 102_m (m = 8) not to delay. Second, it would be desirable if enough bandwidth of the communication network 109 is available to the data required for the migration between the hardware platforms 104_1 to 104_N (n = 3) without any communication of other software components 102_1 to 102_m (m = 8) in the distributed embedded system 106 is disturbed. Third, migrations change the volumes of software components 102_1 to 102_m (m = 8) on the hardware platforms 104_1 to 104_N (n = 3), whereby it would be beneficial to ensure that, despite these changes, all software components 102_1 to 102_m (m = 8) are lakeable and no deadline in the distributed embedded system 106 get hurt. Fourth, it would be desirable if, by migrating a software component (e.g. 102_1 ) no dependencies (eg resource dependencies or temporal dependencies) to other software components (eg 102_2 to 102_8 ) get hurt. Fifth, the duration of the migration may be limited in time if it is required that a software component (e.g. 102_1 ) is available again after a certain time. It would be advantageous if this time limit is met in the reconfiguration to the behavior of the distributed embedded system 106 not to adversely affect.

Das erfindungsgemäße Verfahren 100 ermöglicht es, eine Laufzeitrekonfiguration des verteilten eingebetteten Systems 106 durchzuführen, ohne das eigentliche Verhalten des verteilten eingebetteten Systems 106 durch die Migrationen zu beeinträchtigen und die oben aufgeführten Anforderungen zu verletzen. Ferner entsteht durch das erfindungsgemäße Verfahren 100 keine Blackout-Zeit (engl. blackout-time) der zu migrierenden Softwarekomponenten 102_1 bis 102_m (m = 8). Darüber hinaus kommt das erfindungsgemäße Verfahren 100 ohne zwei gleichzeitig aktive Softwarekomponenten (z. B. 102_1) aus, wodurch ein zusätzlicher Ressourcenverbrauch vermindert bzw. minimiert werden kann. Das erfindungsgemäße Verfahren 100 ermöglicht es somit, eine Laufzeitrekonfiguration von Softwarekomponenten 102_1 bis 102_m (m = 8) in einem verteilten eingebetteten System 106 durchzuführen, ohne dass eine Softwarekomponente (z. B. 102_1) auf zwei Hardwareplattformen (z. B. 104_1 und 104_3) parallel ausgeführt wird und ohne dass eine Blackout-Zeit bei der Migration entsteht.The inventive method 100 allows a runtime reconfiguration of the distributed embedded system 106 without the actual behavior of the distributed embedded system 106 by affecting the migrations and violating the requirements listed above. Furthermore, arises by the method according to the invention 100 no blackout time of the software components to be migrated 102_1 to 102_m (m = 8). In addition, the method according to the invention 100 without two simultaneously active software components (eg 102_1 ), whereby an additional resource consumption can be reduced or minimized. The inventive method 100 thus allows a runtime reconfiguration of software components 102_1 to 102_m (m = 8) in a distributed embedded system 106 without having a software component (eg 102_1 ) on two hardware platforms (eg 104_1 and 104_3 ) is executed in parallel and without creating a blackout time during the migration.

Bei Ausführungsbeispielen kann eine Analyse des verteilten eingebetteten Systems 106 und die Durchführung/Überwachung der Laufzeitrekonfiguration durch die Steuervorrichtung 118 erfolgen. Das Verfahren 100 zur zuverlässigen Laufzeitrekonfiguration in einem verteilten eingebetteten System 106 kann dabei folgende Schritte aufweisen. In einem ersten Schritt kann der aktuelle Zustand des verteilten eingebetteten Systems 106 durch die Steuervorrichtung 118 analysiert werden. Dabei können benötigte Ressourcen für die Laufzeitrekonfiguration und die verfügbaren Ressourcen für die Laufzeitrekonfiguration bestimmt bzw. ermittelt werden. In einem zweiten Schritt kann die Laufzeitrekonfiguration in „atomare” Transaktionen zerlegt werden, wobei jede Transaktion die Migration einer oder mehrerer Softwarekomponenten (z. B. 102_1) umfasst. In einem dritten Schritt können die einzelnen Transaktionen (sequenziell) durchgeführt werden. Dabei kann zunächst ein geeigneter Startzeitpunkt für die Migration bestimmt werden. Ferner können die Komponenten (z. B. Softwarekomponenten 102_1 bis 102_m (m = 8) und Hardwareplattform 104_1 bis 104_n (n = 3)), die an der Migration beteiligt sind, synchronisiert werden. Anschließend kann ein Transfer der Softwarekomponente(n) (z. B. 102_1) erfolgen. In einem vierten Schritt kann die Transaktion überwacht werden, wobei in einem Fehlerfall ein stabiler Zustand des verteilten eingebetteten Systems 106 wiederhergestellt werden kann.In embodiments, an analysis of the distributed embedded system 106 and the execution / monitoring of the runtime reconfiguration by the control device 118 respectively. The procedure 100 for reliable runtime reconfiguration in a distributed embedded system 106 can have the following steps. In a first step, the current state of the distributed embedded system 106 through the control device 118 to be analyzed. The required resources for the runtime reconfiguration and the available resources for the runtime reconfiguration can be determined or determined. In a second step, the runtime reconfiguration can be decomposed into "atomic" transactions, where each transaction involves the migration of one or more software components (e.g. 102_1 ). In a third step, the individual transactions can be carried out (sequentially). In this case, first of all a suitable starting time for the migration can be determined. Furthermore, the components (eg software components 102_1 to 102_m (m = 8) and hardware platform 104_1 to 104_N (n = 3)) involved in the migration are synchronized. Subsequently, a transfer of the software component (s) (eg 102_1 ) respectively. In a fourth step, the transaction can be monitored, and in the event of an error, a stable state of the distributed embedded system 106 can be restored.

Bei der Laufzeitrekonfiguration des in den 4a und 4b gezeigten verteilten eingebetteten Systems 106 wird die erste Softwarekomponente 102_1 von der ersten Hardwareplattform 104_1 auf die dritte (Ziel-)Hardwareplattform 104_3 migriert Die dritte Softwarekomponente 102_3 wird von der ersten Hardwareplattform 104_1 auf die zweite (Ziel-)Hardwareplattform 104_2 migriert Die vierte Softwarekomponente 102_4 wird von der zweiten Hardwareplattform 104_2 auf die dritte (Ziel-)Hardwareplattform 104_3 migriert. Die fünfte und sechste Softwarekomponente 102_5 und 102_6 werden von der zweiten Hardwareplattform 104_2 auf die erste (Ziel-)Hardwareplattform 104_1 migriert. Dabei kann im Folgenden beispielhaft davon ausgegangen werden, dass die Prioritäten der Softwarekomponenten 102_1 bis 102_8 durch die Nummerierung der Softwarekomponenten 102_1 bis 102_8 vorgegeben ist, wobei die Softwarekomponente 102_1 die höchste Priorität und die Softwarekomponente 102_8 die niedrigste Priorität aufweist.In the runtime reconfiguration of the in the 4a and 4b shown distributed embedded system 106 becomes the first software component 102_1 from the first hardware platform 104_1 on the third (target) hardware platform 104_3 migrated The third software component 102_3 is from the first hardware platform 104_1 on the second (target) hardware platform 104_2 migrated The fourth software component 102_4 is from the second hardware platform 104_2 on the third (target) hardware platform 104_3 migrated. The fifth and sixth software components 102_5 and 102_6 be from the second hardware platform 104_2 on the first (target) hardware platform 104_1 migrated. In the following, it can be assumed by way of example that the priorities of the software components 102_1 to 102_8 by the numbering of the software components 102_1 to 102_8 is predetermined, wherein the software component 102_1 the highest priority and the software component 102_8 has the lowest priority.

Bei der Laufzeitrekonfiguration wird daher zunächst die erste Softwarekomponente 102_1 von der ersten Hardwareplattform 104_1 auf die dritte Hardwareplattform 104_3 migriert, wobei das erfindungsgemäße Verfahren 100 angewendet werden kann. In dem ersten Schritt 110 werden die Laufzeitanforderungen der ersten Softwarekomponente 102_1 ermittelt, Hierzu zählen Abhängigkeiten der ersten Softwarekomponente 102_1 zu anderen Softwarekomponenten auf der ersten Hardwareplattform 1041, wie z. B. Abhängigkeiten der ersten Softwarekomponente 102_1 zu der zweiten Softwarekomponente 102_2 und der dritten Softwarekomponente 102_3. Ferner kann die Periode und die WCET der ersten Softwarekomponente 102_1 ermittelt werden. Im zweiten Schritt 112 werden die Ressourcen ermittelt, die für die Migration der ersten Softwarekomponente 102_1 unter Einhaltung der ermittelten Laufzeitanforderungen erforderlich sind. Im dritten Schritt 114 wird ein Zeitpunkt ermittelt, zu dem die ermittelten Ressourcen für die Migration der ersten Softwarekomponente 102_1 von der ersten Hardwareplattform 104_1 auf die dritte Hardwareplattform 104_3 verfügbar sind. Im vierten Schritt 116 wird die erste Softwarekomponente 102_1 von der ersten Hardwareplattform 104_1 auf die dritte Hardwareplattform 104_3 zu dem ermittelten Zeitpunkt migriert. Weil in diesem Ausführungsbeispiel die erste Softwarekomponente 102_1 nicht von der zweiten oder dritten Softwarekomponenten 102_2 oder 102_3 abhängig ist, kann die Softwarekomponente 102_1 unabhängig von der zweiten oder dritten Softwarekomponenten 102_2 oder 1023 migriert werden. Das erfindungsgemäße Verfahren 100 ermöglicht die Migration der ersten Softwarekomponente 102_1 zur Laufzeit, so dass das Verhalten des verteilten eingebetteten Systems 106 durch die Migration nicht beeinflusst wird. Die erste Softwarekomponente 102_1 steht sowohl vor als auch nach der Migration ohne eine durch die Migration eingeführte Blackout-Zeit zur Verfügung, so dass das verteilte eingebettete System nicht verzögert wird Für die Migration der anderen Softwarekomponenten 102_3, 102_4 bis 102_6 und 102_8 kann ebenfalls das erfindungsgemäße Verfahren 100 angewendet werden, so dass im Folgenden darauf verzichtet wird die Migration der anderen Softwarekomponenten 102_3, 102_4 bis 102_6 und 102_8 näher zu erläutern.During runtime reconfiguration, therefore, the first software component becomes the first 102_1 from the first hardware platform 104_1 on the third hardware platform 104_3 migrated, wherein the inventive method 100 can be applied. In the first step 110 become the runtime requirements of the first software component 102_1 This includes dependencies on the first software component 102_1 to other software components on the first hardware platform 1041 , such as B. Dependencies of the first software component 102_1 to the second software component 102_2 and the third software component 102_3 , Furthermore, the period and WCET of the first software component 102_1 be determined. At the second step 112 The resources needed to migrate the first software component are determined 102_1 required in accordance with the established runtime requirements. In the third step 114 A time is determined at which the determined resources for the migration of the first software component 102_1 from the first hardware platform 104_1 on the third hardware platform 104_3 Are available. In the fourth step 116 becomes the first software component 102_1 from the first hardware platform 104_1 on the third hardware platform 104_3 migrated to the determined time. Because in this embodiment, the first software component 102_1 not from the second or third software components 102_2 or 102_3 depends on the software component 102_1 regardless of the second or third software components 102_2 or 1023 be migrated. The inventive method 100 Allows the migration of the first software component 102_1 at run time, allowing the behavior of the distributed embedded system 106 is not affected by the migration. The first software component 102_1 is available both before and after the migration without a blackout time introduced by the migration, so that the distributed embedded system is not delayed For the migration of the other software components 102_3 . 102_4 to 102_6 and 102_8 can also the inventive method 100 be applied so that the following is dispensed with the migration of the other software components 102_3 . 102_4 to 102_6 and 102_8 to explain in more detail.

Bei der Migration einer nicht zeitkritischen Softwarekomponente. (z. B. 102_3), die nicht nach einer vordefinierten Zeitspanne im verteilten eingebetteten System 106 wieder zur Verfügung stehen muss, kann die Schonung der vorhandenen Ressourcen des verteilten eingebetteten Systems 106 sowie die Vermeidung von Beeinflussungen der Softwarekomponenten 102_1 bis 102_m (m = 8) durch die Laufzeitrekonfiguration im Fokus stehen. Dabei wäre es wünschenswert weder Nachrichten auf dem Netzwerkbus bzw. Kommunikationsnetzwerk 109 durch die Übertragung der zur Migration notwendigen Daten zu verzögern, noch andere Softwarekomponenten 102_1 bis 102_m (m = 8) auf den an der Migration beteiligten Hardwareplattformen 104_1 bis 104_n durch den Migrationsprozess zu beeinträchtigen (beim Zugriff auf Ressourcen oder zeitlich).When migrating a non-time-critical software component. (eg 102_3 ), which are not after a predefined period of time in the distributed embedded system 106 It may be necessary to conserve the existing resources of the distributed embedded system 106 as well as the avoidance of influences of the software components 102_1 to 102_m (m = 8) are the focus of the runtime reconfiguration. It would be desirable neither messages on the network bus or communication network 109 delaying the transfer of data required for migration, other software components 102_1 to 102_m (m = 8) on the hardware platforms involved in the migration 104_1 to 104_N through the migration process (when accessing resources or over time).

Bei der Migration einer zeitkritischen Softwarekomponente (z. B. 102_4) wäre es von Vorteil, wenn diese nach einer vordefinierten Zeitspanne wieder aktiv ist, um das vordefinierte Verhalten des verteilten eingebetteten Systems 106 zu erfüllen. Um zu überprüfen, ob diese zeitliche Bedingung bei der Durchführung der Migration eingehalten werden kann, kann die Steuervorrichtung 118 eine zeitliche Obergrenze der Transaktionsdauer abschätzen. Kann die Migration der entsprechenden Softwarekomponente (z. B. 102_4) auf die neue Hardwareplattform (z. B. 104_3) in der vorgegebenen Zeitdauer erfolgen (beispielsweise durch den Einfluss von „Seiteneffekten” wie einem Gateway), kann die Transaktion durchgeführt werden. Ist dies nicht der Fall, kann die Migration ggf in mehreren Zwischenschritten erfolgen (z. B. Migration der Softwarekomponente zuerst auf eine oder mehrere dritte Hardwareplattformen (z. B. 104_1), bevor die Migration auf die Zielplattform (z. B. 108_3) erfolgt). Bei der Migration einer zeitkritischen Softwarekomponente (z. B. 102_4) wäre es wünschenswert, wenn jeder Zwischenschritt der Migration innerhalb der vorgegebenen Zeitobergrenze (Migrationszeit ≤ Leerlaufzeit = Periode – WCET) erfolgen. Zudem wäre es von Vorteil, wenn sich das verteilte eingebettete System 106 nach jedem der Zwischenschritte wieder in einem stabilen, gültigen Zustand befinden. Jeder Zwischenschritt bewirkt also wiederum eine atomare Transaktion, die den ACID-Kriterien genügen kann. Das heißt aus einer Transaktion werden mehrere Transaktionen erzeugt, um den zeitlichen Vorgaben genügen zu können.During the migration of a time-critical software component (eg 102_4 ), it would be advantageous if it is active again after a predefined period of time to the predefined behavior of the distributed embedded system 106 to fulfill. To check whether this temporal condition can be met in the implementation of the migration, the control device 118 estimate a time limit of the transaction duration. Can migration of the corresponding software component (eg. 102_4 ) on the new hardware platform (eg 104_3 ) in the given time period (for example, due to the influence of "side effects" such as a gateway), the transaction can be performed. Is not this the If necessary, the migration can possibly take place in several intermediate steps (eg migration of the software component first to one or more third hardware platforms (eg. 104_1 ) before migration to the target platform (eg 108_3 ) he follows). During the migration of a time-critical software component (eg 102_4 ), it would be desirable if each intermediate step of the migration took place within the specified upper time limit (migration time ≤ idle time = period - WCET). In addition, it would be beneficial if the distributed embedded system 106 After each of the intermediate steps again in a stable, valid state. Each intermediate step in turn causes an atomic transaction that can satisfy the ACID criteria. This means that several transactions are generated from a transaction in order to be able to meet the time requirements.

Beispielsweise kann, die Migration der vierten Softwarekomponente 102_4 von der zweiten Hardwareplattform 104_2 auf die dritte Hardwareplattform 104_3 kann in eine Mehrzahl von Migrationen aufgeteilt werden, falls die Ressourcen für die Migration der Softwarekomponente 102_4 von der zweiten Hardwareplattform 104_2 auf die dritte Hardwareplattform 104_3 sonst zu keinem Zeitpunkt verfügbar sind. Alternativ kann ein Zeitpunkt ermittelt werden, zu dem die ermittelten Ressourcen für die Migration der vierten Softwarekomponente 102_4 von der zweiten Hardwareplattform 104_2 auf zumindest eine weitere Hardwareplattform (z. B. die erste Hardwareplattform 104_1) des verteilten eingebetteten Systems 106 verfügbar sind, falls die Ressourcen für die Migration der vierten Softwarekomponente 102_4 von der zweiten Hardwareplattform 104_2 auf die dritte Hardwareplattform 104_3 zu keinem Zeitpunkt verfügbar sind. Die Migration der vierten Softwarekomponente 102_4 von der zweiten Hardwareplattform 104_2 auf die zumindest eine weitere Hardwareplattform (z. B. die erste Hardwareplattform 104_1) kann unter Einhaltung der ermittelten Laufzeitanforderungen zu dem ermittelten Zeitpunkt, zu dem die ermittelten Ressourcen für die Migration der vierten Softwarekomponente 102_4 von der zweiten Hardwareplattform 104_2 auf die zumindest eine weitere Hardwareplattform (z. B. die erste Hardwareplattform 104_1) verfügbar sind. Im Anschluss daran kann ein Zeitpunkt ermittelt werden, zu dem die ermittelten Ressourcen für die Migration der vierten Softwarekomponente 102_4 von der zumindest einen weiteren Hardwareplattform (z. B. die erste Hardwareplattform 104_1) auf die dritte Hardwareplattform 104_3 verfügbar sind. Die Migration der vierten Softwarekomponente 102_4 von der zumindest einen weiteren Hardwareplattform (z. B. die erste Hardwareplattform 104_1) auf die dritte Hardwareplattform 104_3 erfolgt unter Einhaltung der ermittelten Laufzeitanforderungen zu dem ermittelten Zeitpunkt, zu dem die ermittelten Ressourcen für die Migration der vierten Softwarekomponente 102_4 von der zumindest einen weiteren Hardwareplattform (z. B. die erste Hardwareplattform 104_1) auf die dritte Hardwareplattform 104_3 verfügbar sind.For example, the migration of the fourth software component 102_4 from the second hardware platform 104_2 on the third hardware platform 104_3 can be split into a plurality of migrations if the resources for the migration of the software component 102_4 from the second hardware platform 104_2 on the third hardware platform 104_3 otherwise available at any time. Alternatively, a time may be determined at which the determined resources for the migration of the fourth software component 102_4 from the second hardware platform 104_2 on at least one other hardware platform (eg the first hardware platform 104_1 ) of the distributed embedded system 106 are available if the resources for the migration of the fourth software component 102_4 from the second hardware platform 104_2 on the third hardware platform 104_3 are not available at any time. The migration of the fourth software component 102_4 from the second hardware platform 104_2 on the at least one other hardware platform (eg the first hardware platform 104_1 ) can, in compliance with the determined runtime requirements at the determined time at which the resources determined for the migration of the fourth software component 102_4 from the second hardware platform 104_2 on the at least one other hardware platform (eg the first hardware platform 104_1 ) Are available. Subsequently, a time can be determined at which the determined resources for the migration of the fourth software component 102_4 from the at least one further hardware platform (eg the first hardware platform 104_1 ) on the third hardware platform 104_3 Are available. The migration of the fourth software component 102_4 from the at least one further hardware platform (eg the first hardware platform 104_1 ) on the third hardware platform 104_3 takes place in compliance with the determined runtime requirements at the determined time at which the determined resources for the migration of the fourth software component 102_4 from the at least one further hardware platform (eg the first hardware platform 104_1 ) on the third hardware platform 104_3 Are available.

In hochdynamischen Systemen treten häufig Änderungen in der Umgebung des Systems auf, die eine Anpassung des Systems erfordern können. So kann es noch während der Rekonfiguration des verteilten eingebetteten Systems 106 zu Änderungen kommen, die zu einer erneuten Rekonfiguration des verteilten eingebetteten Systems 106 führen können. Um nicht erst warten zu müssen bis die vorherige Rekonfiguration komplett abgeschlossen ist (alle Transaktionen durchgeführt wurden), um mit der neuen Rekonfiguration beginnen zu können, kann der aktuelle Zustand des verteilten eingebetteten Systems 106 nicht nur vor Beginn einer Transaktion, sondern nach einer durchgeführten Transaktion durch die Steuervorrichtung 118 analysiert werden So kann die angestrebte Konfiguration des verteilten eingebetteten Systems 106 noch während der Durchführung der Laufzeitrekonfiguration an neue Gegebenheiten (z. B. erneute Änderungen oder Fehler) angepasst werden Dies ermöglicht eine schnelle Reaktion auf häufige Änderungen an der Systemumgebung (oder dem System selbst). Außerdem können mögliche Probleme bei der Durchführung der Rekonfiguration, die sich durch veränderte Systemparameter (oder Fehler im System) ergeben, erkannt und umgangen werden.In highly dynamic systems, changes in the environment of the system often occur which may require adjustment of the system. So it may still be during the reconfiguration of the distributed embedded system 106 Changes occur that lead to a re-configuration of the distributed embedded system 106 being able to lead. In order to not have to wait until the previous reconfiguration is complete (all transactions have been performed) to begin the new reconfiguration, the current state of the distributed embedded system may be present 106 not just before the start of a transaction, but after a transaction has been completed by the controller 118 This may be the intended configuration of the distributed embedded system 106 to be adapted to new conditions (such as renewed changes or errors) during execution of the runtime reconfiguration This enables a quick response to frequent changes to the system environment (or the system itself). In addition, possible problems in performing the reconfiguration resulting from changed system parameters (or errors in the system) can be detected and circumvented.

In komplexen Systemen, die eine Mehrzahl von unabhängigen Teilsystemen (engl. System-of-Systems) aufweisen, können mehrere Migrationen parallel durchgeführt werden Sind diese Migrationen unabhängig, d. h. bedingen sich nicht gegenseitig, kann die Steuervorrichtung verschiedene Transaktionen einer Rekonfiguration parallelisieren Dies reduziert den Overhead (dt. Mehraufwand) der einzelnen Transaktionen in dem verteilten eingebetteten System und erhöht die Geschwindigkeit der Laufzeitrekonfiguration gegenüber der sequenziellen Migration aller Softwarekomponenten. Hierbei könnte es von Vorteil sein, wenn die Steuervorrichtung einen Überblick über das Gesamtsystem hat. Weist dieses eine Mehrzahl von unabhängigen Teilsystemen auf, die jeweils über eine eigene Steuervorrichtung verfügen, kann eine zusätzliche Steuervorrichtung notwendig sein, welche die Steuervorrichtungen der Teilsysteme überwacht und koordiniert.In complex systems that have a plurality of system-of-systems, multiple migrations can be performed in parallel. H. do not interfere with each other, the controller can parallelize various reconfiguration transactions This reduces the overhead (overhead) of the individual transactions in the distributed embedded system and increases the speed of the runtime reconfiguration over the sequential migration of all software components. In this case, it could be advantageous if the control device has an overview of the overall system. If this comprises a plurality of independent subsystems, each having its own control device, an additional control device may be necessary which monitors and coordinates the control devices of the subsystems.

Um die Migration von sicherheits-kritischen Softwarekomponenten (z. B. 102_1) zu einem bestimmten Zeitpunkt zu erzwingen oder die Migrationsdauer zu reduzieren, kann die Steuervorrichtung 118 bestimmte Systemparameter verändern. Durch die Deaktivierung oder Einschränkung (z. B. Reduzierung der CPU-Zeit einer Task) weniger kritischer Softwarekomponenten (z. B. 102_2 bis 102_8), die keine negative Auswirkung auf das Verhalten des eingebetteten Systems 106 haben, können die verfügbaren Ressourcen kurzzeitig erhöht und so die Migration der kritischen Softwarekomponenten (z. B. 102_1) ermöglicht oder beschleunigt werden. Nach der erfolgreichen Migration der entsprechenden Softwarekomponente (z. B. 102_1) können die hierfür deaktivierten bzw. eingeschränkten Softwarekomponenten (z. B. 102_2 bis 102_8) wieder in ihren ursprünglichen Zustand zurückversetzt werden. Hierzu wäre es von Vorteil, wenn der Steuervorrichtung 118 bekannt ist, wie wichtig eine Softwarekomponente 102_1 bis 102_m (m = 8) für das verteilte eingebettete System 106 ist und ob diese gefahrlos deaktiviert werden kann bzw. wie weit die Softwarekomponente 102_1 bis 102_m (m = 8) gefahrlos eingeschränkt werden kann.To migrate security-critical software components (such as 102_1 ) at a certain time or to reduce the migration period, the control device 118 change certain system parameters. By disabling or limiting (for example, reducing the CPU time of a task) to less critical software components (eg 102_2 to 102_8 ), which does not adversely affect the behavior of the embedded system 106 can have available resources for a short time increase migration of critical software components (eg 102_1 ) are enabled or accelerated. After the successful migration of the corresponding software component (eg 102_1 ), the software components deactivated or restricted for this purpose (eg 102_2 to 102_8 ) are returned to their original state. For this purpose, it would be advantageous if the control device 118 It is known how important a software component is 102_1 to 102_m (m = 8) for the distributed embedded system 106 is and whether it can be safely disabled or how far the software component 102_1 to 102_m (m = 8) can be safely restricted.

Beispielsweise können die Ressourcen der zweiten und dritten Softwarekomponenten 102_2 und 102_3 reduziert werden, so dass die ermittelten Ressourcen für die Migration der ersten Softwarekomponente 102_1 von der ersten Hardwareplattform 104_1 auf die dritte Hardwareplattform 104_3 verfügbar sind, falls die ermittelten Ressourcen für die Migration der ersten Softwarekomponente 102_1 von der ersten Hardwareplattform 104_1 auf die dritte Hardwareplattform 104_3 sonst zu keinem Zeitpunkt verfügbar sind.For example, the resources of the second and third software components 102_2 and 102_3 be reduced, so that the resources identified for the migration of the first software component 102_1 from the first hardware platform 104_1 on the third hardware platform 104_3 available, if the determined resources for the migration of the first software component 102_1 from the first hardware platform 104_1 on the third hardware platform 104_3 otherwise available at any time.

Weitere Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf eine Laufzeitrekonfiguration eines verteilten eingebetteten Systems 106 eines Automobils. Die nachfolgenden Betrachtungen sind selbstverständlich in ähnlicher Weise auch auf andere verteilte eingebettete Systeme 106, wie z. B. eines Flugzeugs oder Zuges, anwendbar. Das verteilte eingebettete System 106 eines modernen Straßenfahrzeugs weist ca. 80 Steuergeräte (Hardwareplattformen 104_1 bis 104_n (n = 80)) und ca. 3000 Softwarekomponenten 102_1 bis 102_m (m = 3000) auf. Die Steuergeräte sind dabei zunehmend generisch, so dass diese eine Vielzahl von verschiedenen Aufgaben ausführen können. Die Laufzeitrekonfiguration kann dabei genutzt werden, um das verteilten eingebettete Systems 106 an die Umgebung des Automobils anzupassen. Zum Beispiel wird ein Parkassistent auf der Autobahn bei hohen Geschwindigkeiten oder ein Tempomat bzw. Spurhalteassistent in einem Parkhaus nicht benötigt. Die entsprechenden nicht erforderlichen Softwarekomponenten können dabei auf eine Hardwareplattform migriert werden, die im Anschluss an die Migration deaktiviert werden kann, um Energie zu Sparen. Darüber hinaus können Softwarekomponenten sicherheitsrelevanter Systeme, wie z. B. ABS (ABS: = Antiblockiersystem) oder ESP (ESP = Elektronisches Stabilitätsprogramm), im Falle einer defekten Hardwareplattform auf eine funktionsfähige Hardwareplattform migriert werden.Further embodiments of the present invention relate to a runtime reconfiguration of a distributed embedded system 106 an automobile. Of course, the following considerations are similarly applied to other distributed embedded systems 106 , such as As an aircraft or train, applicable. The distributed embedded system 106 of a modern road vehicle has about 80 ECUs (hardware platforms 104_1 to 104_N (n = 80)) and about 3000 software components 102_1 to 102_m (m = 3000). The controllers are increasingly generic, so that they can perform a variety of different tasks. The runtime reconfiguration can be used to control the distributed embedded system 106 to adapt to the environment of the automobile. For example, parking assist on the highway at high speeds or cruise control in a parking garage is not needed. The corresponding non-essential software components can be migrated to a hardware platform that can be disabled after migration to save energy. In addition, software components of security-relevant systems, such. B. ABS (ABS: = Antilock Braking System) or ESP (ESP = Electronic Stability Program), be migrated in the event of a defective hardware platform on a functioning hardware platform.

Ausführungsbeispiele der vorliegenden Erfindung ermöglichen eine strukturelle Adaption eines verteilten eingebetteten Systems 106 zur Laufzeit, ohne dass durch die Laufzeitrekonfiguration das eigentliche Verhalten des verteilten eingebetteten Systems 106 beeinflusst wird. Dadurch kann das verteilte eingebettete System 106 ohne Beeinträchtigung seiner Funktionalität für die Rekonfiguration an neue Bedingungen angepasst werden. Besonders in sicherheits-kritischen Systemen (z. B. automobiles Bordnetz, Industrieanlagen, Flugzeuge) kann so die Struktur des Softwaresystems adaptiert werden und damit die Robustheit, Zuverlässigkeit und Flexibilität des verteilten eingebetteten Systems 106 verbessert werden.Embodiments of the present invention enable a structural adaptation of a distributed embedded system 106 at runtime, without the runtime reconfiguration the actual behavior of the distributed embedded system 106 being affected. This allows the distributed embedded system 106 be adapted to new conditions without affecting its functionality for reconfiguration. Especially in safety-critical systems (eg automobile electrical system, industrial plants, airplanes), the structure of the software system can be adapted and thus the robustness, reliability and flexibility of the distributed embedded system 106 be improved.

Ausführungsbeispiele der vorliegenden Erfindung ermöglichen die strukturelle Adaption eines verteilten eingebetteten Systems 106. Da die Rekonfiguration zur Laufzeit des verteilten eingebetteten Systems 106 durchgeführt und das eigentliche Systemverhalten nicht durch die Rekonfiguration selbst beeinflusst wird, ermöglicht das erfindungsgemäße Verfahren 100 die Umsetzung von Adaption in sicherheitsrelevanten Systemen, die auf verteilten eingebetteten Systemen 106 beruhen (z. B. automobiles Bordnetz, Industrieanlagen, Flugzeuge, etc.).Embodiments of the present invention enable the structural adaptation of a distributed embedded system 106 , Because the reconfiguration at runtime of the distributed embedded system 106 performed and the actual system behavior is not affected by the reconfiguration itself, allows the inventive method 100 the implementation of adaptation in safety-relevant systems, on distributed embedded systems 106 (eg automotive on-board network, industrial plants, aircraft, etc.).

Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle der Verfahrensschritte können durch einen Hardware-Apparat (oder unter Verwendung eine Hardware-Apparats), wie zum Beispiel einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung, durchgeführt werden. Bei einigen Ausführungsbeispielen können einige oder mehrere der wichtigsten Verfahrensschritte durch einen solchen Apparat ausgeführt werden.Although some aspects have been described in the context of a device, it will be understood that these aspects also constitute a description of the corresponding method, so that a block or a component of a device is also to be understood as a corresponding method step or as a feature of a method step. Similarly, aspects described in connection with or as a method step also represent a description of a corresponding block or detail or feature of a corresponding device. Some or all of the method steps may be performed by a hardware device (or using a hardware device). Apparatus), such as a microprocessor, a programmable computer or an electronic circuit. In some embodiments, some or more of the most important method steps may be performed by such an apparatus.

Je nach bestimmten Impiementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichen durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das digitale Speichermedium computerlesbar sein.Depending on certain implementation requirements, embodiments of the invention may be implemented in hardware or in software. The implementation may be performed using a digital storage medium, such as a floppy disk, a DVD, a Blu-ray Disc, a CD, a ROM, a PROM, an EPROM, an EEPROM or FLASH memory, a hard disk or other magnetic disk or optical spokes are performed on the electronically readable control signals are stored, which can cooperate with a programmable computer system or cooperate such that the respective method is performed. Therefore, the digital storage medium can be computer readable.

Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.Thus, some embodiments according to the invention include a data carrier having electronically readable control signals capable of interacting with a programmable computer system such that one of the methods described herein is performed.

Allgemein können Ausführugsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.In general, embodiments of the present invention may be implemented as a computer program product having a program code, wherein the program code is operative to perform one of the methods when the computer program product runs on a computer. The program code can also be stored, for example, on a machine-readable carrier.

Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist. Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft.Other embodiments include the computer program for performing any of the methods described herein, wherein the computer program is stored on a machine-readable medium. In other words, an embodiment of the method according to the invention is thus a computer program which has a program code for performing one of the methods described herein when the computer program runs on a computer.

Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.A further embodiment of the inventive method is thus a data carrier (or a digital storage medium or a computer-readable medium) on which the computer program is recorded for carrying out one of the methods described herein.

Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, (aber eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.A further embodiment of the method according to the invention is thus a data stream or a sequence of signals, which represent the computer program for performing one of the methods described herein. The data stream or the sequence of signals may be configured, for example, to be transferred (but a data communication connection, for example via the Internet.

Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.Another embodiment includes a processing device, such as a computer or a programmable logic device, that is configured or adapted to perform one of the methods described herein.

Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist Ein weiteres Ausführungsbeispiel gemäß der Erfindung umfasst eine Vorrichtung oder ein System, die bzw. das ausgelegt ist, um ein Computerprogramm zur Durchführung zumindest eines der hierin beschriebenen Verfahren zu einem Empfänger zu übertragen. Die Übertragung kann beispielsweise elektronisch oder optisch erfolgen. Der Empfänger kann beispielsweise ein Computer, ein Mobilgerät, ein Speichergerät oder eine ähnliche Vorrichtung sein. Die Vorrichtung oder das System kann beispielsweise einen Datei-Server zur Übertragung des Computerprogramms zu dem Empfänger umfassen.Another embodiment includes a computer on which the computer program for performing any of the methods described herein is installed. Another embodiment according to the invention includes a device or system configured to execute a computer program for performing at least one of the methods described herein Transfer procedure to a receiver. The transmission can be done for example electronically or optically. The receiver may be, for example, a computer, a mobile device, a storage device or a similar device. For example, the device or system may include a file server for transmitting the computer program to the recipient.

Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.In some embodiments, a programmable logic device (eg, a field programmable gate array, an FPGA) may be used to perform some or all of the functionality of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. In general, in some embodiments, the methods are performed by any hardware device. This may be a universal hardware such as a computer processor (CPU) or hardware specific to the process, such as an ASIC.

Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.The embodiments described above are merely illustrative of the principles of the present invention. It will be understood that modifications and variations of the arrangements and details described herein will be apparent to others of ordinary skill in the art. Therefore, it is intended that the invention be limited only by the scope of the appended claims and not by the specific details presented in the description and explanation of the embodiments herein.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE 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 has been 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 Nicht-PatentliteraturCited non-patent literature

  • „On Validity Assurance of Dynamic Reconfiguration for Component-based Programs” von M. Niagamanesh, N. F. Nobakht, R. Jalili, und F. H. Dehkordi [0004] "On Validity Assurance of Dynamic Reconfiguration for Component-based Programs" by M. Niagamanesh, NF Nobakht, R. Jalili, and FH Dehkordi [0004]
  • ”The Evolving Philosophers Problem: Dynamic Change Management” von J. Kramer und J. Magee [0004] "The Evolving Philosophers Problem: Dynamic Change Management" by J. Kramer and J. Magee [0004]
  • „Process Migration” von D. S. Milojicic, F. Douglis, Y. Paindaveine, R. Wheeler, und S. Zhou [0005] "Process Migration" by DS Milojicic, F. Douglis, Y. Paindaveine, R. Wheeler, and S. Zhou [0005]
  • „Enabling Safe Dynamic Component-Based Software Adaptation” von J. Zhang, B. Cheng, Z. Yang, und P. McKinley [0007] "Enabling Safe Dynamic Component-Based Software Adaptation" by J. Zhang, B. Cheng, Z. Yang, and P. McKinley [0007]
  • „Automatically generating adaptive logic to balance non-functional tradeoffs during reconfiguration” von A. Ramirez, B. Cheng, P. Mckinley, und B. Beckmaan [0007] "Automatically generating adaptive logic to balance non-functional tradeoffs during reconfiguration" by A. Ramirez, B. Cheng, P. McKinley, and B. Beckmaan [0007]
  • „Worst-case execution-time analysis for embedded real-time systems” von J. Engblom, A. Ermedahl, M. Sjödin, J. Gustafsson, und H. Hansson [0009] "Worst-case execution-time analysis for embedded real-time systems" by J. Engblom, A. Ermedahl, M. Sjödin, J. Gustafsson, and H. Hansson [0009]
  • „Using Automated Planning for Trusted Self-organising Organic Computing Systems” von B. Satzger, A. Pietzowski, W. Trumler, und T. Ungerer [0010] "Using Automated Planning for Trusted Self-organizing Organic Computing Systems" by B. Satzger, A. Pietzowski, W. Trumler, and T. Ungerer [0010]
  • „Consistency Challenges in Self-Organizing Distributed Hard Real-Time Systems” von S. Stein, M. Neukirchner, H. Schrom und R. Ernst [0012] "Consistency Challenges in Self-Organizing Distributed Hard Real Time Systems" by S. Stein, M. Neukirchner, H. Schrom and R. Ernst [0012]

Claims (16)

Verfahren (100) zur Migration einer Softwarekomponente (102) von einer Hardwareplattform (104_1) eines verteilten eingebetteten Systems (106) auf eine Ziel-Hardwareplattform (104_2) des verteilten eingebetteten Systems (106), mit folgenden Schritten: Ermitteln von Laufzeitanforderungen der zu migrierenden Softwarekomponente (102); Ermitteln von Ressourcen, die für die Migration der Softwarekomponente (102) unter Einhaltung der ermittelten Laufzeitanforderungen erforderlich sind; Ermitteln eines Zeitpunkts, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) verfügbar sind; und Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) zu dem ermittelten Zeitpunkt.Procedure ( 100 ) for migrating a software component ( 102 ) from a hardware platform ( 104_1 ) of a distributed embedded system ( 106 ) to a target hardware platform ( 104_2 ) of the distributed embedded system ( 106 ), with the following steps: Determining runtime requirements of the software component to be migrated ( 102 ); Identify resources required to migrate the software component ( 102 ) are required in compliance with the established runtime requirements; Determining a time at which the identified resources for the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) Are available; and migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) at the time determined. Verfahren (100) nach Anspruch 1, wobei bei dem Schritt des Ermitteln der Laufzeitanforderungen eine Periode und eine maximale Ausführungszeit der Softwarekomponente (102) ermittelt werden; und wobei bei dem Schritt des Ermitteln der Ressourcen, die Ressourcen derart ermittelt werden, dass die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) innerhalb einer Leerlaufzeit der Softwarekomponente (102) erfolgt, wobei die Leerlaufzeit gleich einer Differenz zwischen der ermittelten Periode und der ermittelten maximalen Ausführungszeit ist.Procedure ( 100 ) according to claim 1, wherein in the step of determining the runtime requests a period and a maximum execution time of the software component ( 102 ) be determined; and wherein in the step of determining the resources, the resources are determined such that the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) within an idle time of the software component ( 102 ), wherein the idling time is equal to a difference between the determined period and the determined maximum execution time. Verfahren (100) nach Anspruch 1 oder 2, wobei bei dem Schritt des Ermitteln der Laufzeitanforderungen ermittelt wird, ob die Softwarekomponente (102) von einer anderen Softwarekomponente auf der Hardwareplattform (104_1) abhängig ist; und wobei bei dem Schritt der Migration der Softwarekomponente (102), die Softwarekomponente (102) zusammen mit der anderen Softwarekomponente von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) migriert wird, falls die Softwarekomponente (102) von der anderen Softwarekomponente auf der Hardwareplattform (104_1) abhängig ist.Procedure ( 100 ) according to claim 1 or 2, wherein in the step of determining the runtime requirements it is determined whether the software component ( 102 ) from another software component on the hardware platform ( 104_1 ) is dependent; and wherein at the step of migrating the software component ( 102 ), the software component ( 102 ) together with the other software component from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) is migrated if the software component ( 102 ) from the other software component on the hardware platform ( 104_1 ) is dependent. Verfahren (100) nach einem der Ansprüche 1 bis 3, wobei bei dem Schritt des Ermitteln des Zeitpunkts, der Zeitpunkt derart ermittelt wird, dass durch die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) Laufzeitanforderungen einer anderen Softwarekomponente nicht verletzt werden.Procedure ( 100 ) according to one of claims 1 to 3, wherein in the step of determining the time, the time is determined such that migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) Runtime requirements of another software component are not violated. Verfahren (100) nach einem der Ansprüche 1 bis 4, wobei bei dem Schritt des Ermittelns des Zeitpunkts, verfügbare Ressourcen der Hardwareplattform (104_1), der Ziel-Hardwareplattform (104_2) und eines Kommunikationsnetzes (109) zwischen der Hardwareplattform (104_1) und der Ziel-Hardwareplattform (104_2) ermittelt werden.Procedure ( 100 ) according to one of claims 1 to 4, wherein, in the step of determining the time, available resources of the hardware platform ( 104_1 ), the target hardware platform ( 104_2 ) and a communication network ( 109 ) between the hardware platform ( 104_1 ) and the target hardware platform ( 104_2 ) be determined. Verfahren (100) nach einem der Ansprüche 1 bis 5, ferner mit folgendem Schritt: Synchronisieren der Hardwareplattform (104_1) und der Ziel-Hardwareplattform (104_2) vor der Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2).Procedure ( 100 ) according to one of claims 1 to 5, further comprising the step of: synchronizing the hardware platform ( 104_1 ) and the target hardware platform ( 104_2 ) before the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ). Verfahren (100) nach einem der Ansprüche 2 bis 6, ferner mit folgendem Schritt: Aktivieren der Softwarekomponente (102) auf der Ziel-Hardwareplattform (104_2) und Deaktivieren der Softwarekomponente (102) auf der Hardwareplattform (104_1) vor Ablauf der Leerlaufzeit, falls die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) erfolgreich war.Procedure ( 100 ) according to one of claims 2 to 6, further comprising the following step: activating the software component ( 102 ) on the target hardware platform ( 104_2 ) and disabling the software component ( 102 ) on the hardware platform ( 104_1 ) before the idle time expires, if the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) was successful. Verfahren (100) nach einem der Ansprüche 1 bis 7, ferner mit folgendem Schritt: Zurückrollen der Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2), falls die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) nicht erfolgreich war.Procedure ( 100 ) according to one of claims 1 to 7, further comprising the step of: rolling back the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ), if the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) was not successful. Verfahren (100) nach einem der Ansprüche 1 bis 8, ferner mit folgendem Schritt: Aufteilen der Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) in eine Mehrzahl von Migrationen, falls die Ressourcen für die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) zu keinem Zeitpunkt verfügbar sind.Procedure ( 100 ) according to one of claims 1 to 8, further comprising the following step: splitting the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) in a plurality of migrations if the resources for the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) are not available at any time. Verfahren (100) nach einem der Ansprüche 1 bis 9, ferner mit folgenden Schritten: Ermitteln eines Zeitpunkts, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf zumindest eine weitere Hardwareplattform des verteilten eingebetteten Systems (106) verfügbar sind, falls die Ressourcen für die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) zu keinem Zeitpunkt verfügbar sind; Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die zumindest eine weitere Hardwareplattform unter Einhaltung der ermittelten Laufzeitanforderungen zu dem ermittelten Zeitpunkt, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die zumindest eine weitere Hardwareplattform verfügbar sind; Ermitteln eines Zeitpunkts, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente (102) von der zumindest einen weiteren Hardwareplattform auf die Ziel-Hardwareplattform (104_2) verfügbar sind; Migration der Softwarekomponente (102) von der zumindest einen weiteren Hardwareplattform auf die Ziel-Hardwareplattform (104_2) unter Einhaltung der ermittelten Laufzeitanforderungen zu dem ermittelten Zeitpunkt, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente (102) von der zumindest einen weiteren Hardwareplattform auf die Ziel-Hardwareplattform (104_2) verfügbar sind.Procedure ( 100 ) according to one of claims 1 to 9, further comprising the following steps: Determining a time at which the identified resources for the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) on at least one other hardware platform of the distributed embedded system ( 106 ) are available if the resources for the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) are not available at any time; Migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the at least one further hardware platform in compliance with the determined runtime requirements at the determined time at which the determined resources for the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) are available on the at least one further hardware platform; Determining a time at which the identified resources for the migration of the software component ( 102 ) from the at least one other hardware platform to the target hardware platform ( 104_2 ) Are available; Migration of the software component ( 102 ) from the at least one other hardware platform to the target hardware platform ( 104_2 ) in compliance with the determined runtime requirements at the determined time at which the determined resources for the migration of the software component ( 102 ) from the at least one other hardware platform to the target hardware platform ( 104_2 ) Are available. Verfahren (100) nach einem der Ansprüche 1 bis 10, ferner mit folgendem Schritt: Reduzieren von Ressourcen einer anderen Softwarekomponente, so dass die ermittelten Ressourcen für die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) verfügbar sind, falls die ermittelten Ressourcen für die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) sonst zu keinem Zeitpunkt verfügbar sind.Procedure ( 100 ) according to one of claims 1 to 10, further comprising the step of: reducing resources of another software component such that the determined resources for the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) are available if the resources determined for the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) are otherwise available at any time. Verfahren (100) nach einem der Ansprüche 1 bis 11, ferner mit folgenden Schritten: Ermitteln von weiteren Laufzeitanforderungen einer weiteren zu migrierenden Softwarekomponente; Ermitteln von weiteren Ressourcen, die für die Migration der weiteren Softwarekomponente unter Einhaltung der ermittelten weiteren Laufzeitanforderungen erforderlich sind; Ermitteln eines weiteren Zeitpunkts, zu dem die ermittelten weiteren Ressourcen für die Migration der weiteren Softwarekomponente verfügbar sind; Migration der weiteren Softwarekomponente unter Einhaltung der ermittelten weiteren Laufzeitanforderungen zu dem ermittelten weiteren Zeitpunkt.Procedure ( 100 ) according to one of claims 1 to 11, further comprising the steps of: determining further runtime requirements of a further software component to be migrated; Identify additional resources required to migrate the other software component in compliance with the determined additional runtime requirements; Determining a further time at which the determined additional resources are available for the migration of the further software component; Migration of the other software component in compliance with the determined further runtime requirements at the determined additional time. Verfahren (100) nach Anspruch 12, ferner mit folgenden Schritten: Ermitteln einer Migrationsreihenfolge der Softwarekomponente (102) und der weiteren Softwarekomponente, so dass die Laufzeitanforderungen der Softwarekomponente (102) und die Laufzeitanforderungen der weiteren Softwarekomponente eingehalten werden; Migration der Softwarekomponente (102) und der weiteren Softwarekomponente gemäß der ermittelten Migrationsreihenfolge.Procedure ( 100 ) according to claim 12, further comprising the following steps: determining a migration order of the software component ( 102 ) and the other software component, so that the runtime requirements of the software component ( 102 ) and the runtime requirements of the other software component are met; Migration of the software component ( 102 ) and the other software component according to the determined migration order. Verfahren (100) nach Anspruch 13, wobei bei dem Schritt des Ermittelns der Migrationsreihenfolge, die Migrationsreihenfolge basierend auf Prioritäten der Softwarekomponente (102) und der weiteren Softwarekomponente ermittelt wird.Procedure ( 100 ) according to claim 13, wherein in the step of determining the migration order, the migration order is based on priorities of the software component ( 102 ) and the other software component is determined. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens (100) gemäß einem der Ansprüche 1 bis 14, wenn das Computerprogramm auf einem Computer oder Mikroprozessor ablauft.Computer program containing a program code for carrying out the method ( 100 ) according to one of claims 1 to 14, when the computer program runs on a computer or microprocessor. Steuervorrichtung zum Steuern einer Migration einer Softwarekomponente (102) von einer Hardwareplattform (104_1) eines verteilten eingebetteten Systems (106) auf eine Ziel-Hardwareplattform (104_2) des verteilten eingebetteten Systems (106), mit folgenden Merkmalen: einer Einrichtung zum Ermitteln von Laufzeitanforderungen der zu migrierenden Softwarekomponente (102); einer Einrichtung zum Ermitteln von Ressourcen, die für die Migration der Softwarekomponente (102) unter Einhaltung der ermittelten Laufzeitanforderungen erforderlich sind; einer Einrichtung zum Ermitteln eines Zeitpunkts, zu dem die ermittelten Ressourcen für die Migration der Softwarekomponente (102) von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) verfügbar sind; und einer Einrichtung zum Auslösen der Migration von der Hardwareplattform (104_1) auf die Ziel-Hardwareplattform (104_2) zu dem ermittelten Zeitpunkt.Control device for controlling a migration of a software component ( 102 ) from a hardware platform ( 104_1 ) of a distributed embedded system ( 106 ) to a target hardware platform ( 104_2 ) of the distributed embedded system ( 106 ), comprising: means for determining runtime requirements of the software component to be migrated ( 102 ); a device for determining resources used for the migration of the software component ( 102 ) are required in compliance with the established runtime requirements; a device for determining a time at which the determined resources for the migration of the software component ( 102 ) from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) Are available; and means for initiating the migration from the hardware platform ( 104_1 ) to the target hardware platform ( 104_2 ) at the time determined.
DE201110006892 2011-04-06 2011-04-06 Method for migrating anti-skid system (ABS) to hardware platform of distributed embedded system in train, involves migrating software component of hardware platform on objective hardware platform at predetermined point of time Ceased DE102011006892A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE201110006892 DE102011006892A1 (en) 2011-04-06 2011-04-06 Method for migrating anti-skid system (ABS) to hardware platform of distributed embedded system in train, involves migrating software component of hardware platform on objective hardware platform at predetermined point of time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201110006892 DE102011006892A1 (en) 2011-04-06 2011-04-06 Method for migrating anti-skid system (ABS) to hardware platform of distributed embedded system in train, involves migrating software component of hardware platform on objective hardware platform at predetermined point of time

Publications (1)

Publication Number Publication Date
DE102011006892A1 true DE102011006892A1 (en) 2012-10-11

Family

ID=46874920

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201110006892 Ceased DE102011006892A1 (en) 2011-04-06 2011-04-06 Method for migrating anti-skid system (ABS) to hardware platform of distributed embedded system in train, involves migrating software component of hardware platform on objective hardware platform at predetermined point of time

Country Status (1)

Country Link
DE (1) DE102011006892A1 (en)

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
"Automatically generating adaptive logic to balance non-functional tradeoffs during reconfiguration" von A. Ramirez, B. Cheng, P. Mckinley, und B. Beckmaan
"Consistency Challenges in Self-Organizing Distributed Hard Real-Time Systems" von S. Stein, M. Neukirchner, H. Schrom und R. Ernst
"Enabling Safe Dynamic Component-Based Software Adaptation" von J. Zhang, B. Cheng, Z. Yang, und P. McKinley
"On Validity Assurance of Dynamic Reconfiguration for Component-based Programs" von M. Niagamanesh, N. F. Nobakht, R. Jalili, und F. H. Dehkordi
"Process Migration" von D. S. Milojicic, F. Douglis, Y. Paindaveine, R. Wheeler, und S. Zhou
"The Evolving Philosophers Problem: Dynamic Change Management" von J. Kramer und J. Magee
"Using Automated Planning for Trusted Self-organising Organic Computing Systems" von B. Satzger, A. Pietzowski, W. Trumler, und T. Ungerer
"Worst-case execution-time analysis for embedded real-time systems" von J. Engblom, A. Ermedahl, M. Sjödin, J. Gustafsson, und H. Hansson
Emilia FARCAS: Scheduling Multi-Mode Real-Time Distributed Components [Thesis], 2006, Department of Computer Science, Universität Salzburg [online] https://sosa.ucsd.edu/people/efarcas/publications/EF_Dissertation.pdf am 10.10.2011 *
Johnathan SMITH: A Survey of Process Migration Mechanisms, 1988, ACM SIGOPS Operating Systems, Vol 22(3) S 28-40, DOI: 10.1145/47671.47673 *

Similar Documents

Publication Publication Date Title
EP2235628B1 (en) Motor vehicle control device
DE102015221330A1 (en) A method and apparatus for robustly updating firmware of a vehicle over an air interface
EP3211533B1 (en) Fault-tolerant system architecture for controlling a physical installation, particularly of a machine or of a motor vehicle
WO2013171122A2 (en) Functionally expandable vehicle control device and method for supplementing the functionality of a vehicle control device
EP3704573B1 (en) Method for performing a software update in a control unit of a motor vehicle, and motor vehicle designed accordingly
EP3371025B1 (en) Surroundings modeling device for a driver assistance system for a motor vehicle
EP3929740A1 (en) Method for orchestrating a container-based application on a terminal
DE102018001347A1 (en) System for transmitting at least one update package for at least one control unit of a motor vehicle and method
DE102015100566A1 (en) Method and light mechanism for mixed critical applications
DE102019217047A1 (en) Method and device for managing access by several software components to software interfaces
EP2615511A1 (en) Method for synchronous execution of programmes in a redundant automation system
DE102011006892A1 (en) Method for migrating anti-skid system (ABS) to hardware platform of distributed embedded system in train, involves migrating software component of hardware platform on objective hardware platform at predetermined point of time
WO2022128025A1 (en) Method for the dynamic configuration of sensors and control units in an ethernet network
EP4232905A1 (en) Data processing network for performing data processing
EP2758886B1 (en) Control of access to a jointly exclusively usable transmission
EP2126700B1 (en) Control of the run time behavior of processes
DE112018003505T5 (en) ACCESS CONTROL DEVICE
DE102014213826B4 (en) Procedure for synchronizing state changes in multi-core computers of embedded systems
DE112022001622T5 (en) 6VEHICLE CONTROL DEVICE AND VEHICLE CONTROL SYSTEM
WO2024056488A1 (en) Mitigation of manipulations in a computer system with zone separation for a device, in particular for a vehicle
DE102022203945A1 (en) Procedure for configuration in a network
DE102020215763A1 (en) Method for optimizing the transmission data rate in a sensor network in partial network operation in an Ethernet network
WO2023066624A1 (en) Data processing network for performing data processing
WO2023138721A1 (en) Method for generating a capacity profile of a computing unit
DE102021204789A1 (en) PROCEDURE AND SYSTEM TO ENSURE GUARANTEED QUALITY OF SERVICE IN VEHICLES

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final