-
Die Erfindung betrifft ein Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur nach dem Oberbegriff eines unabhängigen Verfahrensanspruches sowie eine entsprechende verteilte Systemarchitektur nach dem Oberbegriff eines unabhängigen Systemanspruches.
-
Mit dem Aufkommen der mobilen Kommunikation und des Cloud Computing ist es nicht mehr erforderlich, dass die Verarbeitung von Daten für Anwendungen auf einem mobilen Gerät selbst, bspw. einem Fahrzeug oder einer anderen Benutzervorrichtung, stattfindet. Aufgrund der höheren Rechenleistung kann es vorteilhaft sein, entfernte Ressourcen, wie z. B. Cloud-Ressourcen und/oder Edge-Cloud-Ressourcen, für die Verarbeitung von Daten zu nutzen, auch wenn die Kommunikation mit den entfernten Ressourcen Zeit und Energie benötigt. Der Benutzer muss dabei entscheiden, ob das lokale Computing auf dem mobilen Gerät selbst, z.B. in einem Fahrzeug, genutzt wird oder ob die Berechnung auf einem mobilen Edge-Server in der Nähe des mobilen Geräts oder in einem Cloud-Rechenzentrum weiter weg vom mobilen Gerät durchgeführt wird. Diese Entscheidung sollte möglichst automatisch erfolgen, um den Benutzerkomfort nicht zu beeinträchtigen. Zudem muss bei mobilen Geräten eine Übergabe zwischen den benachbarten Edge-Servern während der Bewegung der mobilen Geräte möglichst automatisch erfolgen.
-
Eine Einbeziehung von Netzwerken in Cluster-Umgebungen ist im Allgemeinen aus der Schrift Xiao Qin et al.: „Communication-Aware Load Balancing for Parallel Applications on Clusters“, In: IEEE Transactions on Computers, Vol. 59, Jan. 2010, pp. 42 - 52 bekannt.
-
Derzeit werden Anwendungen nach ihrer Priorisierung entweder einem lokalen Anwendungs-Server oder einem entfernten Anwendungs-Server zugeordnet, wie dies die Druckschrift
EP 3 425 873 A1 beispielhaft zeigt. Dabei werden Anwendungen als zeitkritisch oder normal eingestuft. Gemäß der Priorisierung kriegen sie eine feste Zuordnung zum lokalen oder entfernten Anwendungs-Server. Eine solche Zuordnung ist jedoch starr und unflexibel, was zu Komforteinbußen bei mobilen Anwendungen führen kann.
-
Die Aufgabe der Erfindung ist es daher, ein verbessertes Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur bereitzustellen. Insbesondere ist es die Aufgabe der Erfindung, ein Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur zur Verfügung zu stellen, welches eine flexible, anpassungsfähige und komfortable Zuordnung von Anwendungen an verfügbare Ressourcen innerhalb der verteilten Systemarchitektur ermöglicht. Zudem ist es die Aufgabe der Erfindung, eine entsprechende verteilte Systemarchitektur bereitzustellen.
-
Die erfindungsgemäße Aufgabe wird durch ein Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur mit den Merkmalen des unabhängigen Verfahrensanspruches, insbesondere aus dem kennzeichnenden Teil, gelöst. Zudem wird die erfindungsgemäße Aufgabe durch eine entsprechende verteilte Systemarchitektur mit den Merkmalen des unabhängigen Systemanspruches, insbesondere aus dem kennzeichnenden Teil, gelöst. In den abhängigen Ansprüchen sind bevorzugte Weiterbildungen der Erfindung aufgeführt. Merkmale, die zu den einzelnen Erfindungsaspekten offenbart werden, können in der Weise miteinander kombiniert werden, dass bezüglich der Offenbarung zu den Erfindungsaspekten der Erfindung stets wechselseitig Bezug genommen wird bzw. werden kann.
-
Die Erfindung stellt ein Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur bereit, aufweisend:
- - einen, insbesondere mobilen, Anwendungs-Client (z. B. in einer Benutzervorrichtung, bspw. in einem mobilen Gerät, Mobiltelefon, Smartphone, Laptop, Fahrzeug-Steuergerät, Navigationseinheit, Infotainmentsystem usw.) zum Empfangen von Eingangsdaten (bspw. Sensordaten) und zum Bereitstellen von Ausgangsdaten (bspw. Aktuatoreinstellungen) basierend auf bearbeiteten Eingangsdaten,
- - einen lokalen Anwendungs-Server (lokale Recheneinheit) am Anwendungs-Client und mindestens einen entfernten Anwendungs-Server (Cloud-Server sowie ein oder mehrere Edge-Cloud-Server) zum Empfangen von Eingangsdaten von dem Anwendungs-Client, zum Bearbeiten von Eingangsdaten für den Anwendungs-Client und zum Zurücksenden von bearbeiteten Eingangsdaten an den Anwendungs-Client sowie
- - einen Anwendungs-Manager (lokales Steuergerät) zum Zuordnen der Anwendung (bzw. zumindest einer Rechenaufgabe zum Bearbeiten von Eingangsdaten für die Anwendung) zu dem lokalen Anwendungs-Server oder dem mindestens einen entfernten Anwendungs-Server.
-
Hierzu ist es erfindungsgemäß vorgesehen, dass das Verfahren folgende Schritte aufweist:
- - Bestimmen einer ersten Umlaufzeit zum Empfangen und zum Bearbeiten von Eingangsdaten auf dem lokalen Anwendungs-Server (und ggf. zum Zurücksenden von bearbeiteten Eingangsdaten an den Anwendungs-Client),
- - Bestimmen einer zweiten Umlaufzeit zum Empfangen und zum Bearbeiten von Eingangsdaten auf dem mindestens einen entfernten Anwendungs-Server (und ggf. zum Zurücksenden von bearbeiteten Eingangsdaten an den Anwendungs-Client),
- - Bestimmen einer, insbesondre maximal zulässigen, Toleranzzeit zum Empfangen und zum Bearbeiten von Eingangsdaten für die Anwendung (und ggf. zum Zurücksenden von bearbeiteten Eingangsdaten an den Anwendungs-Client),
- - Vergleichen der ersten Umlaufzeit und der zweiten Umlaufzeit mit der Toleranzzeit,
- - Zuordnen der Anwendung zu dem lokalen Anwendungs-Server oder dem mindestens einen entfernten Anwendungs-Server in Abhängigkeit von dem Vergleich.
-
Die Erfindung erkennt dabei, dass alle Anwendungen unterschiedlich sind. Sie haben unterschiedliche Geschwindigkeiten und unterschiedliche (zulässige und/oder tolerierbare) Reaktionszeiten, je nach Art der erforderlichen Bearbeitung bzw. Berechnung. Die Erfindung gilt vorteilhafterweise für alle Bereiche, in denen die lokal verfügbaren Rechenressourcen begrenzt sind. Einige der Anwendungen umfassen Automotive, Drohnen, kognitive Anwendungen usw. Die Ergebnisse der Bearbeitung auf entfernten Anwendungs-Servern, wie z. B. auf einem zentralen Cloud-Server und/oder auf einem oder mehreren Edge-Cloud-Servern, sind grundsätzlich besser als die der lokalen Berechnung, da die Hardware-Ressourcen auf entfernten Anwendungs-Servern besser sind, wobei die lokalen Rechenressourcen zumeist begrenzt sind.
-
Der Erfindungsgedanke liegt dabei darin, dass es für alle Arten von Anwendungen möglich ist, eine Toleranzzeit zum Empfangen und zum Bearbeiten von Eingangsdaten oder anders ausgedrückt einen Latenzschwellenwert bzw. eine Umlaufzeit (sog. Round-Trip-Zeit, RTT) als Übergabekriterium zu verwenden, um die effizienteste Berechnungsumgebung für die konkrete Anwendung auszuwählen. Die Toleranzzeit bzw. die Umlaufzeit oder die Round-Trip-Zeit ist die Dauer, von der das lokale Gerät (d. h. Anwendungs-Client) eine Anforderung, umfassend Sensor-Rohdaten (d. h. Eingangsdaten), an einen verfügbaren Anwendungs-Server (lokal oder entfernt) sendet, bis hin zum Empfang der berechneten Ergebnisse von dem Anwendungs-Server. Die Toleranzzeit bzw. die Umlaufzeit beinhaltet somit die Wartezeit (sog. Latenz) und die Rechenzeit am verfügbaren Anwendungs-Server. Im Rahmen der Erfindung ist die explizite Berücksichtigung des Durchsatzes innerhalb des Netzwerkes nicht erforderlich, damit die Übergabe-Entscheidung getroffen werden kann, da diese Information in der Toleranzzeit bereits abgebildet ist. Die Toleranzzeit bzw. die Umlaufzeit ist ein einfacher einzelner Parameter, den der Entwickler bei dem Entwickeln einer Anwendung einstellen kann. Im Rahmen der Erfindung ist es möglich, die Toleranzzeit bzw. die Umlaufzeit als einen statischen oder als einen adaptiven Schwellenwert einzustellen, darauf wird im Nachfolgenden im Einzelnen Bezug genommen. Die Dynamik der Anwendung kann im Rahmen der Erfindung einmalig vor dem Start und/oder während der Laufzeit der Anwendung gemessen werden, woraufhin die Toleranzzeit adaptiv geändert werden kann. Langsame Änderungen in der Anwendung können im Rahmen der Erfindung zu hohen Schwellenwerten führen, während schnelle Änderungen in der Anwendung zu niedrigeren Schwellenwerten führen können. Im Rahmen der Erfindung kann weiterhin die Benutzererfahrung und/oder die von der Anwendung definierten Qualitätskriterien beim Bestimmen der Toleranzzeit berücksichtigt werden.
-
Die verteilte Systemarchitektur im Rahmen der Erfindung basiert auf drei Säulen:
- - Der Anwendungs-Client fungiert im Rahmen der Erfindung als ein Frontend. Er liest Eingangsdaten (bspw. Sensorinformationen) aus und stellt Ausgangsdaten (bspw. Stellgliedausgänge) zur Verfügung.
-
Dabei kann der Anwendungs-Client als eine Mensch-Maschine-Schnittstelle, sog. HMI, betrachtet werden. Die Anwendungs-Client weist ein lokal verfügbares Rechengerät (lokaler Anwendungs-Server) auf, auf dem die Anwendung ablaufen kann.
-
Der Anwendungs-Server (lokal oder entfernt) ist ein Rechenmodul zur Verarbeitung von Eingangsdaten (bspw. von Sensoren) und zum Ausgeben von bearbeiteten Eingangsdaten, bspw. in Form von Ausgangsdaten (bspw. Stellwerte für korrespondierende Aktoren).
-
Der Anwendungs-Server kann lokal dort vorgesehen sein, wo sich der Anwendungs-Client befindet. Es kann auch auf einen Edge-Cloud-Server oder in ein größeres Rechenzentrum in der Cloud verschoben werden. Im Rahmen der Erfindung kann der Anwendungs-Server mindestens einen lokalen Anwendungs-Server sowie mehrere entfernte Anwendungs-Server aufweisen. Die mehrere entfernte Anwendungs-Server können wiederum mehrere (auch wechselnde) Edge-Cloud-Server und mindestens einen zentralen Cloud-Server umfassen.
-
Der Anwendungs-Manager ist eine Einheit, die basierend auf den erfindungsgemäßen Regeln bzw. auf dem erfindungsgemäßen Verfahren entscheidet, wo die Eingangsdaten bearbeitet werden.
-
Ferner kann die Erfindung bei einem Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur vorsehen, dass die Anwendung dem lokalen Anwendungs-Server zugeordnet wird, wenn die erste Umlaufzeit unterhalb der Toleranzzeit liegt. Vorteilhafterweise kann die Anwendung erfolgreich direkt auf dem lokalen Anwendungs-Server ausgeführt werden, wenn die erste Umlaufzeit die Toleranzzeit nicht überschreitet.
-
Weiterhin kann die Erfindung bei einem Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur vorsehen, dass die Anwendung dem mindestens einen entfernten Anwendungs-Server zugeordnet wird, wenn die zweite Umlaufzeit unterhalb der Toleranzzeit liegt. Hierbei kann die Anwendung dem mindestens einen entfernten Anwendungs-Server zugeordnet werden, wenn die erforderliche Wartezeit und die Bearbeitungszeit auf dem mindestens einen entfernten Anwendungs-Server im Rahmen der zweiten Umlaufzeit die Toleranzzeit nicht überschreitet.
-
Des Weiteren kann die Erfindung bei einem Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur vorsehen, dass das Zuordnen der Anwendung dem lokalen Anwendungs-Server oder dem mindestens einen entfernten Anwendungs-Server in Anhängigkeit von mindestens einer Bedingung durchgeführt wird, wenn die erste Umlaufzeit und die zweite Umlaufzeit unterhalb der Toleranzzeit liegen. Mithilfe der Bedingung kann eine Zuordnung bei den Fällen durchgeführt werden, wenn beide oder mehrere Anwendungs-Server die bearbeiteten Eingangsdaten innerhalb der Toleranzzeit bereitstellen können.
-
Zudem ist es denkbar, dass die mindestens eine Bedingung mindestens eine folgende Information umfassen kann, wie: Benutzerpräferenzen, Erfahrungsdaten und/oder Anwendungs-Performance. Z. B. ist es denkbar, dass die entfernte (Edge-)Cloud-Lösung bevorzugt werden kann, wenn beide oder mehrere Anwendungs-Server die bearbeiteten Eingangsdaten innerhalb der Toleranzzeit bereitstellen können.
-
Im Rahmen der Erfindung ist es außerdem möglich, dass die Toleranzzeit einen statischen Schwellenwert umfasst. Somit kann die Toleranzzeit einmalig und/oder mit wenig Aufwand, bspw. von einem Anwendungs-Entwickler, bestimmt werden.
-
Ferner kann die Erfindung vorsehen, dass der statische Schwellenwert als ein Mittelwert von der ersten Umlaufzeit und der zweiten Umlaufzeit für eine Vielzahl an Anfragen zum Bearbeiten von Eingangsdaten ermittelt wird. Somit kann ein plausibler Schwellenwert zum Bestimmen der Toleranzzeit aus einer Vielzahl von Anfragen berechnet werden.
-
Weiterhin ist es im Rahmen der Erfindung denkbar, dass der statische Schwellenwert durch eine Vermessung der verteilten Systemarchitektur bestimmt wird. Somit kann ein plausibler Schwellenwert zum Bestimmen der Toleranzzeit für die jeweilige verteilte Systemarchitektur berechnet werden, auch wenn die Vermessung nur einmal durchgeführt wird.
-
Des Weiteren ist es im Rahmen der Erfindung denkbar, dass beim Bestimmen des statischen Schwellenwerts die Dynamik von Ausgangsdaten berücksichtigt wird. Hierbei kann die Dynamik von Ausgangsdaten innerhalb (nur) einer Toleranzzeit untersucht werden, um eine funktionale Mittelung von Ausgangsdaten zu berücksichtigen.
-
Zudem ist es denkbar, dass der statische Schwellenwert einmalig für die Anwendung bestimmt wird. Auf diese Weise kann der Rechenaufwand zum Bestimmen der Toleranzzeit gering gehalten werden.
-
Im Rahmen der Erfindung ist es außerdem möglich, dass die Toleranzzeit einen adaptiven, insbesondere zeitabhängigen, Schwellenwert umfasst. Auf diese Weise ist es möglich, die Toleranzzeit in Abhängigkeit von aktuellen Begebenheiten automatisch zu aktualisieren, die Veränderungen in den Ausgangsdaten sowie die Geschwindigkeit der Veränderung der Ausgangsdaten umfassen können.
-
Ferner kann die Erfindung vorsehen, dass beim Bestimmen des adaptiven Schwellenwerts die Dynamik von Ausgangsdaten berücksichtigt wird. Somit kann die Geschwindigkeit der Veränderung der Ausgangsdaten berücksichtigt werden. Somit kann die Erfindung dem Umstand Rechnung tragen, dass langsame Änderungen in der Anwendung zu hohen Schwellenwerten führen können, und dass schnelle Änderungen in der Anwendung zu niedrigeren Schwellenwerten führen können.
-
Weiterhin ist es im Rahmen der Erfindung denkbar, dass der adaptive Schwellenwert dynamisch bei der Ausführung der Anwendung angepasst wird. Somit kann der adaptive Schwellenwert regelmäßig im Laufe der Zeit aktualisiert werden.
-
Des Weiteren kann die Erfindung bei einem Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur vorsehen, dass beim Zuordnen der Anwendung dem lokalen Anwendungs-Server oder dem mindestens einen entfernten Anwendungs-Server bevorzugt ein adaptiver Schwellenwert im Rahmen der Toleranzzeit berücksichtigt wird, wenn die Anwendung eine dynamische Anwendung ist, und/oder wenn sich die Ausgangsdaten schneller verändern als ein bestimmter Schwellenwert. Mithilfe des Schwellenwertes kann eine einfache Regel festgelegt werden, wann der adaptive Schwellenwert bevorzugt wird, bzw. ab wann die Geschwindigkeit der Veränderung der Ausgangsdaten hoch genug ist, sodass sich die Berechnung des adaptiven Schwellenwertes lohnt.
-
Zudem kann die Erfindung bei einem Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur vorsehen, dass beim Zuordnen der Anwendung dem lokalen Anwendungs-Server oder dem mindestens einen entfernten Anwendungs-Server bevorzugt ein statischer Schwellenwert im Rahmen der Toleranzzeit berücksichtigt wird, wenn die Anwendung eine statische oder eine sich im Wesentlichen langsam verändernde Anwendung ist, und/oder wenn sich die Ausgangsdaten langsamer verändern als ein bestimmter Schwellenwert. Somit kann bei sich eher langsam ändernden Anwendungen die Rechenkapazität zum Bestimmen der Toleranzzeit reduziert werden.
-
Außerdem stellt die Erfindung eine verteilte Systemarchitektur bereit, aufweisend: einen, insbesondere mobilen, Anwendungs-Client zum Empfangen von Eingangsdaten und zum Bereitstellen von Ausgangsdaten basierend auf bearbeiteten Eingangsdaten, einen lokalen Anwendungs-Server am Anwendungs-Client und mindestens einen entfernten Anwendungs-Server zum Empfangen von Eingangsdaten von dem Anwendungs-Client, zum Bearbeiten von Eingangsdaten für den Anwendungs-Client und zum Zurücksenden von bearbeiteten Eingangsdaten an den Anwendungs-Client, und einen Anwendungs-Manager zum Zuordnen einer Anwendung dem lokalen Anwendungs-Server oder dem mindestens einen entfernten Anwendungs-Server. Hierzu ist es erfindungsgemäß vorgesehen, dass der Anwendungs-Manager dazu ausgeführt ist:
- - eine erste Umlaufzeit zum Empfangen und zum Bearbeiten von Eingangsdaten auf dem lokalen Anwendungs-Server zu bestimmen,
- - eine zweite Umlaufzeit zum Empfangen und zum Bearbeiten von Eingangsdaten auf dem mindestens einen entfernten Anwendungs-Server zu bestimmen,
- - eine Toleranzzeit zum Empfangen und zum Bearbeiten von Eingangsdaten für die Anwendung zu bestimmen,
- - die erste Umlaufzeit und die zweite Umlaufzeit mit der Toleranzzeit zu vergleichen,
- - die Anwendung dem lokalen Anwendungs-Server oder dem mindestens einen entfernten Anwendungs-Server in Abhängigkeit von dem Vergleich zuzuordnen.
-
Mithilfe der erfindungsgemäßen verteilten Systemarchitektur werden die gleichen Vorteile erreicht, die oben im Zusammenhang mit dem erfindungsgemäßen Verfahren beschrieben wurden. Auf diese Merkmale wird vorliegend vollumfänglich Bezug genommen.
-
Vorteilhafterweise kann der Anwendungs-Manager speziell dazu ausgeführt sein, ein Verfahren ganz oder zum Teil durchzuführen, welches wie oben beschrieben ablaufen kann.
-
Im Rahmen der Erfindung ist es denkbar, dass der Anwendungs-Client in einer Benutzervorrichtung, einem mobilen Gerät, einem Smartphone, einem Laptop und/oder einem Fahrzeug vorgesehen ist.
-
Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand der Figuren näher dargestellt.
-
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. Dabei ist zu beachten, dass die Figuren nur einen beschreibenden Charakter haben und nicht dazu gedacht sind, die Erfindung in irgendeiner Form einzuschränken. Es zeigen:
- 1 eine schematische Darstellung einer verteilten Systemarchitektur in Rahmen der Erfindung,
- 2 ein Diagramm zum Vergleichen einer ersten Umlaufzeit und einer zweiten Umlaufzeit mit einer Toleranzzeit,
- 3 eine Abhängigkeit zwischen einer gemittelten Geschwindigkeit der Änderung der Ausgangsdaten und der Toleranzzeit,
- 4 eine Geschwindigkeit der Änderung der Ausgangsdaten in Abhängigkeit von der Zeit, und
- 5 eine Anwendungs-Performance in Abhängigkeit von der Umlaufzeit.
-
In den nachfolgenden Figuren werden für die gleichen technischen Merkmale auch von unterschiedlichen Ausführungsbeispielen die identischen Bezugszeichen verwendet.
-
Die 1 zeigt eine beispielhafte verteilte Systemarchitektur 100 in Rahmen der Erfindung. Die verteilte Systemarchitektur 100 weist folgende drei Elemente auf:
- - einen, insbesondere mobilen, Anwendungs-Client 10 (z. B. in einer Benutzervorrichtung 101, wie bspw. in einem mobilen Gerät, Mobiltelefon, Smartphone, Laptop, Fahrzeug-Steuergerät, Navigationseinheit, Infotainmentsystem usw.) zum Empfangen von Eingangsdaten (bspw. Sensordaten) und zum Bereitstellen von Ausgangsdaten f(t) (bspw. Aktuatoreinstellungen) basierend auf bearbeiteten Eingangsdaten,
- - einen lokalen Anwendungs-Server 21 (lokale Recheneinheit) am Anwendungs-Client 10 und mindestens einen entfernten Anwendungs-Server 22 (Cloud-Server sowie ein oder mehrere Edge-Cloud-Server) zum Empfangen von Eingangsdaten von dem Anwendungs-Client 10, zum Bearbeiten von Eingangsdaten für den Anwendungs-Client 10 und zum Zurücksenden von bearbeiteten Eingangsdaten an den Anwendungs-Client 10 sowie
- - einen Anwendungs-Manager 30 (lokales Steuergerät) zum Zuordnen einer Anwendung APP zu dem lokalen Anwendungs-Server 21 oder dem mindestens einen entfernten Anwendungs-Server 22.
-
Die Erfindung sieht ein Verfahren zum Ausführen einer Anwendung APP auf einer verteilten Systemarchitektur 100 gemäß der 1 vor, das folgende Schritte aufweist:
- - Bestimmen einer ersten Umlaufzeit RTT1 zum Empfangen und zum Bearbeiten von Eingangsdaten auf dem lokalen Anwendungs-Server 21,
- - Bestimmen einer zweiten Umlaufzeit RTT2 zum Empfangen und zum Bearbeiten von Eingangsdaten auf dem mindestens einen entfernten Anwendungs-Server 22,
- - Bestimmen einer, insbesondre maximal zulässigen, Toleranzzeit Δtmax zum Empfangen und zum Bearbeiten von Eingangsdaten für die Anwendung APP,
- - Vergleichen der ersten Umlaufzeit RTT1 und der zweiten Umlaufzeit RTT2 mit der Toleranzzeit Δtmax,
- - Zuordnen der Anwendung APP (bzw. zumindest einer Rechenaufgabe zum Bearbeiten von Eingangsdaten) für die Anwendung APP dem lokalen Anwendungs-Server 21 oder dem mindestens einen entfernten Anwendungs-Server 22 in Abhängigkeit von dem Vergleich.
-
Zum Ausführen des erfindungsgemäßen Verfahrens ist insbesondere der Anwendungs-Manager 30 ausgebildet.
-
Der lokale Anwendungs-Server 21 kann sich am Anwendungs-Client 10 befinden, insbesondere innerhalb der Benutzervorrichtung 101.
-
Es kann auch auf einen Edge Cloud Server oder in ein größeres Rechenzentrum in der Cloud verschoben werden. zeigt die Kommunikation zwischen einem Anwendungsclient und Manager und dem Anwendungsserver, der lokal oder in der Cloud ausgeführt werden kann.
-
Die Edge-Infrastruktur 102 kann den mindestens einen entfernten Anwendungs-Server 22, umfassend einen zentralen Cloud-Server sowie einen oder mehrere Edge-Cloud-Server, aufweisen.
-
Wie es die 1 zeigt, werden die vom Anwendungs-Client 10 an den lokalen Anwendungs-Server 21 sowie an den mindestens einen entfernten Anwendungs-Server 22 gesendeten Eingangsdaten als Rohdaten mit einem Index i fortlaufend nummeriert. Dieser Index wird zusammen mit den eigentlichen Eingangsdaten an den jeweiligen Anwendungs-Server 21, 22 gesendet und auch der Antwort des jeweiligen Anwendungs-Servers 21, 22 hinzugefügt. Dieser Mechanismus stellt sicher, dass der Anwendungs-Client 10 die Antwortzeiten Δtci, Δtli verschiedener Anwendungs-Server 21, 22 für die gleiche Eingabe vergleichen kann.
-
Der Anwendungs-Client 10 kann die Umlaufzeiten RTT1, RTT2 des lokalen Anwendungs-Servers 21 (ti+Δtli) und des entfernten Anwendungs-Servers 22 in der (Edge-)Cloud (ti+Δtci) messen und vergleichen.
-
Jede Anwendung hat eine bestimmte Frist, nämlich die erfindungsgemäße Toleranzzeit Δtmax, die angibt, wann die Bearbeitung der Eingangsdaten auf dem jeweiligen Anwendungs-Server 21, 22 spätestens abgeschlossen werden muss, damit dieser Anwendungs-Server 21, 22 zum Ausführen einer Rechenaufgabe für die Anwendung APP in Frage kommt.
-
In der 2 werden die Umlaufzeiten RTT1, RTT2 für eine Rechenaufgabe mit der Indexnummer i aus der lokalen Antwortzeit Δtli oder der (Edge-)Cloud-Antwortzeit Δtci mit der Toleranzzeit Δtmax verglichen. Die Umlaufzeiten RTT1, RTT2 enthalten dabei die Kommunikationsverzögerung und die Rechenzeit auf dem jeweiligen Anwendungs-Server 21, 22.
-
Wenn beide Antwortzeiten Δtli, Δtci unter der Toleranzzeit Δtmax liegen, kann der Anwendungs-Manager 30 beide Laufzeitumgebungen bzw. beide Anwendungs-Server 21, 22 frei wählen.
-
Ferner könnte mindestens eine Bedingung vorgesehen sein, auf Grund welcher der eine oder der andere Anwendungs-Server 21, 22 bevorzugt wird. Bspw. kann die mindestens eine Bedingung eine Verwendung des mindestens einen entfernten Anwendungs-Servers 22 (Cloud-Server oder Edge-Cloud-Server) vorsehen, wenn die erste Umlaufzeit RTT1 und die zweite Umlaufzeit RTT2 unterhalb der Toleranzzeit Δtmax liegen. Weiterhin ist es denkbar, dass die mindestens eine Bedingung mindestens eine folgende Information umfassen kann, wie z. B.: Benutzerpräferenzen, Erfahrungsdaten und/oder Anwendungs-Performance q(Δtruntime).
-
Bspw. kann die mindestens eine Bedingung in der Situation gemäß der 1 vorsehen, dass der mindestens eine entfernte Anwendungs-Server 22 bevorzugt wird, wenn die zweite Umlaufzeit RTT2 (bzw. Fernreaktionszeit) nicht länger als die erste Umlaufzeit RTT1 (bzw. lokale Reaktionszeit) ist. Grundsätzlich ist ein lokales Computing am lokalen Anwendungs-Server 21 die einzig sinnvolle Wahl, wenn die Fernreaktionszeit die Toleranzzeit Δtmax überschreitet. Ebenso ist nur Remote-Computing auf dem mindestens einen entfernten Anwendungs-Server 22 möglich, wenn die lokale Reaktionszeit länger als die Toleranzzeit Δtmax ist. Wenn beide Umlaufzeiten RTT1, RTT2 länger als die Toleranzzeit Δtmax sind, kann die Rechenaufgabe für die Anwendung APP nicht in Echtzeit übernommen werden.
-
Die erfindungsgemäße Idee liegt dabei darin, die Toleranzzeit Δtmax zu verwenden und mit den Umlaufzeiten RTT1, RTT2 zu vergleichen. Darauf aufbauend wird eine Entscheidung für die Verwendung des jeweiligen Anwendungs-Servers 21, 22 getroffen.
-
Im Rahmen der Erfindung kann die Toleranzzeit Δtmax einen statischen Schwellenwert umfassen. Die Methodik zur Berechnung des statischen Schwellenwertes der Toleranzzeit Δtmax wird im Folgenden erläutert.
-
Die erste Methode zur Berechnung des statischen Schwellenwertes kann dann realisiert werden, wenn dem Entwickler die verteilte Systemarchitektur
100, umfassend den lokalen Anwendungs-Server
21 und die Edge-Infrastruktur
102, zum Vermessen zur Verfügung steht. Bei dieser Methode wird die Anwendung APP nach deren Entwicklung zweimal auf dieser verteilten Systemarchitektur
100 für eine definierte Folge von Eingangsdaten ausgeführt. Im ersten Lauf wird die Anwendungsberechnung auf der Benutzervorrichtung
101 vollständig durchgeführt und die Edge-Infrastruktur
102 nicht verwendet. Im zweiten Lauf wird die Anwendungsberechnung in der Edge-Infrastruktur
102 durchgeführt und die Rechenressourcen der Benutzervorrichtung
101 werden nicht verwendet. In beiden Durchgängen wird die gleiche Reihenfolge der Eingangsdaten verwendet. Die Umlaufzeiten RTT1, RTT2 der Eingangsdaten wird für eine Vielzahl an Anfragen für beide Läufe gemittelt. Dieser Wert wird dann als statischer Schwellenwert der Toleranzzeit Δtmax definiert. Die Gleichung ist wie folgt dargestellt:
-
N ist dabei die Anzahl an Anfragen, die in der Reihenfolge an die Anwendungs-Server 21, 22 gesendet wurden.
-
Die obige Methode ist ein sicherer Ansatz zum Bestimmen des statischen Schwellenwertes, da sie auf den tatsächlichen Umlaufzeiten RTT1, RTT2 basiert, die von der verteilten Systemarchitektur 100 aufgezeichnet wurden.
-
Eine andere Methode könnte jedoch bevorzugt werden, wenn der Entwickler keinen Zugriff auf die verteilte Systemarchitektur 100 hat.
-
Eine zweite Methode könnte auf der Grundlage der Dynamik der zugrunde liegenden Anwendung APP basieren. Ohne Einschränkung der Anwendbarkeit werden ein oder mehrere Schlüsselparameter der Anwendung APP als eine Funktion f(t) der Zeit t beschrieben, die die Ausgangsdaten f(t) abbilden. Je schneller sich diese Funktion f(t) ändert, desto kürzer ist die tolerierbare Umlaufzeit RTT1, RTT2. Der Anwendungsentwickler kann dabei eine maximal tolerierbare Abweichung als Schwellenwert Δfmax dieser Funktion f(t) angeben, die den tolerierbaren Wert der Toleranzzeit Δtmax bestimmt. Ein statischer Schwellenwert von Δtmax kann dann berechnet werden, wie es in der folgenden Gleichung dargestellt ist:
k ist dabei eine Konstante und gibt die maximal zulässige Abweichung der Anwendung APP im Vergleich zu der vom Entwickler angegebenen Basislinie an. Die Anwendung APP berechnet eine Funktion f(t), deren Dynamik durch ihre Ableitung ḟ(t) geschätzt werden kann. ḟ
mean ist der Mittelwert der Änderungsrate der Anwendungsfunktion f(t). Die Basislinie ist die Ausgabesequenz, die die Anwendung APP für die bereitgestellte Eingabemeldesequenz in einem idealen Szenario bereitstellen sollte (keine Netzwerklatenz, Rechenverzögerungen usw.). Die zweite Methode ist für einen Entwickler einfacher, da er keinen Zugriff auf die Edge-Infrastruktur
102 für die Parameterwerte haben muss.
-
Ferner kann die Erfindung vorsehen, dass die Toleranzzeit Δtmax einen adaptiven, insbesondere zeitabhängigen, Schwellenwert umfassen kann.
-
Für einige Anwendungen APP kann die maximal zulässige Toleranzzeit Δtmax statisch sein. In vielen Fällen ist die maximal zulässige Toleranzzeit Δtmax nicht statisch und variiert als eine Funktion der Zeit t. In diesen Fällen kann eine automatische bzw. adaptive Anpassung der Toleranzzeit Δtmax vorteilhaft sein. Wird eine Anwendung APP als eine Funktion f(t) der Zeit t beschrieben, so wird deren Dynamik durch ihre Ableitung ḟ(t) dargestellt. Wenn die Funktion f(t) langsam variiert (d.h., die erste Ableitung f(t) ist nahe null), genügt auch eine langsame Antwort des jeweiligen Anwendungs-Servers
21,
22, um der Funktion f(t) innerhalb einer bestimmten Fehlergrenze zu folgen. Der Anwendungsentwickler kann hierbei eine tolerierbare Abweichung Δfmax der Funktion f(t) definieren, die nicht überschritten werden darf, wenn der jeweilige Anwendungs-Server
21,
22 eine Umlaufzeit-Verzögerung einführt. Das Verhältnis zwischen der maximal zulässigen Änderung Δfmax der Funktion f(t) und der entsprechenden maximal zulässigen Toleranzzeit Δtmax als Reaktionszeit ergibt sich aus der folgenden Gleichung:
-
Siehe hierzu die 3.
-
Ferner zeigt die
4, wie der Mittelwert der Ableitung ḟ(t) im Intervall der Länge Δtmax zwischen Anfrage und Antwort ist. Praktisch kann der Mittelwert f'mean der Änderungsrate der Anwendungsfunktion f(t) durch Messungen aus einem längeren Intervall approximiert und mit einem gleitenden Durchschnittsansatz angepasst werden. Der adaptive Schwellenwert der Toleranzzeit Δtmax (t) kann berechnet werden als:
-
Die minimale Änderungsrate bestimmt im Rahmen der Erfindung eine maximal zulässige Reaktionszeit (vgl. die 3). Der Wert von Δtmax (t) wird auf einen Maximalwert begrenzt, der auf einem für Mittelwert ḟmean zulässigen Minimalwert basiert (vgl. die 4). Ein praktisches Beispiel für eine Anwendung APP bzw. eine Funktion f(t) im Sinne der Erfindung, die nicht nur eine skalare Funktion ist, sondern auch eine Vektorfunktion sein kann, kann die Verfolgung von Fahrzeugobjekten in einem Fahrerassistenzsystem sein. Für die Verfolgung wird ein Maximum an einem tolerierbaren Abstand zwischen einem verfolgten Objekt und dem Fahrzeug angegeben werden. Die Abweichung wird dann in eine maximal tolerierbare Umlaufzeit umgewandelt, um den Fehler innerhalb der zulässigen Grenzen zu halten.
-
Ein Gesamtqualitätsmaß für die Anwendungsleistung ist die Anwendungs-Performance q(Δtruntime), z.B. wie gut ein Objekt im vorherigen Beispiel verfolgt werden kann. Sie kann erstellt werden, indem die tatsächliche Umlaufzeit RTT1, RTT2 (im Beispiel der
5 als Δtruntime bezeichnet) aus der ausgewählten Laufzeitumgebung (Benutzervorrichtung
101 und die Edge-Infrastruktur
102) auf einen Qualitätswert zwischen 0% und 100% abgebildet wird, wie dies in der
5 zu sehen ist. Die Leistungsqualität für ein Fenster von N+1-Messungen, das von der Zeit t(n-N) bis zur aktuellen Zeit tn reicht, kann als Durchschnitt über alle Einzelmessungen berechnet werden:
-
Zusammenfassend stellt die Erfindung mehrere Vorteile bereit:
- - Die Verwendung der Toleranzzeit Δtmax für die Umlaufzeit RTT1, RTT2 als einziger Parameter für die Entscheidung, welcher Anwendungs-Server 21, 22 verwendet wird, erleichtert das Leben eines Entwicklers erheblich. Der Entwickler braucht dabei nur einen einzigen Parameter einstellen.
- - Gemäß einem statischen Ansatz wird die Umlaufzeit RTT1, RTT2 mit einem statischen Schwellenwert der Toleranzzeit Δtmax verglichen, um zwischen den Anwendungs-Servern 21, 22 zu entscheiden, während im adaptiven Ansatz die Umlaufzeit RTT1, RTT2 mit einem dynamischen Schwellenwert der Toleranzzeit Δtmax verglichen wird, um sich zwischen den Anwendungs-Servern 21, 22 zu entscheiden.
Der adaptive Ansatz ist effektiver als der statische Ansatz, wenn die richtigen Werte für die maximal tolerierbare Abweichung als Schwellenwert Δfmax gewählt werden. Die Abweichungen werden reduziert, gleichzeitig wird die Auslastung der Edge-Infrastruktur 102 im Falle der Adaption erhöht.
Wenn die Werte von Δfmax kleiner als ein minimaler Schwellenwert sind, ist der statische Ansatz in Bezug auf Abweichungen und Ausnutzung der Edge-Infrastruktur 102 besser als der adaptive Ansatz. Daher sollte die Wahl des adaptiven Ansatzes anwendungsspezifisch sein und von der vom Entwickler erlaubten Anwendungsabweichung Δfmax abhängen.
-
Die voranstehende Beschreibung der Figuren beschreibt die vorliegende Erfindung ausschließlich im Rahmen von Beispielen. Selbstverständlich können einzelne Merkmale der Ausführungsformen, sofern es technisch sinnvoll ist, frei miteinander kombiniert werden, ohne den Rahmen der Erfindung zu verlassen.
-
Bezugszeichenliste
-
- 100
- verteilte Systemarchitektur
- 101
- Benutzervorrichtung
- 102
- Edge-Infrastruktur
- 10
- Anwendungs-Client
- 21
- lokaler Anwendungs-Server
- 22
- entfernter Anwendungs-Server
- 30
- Anwendungs-Manager
- APP
- Anwendung
- RTT1
- erste Umlaufzeit
- RTT2
- zweite Umlaufzeit
- i
- Index, Zähler
- t
- Zeit
- ti
- Anfragezeit
- Δtci
- Antwortzeit
- Δtli
- Antwortzeit
- Δtmax
- Toleranzzeit
- Δt
- Zeitdifferenz
- f(t)
- Funktion für die Ausgangsdaten
- ḟ(t)
- Geschwindigkeit der Änderung der Ausgangsdaten
- ḟmax
- maximale Geschwindigkeit
- ḟmean
- gemittelte Geschwindigkeit
- q(Δtruntime)
- Anwendungs-Performance
- Δtruntime
- Umlaufzeit