DE102022203111A1 - Auf netzwerkfluss basierende hardwarezuweisung - Google Patents

Auf netzwerkfluss basierende hardwarezuweisung Download PDF

Info

Publication number
DE102022203111A1
DE102022203111A1 DE102022203111.3A DE102022203111A DE102022203111A1 DE 102022203111 A1 DE102022203111 A1 DE 102022203111A1 DE 102022203111 A DE102022203111 A DE 102022203111A DE 102022203111 A1 DE102022203111 A1 DE 102022203111A1
Authority
DE
Germany
Prior art keywords
network
flow
processing
service
edge
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
DE102022203111.3A
Other languages
English (en)
Inventor
Hassnaa Moustafa
Lavanya Gubbala
Akhilesh Thyagaturu
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102022203111A1 publication Critical patent/DE102022203111A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5025Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Ein System und Techniken zur netzwerkflussbasierten Hardwarezuweisung sind hierin beschrieben. Eine Arbeitslast wird zur Ausführung erhalten. Hier schließt eine Arbeitslast einen Fluss ein, der eine Verarbeitungskomponente und eine Netzwerkkomponente aufweist. Dann wird der Fluss während der Ausführung der Arbeitslast wiederholt profiliert und während einer nächsten Ausführung basierend auf einer Netzwerkmetrik und einer Verarbeitungsmetrik, die aus dem Profilieren erhalten werden, einem Netzwerkdienst und einem Verarbeitungsdienst zugewiesen.

Description

  • TECHNISCHES GEBIET
  • Hierin beschriebene Ausführungsformen betreffen allgemein die Partitionierung von Computerhardware und insbesondere die netzwerkflussbasierte Hardwarezuweisung.
  • HINTERGRUND
  • Durch Edge-Computing rücken Daten und Verarbeitungsfähigkeiten näher an die Abnehmer dieser Dienste. Edge-Plattformen stellen Speicherung und Verarbeitung an Standorten bereit, die physisch nahe an den Client-Vorrichtungen sind. Beispiele für Edge-Standorte können unter anderem einschließen: Haushalte und Unternehmen (z. B. als Teil eines Routers oder einer anderen Netzwerkvorrichtung), Straßenrandeinheiten (Roadside Units, RSUs) zur Unterstützung von Fahrzeugdiensten oder zellularen Basisstationen. Aufgrund der Anzahl und unterschiedlichen Standorte von Edge-Computing-Plattformen besteht eine Tendenz zu Ressourceneinschränkungen hinsichtlich Speicherung, Verarbeitungsfähigkeiten und Leistung. Edge-Plattformen schließen häufig Mechanismen zum Hosten einer Vielzahl von Diensten ein, häufig von nicht miteinander verbundenen Anbietern, wie etwa die mittels Hardware oder Software erzwungene Partitionierung von Ressourcen.
  • Figurenliste
  • In den Zeichnungen, die nicht notwendigerweise maßstabsgetreu gezeichnet sind, können gleiche Ziffern ähnliche Komponenten in unterschiedlichen Ansichten beschreiben. Gleiche Zeichen mit unterschiedlichen Buchstabensuffixen können verschiedene Instanzen ähnlicher Komponenten darstellen. Die Zeichnungen veranschaulichen allgemein beispielhaft, aber nicht einschränkend, verschiedene Ausführungsformen, die im vorliegenden Dokument besprochen werden.
    • 1 ist ein Blockdiagramm eines Beispiels für eine Umgebung, das ein System für auf Netzwerkfluss basierende Hardwarezuweisung einschließt, gemäß einer Ausführungsform.
    • 2 veranschaulicht eine beispielhafte Architektur gemäß einer Ausführungsform.
    • 3 veranschaulicht ein Beispiel für eine Netzwerkeigenschaftsverbindung gemäß einer Ausführungsform.
    • 4 veranschaulicht ein Beispiel für Lernagenten für den Netzwerkdienst und die Verarbeitungsdienstzuweisung gemäß einer Ausführungsform.
    • 5 veranschaulicht ein Beispiel für Echtzeitlernen und Telemetrie gemäß einer Ausführungsform.
    • 6 veranschaulicht ein Beispiel für Telemetrie, Aktionen und Belohnungen für Lernoperationen gemäß einer Ausführungsform.
    • 7 veranschaulicht ein Beispiel für eine Flussverwaltung gemäß einer Ausführungsform.
    • 8 veranschaulicht einen Überblick über eine Edge-Cloud-Konfiguration für Edge-Computing.
    • 9 veranschaulicht Betriebsschichten zwischen Endpunkten, einer Edge-Cloud und Cloud-Computing-Umgebungen.
    • 10 veranschaulicht einen beispielhaften Ansatz für Vernetzung und Dienste in einem Edge-Computing-System.
    • 11 veranschaulicht den Einsatz einer virtuellen Edge-Konfiguration in einem Edge-Computing-System, das zwischen mehreren Edge-Knoten und mehreren Mandanten betrieben wird.
    • 12 veranschaulicht verschiedene Rechenanordnungen, die Container in einem Edge-Computing-System einsetzen.
    • 13A stellt einen Überblick über beispielhafte Komponenten für Rechenvorgänge bereit, die an einem Rechenknoten in einem Edge-Computing-System eingesetzt werden.
    • 13B stellt einen weiteren Überblick über beispielhafte Komponenten innerhalb einer Rechenvorrichtung in einem Edge-Computing-System bereit.
    • 14 veranschaulicht eine beispielhafte Softwareverteilungsplattform zum Verteilen von Software.
    • 15 veranschaulicht ein Flussdiagramm eines Beispiels für ein Verfahren für eine auf Netzwerkfluss basierende Hardwarezuweisung gemäß einer Ausführungsform.
    • 16 ist ein Blockdiagramm, das ein Beispiel für eine Maschine veranschaulicht, auf der eine oder mehrere Ausführungsformen implementiert werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Edge-Plattformen wenden zunehmend einen demokratisierten Hardwareansatz an. Die Plattformressourcen werden nicht von einer einzigen Entität gesteuert, sondern Dienste (z. B. Arbeitslasten) verhandeln die Ressourcennutzung, was zu einer fairen und dezentralen Verteilung der Edge-Plattformressourcen führt. Die Konnektivität in solchen Plattformen ist vielfältig, hoch konfigurierbar und häufig asynchron bezüglich der Arbeitslastausführung. Bei herkömmlichen Implementierungen wird die Konnektivität Diensten auf eine statische (z. B. unveränderliche) Weise zugewiesen, wenn mehrere Konnektivitätstechnologien - wie etwa jene, die einer IEEE 802.11-Familie von Standards, zellularen Standards, Ethernet, optischer Konnektivität etc. entsprechen - verfügbar sind.
  • Durch die zunehmende Verwendung von Edge-Computing in der 5G-Standardfamilie im Rahmen des Third Generation Partnership Project (3GPP) und aufgrund der Verbreitung von Internet-der-Dinge (Internet of Things, IoT)-Diensten, die den Bedarf an Edge-Computing weiter steigen lassen, besteht ein Bedarf nach einer Demokratisierung der Ressourcen, um eine effektive Edge-Cloud-Infrastruktur mit Edge-Plattformen zu bilden, die mehreren Mandanten (z. B. Telekommunikationsunternehmen, Inhaltsdienstanbietern (Content Service Providers, CSPs) oder anderen Dienstanbietern) gehören und Edge-Cloud-Fähigkeiten anbieten, um Mehrmandantenanwendungen von verschiedenen unabhängigen Softwareanbietern (Independenten Software Vendors, ISVs) und Dienstanbietern zu hosten. Mit dem Auftreten des demokratisierten Edge wird eine feste Zuweisung von Ressourcen zu virtuellen Maschinen (VMs), Containern oder Anwendungen entsprechend nativer Cloud-Vorgaben ineffizient.
  • Ferner ist eine feste Zuweisung von Netzwerkdiensten (z. B. Netzwerkschnittstellen, ob physisch oder virtuell) ineffizient und beeinträchtigt häufig die Einhaltung von Service-Level-Agreements (SLAs). Um diese Probleme zu behandeln, wird ein intelligentes Framework verwendet, das die Ressourceneigenschaften (z. B. Verarbeitungs- oder Netzwerkeigenschaften) von Arbeitslastflüssen lernt, die Dienste mit Dienstanbietern (z. B. 5G-Diensten, ultrahoher Bandbreite, ultraniedrige Latenz etc.) verhandelt und die Verarbeitungsressourcen (z. B. Hardwarebeschleunigung, Betriebsfrequenz, Speicherung etc.) innerhalb der demokratisierten Edge-Plattformen verhandelt, um dedizierte Netzwerkflüsse für jede Arbeitslast auf eine dynamische Weise zu unterstützen. Dadurch können Arbeitslasten optimale Netzwerkdienste zum Verbindungsaufbau in Echtzeit aushandeln und den Netzwerkdienst nach Bedarf aktualisieren.
  • Die hierin beschriebenen Systeme und Techniken unterscheiden sich von anderen Ansätzen, um ähnliche Probleme zu behandeln. Beispielsweise verwendet der vorliegende Ansatz ein intelligentes Framework, um Netzwerkdienste auszuwählen, das Arbeitslastverkehrseigenschaften lernt und eine Netzwerkdienstverhandlung durchführt, bevor die Arbeitslasten (z. B. Anwendungen, ausführbare Programme, VMs, Container etc.) instanziiert werden. Dieser Ansatz berücksichtigt Edge-Plattformkonnektivität und nicht notwendigerweise Endbenutzervorrichtungen (z. B. ein Benutzergerät (User Equipment, UE)) mit mehreren Netzwerkkonnektivitätsoptionen. Vielmehr stellt das intelligente Framework eine Ressourcenschätzung bereit, um Arbeitslasten zu unterstützen, Hardware neu zu konfigurieren und eine Verhandlung des Netzwerkdienstes - wie etwa ultrazuverlässige Kommunikation mit niedriger Latenz (Ultra-Reliable Low Latency Communications, URLLC), erweitertes Mobil-Breitband (Enhanced Mobile Broadband, EMBB) etc. - mit den Dienstanbietern (z. B. Betreiber für 5G-Konnektivität) zu ermöglichen. Im Gegensatz dazu können LTE-Vorrichtungstechniken zwischen unterschiedlichen Funktechnologien auswählen, um beispielsweise Geschwindigkeits- oder Leistungseinsparungen zu maximieren, aber diese Vorrichtungen weisen im Allgemeinen keine mehreren Mandanten auf, die um den Durchsatz konkurrieren, wie dies bei Edge-Plattformen der Fall ist.
  • Ein weiterer Aspekt, der die vorliegenden Ansätze mit den UE-Kommunikationen unterscheidet, betrifft die Natur des Problems, das angegangen wird. Typischerweise versuchen einzelne Mandantenvorrichtungen, wie etwa das UE, die Leistungsfähigkeit für den einzelnen Mandanten zu maximieren. Protokolle zur Ermöglichung dieser Leistungssteigerung, wie etwa Multipath, können die Kommunikation über ein Netzwerk verfolgen, um Bandbreiten- und Latenzoptimierungen zwischen einer Quelle und einem Ziel über mehrere Verbindungen zu ermitteln. Diese Techniken erfordern jedoch üblicherweise technologiebewusste Protokolle, wie etwa Multipath TCP, und erfordern daher Vorwissen. Multipath wird verwendet, um Kommunikationen über mehrere Verbindungen zwischen Quell- und Zielvorrichtungen effektiv zu verwalten. Die hier beschriebenen Techniken behandeln jedoch ein anderes Problem, welche Arbeitslasten welchen Netzwerkdiensten zugewiesen sind. Somit treffen die vorliegenden Techniken eine fundierte Auswahl von Diensten für Arbeitslasten aus vielen Optionen. Wenn zum Beispiel eine VM zwei unabhängige physische Netzwerkverbindungen auf dem Edge-Knoten erfordert, der acht Netzwerkschnittstellen aufweist, sollten welche zwei dieser Netzwerkschnittstellen für die VM ausgewählt werden? Außerdem wird die Situation komplizierter, wenn diese acht Netzwerkschnittstellen Betriebseigenschaften basierend auf einer Verhandlung mit ihren jeweiligen Dienstanbietern ändern. Diese Arten von Auswahlentscheidungen werden von aktuellen Ansätzen nicht durchgeführt.
  • In vielen demokratisierten Edge-Plattformen werden die Netzwerkdienste demokratisiert, sodass es keine spezifizierte QoS-Zuweisung gibt. Somit kann es eine Vielzahl von Verbindungen geben, die verschiedene QoS-Dienste anbieten. Daher kann das intelligente Framework einen Verhandlungsagenten, eine Lernkomponente oder ein Zuweisungs-Framework einschließen, um Arbeitslastanforderungen zu erfüllen. Im Allgemeinen ist hierin die Netzwerkschnittstelle, die die Arbeitslastanforderungen zu den niedrigsten Kosten innerhalb einer gegebenen Dauer erfüllen kann, synonym mit der „besten“ Schnittstelle.
  • Die folgenden Szenarien veranschaulichen einige wenige Herausforderungen der Edge-Plattform und den anschließenden Betrieb des intelligenten Frameworks, um diese Herausforderungen anzugehen. Betrachten wir die sitzungsbasierten Anforderungen. Hier können Netzwerkflüsse für Arbeitslasten in der Cloud und am Edge von Hypertext Transfer Protocol (HTTP)- oder HTTP Secure (HTTPS)-Verbindungen dominiert werden. Die HTTPS-Sitzungsinitiierung ist oftmals die gängigste verwendete Arbeitslast, die von dynamischer Schnittstellenauswahl profitiert, da der Verbindungsaufbau häufig und kurzlebig ist und über mehrere Fünftupel-Fluss-IDs arbeitet, wobei jede Fluss-ID für jede Sitzung unabhängig ist. Das intelligente Framework verhandelt und rekonfiguriert Plattformressourcen und wählt die beste Schnittstelle aus, bevor jede Ende-zu-Ende-HTTP- oder HTTPS-Verbindung basierend auf Sitzungsanforderungen für Arbeitslasten eingerichtet wird.
  • Betrachten wir den Einsatz von Mikrodiensten. Wenn hier eine VM oder ein Container auf einer Edge-Plattform eingesetzt wird, muss das Betriebssystem (OS) oder der Hypervisor bestimmen, welcher Netzwerkschnittstellen für eine gegebene Arbeitslast auszuwählen ist. Die Edge-Plattform weist für Netzwerkschnittstellen nicht die gleiche Dienstsatzverfügbarkeit wie in den Cloud- oder Rechenzentrumsinfrastrukturen auf. Traditionell ist diese Netzwerkauswahl statisch und vorkonfiguriert. Das hierin beschriebene intelligente Framework wählt dynamisch den optimalen Satz physischer Netzwerkschnittstellen aus, um die Anforderungen der VMs oder Container basierend auf ihren Arbeitslastanforderungen und Netzwerkverhalten, die durch das intelligente Framework erlernt werden, zu erfüllen.
  • Betrachten wir verbrauchsabhängige Modelle (Pay-as-you-consume) für demokratisierte Edge-Plattformen. Hier ermöglicht das intelligente Framework, wann immer eine Arbeitslast einen Netzwerkschnittstelle mit dediziertem Dienst anfordert und dem dedizierten Netzwerkdienst eine Vergütung anbietet, dass die Anwendung für den Dienst verhandelt. Das intelligente Framework wählt die Netzwerkschnittstelle aus, die ermöglicht, dass der Dienst während der Laufzeit verhandelt wird, und rekonfiguriert auch die Plattform, um den Netzwerkfluss mit dedizierten Plattformressourcen zu unterstützen. Zusätzliche Einzelheiten und Beispiele werden nachfolgend bereitgestellt.
  • 1 ist ein Blockdiagramm eines Beispiels für eine Umgebung, das ein System für auf Netzwerkfluss basierende Hardwarezuweisung einschließt, gemäß einer Ausführungsform. Wie veranschaulicht, weisen Arbeitslasten 120 (z. B. Anwendungen, VMs, Container etc.) Flüsse 115 auf, die über Netzwerkdienste 110 (z. B. eine Netzwerkschnittstellekarte (Network Interface Card, NIC)) arbeiten, die durch die Edge-Plattform 105 verwaltet werden.
  • Die Edge-Plattform 105 schließt computerlesbare Medien ein, die Anweisungen enthalten, die bei Ausführung durch eine Verarbeitungsschaltung der Edge-Plattform das intelligente Framework implementieren. Dementsprechend konfigurieren die Anweisungen die Verarbeitungsschaltung, um eine Arbeitslast 120 zur Ausführung zu erhalten. Die Arbeitslast 120 kann auf eine beliebige Anzahl von Weisen erhalten werden, obwohl typische Ansätze den Empfang einer Anforderung zum Instanziieren der Arbeitslast - ob Anwendung, VM, Container, Mikrodienst oder eine andere Arbeitslast - oder eines Plans einschließen. Den Arbeitslasten 120 ist hier das Vorhandensein eines Flusses 115 gemein. In diesem Zusammenhang ist ein Fluss 115 eine Verarbeitungspipeline, die eine Netzwerkkommunikation einschließt. Der Schutzumfang eines Flusses 115 kann variieren. Ein Fluss 115 kann zum Beispiel eine einzelne zustandslose HTTP-Transaktion einschließen, wie sie beim Bedienen einer Webseite oder Durchführen eines Mikrodienstaufrufs üblich ist. In einem Beispiel kann ein Fluss 115 die Gesamtheit der Ausführung einer Anwendung oder die Gesamtheit einer einzelnen Sitzung während der Ausführung einer Anwendung, die mehrere Sitzungen einschließen kann, einschließen. In einem Beispiel ist der Schutzumfang aller Flüsse 115 über die Arbeitslasten 120 hinweg derselbe, sodass zum Beispiel jeder Fluss 115 sitzungsbasiert ist oder jeder Fluss 115 netzwerkanforderungsbasiert ist.
  • Gemeinsam ist den Flüssen 115 auch eine kombinierte Verarbeitungskomponente und Netzwerkkomponente. Somit schließt jeder Fluss 115 die Verwendung einiger Verarbeitungshardware ein - wie etwa Zeit der zentralen Verarbeitungseinheit (CPU), Zeit des Beschleunigers (z. B. eine Grafikverarbeitungseinheit (GPU), ein feldprogrammierbares GateArray (FPGA), ein Prozessor für künstliche Intelligenz (KI) (z. B. ein neuromorpher Prozessor)), Zustandsspeicher (z. B. Direktzugriffsspeicher (RAM)), Speicherung (z. B. Festplatte, Festkörperspeicherung etc.) etc. -, um Daten zu erzeugen, die durch einen Netzwerkdienst 110 an eine andere Vorrichtung übertragen werden.
  • Die Verarbeitungsschaltung ist konfiguriert, um die Arbeitslast 120 auszuführen. Während der Ausführung der Arbeitslast 120 beobachtet das intelligente Framework die Verwendung der zugewiesenen Verarbeitungs- und Netzwerkressourcen 110, das Aufzeichnen der Ergebnisse und das Anwenden der Nutzungsdaten, um die Auswahl der Verarbeitungs- und Netzwerkressourcen 110 während der Ausführung der aktuellen Arbeitslast 120 oder während einer nächsten Ausführung der Arbeitslast 120 anzupassen. Dieses Profilieren und Anpassen wiederholt sich während der Ausführung der Arbeitslast 120.
  • Dementsprechend ist die Verarbeitungsschaltung konfiguriert, um einen Fluss 115 zu profilieren, um eine Netzwerkmetrik für die Netzwerkkomponente und eine Verarbeitungsmetrik für die Verarbeitungskomponente zu bestimmen. Hier kann die Netzwerkmetrik eine beliebige von der Zeitsteuerung der Verwendung, verbrauchter Bandbreite, aufgetretener Latenz, verloren gegangener Pakete oder anderen Netzwerkmetriken in Bezug auf die Leistungsfähigkeit des Netzwerkdienstes 110 einschließen. Gleichermaßen kann die Verarbeitungsmetrik eine beliebige von CPU- oder Beschleunigerverwendung (z. B. verbrauchte Leistung, Zeit im Leerlauf, Prozentsatz der verwendeten Kerne), Speicherverwendung, Speicherungsverwendung etc. sein. Die Metriken werden verwendet, um zu bestimmen, ob die Verarbeitung oder der Netzwerkdienst 110 bezüglich der Arbeitslast 120 „richtig bemessen“ ist. Ein Ideal besteht darin, dass die Anforderungen der Arbeitslast 120 für Geschwindigkeit, Latenz, Bandbreite etc. erfüllt werden, ohne Verarbeitungs- oder Netzwerkressourcen zu überbeanspruchen. Eine Netzwerkmetrik, die angibt, dass weniger Bandbreite verwendet wird (z. B. weil die Empfangsvorrichtung nicht mehr handhaben kann) als verfügbar ist oder durch den Verarbeitungsdienst verarbeitet wird, gibt somit an, dass der Arbeitslast 120 weniger Verarbeitungsressourcen und eine langsamere Netzwerkschnittstelle ohne Problem zugewiesen werden können.
  • In einem Beispiel wird das Profilieren in einem vordefinierten Zeitintervall durchgeführt. Während die Arbeitslast 120 ausgeführt wird, wird somit eine Messung der Netzwerkmetrik oder der Verarbeitungsmetrik vorgenommen und aufgezeichnet. In einem Beispiel wird das Profilieren als Reaktion auf ein Ereignis durchgeführt. Das Ereignis kann zum Beispiel Konkurrenz um eine Ressource, ein Schwellenwert des Überschreitens wartender Arbeitslasten 120 etc. einschließen. In einem Beispiel wird das Profilieren bei Empfang einer Abfrage bezüglich des Flusses 115 oder der Arbeitslast 120 durchgeführt.
  • In einem Beispiel beinhaltet das Profilieren das Kennzeichnen einer Kommunikation des Flusses 115 unter Verwendung des Netzwerkdienstes 110 mit einer Kennung. Hier ermöglicht das ID-Tag dem Profiler, unterschiedliche Aktivitäten des Flusses 115 zu verfolgen, um diese Aktivitäten zu korrelieren. Somit kann die Kennung dem Fluss 115 zugeordnet werden. In einem Beispiel ist die Kennung ein Tupel, das eine Quelladresse, einen Quellport, einen Zielport oder einen Kommunikationstyp beinhaltet. Diese ID spiegelt die verbindungsbasierte Ausrichtung der Netzwerkkomponente der Flüsse 115 wider.
  • In einem Beispiel aktualisiert das Profilieren eine Schnittstellenprofil- und Rangfolge-Datenbank. Das Aufzeichnen der Profilierungsmetriken ermöglicht ihre Verarbeitung für die anschließende Zuweisung von Diensten zu der Arbeitslast 120. In einem Beispiel ist ein Eintrag in der Schnittstellenprofil- und Rangfolge-Datenbank dreißig Bits lang. In einem Beispiel werden Schnittstellen in der Schnittstellenprofil- und Rangfolge-Datenbank nach Fluss eingestuft. Hier schließt das Zuweisen des Netzwerkdienstes 110 und des Verarbeitungsdienstes zu dem Fluss 115 bei einer nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik das Auswählen einer Schnittstelle mit einem höchsten Rang für den Fluss 115 ein. In einem Beispiel werden die Schnittstellen basierend auf einer Kombination des Flusses 115 und eines Verarbeitungsdienstes, der für den Fluss 115 ausgewählt wird, eingestuft. Die nachstehend bei der Erörterung von 4 bereitgestellten Tabellen veranschaulichen ein Beispiel für eine solche Datenbank und Rangfolge.
  • Die Verarbeitungsschaltung ist konfiguriert, um dem Fluss 115 bei einer nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik einen Netzwerkdienst 110 (z. B. die Netzwerkschnittstelle, ob physisch oder virtuell) und einen Verarbeitungsdienst zuzuweisen. Hier kann die nächste Ausführung die nächste Instanziierung der Arbeitslast 120, die nächste Operation (z. B. eine Anweisung, Verbindung etc.) während einer aktuellen Instanziierung der Arbeitslast 120 oder irgendetwas dazwischen einschließen. Die aufgezeichneten Metriken ermöglichen dem intelligenten Framework, eine Fluss-zu-Ressourcen-Zuweisungsleistungsfähigkeit nachzuverfolgen, wenn die Arbeitslast 120 ausgeführt wird. Somit sind die mehreren Faktoren, die dem Netzwerk 110 und den Verarbeitungsdiensten zuzuschreiben sind, mit der Leistungsfähigkeit des Flusses 115 korreliert. Das intelligente Framework kann dann einen nächsten Fluss mit jenen Diensten abgleichen, die die Anforderungen des Flusses 115 erfüllen. In einem Beispiel ist die Verarbeitungsschaltung konfiguriert, um den Netzwerkdienst 110 zuzuweisen, indem ein Netzwerkdienst 110 ausgewählt wird, der eine minimale Netzwerkmetrik beinhaltet, um die Netzwerkkomponente des Flusses 115 zu erfüllen. In einem Beispiel ist die Netzwerkmetrik die Bandbreite oder Latenz.
  • In einem Beispiel ist die Verarbeitungsschaltung konfiguriert, um den Netzwerkdienst 110 und den Verarbeitungsdienst zuzuweisen, indem ein Netzwerkdienst 110 ausgewählt wird, der eine minimale Netzwerkmetrik einschließt, um eine maximale Ausgabe bezüglich der Netzwerkmetrik des Verarbeitungsdienstes zu erfüllen. Hier wird das Problem der Überbeanspruchung eines Netzwerkdienstes 110 bei einem weniger geeigneten Verarbeitungsdienst angegangen. Falls der Arbeitslast 120 somit ein Verarbeitungsdienst zugewiesen wird, der nur zu einer Ausgabe von 1 Megabit pro Sekunde (1 Mbps) in der Lage ist, ist das Zuweisen einer Netzwerkschnittstelle mit 1 Gigabit pro Sekunde (1 Gbps) zu dem Fluss eine Verschwendung und wird vermieden. Vielmehr ist das Angleichen der Ausgabefähigkeit des Verarbeitungsdienstes an die Ausgabefähigkeit des Netzwerkdienstes 110 im Allgemeinen die effizienteste Vorgehensweise.
  • 2 veranschaulicht eine beispielhafte Architektur gemäß einer Ausführungsform. Die Architektur hostet Arbeitslasten, wie etwa Anwendungen, virtuelle Maschinen, Container etc., um eine Vielzahl von Diensten bereitzustellen, wie etwa Sprach- oder Videoverarbeitung, Speicherung oder Lieferung; Datenspeicherung (z. B. Zwischenspeichern, Datensicherung etc.); oder andere Edge-Dienste.
  • Die Architektur schließt eine Verwaltungskomponente ein, wie etwa ein Betriebssystem eines Hypervisors, um den gehosteten Arbeitslasten Hardware bereitzustellen. Die Hardware, wie veranschaulicht, schließt eine Vielfalt von Schnittstellen (veranschaulicht als IP1-IP8) für eine Vielfalt von physischen Medien ein, wie etwa drahtgebundene oder drahtlose Dienstanbieternetzwerke (z. B. physische Rahmenrelaisverbindungen, veranschaulicht als ISP1-ISP2), drahtlose Funkmedien, drahtgebundenes Ethernet etc.
  • Die veranschaulichten Kästen links veranschaulichen, dass die Netzwerkschnittstellenhardware Dienste sind, die den Arbeitslasten angeboten werden können. Die Arbeitslasten weisen Anforderungen auf, und das intelligente Framework gleicht diese Anforderungen mit den Angeboten ab. Die gestrichelte Linie veranschaulicht das intelligente Framework 205 in der Edge-Plattform. Das intelligente Framework weist einen Telemetrieagenten 210, einen Lernagenten 215 und einen Zuweisungsagenten 220 auf. Im Betrieb weist das intelligente Framework 205 VMs, Containern oder Anwendungen basierend auf ihren Anforderungen und gelernten Eigenschaften den Netzwerkschnittstellen zu. Das intelligente Framework ermöglicht der Anwendung, Anforderungen und Änderungen durchzuführen sowie durch Nutzen von Pay-as-You-Go-Modellen betrieben zu werden, um die Netzwerkschnittstellenfähigkeiten dynamisch zu erhalten.
  • 3 veranschaulicht ein Beispiel für eine Netzwerkeigenschaftsverbindung gemäß einer Ausführungsform. Die Plattformressourcentelemetrie wird mit der Netzwerkeigenschaftstelemetrie betrieben, um Dienstgüte (QoS)- und Dienstgütevereinbarungs (SLA)-Spezifikationen für Arbeitslasten zu erfüllen. Es wird in Betracht gezogen, dass die ausgewählte Netzwerkschnittstelle mit einer großen Kapazität einer Arbeitslast zugewiesen ist und unzureichende Rechenressourcen vorhanden sind. Dieses Szenario führt zu einer verschwendeten Zuweisung der Netzwerkressourcen. Daher ist eine dynamische Zuweisung des Netzwerkschnittstelle, die geeignet ist, um die Anwendungsanforderungen zu erfüllen, während die verfügbaren Rechenressourcen berücksichtigt werden, nützlich, um eine Überversorgung zu vermeiden.
  • 4 veranschaulicht ein Beispiel für Lernagenten für den Netzwerkdienst und die Verarbeitungsdienstzuweisung gemäß einer Ausführungsform. Mit den veranschaulichten Komponenten kann jede Arbeitslast transparent mit dem End-Host über einen Netzwerkschnittstelle verbunden sein, der auf dem Lernen basierend ausgewählt wird, welche Konnektivität „die beste“ für die Arbeitslast ist.
  • Plattformressourcen werden dynamisch verfolgt und für eine gegebene Arbeitslast gelernt, die für die Vorhersage verwendet wird, wie viele der Vernetzungsressourcen „potenziell“ und „effektiv“ genutzt werden können. In einem Beispiel werden Plattformressourcen basierend auf der Kennzeichnung mit IDs gelernt, die jedem Fluss mit einem Fünftupel zugeordnet sind: Quell-IP: Ziel-IP: Quellport: Zielport: IP-Typ [UDP, TCP]). Die Fünftupel-Fluss-ID wird verwendet, um die Ende-zu-Ende-Verbindung zuzuordnen, da sich das Netzwerkverhalten zwischen zwei unterschiedlichen Ende-zu-Ende (E2E)-Verbindungen über dieselbe Schnittstelle ändern kann.
  • Die Meldung von Netzwerkeigenschaften kann auf verschiedene Weise erreicht werden. Beispielsweise durch periodisches Melden in einem regelmäßigen Zeitintervall, durch ereignisbasiertes reaktives Melden oder durch abfragebasierte On-Demand-Meldungen.
  • Die gelernten Merkmale reichen von der Ende-zu-Ende-Konnektivität der Plattform bis hin zu der Backend-Anwendung. Solche in Betracht gezogenen Eigenschaften können unter anderem Basisstationsplanung, Kabelmodem- oder optische Netzwerkeinheitsplanung, Gateways oder Umschaltverhalten einschließen.
  • Die Schnittstellenprofil- und Rangfolge-Datenbank erfasst die Merkmale, die dynamisch über die Netzwerkeigenschaften und die Anwendungsanforderungen erlernt werden. Ein Beispiel für eine solche Datenbank ist in den folgenden Tabellen veranschaulicht. In einem Beispiel ist die Darstellung jedes Eintrags in der Datenbank bei einer kompakten Darstellung etwa zweiunddreißig Bits breit, wobei einige MB der statischen Speicherzellen im DRAM (oder dem persistenten Speicher, z. B. NAND bei Intel-Plattformen), die während des Hochfahrens des Betriebssystems aufgerufen werden können, ausreichen, um eine große Anzahl an Flüssen für jede Anwendung zu hosten. In einem Beispiel wird die Datenbank alle zwei bis drei Minuten aktualisiert. Diese Rate erhöht die Größe der Datenbank nicht, da neue Daten die alten Daten überschreiben.
  • Die gelernten Merkmale können verwendet werden, um die Schnittstellenprofil- und Rangfolge-Datenbank zu befüllen. Diese Datenbank kann verwendet werden, um die Auswahl der Ende-zu-Ende-Verbindung für die Anwendungen auszulösen.
  • Die Auflösung des dynamischen Lernens - z. B. die Parameter über die Inferenz hinweg - und die Rangfolge können auf der Fünftupel-ID basieren. Hier ist jede Fünftupel-ID über jeden Netzwerkfluss und jede Schnittstelle hinweg eindeutig. Das intelligente Framework kann die Dienstanbieter (z. B. die Betreiber, die Netzwerkkonnektivität bereitstellen) zur Dienstverhandlung und Plattformneukonfiguration nach Bedarf durch die Arbeitslasten anfordern.
    Tabelle 1: Netzwerkeigenschaftsprofil basierend auf Lernen und Abschätzen
    Anwendung/VM/Container ID1 ID2 ID3
    Fünftupel-ID Fluss1 Fluss2 . Fluss1 Fluss2 . . .
    Bit [24..31] Reserviert . . . 111 . . . .
    Bit [21..23] Kosten/Byte . . . 110 . . . .
    Bit [18..20] Downlink-Bandbreite . . . 110 . . . .
    Bit [15..17] Uplink-Bandbreite . . . 100 . . . .
    Bit [12..14] Leistungseffizienz . . . 011 . . . .
    Bit [9..11] Jitter . . . 011 . . . .
    Bit [6..8] Durchschnittliche Verzögerung . . . 011 . . . .
    Bit [3..5] Rahmenverlust . . . 0 . . . .
    Bit [1..2] Sicherheit . . . 100 . . . .
    Garantierte Bitrate . . . 1 . . . .
    Tabelle 2: Anwendungsanforderungsprofil basierend auf Lernen und Abschätzen
    Anwendung/VM/Container ID1 ID2 ID3
    FÜNFTUPEL-ID Fluss1 Fluss2 . Fluss1 Fluss2 . Fluss7 .
    Bit [24..31] Reserviert . . . 111 . . . .
    Bit [21..23] CPU . . . 110 . . . .
    Bit [18..20] Speicher . . . 110 . . . .
    Bit [15..17] Cache . . . 100 . . . .
    Bit [12..14] DDR E/A . . . 011 . . . .
    Bit [9..11] Verbindung . . . 011 . . . .
    Bit [6..8] CPU-Leistung . . . 011 . . . .
    Bit [3..5] Plattform . . . 0 . . . .
    Bit [1..2] Sicherheit . . . 100 . . . .
    Garantierte Bitrate . . . 1 . . . .
    Tabelle 3: Rangfolge der Netzwerkschnittstellen
    Anwendung/VM/Container ID1 ID2 ID3 .
    FÜNFTUPEL-ID Fluss1 Fluss2 . Fluss1 Fluss2 . Fluss7 .
    Rangfolge 111 . 0 111 . 0 . .
  • 5 veranschaulicht ein Beispiel für Echtzeitlernen und Telemetrie gemäß einer Ausführungsform. Die veranschaulichten Komponenten geben ein Beispiel für Telemetrie, Aktionen und der Belohnungsfunktion für Lernoperationen an. Dies kann mit 6 kombiniert werden, um eine dynamische Lernlösung für die intelligente Netzwerkschnittstellenauswahl zu implementieren.
  • Überwachtes bestärkendes Lernen kann verwendet werden, um die Arbeitslastanforderungen kontinuierlich zu lernen. Unüberwachtes Lernen kann verwendet werden, um Netzwerkschnittstelleneigenschaften zu lernen, um die QoS für die Arbeitslast durch die Auswahl des geeigneten Netzwerkschnittstelle zu maximieren. Insbesondere können historische Daten der Ressourcennutzung der Anwendungshardwareplattform verwendet werden, um die Netzwerkanforderungen (z. B. Verarbeitungsmetriken oder interne Informationen) zu schätzen und die vorstehende Tabelle 2 zu erzeugen.
  • Die Netzwerkeigenschaften können aus verschiedenen Faktoren erlernt werden, um die in der vorstehenden Tabelle 1 beschriebenen Merkmale zu schätzen. Rückschlüsse können von der Bitübertragungsschicht (z. B. empfangene Signalstärke, Gesamtleistung etc.) oder dem Netzwerk gezogen werden.
    Von sich selbst - z. B. basierend auf Schaltern, Gateways oder Schedulern - zum Schätzen der Bandbreitenzuweisung, Latenz etc. für eine Arbeitslast. Die Scheduler- oder Gateway-Informationen können aus den beobachteten Bandbreiten- und Latenzänderungen an der Netzwerkschnittstelle für einen gegebenen Fluss erlernt werden. In einer Basisstation oder einem Kabelmodellendsystem priorisiert der Scheduler beispielsweise einen bestimmten Verkehrsfluss (z. B. für einen Videostreamingdienst), der durch die Lernagenten abgeleitet werden kann.
  • Wie in 6 gezeigt, kann die Belohnungsfunktion die tatsächlichen Anwendungs-QoS-Anforderungen vergleichen und die beste Schnittstellenauswahl bereitstellen, um so viele QoS-Anforderungen wie möglich zu erfüllen.
  • 6 veranschaulicht ein Beispiel für Telemetrie, Aktionen und Belohnungen für Lernoperationen gemäß einer Ausführungsform. Die veranschaulichten neuronalen Netzwerke interagieren mit den Eingabedaten (z. B. Fluss, Netzwerkdienst und Verarbeitungsdienstdatenbank) und führen einen Fluss in einer gegebenen Konfiguration durch. Die Leistungsfähigkeit wird als Sanktion oder Belohnung verwendet, um die Rangfolgen in der Datenbank anzupassen. Somit wird, falls eine gegebene Kombination von Diensten für einen Fluss schlecht funktioniert, das neuronale Netzwerk trainiert, um die Rangfolge der Kombination herabzustufen, wodurch sichergestellt wird, dass die Kombination weniger wahrscheinlich für eine nächste Ausführung des Flusses ausgewählt wird.
  • Die hierin veranschaulichte belohnungsbasierte Verstärkung ist eine Form von unüberwachtem Lernen. Allgemein wird beim Lernen neuronaler Netzwerke (z. B. Modifikation oder Training) ein Satz von Eingaben verarbeitet, eine Ausgabe erreicht und eine Fitnessfunktion (z. B. Fehlerschätzung) berechnet. Bei herkömmlichen Trainingstechniken wird die Rückpropagationstechnik verwendet, um Verbindungsgewichtungen -die häufig als Synapsen bezeichnet werden, obwohl die Nomenklatur variieren kann - zu modifizieren, um sowohl die falsche Ausgabe bei gleichen Eingaben weniger wahrscheinlich als auch eine gewünschte (z. B. korrekte) Ausgabe wahrscheinlicher für diese Eingaben bei einem zukünftigen Durchlauf zurückzugeben. Der Grad, in dem die Gewichtungen modifiziert werden, ist eine Gestaltungsauswahl, die sich auf die Geschwindigkeit und Genauigkeit der Konvergenz für das neuronale Netzwerk auswirkt.
  • Bei dem in 6 veranschaulichten bestärkenden (z. B. durch Belohnung) Lernen führt die Belohnungsfunktion das Bestimmen der Genauigkeit der neuronalen Netzwerke in Block 1 und Block 2 aufgrund der Beurteilung von Block 3 durch. Somit ist Block 3 ein vortrainiertes Netzwerk, das die Echtzeittelemetrie der Anwendung auf einer Netzwerkschnittstelle akzeptiert und der Belohnungsfunktion eine Ausgabe (z. B. Merkmale, Metriken etc.) bereitstellt. Die Belohnungsfunktion akzeptiert auch die Ausgaben von Block 1 (Merkmale oder Metriken des Anwendungszustands auf dem Prozessordienst) und Block 2 (die Netzwerkdienstrangfolge bei unterschiedlichen Klassifizierungen für die Anwendung auf einem Verarbeitungsdienst). Somit vergleicht die Belohnungsfunktion die erwartete Leistungsfähigkeit der Ausgabe von Block 1 und Block 2 mit der tatsächlichen Leistungsfähigkeit, die durch Block 3 gemessen wird, und modifiziert entsprechend die Gewichtungen von Block 1 und Block 2. Diese Anordnung stellt eine kontinuierliche Verbesserung der intelligenten Agentenleistungsfähigkeit bereit, wobei sich ändernde Bedingungen behandelt werden, um die tatsächliche Leistungsfähigkeit zwischen Verarbeitungsdienst und Netzwerkdienstauswahl für Arbeitslasten zu erfüllen.
  • 7 veranschaulicht ein Beispiel für eine Flussverwaltung gemäß einer Ausführungsform. Der veranschaulichte Fluss demonstriert ein Beispiel für die Interaktionen zwischen den vorstehend erörterten Komponenten. Wie veranschaulicht, kann die anfängliche Netzwerkdienstzuweisung basierend auf bereitgestellten Metriken für eine Arbeitslast durchgeführt werden. Die Lernagenten (z. B. künstliche Intelligenz, statistische Analytik etc.) beobachten die Leistung der Arbeitslast durch die Leistung von Arbeitslastflüssen durch die Verarbeitungs- und Netzwerkdienste. Dies führt zu eingestuften Kombinationen von Flüssen, Verarbeitungsdiensten und Netzwerkdiensten, die eine schnelle Auswahl eines Verarbeitungs- oder Netzwerkdienstes (oder Paares davon) ermöglichen, wenn eine nächste Ausführung des Flusses bevorsteht.
  • 8 ist ein Blockdiagramm, das einen Überblick über eine Konfiguration für Edge-Computing zeigt, die eine Verarbeitungsschicht aufweist, die in vielen der folgenden Beispiele als „Edge-Cloud“ bezeichnet wird. Wie gezeigt befindet sich die Edge-Cloud 810 gemeinsam an einem Edge-Standort wie etwa einem Zugangspunkt oder einer Basisstation 840, einem lokalen Verarbeitungsknoten 850 oder einer Zentrale 820 und kann somit mehrere Entitäten, Vorrichtungen und Geräteinstanzen einschließen. Die Edge-Cloud 810 befindet sich viel näher an den Endpunkt-Datenquellen 860 (Verbraucher und Erzeuger) (z. B. autonome Fahrzeuge 861, Benutzergeräte 862, Geschäfts- und Industrieausrüstung 863, Videoaufnahmevorrichtungen 864, Drohnen 865, Vorrichtungen für intelligente Städte und Gebäude 866, Sensoren und IoT-Geräte 867 etc.) als das Cloud-Rechenzentrum 830. Rechen-, Speicher- und Speicherungsressourcen, die an den Edges in der Edge-Cloud 810 angeboten werden, sind kritisch für das Bereitstellen von Antwortzeiten mit ultraniedriger Latenz für Dienste und Funktionen, die durch die Endpunktdatenquellen 860 verwendet werden, sowie für das Reduzieren von Netzwerk-Backhaul-Verkehr von der Edge-Cloud 810 zum Cloud-Rechenzentrum 830, wodurch Energieverbrauch und Gesamtnetzwerknutzungen verbessert werden, unter anderen Vorteilen.
  • Rechen-, Speicher- und Speicherungsressourcen sind knapp und nehmen im Allgemeinen in Abhängigkeit vom Edge-Standort ab (z. B. sind an Verbraucherendpunktvorrichtungen weniger Verarbeitungsressourcen verfügbar als an einer Basisstation oder in einer Zentrale). Je näher sich der Edge-Standort jedoch am Endpunkt (z. B. Endgerät (UE)) befindet, desto mehr sind Raum und Leistung häufig eingeschränkt. Somit versucht Edge-Computing die Menge an Ressourcen, die für Netzwerkdienste benötigt werden, durch die Verteilung von mehr Ressourcen zu reduzieren, die sich sowohl geografisch als auch in der Netzwerkzugriffszeit näher befinden. Auf diese Weise versucht Edge-Computing, die Rechenressourcen gegebenenfalls zu den Arbeitslastdaten zu bringen oder die Arbeitslastdaten zu den Rechenressourcen zu bringen.
  • Im Folgenden werden Aspekte einer Edge-Cloud-Architektur beschrieben, die mehrere potenzielle Einsatzmöglichkeiten abdeckt und Einschränkungen behebt, die manche Netzbetreiber oder Dienstanbieter in ihren eigenen Infrastrukturen aufweisen können. Diese beinhalten: Konfigurationsschwankungen basierend auf dem Edge-Standort (weil Edges auf Basisstationsebene zum Beispiel mehr eingeschränkte Leistungsfähigkeit und Fähigkeiten in einem Mehrmandantenszenario aufweisen können); Konfigurationen basierend auf der Art der Berechnung, des Speichers, der Speicherung, der Fabric, der Beschleunigung oder ähnlicher Ressourcen, die Edge-Standorten, Ebenen von Standorten oder Gruppen von Standorten zur Verfügung stehen; die Dienst-, Sicherheits- und Verwaltungs- und Orchestrierungsfähigkeiten; und verwandte Ziele zum Erreichen einer Nutzbarkeit und Leistung von Enddiensten. Diese Bereitstellungen können ein Verarbeiten in Netzwerkschichten bewerkstelligen, die in Abhängigkeit von Latenz-, Entfernungs- und Zeitgebungsmerkmalen als „Near Edge“-, „Close Edge“-, „Local Edge“-, „Middle Edge“- oder „Far Edge“-Schichten betrachtet werden können.
  • Edge-Computing ist ein sich entwickelndes Paradigma, bei dem Rechenvorgänge am oder näher am „Rand“ eines Netzwerks durchgeführt werden, typischerweise durch die Verwendung einer Rechenplattform (z.B. x86- oder ARM-Rechenhardwarearchitektur), die an Basisstationen, Gateways, Netzwerkroutern oder anderen Vorrichtungen implementiert ist, die sich viel näher an Endpunktvorrichtungen befinden, die Daten erzeugen und verbrauchen. Beispielsweise können Edge-Gatewayserver mit Beständen von Arbeitsspeicher- und Speicherungsressourcen ausgestattet sein, um eine Berechnung in Echtzeit für Anwendungsfälle mit niedriger Latenz (z. B. autonomes Fahren oder Videoüberwachung) für angebundene Client-Vorrichtungen durchzuführen. Oder als ein Beispiel können Basisstationen mit Rechen- und Beschleunigungsressourcen erweitert werden, um Dienstarbeitslasten für angebundene Endgeräte direkt zu verarbeiten, ohne weiter Daten über Backhaul-Netzwerke zu kommunizieren. Oder als weiteres Beispiel kann zentrale Büronetzwerkverwaltungshardware durch standardisierte Rechenhardware ersetzt werden, die virtualisierte Netzwerkfunktionen durchführt und Rechenressourcen für die Ausführung von Diensten und Verbraucheranwendungen für angebundene Vorrichtungen bietet. Innerhalb von Edge-Rechennetzen kann es Szenarien in Diensten geben, in denen die Rechenressource zu den Daten „verschoben“ wird, sowie Szenarien geben, in denen die Daten zur Rechenressource „verschoben“ werden. Oder als ein Beispiel können Basisstationsberechnungs-, Beschleunigungs- und Netzwerkressourcen Dienste bereitstellen, um die Arbeitslastanforderungen nach Bedarf durch Aktivieren ruhender Kapazität (Abonnement, bedarfsgesteuerte Kapazität) zu skalieren, um Eckfälle, Notfälle zu verwalten oder Langlebigkeit für eingesetzte Ressourcen über einen wesentlich längeren implementierten Lebenszyklus bereitzustellen.
  • 9 veranschaulicht Betriebsschichten zwischen Endpunkten, einer Edge-Cloud und Cloud-Computing-Umgebungen. Insbesondere stellt 9 Beispiele für Rechenanwendungsfälle 905 dar, die die Edge-Cloud 810 unter mehreren beispielhaften Schichten der Verarbeitung von Daten im Netzwerk nutzen. Die Schichten beginnen an einer Endpunktschicht (Geräte und Dinge) 900, die auf die Edge-Cloud 810 zugreift, um Datenerzeugungs-, Analyse- und Datenverbrauchsaktivitäten durchzuführen. Die Edge-Cloud 810 kann mehrere Netzwerkschichten umspannen, wie etwa eine Edge-Vorrichtungsschicht 910 mit Gateways, Servern vor Ort oder Netzwerkgeräten (Knoten 915), die sich in physisch nahen Edge-Systemen befinden; eine Netzwerkzugangsschicht 920, umfassend Basisstationen, Funkverarbeitungseinheiten, Netzwerk-Hubs, regionale Rechenzentren (DC) oder lokale Netzwerkgeräte (Geräte 925); und beliebige Geräte, Vorrichtungen oder Knoten, die sich dazwischen befinden (in Schicht 912, nicht ausführlich veranschaulicht). Die Netzwerkkommunikation liegt innerhalb der Edge-Cloud 810 und kann unter den verschiedenen Schichten über eine beliebige Anzahl von drahtgebundenen oder drahtlosen Medien stattfinden, einschließlich über Konnektivitätsarchitekturen und Technologien, die nicht dargestellt sind.
  • Beispiele für Latenz, die aus Beschränkungen der Kommunikationsentfernung im Netzwerk und bei der Verarbeitungszeit resultieren, können von weniger als einer Millisekunde (ms), wenn unter der Endpunktschicht 900, weniger als 5 ms in der Edge-Vorrichtungsschicht 910, bis sogar zwischen 10 und 40 ms, wenn mit Knoten in der Netzwerkzugangsschicht 920 kommuniziert wird, reichen. Jenseits der Edge-Cloud 810 befinden sich Schichten des Kernnetzes 930 und des Cloud-Rechenzentrums 940, jeweils mit zunehmender Latenz (z. B. zwischen 50-60 ms an der Kernnetzschicht 930, bis 100 oder mehr ms an der Cloud-Rechenzentrums schicht). Infolgedessen werden Operationen in einem Kernnetz-Rechenzentrum 935 oder einem Cloud-Rechenzentrum 945 mit Latenzen von mindestens 50 bis 100 ms oder mehr nicht in der Lage sein, viele zeitkritische Funktionen der Anwendungsfälle 905 zu realisieren. Jeder dieser Latenzwerte wird zu Veranschaulichungs- und Kontrastzwecken bereitgestellt; es versteht sich, dass die Verwendung anderer Zugangsnetzwerkmedien und - technologien die Latenzen weiter reduzieren kann. In einigen Beispielen können jeweilige Abschnitte des Netzwerks relativ zu einer Netzwerkquelle und einem Netzwerkziel als Schichten „Close Edge“, „Local Edge“, „Near Edge“, „Middle Edge“ oder „Far Edge“ kategorisiert sein. Beispielsweise kann aus der Perspektive des Kernnetzwerk-Rechenzentrums 935 oder eines Cloud-Rechenzentrums 945 ein Zentralamt- oder Inhaltsdatennetzwerk als innerhalb einer „nahen Rand“-Schicht („nahe“ an der Cloud, mit hohen Latenzwerten, wenn mit den Vorrichtungen und Endpunkten der Nutzungsfälle 905 kommuniziert) befindlich betrachtet werden, wohingegen ein Zugangspunkt, eine Basisstation, ein Vor-Ort-Server oder ein Netzwerk-Gateway als innerhalb einer „fernen Rand“-Schicht („fern“ von der Cloud entfernt, mit niedrigen Latenzwerten, wenn mit den Vorrichtungen und Endpunkten der Nutzungsfälle 905 kommuniziert) befindlich betrachtet werden können. Es versteht sich, dass andere Kategorisierungen einer speziellen Netzwerkschicht als eine „Close“, „Local“, „Near“, „Middle“ oder „Far Edge“ bildend auf Latenz, Entfernung, Anzahl von Netzwerksprüngen oder anderen messbaren Charakteristiken basieren können, wie von einer Quelle in einer beliebigen der Netzwerkschichten 900-940 gemessen.
  • Die verschiedenen Anwendungsfälle 905 können dadurch, dass mehrere Dienste die Edge-Cloud nutzen, unter hohem Auslastungsdruck von eingehenden Strömen auf Ressourcen zugreifen. Um Ergebnisse mit niedriger Latenz zu erzielen, gleichen die Dienste, die innerhalb der Edge-Cloud 810 ausgeführt werden, variierende Anforderungen in Bezug auf Folgendes aus: (a) Priorität (Durchsatz oder Latenz) und Dienstgüte (QoS) (z. B. Verkehr für ein autonomes Fahrzeug kann hinsichtlich der Antwortzeitanforderung eine höhere Priorität als ein Temperatursensor aufweisen; oder eine Leistungsfähigkeitsempfindlichkeit/ein Leistungsfähigkeitsengpass kann an einer Rechen-Beschleuniger-, Speicher-, Speicherungs- oder Netzwerkressource in Abhängigkeit von der Anwendung existieren); (b) Zuverlässigkeit und Widerstandsfähigkeit (z. B. müssen manche Eingangsströme bearbeitet und der Verkehr mit missionskritischer Zuverlässigkeit geleitet werden, wohingegen manche anderen Eingangsströme je nach Anwendung einen gelegentlichen Ausfall tolerieren können); und (c) physische Beschränkungen (z. B. Leistung, Kühlung und Formfaktor).
  • Die Ende-zu-Ende-Dienstansicht für diese Anwendungsfälle beinhaltet das Konzept eines Dienstflusses und ist mit einer Transaktion verbunden. Die Transaktion gibt die Gesamtdienstanforderung für die Entität an, die den Dienst verbraucht, sowie die zugehörigen Dienste für die Ressourcen, Arbeitslasten, Workflows und Geschäftsfunktions- und Geschäftsebenenanforderungen. Die Dienste, die mit den beschriebenen „Bedingungen“ ausgeführt werden, können in jeder Schicht auf eine solche Weise verwaltet werden, dass Echtzeit- und Laufzeitvertragskonformität für die Transaktion während des Lebenszyklus des Dienstes sichergestellt sind. Wenn einer Komponente in der Transaktion ihre vereinbarte SLA verfehlt, kann das System als Ganzes (Komponenten in der Transaktion) die Fähigkeit bereitstellen, (1) die Auswirkung der SLA-Verletzung zu verstehen und (2) andere Komponenten im System zu erweitern, um die Gesamttransaktions-SLA wieder aufzunehmen, und (3) Schritte zu implementieren, um Abhilfe zu schaffen.
  • Dementsprechend kann unter Berücksichtigung dieser Variationen und Dienstmerkmale Edge-Computing innerhalb der Edge-Cloud 810 die Fähigkeit bereitstellen, mehrere Anwendungen der Anwendungsfälle 905 (z. B. Objektverfolgung, Videoüberwachung, verbundene Autos etc.) in Echtzeit oder nahezu Echtzeit zu versorgen und auf diese zu reagieren und Anforderungen an extrem niedrige Latenz für diese mehreren Anwendungen zu erfüllen. Diese Vorteile ermöglichen eine ganze neue Klasse von Anwendungen (VNFs (Virtual Network Functions), FaaS (Function as a Service), Edge as a Service (EaaS), Standardprozesse etc.), die eine herkömmliche Cloud-Berechnung aufgrund von Latenz oder anderen Einschränkungen nicht nutzen können.
  • Mit den Vorteilen des Edge-Computing ergeben sich jedoch die folgenden Vorbehalte. Die an der Edge befindlichen Geräte sind häufig ressourcenbeschränkt, und deshalb besteht Druck auf die Nutzung von Edge-Ressourcen. Typischerweise wird dies durch das Zusammenfassen von Speicher- und Speicherungsressourcen zur Verwendung durch mehrere Benutzer (Mandanten) und Vorrichtungen adressiert. Die Edge kann in Leistung und Kühlung eingeschränkt sein, sodass der Leistungsverbrauch durch die Anwendungen berücksichtigt werden muss, die die meiste Leistung verbrauchen. Es kann inhärente Leistungs-Leistungsfähigkeits-Kompromisse in diesen gebündelten Speicherressourcen geben, da viele von ihnen wahrscheinlich neu entwickelte Speichertechnologien verwenden, bei denen für mehr Leistung eine größere Speicherbandbreite notwendig ist. Gleichermaßen sind verbesserte Sicherheit von Hardware und vertrauenswürdigen Root-of-Trust-Funktionen ebenfalls erforderlich, da Edge-Standorte unbemannt sein können und sogar genehmigten Zugriff benötigen können (z. B. wenn sie an einem Standort von Drittanbietern untergebracht sind). Derartige Probleme werden in der Edge-Cloud 810 in einer Mehrmandanten-, Mehreigentümer- oder Multi-Zugriffssituation vergrößert, bei der Dienste und Anwendungen von vielen Benutzern angefordert werden, insbesondere, da die Netzwerknutzung dynamisch schwankt und sich die Zusammensetzung der mehreren Beteiligten, Anwendungsfälle und Dienste ändert.
  • Auf einer mehr generischen Ebene kann ein Edge-Computing-System so beschrieben werden, dass es eine beliebige Anzahl von Bereitstellungen an den zuvor besprochenen Schichten umfasst, die in dem Edge-Cloud 810 arbeiten (Netzwerkschichten 900-940), die eine Koordination von Client- und verteilten Rechenvorrichtungen bereitstellen. Ein oder mehrere Edge-Gateway-Knoten, ein oder mehrere Edge-Aggregationsknoten und ein oder mehrere Kernrechenzentren können über Schichten des Netzwerks verteilt sein, um eine Implementierung des Edge-Computing-Systems durch oder im Auftrag eines Telekommunikationsdienstanbieters („Telefongesellschaft“ oder „TSP“), Internet-der-Dinge-Dienstanbieters, Cloud-Dienstanbieters (CSP), einer Unternehmensentität oder einer beliebigen anderen Anzahl von Entitäten bereitzustellen. Verschiedene Implementierungen und Konfigurationen des Edge-Rechensystems können dynamisch bereitgestellt werden, wie etwa, wenn sie orchestriert sind, um Dienstziele zu erfüllen.
  • In Übereinstimmung mit den hierin bereitgestellten Beispielen kann ein Client-Rechenknoten als eine beliebige Art von Endpunktkomponente, Vorrichtung, Gerät oder anderem umgesetzt sein, die dazu in der Lage ist, als ein Erzeuger oder Verbraucher von Daten zu kommunizieren. Ferner bedeutet die Kennzeichnung „Knoten“ oder „Gerät“, wie es im Edge-Rechensystem verwendet wird, nicht notwendigerweise, dass ein derartiger Knoten oder derartiges Gerät in einer Client- oder Agent-/Minion-/Folgerrolle arbeitet; vielmehr bezeichnen beliebige der Knoten oder Vorrichtungen im Edge-Rechensystem einzelne Entitäten, Knoten oder Subsysteme, die diskrete oder verbundene Hardware- oder Softwarekonfigurationen beinhalten, um die Edge-Cloud 810 zu ermöglichen oder zu verwenden.
  • Von daher ist die Edge-Cloud 810 aus Netzwerkkomponenten und funktionalen Merkmalen gebildet, die durch und innerhalb von Edge-Gateway-Knoten, Edge-Aggregationsknoten oder anderen Edge-Rechenknoten unter den Netzwerkschichten 910-930 betrieben werden. Die Edge-Cloud 810 kann somit als eine beliebige Art von Netzwerk ausgeführt sein, die Edge-Computing- oder Speicherungsressourcen bereitstellt, die sich in der Nähe von Funkzugangsnetzwerk (RAN, Radio Access Network)-fähigen Endpunktvorrichtungen (z. B. mobile Rechenvorrichtungen, IoT-Vorrichtungen, intelligente Vorrichtungen etc.) befinden, die hier erörtert werden. Mit anderen Worten kann die Edge-Cloud 810 als ein „Edge“ betrachtet werden, der die Endpunktvorrichtungen und herkömmliche Netzwerkzugangspunkte, die als ein Einstiegspunkt in Dienstanbieter-Kernnetze dienen, verbindet, einschließlich Mobilträgernetzen (z. B. Global System for Mobile Communications (GSM)-Netze, Long-Term Evolution (LTE)-Netze, 5G/6G-Netze etc.), während auch Speicherungs- oder Rechenfähigkeiten bereitgestellt werden. Andere Arten und Formen des Netzwerkzugriffs (z. B. WiFi, drahtlose, verdrahtete Langstreckennetze einschließlich optischer Netze) können auch anstatt oder in Kombination mit derartigen 3GPP-Trägernetzen eingesetzt werden.
  • Die Netzwerkkomponenten der Edge-Cloud 810 können Server, mehrmandantenfähige Server, Geräterechenvorrichtungen oder eine beliebige andere Art von Rechenvorrichtungen sein. Zum Beispiel kann die Edge-Cloud 810 eine Geräterechenvorrichtung beinhalten, die eine eigenständige elektronische Vorrichtung einschließlich einer Einhausung, eines Chassis, eines Gehäuses oder einer Hülle ist. Unter Umständen kann das Gehäuse zur Portabilität dimensioniert sein, sodass es von einem Menschen transportiert oder versendet werden kann. Beispielhafte Gehäuse können Materialien aufweisen, die eine oder mehrere Außenflächen bilden, die Inhalte des Geräts teilweise oder vollständig schützen, wobei der Schutz Wetterschutz, Schutz vor gefährlichen Umgebungen (z. B. EMI, Vibration, extreme Temperaturen) beinhalten oder Eintauchbarkeit ermöglichen kann. Beispielhafte Gehäuse können Leistungsschaltungen beinhalten, um Leistung für stationäre oder tragbare Implementierungen bereitzustellen, wie etwa AC-Leistungseingänge, DC-Leistungseingänge, AC/DC- oder DC/AC-Wandler, Leistungsregler, Transformatoren, Ladeschaltungen, Batterien, drahtgebundene Eingänge oder drahtlose Leistungseingänge. Beispielhafte Gehäuse oder Oberflächen davon können Montagehardware aufweisen oder mit dieser verbunden sein, um eine Befestigung an Strukturen, wie etwa Gebäuden, Telekommunikationsstrukturen (z. B. Masten, Antennenstrukturen etc.) oder Racks (z. B. Server-Racks, Bladebefestigungen etc.), zu ermöglichen. Beispielhafte Gehäuse oder Oberflächen davon können einen oder mehrere Sensoren (z. B. Temperatursensoren, Vibrationssensoren, Lichtsensoren, Akustiksensoren, kapazitive Sensoren, Näherungssensoren etc.) unterstützen. Ein oder mehrere solche Sensoren können in der Oberfläche enthalten sein, von dieser getragen werden oder anderweitig in diese eingebettet sein oder an der Oberfläche des Geräts montiert sein. Beispielhafte Gehäuse oder Oberflächen davon können mechanische Konnektivität unterstützen, wie etwa Antriebshardware (z. B. Räder, Propeller etc.) oder Gelenkhardware (z. B. Roboterarme, schwenkbare Fortsätze etc.). Unter manchen Umständen können die Sensoren eine beliebige Art von Eingabevorrichtungen beinhalten, wie etwa Benutzerschnittstellen-Hardware (z. B. Tasten, Schalter, Wählscheiben, Schieber etc.). Unter Umständen beinhalten beispielhafte Gehäuse Ausgabevorrichtungen, die darin enthalten, von diesen getragen, darin eingebettet oder daran angebracht sind. Ausgabevorrichtungen können Anzeigen, Touchscreens, Leuchten, LEDs, Lautsprecher, E/A-Ports (z. B. USB) etc. beinhalten. Unter manchen Umständen sind Edge-Vorrichtungen Vorrichtungen, die im Netzwerk für einen spezifischen Zweck dargestellt sind (z. B. eine Ampel), können aber auch Verarbeitungs- oder andere Kapazitäten aufweisen, die für andere Zwecke genutzt werden können. Derartige Edge-Vorrichtungen können unabhängig von anderen vernetzten Vorrichtungen sein und können mit einer Einhausung versehen sein, die einen Formfaktor aufweist, der für seinen primären Zweck geeignet ist; aber dennoch für andere Rechenaufgaben verfügbar ist, die ihre primäre Aufgabe nicht stören. Edge-Vorrichtungen beinhalten Vorrichtungen des Internets der Dinge. Die Geräterechenvorrichtung kann Hardware- und Softwarekomponenten aufweisen, um lokale Faktoren, wie etwa Vorrichtungstemperatur, Vibration, Ressourcenauslastung, Aktualisierungen, Stromangelegenheiten, physische und Netzwerksicherheit etc., zu verwalten. Beispielhafte Hardware zum Implementieren einer Geräterechenvorrichtung ist in Verbindung mit 8B beschrieben. Die Edge-Cloud 810 kann auch einen oder mehrere Server oder einen oder mehrere Mehrmandanten-Server aufweisen. Ein derartiger Server kann ein Betriebssystem beinhalten und eine virtuelle Rechenumgebung implementieren. Eine virtuelle Rechenumgebung kann einen Hypervisor beinhalten, der eine oder mehrere virtuelle Maschinen, einen oder mehrere Container etc. verwaltet (z. B. spawnt, einsetzt, zerstört etc.). Derartige virtuelle Rechenumgebungen stellen eine Ausführungsumgebung bereit, in der eine oder mehrere Anwendungen und/oder andere Software, anderer Code oder andere Skripte ausgeführt werden können, während sie von einer oder mehreren anderen Anwendungen, Software, Code oder Skripten isoliert sind.
  • In 10 tauschen verschiedene Client-Endpunkte 1010 (in der Form von Mobilvorrichtungen, Computern, autonomen Fahrzeugen, Unternehmensrechenanlagen, industriellen Verarbeitungsanlagen) Anfragen und Antworten aus, die für die Art der Endpunktnetzwerkaggregation spezifisch sind. Beispielsweise können Client-Endpunkte 1010 Netzwerkzugang über ein drahtgebundenes Breitbandnetzwerk erhalten, indem Anforderungen und Antworten 1022 durch ein On-Premise-Netzwerksystem 1032 ausgetauscht werden. Manche Client-Endpunkte 1010, wie etwa mobile Rechenvorrichtungen, können Netzwerkzugang über ein drahtloses Breitbandnetzwerk erhalten, indem Anfragen und Antworten 1024 durch einen Zugangspunkt (z. B. Mobilfunknetzturm) 1034 ausgetauscht werden. Manche Client-Endpunkte 1010, wie etwa autonome Fahrzeuge, können Netzwerkzugang für Anfragen und Antworten 1026 über ein drahtloses Fahrzeugnetzwerk durch ein auf Straßen angeordnetes Netzwerksystem 1036 erhalten. Unabhängig von der Art des Netzwerkzugangs kann der TSP jedoch Aggregationspunkte 1042, 1044 innerhalb der Edge-Cloud 810 einsetzen, um Verkehr und Anfragen zu aggregieren. Somit kann der TSP innerhalb der Edge-Cloud 810 verschiedene Rechen- und Speicherressourcen einsetzen, wie etwa an Edge-Aggregationsknoten 1040, um angeforderten Inhalt bereitzustellen. Die Edge-Aggregationsknoten 1040 und andere Systeme der Edge-Cloud 810 sind mit einer Cloud oder einem Rechenzentrum 1060 verbunden, das ein Backhaul-Netzwerk 1050 verwendet, um Anforderungen mit höherer Latenz von einer Cloud/einem Rechenzentrum für Websites, Anwendungen, Datenbankserver etc. zu erfüllen. Zusätzliche oder konsolidierte Instanzen der Edge-Aggregationsknoten 1040 und der Aggregationspunkte 1042, 1044, einschließlich jener, die auf einem einzelnen Server-Framework eingesetzt werden, können auch innerhalb der Edge-Cloud 810 oder anderer Bereiche der TSP-Infrastruktur vorhanden sein.
  • 11 veranschaulicht Einsatz und Orchestrierung für virtualisierte und containerbasierte Edge-Konfigurationen über ein Edge-Computing-System, das zwischen mehreren Edge-Knoten und mehreren Mandanten (z. B. Benutzern, Anbietern), die solche Edge-Knoten nutzen, betrieben wird. Insbesondere stellt 11 eine Koordination eines ersten Edge-Knotens 1122 und eines zweiten Edge-Knotens 1124 in einem Edge-Computing-System dar, um Anforderungen und Antworten für verschiedene Client-Endpunkte 1110 (z. B. intelligente Städte / Gebäudesysteme, Mobilvorrichtungen, Rechenvorrichtungen, Unternehmens-/Logistiksysteme, Industriesysteme etc.) zu erfüllen, die auf verschiedene virtuelle Edge-Instanzen zugreifen. Hier stellen die virtuellen Edge-Instanzen 1132, 1134 Edge-Rechenfähigkeiten und Verarbeitung in einer Edge-Cloud mit Zugriff auf eine Cloud/ein Rechenzentrum 1140 für Anforderungen mit höherer Latenz für Websites, Anwendungen, Datenbankserver etc. bereit. Die Edge-Cloud ermöglicht jedoch eine Koordination der Verarbeitung zwischen mehreren Edge-Knoten für mehrere Mandanten oder Entitäten.
  • In dem Beispiel von 11 beinhalten diese virtuellen Edge-Instanzen: eine erste virtuelle Edge 1132, die einem ersten Mandanten (Mandant 1) angeboten wird, der eine erste Kombination von Edge-Speicherung, Rechenfunktionen und Diensten anbietet; und eine zweite virtuelle Edge 1134, die eine zweite Kombination von Edge-Speicherung, Rechenfunktionen und Diensten anbietet. Die virtuellen Edge-Instanzen 1132, 1134 sind unter den Edge-Knoten 1122, 1124 verteilt und können Szenarien beinhalten, in denen eine Anforderung und Antwort von demselben oder unterschiedlichen Edge-Knoten erfüllt werden. Die Konfiguration der Edge-Knoten 1122, 1124 zum Arbeiten auf eine verteilte, aber koordinierte Weise erfolgt basierend auf Edge-Bereitstellungsfunktionen 1150. Die Funktionalität der Edge-Knoten 1122, 1124 zum Bereitstellen eines koordinierten Betriebs für Anwendungen und Dienste unter mehreren Mandanten erfolgt basierend auf Orchestrierungsfunktionen 1160.
  • Es versteht sich, dass manche der Vorrichtungen in 1110 Mehrmandanten-Vorrichtungen sind, wobei Mandant 1 innerhalb eines Mandant-1-„Slice“ funktionieren kann, während ein Mandant 2 innerhalb eines Mandant-2-Slice funktionieren kann (und in weiteren Beispielen können zusätzliche oder Unter-Mandanten existieren; und jeder Mandant kann sogar spezifisch berechtigt und transaktionell an einen spezifischen Satz von Merkmalen bis hinab zu spezifischen Hardwaremerkmalen gebunden sein). Eine vertrauenswürdige Mehrmandanten-Vorrichtung kann ferner einen mandantenspezifischen kryptografischen Schlüssel enthalten, sodass die Kombination aus Schlüssel und Slice als eine „Vertrauensanker“ (Root of Trust, RoT) oder mandantenspezifischer RoT angesehen werden kann. Ein RoT kann ferner dynamisch unter Verwendung einer DICE (Device Identity Composition Engine)-Architektur berechnet werden, sodass ein einzelner DICE-Hardwarebaustein verwendet werden kann, um geschichtete vertrauenswürdige Rechenbasiskontexte zur Schichtung von Vorrichtungsfähigkeiten (wie etwa ein feldprogrammierbares Gatearray (FPGA)) zu konstruieren. Der RoT kann ferner für einen vertrauenswürdigen Rechenkontext verwendet werden, um eine „Ausfächerung“ zu ermöglichen, die zum Unterstützen einer Mehrmandantenfähigkeit nützlich ist. Innerhalb einer Mehrmandantenumgebung können die jeweiligen Edge-Knoten 1122, 1124 als Durchsetzungspunkte für Sicherheitsmerkmale für lokale Ressourcen arbeiten, die mehreren Mandanten pro Knoten zugeteilt sind. Zusätzlich dazu können Mandantenlaufzeit und Anwendungsausführung (z. B. in den Fällen 1132, 1134) als ein Durchsetzungspunkt für ein Sicherheitsmerkmal dienen, das eine virtuelle Edge-Abstraktion von Ressourcen erzeugt, die potenziell mehrere physische Hostingplattformen umspannen. Schließlich können die Orchestrierungsfunktionen 1160 an einer Orchestrierungsentität als ein Sicherheitsmerkmals-Durchsetzungspunkt zum Lenken von Ressourcen entlang Mandantengrenzen fungieren.
  • Edge-Rechenknoten können Ressourcen (Speicher, Zentraleinheit (CPU), Grafikeinheit (GPU), Interruptsteuerung, Eingabe/Ausgabe (E/A)-Steuerung, Speichersteuerung, Bussteuerung etc.) partitionieren, wobei jeweilige Partitionen eine RoT-Fähigkeit enthalten können und wobei Ausfächerung und Schichtung gemäß einem DICE-Modell ferner auf Edge-Knoten angewendet werden können. Cloud-Rechenknoten verwenden oft Container, FaaS-Engines, Servlets, Server oder eine andere Berechnungsabstraktion, die gemäß einer DICE-Schichtungs- und Ausfächerungsstruktur partitioniert werden können, um für jede der Abstraktionen einen RoT-Kontext zu unterstützen. Dementsprechend können die jeweiligen RoTs, die die Vorrichtungen 1110, 1122 und 1140 umspannen, die Vorrichtung einer verteilten vertrauenswürdigen Rechenbasis (DTCB) koordinieren, sodass ein mandantenspezifischer virtueller, vertrauenswürdiger, sicherer Kanal, der alle Elemente durchgehend verbindet, eingerichtet werden kann.
  • Ferner versteht es sich, dass ein Container daten- oder arbeitslastspezifische Schlüssel aufweisen kann, die seinen Inhalt vor einem vorherigen Edge-Knoten schützen. Als Teil der Migration eines Containers kann eine Pod-Steuerung an einem Quell-Edge-Knoten einen Migrationsschlüssel von einer Ziel-Edge-Knoten-Pod-Steuerung erhalten, wobei der Migrationsschlüssel zum Verpacken der containerspezifischen Schlüssel verwendet wird. Wenn der Container/Pod zum Ziel-Edge-Knoten migriert wird, wird der Entpackungsschlüssel für die Pod-Steuerung offengelegt, die dann die verpackten Schlüssel entschlüsselt. Die Schlüssel können nun zur Durchführung von Operationen an containerspezifischen Daten verwendet werden. Die Migrationsfunktionen können durch korrekt bestätigte Edge-Knoten und Pod-Manager (wie oben beschrieben) angesteuert werden.
  • In weiteren Beispielen wird ein Edge-Computing-System erweitert, um eine Orchestrierung mehrerer Anwendungen durch die Verwendung von Containern (einer enthaltenen, einsetzbaren Softwareeinheit, die Code und benötigte Abhängigkeiten bereitstellt) in einer Mehreigentümer-, Mehrmandantenumgebung bereitzustellen. Ein Mehrmandanten-Orchestrator kann verwendet werden, um Schlüsselverwaltung, Vertrauensanker-Verwaltung und andere Sicherheitsfunktionen in Bezug auf die Bereitstellung und den Lebenszyklus des vertrauenswürdigen „Slice“-Konzepts in 11 durchzuführen. Beispielsweise kann ein Edge-Rechensystem konfiguriert sein, um Anfragen und Antworten für verschiedene Client-Endpunkte von mehreren virtuellen Edge-Instanzen (und von einer Cloud oder einem entfernten Rechenzentrum) zu erfüllen. Die Verwendung dieser virtuellen Edge-Instanzen kann mehrere Mandanten und mehrere Anwendungen (z. B. erweiterte Realität (Augmented Reality, AR)/virtuelle Realität (Virtual Reality, VR), Unternehmensanwendungen, Inhaltslieferung, Gaming, Berechnungsauslagerung) gleichzeitig unterstützen. Ferner kann es mehrere Arten von Anwendungen innerhalb der virtuellen Edge-Instanzen geben (z. B. normale Anwendungen; latenzempfindliche Anwendungen; latenzkritische Anwendungen; Benutzerebenenanwendungen; Vernetzungsanwendungen etc.). Die virtuellen Edge-Instanzen können auch über Systeme mehrerer Eigentümer an unterschiedlichen geografischen Standorten (oder jeweilige Rechensysteme und Ressourcen, die von mehreren Eigentümern gemeinsam besessen oder gemeinsam verwaltet werden) verteilt sein.
  • Beispielsweise kann jeder Edge-Knoten 1122, 1124 die Verwendung von Containern implementieren, wie etwa unter Verwendung eines Container-„Pods“ 1126, 1128, der eine Gruppe von einem oder mehreren Containern bereitstellt. In einer Einstellung, die eine oder mehrere Container-Pods verwendet, ist eine Pod-Steuerung oder ein Orchestrator für die lokale Steuerung und Orchestrierung der Container im Pod verantwortlich. Verschiedene Edge-Knotenressourcen (z. B. Speicherung, Berechnung, Dienste, dargestellt mit Hexagonen), die für die jeweiligen Edge-Segmente 1132, 1134 bereitgestellt werden, werden gemäß den Bedürfnissen jedes Containers partitioniert.
  • Bei der Verwendung von Container-Pods überwacht eine Pod-Steuerung die Partitionierung und Zuteilung von Containern und Ressourcen. Die Pod-Steuerung empfängt Anweisungen von einem Orchestrator (z. B. dem Orchestrator 1160), die die Steuerung darüber anweisen, wie physische Ressourcen am besten und für welche Dauer zu partitionieren sind, wie etwa durch Empfangen von Leistungskennzahl-Zielen (KPI-Zielen) basierend auf SLA-Verträgen. Die Pod-Steuerung ermittelt, welcher Container welche Ressourcen und wie lange benötigt, um die Arbeitslast abzuschließen und die SLA zu erfüllen. Die Pod-Steuerung verwaltet auch Container-Lebenszyklusoperationen, wie etwa: Erzeugen des Containers, Ausstatten desselben mit Ressourcen und Anwendungen, Koordinieren von Zwischenergebnissen zwischen mehreren Containern, die gemeinsam an einer verteilten Anwendung arbeiten, Abbauen von Containern, wenn die Arbeitslast abgeschlossen ist, und dergleichen. Zusätzlich dazu kann eine Pod-Steuerung in einer Sicherheitsrolle dienen, die eine Zuweisung von Ressourcen verhindert, bis sich der richtige Mandant authentifiziert, oder eine Bereitstellung von Daten oder einer Arbeitslast an einen Container verhindert, bis ein Bestätigungsergebnis erfüllt ist.
  • Auch bei der Verwendung von Container-Pods können Mandantengrenzen immer noch existieren, jedoch im Kontext jedes Pods von Containern. Falls jeder mandantenspezifische Pod eine mandantenspezifische Pod-Steuerung aufweist, gibt es eine gemeinsam genutzte Pod-Steuerung, die Ressourcenzuteilungsanforderungen konsolidiert, um typische Ressourcenmangelsituationen zu vermeiden. Weitere Steuerungen können vorgesehen sein, um eine Bestätigung und Vertrauenswürdigkeit des Pods und der Pod-Steuerung zu gewährleisten. Beispielsweise kann der Orchestrator 1160 lokalen Pod-Steuerungen, die eine Bestätigungsprüfung durchführen, eine Bestätigungsprüfungsrichtlinie bereitstellen. Falls eine Attestierung eine Richtlinie für eine erste Mandanten-Pod-Steuerung, aber nicht für eine zweite Mandanten-Pod-Steuerung erfüllt, dann könnte der zweite Pod zu einem anderen Edge-Knoten migriert werden, der sie erfüllt. Alternativ dazu kann die Ausführung des ersten Pods erlaubt werden und eine andere gemeinsam genutzte Pod-Steuerung wird installiert und aufgerufen, bevor der zweite Pod ausgeführt wird.
  • 12 veranschaulicht zusätzliche Rechenanordnungen, die Container in einem Edge-Computing-System einsetzen. Als ein vereinfachtes Beispiel stellen die Systemanordnungen 1210, 1220 Situationen dar, in denen eine Pod-Steuerung (z. B. Containermanager 1211, 1221 und ein Containerorchestrator 1231) konfiguriert ist, um containerisierte Pods, Funktionen und Functions-as-a-Service-Instanzen durch Ausführung über Rechenknoten (1215 in Anordnung 1210) zu starten oder containerisierte, virtualisierte Netzwerkfunktionen durch Ausführung über Rechenknoten (1223 in Anordnung 1220) separat auszuführen. Diese Anordnung ist zur Verwendung mehrerer Mandanten in einer Systemanordnung 1230 (unter Verwendung von Rechenknoten 1237) angepasst, wobei containerisierte Pods (z. B. Pods 1212), Funktionen (z. B. Funktionen 1213, VNFs 1222, 1236) und Functions-as-a-Service-Instanzen (z. B. FaaS-Instanz 1214) innerhalb virtueller Maschinen (z. B. VMs 1234, 1235 für Mandanten 1232, 1233) gestartet werden, die spezifisch für jeweilige Mandanten sind (abgesehen von der Ausführung virtualisierter Netzwerkfunktionen). Diese Anordnung ist ferner zur Verwendung in einer Systemanordnung 1240 angepasst, die Container 1242, 1243 oder eine Ausführung der verschiedenen Funktionen, Anwendungen und Funktionen auf Rechenknoten 1244 bereitstellt, wie durch ein containerbasiertes Orchestrierungssystem 1241 koordiniert.
  • Die in 12 dargestellten Systemanordnungen stellen eine Architektur bereit, die VMs, Container und Funktionen hinsichtlich der Anwendungszusammensetzung gleichbehandelt (und resultierende Anwendungen sind Kombinationen dieser drei Bestandteile). Jeder Bestandteil kann die Verwendung einer oder mehrerer Beschleuniger-Komponenten (FPGA, ASIC) als ein lokales Backend beinhalten. Auf diese Weise können Anwendungen über mehrere Edge-Eigentümer aufgeteilt werden, koordiniert durch einen Orchestrator.
  • Im Kontext von 12 können die Pod-Steuerung/der Container-Manager, der Containerorchestrator und einzelne Knoten einen Sicherheitsdurchsetzungspunkt bereitstellen. Die Mandantentrennung kann jedoch orchestriert werden, wo sich die Ressourcen, die einem Mandanten zugeteilt sind, von Ressourcen unterscheiden, die einem zweiten Mandanten zugeteilt sind, aber Edge-Eigentümer kooperieren, um sicherzustellen, dass Ressourcenzuteilungen nicht über Mandantengrenzen hinweg geteilt werden. Oder Ressourcenzuteilungen könnten über Mandantengrenzen hinweg isoliert werden, da Mandanten eine „Verwendung“ auf Subskriptions- oder Transaktions-/Vertragsbasis ermöglichen könnten. In diesen Zusammenhängen können Virtualisierungs-, Containerisierungs-, Enklaven- und Hardwarepartitionierungsschemata von Edge-Eigentümern verwendet werden, um den Mandantenzustand durchzusetzen. Andere Isolationsumgebungen können beinhalten: (dedizierte) Bare-Metal-Ausrüstung, virtuelle Maschinen, Container, virtuelle Maschinen auf Containern oder Kombinationen davon.
  • In weiteren Beispielen können Aspekte von softwaredefinierter oder -gesteuerter Siliziumhardware und anderer konfigurierbarer Hardware mit den Anwendungen, Funktionen und Diensten eines Edge-Computing-Systems integriert sein. Softwaredefiniertes Silizium (SDSi) kann verwendet werden, um die Fähigkeit sicherzustellen, dass ein Ressourcen- oder Hardwarebestandteil einen Vertrag oder eine Dienstgütevereinbarung erfüllt, basierend auf der Fähigkeit des Bestandteils, einen Abschnitt von sich selbst oder der Arbeitslast zu korrigieren (z. B. durch eine Hochrüstung, eine Neukonfiguration oder eine Bereitstellung neuer Funktionen innerhalb der Hardwarekonfiguration selbst).
  • In weiteren Beispielen können beliebige der Rechenknoten oder Vorrichtungen, die unter Bezugnahme auf die vorliegende(n) Edge-Computing-Systeme und Umgebung erörtert wurden, basierend auf den in 13A und 13B dargestellten Komponenten erfüllt werden. Jeweilige Edge-Rechenknoten können als ein Typ von Vorrichtung, Gerät, Computer oder anderem „Ding“ umgesetzt sein, welche/r/s in der Lage ist, mit anderen Edge-, Netzwerk- oder Endpunktkomponenten zu kommunizieren. Zum Beispiel kann eine Edge-Computing-Vorrichtung als ein Personal-Computer, Server, Smartphone, eine mobile Rechenvorrichtung, ein intelligentes Gerät, ein Fahrzeug-Rechensystem (z. B. ein Navigationssystem), eine eigenständige Vorrichtung mit einem Außengehäuse, einer Hülle etc. oder ein(e) andere(s) Vorrichtung oder System, die/das in der Lage ist, die beschriebenen Funktionen durchzuführen, ausgeführt sein.
  • In dem vereinfachten Beispiel, das in 13A dargestellt ist, weist ein Edge-Rechenknoten 1300 eine Rechen-Engine (hier auch als „Rechenschaltung“ bezeichnet) 1302, ein Eingabe/Ausgabe (E/A)-Subsystem 1308, einen Datenspeicher 1310, ein Kommunikationsschaltung-Subsystem 1312 und optional eine oder mehrere Peripherievorrichtungen 1314 auf. In anderen Beispielen können jeweilige Rechenvorrichtungen andere oder zusätzliche Komponenten aufweisen, wie etwa solche, die typischerweise in einem Computer anzutreffen sind (z. B. eine Anzeige, Peripherievorrichtungen etc.). Zusätzlich dazu können, in einigen Beispielen, eine oder mehrere der beispielhaften Komponenten in eine andere Komponente integriert sein oder anderweitig einen Teil davon bilden.
  • Der Rechenknoten 1300 kann als eine beliebige Art von Engine, Vorrichtung oder Sammlung von Vorrichtungen ausgeführt sein, die in der Lage sind, verschiedene Rechenfunktionen durchzuführen. In einigen Beispielen kann der Rechenknoten 1300 als eine einzelne Vorrichtung wie eine integrierte Schaltung, ein eingebettetes System, ein feldprogrammierbares Gatearray (FPGA), ein Ein-Chip-System (SOC, System-on-a-Chip) oder ein(e) andere(s) integriertes System oder Vorrichtung ausgeführt sein. Im veranschaulichenden Beispiel weist der Rechenknoten 1300 einen Prozessor 1304 und einen Speicher 1306 auf oder ist als diese ausgebildet. Der Prozessor 1304 kann als ein beliebiger Typ von Prozessor ausgebildet sein, der die hierin beschriebenen Funktionen (z. B. Ausführen einer Anwendung) durchführen kann. Der Prozessor 904 kann zum Beispiel als ein Mehrkernprozessoren, eine Mikrosteuereinheit, eine Verarbeitungseinheit, eine spezialisierte oder zweckbestimmte Verarbeitungseinheit oder ein anderer Prozessor oder eine andere Verarbeitungs-/Steuerschaltung realisiert sein.
  • In manchen Beispielen kann der Prozessor 1304 als FPGA, anwendungsspezifische integrierte Schaltung (ASIC, Application Specific Integrated Circuit), rekonfigurierbare Hardware oder Hardwareschaltung oder andere spezialisierte Hardware ausgeführt sein, diese aufweisen oder mit diesen gekoppelt sein, um eine Leistungsfähigkeit der hier beschriebenen Funktionen zu ermöglichen. In einigen Beispielen kann der Prozessor 1304 auch als eine spezialisierte x-Verarbeitungseinheit (xPU) umgesetzt sein, die auch als eine Datenverarbeitungseinheit (DPU), eine Infrastrukturverarbeitungseinheit (IPU) oder eine Netzwerkverarbeitungseinheit (NPU) bekannt ist. Eine derartige xPU kann als eine eigenständige Schaltung oder ein eigenständiges Schaltungspaket ausgeführt sein, innerhalb eines SOC integriert sein oder mit einer Netzwerkschaltung (z. B. in einer SmartNIC oder erweiterten SmartNIC), einer Beschleunigungsschaltung, Speicherungsvorrichtungen oder KI-Hardware (z. B. GPUs oder programmierte FPGAs) integriert sein. Eine derartige xPU kann ausgelegt sein, um eine Programmierung zu empfangen, um einen oder mehrere Datenströme zu verarbeiten und spezifische Aufgaben und Aktionen für die Datenströme durchzuführen (wie etwa ein beherbergen von Mikrodiensten, Durchführen einer Dienstverwaltung oder -orchestrierung, Organisieren oder Verwalten einer Server- oder Rechenzentrumshardware, ein Verwalten von vernetzten Diensten oder ein Sammeln und Verteilen einer Telemetrie), außerhalb der CPU oder außerhalb einer Universalverarbeitungshardware. Es versteht sich jedoch, dass eine xPU, ein SOC, eine CPU und andere Variationen des Prozessors 1304 koordiniert miteinander arbeiten können, um viele Arten von Operationen und Anweisungen innerhalb und im Auftrag des Rechenknotens 1300 auszuführen.
  • Der Arbeitsspeicher 1306 kann als beliebiger Typ flüchtiger (z. B. dynamischer Direktzugriffsspeicher (DRAM, Dynamic Random Access Memory) etc.) oder nichtflüchtiger Speicher oder Datenspeicher ausgeführt sein, der in der Lage ist, die hier beschriebenen Funktionen durchzuführen. Ein flüchtiger Speicher kann ein Datenspeichermedium sein, das Energie benötigt, um den Zustand der in dem Medium gespeicherten Daten beizubehalten. Nicht einschränkende Beispiele von flüchtigem Speicher können verschiedene Arten eines Direktzugriffsspeichers (RAM) wie zum Beispiel eines DRAM oder eines statischen Direktzugriffsspeichers (SRAM) enthalten. Ein bestimmter Typ eines DRAM, der in einem Speichermodul verwendet werden kann, ist ein synchroner dynamischer Direktzugriffsspeicher (SDRAM).
  • In einem Beispiel ist die Speichervorrichtung eine blockadressierbare Speichervorrichtung, wie etwa solche auf Basis der NAND- oder NOR-Technologien. Eine Speichervorrichtung kann auch eine dreidimensionale Koppelpunktspeichervorrichtung (z. B. Intel® 3D XPoint™-Speicher) oder andere byteadressierbare nichtflüchtige Speichervorrichtungen zum Schreiben an Ort und Stelle beinhalten. Die Speichervorrichtung kann das Halbleiterplättchen („Die“) selbst und/oder ein paketiertes Speicherprodukt bezeichnen. In manchen Beispielen kann der 3D-Crosspoint-Speicher (z. B. Intel® 3D XPoint™-Speicher) eine transistorlose stapelbare Crosspoint-Architektur umfassen, bei der Speicherzellen am Schnittpunkt von Wortleitungen und Bitleitungen sitzen und einzeln adressierbar sind und bei der die Bitspeicherung auf einer Änderung des Volumenwiderstands basiert. In einigen Beispielen kann der gesamte oder ein Teil des Speichers 1306 in den Prozessor 1304 integriert sein. Der Speicher 1306 kann verschiedene Software und Daten speichern, die während des Betriebs verwendet werden, wie etwa eine oder mehrere Anwendungen, Daten, die durch die Anwendung(en) bearbeitet werden, Bibliotheken und Treiber.
  • Die Rechenschaltung 1302 ist kommunikationsfähig mit anderen Komponenten des Rechenknotens 1300 über das E/A-Subsystem 1308 gekoppelt, das als eine Schaltungsanordnung oder Komponenten ausgeführt sein kann, um Eingabe/Ausgabe-Operationen mit der Rechenschaltung 1302 (z. B. mit dem Prozessor 1304 oder dem Hauptspeicher 1306) und anderen Komponenten der Rechenschaltung 1302 zu ermöglichen. Das E/A-Subsystem 1308 kann zum Beispiel als Speichersteuerungs-Hubs, Eingabe/Ausgabe-Steuerungs-Hubs, integrierte Sensor-Hubs, Firmwarevorrichtungen, Kommunikationsverbindungen (z. B. Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterplatten-Leiterbahnen etc.) oder andere Komponenten und Subsysteme ausgeführt sein oder diese anderweitig beinhalten, um die Eingabe/Ausgabe-Operationen zu ermöglichen. In manchen Beispielen kann das E/A-Subsystem 1308 einen Teil eines Ein-Chip-Systems (SoC) bilden und zusammen mit einem oder mehreren von Prozessor 1304, Speicher 1306 und/oder anderen Komponenten der Rechenschaltung 1302 in die Rechenschaltung 1302 integriert sein.
  • Die ein oder mehreren beispielhaften Datenspeicherungsvorrichtungen 1310 können als eine beliebige Art von Vorrichtungen ausgeführt sein, die für die kurzfristige oder langfristige Speicherung von Daten ausgelegt sind, beispielsweise Speichervorrichtungen und -schaltungen, Speicherkarten, Festplattenlaufwerke, Festkörperlaufwerke oder andere Datenspeicherungsvorrichtungen. Individuelle Datenspeichervorrichtungen 1310 können eine Systempartition aufweisen, in der Daten und Firmwarecodes für die Datenspeichervorrichtung 1310 gespeichert werden. Individuelle Datenspeicherungsvorrichtungen 1310 können auch eine oder mehrere Betriebssystempartitionen beinhalten, die Dateien und ausführbare Dateien für Betriebssysteme in Abhängigkeit von zum Beispiel dem Typ des Rechenknotens 1300 speichern.
  • Die Kommunikationsschaltung 1312 kann als eine beliebige Kommunikationsschaltung, - vorrichtung oder Sammlung davon ausgeführt sein, die in der Lage ist, Kommunikation über ein Netzwerk zwischen der Rechenschaltung 1302 und einer anderen Rechenvorrichtung (z. B. einem Edge-Gateway eines implementierenden Edge-Computing-Systems) zu ermöglichen. Die Kommunikationsschaltung 1312 kann dafür ausgelegt sein, eine oder mehrere beliebige Kommunikationstechnologien (z. B. drahtgebundene oder drahtlose Kommunikation) und zugehörige Protokolle (z. B. ein Mobilfunk-Netzprotokoll, wie etwa einen 3GPP-4G-oder -SG-Standard, ein drahtloses Ortsnetzprotokoll, wie etwa IEEE 802.11 /Wi-Fi®, ein drahtloses Weitverkehrsnetzprotokoll, Ethernet, Bluetooth®, Bluetooth Low Energy, ein IoT-Protokoll, wie etwa IEEE 802.15.4 oder ZigBee®, Niedrigenergie-Weitverkehrsnetz- (LPWAN) oder Niedrigenergie-Weitverkehrs (LPWA)-Protokolle etc.) zu nutzen, um eine solche Kommunikation zu bewirken.
  • Die beispielhafte Kommunikationsschaltung 1312 weist eine Netzwerkschnittstellensteuerung (NIC, Network Interface Controller) 1320 auf, die auch als Host-Fabric-Schnittstelle (HFI, Host Fabric Interface) bezeichnet werden kann. Die NIC 1320 kann als eine oder mehrere Zusatzplatinen, untergeordnete Karten, Netzwerkschnittstellenkarten, Steuerchips, Chipsätze oder andere Vorrichtungen ausgebildet sein, die vom Rechenknoten 1300 verwendet werden können, um an eine andere Rechenvorrichtung (z. B. an einen Edge-Gatewayknoten) anzubinden. In einigen Beispielen kann die NIC 1320 als ein Teil eines Ein-Chip-Systems (SoC) ausgebildet sein, das einen oder mehrere Prozessoren beinhaltet, oder in einem Mehrchipgehäuse enthalten sein, das auch einen oder mehrere Prozessoren beinhaltet. Bei einigen Beispielen kann die NIC 1320 einen (nicht gezeigten) lokalen Prozessor oder einen (nicht gezeigten) lokalen Speicher beinhalten, die beide lokal für die NIC 1320 sind. Bei diesen Beispielen kann der lokale Prozessor der NIC 1320 dazu in der Lage sein, eine oder mehrere der Funktionen der hier beschriebenen Rechenschaltung 1302 durchzuführen. Zusätzlich oder alternativ dazu kann in diesen Beispielen der lokale Speicher der NIC 1320 in eine oder mehrere Komponenten des Client-Rechenknotens auf Platinenebene, Sockelebene, Chipebene oder anderen Ebenen integriert sein.
  • Zusätzlich kann in manchen Beispielen ein jeweiliger Rechenknoten 1300 eine oder mehrere Peripherievorrichtungen 1314 aufweisen. Solche Peripherievorrichtungen 1314 können eine beliebige Art von Peripherievorrichtung beinhalten, die in einer Rechenvorrichtung oder einem Server anzutreffen ist, wie etwa Audioeingabevorrichtungen, eine Anzeige, andere Eingabe-/Ausgabevorrichtungen, Schnittstellenvorrichtungen oder andere Peripherievorrichtungen, je nach dem jeweiligen Typ von Rechenknoten 1300. Bei weiteren Beispielen kann der Rechenknoten 1300 durch einen jeweiligen Edge-Rechenknoten (egal, ob ein Client, Gateway oder Aggregationsknoten) in einem Edge-Rechensystem oder ähnlichen Formen von Geräten, Computern, Subsystemen, Schaltungsanordnungen oder anderen Komponenten ausgebildet sein.
  • In einem ausführlicheren Beispiel zeigt 13B ein Blockdiagramm eines Beispiels für Komponenten, die in einem Edge-Rechenknoten 1350 vorhanden sein können, um die hierin beschriebenen Techniken (z. B. Operationen, Prozesse, Verfahren und Methoden) zu implementieren. Dieser Edge-Rechenknoten 1350 stellt eine nähere Ansicht der jeweiligen Komponenten des Knotens 1300 bereit, wenn er als oder als Teil einer Rechenvorrichtung (z. B. als eine Mobilvorrichtung, eine Basisstation, ein Server, ein Gateway etc.) implementiert wird. Der Edge-Rechenknoten 1350 kann beliebige Kombinationen der hier referenzierten Hardware oder logischen Komponenten beinhalten und er kann eine beliebige Vorrichtung beinhalten oder an eine solche koppeln, die mit einem Edge-Kommunikationsnetzwerk oder einer Kombination derartiger Netzwerke verwendbar ist. Die Komponenten können als integrierte Schaltungen (ICs), Abschnitte davon, diskrete elektronische Vorrichtungen oder andere Module, Befehlssätze, programmierbare Logik oder Algorithmen, Hardware, Hardwarebeschleuniger, Software, Firmware oder eine Kombination davon, die im Edge-Rechenknoten 1350 angepasst sind, oder als Komponenten, die anderweitig in einem Chassis eines größeren Systems integriert sind, implementiert sein.
  • Die Edge-Rechenvorrichtung 1350 kann eine Verarbeitungsschaltung in der Form eines Prozessors 1352 aufweisen, der ein Mikroprozessor, ein Mehrkernprozessor, ein Multithreadprozessor, ein Ultra-Niederspannungsprozessor, ein eingebetteter Prozessor, eine xPU/DPU/IPU/NPU, eine Spezialverarbeitungseinheit, eine spezialisierte Verarbeitungseinheit oder andere bekannte Verarbeitungselemente sein kann. Der Prozessor 1352 kann ein Teil eines Ein-Chip-Systems (SoC) sein, in dem der Prozessor 1352 und andere Komponenten in einer einzigen integrierten Schaltung oder einem einzigen Gehäuse ausgebildet sind, wie etwa die Edison™- oder Galileo™-SoC-Platinen der Intel Corporation, Santa Clara, Kalifornien. Als ein Beispiel kann der Prozessor 1352 einen auf Intel® Architecture Core™ basierenden CPU-Prozessor, wie etwa einen Prozessor der Klasse Quark™, Atom™, i3, i5, i7, i9 oder MCU oder einen anderen derartigen Prozessor beinhalten, der von Intel® erhältlich ist. Eine beliebige Anzahl anderer Prozessoren kann jedoch verwendet werden, wie etwa von Advanced Micro Devices, Inc. (AMD®) aus Sunnyvale, Kalifornien, ein MIPS®-basiertes Design der MIPS Technologies, Inc. aus Sunnyvale, Kalifornien, ein ARM®-basiertes Design, lizenziert von ARM Holdings, Ltd. oder einem Kunden davon, oder deren Lizenznehmer oder Anwender. Die Prozessoren können Einheiten, wie etwa einen A5-A13-Prozessor von Apple® Inc., einen Snapdragon™-Prozessor von Qualcomm® Technologies, Inc., oder einen OMAP™-Prozessor von Texas Instruments, Inc. beinhalten. Der Prozessor 1352 und die begleitende Schaltungsanordnung können in einem einzigen Sockelformfaktor, mehreren Sockelformfaktoren oder einer Vielfalt anderer Formate bereitgestellt sein, einschließlich in beschränkten Hardwarekonfigurationen oder Konfigurationen, die weniger als alle der in 13B gezeigten Elemente beinhalten.
  • Der Prozessor 1352 kann über eine Zwischenverbindung 1356 (z. B. einen Bus) mit einem Systemspeicher 1354 kommunizieren. Eine beliebige Anzahl an Speichervorrichtungen kann verwendet werden, um eine gegebene Größe des Systemspeichers bereitzustellen. Als Beispiele kann der Speicher 1354 ein Direktzugriffsspeicher (RAM) gemäß einem JEDEC-Design (JEDEC: Joint Electron Devices Engineering Council) sein, wie etwa den DDR- oder mobilen DDDR-Standards (z.B. LPDDR, LPDDR2, LPDDR3 oder LPDDR4). Bei bestimmten Beispielen kann eine Speicherkomponente einen von JEDEC veröffentlichten DRAM-Standard erfüllen, wie JESD79F für DDR-SDRAM, JESD79-2F für DDR2-SDRAM, JESD79-3F für DDR3-SDRAM, JESD79-4A für DDR4-SDRAM, JESD209 für Niederleistung-DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4. Derartige Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden und Kommunikationsschnittstellen der Datenspeichervorrichtungen, die derartige Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet werden. Bei verschiedenen Implementierungen können die einzelnen Speichervorrichtungen eine beliebige Anzahl von verschiedenen Gehäusetypen, wie ein Ein-Die-Gehäuse (SDP), ein Doppel-Die-Gehäuse (DDP) oder ein Quad-Die-Gehäuse (Q17P) sein. Diese Vorrichtungen können bei einigen Beispielen direkt auf eine Hauptplatine gelötet sein, um eine Lösung mit niedrigerem Profil zu bieten, während die Vorrichtungen bei anderen Beispielen als ein oder mehrere Speichermodule konfiguriert sind, die ihrerseits durch einen gegebenen Verbinder an die Hauptplatine gekoppelt sind. Eine beliebige Anzahl von anderen Speicherimplementierungen kann verwendet werden, wie etwa andere Typen von Speichermodulen, z. B. doppelreihige Speichermodule (Dual-Inline Memory Modules, DIMMs) verschiedener Varianten, die ohne auf diese beschränkt zu sein MikroDIMMs oder MiniDIMMs beinhalten.
  • Um eine dauerhafte Speicherung von Informationen, wie etwa Daten, Anwendungen, Betriebssystemen und so weiter, bereitzustellen, kann ein Speicher 1358 auch über die Zwischenverbindung 1356 mit dem Prozessor 1352 gekoppelt sein. Bei einem Beispiel kann der Datenspeicher 1358 über ein Solid-State-Plattenlaufwerk (SSDD) implementiert sein. Andere Vorrichtungen, die für den Datenspeicher 1358 verwendet werden können, beinhalten Flashspeicherkarten, wie etwa Secure-Digital- (SD-)Karten, MikroSD-Karten, eXtreme-Digital-(XD-)Bildkarten und dergleichen und Universal-Serial-Bus- (USB-)Flash-Laufwerke. In einem Beispiel kann die Speichervorrichtung aus Speichervorrichtungen bestehen oder solche aufweisen, die verwenden: Chalcogenidglas, Multi-Schwellwert-NAND-Flash-Speicher„ NOR-Flash-Speicher, Ein- oder Mehrebenen-Phasenwechselspeicher (Phase Change Memory, PCM), einen resistiven Speicher, Nanodrahtspeicher, Direktzugriffsspeicher mit ferroelektrischem Transistor (Ferroelectric Transistor Random Access Memory, FeTRAM), anti-ferroelektrischen Speicher, magnetoresistiven RAM (MRAM)-Speicher, der Memristor-Technologie enthält, resistiven Speicher, der Metalloxid-basierten, Sauerstofffehlstellen-basierten und Leitungsbrücken-Direktzugriffsspeicher (Conductive Bridge Random Access Memory, CB-RAM) enthält, oder Spin-Transfer-Drehmoment-MRAM (Spin Transfer Torque MRAM, STTM-RAM), eine Spintronik-Magnetübergangsspeicher-basierte Vorrichtung, eine Magnettunnelübergang (Magnetic Tunneling Junction, MTJ)-basierte Vorrichtung, eine Domänenwand- (Domain Wall, DW) und Spin-Bahn-Transfer (Spin Orbit Transfer, SOT)-basierte Vorrichtung, eine Thyristor-basierte Speichervorrichtung oder eine Kombination beliebiger der obigen oder andere Speicherarten.
  • Bei Niedrigleistungsimplementierungen kann der Speicher 1358 ein On-Die-Speicher oder Register sein, die mit dem Prozessor 1352 verbunden sind. Bei einigen Beispielen kann der Datenspeicher 1358 jedoch unter Verwendung eines Mikrofestplattenlaufwerks (HDD) implementiert sein. Ferner kann eine beliebige Anzahl neuer Technologien für den Datenspeicher 1358 zusätzlich zu oder anstelle der beschriebenen Technologien verwendet werden, wie unter anderem einen Widerstandsänderungsspeicher, einen Phasenwechselspeicher, einen holographischen Speicher oder einen chemischen Speicher.
  • Die Komponenten können über die Zwischenverbindung 1356 kommunizieren. Die Zwischenverbindung 1356 kann eine beliebige Anzahl von Technologien beinhalten, einschließlich der Industry Standard Architecture (ISA), der erweiterten ISA (EISA), der Peripheral Component Interconnect (PCI), der Peripheral Component Interconnect Extended (PCIx), der PCIexpress (PCIe) oder eine beliebige Anzahl anderer Technologien. Die Zwischenverbindung 1356 kann ein herstellereigener Bus sein, der zum Beispiel in einem SoCbasierten System verwendet wird. Andere Bussysteme können enthalten sein, wie etwa unter anderem eine Inter-Integrated-Circuit- (I2C-)Schnittstelle, eine Serial Peripheral Interface- (SPI-)Schnittstelle, Punkt-zu-Punkt-Schnittstellen und ein Strombus.
  • Die Zwischenverbindung 1356 kann den Prozessor 1352 mit einem Sendeempfänger 1366 zur Kommunikation mit den verbundenen Edge-Vorrichtungen 1362 koppeln. Der Transceiver 1366 kann eine beliebige Anzahl von Frequenzen und Protokollen verwenden, wie etwa unter anderem Übertragungen mit 2,4 Gigahertz (GHz) unter dem IEEE 802.15.4-Standard unter Verwendung des Bluetooth®-Niederenergie- (BLE-)Standards, wie durch die Bluetooth® Special Interest Group definiert wird, oder des ZigBee®-Standards. Eine beliebige Anzahl von Funkgeräten, die für ein bestimmtes Drahtloskommunikationsprotokoll konfiguriert sind, kann für die Verbindungen mit den angeschlossenen Edge-Vorrichtungen 1362 verwendet werden. Zum Beispiel kann eine drahtlose lokale Netzwerkeinheit (WLAN-Einheit) verwendet werden, um Wi-Fi®-Kommunikationen gemäß dem 802.11 -Standard des Institute of Electrical and Electronic Engineers (IEEE) zu implementieren. Außerdem können drahtlose Funkfernnetzkommunikationen, z.B. in Übereinstimmung mit einem zellularen oder anderen drahtlosen Funkfernnetzwerkprotokoll über eine drahtloses Fernnetzwerkeinheit (WWAN-Einheit) stattfinden.
  • Der drahtlose Netzwerktransceiver 1366 (oder mehrere Sendeempfänger) kann unter Verwendung mehrerer Standards oder Funkgeräte für die Kommunikation mit anderer Reichweite kommunizieren. Beispielsweise kann der Edge-Rechenknoten 1350 mit nahen Vorrichtungen, z. B. innerhalb von etwa 10 Metern, unter Verwendung eines lokalen Sendeempfängers basierend auf Bluetooth Low Energy (BLE) oder einem anderen Niedrigleistungsfunkgerät kommunizieren, um Leistung zu sparen. Entferntere verbundene Edge-Vorrichtungen 1362, z. B. innerhalb von etwa 50 Metern, können über ZigBee® oder andere Funkgeräte mit mittlerer Leistung erreicht werden. Beide Kommunikationstechniken können über ein einziges Funkgerät mit unterschiedlichen Leistungspegeln stattfinden oder können über separate Sendeempfänger stattfinden, zum Beispiel einen lokalen Sendeempfänger, der BLE verwendet, und einen separaten vermaschten Sendeempfänger, der ZigBee® verwendet.
  • Ein drahtloser Netzwerktransceiver 1366 (z. B. ein Funktransceiver) kann vorhanden sein, um mit Vorrichtungen oder Diensten in einer Cloud (z. B. einer Edge-Cloud 1395) über Orts- oder Weitverkehrsnetzprotokolle zu kommunizieren. Der drahtlose Netzwerktransceiver 1366 kann ein LPWA-Sendeempfänger (LPWA: Low Power Wide Area, Weitverkehr mit niedriger Leistung) sein, der unter anderem den Standards IEEE 802.15.4 oder IEEE 802.15.4g entspricht. Der Edge-Rechenknoten 1350 kann über einen weiten Bereich unter Verwendung von LoRaWAN™ (Long Range Wide Area Network) kommunizieren, das von Semtech und der LoRa Alliance entwickelt wurde. Die hierin beschriebenen Techniken sind nicht auf diese Technologien beschränkt, sondern können mit einer beliebigen Anzahl von anderen Cloud-Sendeempfängern verwendet werden, die Kommunikationen mit großer Reichweite, niedriger Bandbreite implementieren, wie etwa Sigfox, und anderen Technologien. Ferner können andere Kommunikationstechniken verwendet werden, wie etwa Zeitschlitz-Kanalspringen, das in der IEEE 802.15.4e-Spezifikation beschrieben ist.
  • Eine beliebige Anzahl anderer Funkkommunikationen und Protokolle kann zusätzlich zu den Systemen, die für den drahtlosen Netzwerktransceiver 1366 erwähnt werden, verwendet werden, wie hier beschrieben. Der Sendeempfänger 1366 kann zum Beispiel einen Mobilfunk-Sendeempfänger beinhalten, der Frequenzspreiz (SPA/SAS)-Kommunikationen zum Implementieren von Hochgeschwindigkeitskommunikationen verwendet. Ferner kann eine beliebige Anzahl anderer Protokolle verwendet werden, wie etwa Wi-Fi®-Netzwerke für Mittelgeschwindigkeitskommunikationen und Bereitstellung von Netzwerkkommunikationen. Der Transceiver 1366 kann Funkgeräte umfassen, die mit einer beliebigen Anzahl von 3GPP (Third Generation Partnership Project)-Spezifikationen kompatibel sind, wie etwa Long Term Evolution (LTE) und Kommunikationssysteme der 5. Generation (5G), die am Ende der vorliegenden Offenbarung ausführlicher erörtert werden. Eine Netzwerkschnittstellensteuereinheit (NIC) 1368 kann enthalten sein, um eine drahtgebundene Kommunikation zu Knoten der Edge-Cloud 1395 oder zu anderen Vorrichtungen bereitzustellen, wie etwa den angeschlossenen Edge-Vorrichtungen 1362 (die z. B. in einem Mesh-Netzwerk funktionieren). Die drahtgebundene Kommunikation kann eine Ethernet-Verbindung bereitstellen oder kann auf anderen Typen von Netzwerken, wie etwa unter vielen anderen Controller Area Network (CAN), Local Interconnect Network (LIN), DeviceNet, ControlNet, Data Highway+, PROFIBUS oder PROFINET basieren. Eine zusätzliche NIC 1368 kann enthalten sein, um das Verbinden mit einem zweiten Netzwerk zu ermöglichen, wobei zum Beispiel eine erste NIC 1368 Kommunikationen mit der Cloud über Ethernet bereitstellt und eine zweite NIC 1368 Kommunikationen mit anderen Vorrichtungen über einen anderen Netzwerktyp bereitstellt.
  • Angesichts der Vielfalt von Typen anwendbarer Kommunikationen von der Vorrichtung zu einer anderen Komponente oder einem anderen Netzwerk kann eine anwendbare Kommunikationsschaltung, die durch die Vorrichtung verwendet wird, eine oder mehrere beliebige der Komponenten 1364, 1366, 1368 oder 1370 aufweisen oder durch diese ausgeführt sein. Dementsprechend können in verschiedenen Beispielen anwendbare Mittel zum Kommunizieren (z. B. Empfangen, Übertragen etc.) durch eine solche Kommunikationsschaltung ausgeführt sein.
  • Der Edge-Rechenknoten 1350 kann eine Beschleunigungsschaltung 1364 aufweisen oder damit gekoppelt sein, die durch einen oder mehrere KI-Beschleuniger (künstliche Intelligenz), einen neuronalen Rechenstick, neuromorphe Hardware, ein FPGA, eine Anordnung von GPUs, eine Anordnung aus xPUs/DPUs/IPU/NPUs, ein oder mehrere SoCs, eine oder mehrere CPUs, einen oder mehrere digitale(n) Signalprozessor(en), dedizierte ASICs oder andere Formen spezialisierter Prozessoren oder Schaltungsanordnungen, die zum Erfüllen einer oder mehrerer spezialisierter Aufgabe(n) ausgelegt sind, ausgeführt sein kann. Diese Aufgaben können KI-Verarbeitung (einschließlich Maschinenlern-, Trainings-, Inferenz- und Klassifizierungsoperationen), visuelle Datenverarbeitung, Netzwerkdatenverarbeitung, Objektdetektion, Regelanalyse oder dergleichen beinhalten. Zu diesen Aufgaben können auch die an anderer Stelle in diesem Dokument erörterten spezifischen Edge-Computing-Aufgaben für Dienstverwaltungs- und Dienstoperationen gehören.
  • Die Zwischenverbindung 1356 kann den Prozessor 1352 mit einem Sensor-Hub oder einer externen Schnittstelle 1370 koppeln, die zum Verbinden zusätzlicher Vorrichtungen oder Subsysteme verwendet wird. Die Vorrichtungen können Sensoren 1372, wie etwa Beschleunigungsmesser, Füllstandssensoren, Durchflusssensoren, optische Lichtsensoren, Kamerasensoren, Temperatursensoren, Sensoren eines globalen Navigationssystems (z. B. GPS), Drucksensoren, barometrische Drucksensoren und dergleichen beinhalten. Der Hub oder die Schnittstelle 1370 kann ferner verwendet werden, um den Edge-Rechenknoten 1350 mit Betätigungselementen 1374, wie etwa Leistungsschaltern, Ventilbetätigern, einem akustischen Tongenerator, einer visuellen Warnvorrichtung und dergleichen, zu verbinden.
  • In einigen optionalen Beispielen können verschiedene Eingabe/Ausgabe (E/A)-Vorrichtungen innerhalb des Edge-Rechenknotens 1350 vorhanden oder mit diesem verbunden sein. Beispielsweise kann eine Anzeige oder eine andere Ausgabevorrichtung 1384 vorhanden sein, um Informationen, wie etwa Sensorablesungen oder Betätigerposition, zu zeigen. Eine Eingabevorrichtung 1386, wie etwa ein Berührungsbildschirm oder eine Tastatur, kann vorhanden sein, um eine Eingabe anzunehmen. Eine Ausgabevorrichtung 1384 kann eine beliebige Anzahl von Formen einer Audio- oder visuellen Anzeige beinhalten, einschließlich einfacher visueller Ausgaben, wie etwa binärer Statusindikatoren (z. B. Leuchtdioden (LEDs)) und visueller Mehrzeichenausgaben, oder komplexere Ausgaben, wie etwa Anzeigebildschirme (z. B. Flüssigkristallanzeige(LCD)-Bildschirme), wobei die Ausgabe von Zeichen, Grafiken, Multimediaobjekten und dergleichen aus dem Betrieb des Edge-Rechenknotens 1350 generiert oder erzeugt wird. Eine Anzeige- oder Konsolenhardware kann im Kontext des vorliegenden Systems verwendet werden, um eine Ausgabe bereitzustellen und eine Eingabe eines Edge-Rechensystems zu empfangen; Komponenten oder Dienste eines Edge-Rechensystems zu verwalten; einen Zustand einer Edge-Rechenkomponente oder eines Edge-Dienstes zu identifizieren; oder eine beliebige andere Anzahl von Verwaltungs- oder Administrationsfunktionen oder Dienstanwendungsfällen durchzuführen.
  • Eine Batterie 1376 kann den Edge-Rechenknoten 1350 mit Strom versorgen, obwohl in Beispielen, in denen der Edge-Rechenknoten 1350 an einem festen Ort montiert ist, dieser eine Stromversorgung aufweisen kann, die mit einem Stromnetz gekoppelt ist, oder die Batterie als Backup oder für temporäre Fähigkeiten verwendet werden kann. Die Batterie 1376 kann eine Lithiumionenbatterie oder eine Metall-Luft-Batterie, wie etwa eine Zink-Luft-Batterie, eine Aluminium-Luft-Batterie, eine Lithium-Luft-Batterie und dergleichen, sein.
  • Eine Batterieüberwachungs-/Ladevorrichtung 1378 kann im Edge-Rechenknoten 1350 vorhanden sein, um den Ladezustand (SoCh, State of Charge) der Batterie 1376, falls vorhanden, zu verfolgen. Die Batterieüberwachungs-/Ladevorrichtung 1378 kann verwendet werden, um andere Parameter der Batterie 1376 zu überwachen, um Ausfallvorhersagen bereitzustellen, wie etwa den Gesundheitszustand (SoH, State of Health) und den Funktionszustand (SoF, State of Function) der Batterie 1376. Die Batterieüberwachungs-/Ladevorrichtung 1378 kann eine integrierte Schaltung zur Batterieüberwachung aufweisen, wie etwa LTC4020 oder LTC2990 von Linear Technologies, ADT7488A von ON Semiconductor in Phoenix Arizona oder IC der UCD90xxx-Familie von Texas Instruments in Dallas, TX. Die Batterieüberwachungs-/Ladevorrichtung 1378 kann die Informationen über die Batterie 1376 über die Zwischenverbindung 1356 an den Prozessor 1352 übermitteln. Die Batterieüberwachungs-/Ladevorrichtung 1378 kann auch einen Analog-Digital-Wandler (ADC) aufweisen, der es dem Prozessor 1352 ermöglicht, die Spannung der Batterie 1376 oder den Stromfluss von der Batterie 1376 direkt zu überwachen. Die Batterieparameter können verwendet werden, um Aktionen zu ermitteln, die der Edge-Rechenknoten 1350 durchführen kann, wie etwa Übertragungsfrequenz, vermaschten Netzbetrieb, Abtastfrequenz und dergleichen.
  • Ein Leistungsblock 1380 oder eine andere Leistungsversorgung, die mit einem Stromnetz gekoppelt ist, kann mit der Batterieüberwachungs-/Ladevorrichtung 1378 gekoppelt sein, um die Batterie 1376 zu laden. In einigen Beispielen kann der Leistungsblock 1380 durch einen Drahtlosleistungsempfänger ersetzt werden, um die Leistung drahtlos, zum Beispiel über eine Schleifenantenne im Edge-Rechenknoten 1350 zu beziehen. Eine drahtlose Batterieladeschaltung, wie etwa unter anderem ein LTC4020-Chip von Linear Technologies in Milpitas, Kalifornien, kann in der Batterieüberwachungsvorrichtung/Ladevorrichtung 1378 enthalten sein. Die spezifischen Ladeschaltungen können basierend auf der Größe der Batterie 1376 und somit dem erforderlichen Strom ausgewählt werden. Das Laden kann unter anderem unter Verwendung des von der Airfuel Alliance veröffentlichten Standards Airfuel, des vom Wireless Power Consortium veröffentlichten Drahtlosladestandards Qi oder des von der Alliance for Wireless Power veröffentlichten Ladestandards Rezence durchgeführt werden.
  • Der Speicher 1358 kann Anweisungen 1382 in Form von Software-, Firmware- oder Hardwarebefehlen aufweisen, um die hierin beschriebenen Techniken zu implementieren. Obwohl solche Anweisungen 1382 als Codeblöcke gezeigt sind, die im Arbeitsspeicher 1354 und Datenspeicher 1358 enthalten sind, versteht es sich, dass beliebige der Codeblöcke durch festverdrahtete Schaltungen ersetzt werden können, die zum Beispiel in einer anwendungsspezifischen integrierten Schaltung (ASIC, Application Specific Integrated Circuit) eingebaut sind.
  • In einem Beispiel können die Anweisungen 1382, die über den Arbeitsspeicher 1354, den Datenspeicher 1358 oder den Prozessor 1352 bereitgestellt werden, als ein nichtflüchtiges maschinenlesbares Medium 1360 ausgeführt sein, das Code aufweist, um den Prozessor 1352 anzuweisen, elektronische Operationen im Edge-Rechenknoten 1350 durchzuführen. Der Prozessor 1352 kann über die Zwischenverbindung 1356 auf das nichtflüchtige maschinenlesbare Medium 1360 zugreifen. Beispielsweise kann das nichtflüchtige maschinenlesbare Medium 1360 durch Vorrichtungen ausgebildet sein, die für die Speicherung 1358 beschrieben sind, oder kann spezifische Speicherungseinheiten, wie etwa optische Platten, Flash-Laufwerke oder eine beliebige Anzahl anderer Hardwarevorrichtungen, beinhalten. Das nicht transitorische, maschinenlesbare Medium 1360 kann Anweisungen beinhalten, um den Prozessor 1352 anzuweisen, eine spezifische Sequenz oder einen spezifischen Fluss von Handlungen durchzuführen, wie zum Beispiel in Bezug auf das eine oder die mehreren oben gezeigten Flussdiagramme und Blockdiagramme von Operationen und Funktionalität beschrieben. Wie hier verwendet, sind die Begriffe „maschinenlesbares Medium“ und „computerlesbares Medium“ austauschbar.
    Auch in einem spezifischen Beispiel können die Anweisungen 1382 auf dem Prozessor 1352 (separat oder in Kombination mit den Anweisungen 1382 des maschinenlesbaren Mediums 1360) die Ausführung oder Operation einer vertrauenswürdigen Ausführungsumgebung (TEE) 1390 konfigurieren. In einem Beispiel arbeitet die TEE 1390 als ein geschützter Bereich, der für den Prozessor 1352 zur sicheren Ausführung von Anweisungen und zum sicheren Zugriff auf Daten zugänglich ist. Verschiedene Implementierungen der TEE 1390 und eines begleitenden sicheren Bereichs im Prozessor 1352 oder im Speicher 1354 können beispielsweise durch Verwendung von Intel® Software Guard Extensions (SGX) oder ARM® TrustZone® Hardwaresicherheitserweiterungen, Intel® Management Engine (ME) oder Intel® Converged Security Manageability Engine (CSME) bereitgestellt werden. Andere Aspekte von Sicherheitshärtung, Hardware-Vertrauensankern und vertrauenswürdigen oder geschützten Operationen können in der Vorrichtung 1350 durch die TEE 1390 und den Prozessor 1352 implementiert sein.
  • 14 veranschaulicht eine beispielhafte Softwareverteilungsplattform 1405, um Software, wie etwa die beispielhaften computerlesbaren Anweisungen 1482 von 14, an eine oder mehrere Vorrichtungen zu verteilen, wie etwa die beispielhafte(n) Prozessorplattform(en) 1400 oder verbundene Edge-Vorrichtungen. Die beispielhafte Softwareverteilungsplattform 1405 kann durch eine(n) beliebige(n) Computerserver, Dateneinrichtung, Cloud-Dienst etc. implementiert werden, der/die in der Lage ist, Software zu speichern und an andere Rechenvorrichtungen (z. B. Dritte oder verbundene Edge-Vorrichtungen) zu übertragen. Beispielhafte verbundene Edge-Vorrichtungen können Kunden, Clients, Verwaltungsvorrichtungen (z. B. Server), Dritte (z. B. Kunden einer Entität, die die Softwareverteilungsplattform 1405 besitzt oder betreibt) sein. Beispielhafte verbundene Edge-Vorrichtungen können in kommerziellen oder Heimautomatisierungsumgebungen betrieben werden. In manchen Beispielen ist eine Drittpartei ein Entwickler, ein Verkäufer oder ein Lizenzgeber von Software, wie etwa der beispielhaften computerlesbaren Anweisungen 1482 von 14. Die Drittparteien können Verbraucher, Benutzer, Einzelhändler, OEMs etc. sein, die die Software zwecks eigener Verwendung, Wiederverkauf oder Unterlizenzierung erwerben oder lizenzieren. In manchen Beispielen bewirkt verteilte Software die Anzeige einer oder mehrerer Benutzerschnittstellen (UI, User Interface) oder grafischer Benutzerschnittstellen (GUI, Graphical User Interface), um die ein oder mehreren Vorrichtungen (z. B. verbundene Edge-Vorrichtungen) geografisch oder logisch voneinander getrennt zu identifizieren (z. B. physisch getrennte IoT-Vorrichtungen, die zuständig sind für die Steuerung einer Wasserverteilungssteuerung (z. B. Pumpen), Steuerung einer Stromverteilung (z. B. Relais) etc.).
  • In dem veranschaulichten Beispiel von 14 weist die Softwareverteilungsplattform 1405 einen oder mehrere Server und eine oder mehrere Speicherungsvorrichtungen auf. Die Speicherungsvorrichtungen speichern die computerlesbaren Anweisungen 1482, die den beispielhaften computerlesbaren Anweisungen entsprechen können, die in den Figuren veranschaulicht und hierin beschrieben werden. Der eine oder die mehreren Server der beispielhaften Softwareverteilungsplattform 1405 stehen in Kommunikation mit einem Netzwerk 1410, das dem Internet oder einem der hierin beschriebenen beispielhaften Netzwerke entsprechen kann. In manchen Beispielen reagieren der eine oder die mehreren Server auf Anforderungen, die Software als Teil einer kommerziellen Transaktion an eine anfordernde Partei zu übertragen. Die Zahlung für die Lieferung, den Verkauf oder die Lizenz der Software kann durch den einen oder die mehreren Server der Softwareverteilungsplattform oder über eine Drittpartei-Zahlungsentität abgewickelt werden. Die Server ermöglichen Käufern oder Lizenzgebern, die computerlesbaren Anweisungen 1482 von der Softwareverteilungsplattform 1405 herunterzuladen. Beispielsweise kann die Software, die den hierin beschriebenen beispielhaften computerlesbaren Anweisungen entsprechen kann, auf die beispielhafte(n) Prozessorplattform(en) 1400 (z. B. beispielhafte verbundene Edge-Vorrichtungen) heruntergeladen werden, die die computerlesbaren Anweisungen 1482 ausführen sollen, um das Verfahren zu implementieren. In manchen Beispielen sind ein oder mehrere Server der Softwareverteilungsplattform 1405 kommunikativ mit einer oder mehreren Sicherheitsdomänen oder Sicherheitsvorrichtungen verbunden, durch die Anforderungen und Übertragungen der beispielhaften computerlesbaren Anweisungen 1482 laufen müssen. In manchen Beispielen bieten ein oder mehrere Server der Softwareverteilungsplattform 1405 periodisch Aktualisierungen an, übertragen oder erzwingen diese an die Software (z. B. die beispielhaften computerlesbaren Anweisungen 1482 von 14), um sicherzustellen, dass Verbesserungen, Patches, Aktualisierungen etc. verteilt und auf die Software an den Endbenutzervorrichtungen angewandt werden.
  • In dem veranschaulichten Beispiel von 14 sind die computerlesbaren Anweisungen 1482 auf Speicherungsvorrichtungen der Softwareverteilungsplattform 1405 in einem speziellen Format gespeichert. Ein Format computerlesbarer Anweisungen beinhaltet unter anderem eine spezielle Codesprache (z. B. Java, JavaScript, Python, C, C#, SQL, HTML etc.) oder einen speziellen Codezustand (z. B. unkompilierter Code (z. B. ASCII), interpretierter Code, verknüpfter Code, ausführbarer Code (z. B. ein Binärwert) etc.). In manchen Beispielen liegen die computerlesbaren Anweisungen 1482, die in der Softwareverteilungsplattform 1405 gespeichert sind, in einem ersten Format vor, wenn sie an die beispielhafte(n) Prozessorplattform(en) 1400 übertragen werden. In einigen Beispielen ist das erste Format eine ausführbare Binärdatei, in der bestimmte Typen der ein oder mehreren Prozessorplattformen 1400 ausgeführt werden können. In einigen Beispielen ist das erste Format jedoch unkompilierter Code, der eine oder mehrere Vorbereitungsaufgaben erfordert, um das erste Format in ein zweites Format umzuwandeln, um die Ausführung auf der/den beispielhaften Prozessorplattform(en) 1400 zu ermöglichen. Beispielsweise müssen die empfangende(n) Prozessorplattform(en) 1400 möglicherweise die computerlesbaren Anweisungen 1482 im ersten Format kompilieren, um ausführbaren Code in einem zweiten Format zu erzeugen, der auf der/den Prozessorplattform(en) 1400 ausgeführt werden kann. In noch anderen Beispielen ist das erste Format interpretierter Code, der beim Erreichen der Prozessorplattform(en) 1400 durch ein Übersetzungsprogramm interpretiert wird, um die Ausführung von Anweisungen zu ermöglichen.
  • 15 veranschaulicht ein Flussdiagramm eines Beispiels für ein Verfahren 1500 für auf Netzwerkfluss basierende Hardwarezuweisung gemäß einer Ausführungsform. Die Operationen des Verfahrens 1500 werden durch Rechenhardware durchgeführt, wie etwa jene, die vor- oder nachstehend beschrieben ist (z. B. Verarbeitungsschaltung).
  • Bei Operation 1505 wird eine Arbeitslast zur Ausführung erhalten. Hier schließt die Arbeitslast einen Fluss ein. Der Fluss schließt eine Verarbeitungskomponente und eine Netzwerkkomponente ein.
  • Bei Operation 1510 wird die Arbeitslast ausgeführt. Während der Ausführung der Arbeitslast werden die Operationen 1515 und 1520 wiederholt, bis die Arbeitslast endet.
  • Bei Operation 1515 wird der Fluss profiliert, um eine Netzwerkmetrik für die Netzwerkkomponente und eine Verarbeitungsmetrik für die Verarbeitungskomponente zu bestimmen. In einem Beispiel wird das Profilieren in einem vordefinierten Zeitintervall durchgeführt. In einem Beispiel wird das Profilieren als Reaktion auf ein Ereignis durchgeführt. In einem Beispiel wird das Profilieren oder bei Empfang einer Abfrage bezüglich des Flusses oder der Arbeitslast durchgeführt.
  • In einem Beispiel schließt das Profilieren das Kennzeichnen einer Kommunikation des Flusses unter Verwendung des Netzwerkdienstes mit einer Kennung ein. Die Kennung kann dann dem Fluss zugeordnet werden. In einem Beispiel ist die Kennung ein Tupel, das eine Quelladresse, einen Quellport, einen Zielport oder einen Kommunikationstyp beinhaltet.
  • In einem Beispiel aktualisiert das Profilieren eine Schnittstellenprofil- und Rangfolge-Datenbank. In einem Beispiel ist ein Eintrag in der Schnittstellenprofil- und Rangfolge-Datenbank dreißig Bits lang. In einem Beispiel werden Schnittstellen in der Schnittstellenprofil- und Rangfolge-Datenbank nach Fluss eingestuft. Hier schließt das Zuweisen des Netzwerkdienstes und des Verarbeitungsdienstes zu dem Fluss bei einer nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik das Auswählen einer Schnittstelle mit einem höchsten Rang für den Fluss ein. In einem Beispiel werden die Schnittstellen basierend auf einer Kombination von Flüssen und einem für den Fluss ausgewählten Verarbeitungsdienst eingestuft.
  • Bei Operation 1520 werden dem Fluss bei einer nächsten Ausführung ein Netzwerkdienst und ein Verarbeitungsdienst basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik zugewiesen. In einem Beispiel ist der Netzwerkdienst eine Netzwerkschnittstellenkarte (NIC). In einem Beispiel ist der Netzwerkdienst ein Kanal oder ein virtueller Kanal. In einem Beispiel sind der Netzwerkdienst oder der Verarbeitungsdienst Hardwarepartitionen.
  • In einem Beispiel schließt das Zuweisen des Netzwerkdienstes basierend auf der Netzwerkmetrik das Auswählen eines Netzwerkdienstes ein, der eine minimale Netzwerkmetrik einschließt, um die Netzwerkkomponente des Flusses zu erfüllen. In einem Beispiel ist die Netzwerkmetrik die Bandbreite oder Latenz.
  • In einem Beispiel schließt das Zuweisen des Netzwerkdienstes und des Verarbeitungsdienstes das Auswählen eines Netzwerkdienstes ein, der eine minimale Netzwerkmetrik einschließt, um eine maximale Ausgabe in Bezug auf die Netzwerkmetrik des Verarbeitungsdienstes zu erfüllen.
  • 16 veranschaulicht ein Blockdiagramm einer beispielhaften Maschine 1600, auf der eine beliebige oder mehrere der hierin besprochenen Techniken (z. B. Methodologien) durchgeführt werden können. Beispiele, wie hierin beschrieben, können Logik oder eine Reihe von Komponenten oder Mechanismen in der Maschine 1600 beinhalten oder durch diese funktionieren. Eine Schaltungsanordnung (z. B. Verarbeitungsschaltung) ist eine Sammlung von Schaltungen, die in greifbaren Entitäten der Maschine 1600 implementiert sind, die Hardware (z. B. einfache Schaltungen, Gatter, Logik etc.) beinhalten. Die Zugehörigkeit zu einer Schaltungsanordnung kann im zeitlichen Verlauf flexibel sein. Schaltungsanordnungen beinhalten Elemente, die im Betrieb alleine oder in Kombination spezifizierte Operation durchführen können. In einem Beispiel kann Hardware der Schaltungsanordnung unveränderbar gestaltet sein, um eine spezifische Operation auszuführen (z. B. fest verdrahtet). In einem Beispiel kann die Hardware der Schaltungsanordnung variabel verbundene physische Komponenten (z. B. Ausführungseinheiten, Transistoren, einfache Schaltungen etc.) beinhalten, einschließlich eines maschinenlesbaren Mediums, das physisch modifiziert wird (z. B. magnetische, elektrische, bewegbare Platzierung von Partikeln mit invarianter Masse etc.), um Anweisungen der spezifischen Operation zu codieren. Durch das Verbinden der physischen Komponenten werden die zugrundeliegenden elektrischen Eigenschaften eines Hardwarebestandteils geändert, zum Beispiel von einem Isolator zu einem Leiter oder umgekehrt. Die Anweisungen ermöglichen eingebetteter Hardware (z. B. den Ausführungseinheiten oder einem Lademechanismus), Mitglieder der Schaltungsanordnung in Hardware über die variablen Verbindungen zu erzeugen, um im Betrieb Abschnitte der spezifischen Operation auszuführen. Dementsprechend sind die maschinenlesbaren Medienelemente in einem Beispiel Teil der Schaltungsanordnung oder sind kommunikationsfähig mit den anderen Komponenten der Schaltungsanordnung gekoppelt, wenn sich die Vorrichtung in Betrieb befindet. In einem Beispiel können beliebige der physischen Komponenten in mehr als einem Mitglied mehr als einer Schaltungsanordnung verwendet werden. Im Betrieb können zum Beispiel Ausführungseinheiten in einer ersten Schaltung einer ersten Schaltungsanordnung zu einem Zeitpunkt verwendet und durch eine zweite Schaltung in der ersten Schaltungsanordnung oder durch eine dritte Schaltung in einer zweiten Schaltungsanordnung zu einer anderen Zeit wiederverwendet werden. Zusätzliche Beispiele für diese Komponenten bezüglich der Maschine 1600 folgen.
  • In alternativen Ausführungsformen kann die Maschine 1600 als eine eigenständige Vorrichtung arbeiten oder mit anderen Maschinen verbunden (z. B. vernetzt) sein. Bei einem vernetzten Einsatz kann die Maschine 1600 in der Eigenschaft einer Servermaschine, einer Client-Maschine oder beider in Server-Client-Netzwerkumgebungen arbeiten. In einem Beispiel kann die Maschine 1600 als Peer-Maschine in Peer-to-Peer (P2P) (oder einer anderen verteilten) Netzwerkumgebung fungieren. Die Maschine 1600 kann ein Personal Computer (PC), ein Tablet-PC, eine Set-Top-Box (STB), ein Personal Digital Assistant (PDA), ein Mobiltelefon, ein Web-Gerät, ein Netzwerkrouter, ein Switch oder eine Bridge oder eine beliebige Maschine sein, die zum Ausführen von Anweisungen (sequenziell oder anders), die Handlungen spezifizieren, die durch diese Maschine durchgeführt werden sollen, in der Lage ist. Obwohl nur eine einzige Maschine veranschaulicht ist, ist der Begriff „Maschine“ ferner auch so zu verstehen, dass er eine beliebige Sammlung von Maschinen beinhaltet, die einzeln oder gemeinsam einen Satz (oder mehrere Sätze) von Anweisungen ausführen, um eine oder mehrere der hierin besprochenen Methodologien durchzuführen, wie etwa Cloud-Computing, Software as a Service (SaaS), andere Computer-Clusterkonfigurationen.
  • Die Maschine (z. B. Computersystem) 1600 kann einen Hardwareprozessor 1602 (z. B. eine Zentralverarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), einen Hardwareprozessorkern oder eine beliebige Kombination davon), einen Hauptspeicher 1604, einen statischen Speicher (z. B. Speicher oder Speicherung für Firmware, Mikrocode, ein Basic Input/Output System (BIOS), eine Unified Extensible Firmware Interface (UEFI) etc.) 1606 und einen Massenspeicher 1608 (z. B. Festplatten, Bandlaufwerke, Flash-Speicher oder andere Blockvorrichtungen) beinhalten, von denen einige oder alle über eine Verbindung (z. B. Bus) 1630 miteinander kommunizieren können. Die Maschine 1600 kann ferner eine Anzeigeeinheit 1610, eine alphanumerische Eingabevorrichtung 1612 (z. B. eine Tastatur) und eine Benutzeroberflächen (UI)-Navigationsvorrichtung 1614 (z. B. eine Maus) beinhalten. In einem Beispiel können die Anzeigeeinheit 1610, die Eingabevorrichtung 1612 und die UI-Navigationsvorrichtung 1614 eine Touchscreen-Anzeige sein. Die Maschine 1600 kann zusätzlich eine Speicherungsvorrichtung (z. B. eine Laufwerkeinheit) 1608, eine Signalerzeugungsvorrichtung 1618 (z. B. einen Lautsprecher), eine Netzwerkschnittstellenvorrichtung 1620 und einen oder mehrere Sensoren 1616, wie etwa einen Sensor eines globalen Positionsbestimmungssystems (Global Positioning System, GPS), einen Kompass, einen Beschleunigungsmesser oder einen anderen Sensor, beinhalten. Die Maschine 1600 kann eine Ausgangssteuerung 1628, wie etwa eine serielle (z. B. Universal Serial Bus (USB), eine parallele oder eine andere drahtgebundene oder drahtlose (z. B. Infrarot (IR), Nahfeldkommunikation (NFC) etc.) Verbindung beinhalten, um mit einer oder mehreren Peripherievorrichtungen zu kommunizieren oder sie zu steuern (z. B. einen Drucker, einen Kartenleser etc.).
  • Register des Prozessors 1602, des Hauptspeichers 1604, des statischen Speichers 1606 oder des Massenspeichers 1608 können ein maschinenlesbares Medium 1622 sein oder beinhalten, auf dem ein oder mehrere Sätze von Datenstrukturen oder Anweisungen 1624 (z. B. Software) gespeichert sind, die eine beliebige oder mehrere der hierin beschriebenen Techniken oder Funktionen verkörpern oder von diesen genutzt werden. Die Anweisungen 1624 können sich auch vollständig oder zumindest teilweise innerhalb beliebiger Register des Prozessors 1602, des Hauptspeichers 1604, des statischen Speichers 1606 oder des Massenspeichers 1608 während ihrer Ausführung durch die Maschine 1600 befinden. In einem Beispiel kann einer von oder eine beliebige Kombination des Hardwareprozessors 1602, des Hauptspeichers 1604, des statischen Speichers 1606 oder des Massenspeichers 1608 die maschinenlesbaren Medien 1622 bilden. Zwar wird das maschinenlesbare Medium 1622 als ein einzelnes Medium dargestellt, jedoch kann der Ausdruck „maschinenlesbares Medium“ ein einzelnes Medium ebenso wie mehrere Medien beinhalten (z. B. eine zentrale oder verteilte Datenbank und/oder zugehörige Caches und Server), die dafür ausgelegt sind, die ein oder mehreren Anweisungen 1624 zu speichern.
  • Der Begriff „maschinenlesbares Medium“ kann ein beliebiges Medium beinhalten, das zum Speichern, Codieren oder Transportieren von Anweisungen zur Ausführung durch die Maschine 1600 imstande ist und das die Maschine 1600 veranlasst, eine oder mehrere beliebige der Techniken der vorliegenden Offenbarung durchzuführen, oder das zum Speichern, Codieren und Transportieren von Datenstrukturen imstande ist, die durch solche Anweisungen verwendet werden oder damit verbunden sind. Nicht beschränkende Beispiele für maschinenlesbare Medien können Festkörperspeicher, optische Medien, magnetische Medien und Signale (z. B. Funkfrequenzsignale, andere photonenbasierte Signale, Schallsignale etc.) beinhalten. In einem Beispiel umfasst ein nichtflüchtiges maschinenlesbares Medium ein maschinenlesbares Medium mit mehreren Partikeln mit invarianter Masse (z. B. Restmasse), und sie sind somit Materiezusammensetzungen. Dementsprechend sind nichtflüchtige maschinenlesbare Medien maschinenlesbare Medien, die keine sich ausbreitenden transitorischen Signale beinhalten. Spezifische Beispiele für nichtflüchtige maschinenlesbare Medien können beinhalten: nichtflüchtigen Speicher, wie etwa Halbleiterspeichervorrichtungen (z. B. elektrisch programmierbarer Nur-Lese-Speicher (EPROM), elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM)) und Flash-Speichervorrichtungen; Magnetplatten, wie etwa interne Festplatten und austauschbare Platten; magnetooptische Platten und CD-ROM- und DVD-ROM-Disks.
  • In einem Beispiel können auf dem maschinenlesbaren Medium 1622 gespeicherte oder anderweitig bereitgestellte Informationen die Anweisungen 1624 darstellen, wie etwa die Anweisungen 1624 selbst oder ein Format, aus dem die Anweisungen 1624 abgeleitet werden können. Dieses Format, aus dem die Anweisungen 1624 abgeleitet werden können, kann Quellcode, codierte Anweisungen (z. B. in komprimierter oder verschlüsselter Form), verpackte Anweisungen (z. B. in mehrere Pakete aufgeteilt) oder dergleichen beinhalten. Die die Anweisungen 1624 darstellenden Informationen im maschinenlesbaren Medium 1622 können durch eine Verarbeitungsschaltung in die Anweisungen zum Implementieren beliebiger der hierin besprochenen Operationen verarbeitet werden. Das Ableiten der Anweisungen 1624 aus den Informationen (z. B. Verarbeitung durch die Verarbeitungsschaltung) kann zum Beispiel beinhalten: Kompilieren (z. B. aus Quellcode, Objektcode etc.), Interpretieren, Laden, Organisieren (z. B. dynamisches oder statisches Verknüpfen), Codieren, Decodieren, Verschlüsseln, Entschlüsseln, Verpacken, Entpacken oder anderweitiges Manipulieren der Informationen in die Anweisungen 1624.
  • In einem Beispiel kann die Ableitung der Anweisungen 1624 Assemblieren, Kompilieren oder Interpretieren der Informationen (z. B. durch die Verarbeitungsschaltung) beinhalten, um die Anweisungen 1624 aus einem Zwischenformat oder vorverarbeiteten Format zu erzeugen, das durch das maschinenlesbare Medium 1622 bereitgestellt wird. Wenn die Informationen in mehreren Teilen bereitgestellt werden, können sie kombiniert, entpackt und modifiziert werden, um die Anweisungen 1624 zu erzeugen. Die Informationen können sich zum Beispiel in mehreren komprimierten Quellcodepaketen (oder Objektcode oder ausführbarem Binärcode etc.) auf einem oder mehreren entfernten Servern befinden. Die Quellcodepakete können verschlüsselt werden, wenn sie über ein Netzwerk übermittelt werden, und bei Bedarf entschlüsselt, entkomprimiert, zusammengesetzt (z. B. verknüpft) und an einer lokalen Maschine kompiliert oder interpretiert (z. B. in eine Bibliothek, eigenständige ausführbare Elemente etc.) und durch die lokale Maschine ausgeführt werden.
  • Die Anweisungen 1624 können ferner über ein Kommunikationsnetzwerk 1626 unter Verwendung eines Übertragungsmediums über die Netzwerkschnittstellenvorrichtung 1620 unter Verwendung eines beliebigen einer Anzahl von Übertragungsprotokollen (z. B. Frame-Relay, Internetprotokoll (IP), Übertragungssteuerungsprotokoll (TCP, Transmission Control Protocol), Benutzer-Datagramm-Protokoll (UDP, User Datagram Protocol), Hypertext-Übertragungsprotokoll (HTTP, Hypertext Transfer Protocol) etc.) übertragen oder empfangen werden. Beispielhafte Kommunikationsnetze können ein Ortsnetzwerk (LAN), ein Weitverkehrsnetzwerk (WAN), ein Paketdatennetzwerk (z. B. das Internet), LoRa/LoRaWAN oder Satellitenkommunikationsnetz, Mobiltelefonnetze (z. B. zellulare Netze, wie etwa jene, die 3G-, 4G-LTE/LTE-A- oder 5G-Standards erfüllen), herkömmliche Fernsprechnetze (POTS, Plain Old Telephone) und drahtlose Datennetze (z. B. IEEE (Institute of Electrical and Electronics Engineers) der 802.11-Standardsfamilie, bekannt als Wi-Fi®, IEEE 802.16-Standardsfamilie, bekannt als WiMax®, IEEE 802.15.4-Standardsfamilie, Peer-to-Peer (P2P)-Netzwerke) beinhalten. In einem Beispiel kann die Netzwerkschnittstellenvorrichtung 1620 eine oder mehrere physische Buchsen (z. B. Ethernet-, Koaxial- oder Telefonbuchsen) oder eine oder mehrere Antennen zum Verbinden mit dem Kommunikationsnetzwerk 1626 aufweisen. In einem Beispiel kann die Netzwerkschnittstellenvorrichtung 1620 mehrere Antennen zum drahtlosen Kommunizieren unter Verwendung von wenigstens entweder SIMO (Single Input Multiple Output)- und/oder MIMO (Multiple Input Multiple Output)- und/oder MISO (Multiple Input Single Output)-Techniken aufweisen. Unter dem Begriff „Übertragungsmedium“ ist jedes nicht greifbare Medium zu verstehen, das in der Lage ist, Anweisungen zu speichern, zu codieren oder zu transportieren, die von der Maschine 1600 ausgeführt werden sollen, und das digitale oder analoge Kommunikationssignale aufweist, oder ein anderes nicht greifbares Medium, um eine Übermittlung solcher Software zu ermöglichen. Ein Übertragungsmedium ist ein maschinenlesbares Medium.
  • Zusätzliche Anmerkungen und Beispiele
  • Beispiel 1 ist eine Vorrichtung zur netzwerkflussbasierten Hardwarezuweisung, die Vorrichtung umfassend: maschinenlesbare Medien einschließlich Anweisungen; und Verarbeitungsschaltung, die im Betrieb durch die Anweisungen konfiguriert ist, um: eine Arbeitslast zur Ausführung zu erhalten, wobei die Arbeitslast einen Fluss einschließt, wobei der Fluss eine Verarbeitungskomponente und eine Netzwerkkomponente einschließt; und während der Ausführung der Arbeitslast wiederholt: den Fluss bei der Ausführung profiliert, um eine Netzwerkmetrik für die Netzwerkkomponente und eine Verarbeitungsmetrik für die Verarbeitungskomponente zu bestimmen; und einen Netzwerkdienst und einen Verarbeitungsdienst zu dem Fluss bei einer nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik zuzuweisen.
  • In Beispiel 2, der Gegenstand von Beispiel 1, wobei der Netzwerkdienst eine Netzwerkschnittstellenkarte (NIC) ist.
  • In Beispiel 3, der Gegenstand eines der Beispiele 1 bis 2, wobei der Netzwerkdienst ein Kanal, ein virtueller Kanal oder ein Bandbreiten-Slice ist.
  • In Beispiel 4, der Gegenstand eines der Beispiele 1 bis 3, wobei, um den Netzwerkdienst basierend auf der Netzwerkmetrik zuzuweisen, die Verarbeitungsschaltung konfiguriert ist, um einen Netzwerkdienst auszuwählen, der eine minimale Netzwerkmetrik einschließt, um die Netzwerkkomponente des Flusses zu erfüllen.
  • In Beispiel 5, der Gegenstand von Beispiel 4, wobei die Netzwerkmetrik die Bandbreite oder Latenz ist.
  • In Beispiel 6, der Gegenstand eines der Beispiele 1 bis 5, wobei, um den Netzwerkdienst und den Verarbeitungsdienst zuzuweisen, die Verarbeitungsschaltung konfiguriert ist, um einen Netzwerkdienst auszuwählen, der eine minimale Netzwerkmetrik einschließt, um eine maximale Ausgabe in Bezug auf die Netzwerkmetrik des Verarbeitungsdienstes zu erfüllen.
  • In Beispiel 7, der Gegenstand eines der Beispiele 1 bis 6, wobei der Netzwerkdienst oder der Verarbeitungsdienst Hardwarepartitionen sind.
  • In Beispiel 8, der Gegenstand eines der Beispiele 1 bis 7, wobei, um den Fluss zu profilieren, die Verarbeitungsschaltung konfiguriert ist, um: eine Kommunikation des Flusses unter Verwendung des Netzwerkdienstes mit einer Kennung zu kennzeichnen; und die Kennung dem Fluss zuzuordnen.
  • In Beispiel 9, der Gegenstand des Beispiels 8, wobei die Kennung ein Tupel ist, das eine Quelladresse, einen Quellport, einen Zielport oder einen Kommunikationstyp einschließt.
  • In Beispiel 10, der Gegenstand eines der Beispiele 1 bis 9, wobei die Verarbeitungsschaltung konfiguriert ist, um den Fluss in einem vordefinierten Zeitintervall in Reaktion auf ein Ereignis oder bei Empfang einer Abfrage zu profilieren.
  • In Beispiel 11, der Gegenstand eines der Beispiele 1 bis 10, wobei, um den Fluss zu profilieren, die Verarbeitungsschaltung konfiguriert ist, um eine Schnittstellenprofil- und Rangfolge-Datenbank zu aktualisieren.
  • In Beispiel 12, der Gegenstand des Beispiels 11, wobei ein Eintrag in der Schnittstellenprofil- und Rangfolge-Datenbank dreißig Bits lang ist.
  • In Beispiel 13, der Gegenstand eines der Beispiele 11 bis 12, wobei Schnittstellen in der Schnittstellenprofil- und der Rangfolge-Datenbank nach Fluss eingestuft werden, und wobei, um den Netzwerkdienst und den Verarbeitungsdienst dem Fluss bei der nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik zuzuweisen, die Verarbeitungsschaltung konfiguriert ist, um eine Schnittstelle mit einem höchsten Rang für den Fluss auszuwählen.
  • In Beispiel 14, der Gegenstand des Beispiels 13, wobei die Schnittstellen basierend auf einer Kombination des Flusses und eines für den Fluss ausgewählten Verarbeitungsdienstes eingestuft werden.
  • Beispiel 15 ist ein Verfahren zur netzwerkflussbasierten Hardwarezuweisung, das Verfahren umfassend: Erhalten einer Arbeitslast zur Ausführung, wobei die Arbeitslast einen Fluss einschließt, wobei der Fluss eine Verarbeitungskomponente und eine Netzwerkkomponente einschließt; und während der Ausführung der Arbeitslast wiederholt: Profilieren des Flusses bei der Ausführung, um eine Netzwerkmetrik für die Netzwerkkomponente und eine Verarbeitungsmetrik für die Verarbeitungskomponente zu bestimmen; und Zuweisen eines Netzwerkdienstes und eines Verarbeitungsdienstes zu dem Fluss bei einer nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik.
  • In Beispiel 16, der Gegenstand von Beispiel 15, wobei der Netzwerkdienst eine Netzwerkschnittstellenkarte (NIC) ist.
  • In Beispiel 17, der Gegenstand eines der Beispiele 15 bis 16, wobei der Netzwerkdienst ein Kanal, ein virtueller Kanal oder ein Bandbreiten-Slice ist.
  • In Beispiel 18, der Gegenstand eines der Beispiele 15 bis 17, wobei Zuweisen des Netzwerkdienstes basierend auf der Netzwerkmetrik das Auswählen eines Netzwerkdienstes einschließt, der eine minimale Netzwerkmetrik einschließt, um die Netzwerkkomponente des Flusses zu erfüllen.
  • In Beispiel 19, der Gegenstand von Beispiel 18, wobei die Netzwerkmetrik die Bandbreite oder Latenz ist.
  • In Beispiel 20, der Gegenstand eines der Beispiele 15 bis 19, wobei Zuweisen des Netzwerkdienstes und des Verarbeitungsdienstes das Auswählen eines Netzwerkdienstes einschließt, der eine minimale Netzwerkmetrik einschließt, um eine maximale Ausgabe in Bezug auf die Netzwerkmetrik des Verarbeitungsdienstes zu erfüllen.
  • In Beispiel 21, der Gegenstand eines der Beispiele 15 bis 20, wobei der Netzwerkdienst oder der Verarbeitungsdienst Hardwarepartitionen sind.
  • In Beispiel 22, der Gegenstand eines der Beispiele 15 bis 21, wobei das Profilieren einschließt: Kennzeichnen einer Kommunikation des Flusses unter Verwendung des Netzwerkdienstes mit einer Kennung; und Zuordnen der Kennung zu einem Fluss.
  • In Beispiel 23, der Gegenstand des Beispiels 22, wobei die Kennung ein Tupel ist, das eine Quelladresse, einen Quellport, einen Zielport oder einen Kommunikationstyp einschließt.
  • In Beispiel 24, der Gegenstand eines der Beispiele 15 bis 23, wobei das Profilieren in einem vordefinierten Zeitintervall in Reaktion auf ein Ereignis oder bei Empfang einer Anfrage durchgeführt wird.
  • In Beispiel 25, der Gegenstand eines der Beispiele 15 bis 24, wobei das Profilieren eine Schnittstellenprofil- und Rangfolge-Datenbank aktualisiert.
  • In Beispiel 26, der Gegenstand des Beispiels 25, wobei ein Eintrag in der Schnittstellenprofil- und Rangfolge-Datenbank dreißig Bits lang ist.
  • Bei Beispiel 27, der Gegenstand eines der Beispiele 25 bis 26, wobei Schnittstellen in der Schnittstellenprofil- und Rangfolge-Datenbank nach Fluss eingestuft werden, und wobei das Zuweisen des Netzwerkdienstes und des Verarbeitungsdienstes zu dem Fluss bei der nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik das Auswählen einer Schnittstelle mit einem höchsten Rang für den Fluss einschließt.
  • Bei Beispiel 28, der Gegenstand des Beispiels 27, wobei die Schnittstellen basierend auf einer Kombination des Flusses und des für den Fluss ausgewählten Verarbeitungsdienstes eingestuft werden.
  • Beispiel 29 ist mindestens ein maschinenlesbares Medium, das Anweisungen für eine netzwerkflussbasierte Hardwarezuweisung einschließt, wobei die Anweisungen bei Ausführung durch eine Verarbeitungsschaltung die Verarbeitungsschaltung veranlassen, Operationen durchzuführen, die Folgendes umfassen: Erhalten einer Arbeitslast zur Ausführung, wobei die Arbeitslast einen Fluss einschließt, wobei der Fluss eine Verarbeitungskomponente und eine Netzwerkkomponente einschließt; und während der Ausführung der Arbeitslast wiederholt: Profilieren des Flusses bei der Ausführung, um eine Netzwerkmetrik für die Netzwerkkomponente und eine Verarbeitungsmetrik für die Verarbeitungskomponente zu bestimmen; und Zuweisen eines Netzwerkdienstes und eines Verarbeitungsdienstes zu dem Fluss bei einer nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik.
  • In Beispiel 30, der Gegenstand von Beispiel 29, wobei der Netzwerkdienst eine Netzwerkschnittstellenkarte (NIC) ist.
  • In Beispiel 31, der Gegenstand eines der Beispiele 29 bis 30, wobei der Netzwerkdienst ein Kanal, ein virtueller Kanal oder ein Bandbreiten-Slice ist.
  • In Beispiel 32, der Gegenstand eines der Beispiele 29 bis 31, wobei Zuweisen des Netzwerkdienstes basierend auf der Netzwerkmetrik das Auswählen eines Netzwerkdienstes einschließt, der eine minimale Netzwerkmetrik einschließt, um die Netzwerkkomponente des Flusses zu erfüllen.
  • In Beispiel 33, der Gegenstand von Beispiel 32, wobei die Netzwerkmetrik die Bandbreite oder Latenz ist.
  • In Beispiel 34, der Gegenstand eines der Beispiele 29 bis 33, wobei das Zuweisen des Netzwerkdienstes und des Verarbeitungsdienstes das Auswählen des Netzwerkdienstes einschließt, der eine minimale Netzwerkmetrik einschließt, um eine maximale Ausgabe in Bezug auf die Netzwerkmetrik des Verarbeitungsdienstes zu erfüllen.
  • In Beispiel 35, der Gegenstand eines der Beispiele 29 bis 34, wobei der Netzwerkdienst oder der Verarbeitungsdienst Hardwarepartitionen sind.
  • In Beispiel 36, der Gegenstand eines der Beispiele 29 bis 35, wobei das Profilieren einschließt: Kennzeichnen einer Kommunikation des Flusses unter Verwendung des Netzwerkdienstes mit einer Kennung; und Zuordnen der Kennung zu einem Fluss.
  • In Beispiel 37, der Gegenstand des Beispiels 36, wobei die Kennung ein Tupel ist, das eine Quelladresse, einen Quellport, einen Zielport oder einen Kommunikationstyp einschließt.
  • In Beispiel 38, der Gegenstand eines der Beispiele 29 bis 37, wobei das Profilieren in einem vordefinierten Zeitintervall in Reaktion auf ein Ereignis oder bei Empfang einer Anfrage durchgeführt wird.
  • In Beispiel 39, der Gegenstand eines der Beispiele 29 bis 38, wobei das Profilieren eine Schnittstellenprofil- und Rangfolge-Datenbank aktualisiert.
  • In Beispiel 40, der Gegenstand des Beispiels 39, wobei ein Eintrag in der Schnittstellenprofil- und Rangfolge-Datenbank dreißig Bits lang ist.
  • Bei Beispiel 41, der Gegenstand eines der Beispiele 39 bis 40, wobei Schnittstellen in der Schnittstellenprofil- und Rangfolge-Datenbank nach Fluss eingestuft werden, und wobei das Zuweisen des Netzwerkdienstes und des Verarbeitungsdienstes zu dem Fluss bei der nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik das Auswählen einer Schnittstelle mit einem höchsten Rang für den Fluss einschließt.
  • In Beispiel 42, der Gegenstand des Beispiels 41, wobei die Schnittstellen basierend auf einer Kombination des Flusses und eines für den Fluss ausgewählten Verarbeitungsdienstes eingestuft werden.
  • Beispiel 43 ist ein System zur netzwerkflussbasierten Hardwarezuweisung, das System umfassend: Mittel zum Erhalten einer Arbeitslast zur Ausführung, wobei die Arbeitslast einen Fluss einschließt, wobei der Fluss eine Verarbeitungskomponente und eine Netzwerkkomponente einschließt; und während der Ausführung der Arbeitslast, Mittel zum wiederholten: Anwenden von Mitteln zum Profilieren des Flusses bei der Ausführung, um eine Netzwerkmetrik für die Netzwerkkomponente und eine Verarbeitungsmetrik für die Verarbeitungskomponente zu bestimmen; und Anwenden von Mitteln zum Zuweisen eines Netzwerkdienstes und eines Verarbeitungsdienstes zu dem Fluss bei einer nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik.
  • In Beispiel 44, der Gegenstand von Beispiel 43, wobei der Netzwerkdienst eine Netzwerkschnittstellenkarte (NIC) ist.
  • In Beispiel 45, der Gegenstand eines der Beispiele 43 bis 44, wobei der Netzwerkdienst ein Kanal, ein virtueller Kanal oder ein Bandbreiten-Slice ist.
  • In Beispiel 46, der Gegenstand eines der Beispiele 43 bis 45, wobei die Mittel zum Zuweisen des Netzwerkdienstes basierend auf der Netzwerkmetrik Mittel zum Auswählen eines Netzwerkdienstes beinhalten, der eine minimale Netzwerkmetrik einschließt, um die Netzwerkkomponente des Flusses zu erfüllen.
  • In Beispiel 47, der Gegenstand von Beispiel 46, wobei die Netzwerkmetrik die Bandbreite oder Latenz ist.
  • In Beispiel 48, der Gegenstand eines der Beispiele 43 bis 47, wobei die Mittel zum Zuweisen des Netzwerkdienstes und des Verarbeitungsdienstes Mittel zum Auswählen eines Netzwerkdienstes beinhalten, der eine minimale Netzwerkmetrik einschließt, um eine maximale Ausgabe in Bezug auf die Netzwerkmetrik des Verarbeitungsdienstes zu erfüllen.
  • In Beispiel 49, der Gegenstand eines der Beispiele 43 bis 48, wobei der Netzwerkdienst oder der Verarbeitungsdienst Hardwarepartitionen sind.
  • In Beispiel 50, der Gegenstand eines der Beispiele 43 bis 49, wobei das Mittel zum Profilieren einschließt: Mittel zum Kennzeichnen einer Kommunikation des Flusses unter Verwendung des Netzwerkdienstes mit einer Kennung; und Mittel zum Abbilden der Kennung auf den Fluss.
  • In Beispiel 51, der Gegenstand des Beispiels 50, wobei die Kennung ein Tupel ist, das eine Quelladresse, einen Quellport, einen Zielport oder einen Kommunikationstyp einschließt.
  • In Beispiel 52, der Gegenstand eines der Beispiele 43 bis 51, wobei das Profilieren in einem vordefinierten Zeitintervall in Reaktion auf ein Ereignis oder bei Empfang einer Anfrage durchgeführt wird.
  • In Beispiel 53, der Gegenstand eines der Beispiele 43 bis 52, wobei das Profilieren eine Schnittstellenprofil- und Rangfolge-Datenbank aktualisiert.
  • In Beispiel 54, der Gegenstand des Beispiels 53, wobei ein Eintrag in der Schnittstellenprofil- und Rangfolge-Datenbank dreißig Bits lang ist.
  • In Beispiel 55, der Gegenstand eines der Beispiele 53 bis 54, wobei Schnittstellen in der Schnittstellenprofil- und Rangfolge-Datenbank nach Fluss eingestuft werden, und wobei das Mittel zum Zuweisen eines Netzwerkdienstes und des Verarbeitungsdienstes zu dem Fluss bei der nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik Mittel zum Auswählen einer Schnittstelle mit einem höchsten Rang für den Fluss einschließen.
  • In Beispiel 56, der Gegenstand des Beispiels 55, wobei die Schnittstellen basierend auf einer Kombination des Flusses und eines für den Fluss ausgewählten Verarbeitungsdienstes eingestuft werden.
  • Beispiel 57 ist mindestens ein maschinenlesbares Medium, das Anweisungen einschließt, die bei Ausführung durch eine Verarbeitungsschaltung die Verarbeitungsschaltung veranlassen, Operationen zum Implementieren eines der Beispiele 1 bis 56 durchzuführen.
  • Beispiel 58 ist eine Vorrichtung, die Mittel zum Implementieren eines der Beispiele 1 bis 56 umfasst.
  • Beispiel 59 ist ein System zum Implementieren eines der Beispiele 1 - 56.
  • Beispiel 60 ist ein Verfahren zum Implementieren eines der Beispiele 1 - 56.
  • Die vorstehende ausführliche Beschreibung beinhaltet Bezugnahmen auf die begleitenden Zeichnungen, die einen Teil der ausführlichen Beschreibung bilden. Die Zeichnungen zeigen zur Veranschaulichung spezifische Ausführungsformen, die umgesetzt werden können. Diese Ausführungsformen werden hierin auch als „Beispiele“ bezeichnet. Solche Beispiele können Elemente zusätzlich zu jenen, die gezeigt oder beschrieben sind, einschließen. Allerdings ziehen die gegenwärtigen Erfinder auch Beispiele in Betracht, in denen nur die gezeigten oder beschriebenen Elemente bereitgestellt werden. Außerdem ziehen die gegenwärtigen Erfinder auch Beispiele in Betracht, die irgendeine Kombination oder Umsetzung dieser gezeigten oder beschriebenen Elemente (oder eines oder mehrerer Aspekte von diesen) verwenden, entweder in Bezug auf ein bestimmtes Beispiel (oder eines oder mehrerer Aspekte von diesem) oder in Bezug auf andere hier gezeigte oder beschriebene Beispiele (oder eines oder mehrerer Aspekte von diesen).
  • Alle Veröffentlichungen, Patente und Patentdokumente, auf die in diesem Dokument Bezug genommen wird, sind hierin in ihrer Gesamtheit durch Bezugnahme aufgenommen, als wenn sie einzeln durch Bezugnahme aufgenommen wären. Im Falle von widersprüchlichen Verwendungen zwischen diesem Dokument und den so durch Bezugnahme aufgenommenen Dokumenten sollte die Verwendung in der/den aufgenommenen Referenz(en) als ergänzend zu jener von diesem Dokument angesehen werden; bei unüberwindbaren Widersprüchen hat die Verwendung in diesem Dokument Vorrang.
  • In diesem Dokument werden die Wörter „ein“ und „eine“ , wie in Patentdokumenten allgemein üblich, in dem Sinne verwendet, dass sie eines oder mehr als eines einschließen, ungeachtet eventueller weiterer Vorkommnisse oder Verwendungen von „wenigstens ein/e“ oder „ein/e oder mehrere“. In diesem Dokument wird der Begriff „oder“ verwendet, um sich auf ein nicht ausschließliches Oder zu beziehen, so dass „A oder B“ sowohl „A, aber nicht B“, „B, aber nicht A“ und „A und B“ einschließt, sofern nichts anderes angegeben ist. In den beigefügten Ansprüchen werden Begriffe „einschließen“ und „in denen“ als die Äquivalente in einfachem Deutsch der jeweiligen Begriffe „umfassen“ und „wobei“ verwendet. Auch werden in den folgenden Ansprüchen die Begriffe „einschließen“ und „umfassen“ offen verwendet, das heißt, ein System, eine Vorrichtung, ein Artikel oder ein Prozess, enthaltend Elemente zusätzlich zu jenen, die nach solch einem Begriff in einem Anspruch gelistet sind, wird noch als innerhalb des Umfangs dieser Ansprüche fallend betrachtet. Darüber hinaus werden in den folgenden Ansprüchen die Begriffe „erster“, „zweiter“ und „dritter“ etc. nur als Bezeichnungen verwendet und sind nicht dazu gedacht, um numerische Anforderungen an ihre Objekte durchzusetzen.
  • Die vorstehende Beschreibung soll veranschaulichend und nicht einschränkend sein. Zum Beispiel können die vorstehend beschriebenen Beispiele (oder ein oder mehrere Aspekte davon) in Kombination miteinander verwendet werden. Andere Ausführungsformen können verwendet werden, beispielsweise durch Fachleute auf dem Gebiet bei Durchsicht der obigen Beschreibung. Die Zusammenfassung ist bereitgestellt, um den Leser in die Lage zu versetzen, das Wesen der technischen Offenbarung schnell zu erfassen, und wird mit dem Verständnis eingereicht, dass sie nicht verwendet wird, um den Schutzumfang oder die Bedeutung der Ansprüche zu begrenzen. Darüber hinaus können in der obigen detaillierten Beschreibung verschiedene Merkmale gruppiert werden, um die Offenbarung zu straffen. Dies sollte nicht als die Absicht interpretiert werden, dass ein nicht beanspruchtes offenbartes Merkmal für einen Anspruch von grundlegender Bedeutung ist. Vielmehr kann der erfinderische Gegenstand in weniger als allen Merkmalen einer bestimmten offenbarten Ausführungsform anzutreffen sein. Die folgenden Ansprüche sind daher hiermit in die detaillierte Beschreibung miteinbezogen, wobei jeder Anspruch selbstständig als eine separate Ausführungsform steht. Der Umfang der Ausführungsformen sollte unter Bezugnahme auf die beigefügten Ansprüche zusammen mit dem vollen Umfang von Äquivalenten, zu denen solche Ansprüche berechtigt sind, bestimmt werden.

Claims (25)

  1. Vorrichtung zur netzwerkflussbasierten Hardwarezuweisung, die Vorrichtung umfassend: maschinenlesbare Medien mit Anweisungen; und eine Verarbeitungsschaltung, die im Betrieb durch die Anweisungen konfiguriert wird, um: eine Arbeitslast zur Ausführung zu erhalten, wobei die Arbeitslast einen Fluss einschließt, wobei der Fluss eine Verarbeitungskomponente und eine Netzwerkkomponente einschließt; und während der Ausführung der Arbeitslast wiederholt: den Fluss bei Ausführung zu profilieren, um eine Netzwerkmetrik für die Netzwerkkomponente und eine Verarbeitungsmetrik für die Verarbeitungskomponente zu bestimmen; und einen Netzwerkdienst und einen Verarbeitungsdienst zu dem Fluss bei einer nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik zuzuweisen.
  2. Vorrichtung nach Anspruch 1, wobei der Netzwerkdienst eine Netzwerkschnittstellenkarte (NIC) ist.
  3. Vorrichtung nach einem der Ansprüche 1 bis 2, wobei der Netzwerkdienst ein Kanal, ein virtueller Kanal oder ein Bandbreiten-Slice ist.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, wobei, um den Netzwerkdienst basierend auf der Netzwerkmetrik zuzuweisen, die Verarbeitungsschaltung konfiguriert ist, um einen Netzwerkdienst auszuwählen, der eine minimale Netzwerkmetrik einschließt, um die Netzwerkkomponente des Flusses zu erfüllen.
  5. Vorrichtung nach einem der Ansprüche 1 bis 4, wobei, um den Fluss zu profilieren, die Verarbeitungsschaltung konfiguriert ist, um: eine Kommunikation des Flusses unter Verwendung des Netzwerkdienstes mit einer Kennung zu kennzeichnen; und die Kennung dem Fluss zuzuordnen.
  6. Vorrichtung nach einem der Ansprüche 1 bis 5, wobei, um den Fluss zu profilieren, die Verarbeitungsschaltung konfiguriert ist, um eine Schnittstellenprofil- und Rangfolge-Datenbank zu aktualisieren.
  7. Vorrichtung nach Anspruch 6, wobei ein Eintrag in der Schnittstellenprofil- und Rangfolge-Datenbank dreißig Bits lang ist.
  8. Vorrichtung nach einem der Ansprüche 6 bis 7, wobei Schnittstellen in der Schnittstellenprofil- und Rangfolge-Datenbank nach Fluss eingestuft werden und wobei, um den Netzwerkdienst und den Verarbeitungsdienst dem Fluss bei der nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik zuzuweisen, die Verarbeitungsschaltung konfiguriert ist, um eine Schnittstelle mit einem höchsten Rang für den Fluss auszuwählen.
  9. Vorrichtung nach Anspruch 8, wobei die Schnittstellen basierend auf einer Kombination des Flusses und eines für den Fluss ausgewählten Verarbeitungsdienstes eingestuft werden.
  10. Verfahren zur netzwerkflussbasierten Hardwarezuweisung, das Verfahren umfassend: Erhalten einer Arbeitslast zur Ausführung, wobei die Arbeitslast einen Fluss einschließt, wobei der Fluss eine Verarbeitungskomponente und eine Netzwerkkomponente einschließt; und während der Ausführung der Arbeitslast wiederholt: Profilieren des Flusses bei Ausführung, um eine Netzwerkmetrik für die Netzwerkkomponente und eine Verarbeitungsmetrik für die Verarbeitungskomponente zu bestimmen; und Zuweisen eines Netzwerkdienstes und eines Verarbeitungsdienstes zu dem Fluss bei einer nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik.
  11. Verfahren nach Anspruch 10, wobei der Netzwerkdienst eine Netzwerkschnittstellenkarte (NIC) ist.
  12. Verfahren nach einem der Ansprüche 10 bis 11, wobei der Netzwerkdienst ein Kanal, ein virtueller Kanal oder ein Bandbreiten-Slice ist.
  13. Verfahren nach einem der Ansprüche 10 bis 12, wobei Zuweisen des Netzwerkdienstes basierend auf der Netzwerkmetrik das Auswählen eines Netzwerkdienstes einschließt, der eine minimale Netzwerkmetrik einschließt, um die Netzwerkkomponente des Flusses zu erfüllen.
  14. Verfahren nach Anspruch 13, wobei die Netzwerkmetrik die Bandbreite oder Latenz ist.
  15. Verfahren nach einem der Ansprüche 10 bis 14, wobei Zuweisen des Netzwerkdienstes und des Verarbeitungsdienstes das Auswählen eines Netzwerkdienstes einschließt, der eine minimale Netzwerkmetrik einschließt, um eine maximale Ausgabe in Bezug auf die Netzwerkmetrik des Verarbeitungsdienstes zu erfüllen.
  16. Verfahren nach einem der Ansprüche 10 bis 15, wobei der Netzwerkdienst oder der Verarbeitungsdienst Hardwarepartitionen sind.
  17. Verfahren nach einem der Ansprüche 10 bis 16, wobei das Profilieren einschließt: Kennzeichnen einer Kommunikation des Flusses unter Verwendung des Netzwerkdienstes mit einer Kennung; und Zuordnung der Kennung zu dem Fluss.
  18. Verfahren nach Anspruch 17, wobei die Kennung ein Tupel ist, das eine Quelladresse, einen Quellport, einen Zielport oder einen Kommunikationstyp einschließt.
  19. Verfahren nach einem der Ansprüche 10 bis 18, wobei das Profilieren in einem vordefinierten Zeitintervall, in Reaktion auf ein Ereignis oder bei Empfang einer Abfrage durchgeführt wird.
  20. Verfahren nach einem der Ansprüche 10 bis 19, wobei das Profilieren eine Schnittstellenprofil- und Rangfolge-Datenbank aktualisiert.
  21. Verfahren nach Anspruch 20, wobei ein Eintrag in der Schnittstellenprofil- und Rangfolge-Datenbank dreißig Bits lang ist.
  22. Verfahren nach einem der Ansprüche 20 bis 21, wobei Schnittstellen in der Schnittstellenprofil- und Rangfolge-Datenbank nach Fluss eingestuft werden, und wobei das Zuweisen des Netzwerkdienstes und des Verarbeitungsdienstes zu dem Fluss bei der nächsten Ausführung basierend auf der Netzwerkmetrik und der Verarbeitungsmetrik das Auswählen einer Schnittstelle mit einem höchsten Rang für den Fluss einschließt.
  23. Verfahren nach Anspruch 22, wobei die Schnittstellen basierend auf einer Kombination des Flusses und des für den Fluss ausgewählten Verarbeitungsdienstes eingestuft werden.
  24. Mindestens ein maschinenlesbares Medium, das Anweisungen einschließt, die bei Ausführung durch eine Verarbeitungsschaltung die Verarbeitungsschaltung veranlassen, ein Verfahren nach den Ansprüchen 10 bis 23 durchzuführen.
  25. System, das Mittel zum Durchführen eines Verfahrens nach den Ansprüchen 10 bis 23 umfasst.
DE102022203111.3A 2021-06-25 2022-03-30 Auf netzwerkfluss basierende hardwarezuweisung Pending DE102022203111A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/358,817 US20210328933A1 (en) 2021-06-25 2021-06-25 Network flow-based hardware allocation
US17/358,817 2021-06-25

Publications (1)

Publication Number Publication Date
DE102022203111A1 true DE102022203111A1 (de) 2022-12-29

Family

ID=78082328

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022203111.3A Pending DE102022203111A1 (de) 2021-06-25 2022-03-30 Auf netzwerkfluss basierende hardwarezuweisung

Country Status (3)

Country Link
US (1) US20210328933A1 (de)
JP (1) JP2023004857A (de)
DE (1) DE102022203111A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11558239B1 (en) * 2021-08-31 2023-01-17 Cerner Innovation, Inc. Intelligent system for network and device performance improvement
US11606267B1 (en) * 2021-09-10 2023-03-14 Microsoft Technology Licensing, Llc Detecting and quantifying latency components in accessing cloud services
US11477300B1 (en) * 2021-10-18 2022-10-18 Verizon Patent And Licensing Inc. Method and system for application management service
US11755375B2 (en) * 2021-11-29 2023-09-12 Red Hat, Inc. Aggregating host machines into a single cloud node for workloads requiring excessive resources
US11870669B2 (en) * 2021-12-20 2024-01-09 Intel Corporation At-scale telemetry using interactive matrix for deterministic microservices performance

Also Published As

Publication number Publication date
US20210328933A1 (en) 2021-10-21
JP2023004857A (ja) 2023-01-17

Similar Documents

Publication Publication Date Title
DE102022212157A1 (de) Absichtsbasierte clusterverwaltung
DE102021209145A1 (de) Verfahren und vorrichtung zum koordinieren von edge-plattformen
DE102020131613A1 (de) Verfahren, system und produkt zum implementieren von deterministischem on-boarding und planen virtualisierter arbeitslasten für edge-computing.
DE102020125219A1 (de) End-to-end -dienstqualität in edge-computing -umgebungen
DE102022203247A1 (de) Disintermedierte Attestierung in einem MEC-Service-MESH-Framework
DE102020128209A1 (de) Automatische Plattformressourcenverwaltung in Edge-Computing-Umgebungen
DE102019217367A1 (de) VERWALTUNG DER DIENSTQUALITÄT (QoS) IN EDGE-COMPUTING-UMGEBUNGEN
DE102022203111A1 (de) Auf netzwerkfluss basierende hardwarezuweisung
DE102021209146A1 (de) Adaptive edge-ressourcenverwaltung mit begrenzter dauer
DE102021210705A1 (de) Intelligente datenweiterleitung in edge-netzen
US20210119962A1 (en) Neutral host edge services
DE102021207160A1 (de) Verfahren und einrichtung zur verwaltung der dienstgüte in bezug auf service-level-agreements in einer rechenvorrichtung
DE112020003742T5 (de) Verfahren, systeme, erzeugnisse und vorrichtungen zur verbesserung von jobplanungseffizienz
DE102021209282A1 (de) Verfahren, einrichtungen und systeme zur gemeinsamen nutzung von rechenressourcen zwischen edge-rechenknoten unter verwendung eines overlay-managers
DE102022203249A1 (de) Mehrfachzugriff-edge-computing- (mec-) fahrzeug-zu-alles-(v2x-) interoperabilitätsunterstützung für mehrere v2x-nachrichtenbroker
DE102021210882A1 (de) Erweitertes peer-to-peer (p2p) mit edge-vernetzung
EP4156745A1 (de) Unlizenzierte spektrumsnutzung mit kollaborativer spektrumserfassung in netzwerken der nächsten generation
DE102021117809A1 (de) Einrichtungen, Systeme, Fabrikate und Verfahren zur Datenlebenszyklusverwaltung in einer Edge-Umgebung
DE112020007229T5 (de) Föderiertes mec-framework für kraftfahrzeugdienste
DE102021209043A1 (de) Methods and apparatus to select a location of execution of a computation
DE102022208684A1 (de) Verfahren und einrichtung für resilienz mithilfe digitaler zwillinge
DE102022121227A1 (de) Dynamische slice-rekonfiguration während fafo(fault-attack-failure-outage)-ereignissen
DE102022212395A1 (de) Ende-zu-ende-netzwerk-slicing (ens) vom ran- zum kernnetz für kommunikationen der nächsten generation (ng)
DE102021121267A1 (de) Verfahren, Systeme, Vorrichtungen und Erzeugnisse zur Verwaltung des Zugriffs auf dezentrale Data Lakes
DE102021212974A1 (de) Automatische eskalation von vertrauensnachweisen

Legal Events

Date Code Title Description
R083 Amendment of/additions to inventor(s)