DE112022002157T5 - Dynamische microservice-interkommunikations-konfiguration - Google Patents

Dynamische microservice-interkommunikations-konfiguration Download PDF

Info

Publication number
DE112022002157T5
DE112022002157T5 DE112022002157.8T DE112022002157T DE112022002157T5 DE 112022002157 T5 DE112022002157 T5 DE 112022002157T5 DE 112022002157 T DE112022002157 T DE 112022002157T DE 112022002157 T5 DE112022002157 T5 DE 112022002157T5
Authority
DE
Germany
Prior art keywords
microservice
communication method
communication
identified
identifying
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
DE112022002157.8T
Other languages
English (en)
Inventor
Giuseppe Coviello
Kunal Rao
Wang-Pin Hsiung
Oliver Po
Srimat Chakradhar
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.)
NEC Laboratories America Inc
Original Assignee
NEC Laboratories America Inc
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 NEC Laboratories America Inc filed Critical NEC Laboratories America Inc
Publication of DE112022002157T5 publication Critical patent/DE112022002157T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/60Network streaming of media packets
    • 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/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Biomedical Technology (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

Verfahren und Systeme zur Verwaltung von Kommunikationen beinhalten die Identifizierung (406) eines Systemzustands in einem verteilten Computersystem, das einen ersten Mikrodienst in Kommunikation mit einem zweiten Mikrodienst umfasst. Ein Kommunikationsverfahren wird als Reaktion auf den identifizierten Systemzustand unter Verwendung eines Verstärkungslernmodells identifiziert (408), das Kommunikationsverfahren mit Systemzuständen assoziiert. Das identifizierte Kommunikationsverfahren wird für die Kommunikation zwischen dem ersten Mikrodienst und dem zweiten Mikrodienst implementiert (410), so dass der erste Mikrodienst und der zweite Mikrodienst das identifizierte Kommunikationsverfahren zur Datenübertragung verwenden.

Description

  • INFORMATIONEN ZU VERWANDTEN ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung Nr. 63/175,066 , die am 15. April 2021 eingereicht wurde, und der US-Patentanmeldung Nr. 17/720,776 , die am 14. April 2022 eingereicht wurde und die durch Bezugnahme in vollem Umfang hierin enthalten sind.
  • HINTERGRUND
  • Technischer Bereich
  • Die vorliegende Erfindung bezieht sich auf die verteilte Datenverarbeitung und insbesondere auf die Kommunikation zwischen Microservices.
  • Beschreibung der verwandten Technik
  • Microservices sind unabhängig voneinander einsetzbare Dienste mit einem automatisierten Bereitstellungsmechanismus, wobei jeder Dienst in einem größeren System unabhängig aktualisiert, ersetzt und skaliert werden kann. Für die Verbindung von Microservices kann eine Vielzahl von Kommunikationsformen verwendet werden, wobei bestimmte Kommunikationsformen für bestimmte Bedingungen besser geeignet sind als andere.
  • ZUSAMMENFASSUNG
  • Ein Verfahren zum Verwalten von Kommunikationen beinhaltet das Identifizieren eines Systemzustands in einem verteilten Computersystem, das einen ersten Mikrodienst in Kommunikation mit einem zweiten Mikrodienst umfasst. Ein Kommunikationsverfahren wird als Reaktion auf den identifizierten Systemzustand unter Verwendung eines Verstärkungslernmodells identifiziert, das Kommunikationsverfahren mit Systemzuständen assoziiert. Das identifizierte Kommunikationsverfahren wird für die Kommunikation zwischen dem ersten Microservice und dem zweiten Microservice implementiert, so dass der erste Microservice und der zweite Microservice das identifizierte Kommunikationsverfahren zur Datenübertragung verwenden.
  • Ein Verfahren zur Gesichtserkennung umfasst die Identifizierung eines Systemzustands in einem verteilten Computersystem, das einen ersten Mikrodienst in Kommunikation mit einem zweiten Mikrodienst in einem Videoverarbeitungs-Workload umfasst. Ein Kommunikationsverfahren wird als Reaktion auf den identifizierten Systemzustand unter Verwendung eines Verstärkungslernmodells identifiziert, das Kommunikationsverfahren mit Systemzuständen assoziiert. Das identifizierte Kommunikationsverfahren wird für die Kommunikation zwischen dem ersten Mikrodienst und dem zweiten Mikrodienst implementiert, so dass der erste Mikrodienst und der zweite Mikrodienst das identifizierte Kommunikationsverfahren verwenden, um Daten zu übertragen. Ein Gesicht wird in einem Videostrom erkannt, der von der Videoverarbeitungs-Workload verarbeitet wird. Als Reaktion auf die Erkennung des Gesichts wird eine Sicherheitsmaßnahme durchgeführt.
  • Ein System zur Verwaltung von Kommunikationen enthält einen Hardwareprozessor und einen Speicher, der ein Computerprogramm enthält. Wenn es von dem Hardware-Prozessor ausgeführt wird, veranlasst das Computerprogramm den Hardware-Prozessor, einen Systemzustand in einem verteilten Computersystem zu identifizieren, das einen ersten Mikrodienst in Kommunikation mit einem zweiten Mikrodienst umfasst, ein Kommunikationsverfahren als Reaktion auf den identifizierten Systemzustand unter Verwendung eines Verstärkungslernmodells zu identifizieren, das Kommunikationsverfahren mit Systemzuständen assoziiert, und das identifizierte Kommunikationsverfahren für die Kommunikation zwischen dem ersten Mikrodienst und dem zweiten Mikrodienst zu implementieren, so dass der erste Mikrodienst und der zweite Mikrodienst das identifizierte Kommunikationsverfahren zur Übertragung von Daten verwenden.
  • Diese und andere Merkmale und Vorteile werden aus der folgenden detaillierten Beschreibung illustrativer Ausführungsformen ersichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Offenbarung wird in der folgenden Beschreibung bevorzugter Ausführungsformen unter Bezugnahme auf die folgenden Figuren, Details zur Verfügung stellen, in denen:
    • 1 ist ein Blockdiagramm, das ein beispielhaftes verteiltes Computersystem gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
    • 2 ist ein Blockdiagramm eines Verarbeitungsknotens in einem verteilten Rechnersystem gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 3 ist ein Block-/Ablaufdiagramm eines Satzes von Mikrodiensten in einer Videoverarbeitungs- und Gesichtsabgleichsarbeitslast gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 4 ist ein Block-/Ablaufdiagramm eines Verfahrens zur Auswahl eines optimalen Kommunikationsverfahrens zwischen Mikrodiensten in einem verteilten Computersystem gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 5 ist ein Block-/Ablaufdiagramm eines Verfahrens zur Auswahl von Kommunikationsmethoden auf der Grundlage eines Verstärkungslernmodells gemäß einer Ausführungsform der vorliegenden Erfindung; und
    • 6 ist ein Blockdiagramm eines Computersystems, das ein verteiltes Computersystem verwalten kann, insbesondere die Auswahl von Kommunikationsverfahren zur Verwendung zwischen Mikrodiensten, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Eine Anwendung kann durch die Verbindung mehrerer Mikrodienste gebildet werden, so dass die Ausgabe eines ersten Mikrodienstes zur Eingabe für einen zweiten Mikrodienst wird. Mehrere solcher miteinander verbundener Microservices können eine Kette bilden, um die Funktionalität der Anwendung zu erzeugen. Bei dieser Verbindung wird die Datenkommunikation zwischen den Microservices genutzt, und zu den beispielhaften Kommunikationsarten gehören die Punkt-zu-Punkt-Kommunikation, die Kommunikation zwischen m-Servern und n-Clients, die Brokerbasierte und die Shared-Memory-basierte Kommunikation.
  • Jede Kommunikationsmethode eignet sich am besten für eine andere Reihe von Zuständen. Die aktuellen Zustände für ein verteiltes Rechnersystem können bewertet werden, so dass die Kommunikation zwischen den Diensten für eine laufende Anwendung dynamisch konfiguriert werden kann. Einige Plattformen für verteiltes Rechnen ermöglichen es zwar, Kommunikationsmethoden statisch zu spezifizieren, doch bieten diese Systeme möglicherweise nicht die Möglichkeit, die spezifizierte Kommunikationsmethode zu ändern, wenn sich die Zustände ändern.
  • Ein Kommunikationscontroller kann daher Leistungs- und Kommunikationsstatistiken von einzelnen Mikrodiensten sammeln. Diese Statistiken können mit Hilfe von Reinforcement Learning verarbeitet werden, um die optimale Kommunikationsmethode zu ermitteln, die zwischen einem beliebigen Paar von Mikrodiensten verwendet werden sollte. Die optimale Kommunikationsmethode kann dann dynamisch angewendet werden, um die Gesamteffizienz der Anwendung während der Laufzeit zu verbessern. Verstärkungs lernen nach dem SARSA (State-Action-Reward-State-Action) -Prinzip kann insbesondere zur Anpassung an sich ändernde Zustände verwendet werden.
  • In 1 ist ein Diagramm eines verteilten Computersystems 100 dargestellt. Ein Benutzer 102 kann eine Arbeitslast im verteilten Rechnersystem 100 ausführen. Zu diesem Zweck kommuniziert der Benutzer 102 mit dem Managersystem 104. Der Benutzer 102 liefert Informationen über die Arbeitslast, einschließlich der Anzahl und des Typs der Verarbeitungsknoten 106, die zur Ausführung der Arbeitslast benötigt werden.
  • Zu den Informationen, die dem Managersystem 104 zur Verfügung gestellt werden, gehören beispielsweise die Anzahl der Verarbeitungsknoten 106, ein Prozessortyp, ein Betriebssystem, eine Ausführungsumgebung, die Speicherkapazität, die Kapazität des Direktzugriffsspeichers, die Netzwerkbandbreite und alle anderen Punkte, die für die Arbeitslast erforderlich sind. Der Benutzer 102 kann darüber hinaus dem Managersystem 104 Bilder oder Container zur Speicherung in einer dortigen Registrierung zur Verfügung stellen.
  • Das verteilte Rechensystem 100 kann viele Tausende von Verarbeitungsknoten 106 umfassen, von denen jeder in Abhängigkeit von den Arbeitslasten, die vom verteilten Rechensystem 100 zu einem bestimmten Zeitpunkt ausgeführt werden, im Leerlauf oder beschäftigt sein kann. Obwohl ein einzelnes Managersystem 104 gezeigt wird, kann es mehrere solcher Managersysteme 104 geben, mit mehreren Registern, die über das verteilte Computersystem 100 verteilt sind.
  • Vor und während der Ausführung der Arbeitslast bestimmt das Managersystem 104, welche Verarbeitungsknoten 106 die Microservices implementieren, aus denen die entsprechende Anwendung besteht. Das Managersystem 104 kann die Verarbeitungsknoten 106 konfigurieren, zum Beispiel auf der Grundlage der Knoten- und Ressourcenverfügbarkeit zum Zeitpunkt der Bereitstellung. Die Microservices können vollständig auf separaten Verarbeitungsknoten 106 gehostet werden, oder eine beliebige Anzahl von Microservices kann auf demselben Verarbeitungsknoten 106 untergebracht werden. Das Managersystem 104 und das verteilte Rechensystem 100 können mehrere verschiedene Arbeitslasten von mehreren verschiedenen Benutzern 102 verarbeiten, so dass die Verfügbarkeit bestimmter Ressourcen davon abhängt, was im verteilten Rechensystem 100 im Allgemeinen geschieht.
  • Der hier verwendete Begriff „Bereitstellung“ bezieht sich auf den Prozess, durch den Ressourcen in einem verteilten Computersystem 100 einem Benutzer 102 zugewiesen und für die Ausführung vorbereitet werden. Somit umfasst die Bereitstellung die vom Managersystem 104 vorgenommenen Festlegungen, welche Verarbeitungselemente 106 für die Arbeitslast verwendet werden, sowie die Übertragung von Bildern und alle Konfigurationsschritte, die erforderlich sind, um die Verarbeitungsknoten 106 für die Ausführung der Arbeitslast vorzubereiten. Die Konfiguration kann z. B. die Festlegung von Kommunikationsmethoden umfassen, die von den Microservices verwendet werden sollen.
  • In 2 sind weitere Details eines Verarbeitungsknotens 108 dargestellt. Der Verarbeitungsknoten 106 umfasst einen Hardware-Prozessor 202, einen Speicher 204 und eine Netzwerkschnittstelle 206. Die Netzwerkschnittstelle 206 kann so konfiguriert sein, dass sie mit dem Managersystem 104, mit dem Benutzer 102 und bei Bedarf mit anderen Verarbeitungsknoten 106 über ein beliebiges geeignetes Kommunikationsmedium und Protokoll kommuniziert. Der Verarbeitungsknoten 106 umfasst auch ein oder mehrere Funktionsmodule, die in einigen Ausführungsformen als Software implementiert sein können, die im Speicher 204 gespeichert ist und vom Hardware-Prozessor 202 ausgeführt werden kann. In anderen Ausführungsformen können ein oder mehrere der Funktionsmodule als eine oder mehrere diskrete Hardwarekomponenten in Form von z. B. anwendungsspezifischen integrierten Chips oder feldprogrammierbaren Gate-Arrays implementiert werden.
  • Der Verarbeitungsknoten 106 kann einen oder mehrere Container 208 umfassen. Es ist ausdrücklich vorgesehen, dass jeder Container 208 eine eigene Betriebsumgebung darstellt. Die Container 208 enthalten jeweils einen Satz von Softwareanwendungen, Konfigurationsdateien, Arbeitslastdatensätzen und andere Informationen oder Software, die zur Ausführung einer bestimmten Arbeitslast erforderlich sind. Diese Container 208 können einen oder mehrere Microservices für eine verteilte Anwendung implementieren.
  • Die Container 208 werden im Speicher 204 gespeichert und von der Container-Orchestrierungs-Engine 210 nach Bedarf instanziiert und außer Betrieb genommen. Es ist zu verstehen, dass ein Betriebssystem des Verarbeitungsknotens 106 im Allgemeinen außerhalb der Container 208 existiert. Somit ist jeder Container 208 mit demselben Betriebssystemkern verbunden, was den für die gleichzeitige Ausführung mehrerer Container erforderlichen Overhead reduziert. In der Zwischenzeit können die Container 208 außerhalb der festgelegten Kommunikationsmethoden nicht miteinander kommunizieren, wodurch Sicherheitsbedenken verringert werden.
  • 3 zeigt eine beispielhafte Anwendung mit einer Reihe miteinander verbundener Mikrodienste. In diesem Beispiel kann eine Videoanalyseanwendung eine Echtzeitüberwachung eines Videostroms durchführen, die die Überwachung eines bestimmten Bereichs umfassen kann, um festzustellen, ob bestimmte Personen den Bereich betreten haben. Die Videoanalyseanwendung kann eine Warnung oder eine automatische Reaktion auf die Erkennung einer solchen Person erzeugen.
  • Die Anwendung kann beispielhafte Mikrodienste wie die Videoaufnahme 304, die Gesichtserkennung 306, den Gesichtsabgleich 308, den Benachrichtigungsmanager 310 und den Biometriemanager 312 umfassen. Eine Kamera 302 erzeugt visuelle Daten, z. B. einen Strom von Bildern, die einen Videostrom bilden. Die Videoaufnahme 304 verarbeitet diese visuellen Daten und führt eine geeignete Filterung oder Formatierung durch, um Bilder zu erzeugen, die von nachgeschalteten Mikrodiensten berücksichtigt werden können.
  • Die Gesichtserkennung 306 identifiziert Gesichter innerhalb der Bilder des Videostroms. Diese Identifizierung kann die Kennzeichnung des Bildes beinhalten, um das Vorhandensein eines Gesichts im Bild anzuzeigen, und kann außerdem Koordinaten für eine Bounding Box des Gesichts im Bild beinhalten. Der Gesichtsabgleich 308 kann dann das Gesichtsbild mit Informationen über eine im Bild gezeigte Person verbinden. Dieser Abgleich kann auf Informationen aus dem Biometrie-Manager 312 zurückgreifen, der Profile von Personen von Interesse speichern kann. Das Profil kann biometrische Informationen enthalten, z. B. Gesichtsmerkmale, die für den Abgleich mit Gesichtsbildern verwendet werden können, sowie identifizierende Informationen wie den Namen und die Rolle der Person.
  • Im Falle eines Sicherheitssystems kann die Rolle einer Person Informationen über die Zugangsberechtigung enthalten. So kann eine Person beispielsweise berechtigt sein, einen gesperrten Bereich zu betreten, oder es kann ihr ausdrücklich verboten sein, einen gesperrten Bereich zu betreten. Der Alarmmanager 310 kann als Reaktion auf die Erkennung einer Person durch den Gesichtsabgleich 308 einen Alarm erzeugen. Eine Warnung kann zum Beispiel anzeigen, dass sich eine autorisierte Person in dem Bereich befindet, dass sich eine verbotene Person in dem Bereich befindet oder dass sich eine unbekannte Person in dem Bereich befindet.
  • Ein Sicherheitssystem 312 kann automatisch auf die Alarme reagieren. Die Reaktion kann eine Sicherheitsreaktion beinhalten, wie z. B. das automatische Ver- oder Entriegeln einer Tür oder eines anderen Zugangspunkts, das Auslösen eines optischen und/oder akustischen Alarms, das Herbeirufen von Sicherheitspersonal und das Anfordern einer weiteren Authentifizierung von der erkannten Person.
  • In einem verteilten Rechnersystem können mehrere Videoströme gleichzeitig verarbeitet werden. Beispielsweise können mehrere Kameras 302 entsprechende Videoströme erzeugen, und es können entsprechende Microservice-Instanzen für die Videoaufnahme 304, die Gesichtserkennung 306 und den Gesichtsabgleich 308 vorhanden sein. Die Kommunikation von erkannten Gesichtern zwischen den Mikrodiensten kann über eine Vielzahl verschiedener Kommunikationsmethoden erfolgen, z. B. über einen Prozess von m-Servern zu n-Clients, einen brokerbasierten Prozess oder einen gemeinsam genutzten Speicher. Beispielsweise kann eine Punkt-zu-Punkt-Kommunikationsmethode optimal sein, wenn die Anzahl der Gesichter auf allen Kameras 302 ähnlich und ausgeglichen ist, während eine brokerbasierte Kommunikationsmethode optimal sein kann, wenn viele Gesichter aus bestimmten Kamerawinkeln beobachtet werden (z. B. am Eingang eines Stadions).
  • Die verschiedenen Mikrodienste können als Container 208 innerhalb eines Verarbeitungsknotens 206 implementiert werden. In einigen Fällen können mehrere Microservices auf einem einzigen Verarbeitungsknoten 206 implementiert werden, beispielsweise unter Verwendung verschiedener entsprechender Container 208 oder durch Implementierung mehrerer Microservices in einem einzigen Container 208. In einigen Fällen können die Microservices unter Verwendung mehrerer verschiedener Verarbeitungsknoten 106 implementiert werden, wobei die Kommunikation zwischen den Containern 208 der verschiedenen Verarbeitungsknoten 106 über ein geeignetes Netzwerk erfolgt.
  • Ein Kommunikationscontroller zum Sammeln von leistungs- und kommunikationsbezogenen Statistiken von den verschiedenen Microservices. Dieser Kommunikationscontroller kann als separates Softwaremodul oder als Microservice implementiert werden, oder er kann im Managersystem 102 implementiert werden. Anhand der gesammelten Statistiken kann der Kommunikationscontroller das SARSA-Verstärkungs lernen verwenden, um die Eigenschaften der Kommunikation zwischen den Microservices und die optimalste Kommunikationsmethode für verschiedene Bedingungen zu lernen. Der Kommunikationscontroller kann somit die zwischen zwei Microservices verwendete Kommunikationsmethode dynamisch ändern.
  • In 4 ist ein Verfahren zur dynamischen Anpassung der Microservice-Kommunikation während der Ausführung einer Arbeitslast dargestellt. In Block 402 werden Mikrodienste in einem verteilten Rechensystem bereitgestellt und konfiguriert. Diese Konfiguration kann eine anfängliche Auswahl eines Kommunikationsverfahrens für jede einzelne Verbindung zwischen Microservices umfassen.
  • Block 404 führt die Arbeitslast mit Hilfe des verteilten Computersystems aus. Während der Ausführung der Arbeitslast überwacht Block 406 Kommunikationsstatistiken und andere Leistungs- und Betriebsparameter der Mikrodienste. Block 408 verwendet die gesammelten Statistiken, um die optimale Kommunikationsmethode für die aktuellen Betriebsbedingungen zu bestimmen. Block 410 implementiert dann die optimale Kommunikationsmethode, indem beispielsweise die aktuelle Kommunikationsmethode beibehalten wird, wenn sie immer noch optimal ist, oder indem die Microservices neu konfiguriert werden, um eine neue Kommunikationsmethode zu verwenden, wenn die neue Methode als optimal ermittelt wurde. Die Verarbeitung kehrt dann zu Block 406 zurück, wo neue Statistiken gesammelt werden. Bei diesem Aktualisierungsprozess kann eine Verzögerung entsprechend einem konfigurierbaren Parameter eingeführt werden. Beispielsweise kann eine Verzögerung von fünf Minuten es ermöglichen, genügend neue Statistiken zu sammeln, um die Bestimmung zu verbessern, ob eine neue Kommunikationsmethode optimaler wäre.
  • Zu den Arten von Kommunikationsstatistiken können datenpaketbezogene Statistiken gehören, z. B. Mindestgröße, Höchstgröße, Durchschnittsgröße, Standardabweichung und Häufigkeit/Rate von Nachrichten zwischen einem beliebigen Paar von Microservices innerhalb eines gleitenden Fensters. Kommunikationsstatistiken können ferner Listen kommunizierender Paare von Microservices enthalten, die sich im Laufe der Zeit ändern können, sowie Informationen über die Zone(n) und den/die Rechner, auf denen die Microservices ausgeführt werden. Diese Kommunikationsstatistiken können den Zustand des Verstärkungslernmodells bestimmen. Es können auch Leistungsstatistiken gesammelt werden, wie z. B. eine Verarbeitungsrate, um die Belohnung für das Reinforcement-Learning-Modell zu bestimmen.
  • Bei der Bestimmung von Block 408 wird das Verstärkungslemen verwendet. Beim SARSA-Verstärkungslernen beobachtet ein Agent die aktuellen Bedingungen (z. B. unter Berücksichtigung der gesammelten Statistiken). Als nächstes wählt der Agent eine Aktion unter Verwendung einer Strategie aus, wobei die Strategie die aktuellen Bedingungen als Eingabe verwendet und eine Aktion generiert, die so berechnet wird, dass eine gewisse Belohnung maximiert wird. Die Aktion wird ausgeführt und die Ergebnisse werden beobachtet, z. B. eine Belohnung oder eine Strafe. Auf der Grundlage dieses Feedbacks aktualisiert der Agent die Strategie, um bessere Ergebnisse zu erzielen. Durch die Wiederholung dieses Prozesses lernt der Agent die Umgebung kennen und erfährt, welche Aktionen den größten Nutzen bringen. Der Agent kann dann die gelernte Strategie mit neuen Eingaben verwenden, um das Verhalten des Systems zu steuern.
  • Im Zusammenhang mit der Optimierung der Kommunikation zwischen Microservices kann die Umgebung als ein Vektor definiert werden, der die folgenden Größen umfasst:
  • Eine Mindestgröße von Datenpaketen, die zwischen einem beliebigen Paar von Mikrodiensten innerhalb eines gleitenden Fensters ausgetauscht werden;
  • Eine maximale Größe von Datenpaketen, die zwischen einem beliebigen Paar von Microservices innerhalb eines gleitenden Fensters ausgetauscht werden;
  • Standardabweichung der Größe von Datenpaketen, die zwischen einem beliebigen Paar von Microservices innerhalb eines gleitenden Fensters ausgetauscht werden;
    die Häufigkeit von Datenpaketen zwischen einem beliebigen Paar von Mikrodiensten innerhalb eines gleitenden Fensters; und
  • Eine Zone und ein Verarbeitungsknoten, auf dem der Microservice ausgeführt wird.
  • Die Aktionen, die ein Agent durchführen kann, umfassen alle verfügbaren Kommunikationsmethoden. Zu den Aktionen, die ein Agent durchführen kann, gehören zum Beispiel:
    • Verwenden Sie Punkt-zu-Punkt-Kommunikation;
    • Verwende die Kommunikation zwischen m-Servern und n-Clients;
    • Benutzer-Broker-basierte Kommunikation;
    • Kommunikation auf der Grundlage eines gemeinsamen Speichers verwenden; und
    • Keine Maßnahmen ergreifen (Beibehaltung der derzeitigen Kommunikationsmethode).
  • Die Belohnung kann als Änderung der Verarbeitungsrate der Mikrodienste bestimmt werden. Diese kann als Verhältnis zwischen der vorherigen Verarbeitungsrate und der Differenz zwischen der neuen Verarbeitungsrate und der vorherigen Verarbeitungsrate berechnet werden: r = p a f t e r p b e f o r e p b e f o r e
    Figure DE112022002157T5_0001
  • Neben der unmittelbaren Belohnung, die der Agent für eine Aktion erhält, berücksichtigt er auch zukünftige Belohnungen, die sich aus der aktuellen Aktion ergeben können. Dementsprechend können für jedes Zustands- und Aktionspaar Q-Werte definiert werden. Zum Beispiel kann Q (s, a) eine Schätzung des Nutzens sein, der sich aus der Durchführung von Aktion a im Zustand s ergibt. Die Q (s, a) Schätzung berücksichtigt die zukünftigen Belohnungen, die für die Durchführung der Aktion a anfallen können, als: Q ( s , a ) Q ( s , a ) + α [ r + γ Q ( s , a ) Q ( s , a ) ]
    Figure DE112022002157T5_0002
    wobei α eine Lernrate ist, die steuert, wie viel Gewicht neuen Informationen im Vergleich zu zuvor gelernten Q-Werten gegeben wird, und γ ein Abzinsungsfaktor ist, der die Bedeutung zukünftiger Belohnungen bestimmt. Bei einem Wert von α = 0 stoppt das Lernen, während ein Wert von α = 1 werden nur die neuesten Informationen verwendet. Dieser Wert kann als Parameter mit einem hohen Wert (z. B., α = 0.9) festgelegt werden, damit das Modell die Ergebnisse der in der neuen Umgebung durchgeführten Aktionen schnell verarbeiten kann. Nach einer anfänglichen Lernphase, wenn die Q-Matrix weitgehend erkundet wurde, kann der Wert gesenkt werden (z. B., α = 0.1), um die Nutzung der neu aufgenommenen Informationen zu fördern.
  • Wenn y gleich Null ist, ignoriert der Agent künftige Belohnungen und versucht, für sofortige Belohnungen zu optimieren. Wenn γ auf eins gesetzt ist, legt der Agent großen Wert auf langfristige Belohnungen. Wenn ein Operator eine hohe Variabilität in den nachfolgenden Frames des Eingabeinhalts erwartet, kann er diese Information kodieren, indem er einen niedrigen Wert zuweist γ (z. B., γ = 0.1), während ein höherer Wert für Situationen mit geringerer Variabilität verwendet werden kann.
  • 5 zeigt die Verwendung eines Verstärkungslernmodells zur Bestimmung von Aktionen. Block 501 legt einen Anfangszustand s und eine Aktion α fest. Ein beispielhafter Prozess zur Auswahl einer Aktion wird weiter unten ausführlicher beschrieben. Block 502 führt die ausgewählte Aktion α aus, die den Zustand s in einen neuen Zustand s' ändert. Block 504 bestimmt einen Belohnungswert r basierend auf dem neuen Zustand s'.
  • Block 506 beobachtet den neuen Zustand s' und Block 508 wählt eine neue Aktion a' aus. Im neuen Zustand s' geht der Agent davon aus, dass eine Aktion a' zu einem Q-Wert von Q (s', a') führt. Die kumulative Belohnung Q (s, a) kann wie oben beschrieben geschätzt werden. Block 510 aktualisiert die kumulative Belohnung entsprechend dem vorherigen Zustand und der Aktion (s,a) und dem neuen Zustand und der Aktion (s',a').
  • Der Lernprozess wird während des Betriebs des Systems fortgesetzt - wenn der Agent Zustände besucht und wieder besucht, kann er die Werte der Q-Matrix aktualisieren, um die aktuellen Leistungsmessungen widerzuspiegeln. Zu Beginn des Betriebs wird ein Lernparameter festgelegt, um die zufällige Erkundung des Zustandsraums zu fördern. Später, wenn die Q-Matrix weitgehend ausgefüllt ist, kann der Lernparameter so eingestellt werden, dass die Auswahl optimaler Zustände gefördert wird, aber immer noch ein gewisses Lernen zur Aktualisierung der Matrixwerte möglich ist.
  • Dieser Prozess definiert nicht die Strategie für die Auswahl der Aktion a.S tattdessen wird angenommen, dass eine Strategie existiert, die sicherstellt, dass alle Zustands- und Aktionspaare vom Agenten besucht werden. Eine Möglichkeit, dies zu erreichen, besteht darin, einen Lernparameter zu definieren ε. Mit der Wahrscheinlichkeit ε wird die Strategie die beste Aktion für den Zustand vorschlagen, und mit der Wahrscheinlichkeit 1 - ε wird der Agent eine zufällige Aktion wählen. Während des Lernens kann der Wert ε ein kleiner Wert zugewiesen werden (z.B., ε = 0.1), um den Zustandsraum zu erkunden. Wenn ein großer Teil der Q-Werte genau geschätzt wurde, z. B. wenn ein Prozentsatz der Werte größer als ein vorher festgelegter Schwellenwert ist, können höhere Werte von ε verwendet werden, damit der Agent das gelernte Modell ausnutzen kann. Es ist zu beachten, dass durch die zufällige Auswahl einer Aktion während des Lernens auch Zustände, von denen bekannt ist, dass sie schlecht abschneiden, gelegentlich erneut aufgesucht werden. Dies ermöglicht dem Agenten, seine Belohnungswerte zu aktualisieren, wenn sich die Leistung verbessert hat.
  • Diese Q-Werte werden vom Agenten im Rahmen der Bestimmung der Belohnung für eine bestimmte Handlung in einem bestimmten Zustand geschätzt. Diese Bestimmung kann erfolgen, während der Agent die Belohnungen in jedem Element der Matrix aktualisiert. Wenn das System also einen Zustand einnimmt, können Leistungsstatistiken gesammelt werden, z. B. die Verarbeitungsrate, um die Belohnung für den Übergang in diesen Zustand zu bestimmen. Diese Werte können aktualisiert werden, um veränderten Bedingungen Rechnung zu tragen, beispielsweise wenn der Agent zu einem zuvor besuchten Zustand zurückkehrt und feststellt, dass sich die Leistungsstatistiken wesentlich von den zuvor erfassten Werten unterscheiden.
  • Das Q-Modell kann als zweidimensionale Matrix implementiert werden, wobei eine Dimension diskretisierte Zustände und die andere Dimension Aktionen repräsentiert. Jedes Element ij der Matrix speichert eine erwartete Belohnung für die Durchführung der Aktion i, während sich das System im Zustand j befindet.
  • Bei der Auswahl einer Aktion, z. B. in den Blöcken 501 oder 508, kann eine Zufallszahl zwischen null und eins generiert und verglichen werden mit ε. Wenn die Zufallszahl größer oder gleich ist ε ist, kann eine Zufallsaktion ausgewählt werden, um die Umgebung weiter zu erkunden. Wenn die erwartete Belohnung für die ausgewählte Aktion negativ ist, kann der Agent die ausgewählte Aktion rückgängig machen. Andernfalls wählt der Agent die nächste Aktion, um die Belohnung in seinem aktuellen Zustand zu maximieren. Wenn jedoch die voraussichtliche Belohnung für die gewählte Aktion geringer ist als die Belohnung für eine frühere Aktion, empfiehlt die Strategie erneut die frühere Aktion.
  • Im Zusammenhang mit der Auswahl von Kommunikationsmethoden bestimmt die „Aktion“, welche Kommunikationsmethode zwischen einem Paar von Microservices verwendet werden soll. Wenn der Agent feststellt, dass die bisherige Kommunikationsmethode die besten Ergebnisse liefert, dann wird er diese Kommunikationsmethode weiterhin verwenden. Ändert sich jedoch der Zustand so, dass eine neue Kommunikationsmethode einen besseren erwarteten Nutzen bringt, kann der Agent die neue Kommunikationsmethode implementieren.
  • Eine Vielzahl unterschiedlicher Bedingungen kann dazu führen, dass eine Kommunikationsmethode einer anderen vorgezogen wird. Wenn die Ausgabe eines Mikrodienstes von vielen anderen Mikrodiensten als Eingabe verwendet wird, kann ein Nachrichtenbus erwünscht sein, um zu vermeiden, dass zwischen jeder Quell-Mikrodienstinstanz und jeder Ziel-Mikrodienstinstanz eine separate Verbindung hergestellt wird. Wenn die erforderlichen Nachrichtenübermittlungsraten weniger einheitlich sind, z. B. wenn der Ziel-Microservice A fünf Nachrichten pro Sekunde verarbeitet, während der Ziel-Microservice B dreißig Nachrichten pro Sekunde verarbeitet, kann es effizienter sein, Point-to-Point-Messaging zu verwenden.
  • In 6 ist eine beispielhafte Rechenvorrichtung 500 gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Die Rechenvorrichtung 500 ist so konfiguriert, dass sie eine Klassifikatorverbesserung durchführt.
  • Die Rechenvorrichtung 500 kann als jede Art von Rechen- oder Computergerät ausgeführt werden, das in der Lage ist, die hierin beschriebenen Funktionen auszuführen, einschließlich, ohne Einschränkung, eines Computers, eines Servers, eines Rack-basierten Servers, eines Blade-Servers, einer Workstation, eines Desktop-Computers, eines Laptops, eines Notebooks, eines Tablet-Computers, eines mobilen Rechengeräts, eines tragbaren Rechengeräts, eines Netzwerkgeräts, eines Webgeräts, eines verteilten Rechensystems, eines prozessorbasierten Systems und/oder eines elektronischen Konsumgeräts. Zusätzlich oder alternativ kann das Computergerät 500 als ein oder mehrere Rechenschlitten, Speicherschlitten oder andere Racks, Schlitten, Computergehäuse oder andere Komponenten eines physisch disaggregierten Computergeräts verkörpert werden.
  • Wie in 6 dargestellt, umfasst das Computergerät 600 den Prozessor 610, ein Eingabe-/Ausgabe-Teilsystem 620, einen Speicher 630, ein Datenspeichergerät 640 und ein Kommunikations-Teilsystem 650 und/oder andere Komponenten und Geräte, die üblicherweise in einem Server oder einem ähnlichen Computergerät zu finden sind. In anderen Ausführungsformen kann die Rechenvorrichtung 600 andere oder zusätzliche Komponenten enthalten, wie sie üblicherweise in einem Servercomputer zu finden sind (z. B. verschiedene Eingabe-/Ausgabegeräte). Darüber hinaus können in einigen Ausführungsformen eine oder mehrere der dargestellten Komponenten in eine andere Komponente integriert sein oder anderweitig einen Teil dieser Komponente bilden. Zum Beispiel kann der Speicher 630 oder Teile davon in einigen Ausführungsformen in den Prozessor 610 integriert sein.
  • Der Prozessor 610 kann als jede Art von Prozessor ausgeführt werden, der die hier beschriebenen Funktionen ausführen kann. Der Prozessor 610 kann als Einzelprozessor, als mehrere Prozessoren, als Zentraleinheit(en) (CPU(s)), als Grafikverarbeitungseinheit(en) (GPU(s)), als Einzel- oder Mehrkernprozessor(en), als digitaler Signalprozessor(en), als Mikrocontroller oder als andere(r) Prozessor(en) oder Verarbeitungs-/Steuerungsschaltung(en) ausgeführt werden.
  • Der Speicher 630 kann als jede Art von flüchtigem oder nichtflüchtigem Speicher oder Datenspeicher ausgeführt werden, der die hier beschriebenen Funktionen ausführen kann. Im Betrieb kann der Speicher 630 verschiedene Daten und Software speichern, die während des Betriebs des Computergeräts 600 verwendet werden, wie z. B. Betriebssysteme, Anwendungen, Programme, Bibliotheken und Treiber. Der Speicher 630 ist mit dem Prozessor 610 über das E/A-Subsystem 620 kommunikativ verbunden, das als Schaltungen und/oder Komponenten ausgeführt sein kann, um Eingabe-/Ausgabeoperationen mit dem Prozessor 610, dem Speicher 630 und anderen Komponenten des Computergeräts 600 zu erleichtern. Beispielsweise kann das E/A-Subsystem 620 als Speicher-Controller-Hubs, Eingabe-/Ausgabesteuerungs-Hubs, Plattform-Controller-Hubs, integrierte Steuerschaltungen, Firmware-Geräte, Kommunikationsverbindungen (z. B. Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterbahnen usw.) und/oder andere Komponenten und Subsysteme zur Erleichterung der Eingabe-/Ausgabeoperationen ausgeführt werden oder diese enthalten. In einigen Ausführungsformen kann das E/A-Teilsystem 620 einen Teil eines System-on-Chip (SOC) bilden und zusammen mit dem Prozessor 610, dem Speicher 630 und anderen Komponenten des Computergeräts 600 auf einem einzigen integrierten Schaltungschip untergebracht werden.
  • Das Datenspeichergerät 640 kann als jede Art von Gerät oder Geräten ausgeführt werden, die für die kurz- oder langfristige Speicherung von Daten konfiguriert sind, wie z. B. Speichergeräte und -schaltungen, Speicherkarten, Festplattenlaufwerke, Solid State Drives oder andere Datenspeichergeräte. Das Datenspeichergerät 640 kann Programmcode 640A für die Container-Orchestrierung und 640B für die Verwaltung von Kommunikationsmethoden innerhalb eines dezentralen Computersystems speichern. Das Kommunikationssubsystem 650 des Computergeräts 600 kann als ein beliebiger Netzwerkschnittstellencontroller oder eine andere Kommunikationsschaltung, -vorrichtung oder -sammlung davon ausgeführt werden, die in der Lage ist, die Kommunikation zwischen dem Computergerät 600 und anderen entfernten Geräten über ein Netzwerk zu ermöglichen. Das Kommunikationssubsystem 650 kann so konfiguriert sein, dass es eine oder mehrere Kommunikationstechnologien (z. B. drahtgebundene oder drahtlose Kommunikation) und zugehörige Protokolle (z. B. Ethernet, InfiniBand®, Bluetooth®, Wi-Fi®, WiMAX usw.) verwendet, um eine solche Kommunikation durchzuführen.
  • Wie dargestellt, kann das Computergerät 600 auch ein oder mehrere Peripheriegeräte 660 enthalten. Die Peripheriegeräte 660 können eine beliebige Anzahl von zusätzlichen Eingabe-/Ausgabegeräten, Schnittstellengeräten und/oder anderen Peripheriegeräten umfassen. In einigen Ausführungsformen können die Peripheriegeräte 660 beispielsweise ein Display, einen Touchscreen, Grafikschaltkreise, eine Tastatur, eine Maus, ein Lautsprechersystem, ein Mikrofon, eine Netzwerkschnittstelle und/oder andere Eingabe-/Ausgabegeräte, Schnittstellengeräte und/oder Peripheriegeräte umfassen.
  • Natürlich kann das Computergerät 600 auch andere Elemente (nicht dargestellt) enthalten, wie es für einen Fachmann ohne weiteres vorstellbar ist, oder auch bestimmte Elemente weglassen. Zum Beispiel können verschiedene andere Sensoren, Eingabegeräte und/oder Ausgabegeräte in der Rechenvorrichtung 600 enthalten sein, abhängig von der jeweiligen Implementierung derselben, wie von einem Fachmann leicht zu verstehen ist. Zum Beispiel können verschiedene Arten von drahtlosen und/oder verdrahteten Eingabe- und/oder Ausgabegeräten verwendet werden. Darüber hinaus können zusätzliche Prozessoren, Steuerungen, Speicher usw. in verschiedenen Konfigurationen verwendet werden. Diese und andere Variationen des Verarbeitungssystems 600 können von einem Fachmann angesichts der hierin enthaltenen Lehren der vorliegenden Erfindung ohne weiteres in Betracht gezogen werden.
  • Die hier beschriebenen Ausführungsformen können vollständig aus Hardware, vollständig aus Software oder sowohl aus Hardware- als auch aus Softwareelementen bestehen. In einer bevorzugten Ausführungsform ist die vorliegende Erfindung in Software implementiert, die Firmware, residente Software, Mikrocode usw. umfasst, aber nicht darauf beschränkt ist.
  • Die Ausführungsformen können ein Computerprogrammprodukt umfassen, auf das von einem computerverwendbaren oder computerlesbaren Medium aus zugegriffen werden kann, das Programmcode zur Verwendung durch oder in Verbindung mit einem Computer oder einem Befehlsausführungssystem bereitstellt. Ein computernutzbares oder computerlesbares Medium kann jede Vorrichtung umfassen, die das Programm zur Verwendung durch oder in Verbindung mit dem Befehlsausführungssystem, der Vorrichtung oder dem Gerät speichert, kommuniziert, weitergibt oder transportiert. Das Medium kann ein magnetisches, optisches, elektronisches, elektromagnetisches, Infrarot- oder Halbleitersystem (oder ein Gerät oder eine Vorrichtung) oder ein Ausbreitungsmedium sein. Das Medium kann ein computerlesbares Speichermedium wie ein Halbleiter- oder Festkörperspeicher, ein Magnetband, eine austauschbare Computerdiskette, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), eine starre Magnetplatte, eine optische Platte usw. sein.
  • Jedes Computerprogramm kann in einem maschinenlesbaren Speichermedium oder einer maschinenlesbaren Vorrichtung (z. B. Programmspeicher oder Magnetplatte) gespeichert sein, das bzw. die von einem allgemeinen oder speziellen programmierbaren Computer gelesen werden kann, um den Betrieb eines Computers zu konfigurieren und zu steuern, wenn das Speichermedium oder die Vorrichtung von dem Computer gelesen wird, um die hier beschriebenen Verfahren durchzuführen. Das erfindungsgemäße System kann auch als in einem computerlesbaren Speichermedium verkörpert angesehen werden, das mit einem Computerprogramm konfiguriert ist, wobei das so konfigurierte Speichermedium einen Computer veranlasst, in einer spezifischen und vordefinierten Weise zu arbeiten, um die hierin beschriebenen Funktionen auszuführen.
  • Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, kann mindestens einen Prozessor umfassen, der direkt oder indirekt über einen Systembus mit Speicherelementen verbunden ist. Zu den Speicherelementen können ein lokaler Speicher, der während der tatsächlichen Ausführung des Programmcodes verwendet wird, ein Massenspeicher und Cache-Speicher gehören, in denen zumindest ein Teil des Programmcodes vorübergehend gespeichert wird, um die Anzahl der Abrufe des Codes aus dem Massenspeicher während der Ausführung zu verringern. Eingabe-/Ausgabe- oder E/A-Geräte (einschließlich, aber nicht beschränkt auf Tastaturen, Bildschirme, Zeigegeräte usw.) können entweder direkt oder über zwischengeschaltete E/A-Controller mit dem System verbunden werden.
  • Netzwerkadapter können auch an das System gekoppelt werden, um das Datenverarbeitungssystem mit anderen Datenverarbeitungssystemen oder entfernten Druckern oder Speichergeräten über dazwischen liegende private oder öffentliche Netzwerke zu verbinden. Modems, Kabelmodems und Ethernet-Karten sind nur einige der derzeit verfügbaren Arten von Netzwerkadaptern.
  • Wie hier verwendet, kann sich der Begriff „Hardware-Prozessor-Teilsystem“ oder „Hardware-Prozessor“ auf einen Prozessor, einen Speicher, eine Software oder Kombinationen davon beziehen, die zusammenarbeiten, um eine oder mehrere spezifische Aufgaben zu erfüllen. In nützlichen Ausführungsformen kann das Hardware-Prozessor-Teilsystem ein oder mehrere Datenverarbeitungselemente (z. B. Logikschaltungen, Verarbeitungsschaltungen, Befehlsausführungsgeräte usw.) umfassen. Das eine oder die mehreren Datenverarbeitungselemente können in einer zentralen Verarbeitungseinheit, einer Grafikverarbeitungseinheit und/oder einer separaten prozessor- oder rechnerelementbasierten Steuerung (z. B. Logikgatter usw.) enthalten sein. Das Hardware-Prozessor-Subsystem kann einen oder mehrere On-Board-Speicher enthalten (z. B. Caches, dedizierte Speicher-Arrays, Festwertspeicher usw.). In einigen Ausführungsformen kann das Hardware-Prozessor-Teilsystem einen oder mehrere Speicher enthalten, die sich auf der Platine oder außerhalb der Platine befinden können oder die für die Verwendung durch das Hardware-Prozessor-Teilsystem bestimmt sein können (z. B. ROM, RAM, BIOS (Basic Input/Output System), usw.).
  • In einigen Ausführungsformen kann das Hardware-Prozessor-Subsystem ein oder mehrere Softwareelemente enthalten und ausführen. Das eine oder die mehreren Software-Elemente können ein Betriebssystem und/oder eine oder mehrere Anwendungen und/oder spezifischen Code enthalten, um ein bestimmtes Ergebnis zu erzielen.
  • In anderen Ausführungsformen kann das Hardware-Prozessor-Teilsystem spezielle, spezialisierte Schaltungen enthalten, die eine oder mehrere elektronische Verarbeitungsfunktionen ausführen, um ein bestimmtes Ergebnis zu erzielen. Solche Schaltungen können eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs), feldprogrammierbare Gate-Arrays (FPGAs) und/oder programmierbare Logik-Arrays (PLAs) umfassen.
  • Diese und andere Variationen eines Hardware-Prozessor-Subsystems sind auch in Übereinstimmung mit Ausführungsformen der vorliegenden Erfindung in Betracht gezogen.
  • Die Bezugnahme in der Beschreibung auf „eine Ausführungsform“ oder „eine Ausführungsform“ der vorliegenden Erfindung sowie andere Varianten davon bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur, eine bestimmte Eigenschaft usw., die im Zusammenhang mit der Ausführungsform beschrieben werden, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten sind. Daher beziehen sich die Ausdrücke „in einer Ausführungsform“ oder „in einer Ausführungsform“ sowie andere Variationen, die an verschiedenen Stellen in der Beschreibung erscheinen, nicht notwendigerweise alle auf dieselbe Ausführungsform. Es ist jedoch zu verstehen, dass die Merkmale einer oder mehrerer Ausführungsformen angesichts der hierin enthaltenen Lehren der vorliegenden Erfindung kombiniert werden können.
  • Es ist zu beachten, dass die Verwendung der folgenden Ausdrücke „/“, „und/oder“ und „mindestens eines von“, z. B. in den Fällen „A/B“, „A und/oder B“ und „mindestens eines von A und B“, nur die Auswahl der ersten aufgeführten Option (A) oder nur die Auswahl der zweiten aufgeführten Option (B) oder die Auswahl beider Optionen (A und B) einschließen soll. Ein weiteres Beispiel: In den Fällen „A, B und/oder C“ und „mindestens eine der Optionen A, B und C“ soll diese Formulierung nur die Auswahl der ersten aufgeführten Option (A) oder nur die Auswahl der zweiten aufgeführten Option (B) oder nur die Auswahl der dritten aufgeführten Option (C) umfassen, oder nur die Auswahl der ersten und der zweiten aufgeführten Option (A und B), oder nur die Auswahl der ersten und der dritten aufgeführten Option (A und C), oder nur die Auswahl der zweiten und der dritten aufgeführten Option (B und C), oder die Auswahl aller drei Optionen (A und B und C). Dies kann für beliebig viele der aufgeführten Optionen erweitert werden.
  • Das Vorstehende ist in jeder Hinsicht illustrativ und beispielhaft, aber nicht einschränkend zu verstehen, und der Umfang der hierin offenbarten Erfindung ist nicht aus der detaillierten Beschreibung, sondern vielmehr aus den Ansprüchen zu entnehmen, die gemäß der vollen Breite der Patentgesetze ausgelegt werden. Es versteht sich von selbst, dass die hier gezeigten und beschriebenen Ausführungsformen nur zur Veranschaulichung der vorliegenden Erfindung dienen und dass der Fachmann verschiedene Modifikationen vornehmen kann, ohne vom Umfang und Geist der Erfindung abzuweichen. Der Fachmann kann verschiedene andere Merkmalskombinationen implementieren, ohne von dem Umfang und dem Geist der Erfindung abzuweichen. Nachdem somit Aspekte der Erfindung mit den von den Patentgesetzen geforderten Einzelheiten und Einzelheiten beschrieben worden sind, ist das, was beansprucht und durch die Patentschrift geschützt werden soll, in den beigefügten Ansprüchen dargelegt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/175066 [0001]
    • US 17/720776 [0001]

Claims (20)

  1. Ccomputerimplementiertes Verfahren zur Verwaltung von Kommunikationen, umfassend: Identifizierung (406) eines Systemzustands in einem verteilten Rechensystem, das einen ersten Mikrodienst in Kommunikation mit einem zweiten Mikrodienst umfasst; Identifizierung (408) eines Kommunikationsverfahrens, das auf den identifizierten Systemzustand reagiert, unter Verwendung eines Verstärkungslernmodells, das Kommunikationsverfahren mit Systemzuständen assoziiert; und Implementieren (410) des identifizierten Kommunikationsverfahrens für die Kommunikation zwischen dem ersten Mikrodienst und dem zweiten Mikrodienst, so dass der erste Mikrodienst und der zweite Mikrodienst das identifizierte Kommunikationsverfahren zur Datenübertragung verwenden.
  2. Verfahren nach Anspruch 1, umfassend ferner das Sammeln aktualisierter Systemstatistiken nach der Implementierung des identifizierten Kommunikationsverfahrens und das Wiederholen der Schritte des Identifizierens eines Systemzustands, des Identifizierens eines Kommunikationsverfahrens und des Implementierens des identifizierten Kommunikationsverfahrens unter Verwendung der aktualisierten Systemstatistiken.
  3. Verfahren nach Anspruch 1, wobei das Identifizieren des Kommunikationsverfahrens die Auswahl zwischen einem optimalen Verfahren, das durch das Verstärkungslernmodell vorgegeben wird, und einem Zufallsverfahren beinhaltet.
  4. Verfahren nach Anspruch 3, wobei die Auswahl zwischen dem optimalen Verfahren und dem Zufallsverfahren den Vergleich eines Zufallswertes mit einem Lernparameter umfasst.
  5. Verfahren nach Anspruch 4, umfassend ferner das Aktualisieren des Lernparameters, nachdem ein Schwellenprozentsatz von Werten des Verstärkungslernmodells untersucht worden ist, um die Wahrscheinlichkeit zu erhöhen, dass das optimale Verfahren ausgewählt wird.
  6. Verfahren nach Anspruch 1, wobei das identifizierte Kommunikationsverfahren aus der Gruppe ausgewählt ist, die aus einem Prozess von m-Servern zu n-Clients, einem brokerbasierten Prozess, einem Bus und einem gemeinsam genutzten Speicher besteht.
  7. Verfahren nach Anspruch 1, wobei der erste Mikrodienst und der zweite Mikrodienst entsprechende Aufgaben in einer Videoverarbeitungsarbeitslast ausführen.
  8. Verfahren nach Anspruch 7, umfassend ferner das Erkennen eines Gesichts in einem Videostrom, der vom Videoverarbeitungsprogramm verarbeitet wird, und das Durchführen einer Sicherheitsmaßnahme in Reaktion auf die Erkennung des Gesichts.
  9. Verfahren nach Anspruch 1, umfassend ferner das Aktualisieren eines Belohnungswertes des Verstärkungslernmodells, das dem identifizierten Kommunikationsverfahren entspricht, unter Verwendung von Leistungsstatistiken, die nach der Implementierung des identifizierten Kommunikationsverfahrens gesammelt wurden.
  10. Verfahren nach Anspruch 1, wobei das Identifizieren des Systemzustands das Messen von Kommunikationsstatistiken umfasst, die mindestens eine der folgenden Informationen enthalten: datenpaketbezogene Statistiken und Informationen darüber, auf welchen Zonen und Maschinen der erste Mikrodienst und der zweite Mikrodienst laufen.
  11. Computer-implementiertes Verfahren zur Gesichtserkennung, das Folgendes umfasst: Identifizierung (406) eines Systemzustands in einem verteilten Rechensystem, das einen ersten Mikrodienst in Kommunikation mit einem zweiten Mikrodienst in einer Videoverarbeitungsarbeitslast umfasst; Identifizierung (408) eines Kommunikationsverfahrens, das auf den identifizierten Systemzustand reagiert, unter Verwendung eines Verstärkungslernmodells, das Kommunikationsverfahren mit Systemzuständen assoziiert; Implementieren (410) des identifizierten Kommunikationsverfahrens für die Kommunikation zwischen dem ersten Mikrodienst und dem zweiten Mikrodienst, so dass der erste Mikrodienst und der zweite Mikrodienst das identifizierte Kommunikationsverfahren zur Datenübertragung verwenden; Erkennen (308) eines Gesichts in einem Videostrom, der von der Videoverarbeitungsarbeitslast verarbeitet wird; und Durchführung (312) einer Sicherheitsaktion als Reaktion auf die Erkennung des Gesichts.
  12. System zur Verwaltung der Kommunikation, das Folgendes umfasst: einen Hardware-Prozessor (610); und einen Speicher (640), der ein Computerprogramm enthält, das, wenn es von dem Hardwareprozessor ausgeführt wird, den Hardwareprozessor veranlasst zu: Identifizierung (406) eines Systemzustands in einem verteilten Rechensystem, das einen ersten Mikrodienst in Kommunikation mit einem zweiten Mikrodienst umfasst; Identifizieren (408) eines Kommunikationsverfahrens, das auf den identifizierten Systemzustand reagiert, unter Verwendung eines Verstärkungslernmodells, das Kommunikationsverfahren mit Systemzuständen assoziiert; und das identifizierte Kommunikationsverfahren für die Kommunikation zwischen dem ersten Mikrodienst und dem zweiten Mikrodienst implementieren (410), so dass der erste Mikrodienst und der zweite Mikrodienst das identifizierte Kommunikationsverfahren zur Datenübertragung verwenden.
  13. System nach Anspruch 12, wobei das Computerprogramm ferner den Hardware-Prozessor veranlasst, nach der Implementierung des identifizierten Kommunikationsverfahrens aktualisierte Systemstatistiken zu sammeln und die Schritte der Identifizierung eines Systemzustands, der Identifizierung eines Kommunikationsverfahrens und der Implementierung des identifizierten Kommunikationsverfahrens unter Verwendung der aktualisierten Systemstatistiken zu wiederholen.
  14. System nach Anspruch 12, wobei das Computerprogramm ferner den Hardwareprozessor veranlasst, zwischen einem optimalen Verfahren, das durch das Verstärkungslernmodell vorgegeben wird, und einem Zufallsverfahren zu wählen.
  15. System nach Anspruch 14, wobei das Computerprogramm den Hardwareprozessor ferner veranlasst, einen Zufallswert mit einem Lernparameter zu vergleichen, um zu bestimmen, welches Kommunikationsverfahren zu verwenden ist.
  16. System nach Anspruch 15, wobei das Computerprogramm ferner den Hardwareprozessor veranlasst, den Lernparameter zu aktualisieren, nachdem ein Schwellenprozentsatz von Werten des Verstärkungslernmodells erkundet wurde, um die Wahrscheinlichkeit zu erhöhen, dass das optimale Verfahren ausgewählt wird.
  17. System nach Anspruch 12, wobei das identifizierte Kommunikationsverfahren aus der Gruppe ausgewählt ist, die aus einem Prozess von m-Servern zu n-Clients, einem brokerbasierten Prozess, einem Bus und einem gemeinsamen Speicher besteht.
  18. System nach Anspruch 12, wobei der erste Mikrodienst und der zweite Mikrodienst entsprechende Aufgaben in einer Videoverarbeitungsarbeitslast ausführen.
  19. System nach Anspruch 12, wobei das Computerprogramm ferner den Hardwareprozessor veranlasst, einen Belohnungswert des Verstärkungslernmodells entsprechend dem identifizierten Kommunikationsverfahren unter Verwendung von Leistungsstatistiken zu aktualisieren, die nach der Implementierung des identifizierten Kommunikationsverfahrens gesammelt wurden.
  20. System nach Anspruch 12, wobei das Computerprogramm ferner den Hardwareprozessor veranlasst, Kommunikationsstatistiken zu messen, die mindestens eine von datenpaketbezogenen Statistiken und Informationen darüber enthalten, auf welchen Zonen und Maschinen der erste Mikrodienst und der zweite Mikrodienst laufen.
DE112022002157.8T 2021-04-15 2022-04-15 Dynamische microservice-interkommunikations-konfiguration Pending DE112022002157T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163175066P 2021-04-15 2021-04-15
US63/175,066 2021-04-15
US17/720,776 US11785065B2 (en) 2021-04-15 2022-04-14 Dynamic microservice intercommunication configuration
US17/720,776 2022-04-14
PCT/US2022/024979 WO2022221638A1 (en) 2021-04-15 2022-04-15 Dynamic microservice intercommunication configuration

Publications (1)

Publication Number Publication Date
DE112022002157T5 true DE112022002157T5 (de) 2024-02-15

Family

ID=83602764

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022002157.8T Pending DE112022002157T5 (de) 2021-04-15 2022-04-15 Dynamische microservice-interkommunikations-konfiguration

Country Status (4)

Country Link
US (1) US11785065B2 (de)
JP (1) JP2024514611A (de)
DE (1) DE112022002157T5 (de)
WO (1) WO2022221638A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116192611A (zh) * 2023-03-03 2023-05-30 阿维塔科技(重庆)有限公司 一种基于多个微服务场景的统一告警方法、系统及设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187479B2 (en) * 2013-08-26 2019-01-22 Vmware, Inc. Cloud-scale heterogeneous datacenter management infrastructure
DE112017006994T5 (de) * 2017-02-05 2019-10-17 Intel Corporation Bereitstellung und verwaltung von microservices
US10521263B2 (en) * 2017-12-08 2019-12-31 Sap Se Generic communication architecture for cloud microservice infrastructure
US10832137B2 (en) * 2018-01-30 2020-11-10 D5Ai Llc Merging multiple nodal networks
CN108449312B (zh) * 2018-01-31 2021-01-22 北京奇艺世纪科技有限公司 一种协议转换方法、装置、系统及网关
US10812606B2 (en) * 2018-08-28 2020-10-20 Nokia Solutions And Networks Oy Supporting communications in a stream processing platform
US11277495B2 (en) * 2018-12-10 2022-03-15 Electronics And Telecommunications Research Institute System and method for providing microservice-based device control interface
KR102050188B1 (ko) * 2019-02-08 2019-11-28 아콘소프트 주식회사 마이크로서비스 시스템 및 방법
US11488063B2 (en) * 2019-03-05 2022-11-01 Honeywell International Inc. Systems and methods for cognitive services of a connected FMS or avionics SaaS platform
US11570271B2 (en) * 2019-04-10 2023-01-31 Cisco Technology, Inc. Differentiated smart sidecars in a service mesh
WO2021025601A1 (en) * 2019-08-06 2021-02-11 Telefonaktiebolaget Lm Ericsson (Publ) Methods and nodes in a communications network
JP7347525B2 (ja) * 2019-09-30 2023-09-20 日本電気株式会社 システム、方法及び制御装置
EP4046334B1 (de) * 2019-10-18 2024-03-27 Telefonaktiebolaget LM Ericsson (publ) Verfahren und system zur schätzung der netzwerkleistung mittels maschinenlernen und teilpfadmessungen
US12034793B2 (en) * 2020-09-24 2024-07-09 Juniper Networks, Inc. Retrieving operational command response text from network devices

Also Published As

Publication number Publication date
US20220337644A1 (en) 2022-10-20
JP2024514611A (ja) 2024-04-02
WO2022221638A1 (en) 2022-10-20
US11785065B2 (en) 2023-10-10

Similar Documents

Publication Publication Date Title
DE112016001742T5 (de) Integrierte Gemeinschafts- und Rollenentdeckung in Unternehmensnetzwerken
DE112016005536T5 (de) Bestimmen von reihenfolgen einer ausführung eines neuronalen netzes
DE112019004076T5 (de) Dezentralisiertes verteiltes deep learning
DE202017007517U1 (de) Aggregatmerkmale für maschinelles Lernen
DE112016004368T5 (de) Verwaltung eines Fehlerzustands in einem Datenverarbeitungssystem
DE202015009298U1 (de) Dynamische Anpassung von Shard-Zuweisungen
DE112021006232T5 (de) Proaktive anomalieerkennung
DE112017000046T5 (de) Beurteilung der Genauigkeit eines Maschinenlernmodells
DE102019112700A1 (de) Autonome anomalieerkennung und ereignisauslösung für datenströme
DE202012013405U1 (de) Cloud-zu Gerät-Nachrichtenübermittlung zur Anwendungsaktivierung und Meldung
DE112017008151T5 (de) Schaltungen geringer tiefe als quantenklassifikatoren
DE102021109767A1 (de) Systeme und methoden zur vorausschauenden sicherheit
DE112020000927T5 (de) Verwalten sensibler daten
DE202015009283U1 (de) Klassifizierung und Speicherung von Dokumenten
DE112021004559T5 (de) System zur robusten vorhersage bei unregelmässigen zeitreihen in dialysepatientenakten
DE102018127802A1 (de) Hybrider klassifikator eines gepulsten neuronalen netzwerks und einer support-vektor-maschine
DE202014010885U1 (de) Beschleunigung basierend auf zwischengespeicherte Flüsse
DE112021000485T5 (de) System zur schnellen interaktiven Erkundung von Massendaten
DE102018010163A1 (de) Automatisches Generieren sinnvoller Nutzersegmente
DE112018005018T5 (de) Berechtigungsprüfung von benutzern an mehreren endgeräten
DE102021130396A1 (de) Datenzugriffsüberwachung und -steuerung
DE102022200763A1 (de) System und verfahren für kundenspezifische erinnerungen
DE112022002157T5 (de) Dynamische microservice-interkommunikations-konfiguration
DE102022126665A1 (de) Ermöglichung der bedeutung von merkmalen mit hilfe von siamesischenautoencodern für eine effektive erkennung von bildveränderungen
DE102020211849A1 (de) Trainieren eines maschinellen lernmodells unter verwendung eines batch-basierten aktiven lernansatzes

Legal Events

Date Code Title Description
R012 Request for examination validly filed