DE102022203945A1 - Verfahren für eine Konfiguration in einem Netzwerk - Google Patents

Verfahren für eine Konfiguration in einem Netzwerk Download PDF

Info

Publication number
DE102022203945A1
DE102022203945A1 DE102022203945.9A DE102022203945A DE102022203945A1 DE 102022203945 A1 DE102022203945 A1 DE 102022203945A1 DE 102022203945 A DE102022203945 A DE 102022203945A DE 102022203945 A1 DE102022203945 A1 DE 102022203945A1
Authority
DE
Germany
Prior art keywords
time
real
network
application
applications
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022203945.9A
Other languages
English (en)
Inventor
Dakshina Narahari Dasari
Michael Pressler
Naresh Ganesh Nayak
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022203945.9A priority Critical patent/DE102022203945A1/de
Priority to US18/185,047 priority patent/US20230344782A1/en
Priority to CN202310432075.6A priority patent/CN116938704A/zh
Publication of DE102022203945A1 publication Critical patent/DE102022203945A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/821Prioritising resource allocation or reservation requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

Die Erfindung betrifft ein Verfahren für eine Konfiguration in einem Netzwerk (10), umfassend die nachfolgenden Schritte für wenigstens eine Echtzeitanwendung (A), wobei die Echtzeitanwendung (A) mehrere im Netzwerk (10) verkettete Aufgaben (410, 420) umfasst:- Empfangen (101) mindestens einer Nachrichteneinheit (300) von einer vorhergehenden Aufgabe (410) der Echtzeitanwendung (A),- Ermitteln (102) einer Ausführungszeit (310) der vorhergehenden Aufgabe (410) anhand der empfangenen Nachrichteneinheit (300),- Auswerten (103) der ermittelten Ausführungszeit (310), welches zumindest einen Vergleich der ermittelten Ausführungszeit (310) mit wenigstens einer Zeitvorgabe (320) umfasst, um daraus einen aktuellen Zeitspielraum (331) der Echtzeitanwendung (A) zu ermitteln,- Priorisieren (104) der Nachrichteneinheit (300) anhand des ermittelten Zeitspielraums (331) und Weiterleiten der Nachrichteneinheit (300) im Netzwerk (10) abhängig von der Priorisierung an eine nachfolgende Aufgabe (420) der Echtzeitanwendung (A).

Description

  • Die vorliegende Erfindung betrifft ein Verfahren für eine Konfiguration in einem Netzwerk. Ferner bezieht sich die Erfindung auf ein Computerprogramm, ein Modul sowie ein System jeweils zu diesem Zweck.
  • Es ist aus dem Stand der Technik bekannt, dass echtzeitkritische Anwendungen auf einem verteilten System bereitgestellt werden können. Hierbei können die Aufgaben der Anwendungen durch verschiedene Rechenknoten ausgeführt werden. Die Aufgaben befinden sich in einer Verkettung, um eine Anwendung in koordinierter Weise bereitzustellen. Zum Beispiel kann eine Anwendung durch Sensor-, Verarbeitungs- und Aktivierungsaufgaben bereitgestellt werden, bei der eine der Aufgaben zum Lesen von Sensorwerten vorgesehen ist, die Sensorwerte anschließend an weitere Aufgaben weitergegeben werden, die diese Daten verarbeiten und darauf basierend eine Steuerung durchführen können.
  • Um echtzeitkritische Anwendungen bereitzustellen, können ferner Ende-zu-Ende-Latenzen als Zeitvorgaben von Anwendungen oder derer Ereigniskette vorgesehen sein. Bei Echtzeitanwendungen ist es erforderlich, dass eine Anwendung innerhalb einer bestimmten Zeit ausgeführt und ein Ergebnis der Anwendung bereitgestellt sein muss. Diese bestimmte Zeit kann als die Ende-zu-Ende-Latenz bezeichnet werden, also als das Intervall zwischen einem Zeitpunkt, zu dem eine Eingabe von einer ersten Aufgabe der Verkettung empfangen wird, bis zum Zeitpunkt, an dem das Endergebnis der Anwendung ausgegeben wird. Die hinreichende Gewährleistung der Ende-zu-Ende-Latenz ist in verschiedenen Bereichen entscheidend. So werden bspw. Automobilsysteme mit neueren Funktionen wie dem assistierten Fahren immer komplexer. Viele dieser Automobilanwendungen haben in der Regel strenge Echtzeitanforderungen - es ist nicht nur wichtig, dass ein Berechnungsergebnis korrekt ist, sondern auch, dass das Ergebnis zur richtigen Zeit präsentiert wird.
  • Offenbarung der Erfindung
  • Gegenstand der Erfindung ist ein Verfahren mit den Merkmalen des Anspruchs 1, ein Computerprogramm mit den Merkmalen des Anspruchs 9, ein Modul mit den Merkmalen des Anspruchs 10 sowie ein System mit den Merkmalen des Anspruchs 11. Weitere Merkmale und Details der Erfindung ergeben sich aus den jeweiligen Unteransprüchen, der Beschreibung und den Zeichnungen. Dabei gelten Merkmale und Details, die im Zusammenhang mit dem erfindungsgemäßen Verfahren beschrieben sind, selbstverständlich auch im Zusammenhang mit dem erfindungsgemäßen Computerprogramm, dem erfindungsgemäßen Modul sowie dem erfindungsgemäßen System, und jeweils umgekehrt, so dass bezüglich der Offenbarung zu den einzelnen Erfindungsaspekten stets wechselseitig Bezug genommen wird bzw. werden kann.
  • Das Verfahren dient zur Konfiguration, insbesondere zur dynamischen Konfiguration, in einem Netzwerk. Das Netzwerk kann wenigstens eine oder mehrere Echtzeitanwendungen ausführen, die wiederum mehrere im Netzwerk verkettete Aufgaben umfassen können. Die Aufgaben können verkettet sein, da eine vorhergehende Aufgabe ein Ergebnis produziert, welches an eine nachfolgende Aufgabe übergeben werden muss, damit die Echtzeitanwendung korrekt ausgeführt wird. Zur Übergabe kann eine Kommunikation über das Netzwerk zwischen unterschiedlichen Knoten, bevorzugt Rechenknoten, des Netzwerkes erfolgen, wobei die Übergabe bzw. Kommunikation über Nachrichteneinheiten wie Datenpakete erfolgen kann. Entsprechend können auch die Aufgaben auf unterschiedlichen Knoten, bspw. einzelnen Computern, ausgeführt werden, so dass eine Datenverarbeitungsumgebung in der Form eines verteilten Systems für die Echtzeitanwendungen bereitgestellt ist.
  • Nachfolgend werden die Echtzeitanwendungen auch kurz als Anwendungen bezeichnet. Der Begriff Echtzeit kann sich darauf beziehen, dass die Anwendungen ihr Ergebnis in einer vorgegebenen Zeit bereitstellen müssen. Für echtzeitkritische Anwendungen ist es daher oft notwendig, dass sichergestellt wird, dass eine bestimmte Ende-zu-Ende-Anforderung erfüllt wird. Darunter wird eine Latenz oder maximale Verzögerung der Ausführung verstanden, also bis wann ein Ergebnis der Anwendung spätestens vorliegen muss. Diese Anforderung wirkt sich dabei auch auf die verketteten Aufgaben aus. Die Aufgaben sind jeweils ein Teil der gesamten Echtzeitanwendung, so dass deren erfolgreiche Ausführung eine Voraussetzung für die korrekte Ausführung der gesamten Echtzeitanwendung sind. Die Ausführungszeiten der einzelnen Aufgaben bestimmen dabei in Summe die Gesamtausführungszeit der gesamten Echtzeitanwendung (mit). Daher ist häufig zur Gewährleistung der Echtzeitausführung die Konfiguration in dem Netzwerk z. B. im Sinne einer Priorisierung der Kommunikation von großer Bedeutung.
  • Die bei dem erfindungsgemäßen Verfahren zur Konfiguration in einem Netzwerk vorgesehenen Schritte, auch als Konfigurationsschritte bezeichnet, für die wenigstens eine Echtzeitanwendung können dabei vorzugsweise nacheinander in der nachfolgend angegebenen Reihenfolge ausgeführt werden. Ferner ist es möglich, dass die Schritte wiederholt während einer Laufzeit der Echtzeitanwendungen und/oder auch für weitere Echtzeitanwendungen und/oder ggf. vollständig automatisiert ausgeführt werden. Die Schritte, insbesondere Konfigurationsschritte, können dabei umfassen:
    • - Empfangen mindestens einer Nachrichteneinheit wie eines Datenpaketes von einer vorhergehenden Aufgabe der Echtzeitanwendung,
    • - Ermitteln, z. B. Berechnen, einer Ausführungszeit der vorhergehenden Aufgabe anhand der empfangenen Nachrichteneinheit, z. B. anhand einer Zeitinformation der Nachrichteneinheit über einen Startzeitpunkt der vorhergehenden Aufgabe oder der Echtzeitanwendung,
    • - Auswerten der ermittelten Ausführungszeit, welches zumindest einen Vergleich der ermittelten Ausführungszeit mit wenigstens einer, insbesondere vordefinierten oder zuvor berechneten, Zeitvorgabe umfasst, um daraus einen aktuellen Zeitspielraum der Echtzeitanwendung zu ermitteln,
    • - Priorisieren der Nachrichteneinheit anhand des ermittelten Zeitspielraums und Weiterleiten der Nachrichteneinheit im Netzwerk abhängig von der Priorisierung an eine nachfolgende Aufgabe der Echtzeitanwendung, wobei vorzugsweise hierdurch die Konfiguration in dem Netzwerk anhand des ermittelten Zeitspielraums, insbesondere dynamisch, erfolgt.
  • Das Verfahren hat damit den Vorteil einer dynamischen - d.h. nicht statischen - Priorisierung und Konfiguration in dem Netzwerk. Unter einer Konfiguration wird damit insbesondere verstanden, dass in dem Netzwerk eine Weiterleitung von priorisierten Nachrichteneinheiten erfolgt, die Weiterleitung also abhängig von der Priorisierung konfiguriert und somit angepasst werden kann und die Priorisierung von dem ermittelten Zeitspielraum abhängig sein kann. Eine Möglichkeit zur Priorisierung von Anwendungen im Netzwerk kann herkömmlicherweise eine statische Priorisierung sein. Dabei würde die Anwendungspriorität statisch und einheitlich auf die Kommunikation der Anwendung, also bspw. die zugehörigen Datenpakete, übertragen werden. Es ist jedoch eine Erkenntnis im Rahmen der vorliegenden Erfindung, dass eine solche statische Priorität nachteilhaft sein kann, da sie nicht den Zeitspielraum (engl. „slack“) in den Aufgabenketten berücksichtigt. Infolgedessen können Datenpakete für Anwendungen mit niedriger Priorität unnötig benachteiligt und verzögert werden, selbst wenn Anwendungen mit höherer Priorität genügend Zeitspielraum haben, um rechtzeitig fertig zu werden. Darüber hinaus wäre eine statische Priorisierung auch agnostisch gegenüber Parametern, die bei dem erfindungsgemäßen Verfahren ggf. für die Priorisierung berücksichtigt werden können, wie gegenüber der Übertragungsvariabilität aufgrund von Unsicherheiten im Netzwerk und gegenüber der Ausführungsvariabilität aufgrund von Über- oder Unterschreitung der Ausführungszeit der Aufgaben.
  • Die Priorisierung wird z. B. dadurch ausgeführt, dass die wenigstens eine Nachrichteneinheit gekennzeichnet wird. Bspw. wird hierzu ein Prioritätsfeld in einem Header der Nachrichteneinheit festgelegt. Entsprechend kann die Nachrichteneinheit den Header mit Metadaten und die Nutzlast mit der tatsächlichen Nachricht, also z. B. dem Ergebnis der vorhergehenden Aufgabe, umfassen. Das Prioritätsfeld kann dann von den zwischengeschalteten Switches/Routern des Netzwerkes ausgelesen werden, um über die Reihenfolge der Übertragung der Nachrichteneinheiten zu entscheiden.
  • Unter einem Zeitspielraum wird insbesondere ein „Slack“ verstanden, aus welchem bspw. auf eine Zeitreserve für die Anwendung geschlossen werden kann. In anderen Worten kann der Zeitspielraum die zeitliche Reserve bezeichnen, welche eine Echtzeitanwendung noch zur Erfüllung ihrer Echtzeitanforderung hat. Bspw. kann jeder Aufgabe der Echtzeitanwendung eine Obergrenze für ihre Ausführungszeit zugeordnet sein, die eingehalten werden muss, um die Echtzeitanforderung zu erfüllen. Der Zeitspielraum kann dann definiert sein durch die Differenz zwischen den tatsächlichen Ausführungszeiten und den Obergrenzen der Aufgaben der Echtzeitanwendung. Die Echtzeitanforderung kann auch als Ende-zu-Ende-Anforderung bezeichnet werden.
  • Die jeweiligen Obergrenzen der Aufgaben können durch die voranstehend erwähnte Zeitvorgabe definiert sein. In diesem Zusammenhang kann von einer lokalen Zeitvorgabe gesprochen werden, welche die Obergrenzen definiert. Auch die Echtzeitanforderung einer gesamten Echtzeitanwendung kann durch die Zeitvorgabe definiert sein, nämlich als eine globale Zeitvorgabe. Diese kann einen Zeitpunkt definieren, bis zu welchem sämtliche Aufgaben der Anwendung ausgeführt sein müssen. Abgeleitet von der globalen Zeitvorgabe können dann dynamisch die lokalen Zeitvorgaben für die Aufgaben berechnet werden, wie nachfolgend noch näher beschrieben wird.
  • Vorteilhafterweise kann vorgesehen sein, dass die Echtzeitanwendung eine erste Echtzeitanwendung von mindestens zwei im Netzwerk verteilten Echtzeitanwendungen ist, wobei die Echtzeitanwendungen und insbesondere auch deren Aufgaben zumindest teilweise parallel ausgeführt sein können. In diesem Zusammenhang kann auch von einem verteilten System von Echtzeitanwendungen gesprochen werden.
  • Ebenfalls ist es möglich, dass das Auswerten der ermittelten Ausführungszeit ferner umfasst:
    • - Durchführen eines weiteren Vergleichs des ermittelten Zeitspielraums der ersten Echtzeitanwendung mit einem aktuellen Zeitspielraum einer zweiten Echtzeitanwendung, um ein Vergleichsergebnis über die Zeitspielräume der Echtzeitanwendungen zu ermitteln.
    Ferner kann das Priorisieren in Abhängigkeit von dem Vergleichsergebnis erfolgen, um die Nachrichteneinheit mit höherer Priorität im Netzwerk weiterzuleiten, wenn der Zeitspielraum der ersten Echtzeitanwendung geringer ist als der Zeitspielraum der zweiten Echtzeitanwendung. Umgekehrt kann das Vergleichsergebnis auch für die Weiterleitung einer Nachrichteneinheit der zweiten Echtzeitanwendung herangezogen werden, um diese mit höherer Priorität weiterzuleiten, wenn der Zeitspielraum der ersten Echtzeitanwendung höher ist als der Zeitspielraum der zweiten Echtzeitanwendung. Damit kann die Priorisierung zuverlässig anhand des Zeitspielraums durchgeführt werden. Die Durchführung der Konfigurationsschritte kann somit auch parallel für weitere bzw. die zweite Echtzeitanwendung(en) erfolgen, z. B. um hierbei auch den aktuellen Zeitspielraum der zweiten Echtzeitanwendung zu ermitteln.
  • Vorteilhaft ist es zudem, wenn das Priorisieren ferner in Abhängigkeit von wenigstens einem der nachfolgenden Kriterien erfolgt:
    • - einer Struktur der Verkettung der Aufgaben, wie z. B. eine Information über die Verzögerungen, also Latenzen, durch die Kommunikation zwischen den Aufgaben,
    • - einer Funktion der Echtzeitanwendungen, wie z. B. eine Priorisierung der Funktion im Vergleich zu den weiteren Echtzeitanwendungen,
    • - einer Relevanz der echtzeitkritischen Ausführung der Echtzeitanwendungen, z. B. als eine Kategorisierung in verschiedenen Relevanzstufen,
    • - einer Sicherheitsrelevanz der Echtzeitanwendungen, z. B. zur Kennzeichnung von besonders sicherheitskritischen Echtzeitanwendungen,
    • - einer statischen Priorisierung der Echtzeitanwendungen, welche ggf. zusätzlich zur dynamischen Priorisierung eingesetzt werden kann und vor einer Laufzeit der Echtzeitanwendungen definiert wurde.
    Damit ist eine besonders dynamische und vielschichtige Priorisierung möglich.
  • Ein weiterer Vorteil kann erzielt werden, wenn die wenigstens eine Zeitvorgabe eine lokale Zeitvorgabe umfasst, welche eine Obergrenze für die Ausführungszeit der einzelnen Aufgabe definiert. Ferner ist es möglich, dass die Echtzeitanwendung eine erste Echtzeitanwendung von mindestens zwei im Netzwerk verteilten Echtzeitanwendungen ist, wobei für jede der Echtzeitanwendungen eine globale Zeitvorgabe vordefiniert sein kann, welche jeweils eine Obergrenze für eine Gesamtausführungszeit der jeweiligen Echtzeitanwendung definiert. Dabei kann vor dem Auswerten der nachfolgende Schritt durchgeführt werden:
    • - Bestimmen der lokalen Zeitvorgabe anhand der globalen Zeitvorgabe der ersten Echtzeitanwendung und/oder anhand einer Struktur der verketteten Aufgaben der ersten Echtzeitanwendung,
    wobei das Priorisieren durchgeführt wird, um die globale Zeitvorgabe für jede Echtzeitanwendung einzuhalten.
    „Lokal“ kann sich hierbei auf „aufgabenbezogen“ beziehen, im Gegensatz zu global, also anwendungsbezogen. Zusätzlich zu den individuellen zeitlichen Anforderungen an die Antwortzeiten der Aufgaben (d. h. die lokale Zeitvorgabe kann der Antwortzeit der Aufgabe entsprechen), haben die Echtzeitanwendungen oft auch zeitliche Anforderungen an die Ende-zu-Ende-Latenz der Aufgabenketten, hier auch als globale Zeitvorgabe bezeichnet. Für jede Aufgabe, die zu einer Echtzeitanwendung mit einer voreingestellten globalen Zeitvorgabe gehört, kann eine lokale Zeitvorgabe abgeleitet werden, bis zu der jede Aufgabe der Anwendung abgeschlossen sein muss, damit die Anwendung ihre Echtzeitanforderung einhalten kann. Hierzu kann ggf. eine Information über eine Struktur der verketteten Aufgaben herangezogen werden. Die Struktur umfasst z. B. auch eine Information über die Rechenintensivität oder maximale Berechnungsdauer oder dergleichen der Aufgaben. Die lokalen Zeitvorgaben können ggf. allen weiteren Aufgaben der Echtzeitanwendung mitgeteilt werden. Dies kann bspw. durch Standardgraphenalgorithmen wie List Scheduling erreicht werden, bei denen die späteste Startzeit jedes Knotens definiert werden kann.
  • Ferner kann es vorgesehen sein, dass die Schritte des Verfahrens bzw. die Konfigurationsschritte für mindestens zwei oder mindestens drei oder mindestens vier weitere Echtzeitanwendungen im Netzwerk durchgeführt werden, wobei das Weiterleiten der jeweiligen Nachrichteneinheiten dynamisch abhängig von der Priorisierung anhand der jeweiligen Zeitspielräume durchgeführt wird, insbesondere um auf diese Weise die Weiterleitung der jeweiligen Nachrichteneinheiten dynamisch zu konfigurieren. Höher priorisierte Nachrichteneinheiten können bspw. schneller weitergeleitet werden als weniger hoch priorisierte Nachrichteneinheiten. Somit kann auch ein umfangreiches System von Echtzeitanwendungen zuverlässig dynamisch konfiguriert werden.
  • Es ist möglich, dass die Schritte des Verfahrens bzw. die Konfigurationsschritte für die Echtzeitanwendungen jeweils durch einen Netzwerkkonfigurator durchgeführt werden. Vorzugsweise kann es vorgesehen sein, dass die verketteten Aufgaben der Echtzeitanwendungen auf unterschiedlichen Knoten des Netzwerkes ausgeführt werden, und die Schritte für die Echtzeitanwendungen an jedem der Knoten durch den Netzwerkkonfigurator durchgeführt werden. Der Netzwerkkonfiguration kann z. B. durch ein Software- und/oder Hardwaremodul bereitgestellt werden, welches entsprechend in den einzelnen Knoten vorgesehen ist. Dies hat den Vorteil, dass dezentral die Priorisierung mit reduziertem Aufwand bereitgestellt werden kann. Auch ist es auf diese Weise möglich, dass die lokalen Zeitvorgaben der einzelnen Aufgaben für den Netzwerkkonfigurator abrufbar sind. Damit kann immer dann, wenn eine Aufgabe an einem bestimmten Knoten abgeschlossen wird, der entsprechende Netzwerkkonfigurator an diesem Knoten prüfen, ob die Aufgabe vor oder hinter dem Zeitplan der Zeitvorgabe liegt, indem die Ausführungszeit mit der lokalen Zeitvorgabe verglichen wird. Um dies zu quantifizieren, kann der Netzwerkkonfigurator den Zeitspielraum berechnen, der sich aus der Differenz zwischen der lokalen Zeitvorgabe und der Ausführungszeit ergibt. Ein geringerer Zeitspielraum bedeutet also, dass sich die Frist entsprechend der globalen Zeitvorgabe der Anwendung früher nähert und daher die Priorität der Nachrichteneinheit erhöht wird. Ein Zeitspielraum von weniger als 0 bedeutet, dass die Aufgabe ihre lokale Zeitvorgabe nicht einhalten konnte.
  • Es ist ferner denkbar, dass das Netzwerk unterschiedliche Routen zwischen den Knoten umfasst, wobei durch die Priorisierung entschieden werden kann, über welcher der Routen die Nachrichteneinheit weitergeleitet wird, um zu einem der Knoten zu gelangen. Somit kann das Weiterleiten abhängig von der Priorisierung anhand der jeweiligen Zeitspielräume erfolgen. Außerdem können die Nachrichteneinheiten jeweils als Datenpaket ausgebildet sein und/oder die Knoten jeweils als Rechenknoten zur Ausführung der Aufgaben ausgebildet sein. Die verketteten Aufgaben können auch als Aufgabenkette bezeichnet werden, wie sie häufig in einem Anwendungsgraphen dargestellt werden. Die Aufgabenketten können sowohl in Ein-Knoten- (engl. Single-Node) als auch in verteilten Echtzeitsystemen (engl. distributed real-time systems) anzutreffen sein. Die Ausführungszeit kann über heterogene Knoten hinweg normalisiert sein, wenn die Knoten unterschiedliche Taktfrequenzen oder Architekturen haben.
  • Beispielsweise kann es vorgesehen sein, dass die Echtzeitanwendungen Teile einer Middleware (z. B. für ein Fahrzeugbetriebssystem oder einer Fahrzeugfunktion) und/oder eines Fahrzeugbetriebssystems und/oder einer autonomen Fahrfunktion und/oder einer speicherprogrammierbaren Steuerung sind, wobei vorzugsweise mindestens eine der Aufgaben einer Echtzeitanwendung zur Erfassung von Sensorwerten, mindestens eine weitere der Aufgaben der Echtzeitanwendung zur Verarbeitung der erfassten Sensorwerte und mindestens eine weitere der Aufgaben der Echtzeitanwendung zur Steuerung einer Maschine anhand der Verarbeitung ausgeführt ist. Zum Beispiel kann eine Anwendung für autonomes Fahren typischerweise in die Funktionen Wahrnehmung (Sensorik), Pfadplanung (Verarbeitung) und Betätigungsfunktionen, also die Steuerung, unterteilt werden, mit spezifischen Anforderungen an den Ende-zu-Ende-Latenz der Anwendung. Abgesehen vom Automobilbereich ist die Notwendigkeit verteilter Echtzeitgarantien auch in der Avionik sowie in Anlagen- und Fabriksystemen anzutreffen.
  • Ebenfalls Gegenstand der Erfindung ist ein Computerprogramm, insbesondere Computerprogrammprodukt, umfassend Befehle, die bei der Ausführung des Computerprogrammes durch einen Computer diesen veranlassen, das erfindungsgemäße Verfahren auszuführen. Damit bringt das erfindungsgemäße Computerprogramm die gleichen Vorteile mit sich, wie sie ausführlich mit Bezug auf ein erfindungsgemäßes Verfahren beschrieben worden sind.
  • Als der Computer kann bspw. ein Knoten des Netzwerkes vorgesehen sein, welcher das Computerprogramm z. B. in der Form eines Softwaremoduls und/oder Netzwerkkonfigurators ausführt. Der Computer kann wenigstens einen Prozessor zur Ausführung des Computerprogramms aufweisen. Auch kann ein nicht-flüchtiger Datenspeicher vorgesehen sein, in welchem das Computerprogramm hinterlegt und von welchem das Computerprogramm durch den Prozessor zur Ausführung ausgelesen werden kann.
  • Ebenfalls Gegenstand der Erfindung kann ein computerlesbares Speichermedium, welches das erfindungsgemäße Computerprogramm umfasst. Das Speichermedium ist bspw. als ein Datenspeicher wie eine Festplatte und/oder ein nicht-flüchtiger Speicher und/oder eine Speicherkarte ausgebildet.
  • Das Speichermedium kann z. B. in mindestens einem oder jedem Knoten des Netzwerkes integriert sein.
  • Ebenfalls Gegenstand der Erfindung ist ein Modul, insbesondere Netzwerkkonfigurator, für eine Konfiguration in einem Netzwerk, welches eingerichtet ist, das erfindungsgemäße Verfahren auszuführen. Damit bringt das erfindungsgemäße Modul die gleichen Vorteile mit sich, wie sie ausführlich mit Bezug auf ein erfindungsgemäßes Verfahren beschrieben worden sind.
  • Ebenfalls Gegenstand der Erfindung ist ein System, aufweisend:
    • - ein Netzwerk zur Ausführung von Echtzeitanwendungen, wobei die Echtzeitanwendungen jeweils mehrere verkettete Aufgaben umfassen, die auf unterschiedlichen Knoten des Netzwerkes ausgeführt werden.
    Hierbei ist insbesondere vorgesehen, dass an den unterschiedlichen Knoten jeweils ein erfindungsgemäßes Modul vorgesehen ist, um die Konfiguration dynamisch für die Ausführung der Echtzeitanwendungen durchzuführen. Damit bringt das erfindungsgemäße System die gleichen Vorteile mit sich, wie sie ausführlich mit Bezug auf ein erfindungsgemäßes Verfahren beschrieben worden sind.
  • Darüber hinaus kann das erfindungsgemäße Verfahren auch als ein computerimplementiertes Verfahren ausgeführt sein.
  • Weitere Vorteile, Merkmale und Einzelheiten der Erfindung ergeben sich aus der nachfolgenden Beschreibung, in der unter Bezugnahme auf die Zeichnungen Ausführungsbeispiele der Erfindung im Einzelnen beschrieben sind. Dabei können die in den Ansprüchen und in der Beschreibung erwähnten Merkmale jeweils einzeln für sich oder in beliebiger Kombination erfindungswesentlich sein. Es zeigen:
    • 1 ein erfindungsgemäßes Verfahren in einer schematischen Darstellung,
    • 2 ein erfindungsgemäßes Verfahren in einer weiteren schematischen Darstellung,
    • 3 schematisch ein erfindungsgemäßes System und Modul.
  • In den nachfolgenden Figuren werden für die gleichen technischen Merkmale auch von unterschiedlichen Ausführungsbeispielen die identischen Bezugszeichen verwendet.
  • In 1 ist ein erfindungsgemäßes Verfahren für eine Konfiguration in einem Netzwerk 10 verteilter Echtzeitanwendungen (beispielhaft dargestellt mit Echtzeitanwendung A) veranschaulicht. Ergänzend hierzu zeigt 2 die Verfahrensschritte 101-104 dieses Verfahrens mit weiteren Einzelheiten.
  • In 3 ist zudem ein Ausführungsbeispiel gezeigt, in welchem die Echtzeitanwendungen A,B über ein verteiltes System 1 bereitgestellt sind. Die Anwendungen A und B können jeweils durch Aufgabenketten realisiert werden. Beispielhaft sind in 3 diese verketteten Aufgaben auf verschiedenen Rechenknoten 201-204 in dem Netzwerk 10 verteilt. Die Anwendung A umfasst hierbei die Aufgaben A1-A5, während die Anwendung B die Aufgaben B1-B3 umfasst. Es ist erkennbar, dass die Aufgaben A3 und A4 als parallele Aufgaben der Echtzeitanwendung A vorgesehen sind, und somit zumindest teilweise zeitlich überlappend ausgeführt werden. Dagegen sind die Aufgaben A1 und A2 sequentiell ausgeführte Aufgaben.
  • Beiden Echtzeitanwendungen A und B kann eine unterschiedliche (statische) Priorität und/oder eine Ende-zu-Ende-Anforderung zugewiesen sein. Für zeitkritische Anwendungen muss häufig sichergestellt werden, dass diese ihre Ende-zu-Ende-Anforderungen erfüllen. Dies kann erforderlich machen, dass sowohl Rechen- als auch Netzwerkressourcenmanager die Priorität und die QoS (Quality of Service) Anforderungen dieser Anwendungen berücksichtigen. Es gibt spezifische Lösungen wie „Reservation based Scheduling“ zur Reservierung von Berechnungskapazitäten auf den Prozessorkernen von Knoten. Diese agieren üblicherweise auf Ebene der Aufgaben. Ebenfalls sind ähnliche Netzwerkreservierungsprotokolle bekannt, die sich mit der QoS auf Paketebene befassen. Diese bekannten Mechanismen befassen sich jedoch nicht mit Aufgabenketten und berücksichtigte nicht die Ende-zu-Ende-Anforderungen.
  • Vorteilhaft ist daher ein Mechanismus, der nicht oder nicht nur statisch die Prioritäten der einzelnen Aufgaben beachtet, sondern den aktuellen Fertigstellungsstatus und damit den Zeitspielraum der Anwendungen A,B berücksichtigt, um sicherzustellen, dass die Ende-zu-Ende-Anforderungen eingehalten werden. Es wird daher eine dynamische Konfiguration in dem Netzwerk 10 durch Schritte des Verfahrens vorgeschlagen, welche insbesondere durch einen Netzwerkkonfigurator 400 (engl. Network Configurator 400) an dem jeweiligen Knoten 201-204 ausgeführt werden können.
  • Beispielhaft werden in 1 diese Schritte 101-104 und die Funktion des Netzwerkkonfigurators 400 anhand einer Echtzeitanwendung A veranschaulicht. Die gesamte Verarbeitung der Echtzeitanwendung A kann dabei in mehreren miteinander verketteten und somit auch miteinander kommunizierenden Aufgaben unterteilt werden. Nachfolgend wird dabei von einem Zustand ausgegangen, in welchem eine erste, vorhergehende Aufgabe 410 dieser Verkettung abgeschlossen ist und ihr Verarbeitungsergebnis durch eine Nachrichteneinheit 300 wie ein Datenpaket bereitstellt. Diese Nachrichteneinheit 300 ist dafür gedacht, an eine nachfolgende Aufgabe 420 übertragen zu werden. Die nachfolgende Aufgabe 420 kann das Verarbeitungsergebnis nutzen und voraussetzen, um ein weiteres Verarbeitungsergebnis zu berechnen, so dass sukzessive die Echtzeitanwendung A durch die Aufgaben vollständig ausgeführt wird. Insbesondere die Weiterleitung der Nachrichteneinheiten 300 dieser und weiterer Echtzeitanwendungen A,B zwischen unterschiedlichen Aufgaben auf unterschiedlichen Knoten 200 kann dabei nicht (nur) statisch sondern (auch) dynamisch priorisiert erfolgen, um eine schnellere Verarbeitung aber auch eine Erfüllung der Echtzeitanforderungen zu gewährleisten.
  • Die Prioritätszuweisung kann entsprechend nicht oder nicht nur anhand statischer Parameter erfolgen, sondern eine Zeitvorgabe 320 der Echtzeitanwendung A und ihren aktuellen Ausführungsstatus berücksichtigen. Die Zeitvorgabe 320 kann dabei eine Frist sein, also einen Zeitpunkt definieren, bis zu welchem die Anwendung spätestens ein Ergebnis produziert haben muss. Entsprechend kann die Priorisierung unter anderem eine Ausführungszeit 310 einer Aufgabe sowie die verbleibende Zeit bis zu diesem Zeitpunkt berücksichtigen. Bei der dynamischen Zuweisung der Priorität kann ferner an jedem Knoten 200 auch die Variabilität der Ausführungszeit 310 auf dem Prozessor des Knotens 200 und die Übertragungsverzögerungen der Nachrichteneinheiten 300, die von den Vorgängerknoten kommen, berücksichtigen werden. Dies kann zusammen einen Zeitspielraum 331 definieren.
  • Das Verfahren kann zunächst ein Empfangen 101 der Nachrichteneinheit 300 von der vorhergehenden Aufgabe 410 der Echtzeitanwendung A umfassen, z. B. durch eine nicht explizit dargestellte Netzwerkschnittstelle eines Knotens 200. Hierbei kann der jeweilige Netzwerkkonfigurator 400 ggf. alle Nachrichten abfangen, die von der Netzwerkschnittstelle eines jeden Knotens ausgesendet oder empfangen werden. Der Netzwerkkonfigurator 400 kann somit dafür verantwortlich sein, die Prioritäten der Nachrichteneinheiten 300, insbesondere Pakete, festzulegen, bevor diese in das Netzwerk gelangen. Alle Aufgaben können daher ihre Nachrichteneinheiten 300 über den Netzwerkkonfigurator 400 übermitteln. Anschließend kann ein Ermitteln 102 der Ausführungszeit 310 der vorhergehenden Aufgabe 410 anhand der empfangenen Nachrichteneinheit 300 erfolgen. Sodann kann ein Auswerten 103 der ermittelten Ausführungszeit 310 durchgeführt werden, wobei das Auswerten 103 zumindest einen Vergleich der ermittelten Ausführungszeit 310 mit der Zeitvorgabe 320 für diese Aufgabe 410 umfasst, um daraus einen aktuellen Zeitspielraum 331 der Echtzeitanwendung A zu ermitteln. In einem anschließenden Schritt kann das Priorisieren 104 der Nachrichteneinheit 300 anhand des ermittelten Zeitspielraums 331 und eine Weiterleitung dieser priorisierten Nachrichteneinheit 300 abhängig von der Priorisierung im Netzwerk 10 an die nachfolgende Aufgabe 420 der Echtzeitanwendung A erfolgen. Auf diese Weise kann die Konfiguration in dem Netzwerk dynamisch anhand des ermittelten Zeitspielraums 331 erfolgen. In anderen Worten wird die Nachrichteneinheit 300 so konfiguriert, dass die anschließende Weiterleitung entsprechend der zugewiesenen Priorität erfolgt. Dies kann z. B. durch eine Kennzeichnung der Nachrichteneinheit 300 erfolgen. Höher priorisierte Nachrichteneinheiten 300 können bspw. schneller weitergeleitet werden als weniger hoch priorisierte Nachrichteneinheiten 300.
  • In 2 ist dargestellt, dass die Echtzeitanwendung A eine erste Echtzeitanwendung A von mindestens zwei im Netzwerk 10 verteilten Echtzeitanwendungen A,B sein kann, wobei die Echtzeitanwendungen A,B zumindest teilweise parallel ausgeführt werden. Es ist möglich, dass bei der Priorisierung sämtliche der Echtzeitanwendungen A,B berücksichtigt werden. So kann das Auswerten 103 der ermittelten Ausführungszeit 310 ferner eine Durchführung eines weiteren Vergleichs des ermittelten Zeitspielraums 331 der ersten Echtzeitanwendung A mit einem aktuellen Zeitspielraum 332 der zweiten Echtzeitanwendung B umfassen, um ein Vergleichsergebnis über die Zeitspielräume 331, 332 der Echtzeitanwendungen A,B zu ermitteln. Der aktuelle Zeitspielraum 332 der zweiten Echtzeitanwendung B kann ggf. ebenfalls durch eine weitere Ausführung der Schritte des Verfahrens ermittelt werden. Anschließend kann das Priorisieren 104 in Abhängigkeit von dem Vergleichsergebnis erfolgen, um die Nachrichteneinheit 300 der ersten Echtzeitanwendung A mit höherer Priorität im Netzwerk 10 weiterzuleiten, wenn der Zeitspielraum 331 der ersten Echtzeitanwendung A geringer ist als der Zeitspielraum 332 der zweiten Echtzeitanwendung B. Umgekehrt kann die Nachrichteneinheit 300 der ersten Echtzeitanwendung A mit niedrigerer Priorität im Netzwerk 10 weitergeleitet werden, wenn der Zeitspielraum 331 der ersten Echtzeitanwendung A höher ist als der Zeitspielraum 332 der zweiten Echtzeitanwendung B. Somit kann anhand des Vergleichsergebnisses entschieden werden, welche der Nachrichteneinheiten 300 der Echtzeitanwendungen A,B zuerst weitergeleitet wird.
  • In 1 ist gezeigt, dass die einzelne Aufgabe 410 (genauso wie die weiteren Aufgaben 410,420 einer Echtzeitanwendung A,B) eine bestimmte Ausführungszeit 310 aufweist, welche während der Laufzeit der Echtzeitanwendungen A,B variieren kann. Ebenfalls kann die Echtzeitanwendung A eine Gesamtausführungszeit 311 aufweisen, welche ebenfalls in Abhängigkeit von den Ausführungszeiten 310 der einzelnen Aufgaben 410,420, aber ggf. auch in Abhängigkeit von weiteren Faktoren wie Übertragungsverzögerungen und Variabilität der Ausführungszeit auf dem Prozessor, variiert. Um die Echtzeitfähigkeit bereitzustellen, muss allerdings eine Obergrenze für die jeweiligen Ausführungszeiten 310 vorgesehen sein. Hierzu ist die Zeitvorgabe 320 vorgesehen. Die Zeitvorgabe 320 kann eine lokale Zeitvorgabe 321 umfassen, welche eine Obergrenze für die Ausführungszeit 310 der einzelnen Aufgabe 410 definiert. Für jede der Echtzeitanwendungen A,B kann zudem im Sinne einer Ende-zu-Ende-Anforderung eine globale Zeitvorgabe 322 vordefiniert sein, welche jeweils eine Obergrenze für die Gesamtausführungszeit 311 der jeweiligen Echtzeitanwendung A,B definiert. Es kann vor dem Auswerten 103 der weitere Schritt vorgesehen sein, dass ein Bestimmen 105 der lokalen Zeitvorgabe 321 anhand der globalen Zeitvorgabe 322 der Echtzeitanwendungen A,B und/oder anhand einer Struktur der verketteten Aufgaben 410, 420 und/oder anhand vordefinierter Anforderungen der Echtzeitanwendungen A,B erfolgt. Bspw. kann für die Ermittlung der lokalen Zeitvorgabe 321 die globale Zeitvorgabe 322 durch die Anzahl der Aufgaben der entsprechenden Echtzeitanwendung A,B geteilt werden. Oder es eine Struktur der verketteten Aufgaben 410, 420 vordefiniert sein, durch welche unterschiedliche Aufgaben unterschiedlich gewichtet werden, sodass die Aufteilung der lokalen Zeitvorgaben 321 entsprechend der Gewichtung erfolgt. Das Priorisieren 104 kann auf diese Weise so durchgeführt werden, dass die globale Zeitvorgabe 322 für jede Echtzeitanwendung A,B eingehalten wird.
  • In 3 ist beispielhaft ein verteiltes System von echtzeitkritischen Anwendungen A,B gezeigt. Die Darstellung erfolgt dabei in der Art eines Graphen, in dem die Eckpunkte die Aufgaben 410,420 und die Kanten zwischen den Eckpunkten die Kommunikation zwischen den verschiedenen Eckpunkten darstellen. Es ist gezeigt, dass die Schritte für die Echtzeitanwendungen A,B an jedem der Knoten 201-204 durch einen Netzwerkkonfigurator 400 durchgeführt werden können. Auch ist es möglich, dass das Netzwerk 10 unterschiedliche (alternative) Routen 450 zwischen den Knoten 201-204 umfasst (schematisch durch einen gestrichelten Pfeil dargestellt). Die Priorisierung 104 kann dann genutzt werden, um zu entscheiden, über welcher der Routen 450 die Nachrichteneinheit 300 weitergeleitet wird, um zu einem der Knoten 201-204 zu gelangen. Bei höherer Priorität kann entsprechend eine Route mit besserem Übertragungsverhalten gewählt werden. So können die Routen z. B. jeweils unterschiedliche Eigenschaften haben (z. B. Latenz, verfügbare Bandbreite usw.). Die Route, über die eine Nachrichteneinheit 300 übertragen werden soll, kann durch Kennzeichen (z. B. VLANs, MPLS usw.) bestimmt werden, welche durch die Priorisierung 104 zur Laufzeit eingefügt werden könnten. Es sei darauf hingewiesen, dass die Kennzeichnungen nicht notwendigerweise zu unterschiedlichen physischen Routen (d. h. unterschiedlichen Verbindungen) führen müssen. Die Kennzeichnungen können auch lediglich die Zuweisung von Netzressourcen (Latenz und Bandbreite) und die Priorisierung der Nachrichteneinheiten 300 implizieren, schließen aber auch die Verwendung unterschiedlicher physischer Routen nicht aus. Eine solche kennzeichnungsbasierte Behandlung von Nachrichteneinheiten 300 kann mit Netzwerktechnologien wie Time-Sensitive Networking (TSN) ermöglicht werden.
  • Anhand 3 sollen beispielhaft die Schritte weiter erläutert werden. So kann Anwendung A beispielhaft eine globale Zeitvorgabe von 20 Zeiteinheiten ab dem Erhalt der ersten Eingabe der Anwendung A zugeordnet sein, während Anwendung B eine globale Zeitvorgabe von 18 Zeiteinheiten zugeordnet wurde. Jede Aufgabe in der Anwendung A,B kann eine bestimmte Ausführungszeit kosten, aber es kann auch die Kommunikation zwischen den Knoten 201-204 Kosten verursachen, welche exemplarisch jeweils mit 1 eingenommen werden. Die Kosten für die Kommunikation innerhalb der Knoten 201-204 ist dabei ggf. vernachlässigbar. Es kann nun eine Aufgabe sein, die Nachrichteneinheiten 300 im Netzwerk 10 so zu priorisieren, dass sichergestellt ist, dass die Anwendungen A,B ihre Ende-zu-Ende-Anforderungen einhalten. Entsprechend 1 kann daher zunächst die lokale Zeitvorgabe 321 für jede Aufgabe durch den Netzwerkkonfigurator 400 berechnet werden und hierbei die globale Zeitvorgabe 322 der Anwendung A,B berücksichtigt werden. Da die globale Zeitvorgabe 322 der Anwendung A beispielhaft 20 beträgt, kann die Aufgabe A5 nicht später als zur Zeit 20, bezogen auf den Empfang der Eingabe, fertiggestellt sein, während A3 nicht später als 20 - 3 - 1 = 16 fertiggestellt sein darf, damit die Anwendung A ihre Zeitvorgabe einhält. Hierbei wird der Kostenwert 1 für die Kommunikation zwischen den Knoten 202 und 203 und die Ausführungszeit von A5 mit 3 Zeiteinheiten berücksichtigt.
  • Gemäß einem weiteren Beispiel kann der Netzwerkkonfigurator 400 auf dem Knoten 203 zu einem bestimmten Zeitpunkt zwei verschiedene Nachrichteneinheiten 300 von den Aufgaben A4 und B2 empfangen. Um die Nachrichteneinheiten 300 mit der richtigen Priorität zu kennzeichnen, kann der Netzwerkkonfigurator 400 zunächst den aktuellen Zeitspielraum 331 der Anwendungen A,B ermitteln. Aufgabe A4 wurde z. B. zum Zeitpunkt 15 abgeschlossen, hat aber eine lokale Zeitvorgabe 321 von 16, während Aufgabe B2 pünktlich zum Zeitpunkt 13 abgeschlossen wurde und eine lokale Zeitvorgabe 321 von 13 hat. Dies bedeutet, dass Anwendung A einen Zeitspielraum 331 von 1 Zeiteinheit hat, während Anwendung B einen Zeitspielraum 331 von 0 hat. Mit dieser Information entscheidet der Netzwerkkonfigurator 400 auf Knoten 203, der Nachrichteneinheit 300 von Anwendung B eine höhere Priorität einzuräumen, da es einen geringeren Zeitspielraum 331 hat, d. h. ein größeres Risiko, die globale Zeitvorgabe 322 zu verpassen.
  • In 2 ist dargestellt, dass der Netzwerkkonfiguration 400 als ein Modul 400 ausgebildet sein kann, wie ein Softwaremodul, welches von einem Knoten 201-204 ausgeführt wird. Entsprechend kann der Netzwerkkonfigurator 400 auch ein Computerprogramm 2 aufweisen, umfassend Befehle, die bei der Ausführung des Computerprogrammes 2 durch einen Computer 200 wie den Knoten 201-204 diesen veranlassen, das erfindungsgemäße Verfahren auszuführen.
  • Die voranstehende Erläuterung der Ausführungsformen beschreibt die vorliegende Erfindung ausschließlich im Rahmen von Beispielen. Selbstverständlich können einzelne Merkmale der Ausführungsformen, sofern technisch sinnvoll, frei miteinander kombiniert werden, ohne den Rahmen der vorliegenden Erfindung zu verlassen.

Claims (11)

  1. Verfahren für eine Konfiguration in einem Netzwerk (10), wobei wenigstens eine Echtzeitanwendung (A) mehrere im Netzwerk (10) verkettete Aufgaben (410, 420) umfasst, wobei das Verfahren die nachfolgenden Schritte für die wenigstens eine Echtzeitanwendung (A) umfasst: - Empfangen (101) mindestens einer Nachrichteneinheit (300) von einer vorhergehenden Aufgabe (410) der Echtzeitanwendung (A), - Ermitteln (102) einer Ausführungszeit (310) der vorhergehenden Aufgabe (410) anhand der empfangenen Nachrichteneinheit (300), - Auswerten (103) der ermittelten Ausführungszeit (310), welches zumindest einen Vergleich der ermittelten Ausführungszeit (310) mit wenigstens einer Zeitvorgabe (320) umfasst, um daraus einen aktuellen Zeitspielraum (331) der Echtzeitanwendung (A) zu ermitteln, - Priorisieren (104) der Nachrichteneinheit (300) anhand des ermittelten Zeitspielraums (331) und Weiterleiten der Nachrichteneinheit (300) im Netzwerk (10) abhängig von der Priorisierung an eine nachfolgende Aufgabe (420) der Echtzeitanwendung (A).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Echtzeitanwendung (A) eine erste Echtzeitanwendung (A) von mindestens zwei im Netzwerk (10) verteilten Echtzeitanwendungen (A,B) ist, wobei die Echtzeitanwendungen (A,B) zumindest teilweise parallel ausgeführt sind, wobei das Auswerten (103) der ermittelten Ausführungszeit (310) ferner umfasst: - Durchführen eines weiteren Vergleichs des ermittelten Zeitspielraums (331) der ersten Echtzeitanwendung (A) mit einem aktuellen Zeitspielraum (332) einer zweiten Echtzeitanwendung (B), um ein Vergleichsergebnis über die Zeitspielräume (331, 332) der Echtzeitanwendungen (A,B) zu ermitteln, wobei das Priorisieren (104) in Abhängigkeit von dem Vergleichsergebnis erfolgt, um die Nachrichteneinheit (300) mit höherer Priorität im Netzwerk (10) weiterzuleiten, wenn der Zeitspielraum (331) der ersten Echtzeitanwendung (A) geringer ist als der Zeitspielraum (332) der zweiten Echtzeitanwendung (B).
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Priorisieren (104) ferner in Abhängigkeit von wenigstens einem der nachfolgenden Kriterien erfolgt: - einer Struktur der Verkettung der Aufgaben (410, 420), - einer Funktion der Echtzeitanwendungen (A,B), - einer Relevanz der echtzeitkritischen Ausführung der Echtzeitanwendungen (A,B), - einer Sicherheitsrelevanz der Echtzeitanwendungen (A,B), - einer statischen Priorisierung der Echtzeitanwendungen (A,B).
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die wenigstens eine Zeitvorgabe (320) eine lokale Zeitvorgabe (321) umfasst, welche eine Obergrenze für die Ausführungszeit (310) der einzelnen Aufgabe (410) definiert, wobei die Echtzeitanwendung (A) eine erste Echtzeitanwendung (A) von mindestens zwei im Netzwerk (10) verteilten Echtzeitanwendungen (A,B) ist, wobei für jede der Echtzeitanwendungen (A,B) eine globale Zeitvorgabe (322) vordefiniert ist, welche jeweils eine Obergrenze für eine Gesamtausführungszeit (311) der jeweiligen Echtzeitanwendung (A,B) definiert, wobei vor dem Auswerten (103) der nachfolgende Schritt durchgeführt wird: - Bestimmen (105) der lokalen Zeitvorgabe (321) anhand der globalen Zeitvorgabe (322) der ersten Echtzeitanwendung (A) und anhand einer Struktur der verketteten Aufgaben (410, 420) der ersten Echtzeitanwendung (A), wobei das Priorisieren (104) durchgeführt wird, um die globale Zeitvorgabe (322) für jede Echtzeitanwendung (A,B) einzuhalten.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Schritte des Verfahrens für mindestens zwei oder mindestens drei oder mindestens vier weitere Echtzeitanwendungen (A,B) im Netzwerk (10) durchgeführt werden, wobei das Weiterleiten der jeweiligen Nachrichteneinheiten (300) dynamisch abhängig von der Priorisierung anhand der jeweiligen Zeitspielräume (331) durchgeführt wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die verketteten Aufgaben (410,420) der Echtzeitanwendungen (A,B) auf unterschiedlichen Knoten (201-204) des Netzwerkes (10) ausgeführt werden, und die Schritte des Verfahrens für die Echtzeitanwendungen (A,B) an jedem der Knoten (201-204) durch einen Netzwerkkonfigurator (400) durchgeführt werden.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Netzwerk (10) unterschiedliche Routen (450) zwischen den Knoten (201-204) umfasst, wobei durch die Priorisierung (104) entschieden wird, über welcher der Routen (450) die Nachrichteneinheit (300) weitergeleitet wird, um zu einem der Knoten (201-204) zu gelangen, wobei die Nachrichteneinheiten (300) jeweils als Datenpaket ausgebildet sind und die Knoten (201-204) jeweils als Rechenknoten (201-204) zur Ausführung der Aufgaben (410,420) ausgebildet sind.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Echtzeitanwendungen (A,B) Teile einer Middleware und/oder eines Fahrzeugbetriebssystems und/oder einer autonomen Fahrfunktion und/oder einer speicherprogrammierbaren Steuerung sind, wobei vorzugsweise mindestens eine der Aufgaben einer Echtzeitanwendung (A) zur Erfassung von Sensorwerten, mindestens eine weitere der Aufgaben der Echtzeitanwendung (A) zur Verarbeitung der erfassten Sensorwerte und mindestens eine weitere der Aufgaben der Echtzeitanwendung (A) zur Steuerung einer Maschine anhand der Verarbeitung ausgeführt ist.
  9. Computerprogramm (2), umfassend Befehle, die bei der Ausführung des Computerprogrammes (2) durch einen Computer (200) diesen veranlassen, das Verfahren nach einem der Ansprüche 1 bis 8 auszuführen.
  10. Modul (400) für eine Konfiguration in einem Netzwerk (10), welches eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 8 auszuführen.
  11. System (1), aufweisend: - ein Netzwerk (10) zur Ausführung von Echtzeitanwendungen (A,B), wobei die Echtzeitanwendungen (A,B) jeweils mehrere verkettete Aufgaben (410,420) umfassen, die auf unterschiedlichen Knoten (201-204) des Netzwerkes (10) ausgeführt werden, dadurch gekennzeichnet, dass an den unterschiedlichen Knoten (201-204) jeweils ein Modul (400) nach Anspruch 10 vorgesehen ist, um die Konfiguration dynamisch für die Ausführung der Echtzeitanwendungen (A,B) durchzuführen.
DE102022203945.9A 2022-04-22 2022-04-22 Verfahren für eine Konfiguration in einem Netzwerk Pending DE102022203945A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102022203945.9A DE102022203945A1 (de) 2022-04-22 2022-04-22 Verfahren für eine Konfiguration in einem Netzwerk
US18/185,047 US20230344782A1 (en) 2022-04-22 2023-03-16 Method for a configuration in a network
CN202310432075.6A CN116938704A (zh) 2022-04-22 2023-04-20 用于在网络中进行配置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022203945.9A DE102022203945A1 (de) 2022-04-22 2022-04-22 Verfahren für eine Konfiguration in einem Netzwerk

Publications (1)

Publication Number Publication Date
DE102022203945A1 true DE102022203945A1 (de) 2023-10-26

Family

ID=88238431

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022203945.9A Pending DE102022203945A1 (de) 2022-04-22 2022-04-22 Verfahren für eine Konfiguration in einem Netzwerk

Country Status (3)

Country Link
US (1) US20230344782A1 (de)
CN (1) CN116938704A (de)
DE (1) DE102022203945A1 (de)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687257B1 (en) * 1999-08-12 2004-02-03 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing dynamic guaranteed mixed priority scheduling for communications and processing
US20040100982A1 (en) * 1999-09-30 2004-05-27 Sivaram Balasubramanian Distributed real-time operating system
US6714913B2 (en) * 2001-08-31 2004-03-30 Siemens Medical Solutions Health Services Corporation System and user interface for processing task schedule information
US20040139431A1 (en) * 2002-12-30 2004-07-15 International Business Machines Corporation Determining graduated availability for meetings by individuals and groups
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
US20140007004A1 (en) * 2012-06-29 2014-01-02 Nokia Corporation Method and apparatus for task chaining
US10503544B2 (en) * 2016-10-17 2019-12-10 Toyota Jidosha Kabushiki Kaisha Efficient mapping from task graphs to dynamic system platforms
US11095732B2 (en) * 2017-05-08 2021-08-17 Branch Metrics, Inc. Matching and attribution of user device events
DE102019206923B3 (de) * 2019-05-13 2020-08-13 Volkswagen Aktiengesellschaft Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur
US10917355B1 (en) * 2019-08-28 2021-02-09 Honeywell International Inc. Methods, systems and apparatuses for optimizing time-triggered ethernet (TTE) network scheduling by using a directional search for bin selection
US11552857B2 (en) * 2019-08-28 2023-01-10 Honeywell International Inc. Methods, systems and appratuses for optimizing the bin selection of a network scheduling and configuration tool (NST) by bin allocation, demand prediction and machine learning

Also Published As

Publication number Publication date
US20230344782A1 (en) 2023-10-26
CN116938704A (zh) 2023-10-24

Similar Documents

Publication Publication Date Title
DE102017126197B4 (de) Vorrichtung und Verfahren zur skalierbaren Verkehrsformung bei einem Empfänger mit einer zeitlich indexierten Datenstruktur
DE102006010400B4 (de) Verfahren zur Erstellung eines optimierten Ablaufplans für ein zeitgesteuertes verteiltes Rechnersystem
DE102017214068B4 (de) Verfahren, Vorrichtung und Computerprogramm zur dynamischen Ressourcenzuweisung in einem Mehrprozessor-Computersystem
DE112006001011T5 (de) Erweiterbare Planung von Nachrichten auf zeitgetriggerten Bussen
DE102019201231A1 (de) Vorrichtung und Verfahren zur Erhöhung einer Verfügbarkeit einer Kommunikationsinfrastruktur
AT501480A4 (de) Verfahren zum erstellen von kommunikationsplänen für ein verteiltes echtzeit-computersystem
DE102015100566A1 (de) Verfahren und leichter Mechanismus für gemischte kritische Anwendungen
EP4260524A1 (de) Verfahren zur optimierung der übertragungsdatenrate in einem sensornetzwerk im teilnetzbetrieb in einem ethernetnetzwerk
DE102018125090A1 (de) Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
DE102022203945A1 (de) Verfahren für eine Konfiguration in einem Netzwerk
EP1514180A2 (de) Reaktionszeit-beschränkung eines software-prozesses
EP2615511A1 (de) Verfahren zur synchronen Ausführung von Programmen in einem redundanten Automatisierungssystem
DE102019217047A1 (de) Verfahren und Vorrichtung zum Verwalten von Zugriffen mehrerer Softwarekomponenten auf Softwareschnittstellen
DE102004002020A1 (de) Steuerungssoftwarearchitektur zur Realisierung einer dezentralisierten kooperativen Steuerung mehrerer elektronischer Steuerungsvorrichtungen, die über ein Netzwerk verbunden sind
EP4256757A1 (de) Verfahren zum schnellen flashen von sensorknoten über ein ethernetnetzwerk
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE102020205720A1 (de) Computerimplementiertes Verfahren und Vorrichtung zur Planung von Ressourcen
EP2126700B1 (de) Steuerung des laufzeitverhaltens von prozessen
DE102023116492B3 (de) Computer-implementiertes Verfahren zum Bestimmen einer Zusammenstellung eines inhomogenen Datenübertragungssystems für einen vorgegebenen Datenerzeugungsprozess, inhomogenes Datenübertragungssystem, Kraftfahrzeug, Computerprogramm und computerlesbares Speichermedium
DE102019219260A1 (de) Verfahren zum Betreiben einer Recheneinheit
EP1047990B1 (de) Vorrichtung und verfahren zur steuerung von prozessen auf einem computersystem
DE112018003505T5 (de) Zugriffssteuereinrichtung
DE102022204718A1 (de) Verfahren für eine adaptive Ressourcenzuweisung für Anwendungen in einem verteilten System heterogener Rechenknoten
LU101163B1 (de) Verfahren und Vorrichtungen für eine Lastzuweisung und Überwachung für eine zuzuweisende versorgungssicherheitskritische Ressource in einem Netzwerk
DE102021209509A1 (de) Verfahren und Vorrichtung zum Bearbeiten von zumindest einer ersten und einer zweiten Rechenoperation in einer Recheneinheit