-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich allgemein auf das Gebiet von verteilten Netzwerken und im Besonderen auf ein Verfahren zum Verwalten einer Übertragungshäufigkeit für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes.
-
Bei einer Edge-Einheit handelt es sich um eine Einheit, die einen Einstiegspunkt in Kernnetzwerke von Unternehmen oder Dienstleistern bereitstellt. Zu Beispielen zählen Router, Routing-Switches, integrierte Zugriffseinheiten (integrated access devices, IADs), Multiplexer und eine Vielfalt von Einheiten zum Zugriff auf Hochgeschwindigkeitsnetzwerke (metropolitan area networks, MAN) und Weitverkehrsnetzwerke (wide area networks, WAN). Edge-Einheiten stellen darüber hinaus Verbindungen zu Netzwerken von Telekommunikationsanbietern und Dienstleistern bereit. Eine Edge-Einheit, die ein lokales Netzwerk mit einem Hochgeschwindigkeits-Switch oder Backbone verbindet, kann als Edge-Konzentrator bezeichnet werden. Im Allgemeinen handelt es sich bei Edge-Einheiten normalerweise um Router, die einen auf Berechtigung geprüften Zugriff (am häufigsten PPPoA und PPPoE) auf schnellere, effizientere Backbone- und Kernnetzwerke bereitstellen. Folglich sind Kernnetzwerke häufig mit Switches konstruiert, die Routing-Protokolle wie zum Beispiel Open Shortest Path First (OSPF) oder Multiprotocol Label Switching (MPLS) für Zuverlässigkeit und Skalierbarkeit verwenden, was ermöglicht, dass Edge-Router redundante Verbindungen mit dem Kernnetzwerk aufweisen. Verbindungen zwischen Kernnetzwerken sind anders, z.B. Border-Gateway-Protocol(BGP)-Router, die häufig für Peering-Austauschvorgänge verwendet werden.
-
In einem typischen verteilten Netzwerkverbund werden Daten von verschiedenen Sensoren und Edge-Einheiten gesammelt, durch Gateways und die Cloud übertragen und zur Analyse in einer Datenbank gespeichert. Die Datenfluss-Schreibhäufigkeit (data flow writing frequency), DFWF, mit der alle Einheiten des verteilten Netzwerkverbundes praktisch in die Datenbank schreiben können, ist jedoch typischerweise durch eine maximale Schreibhäufigkeit (maximum writing frequency), MWF, begrenzt. Beispielsweise kann eine Edge-Einheit in einigen geschäftlichen Anwendungen dazu konfiguriert sein, zehn (10) Schreibvorgänge/Sek. für einen Basis-/Standard-Benutzer und fünfzig (50) Schreibvorgänge/Sek. für einen fortgeschrittenen/professionellen Benutzer zuzulassen. Dementsprechend kann die Leistungsfähigkeit von Einheiten eines verteilten Netzwerkverbundes durch eine Beschränkung der Schreibgeschwindigkeit begrenzt sein, wenn die MWF nicht angemessen verwaltet wird.
-
KURZDARSTELLUNG
-
Ausführungsformen der vorliegenden Erfindung offenbaren ein auf einem Computer implementiertes Verfahren, ein Computerprogrammprodukt und ein System zum Verwalten einer Übertragungshäufigkeit für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes. Das auf einem Computer implementierte Verfahren enthält einen oder mehrere Computerprozessoren, die eine maximale Schreibhäufigkeit, MWF, für den verteilten Netzwerkverbund ermitteln. Der eine oder die mehreren Computerprozessoren verarbeiten iterativ Werte einer Datenfluss-Schreibhäufigkeit, DFWF, für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes gemäß einem Optimierungsalgorithmus auf Grundlage der MWF, um eine Konvergenz der Werte der DFWF zu erkennen, wobei jede Iteration einer Verarbeitung von Werten ein Ermitteln eines Wertes der DFWF auf Grundlage einer zugehörigen Nutzenfunktion der jeweiligen Edge-Einheit bei jeder Edge-Einheit in der Mehrzahl von Edge-Einheiten aufweist, wobei es sich bei der Nutzenfunktion um ein Maß des Nutzens der Einheit als Funktion der DFWF handelt. Der eine oder die mehreren Computerprozessoren ermitteln als Reaktion auf das Erkennen einer Konvergenz, dass es sich bei den konvergierten Werten der DFWF um optimale Werte der DFWF für die Mehrzahl von Edge-Einheiten handelt.
-
Gemäß einem Aspekt wird ein auf einem Computer implementiertes Verfahren bereitgestellt, das aufweist: Ermitteln einer maximalen Schreibhäufigkeit, MWF, für einen verteilten Netzwerkverbund durch einen oder mehrere Computerprozessoren; iteratives Verarbeiten von Werten einer Datenfluss-Schreibhäufigkeit, DFWF, durch einen oder mehrere Computerprozessoren für eine Mehrzahl von Edge-Einheiten des verteilten Netzwerkverbundes, wobei das Verfahren mit einem Optimierungsalgorithmus auf Grundlage der MWF in Einklang steht, um eine Konvergenz der Werte der DFWF zu erkennen, wobei jede Iteration einer Verarbeitung von Werten bei jeder Edge-Einheit in der Mehrzahl von Edge-Einheiten ein Ermitteln eines Wertes der DFWF auf Grundlage einer zugehörigen Nutzenfunktion der jeweiligen Edge-Einheit aufweist, wobei es sich bei der Nutzenfunktion um ein Maß des Nutzens der Einheit als Funktion der DFWF handelt, und als Reaktion auf das Erkennen einer Konvergenz ein Ermitteln durch einen oder mehrere Computerprozessoren aufweist, dass es sich bei den konvergierten Werten der DFWF um optimale Werte der DFWF für die Mehrzahl von Edge-Einheiten handelt.
-
Gemäß einem weiteren Aspekt wird ein Computerprogrammprodukt bereitgestellt, das aufweist: ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die gespeicherten Programmanweisungen aufweisen: Programmanweisungen zum Ermitteln einer maximalen Schreibhäufigkeit (MWF) für das verteilte Netzwerk; Programmanweisungen zum iterativen Verarbeiten von Werten einer Datenfluss-Schreibhäufigkeit (DFWF) für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes gemäß einem Optimierungsalgorithmus auf Grundlage der MWF, um eine Konvergenz der Werte der DFWF zu erkennen, wobei jede Iteration des Verarbeitens von Werten bei jeder Edge-Einheit ein Ermitteln eines Wertes der DFWF auf Grundlage der zugehörigen Nutzenfunktion der Edge-Einheit aufweist, wobei die Nutzenfunktion ein Maß des Nutzens der Einheit als Funktion der DFWF definiert; und Programmanweisungen zum Ermitteln als Reaktion auf das Erkennen einer Konvergenz, dass es sich bei den konvergierten Werten der DFWF um optimale Werte der DFWF für die Edge-Einheiten handelt.
-
Gemäß einem weiteren Aspekt wird ein System bereitgestellt, das aufweist: eine Verarbeitungskomponente, die dazu konfiguriert ist, eine maximale Schreibhäufigkeit, MWF, für das verteilte Netzwerk zu ermitteln; eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes, wobei jede Edge-Einheit in der Mehrzahl von Edge-Einheiten dazu konfiguriert ist, einen Wert einer Datenfluss-Schreibhäufigkeit, DFWF, auf Grundlage der zugehörigen Nutzenfunktion der jeweiligen Edge-Einheit zu ermitteln, wobei die Nutzenfunktion ein Maß des Nutzens der Einheit als Funktion der DFWF definiert; und eine Optimierungsanordnung, die dazu konfiguriert ist, Werte der DFWF für die Mehrzahl von Edge-Einheiten gemäß einem Optimierungsalgorithmus auf Grundlage der MWF iterativ zu verarbeiten, um eine Konvergenz der Werte der DFWF zu erkennen und als Reaktion auf das Erkennen einer Konvergenz zu ermitteln, dass es sich bei den konvergierten Werten der DFWF um optimale Werte der DFWF für die Edge-Einheiten handelt.
-
Figurenliste
-
Ausführungsformen der Erfindung werden im Folgenden lediglich als Beispiel unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
- 1 eine bildliche Darstellung eines beispielhaften verteilten Systems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 2 ein Blockschaubild eines beispielhaften Systems gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 3A eine schematische Darstellung eines vorgeschlagenen verteilten Datenübertragungssystems gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 3B eine schematische Darstellung ist, die eine Algorithmusiteration gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 4 ist ein vereinfachter Ablaufplan eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung ist; und
- 5 ein System gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die vorliegende Erfindung bezieht sich allgemein auf das Gebiet von verteilten Netzwerken und im Besonderen auf ein Verfahren zum Verwalten einer Übertragungshäufigkeit für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes. Die vorliegende Erfindung bezieht sich darüber hinaus auf ein Computerprogrammprodukt, das einen durch einen Computer lesbaren Programmcode aufweist, der es einem Prozessor eines Systems oder einer Anzahl von Prozessoren eines Netzwerks ermöglicht, ein solches Verfahren zu implementieren. Die vorliegende Erfindung bezieht sich darüber hinaus auf ein System zum Verwalten einer Übertragungshäufigkeit für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes. Die vorliegende Erfindung zielt darauf ab, ein Verfahren zum Verwalten einer Übertragungshäufigkeit für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes bereitzustellen. Ein solches Verfahren kann auf einem Computer implementiert sein.
-
Die vorliegende Erfindung zielt des Weiteren darauf ab, ein Computerprogrammprodukt bereitzustellen, das einen Computerprogrammcode zum Implementieren eines vorgeschlagenen Verfahrens enthält, wenn er durch eine Verarbeitungseinheit ausgeführt wird. Die vorliegende Erfindung zielt darüber hinaus darauf ab, ein Verarbeitungssystem bereitzustellen, das zum Ausführen dieses Computerprogrammcodes ausgelegt ist. Die vorliegende Erfindung zielt darüber hinaus darauf ab, ein System zum Verwalten einer Übertragungshäufigkeit für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes bereitzustellen. Gemäß einer Ausführungsform der Erfindung wird ein auf einem Computer implementiertes Verfahren zum Verwalten einer Übertragungshäufigkeit für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes bereitgestellt. Das Verfahren weist ein Ermitteln einer maximalen Schreibhäufigkeit, MWF, für das verteilte Netzwerk auf. Das Verfahren weist darüber hinaus ein iteratives Verarbeiten von Werten einer Datenfluss-Schreibhäufigkeit, DFWF, für die Edge-Einheiten gemäß einem Optimierungsalgorithmus auf Grundlage der MWF auf, um eine Konvergenz der Werte der DFWF zu erkennen. Jede Iteration des Verarbeitens von Werten weist bei jeder Edge-Einheit ein Ermitteln eines Wertes der DFWF auf Grundlage einer zugehörigen Nutzenfunktion der Edge-Einheit auf, wobei die Nutzenfunktion ein Maß des Nutzens der Einheit als Funktion der DFWF definiert. Als Reaktion auf das Erkennen einer Konvergenz ermittelt das Verfahren, dass es sich bei den konvergierten Werten der DFWF um optimale Werte der DFWF für die Edge-Einheiten handelt.
-
Es werden Konzepte für eine Verwaltung einer Übertragungshäufigkeit für Edge-Einheiten einer dezentralisierten Architektur (d.h., eines verteilten Netzwerkverbundes) vorgeschlagen. In solchen Konzepten kann die MWF im Hinblick auf eine Mehrzahl (z.B. eine Gruppe) von IoT-Einheiten optimiert werden. Für eine solche Optimierung kann jede Edge-Einheit eine zugehörige Nutzenfunktion aufweisen. Die Nutzenfunktion kann darstellen, wie stark ein Benutzer praktisch von der Einheit bei einer jeweiligen DFWF profitieren kann. Anders ausgedrückt, die zugehörige Nutzenfunktion einer Einheit kann ein Maß des Nutzens der Einheit als Funktion der DFWF definieren. Als Beispiel kann eine Nutzenfunktion in einer Anwendung für maschinelles Lernen die Genauigkeit eines trainierten Modells im Hinblick auf die DFWF der Einheit modellieren.
-
Ausführungsformen der vorliegenden Erfindung können darauf abzielen, den Gesamtnutzen einer Mehrzahl von Edge-Einheiten angesichts einer MWF des verteilten Netzwerks zu maximieren, mit dem die Edge-Einheiten verbunden sind. Im Besonderen können vorgeschlagene Ausführungsformen einen dezentralisierten Optimierungsalgorithmus über eine Gateway-Einheit und eine Mehrzahl von Edge-Einheiten hinweg so einsetzen, dass der Datenschutz für die Edge-Einheit gewahrt wird. Beispielsweise können Nutzenfunktionen bei jeder Edge-Einheit lokal definiert sein und für keine sonstigen externen Einheiten oder Verwaltungsplattform einschließlich der Gateway-Einheit, die einen Teil eines Optimierungsalgorithmus implementiert, der durch eine Ausführungsform eingesetzt wird, sichtbar gemacht werden.
-
Ausführungsformen der vorliegenden Erfindung beziehen sich auf ein Konzept zum Einsetzen eines dezentralisierten Optimierungsalgorithmus, der den Datenschutz von Nutzenfunktionen wahrt, die der Mehrzahl von Edge-Einheiten zugehörig sind. Auf diese Weise können Ausführungsformen eine optimierte Verwaltung einer Übertragungshäufigkeit bereitstellen und gleichzeitig den Datenschutz von sensiblen/vertraulichen Nutzeninformationen aufrechterhalten, die sich auf die Edge-Einheit eines verteilten Netzwerks beziehen. Im Besonderen wird vorgeschlagen, einen dezentralisierten datenschutzgerechten Algorithmus in einer bestehenden verteilten Datenübertragungsarchitektur (z.B. einer IoT-Architektur) zu nutzen.
-
Bei Ausführungsformen der vorliegenden Erfindung kann ein Problem bei der Planung von Arbeitsprozessen als Problem einer eingeschränkten konkaven/konvexen Optimierung modelliert werden. Anstatt sich mit dem Datenschutz der Arbeitsprozesse zu befassen, kann ein Hauptaugenmerk von vorgeschlagenen Ausführungsformen darauf liegen, die sensiblen Informationen (z.B. die Nutzenfunktion) einer benutzerdefinierten Edge-Einheit (z.B. loT) zu schützen, die zum Beispiel die Bedeutung einer bestimmten Einheit in dem verteilten Netzwerk erfassen/beschreiben können. Beispielsweise kann bei einigen Ausführungsformen eine Übertragungshäufigkeit nicht nur in Abhängigkeit von den externen System-Ressourcen, sondern auch unter Berücksichtigung der vom Benutzer einstellbaren Vorgabe(n) optimal berechnet werden.
-
Einige Ausführungsformen der vorliegenden Erfindung setzen einen kooperativen dezentralisierten Algorithmus ein, um die Übertragungshäufigkeit von Edge-Einheiten in einer Plug-and-Play- und datenschutzgerechten Weise optimal zu berechnen. Infolge eines solchen dezentralen Ansatzes muss ein Knoten einer übergeordneten Ebene im Hinblick auf die Edge-Einheiten, z.B. ein Gateway, möglicherweise nur begrenzte Informationen über die Edge-Einheit(en) für Datenverarbeitungszwecke sammeln und benötigt daher keinen vollständigen Zugriff auf Nutzenfunktionen der Edge-Einheit(en). Wenngleich bei einigen Ausführungsformen eine zugehörige Nutzenfunktion einer Einheit möglicherweise zuvor erzeugt oder definiert worden ist (z.B. auf Grundlage einer Benutzereingabe und/oder eines Steuersignals), können sonstige Ausführungsformen dazu konfiguriert sein, eine solche Nutzenfunktion (z.B. auf Grundlage von Benutzereingabesignalen) zu erzeugen. Daher können einige Ausführungsformen des Weiteren bei jeder Edge-Einheit ein Ermitteln einer Nutzenfunktion für die Einheit und ein Verknüpfen der ermittelten Nutzenfunktion mit der Einheit aufweisen. Auf diese Weise kann eine verbesserte Flexibilität bereitgestellt werden. Darüber hinaus kann eine dynamische Aktualisierung oder Neuberechnung von Nutzenfunktionen vereinfacht werden.
-
Eine iterative Verarbeitung kann zum Teil bei einer Nicht-Edge-Einheit des verteilten Netzwerkverbundes durchgeführt werden. Beispielsweise kann ein Gateway einen Teil der Optimierungsverarbeitung durchführen. Auf diese Weise kann ein dezentralisierter Optimierungsansatz eingesetzt werden, der verhindert, dass lokale Nutzenfunktionen der Edge-Einheiten sichtbar gemacht oder offengelegt werden. Ausführungsformen können daher ein Gateway als Teil des iterativen Prozesses einbeziehen. Anders ausgedrückt, ein Gateway kann einen Teil der Optimierungsverarbeitung durchführen, und die Nicht-Edge-Einheit(en) können einen Teil der Optimierungsverarbeitung durchführen, um eine Anordnung für eine dezentralisierte/verteilte Optimierungsverarbeitung zu implementieren.
-
Eine erste Edge-Einheit der Mehrzahl von Edge-Einheiten kann eine zugehörige Nutzenfunktion aufweisen, die eine stetig differenzierbare, nichtabnehmende, konkave Funktion aufweist. Beispielsweise kann eine zugehörige Nutzenfunktion der ersten Edge-Einheit als Cluster von gewichteten Logarithmusfunktionen modelliert werden. Sonstige konvexe/konkave Funktionen können ebenfalls als die Nutzenfunktion verwendet werden. Darüber hinaus handelt es sich auch bei der Logarithmusfunktion, zum Beispiel y = log(x), um eine stetig differenzierbare und nichtabnehmende, konkave Funktion. Gemäß vorgeschlagenen Ausführungsformen muss eine Nutzenfunktion jedoch nicht stetig nichtabnehmend sein. Beispielsweise kann eine konkave Funktion in einem Intervall nichtabnehmend und in dem anderen Intervall abnehmend sein. Folglich kann eine Nutzenfunktion, die einer ersten Edge-Einheit zugehörig ist, gemäß Ausführungsformen stetig differenzierbar sein und eine abnehmende Ableitung erster Ordnung aufweisen. Der Optimierungsalgorithmus kann einen Algorithmus eines Wechselrichtungsverfahrens von Multiplikatoren (Alternating Direction Method of Multipliers), ADMM, aufweisen. Dies ist nur ein Beispiel für einen dezentralisierten Algorithmus, der eingesetzt werden kann. Es können sonstige andere dezentralisierte Algorithmen verwendet werden, darunter das allgemein bekannte Verfahren der doppelten Zerlegung. Vorgeschlagene Ausführungsformen können daher allgemein bekannte und etablierte dezentrale Algorithmen nutzen, wodurch die Kosten und/oder die Komplexität einer Implementierung von vorgeschlagenen Ausführungsformen verringert werden.
-
Einige Ausführungsformen können des Weiteren ein Übertragen der optimalen Werte einer DFWF an ihre jeweiligen Edge-Einheiten aufweisen. Auf diese Weise kann ein optimaler DFWF-Wert für jede Edge-Einheit festgelegt werden, und anschließend können Edge-Einheiten beginnen, Daten mit einer Push-Operation an das verteilte Netzwerk zu übertragen. Hier wird darüber hinaus darauf hingewiesen, dass die Daten, die durch das verteilte Netzwerk geleitet werden, zur weiteren Datenanalyse und/oder -visualisierung in einer externen Datenbank (z.B. in der Cloud) gespeichert werden können. Diese Ausführungsform kann des Weiteren aufweisen: als Reaktion darauf, dass sich ein Verarbeitungsparameter des verteilten Netzwerkverbundes ändert: iteratives Verarbeiten von Werten der DFWF für die Edge-Einheiten gemäß einem Optimierungsalgorithmus auf Grundlage der MWF, um eine neue Konvergenz der Werte der DFWF zu erkennen; und als Reaktion auf das Erkennen einer neuen Konvergenz Ermitteln, dass es sich bei den neuen konvergierten Werten der DFWF um neue optimale Werte der DFWF für die Edge-Einheiten handelt.
-
Im Vergleich mit herkömmlichen Ansätzen können vorgeschlagene Ausführungsformen einen oder mehrere der folgenden Vorteile bieten: (i) Die Nutzenfunktionen können in einem beliebigen praktischen Szenario (mit einigen Konkavitätsannahmen) anpassbar sein; (ii) keine direkte Steuerung der Abtastrate der Edge-Einheiten, was normalerweise kompliziert ist, stattdessen können Ausführungsformen die optimale Schreibhäufigkeit jeder Einheit berechnen, die einer MWF-Einschränkung unterliegt; (iii) eine dezentralisierte Architektur weist eine hohe Skalierbarkeit für einen Zugriff auf verschiedene Einheiten auf; (iv) die optimale Lösung kann berechnet werden, ohne Informationen über Nutzenfunktionen preiszugeben; (v) die optimale Lösung kann adaptiv neu berechnet werden, wenn sich die externe Kontextur ändert, z.B. wenn sich die MWF, eine Anzahl von Edge-Einheiten ändert (weil eine Edge-Einheit getrennt/verbunden wird) usw.; und (vi) vorgeschlagene Ausführungsformen können dazu verwendet werden zu verhindern, dass eine kritische Edge-Einheit einem externen böswilligen Angreifer ausgesetzt wird, im Besonderen in einer sicherheitsrelevanten Anwendung, z.B. in einem Finanzsystem.
-
Gemäß einer sonstigen Ausführungsform der Erfindung ist ein Computerprogrammprodukt vorhanden. Das Computerprogrammprodukt weist ein durch einen Computer lesbares Speichermedium auf, in dem Programmanweisungen verkörpert sind, wobei die Programmanweisungen durch eine Verarbeitungseinheit ausführbar sind, um zu bewirken, dass die Verarbeitungseinheit ein Verfahren gemäß einer vorgeschlagenen Ausführungsform durchführt. Gemäß einer weiteren Ausführungsform der Erfindung wird ein Computersystem bereitgestellt, das zumindest einen Prozessor und das Computerprogrammprodukt aufweist. Zumindest ein Prozessor ist dazu ausgelegt, den Computerprogrammcode des Computerprogrammprodukts auszuführen. Gemäß einer noch weiteren Ausführungsform der Erfindung wird ein System zum Verwalten einer Übertragungshäufigkeit für eine Mehrzahl von Edge-Einheiten eines verteilten Netzwerkverbundes bereitgestellt. Das System weist eine Verarbeitungskomponente auf, die zum Ermitteln einer maximalen Schreibhäufigkeit, MWF, für das verteilte Netzwerk konfiguriert ist. Darüber hinaus weist das System eine Mehrzahl von Edge-Einheiten auf. Jede Edge-Einheit ist dazu konfiguriert, einen Wert einer Datenfluss-Schreibhäufigkeit, DFWF, auf Grundlage der zugehörigen Nutzenfunktion der Edge-Einheit zu ermitteln, wobei die Nutzenfunktion ein Maß für den Nutzen der Einheit als Funktion der DFWF definiert. Das System weist darüber hinaus eine Optimierungskomponente auf, die dazu konfiguriert ist, Werte der DFWF für die Edge-Einheiten gemäß einem Optimierungsalgorithmus auf Grundlage der MWF iterativ zu verarbeiten, um eine Konvergenz der Werte der DFWF zu erkennen, und als Reaktion auf das Erkennen einer Konvergenz zu ermitteln, dass es sich bei den konvergierten Werten der DFWF um optimale Werte der DFWF für die Edge-Einheiten handelt.
-
Im Rahmen der vorliegenden Anmeldung, bei der Ausführungsformen der vorliegenden Erfindung ein Verfahren darstellen, versteht es sich, dass ein solches Verfahren ein Prozess zur Ausführung durch einen Computer sein kann, d.h., ein auf einem Computer implementierbares Verfahren sein kann. Die verschiedenen Schritte des Verfahrens können also verschiedene Teile eines Computerprogramms widerspiegeln, z.B. verschiedene Teile eines oder mehrerer Algorithmen.
-
Im Rahmen der vorliegenden Anmeldung kann ein System eine einzelne Einheit oder eine Sammlung verteilter Einheiten sein, die zum Ausführen einer oder mehrerer Ausführungsformen der Verfahren der vorliegenden Erfindung ausgelegt sind. Ein System kann zum Beispiel ein Personal-Computer (PC), ein Server oder eine Sammlung von PCs und/oder Servern sein, die über ein Netzwerk, wie etwa ein lokales Netzwerk, das Internet und so weiter, verbunden sind, um zusammenwirkend zumindest eine Ausführungsform der Verfahren der vorliegenden Erfindung auszuführen. Des Weiteren kann es sich bei einer Edge-Einheit um eine Einheit für das Internet der Dinge (Internet-of-Things, loT) handeln, die dazu konfiguriert ist, zur Datenübertragung mit der Peripherie eines verteilten Netzwerkverbundes verbunden zu sein.
-
Es werden Konzepte für eine Verwaltung einer Übertragungshäufigkeit für Edge-Einheiten einer dezentralisierten Architektur (d.h., eines verteilten Netzwerkverbundes) vorgeschlagen. In solchen Konzepten kann die MWF im Hinblick auf eine Mehrzahl (z.B. eine Gruppe) von IoT-Einheiten optimiert werden. Eine solche Optimierung kann einen dezentralisierten Optimierungsalgorithmus über eine Nicht-Edge-Einheit und eine Mehrzahl von Edge-Einheiten hinweg so einsetzen, dass der Datenschutz für die Edge-Einheit(en) gewahrt wird. Beispielsweise können Nutzenfunktionen bei jeder Edge-Einheit lokal definiert sein und für keine sonstigen externen Einheiten oder Verwaltungsplattform einschließlich der Nicht-Edge-Einheit, die einen Teil des Optimierungsalgorithmus implementiert, sichtbar gemacht werden.
-
Es wird ein Konzept zum Einsetzen eines dezentralisierten Optimierungsalgorithmus vorgeschlagen, der den Datenschutz von Nutzenfunktionen wahrt, die der Mehrzahl von Edge-Einheiten zugehörig sind. Infolge eines solchen dezentralen Ansatzes muss ein Knoten einer übergeordneten Ebene im Hinblick auf die Edge-Einheiten (z.B. ein Gateway) möglicherweise nur begrenzte Informationen über die Edge-Einheit(en) für Datenverarbeitungszwecke sammeln und benötigt daher keinen vollständigen Zugriff auf Nutzenfunktionen der Edge-Einheit(en). Auf diese Weise können Ausführungsformen eine optimierte Verwaltung einer Übertragungshäufigkeit bereitstellen und gleichzeitig den Datenschutz von sensiblen/vertraulichen Nutzeninformationen aufrechterhalten, die sich auf die Edge-Einheit eines verteilten Netzwerks beziehen. Im Besonderen können Ausführungsformen einen dezentralisierten datenschutzgerechten Algorithmus in einer bestehenden verteilten Datenübertragungsarchitektur (z.B. einer loT-Architektur) nutzen.
-
Implementierungen von Ausführungsformen der Erfindung können eine Vielfalt von Formen annehmen, und Einzelheiten einer beispielhaften Implementierung werden im Folgenden unter Bezugnahme auf die Figuren erörtert. Es versteht sich, dass die Figuren lediglich schematisch und nicht maßstabsgetreu gezeichnet sind. Es versteht sich darüber hinaus, dass dieselben Bezugszeichen überall in den Figuren verwendet werden, um dieselben oder ähnliche Teile zu kennzeichnen.
-
Im Folgenden werden bevorzugte Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die Figuren ausführlich beschrieben.
-
1 zeigt eine bildliche Darstellung eines beispielhaften verteilten Systems, in dem Aspekte der veranschaulichenden Ausführungsformen implementiert werden können. Ein verteiltes System 100 kann ein Netzwerk von Computern enthalten, in dem Aspekte der veranschaulichenden Ausführungsformen implementiert werden können. Das verteilte System 100 enthält zumindest ein Netzwerk 102, bei dem es sich um das Medium handelt, das zum Bereitstellen von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die innerhalb des verteilten Datenverarbeitungssystems 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen wie zum Beispiel drahtgebundene und drahtlose Datenübertragungsverbindungen oder Lichtwellenleiterkabel enthalten.
-
In dem dargestellten Beispiel sind ein erster Server 104 und ein zweiter Server 106 zusammen mit einer Speichereinheit 108 mit dem Netzwerk 102 verbunden. Darüber hinaus sind Clients 110, 112 und 114 ebenfalls mit dem Netzwerk 102 verbunden. Bei den Clients 110, 112 und 114 kann es sich um Edge-Einheiten, zum Beispiel Personalcomputer, Netzwerkcomputer, loT-Einheiten oder dergleichen handeln. In dem dargestellten Beispiel stellt der erste Server 104 den Clients 110, 112 und 114 Daten wie zum Beispiel Startdateien, Betriebssystemabbilder und Anwendungen bereit. In dem dargestellten Beispiel handelt es sich bei den Clients 110, 112 und 114 um Clients des ersten Servers 104. Das verteilte Verarbeitungssystem 100 kann zusätzliche Server, Clients und sonstige Einheiten enthalten, die nicht dargestellt sind.
-
In dem dargestellten Beispiel handelt es sich bei dem verteilten System 100 um das Internet, wobei das Netzwerk 102 einen weltweiten Bestand von Netzwerken und Gateways darstellt, die die Transmission-Control-Protocol/Internet-Protocol(TCP/IP)-Gruppe von Protokollen dazu verwenden, Daten miteinander auszutauschen. Im Kern des Internet befindet sich ein Backbone aus Hochgeschwindigkeits-Datenübertragungsverbindungen zwischen Hauptknoten oder Host-Computern, die aus Tausenden von kommerziellen, behördlichen, Bildungs- und sonstigen Computersystemen bestehen, die Daten und Nachrichten weiterleiten. Selbstverständlich kann das verteilte System 100 auch so implementiert werden, dass es eine Anzahl verschiedener Netzwerktypen wie zum Beispiel ein Intranet, ein lokales Netzwerk (local area network, LAN) oder ein Weitverkehrs-Netzwerk (WAN) oder dergleichen enthält. Wie oben angegeben, ist 1 als Beispiel gemeint und nicht als architektonische Einschränkung verschiedener Ausführungsformen der vorliegenden Erfindung, und daher sollten die jeweiligen in 1 dargestellten Elemente im Hinblick auf die Umgebungen, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung implementiert werden können, nicht als einschränkend betrachtet werden.
-
2 stellt ein Blockschaubild eines beispielhaften Systems 200 dar, in dem Aspekte der veranschaulichenden Ausführungsformen implementiert sein können. Bei dem System 200 handelt es sich um ein Beispiel für einen Computer wie etwa den Client 110 in 1, in dem sich durch einen Computer verwendbare(r) Code oder Anweisungen befinden können, die die Prozesse für veranschaulichende Ausführungsformen der vorliegenden Erfindung implementieren. Beispielsweise kann eine vorgeschlagene Ausführungsform zum Teil in einer Verarbeitungseinheit 206 des Systems 200 implementiert werden.
-
In dem dargestellten Beispiel setzt das System 200 eine Hub-Architektur ein, die einen Northbridge- und Speichersteuereinheiten-Hub (NB/MCH) 202 und einen Southbridge- und Eingabe/Ausgabe(E/A)-Steuereinheiten-Hub (SB/ICH) 204 enthält. Auf diese Weise kann eine weitere vorgeschlagene Ausführungsform in dem Speichersteuereinheiten-Hub 202 des Systems 200 implementiert werden. Eine Verarbeitungseinheit 206, ein Hauptspeicher 208 und ein Grafikprozessor 210 sind mit dem NB/MCH 202 verbunden. Der Grafikprozessor 210 kann durch einen Accelerated Graphics Port (AGP) mit dem NB/MCH 202 verbunden sein.
-
In dem dargestellten Beispiel ist ein Adapter 212 für ein lokales Netzwerk (LAN) mit dem SB/ICH 204 verbunden. Ein Audioadapter 216, ein Tastatur- und Mausadapter 220, ein Modem 222, ein Festwertspeicher (read only memory, ROM) 224, ein Festplattenlaufwerk (hard disk drive, HDD) 226, ein CD-ROM-Laufwerk 230, ein Anschluss für einen universellen seriellen Bus (USB) und sonstige Datenübertragungsanschlüsse 232 und PCI/PCIe-Einheiten 234 sind durch einen ersten Bus 238 und einen zweiten Bus 240 mit dem SB/ICH 204 verbunden. Zu PCI/PCIe-Einheiten können zum Beispiel Ethernet-Adapter, Erweiterungskarten und PC-Karten für Notebook-Computer gehören. Im Gegensatz zu PCIe verwendet PCI eine Kartenbus-Steuereinheit. Bei dem ROM 224 kann es sich zum Beispiel um ein grundlegendes Eingabe/Ausgabe-Flash-System (basic input/output system, BIOS) handeln.
-
Das HDD 226 und das CD-ROM-Laufwerk 230 sind durch den zweiten Bus 240 mit dem SB/ICH 204 verbunden. Das HDD 226 und das CD-ROM-Laufwerk 230 können zum Beispiel eine Integrated-Drive-Electronics(IDE)- oder eine Serial-Advanced-Technology-Attachment(SATA)-Schnittstelle verwenden. Eine Super-E/A(super I/O, SIO)-Einheit 236 kann mit dem SB/ICH 204 verbunden sein.
-
Ein Betriebssystem wird auf der Verarbeitungseinheit 206 ausgeführt. Das Betriebssystem koordiniert eine Steuerung verschiedener Komponenten innerhalb des Systems 200 in 2 und stellt sie bereit. Als Client kann es sich bei dem Betriebssystem um ein handelsübliches Betriebssystem handeln. Ein objektorientiertes Programmiersystem kann zusammen mit dem Betriebssystem ausgeführt werden und stellt Aufrufe an das Betriebssystem von einer Mehrzahl von Programmen oder Anwendungen bereit, die in dem System 200 ausgeführt werden.
-
Als Server kann es sich bei dem System 200 zum Beispiel um ein Computersystem handeln, das ein Open-Source-Betriebssystem ausführt. Bei dem System 200 kann es sich um ein symmetrisches Mehrprozessor(SMP)-System handeln, das eine Mehrzahl von Prozessoren in der Verarbeitungseinheit 206 enthält.
-
Alternativ kann ein Einzelprozessorsystem eingesetzt werden. Anweisungen für das Betriebssystem, das Programmiersystem und Anwendungen oder Programme befinden sich auf Speichereinheiten wie zum Beispiel der HDD 226 und können zur Ausführung durch die Verarbeitungseinheit 206 in den Hauptspeicher 208 geladen werden. In ähnlicher Weise können ein oder mehrere Programme gemäß einer Ausführungsform dazu ausgelegt sein, durch die Speichereinheiten und/oder den Hauptspeicher 208 gespeichert zu werden.
-
Die Prozesse für veranschaulichende Ausführungsformen der vorliegenden Erfindung können durch die Verarbeitungseinheit 206 mithilfe von computerverwendbarem Programmcode durchgeführt werden, der sich in einem Speicher wie beispielsweise dem Hauptspeicher 208, dem ROM 224 oder etwa in einer oder mehreren Peripherieeinheiten 226 und 230 befinden kann.
-
Ein Bussystem wie zum Beispiel der erste Bus 238 oder der zweite Bus 240, wie sie in 2 dargestellt werden, können einen oder mehrere Bussen aufweisen. Bei einer Ausführungsform kann das Bussystem mithilfe eines beliebigen Typs einer Datenübertragungsstruktur oder Architektur implementiert werden, der eine Übertragung von Daten zwischen verschiedenen, mit der Struktur oder Architektur verbundenen Komponenten oder Einheiten ermöglicht. Eine Datenübertragungseinheit wie zum Beispiel der Modem 222 oder der Netzwerkadapter 212 von 2 kann eine oder mehrere Einheiten enthalten, die zum Übertragen und Empfangen von Daten verwendet werden. Bei einem Speicher kann es sich zum Beispiel um den Hauptspeicher 208, den ROM 224 oder einen Cache handeln, wie er etwa in dem NB/MCH 202 in 2 zu finden ist.
-
Fachleuten ist ersichtlich, dass die Hardware in 1 und 2 abhängig von der Implementierung variieren kann. Sonstige interne Hardware- oder Peripherieeinheiten wie zum Beispiel ein Flash-Speicher, ein gleichwertiger nichtflüchtiger Speicher oder optische Plattenlaufwerke und dergleichen können zusätzlich oder anstelle der in 1 und 2 dargestellten Hardware verwendet werden. Darüber hinaus können die Prozesse der veranschaulichenden Ausführungsformen auf ein anderes Mehrprozessor-Datenverarbeitungssystem als das zuvor erwähnte System angewendet werden, ohne vom Umfang der vorliegenden Erfindung abzuweichen.
-
Zudem kann das System 200 die Form eines beliebigen einer Anzahl verschiedener Datenverarbeitungssysteme annehmen, darunter von Client-Datenverarbeitungseinheiten, Server-Datenverarbeitungseinheiten, eines Tablet-Computers, eines Laptop-Computers, eines Telefons oder einer sonstigen Datenübertragungseinheit, eines persönlichen digitalen Assistenten (PDA) oder dergleichen. Bei einigen veranschaulichenden Beispielen kann es sich bei dem System 200 um eine tragbare Datenverarbeitungseinheit handeln, die mit einem Flash-Speicher dazu konfiguriert ist, einen nichtflüchtigen Speicher zum Speichern beispielsweise von Betriebssystemdateien und/oder vom Benutzer erzeugten Daten bereitzustellen. Daher kann es sich bei dem System 200 ohne architektonische Einschränkung im Wesentlichen um ein beliebiges bekanntes oder später entwickeltes Datenverarbeitungssystem handeln.
-
Wie oben ausgeführt, stellen die vorgeschlagenen Ausführungsformen ein Verfahren und ein System für eine Verwaltung einer datenschutzgerechten Übertragungshäufigkeit zum Optimieren von Edge-Einheiten eines verteilten Datenübertragungs-Netzwerks bereit. Zur weiteren Erläuterung wird im Folgenden eine vorgeschlagene Ausführungsform mit IoT-Edge-Einheiten beschrieben.
-
3A zeigt eine schematische Darstellung eines vorgeschlagenen verteilten Datenübertragungssystems gemäß einer Ausführungsform. Das System 300 weist vier Hauptkomponenten auf: IoT-Einheiten 310; Gateways 320, eine Cloud-Netzwerk-Plattform 330; und Benutzer 340. Das beispielhafte System weist darüber hinaus ein Datenspeichersystem 350 auf, das über die Cloud-Netzwerk-Plattform 330 zugänglich ist und außerdem direkt für die Benutzer 340 zugänglich ist. Darüber hinaus ist eine Datenvisualisierungskomponente zum Vereinfachen einer Datenanalyse in dem System 300 enthalten.
-
Die Hauptfunktionalitäten jeder der vier Hauptkomponenten werden wie folgt zusammengefasst: IoT-Einheiten 310: Edge-Einheiten wie zum Beispiel Sensoren oder Einheiten, die mit einem Gateway 320 zu verbinden sind, die Fähigkeiten aufweisen, Nutzenfunktionen zum dezentralen Lösen eines Optimierungsproblems von Interesse zu definieren. Gateways 320: Sammeln von Daten von IoT-Einheiten/-Sensoren und Weiterleiten von Daten an die Cloud-Netzwerk-Plattform 330 und Durchführen von grundlegenden Datenverarbeitungsaufgaben. Cloud-Netzwerk-Plattform 330: ein zentraler Hub zur Analyse, Überwachung und Speicherung von Daten. Benutzer 340: der Eigentümer der loT-Einheiten 310, der die Einheiten auf einem Gebiet für einige Anwendungszwecke vereinfachen möchte.
-
Unter Berücksichtigung eines Beispiels mit einer Anzahl von N loT-Einheiten 310, die mit einem Gateway 320 verbunden sind, kann eine Nutzenfunktion, die der i-ten Einheit zugehörig ist, als fi(xi) dargestellt werden. Anschließend möchte ein Benutzer U möglicherweise mit einer maximalen Schreibhäufigkeit, MWF, pro Zeitfenster die optimale Datenfluss-Schreibhäufigkeit (DFWF) bei einer Übertragungsgeschwindigkeit für jede IoT-Einheit 310 ermitteln, so dass der Gesamtnutzen der gesamten Gruppe von loT-Einheiten 310 maximiert werden kann. Mathematisch lässt sich dieses Optimierungsproblem mithilfe der folgenden Gleichungen darstellen (Gleichung 1 und 2), wobei xi ≥ 0:
- (1)
- (2)
Im Hinblick auf die Gleichungen (1) und (2) bezeichnet xi die DFWF der i-ten Einheit in jedem Zeitfenster, z.B. 1 Sekunde, und c bezeichnet die MWF für alle Einheiten. Wie oben erwähnt worden ist, könnte c für einen Basis-/Standard-Benutzer auf 10 festgelegt werden und für einen fortgeschrittenen/professionellen Benutzer auf 50 festgelegt werden. Schließlich bezeichnet fi(xi) den Nutzen der i-ten Einheit bei xi, und in der Praxis impliziert dies, wie ein Benutzer von der DFWF xi der Einheit i profitieren könnte.
-
In diesem Beispiel werde davon ausgegangen, dass jede Nutzenfunktion fi als stetig differenzierbare, nichtabnehmende, streng konkave Funktion modelliert werden kann. Dies ist eine gängige Annahme bei der Modellierung des Verhaltens des Datenverkehrs im Internet. Als Beispiel kann die Nutzenfunktion fi als Cluster von gewichteten logarithmischen Funktionen modelliert werden, die ein proportionales Ausgleichsmuster der optimalen Ressourcen-Zuordnung im Hinblick auf einen Benutzer U darstellen. Um das obige Optimierungsproblem zu lösen, wird vorgeschlagen, einen dezentralisierten Algorithmus iterativ auf jeder IoT-Edge-Einheit 310 anzuwenden, so dass die optimale DFWF bestimmt werden kann, wenn der Algorithmus konvergiert. Eine schematische Darstellung für eine Algorithmusiteration wird in 3B gezeigt.
-
In 3B kann jede loT-Einheit 310 entweder als physische Einheit, z.B. als Raspberry-Pi-Einheit, oder als „virtuelle Einheit“. d.h. als beliebiger sonstiger Typ von Sensoren oder Einheiten, die für eine Interaktion mit dem System verfügbar sein sollen, ausgelegt werden. Darüber hinaus weist das Gateway 320 auf: eine Verarbeitungskomponente 370, die dazu konfiguriert ist, eine MWF für das verteilte Netzwerk zu ermitteln; und eine Optimierungskomponente 380, die dazu konfiguriert ist, Werte einer DFWF für die Edge-Einheiten gemäß einem Optimierungsalgorithmus auf Grundlage der MWF iterativ zu verarbeiten, um eine Konvergenz der Werte der DFWF zu erkennen.
-
Um das Optimierungsproblem zu lösen, können die Schritte für eine beispielhafte Implementierung des Algorithmus der Vollständigkeit halber wie folgt dargestellt werden:
- (3) Initialization: k=0, xi(k)=0, y(k)=y0, α(k)= α0
While do:
- Gateway broadcasts y(k) to the Network of loT Devices
For each loT Device do:
- Get y(k) from the Gateway
- Updating xi:
- Sending xi(k+1) to the Gateway
- Gateway gathers x,(k+1)
- Gateway updates
- Updating k: k = k+1
-
Im Hinblick auf den Algorithmus (3) bezeichnet σ den Schwellenwert (z.B. eine kleine reelle Zahl) für eine Konvergenz des Algorithmus, ist c eine Konstante, die die Gesamtmenge an zu verteilenden Ressourcen (MWF) für alle loT-Einheiten definiert, bezeichnet x
i(k) den Zustand von x
i bei der k
-ten Iteration, so dass folglich erwartet wird, dass x
i zu einem Optimum konvergiert, wenn der Algorithmus konvergiert, d.h., wenn
und ist y der Parameter, der von der Menge der verbleibenden Ressource
sowie der Schrittgröße α(k) abhängt. Ein Vorteil eines Bereitstellens eines solchen dezentralisierten Algorithmus besteht darin, dass jede IoT-Einheit ein einfaches Teiloptimierungsproblem lokal iterativ löst, das letzten Endes zur Optimalität für die gesamte Gruppe konvergiert. All dies kann erfolgen, ohne die zugehörige Nutzenfunktion mit einem zentralen Agenten (z.B. einem Gateway) zu teilen, so dass der Datenschutz gewahrt bleibt.
-
4 stellt einen vereinfachten Ablaufplan einer beispielhaften Ausführungsform dar.
-
Schritt 410 - Initialisierung: Während der Initialisierungsphase gibt ein Benutzer einige Parameter an, bevor der Algorithmus ausgeführt wird. Zu diesen zählen zum Beispiel die Anzahl der IoT-Einheiten, die verfügbare MWF und die Nutzenfunktion, die jeder Einheit zugehörig ist.
-
Schritt 420 - Berechnen der optimalen DFWF: Nachdem die Initialisierung abgeschlossen ist, wird der ADMM-Algorithmus implementiert, um eine optimale DFWF für jede Einheit zu suchen.
-
Schritt 430 - Überprüfen auf Konvergenz: Der Algorithmus wird iterativ implementiert, um zu überprüfen, ob er zur Optimalität konvergiert wird. Wenn keine Konvergenz erkannt wird kehrt das Verfahren zu Schritt 420 zurück. Wenn eine Konvergenz erkannt wird, geht das Verfahren zu Schritt 430 über.
-
Schritt 440 - Übertragen von Daten an das Netzwerk mit einer Push-Operation: Wenn der Algorithmus konvergiert, wird die optimale DFWF für jede Einheit festgelegt, und anschließend können die Einheiten beginnen, Daten mit einer Push-Operation in die Cloud zu übertragen. Es ist zu beachten, dass die Daten, die durch die Cloud geleitet werden, zur weiteren Datenanalyse und -visualisierung letzten Endes in einer Cloud-Datenbank gespeichert werden können.
-
Schritt 450 - Überprüfen auf Änderungen bei Parametern: Wenn während der Laufzeit ein beliebiger Parameter geändert wird, beendet das System das Übertragen von Daten mit einer Push-Operation in die Cloud, und der Algorithmus erfasst die Änderungen dynamisch, um zu Schritt 420 zurückzukehren und angesichts des neuen Satzes von Parametern die optimale Lösung neu zu berechnen.
-
5 stellt ein Blockschaubild von Komponenten eines Computersystems 70, das einen Teil eines vernetzten Systems 7 ausbilden kann, gemäß einer veranschaulichenden Ausführungsform der vorliegenden Erfindung dar. Es ist zu beachten, dass 5 lediglich eine Veranschaulichung einer Implementierung bereitstellt und keine Einschränkungen in Bezug auf die Umgebungen impliziert, in denen verschiedene Ausführungsformen implementiert werden können. Es können zahlreiche Modifizierungen an der dargestellten Umgebung vorgenommen werden.
-
In einem Fall kann eine Verarbeitungskomponente, die dazu konfiguriert ist, eine MWF für ein verteiltes Netzwerk gemäß einer Ausführungsform zu ermitteln, in dem Computersystem 70 (z.B. als Verarbeitungseinheit 71) implementiert sein. Zu den Komponenten des Computersystems/Servers 70 können ein oder mehrere Verarbeitungsanordnungen, die zum Beispiel Prozessoren oder Verarbeitungseinheiten 71 aufweisen, ein Systemspeicher 74 und ein Bus 90 zählen, der verschiedene Systemkomponenten wie etwa den Systemspeicher 74 mit der Verarbeitungseinheit 71 verbindet, ohne auf diese beschränkt zu sein. Der Systemspeicher 74 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie zum Beispiel eines Direktzugriffsspeichers (random access memory, RAM) 75 und/oder eines Cache-Speichers 76 enthalten. Das Computersystem/der Server 70 kann des Weiteren sonstige austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. In solchen Fällen kann jedes durch eine oder mehrere Datenmedien-Schnittstellen mit dem Bus 90 verbunden sein. Der Speicher 74 kann zumindest ein Programmprodukt enthalten, das einen Satz (z.B. zumindest eins) von Programmmodulen aufweist, die dazu konfiguriert sind, die Funktionen der vorgeschlagenen Ausführungsformen auszuführen. Beispielsweise kann der Speicher 74 ein Computerprogrammprodukt enthalten, das ein Programm aufweist, das durch die Verarbeitungseinheit 71 ausführbar ist, um zu bewirken, dass die Eingabe-/Ausgabe(E/A)-Schnittstelle 72 ein Verfahren gemäß einer vorgeschlagenen Ausführungsform durchführt. Ein Programm/Dienstprogramm 78, das einen Satz (zumindest eins) von Programmmodulen 79 aufweist, kann in dem Speicher 74 gespeichert sein. Die Programmmodule 79 führen im Allgemeinen die Funktionen und/oder Methoden von vorgeschlagenen Ausführungsformen für partielle Schreiboperationen in den Speicher aus.
-
Das Computersystem/der Server 70 kann außerdem mit einer oder mehreren externen Einheiten 80 wie zum Beispiel einer Tastatur, einer Zeigeeinheit, einer Anzeige 85 usw.; einer oder mehreren Einheiten, die einem Benutzer ermöglichen, mit dem Computersystem/dem Server 70 zu interagieren; und/oder beliebigen Einheiten (z.B. einer Netzwerkkarte, einem Modem usw.) Daten austauschen, die dem Computersystem/Server 70 ermöglichen, Daten mit einer oder mehreren sonstigen Datenverarbeitungseinheiten auszutauschen. Eine solche Datenübertragung kann über Eingabe-/Ausgabe(E/A)-Schnittstellen 72 durchgeführt werden. Weiterhin kann das Computersystem/der Server 70 mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) über einen Netzwerkadapter 73 Daten austauschen (z.B. um ermittelte optimale Werte der DFWF an Edge-Einheiten eines verteilten Netzwerks zu übertragen).
-
Im Rahmen der vorliegenden Anmeldung, bei der Ausführungsformen der vorliegenden Erfindung ein Verfahren darstellen, versteht es sich, dass ein solches Verfahren ein Prozess zur Ausführung durch einen Computer ist, d.h., ein auf einem Computer implementierbares Verfahren ist. Die Schritte des Verfahrens spiegeln daher verschiedene Teile eines Computerprogramms wider, z.B. Teile eines oder mehrerer Algorithmen.
-
Die hierin beschriebenen Programme werden auf Grundlage der Anwendung identifiziert, für die sie in einer spezifischen Ausführungsform der Erfindung implementiert werden. Es sollte jedoch ersichtlich sein, dass jegliche besondere Programmnomenklatur hierin lediglich der Einfachheit halber verwendet wird und die Erfindung folglich nicht auf die ausschließliche Verwendung in einer bestimmten Anwendung beschränkt sein soll, die durch eine solche Nomenklatur bezeichnet und/oder impliziert wird. Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatten-Festwertspeicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Operationsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen und Quantenprogrammiersprachen wie zum Beispiel die Programmiersprache „Q“, Q#, Quantum Computation Language (QCL) oder ähnliche Programmiersprachen, niedrigere Programmiersprachen wie die Assembler-Sprache oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). Bei einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsdaten der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen implementiert werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zum Implementieren der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts implementieren.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubildes festgelegten Funktionen/Schritte umsetzen.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Implementieren der bestimmten logischen Funktion(en) aufweisen. Bei einigen alternativen Implementierungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zwei nacheinander dargestellte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können bisweilen je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder des Ablaufplans sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezielle auf Hardware beruhende Systeme implementiert werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zur Veranschaulichung, sind jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt gemeint. Viele Modifizierungen und Varianten sind für Fachleute ersichtlich, ohne vom Umfang und Wesensgehalt der Erfindung abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung oder die technische Verbesserung gegenüber auf dem Markt erhältlichen Technologien am besten zu erläutern oder um anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.