-
PRIORITÄTSANMELDUNGEN
-
Diese Anmeldung beansprucht den Vorteil der Priorität gegenüber der am 28. September 2019 eingereichten vorläufigen US-Anmeldung Seriennummer
62/907,597 und der am 22. November 2019 eingereichten vorläufigen US-Anmeldung Seriennummer
62/939,303 , die allesamt durch Bezugnahme in ihrer Gesamtheit hierin aufgenommen werden.
-
TECHNISCHES GEBIET
-
Ausführungsformen, die hierin beschrieben werden, betreffen im Allgemeinen Datenverarbeitungs-, Netzwerkkommunikations- und Computerarchitekturimplementierungen und insbesondere Operationen, welche die Generierung und Verwendung von Zeitstempeln und Zeitinformationen in Edge-Computing-Knoten innerhalb von Edge-Computing-Systemen umfassen.
-
HINTERGRUND
-
Edge-Computing betrifft auf allgemeiner Ebene die Überführung von Rechen- und Speicherressourcen näher heran an Endpunktgeräte (z. B. Datenverarbeitungsgeräte für Privatanwender, Benutzer-Equipments usw.), um Gesamtbetriebskosten zu optimieren, Anwendungslatenz zu reduzieren, Dienstfähigkeiten zu verbessern und die Erfüllung von Sicherheits- oder Datenschutzanforderungen zu fördern. Edge-Computing kann in einigen Szenarien einen Cloud-ähnlichen verteilten Dienst bereitstellen, der Orchestrierung und Verwaltung für Anwendungen unter vielen Typen von Speicher- und Rechenressourcen bietet. Folglich wurden einige Implementierungen von Edge-Computing als „Edge-Cloud“ oder „Fog“ bezeichnet, da leistungsstarke Datenverarbeitungsressourcen, die früher nur in großen Remote-Datenzentren verfügbar waren, näher an die Endpunkte heran bewegt und zur Verwendung durch Verbraucher am „Rand“ (edge) des Netzwerks verfügbar gemacht wurden.
-
Edge-Computing-Anwendungsfälle in Mobilnetzwerkumfeldern wurden zur Integration in Lösungsansätze für Multi-Access-Edge-Computing (MEC), auch als „Mobile-Edge-Computing“ bekannt, entwickelt. MEC-Ansätze werden konzipiert, um Anwendungsentwicklern und Inhaltsanbietern den Zugriff auf Datenverarbeitungsfähigkeiten und eine Dienstumgebung für Informationstechnologie (IT) in dynamischen Mobilnetzwerkumfeldern am Rande des Netzwerks zu ermöglichen. In einem Versuch, gemeinsame Schnittstellen für den Betrieb von MEC-Systemen, - Plattformen, -Hosts, -Diensten und -Anwendungen zu definieren, wurden beschränkte Standards von der Industriespezifikationsgruppe (ISG) des European Telecommunications Standards Institute (ETSI) entwickelt.
-
Edge-Computing, MEC und verwandte Technologien versuchen reduzierte Latenz, kürzere Reaktionszeiten und mehr verfügbare Datenverarbeitungsleistung bereitzustellen, als in herkömmlichen Cloud-Netzwerkdiensten und Weitverkehrsnetzwerkverbindungen geboten werden. Die Integration von Mobilität und dynamisch lancierten Diensten in einige Verarbeitungsanwendungsfälle für mobile Nutzung und Geräte hat jedoch insbesondere in komplexen Mobilitätsumfeldern, in welche viele Teilnehmer (Geräte, Hosts, Mandanten, Dienstanbieter, Betreiber) involviert sind, zu Beschränkungen und Problemen hinsichtlich Orchestrierung, funktionaler Koordination und Ressourcenverwaltung geführt. Diese Komplexität nimmt in Settings zu, in welchen Dienste in der Systemkonfiguration „Edge-als-ein-Dienst“ (EaaS - Edge as a Service) angeboten werden, wobei skalierbare Edge-Computing-Ressourcen auf eine Weise angeboten und verwaltet werden, welche die Ressourcen für Benutzer als einen koordinierten „Dienst“, der zum Durchführen von Workloads verfügbar ist, statt als Ressourcen darstellt, die unter einem Satz von verteilten und getrennten Knoten angeordnet sind.
-
Der Einsatz verschiedener Edge-, EaaS-, MEC- und Fog-Netzwerke, -Geräte und -Dienste hat eine Anzahl von fortschrittlichen Anwendungsfällen und Szenarien verteilter Datenverarbeitung eingeführt, die am und zum Rand des Netzwerk eintreten. Diese fortschrittlichen Anwendungsfälle haben jedoch auch eine Anzahl von entsprechenden technischen Schwierigkeiten in Bezug auf Sicherheit, Verarbeitung und Netzwerkressourcen, Dienstverfügbarkeit und Effizienz eingeführt, um nur einige Probleme zu erwähnen. Ein solche Schwierigkeit steht mit den verschiedenen Typen von verteilten Transaktionen in Beziehung, die koordiniert werden müssen und deren Datenergebnisse auf konsistente Weise unter mehreren Entitäten aktualisiert werden müssen, um Dienste korrekt durchzuführen und Verarbeitung von Workload korrekt zu erledigen. Aufgrund der ungleichen Beschaffenheit verteilter Verarbeitung stößt solch eine Verwaltung von Koordination und Konsistenz häufig auf eine Reihe von Schwierigkeiten und Beschränkungen.
-
Figurenliste
-
In den Zeichnungen, die nicht unbedingt maßstabsgetreu gezeichnet sind, können gleiche Bezugszeichen ähnliche Komponenten in verschiedenen Ansichten beschreiben. Gleiche Bezugszeichen mit verschiedenen angehängten Buchstaben können verschiedene Beispiele ähnlicher Komponenten darstellen. Einige Ausführungsformen sind in den Figuren der beiliegenden Zeichnungen beispielhaft und nicht einschränkend veranschaulicht, wobei:
- 1 eine Übersicht über eine Edge-Cloud-Konfiguration für Edge-Computing gemäß einem Beispiel veranschaulicht;
- 2 Bereitstellung und Orchestrierung für virtuelle Edge-Konfigurationen über ein Edge-Computing-System, das zwischen mehreren Edge-Knoten und mehreren Mandanten betrieben wird, gemäß einem Beispiel veranschaulicht;
- 3 einen Rechen- und Kommunikationsanwendungsfall für Fahrzeuge, der mobilen Zugriff auf Anwendungen in einem Edge-Computing-System umfasst, gemäß einem Beispiel veranschaulicht;
- 4 ein Blockdiagramm für eine Multi-Access-Edge-Computing-(MEC-)Systemarchitektur gemäß einem Beispiel darstellt.
- 5 eine Übersicht über Schichten für verteiltes Rechnen, die innerhalb einer Edge-Computing-Umgebung bereitgestellt werden, gemäß einem Beispiel veranschaulicht;
- 6A eine Übersicht über beispielhafte Komponenten, die an einem Rechenknotensystem bereitgestellt werden, gemäß einem Beispiel veranschaulicht;
- 6B eine weitere Übersicht über beispielhafte Komponenten innerhalb eines Computing-Geräts gemäß einem Beispiel veranschaulicht;
- 7 ein Blockdiagramm, das Zeitstempelwerte darstellt, die innerhalb einer Blockkette verknüpft sind, gemäß einem Beispiel veranschaulicht;
- 8 ein Blockdiagramm einer Prozedur zur Generierung signierter Zeitstempel gemäß einem Beispiel veranschaulicht;
- 9 ein Blockdiagramm einer Prozedur zur Verifizierung signierter Zeitstempel gemäß einem Beispiel veranschaulicht;
- 10 ein Flussdiagramm eines Prozessor zur Verifizierung eines Transaktionsblocks basierend auf Prozedur zur Verifizierung signierter Zeitstempel gemäß einem Beispiel veranschaulicht;
- 11 ein Blockdiagramm einer Indexzuordnung, die in einer Prozedur zur Verifizierung signierter Zeitstempel verwendet wird, gemäß einem Beispiel veranschaulicht; und
- 12 ein Flussdiagramm eines beispielhaften Prozesses zur Bereitstellung und Verwendung einer Verifizierung signierter Zeitstempel für Transaktionen innerhalb einer Edge-Computing-Plattform gemäß einem Beispiel veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung werden Verfahren, Konfigurationen und dazugehörige Vorrichtungen zur Generierung, Verifizierung und Verwendung von hochauflösenden Zeitstempeln in Bereitstellungen von Edge-Computing-Architekturen und -Systemen offenbart. Diese Zeitstempel ermöglichen eine Vielzahl von Anwendungsfällen verteilten Rechnens in Edge-Computing-Szenarien, wobei Datenoperationen und Datenverwaltung zwischen mehreren Systemen auf der Basis von Zeit koordiniert und verifiziert werden können.
-
Unter anderen Verwendungsmöglichkeiten können die folgenden Techniken zum Generieren und Verifizieren von Zeitstempeln die Verwendung von Verfolgung von Transaktionen mehrerer Versionen, beispielsweise in Form einer Kontrolle von Nebenläufigkeit mehrerer Versionen (MVCC - Multi-Version Concurrency Control), die bei einigen verteilten Edge-Computing-Transaktionen eingesetzt wird, erheblich unterstützen. In verteilten Datenbankverwaltungssystemen werden MVCC-Protokolle häufig zum Durchführen von Transaktionen „optimistischer Nebenläufigkeit“ verwendet. Diese Protokolle verwenden Versionsverwaltung über Datenbankinhalte basierend auf Zeitversionen und können mehrere Lese- oder Schreibvorgänge über die Datenbankinhalte durchführen, ohne Serialisierungs- oder Ausschlusskontrolle zu erzwingen, die sperrungsbasiert, ereignisbasiert, tokenbasiert usw. sein kann. Transaktionen können einander demnach überlappen, solange sie keine inkonsistenten Zugriffe auf Daten verursachen. Obwohl MVCC eine bessere Nebenläufigkeit ermöglicht, sind bestehende Verfahren zum Verifizieren, dass vorläufige Transaktionen gültig sind (und keine inkonsistenten Überlappungen verursachen) und zur Verpflichtung angenommen werden können, nicht unkompliziert und können viel Zeit und Mühe pro Transaktion in Anspruch nehmen. Viele Datenbanksysteme setzen daher eine Mischung versionsbasierter und ausschlusskontrollbasierter Nebenläufigkeits- oder Konsistenzkontrollen ein.
-
Viele der Techniken, die zur Koordinationen von Transaktionen in Edge-Computing verwendet werden, haben einfach die Techniken nachvollzogen, die für Transaktionen in herkömmlichen Datenzentrums-Clouds eingesetzt werden. Als verschiedene Beispiele sind Google Spanner, MemcacheDB, RocksDB, Amazon Dynamo und Redis verschiedene Formen hochskalierbarer und verteilbarer Datenbanken. Von diesen Beispielen funktioniert Google Spanner als AKID-Datenbank (eine Datenbank mit den Eigenschaften Atomarität, Konsistenz, Isolation und Dauerhaftigkeit) mit echter Konsistenz (Transaktionskonsistenz) und vollständiger SQL-Semantik. Im Gegensatz dazu verwendet Amazon Dynamo lockere Konsistenz, die Abstimmungsrichtlinien hinsichtlich Schreibvorgängen umfasst, was sie insbesondere flexibel für Verteilung in großem Umfang macht. Andere Beispiele für verteilte Datenspeicher umfassen Systeme mit Eventualkonsistenz, die hauptsächlich als Schlüsselwertspeicher oder NewSQL-DBs implementiert sind. In anderen Settings wurden kundenspezifische verteilte Datenbanken und Datenspeicher durch Telekommunikations- und Cloud-Diensteanbieter aufgebaut, um die gebräuchlichsten Performance-Kennzahlen (KPI - Key Performance Indicator) zu handhaben, die für den spezifischen Dienst oder das spezifische Dienstziel relevant sind.
-
Innerhalb eines jeden dieser bestehenden verteilten Datensysteme wird der Notwendigkeit von Nebenläufigkeitskontrolle häufig zu Lasten der Performance oder Komplexität entsprochen. Aufgrund von Themen teilweiser Vertrauenswürdigkeit und der Überschneidung vieler Sicherheits-/Datenschutzdomänen und -beschränkungen, die vor dem Aktualisieren dezentralisierter und verteilter/replizierter Daten verifiziert werden müssen, ist keines der vorstehenden Datensysteme für Verteilung in großem Umfang und Dezentralisierung an der Edge (oder außerhalb der großen Datenzentren) optimiert. Diese Datensysteme sind ferner aufwändig hinsichtlich Ressourcen (Leistung, Bandbreite, Rechenzyklen) und werden häufig ungeachtet der strengen und deterministischen Latenzanforderungen, die an der Edge gelten, zum Erreichen eines hohen Durchsatzes forciert.
-
Die folgenden Beispiele erörtern Techniken zum Generieren und Verifizieren von Zeitstempeln, die sicher, zuverlässig und schnell eine effiziente Koordination über viele verschiedene Caches von Informationen, die verteilte Transaktionen umfassen, erreichen können. Solch eine Koordination ermöglicht die zuverlässige Verwendung von MVCC-Datensystemen oder -Blockketten in Edge-Computing-Szenarien. Die Verwendung von zeitbasierter MVCC ist aufgrund der weitläufigen Verteilung von Edge-Transaktionen, die viele Bereitstellungen herkömmlicher, fest gekoppelter oder ausschlusskontrollbasierter Synchronisations- oder Konsistenzverwaltungssysteme verhindert, insbesondere für ihren Einsatz in Edge-Computing-Szenarien interessant.
-
Bei Verwendung sicherer hochpräziser Takte (mit kleiner Granularität), die auf die im Folgenden ausführlicher erörterte Weise generiert werden, kann eine MVCC-Datenbank koordinierte Zeit als eine monoton steigende Versionsnummer einsetzen und hochpräzise zeitbasierte Versionsverwaltung für verteilte Edge-Transaktionen erreichen. Außerdem kann die Verwendung hochpräziser Takte auch Vorteile für bestimmte Blockkettentransaktionen oder andere Distributed-Ledger-Transaktionen (Transaktionen verteilter Kassenbücher) bieten, die in Edge-Computing (oder anderen verteilten Rechenszenarien) eingesetzt werden und die die Verwendung und Verifizierung von Zeitstempelwerten unter vielen Datenverarbeitungsentitäten einbeziehen.
-
Die folgenden Beispiele ermöglichen insbesondere Nebenläufigkeitskontrolle bei Verwendung zeitbasierter Koordination, die durch eine sichere Generierung und Verifizierung von Zeitstempeln bereitgestellt wird. Die Vorteile der Zeitgabeansätze umfassen folgende: Ermöglichen von MVCC- und Blockkettentransaktionen mit geringem Overhead an der Edge; Eliminieren von expliziten Sperren von geteilten Datensätzen durch Verwenden von Zeitzäunen/Zeitstempeln; Ermöglichen von geringer Leistung und Latenz zur Berechnung und Verifizierung; und Einführen verbesserter Vertrauenswürdigkeit durch eine zusätzliche Gewährleistungsstufe, beispielsweise eine hardwarebasierte Sicherheit, die durch die Glaubwürdigkeit des Herstellers gestützt wird. Ferner können diese Ansätze mit geringerer Softwarekomplexität bereitgestellt werden, da Software, die innerhalb einer einzigen Administrations- oder Besitzdomäne (beispielsweise in einer Datenzentrums-Cloud oder einer zentralen Vermittlungsstelle) ausgeführt wird, hardwarebasierte vertrauenswürdige Zeitstempel und hardwaregestützte/hardwarebasierte Validierung von Zeitstempeln verwenden kann. Außerdem muss Verifizierung von Zeitgabeinformationen nicht mit zusätzlichen Bibliotheken ausgeführt werden, die Validierung in Softaware durchführen. Selbst Software in einer einzigen Besitzdomäne kann durch diese Fähigkeiten unterstützt werden, da es für Transaktionsanwendungen möglich wird, nach Bedarf zwischen Edge (mittlerer Tier) und Datenzentrums-Cloud (Backend-Tier) zu migrieren.
-
Wie in den nachstehenden Beispielen ausführlicher dargelegt, können diese und andere Verwendungen und Konfigurationen von Zeitstempeln innerhalb einer Vielzahl von Hardwarekonfigurationen in einer Edge-Computing-Architektur angewendet werden. Weitere Überblicke über Edge-Computing- und Workload-Typen werden in den folgenden Beispielen erörtert.
-
Beispielhafte Edge-Computing-Architekturen
-
1 ist ein Blockdiagramm 100, das eine Übersicht über eine Konfiguration für Edge-Computing darstellt, die eine Verarbeitungsschicht umfasst, die in vielen der aktuellen Beispiele als „Edge-Cloud“ bezeichnet wird. Diese Netzwerktopologie, die eine Anzahl von herkömmlichen Netzwerkschichten (einschließlich jener, die hierin nicht dargestellt sind) umfassen kann, kann durch die Verwendung der hierin erörterten sicheren Speicherverwaltungstechniken und Rechen- und Netzwerkkonfigurationen erweitert werden.
-
Wie dargestellt, ist die Edge-Cloud 110 an einem Edge-Standort, beispielsweise der Basisstation 140, einem lokalen Verarbeitungshub 150 oder einer zentralen Vermittlungsstelle 120, ortsgleich angeordnet und kann daher mehrere Entitäts-, Geräte- und Equipment-Instanzen umfassen. Die Edge-Cloud 110 befindet sich wesentlich näher an den Endpunkt-(Verbraucher- und Erzeuger-)Datenquellen 160 (z. B. autonomen Fahrzeugen 161, Benutzer-Equipments 162, gewerblichen und industriellen Einrichtungen 163, Videoaufnahmegeräten 164, Drohnen 165, Geräten intelligenter Städte und Gebäude 166, Sensoren, IoT-Geräten 167 usw.) als das Cloud-Datenzentrum 130.
-
Rechen-, Arbeitsspeicher- und Datenspeicherressourcen, die an den Rändern in der Edge-Cloud 110 angeboten werden, sind zum Bereitstellen von Reaktionszeiten mit extrem niedriger Latenz für Dienste und Funktionen, die von den Endpunkt-Datenquellen 160 verwendet werden, sowie zum Reduzieren von Netzwerk-Backhaul-Verkehr von der Edge-Cloud 110 zum Cloud-Datenzentrum 130 entscheidend, um dadurch neben anderen Vorteilen den Energieverbrauch und Netzwerknutzungen insgesamt zu verbessern.
-
Rechen-, Arbeitsspeicher- und Datenspeicherressourcen sind knappe Ressourcen und verringern sich im Allgemeinen in Abhängigkeit vom Edge-Standort (z. B. sind an Verbraucher-Endpunktgeräten weniger Verarbeitungsressourcen verfügbar als an einer Basisstation oder einer zentralen Vermittlungsstelle). Je näher jedoch der Edge-Standpunkt zum Endpunkt (z. B. UEs) ist, umso mehr werden Raum und Leistung eingeschränkt. Demnach versucht Edge-Computing als allgemeines Designprinzip, die Menge von Ressourcen, die für Netzwerkdienste benötigt werden, durch die Verteilung von mehr Ressourcen zu minimieren, die sowohl geografisch als auch bezüglich der Netzwerkzugangszeit näher angeordnet sind.
-
Im Folgenden werden Aspekte einer Edge-Cloud-Architektur beschrieben, die mehrere potenzielle Bereitstellungen abdeckt und Beschränkungen überwindet, die einige Netzwerkbetreiber oder Dienstanbieter in ihren eigenen Infrastrukturen aufweisen können. Diese umfassen eine Änderung von Konfigurationen basierend auf dem Edge-Standort (da zum Beispiel Ränder auf einer Basisstationsebene eine stärker eingeschränkte Performance aufweisen); Konfigurationen basierend auf dem Typ von Rechen-, Arbeitsspeicher-, Datenspeicher, Fabric-, Beschleunigungs- oder dergleichen Ressourcen, die für Edge-Standorte, Standort-Tiers oder Standortgruppen verfügbar sind; der Dienst-, Sicherheits-, Verwaltungs- und Orchestrierungsfähigkeiten und damit verbundener Ziele zum Erreichen von Nutzbarkeit und Performance von Enddiensten.
-
Edge-Computing ist ein sich entwickelndes Paradigma, wobei Datenverarbeitung typischerweise durch die Verwendung einer Rechenplattform, die an Basisstationen, Gateways, Netzwerkroutern oder anderen Geräten implementiert ist, die wesentlich näher an Endpunktgeräten sind, welche die Daten erzeugen und konsumieren, am oder näher zum „Rand“ eines Netzwerks durchgeführt wird. Zum Beispiel können Edge-Gateway-Server mit Pools von Arbeitsspeicher- und Datenspeicherressourcen ausgestattet sein, um Berechnung für Anwendungsfälle mit niedriger Latenz (z. B. autonomes Fahren oder Videoüberwachung) für verbundene Client-Geräte in Echtzeit durchzuführen. Oder als ein Beispiel können Basisstationen um Rechen- und Beschleunigungsressourcen erweitert werden, um Dienst-Workloads für verbundene Benutzer-Equipments direkt zu verarbeiten, ohne Daten über Backhaul-Netzwerke weiter zu kommunizieren. Oder als ein weiteres Beispiel kann Netzwerkverwaltungshardware einer zentralen Vermittlungsstelle durch Rechenhardware ersetzt werden, die virtualisierte Netzwerkfunktionen ausführt und Rechenressourcen zur Ausführung von Dienst- und Verbraucherfunktionen für verbundene Geräte bietet. Diese und andere Szenarien können bei Verwendung sicherer Generierung und Verifizierung von Zeitstempeln, wie in der folgenden Erörterung vorgesehen, verbessert werden.
-
Im Gegensatz zur Netzwerkarchitektur von 1 sind herkömmliche Anwendungen von Endpunkten (z. B. UE, Fahrzeug-zu-Fahrzeug (V2V), Verkehrsvernetzung (V2X) usw.) auf lokale Geräte- und entfernte Cloud-Datenspeicherung und -verarbeitung zum Austauschen und Koordinieren von Informationen angewiesen. Eine Cloud-Datenanordnung ermöglicht Langzeit-Datensammlung und - speicherung, ist aber nicht optimal für hoch zeitvariable Daten, wie beispielsweise Kollision, Umschaltung einer Verkehrsampel usw., und kann bei dem Versuch, Latenzschwierigkeiten zu bewältigen, scheitern.
-
In Abhängigkeit von den Echtzeitanforderungen in einem Kommunikationskontext kann bei einer Edge-Computing-Bereitstellung eine hierarchische Struktur von Datenverarbeitungs- und -speicherknoten definiert werden. Solch eine Bereitstellung kann zum Beispiel lokale Verarbeitung mit extrem niedriger Latenz, regionale Speicherung und Verarbeitung sowie Speicherung und Verarbeitung auf der Basis von entfernten Cloud-Datenzentren umfassen. Performance-Kennzahlen (KPI - Key Performance Indicator) können verwendet werden um zu identifizieren, wo Sensordaten am besten übertragen und wo sie verarbeitet oder gespeichert werden. Dies hängt typischerweise von der ISO-Schichtabhängigkeit der Daten ab. Zum Beispiel ändern Daten der unteren Schichten (PHY, MAC, Routing usw.) sich typischerweise schneller und werden besser lokal verarbeitet, um die Latenzanforderungen zu erfüllen. Daten der oberen Schichten, wie beispielsweise Daten der Anwendungsschicht, sind typischerweise weniger zeitkritisch und können in einem entfernten Cloud-Datenzentrum gespeichert und verarbeitet werden.
-
2 veranschaulicht Bereitstellung und Orchestrierung für virtuelle Edge-Konfigurationen über ein Edge-Computing-System, das zwischen mehreren Edge-Knoten und mehreren Mandanten betrieben wird. Konkret zeigt 2 Koordination eines ersten Edge-Knotens 222 und eines zweiten Edge-Knotens 224 in einem Edge-Computing-System 200, um Anforderungen und Antworten für verschiedene Client-Endpunkte 210 von verschiedenen virtuellen Edge-Instanzen zu erfüllen. Die virtuellen Edge-Instanzen stellen Edge-Rechenfähigkeiten und - Verarbeitung in einer Edge-Cloud mit Zugriff auf ein Cloud-/Datenzentrum 240 für Anforderungen von Websites, Anwendungen, Datenbankservern usw. mit höherer Latenz bereit. Demnach ermöglicht die Edge-Cloud Koordination von Verarbeitung unter mehreren Edge-Knoten für mehrere Mandanten oder Entitäten.
-
Im Beispiel von 2 umfassen diese virtuellen Edge-Instanzen: eine erste virtuelle Edge 232, die einem ersten Mandanten (Mandant 1) geboten wird und eine erste Kombination von Edge-Speicherung, - Datenverarbeitung und -Diensten bietet; und eine zweite virtuelle Edge 234, die eine zweite Kombination von Edge-Speicherung, -Datenverarbeitung und -Diensten für einen zweiten Mandanten (Mandant 2) bietet. Die virtuellen Edge-Instanzen 232, 234 sind unter den Edge-Knoten 222, 224 verteilt und können Szenarien umfassen, in welchen eine Anforderung und eine Antwort von den gleichen oder verschiedenen Edge-Knoten erfüllt werden. Die Konfiguration jedes Edge-Knotens 222, 224, um auf verteilte und dennoch koordinierte Weise zu funktionieren, erfolgt basierend auf Edge-Provisionierungsfunktionen 250. Die Funktionalität der Edge-Knoten 222, 224, um koordinierten Betrieb für Anwendungen und Dienste unter mehreren Mandanten bereitzustellen, entsteht basierend auf Orchestrierungsfunktionen 260.
-
Es versteht sich, dass einige der Geräte in 210 mehrmandantenfähige Geräte sind, wobei Mandant 1 innerhalb eines Mandant-1-‚Slice‘ funktionieren kann, während ein Mandant 2 innerhalb eines Mandant-2-Slice funktionieren kann. Ein vertrauenswürdiges mehrmandantenfähiges Gerät kann ferner einen mandantenspezifischen kryptografischen Schlüssel enthalten, derart dass die Kombination von Schlüssel und Slice als eine „Vertrauenswurzel“ (RoT - Root of Trust) oder eine mandantenspezifische RoT betrachtet wird. Eine RoT kann ferner unter Verwendung einer Sicherheitsarchitektur, wie beispielsweise einer Device Identity Composition Engine-(DICE-)Architektur, wobei ein DICE-Hardware-Baustein zum Erstellen von Kontexten für eine geschichtete vertrauenswürdige Datenverarbeitungsbasis (TBC - Trusted Computing Base) zur Schichtung von Gerätefähigkeiten verwendet wird (beispielsweise ein feldprogrammierbares Gate-Array (FPGA - Field Programmable Gate Array)), dynamisch zusammengesetzt berechnet werden. Die RoT kann außerdem für einen Kontext vertrauenswürdiger Datenverarbeitung (Trusted Computing) berechnet werden, um jeweilige Mandantenoperationen usw. zu unterstützen.
-
Edge-Computing-Knoten können Ressourcen (Speicher, CPU, GPU, Interrupt-Controller, E-/A-Controller, Speichercontroller, Buscontroller usw.) partitionieren, wobei jede Partition eine RoT-Fähigkeit enthalten kann, und wobei ferner Ausfächerung und Schichtung gemäß einem DICE-Modell auf Edge-Knoten angewendet werden können. Cloud-Computing-Knoten, die aus Containern, FaaS-Maschinen (FaaS - Function as a Service), Servlets, Servern oder einer anderen Berechnungsabstraktion bestehen, können gemäß einer DICE-Schichtungs- und -Ausfächerungsstruktur partitioniert werden, um einen RoT-Kontext für dieselben zu unterstützen. Demgemäß können die jeweiligen RoTs, die sich über die Entitäten 210, 222 und 240 erstrecken, den Aufbau einer verteilten vertrauenswürdigen Datenverarbeitungsbasis (DTCB - Distributed Trusted Computing Base) koordinieren, derart dass ein mandantenspezifischer virtueller vertrauenswürdiger sicherer Kanal aufgebaut werden kann, der alle Elemente von Ende zu Ende verbindet.
-
Demgemäß kann das Edge-Computing-System zum Bereitstellen von Orchestrierung mehrerer Anwendungen durch die Verwendung von Containern (einer bereitstellbaren Container-Einheit von Software, die Codes und benötigte Abhängigkeiten bereitstellt) in einer Umgebung mit mehreren Besitzern und mehreren Mandanten erweitert werden. Ein mehrmandantenfähiger Orchestrator kann zum Durchführen von Schlüsselverwaltung, Vertrauensankerverwaltung und anderen Sicherheitsfunktionen in Bezug auf die Provisionierung und den Lebenszyklus des Konzepts des vertrauenswürdigen ‚Slice‘ in 2 verwendet werden. Ein Orchestrator kann eine DICE-Schichtung und - Ausfächerungskonstruktion zum Erstellen eines RoT-Kontexts verwenden, der mandantenspezifisch ist. Demnach können Orchestrierungsfunktionen, die von einem Orchestrator bereitgestellt werden, als mandantenspezifischer Orchestrierungsanbieter teilnehmen.
-
Demgemäß kann ein Edge-Computing-System so konfiguriert sein, dass es Anforderungen und Antworten für verschiedene Client-Endpunkte von mehreren virtuellen Edge-Instanzen (und von einem Cloud- oder Remote-Datenzentrum (nicht dargestellt)) erfüllt. Die Verwendung dieser virtuellen Edge-Instanzen unterstützt mehrere Mandanten und mehrere Anwendungen (z. B. AR/VR, Unternehmensanwendungen, Inhaltszustellung, Gaming, Rechenauslagerung) gleichzeitig. Ferner kann es mehrere Typen von Anwendungen innerhalb der virtuellen Edge-Instanzen geben (z. B. normale Anwendungen, latenzempfindliche Anwendungen, latenzkritische Anwendungen, Benutzerebenen-Anwendungen, Netzwerkanwendungen usw.). Die virtuellen Edge-Instanzen können sich außerdem über mehrere Systeme mehrerer Besitzer an verschiedenen geografischen Standorten erstrecken.
-
In weiteren Beispielen können Edge-Computing-Systeme Container in einem Edge-Computing-System bereitstellen. Als ein vereinfachtes Beispiel ist ein Container-Verwalter so ausgelegt, dass er containerisierte Pods, Funktionen und Funktion-als-ein-Dienst-Instanzen durch Ausführung über Rechenknoten aufruft oder containerisierte virtualisierte Netzwerkfunktionen durch Ausführung über Rechenknoten getrennt aufruft. Diese Anordnung kann zur Verwendung durch mehrere Mandanten in einer Systemanordnung geeignet sein, wobei containerisierte Pods, Funktionen und FaaS-Dienst-Instanzen innerhalb von virtuellen Maschinen gestartet werden, die für jeden Mandanten spezifisch sind (neben der Ausführung virtualisierter Netzwerkfunktionen).
-
Innerhalb der Edge-Cloud können ein erster Edge-Knoten 222 (der z. B. von einem ersten Besitzer betrieben wird) und ein zweiter Edge-Knoten 224 (der z. B. von einem zweiten Besitzer betrieben wird) einen Container-Orchestrator betreiben oder darauf antworten, um die Ausführung verschiedener Anwendungen innerhalb der virtuellen Edge-Instanzen zu koordinieren, die für jeweilige Mandanten geboten werden. Zum Beispiel können die Edge-Knoten 222, 224 basierend auf Edge-Provisionierungsfunktionen 250 koordiniert werden, während der Betrieb der verschiedenen Anwendungen mit den Orchestrierungsfunktionen 260 koordiniert wird.
-
Verschiedene Systemanordnungen können eine Architektur bereitstellen, die VMs, Container und Funktionen in Bezug auf die Anwendungskomposition gleich behandelt (und resultierende Anwendungen sind Kombinationen dieser drei Bestandteile). Jeder Bestandteil kann die Verwendung einer oder mehrerer Beschleunigerkomponenten (z. B. FPGA, ASIC) als ein lokales Backend einbeziehen. Auf diese Weise können Anwendungen über mehrere Edge-Besitzer verteilt und durch einen Orchestrator koordiniert werden.
-
Es versteht sich, dass die hierin erörterten Edge-Computing-Systeme und -Anordnungen in verschiedenen Lösungen, Diensten und/oder Anwendungsfällen anwendbar sein können. Als Beispiel stellt 3 einen vereinfachten Rechen- und Kommunikationsanwendungsfall für Fahrzeuge dar, der mobilen Zugriff auf Anwendungen in einem Edge-Computing-System 300 umfasst, das eine Edge-Cloud 110 implementiert. In diesem Anwendungsfall kann jeder Client-Rechenknoten 310 als ein fahrzeuginternes Rechensystem (z. B. fahrzeuginternes Navigations- und/oder Infotainmentsystem) realisiert sein, das sich in entsprechenden Fahrzeugen befindet, die während der Fahrt auf einer Straße mit Edge-Gateway-Knoten 320 kommunizieren. Zum Beispiel können die Edge-Gateway-Knoten 320 sich in Kabelverzweigern am Straßenrand befinden, die entlang der Straße, an Straßenkreuzungen oder anderen Orten in der Nähe der Straße angeordnet sein können. Während jedes Fahrzeug auf der Straße fährt, kann die Verbindung zwischen seinem Client-Rechenknoten 310 und einem spezifischen Edge-Gateway-Knoten 320 sich propagieren, um eine beständige Verbindung und einen beständigen Kontext für den Client-Rechenknoten 310 aufrechtzuerhalten. Jeder der Edge-Gateway-Knoten 320 umfasst Verarbeitungs- und Speicherfähigkeiten, und dementsprechend können Verarbeitung und/oder Speicherung von Daten für den Client-Rechenknoten 310 auf einem oder mehreren der Edge-Gateway-Knoten 320 durchgeführt werden.
-
Jeder der Edge-Gateway-Knoten 320 kann mit einem oder mehreren Edge-Ressourcenknoten 340 kommunizieren, die veranschaulichend als Rechenserver, Appliances oder Komponenten realisiert sind, die sich an oder in einer Kommunikationsbasisstation 342 (z. B. einer Basisstation eines zellularen Netzwerks) befinden. Wie bereits erwähnt, umfasst jeder Edge-Ressourcenknoten 340 Verarbeitungs- und Speicherfähigkeiten, und dementsprechend können Verarbeitung und/oder Speicherung von Daten für die Client-Rechenknoten 310 auf den Edge-Ressourcenknoten 340 durchgeführt werden. Zum Beispiel kann die Verarbeitung von Daten, die weniger dringend oder wichtig sind, vom Edge-Ressourcenknoten 340 durchgeführt werden, während die Verarbeitung von Daten, die einer höhere Dringlichkeit oder Wichtigkeit aufweisen, von Edge-Gateway-Geräten oder den Client-Knoten selbst (zum Beispiel in Abhängigkeit von den Fähigkeiten jeder Komponente) durchgeführt werden kann. Ferner können verschiedene drahtgebundene oder drahtlose Kommunikationsverbindungen (z. B. drahtgebundene Backhaul-Glasfaserverbindungen, drahtlose 5G-Verbindungen) zwischen den Edge-Knoten 320, dem/den Edge-Ressourcenknoten 340, dem Kerndatenzentrum 350 und der Netzwerk-Cloud 360 bestehen.
-
Der/Die Edge-Ressourcenknoten 340 können auch mit dem Kerndatenzentrum 350 kommunizieren, das Rechenserver, Appliances und/oder andere Komponenten umfassen kann und sich an einem zentralen Standort (z. B. einer zentralen Vermittlungsstelle eines zellularen Kommunikationsnetzwerks) befindet. Das Kerndatenzentrum 350 kann ein Gateway zur globalen Netzwerk-Cloud 360 (z. B. zum Internet) für Operationen der Edge-Cloud 110 bereitstellen, die von dem/den Edge-Ressourcenknoten 340 und den Edge-Gateway-Knoten 320 gebildet werden. Außerdem kann das Kerndatenzentrum 350 in einigen Beispielen eine Menge von Verarbeitungs- und Speicherfähigkeiten umfassen, und dementsprechend können Verarbeitung und/oder Speicherung von Daten für die Client-Rechengeräte im Kerndatenzentrum 350 durchgeführt werden (z. B. Verarbeitung geringer Dringlichkeit oder Wichtigkeit oder hoher Komplexität). Die Edge-Gateway-Knoten 320 oder die Edge-Ressourcenknoten 340 können die Verwendung von zustandsabhängigen Anwendungen 332 und eines geografisch verteilten Datenspeichers 334 (z. B. Datenbank, Datenspeicher usw.) bieten.
-
In weiteren Beispielen kann 3 verschiedene Typen von mobilen Edge-Knoten, wie beispielsweise einen Edge-Knoten, der in einem Fahrzeug (z. B. Auto, Straßenbahn, LKW, Zug usw.) oder einer anderen mobilen Einheit gehostet wird, verwenden, während der Edge-Knoten sich entlang der Plattform, die ihn hostet, zu anderen geografischen Standorten bewegt. Bei Fahrzeug-zu-Fahrzeug-Kommunikationen können einzelne Fahrzeuge sogar als Netzwerk-Edge-Knoten für andere Autos dienen (um z. B. Zwischenspeicherung, Berichterstattung, Datenaggregation usw. durchzuführen). Es versteht sich daher, dass die Anwendungskomponenten, die in verschiedenen Edge-Knoten vorgesehen sind, auf eine Vielzahl von Settings verteilt sein können, die eine Koordination zwischen einigen Funktionen oder Operationen an einzelnen Endpunktgeräten oder den Edge-Gateway-Knoten 320, einigen anderen am Edge-Ressourcenknoten 340 und anderen im Kerndatenzentrum 350 oder der globalen Netzwerk-Cloud 360 umfassen.
-
In weiteren Konfigurationen kann das Edge-Computing-System FaaS- oder EaaS-Datenverarbeitungsfähigkeiten durch die Verwendung von jeweiligen ausführbaren Anwendungen und Funktionen implementieren. In einem Beispiel schreibt ein Entwickler eine Funktionscode (hierin z. B. „Computercode“), der eine oder mehrere Computerfunktionen darstellt, und der Funktionscode wird auf eine FaaS-Plattform hochgeladen, die zum Beispiel durch einen Edge-Knoten oder ein Datenzentrum bereitgestellt wird. Ein Auslöser, wie beispielsweise ein Dienstanwendungsfall oder ein Edge-Verarbeitungsereignis, initiiert die Ausführung des Funktionscode mit der FaaS-Plattform.
-
In einem Beispiel von FaaS- oder EaaS-Bereitstellung wird ein Container verwendet, um eine Umgebung bereitzustellen, in welcher der Funktionscode ausgeführt wird. Der Container kann eine beliebige Entität mit getrennter Ausführung sein, beispielsweise ein Prozess, ein Docker- oder Kubernetes-Container, eine virtuelle Maschine usw. Innerhalb des Edge-Computing-Systems werden verschiedene Datenzentrums-, Edge- und Endpunktgeräte (einschließlich mobiler) zum „Hochfahren“ von Funktionen (z. B. Aktivieren und/oder Zuweisen von Funktionsvorgängen) verwendet, die auf Wunsch skaliert werden. Der Funktionscode wird auf einem Gerät der physischen Infrastruktur (z. B. Edge-Computing-Knoten) und zugrundeliegenden virtualisierten Containern ausgeführt. Schließlich wird der Container auf der Infrastruktur in Reaktion auf der Beendigung der Ausführung „heruntergefahren“ (z. B. deaktiviert und/oder seine Zuweisung aufgehoben).
-
Weitere Aspekte von FaaS und EaaS können Bereitstellung von Edge-Funktionen in der Art und Weise eines Dienstes ermöglichen, einschließlich einer Unterstützung jeweiliger Funktionen, die Edge-Computing als einen Dienst unterstützen. Zusätzliche Merkmale von FaaS und EaaS können umfassen: eine präzise Abrechnungskomponente, die ermöglicht, dass Kunden (z. B. Computercode-Entwickler) nur dann zahlen, wenn ihr Code ausgeführt wird; gemeinsame Datenspeicherung zum Speichern von Daten zur Wiederverwendung durch eine oder mehrere Funktionen; Orchestrierung und Verwaltung zwischen einzelnen Funktionen; Funktionsausführungsverwaltung, Parallelismus und Konsolidierung; Verwaltung von Container- und Funktionsspeicherplätzen; Koordination von Beschleunigungsressourcen, die für Funktionen verfügbar sind; und Verteilung von Funktionen zwischen Containern (einschließlich „warmer“ Container, die bereits bereitgestellt oder in Betrieb sind, gegenüber kalten, die Bereitstellung oder Konfiguration benötigen).
-
Einige der Techniken und Konfigurationen, die hierin in Bezug auf Edge-Computing erörtert werden, können innerhalb einer MEC-Umgebung wie jener implementiert sein, die durch die in ETSI GS MEC-003 „Mobile Edge Computing (MEC); Framework and Reference Architecture“ (z. B. V2.0.3) veröffentlichten Standards und Ansätze sowie die zugehörigen betrieblichen MEC- und Netzwerkimplementierungen bereitgestellt wird. Obwohl die vorliegenden erörterten Formen von Techniken zur Generierung und Verifizierung von Zeitstempeln erhebliche Vorteile für MEC-Architekturen und Systemimplementierungen bereitstellen können, kann die Anwendbarkeit der vorliegenden Techniken und Konfigurationen auf eine beliebige Anzahl von Edge-Computing-, IoT-, Fog- oder verteilten Computing-Plattformen ausgedehnt werden.
-
MEC ist dazu gedacht, die Entwicklung von Mobile-Anwendungsfällen von Edge-Computing zu unterstützen, um Anwendungsentwicklern und Inhaltsanbietern Zugriff auf Datenverarbeitungsfähigkeiten und eine IT-Dienstumgebung in dynamischen Settings am Rande des Netzwerks zu ermöglichen. MEC bietet Anwendungsentwicklern und Inhaltsanbietern Cloud-Computing-Fähigkeiten und eine IT-Dienstumgebung unter Verwendung von Equipment, das näher an den Rändern eines Netzwerks (z. B. eines zellularen Netzwerks) liegt. Diese Umgebung ist durch eine extrem niedrige Latenz und eine hohe Bandbreite sowie Echtzeitzugriff auf Funknetzwerkinformationen gekennzeichnet, die durch Anwendungen wirksam eingesetzt werden können. Die MEC-Technologie ermöglicht Betreibern eine flexible und schnelle Bereitstellung innovativer Anwendungen und Dienste für Mobilteilnehmer, Unternehmen und vertikale Segmente.
-
MEC kann, wie andere Edge-Computing-Bereitstellungen, Netzwerküberlast durch Ausführen von Anwendungen, Datenfunktionen, Erkennung usw. näher zum Benutzer (z. B. einem mobilen Gerät, Benutzer-Equipment (UE), Station (STA) usw.) reduzieren. Einige MEC-Details, die mit der Sicherheit (z. B. sowohl Benutzersicherheit als auch Anwendungsintegrität), Funknutzung usw. zu tun haben, wurden vom Europäischen Institut für Telekommunikationsnormen (ETSI - European Telecommunications Standards Institute) beispielsweise in dem am 1. September 2014 herausgegebenen „Mobile Edge Computing Introductory Technical White Paper“ veröffentlicht. Ein Satz von Spezifikationen und Weißbüchern, der weitere Details und Implementierungsanwendungsfälle für MEC-Szenarien bereitstellt, wird vom ETSI als Teil der ETSI-MEC-Industriespezifikationsgruppe (ISG) auf fortlaufenden Basis weiterentwickelt.
-
MEC-Architekturen bieten Anwendungsentwicklern und Inhaltsanbietern Cloud-Computing-Fähigkeiten und eine IT-Dienstumgebung am Rande des Netzwerks. Diese Umgebung ist durch eine extrem niedrige Latenz und eine hohe Bandbreite sowie Echtzeitzugriff auf Funknetzwerkinformationen gekennzeichnet, die durch Anwendungen wirksam eingesetzt werden können. Die MEC-Technologie ermöglicht demnach eine flexible und schnelle Bereitstellung innovativer Anwendungen und Dienste für Mobilteilnehmer, Unternehmen und vertikale Segmente. In KFZ-Umgebungen zum Beispiel können Anwendungen, wie beispielsweise V2X (Verkehrsvernetzung, auf der Basis von IEEE 802.11p oder auf der Basis von 3GPP LTE-V2X) die MEC-Technologie zum Austauschen von Daten, Bereitstellen von Daten für Aggregationspunkte und Zugreifen auf Daten in Datenbanken verwenden, um einen Überblick über die lokale Situation bereitzustellen und zu erhalten, die von einer Vielzahl von Sensoren (durch verschiedene Autos, Einheiten am Straßenrand usw.) abgeleitet wird.
-
4 stellt ein Blockdiagramm 400 für eine beispielhafte Multi-Access-Edge-Computing (MEC)-Systemarchitektur dar. In einem Beispiel kann die MEC-Systemarchitektur gemäß einer Spezifikation, einem Standard oder einer anderen Definition (z. B. gemäß der Spezifikation ETSI ISG MEC-0003) definiert sein. In diesem Diagramm beziehen sich Mp-Bezugspunkte auf MEC-Plattformfunktionalität, Mm-Bezugspunkte beziehen sich auf Verwaltung und Mx bezieht sich auf Verbindungen mit externen Entitäten. Die Dienste, Anwendungen, Orchestratoren und anderen Entitäten, die hierin erörtert werden, können mit jeder Anzahl der Entitäten der MEC-Systemarchitektur implementiert werden, die in 4 dargestellt ist, und die Kommunikationen zum Durchführen von Netzwerkoperationen können mit jeder Anzahl der Schnittstellen der MEC-Systemarchitektur implementiert werden, die in 4 dargestellt ist.
-
Zum Beispiel kann eine Geräteanwendung 402, die an einem Client-Benutzer-Equipment-Gerät (z. B. Smartphone) ausgeführt wird, auf einen Multi-Access-Edge-Orchestrator 410 zugreifen, während der Orchestrator 410 Systemkonfiguration oder -merkmale eines Edge-Computing-Hosts zur Erfüllung von Diensten und Anwendungen koordiniert. Ferner kann ein spezifischer MEC-Host 450 eine oder mehrere MEC-Anwendungen 451, 452, 453 oder ein Plattform 460 ausführen, die eine MEC-Ressource oder einen MEC-Dienst über eine virtuelle Edge-Appliance bereitstellen, wie in 7 und 9 ausführlicher dargelegt. Ein virtualisierter Infrastrukturverwalter 440 und ein MEC-Plattformverwalter 430 stellen Verwaltung der Verwendung der Hosts, Plattformen und Ressourcen bereit und können außerdem verwalteten Zugriff auf einen Attestierungsdienst oder Verifizierer (nicht dargestellt) bereitstellen. Der virtualisierte Infrastrukturverwalter 440 und der MEC-Plattformverwalter 430 können auch verwalteten Zugriff auf andere MEC-Hosts (z. B. Host 470) oder MEC-Plattformen (z. B. Plattform 480) bereitstellen, die ebenfalls an Verwendungen von Attestierungsfunktionalität beteiligt sein können, wie hierin beschrieben.
-
Beispielhafte Computing-Geräte
-
Auf einer allgemeineren Ebene kann ein Edge-Computing-System so beschrieben werden, dass es eine Anzahl von Bereitstellungen umfasst, die in der Edge-Cloud 110 in Betrieb sind und Koordination von Client- und verteilten Computing-Geräten bereitstellen. 5 stellt einer weiter abstrahierte Übersicht über Schichten für verteiltes Rechnen, die innerhalb einer Edge-Computing-Umgebung bereitgestellt werden, zu Veranschaulichungszwecken dar.
-
5 stellt ein Edge-Computing-System zum Bereitstellen von Edge-Diensten und -Anwendungen für Entitäten mit mehreren Akteuren allgemein dar, wie unter einem oder mehreren Client-Rechenknoten 502, einem oder mehreren Edge-Gateway-Knoten 512, einem oder mehreren Edge-Aggregationsknoten 522, einem oder mehreren Kerndatenzentren 532 und einer globalen Netzwerk-Cloud 542 verteilt, wie über Schichten des Netzwerks verteilt. Die Implementierung des Edge-Computing-Systems kann an einem oder für einen Telekommunikationsdienstanbieter („Telco“ oder „TSP“ - Telecommunication Service Provider), einen Internetder-Dinge-Dienstanbieter, einen Cloud-Dienstanbieter (CSP - Cloud Service Provider), eine Unternehmensentität oder jede andere Anzahl von Entitäten bereitgestellt werden. Verschiedene Formen von drahtgebundenen oder drahtlosen Verbindungen können zum Herstellen von Konnektivität zwischen den Knoten 502, 512, 522, 532, einschließlich Zwischenverbindungen zwischen solchen Knoten (z. B. Verbindungen zwischen Edge-Gateway-Knoten 512 und Verbindungen zwischen Edge-Aggregationsknoten 522), konfiguriert werden.
-
Jeder Knoten oder jedes Gerät des Edge-Computing-Systems befindet sich auf einer spezifischen Schicht entsprechend den Schichten 510, 520, 530, 540, 550. Zum Beispiel befinden die Client-Rechenknoten 502 sich jeweils auf einer Endpunktschicht 510, während jeder der Edge-Gateway-Knoten 512 sich auf einer Edge-Geräteschicht 520 (lokale Ebene) des Edge-Computing-Systems befindet. Außerdem befindet sich jeder der Edge-Aggregationsknoten 522 (und/oder jedes der Fog-Geräte 524, wenn mit oder gemäß einer Fog-Networking-Konfiguration 526 angeordnet oder betrieben) auf einer Netzwerkzugangsschicht 530 (eine Zwischenebene). Fog-Computing (oder „Fogging“) bezieht sich im Allgemeinen auf Erweiterungen von Cloud-Computing zum Rand eines Unternehmensnetzwerks, typischerweise in einem koordinierten verteilten oder Mehrfachknoten-Netzwerk. Einige Formen von Fog-Computing stellen die Bereitstellung von Rechen-, Speicher- und Vernetzungsdiensten zwischen Endgeräten und Cloud-Computing-Datenzentren für die Cloud-Computing-Standorte bereit. Solche Formen von Fog-Computing stellen Operationen bereit, die mit Edge-Computing, wie hierin erörtert, in Einklang stehen; viele der hierin erörterten Aspekte von Edge-Computing sind auf Fog-Netzwerke, Fogging und Fog-Konfigurationen anwendbar. Ferner können hierin erörterte Aspekte der Edge-Computing-Systeme als ein Fog konfiguriert werden, oder Aspekte eines Fogs können in eine Edge-Computing-Architektur integriert werden.
-
Das Kerndatenzentrum 532 befindet sich auf einer Kernnetzwerkschicht 540 (z. B. einer regionaler oder geografisch zentralen Ebene), während die globale Netzwerk-Cloud 542 sich auf einer Cloud-Datenzentrumsschicht 550 (z. B. einer nationalen oder globalen Ebene) befindet. Die Verwendung von „Kern“ wird als ein Begriff für einen zentralen Netzwerkstandort tiefer im Netzwerk bereitgestellt, der für mehrere Edge-Knoten oder -Komponenten zugänglich ist; „Kern“ bezeichnet jedoch nicht unbedingt die „Mitte“ oder die tiefste Stelle des Netzwerks. Demgemäß kann das Kerndatenzentrum 532 sich innerhalb, an oder in der Nähe der Edge-Cloud 110 befinden.
-
Obwohl eine veranschaulichende Anzahl von Client-Rechenknoten 502, Edge-Gateway-Knoten 512, Edge-Aggregationsknoten 522, Kerndatenzentren 532, globalen Netzwerk-Clouds 542 in 5 dargestellt ist, versteht es sich, dass das Edge-Computing-System mehr oder weniger Geräte oder Systeme auf jeder Schicht umfassen kann. Wie außerdem in 5 dargestellt, nimmt die Anzahl von Komponenten jeder Schicht 510, 520, 530, 540, 550 auf jeder niedrigeren Ebene (d. h. je näher zu Endpunkten) im Allgemeinen zu. Entsprechend kann der Edge-Gateway-Knoten 512 mehrere Client-Rechenknoten 502 bedienen, und ein Edge-Aggregationsknoten 522 kann mehrere Edge-Gateway-Knoten 512 bedienen.
-
In Übereinstimmung mit den hierin bereitgestellten Beispielen kann jeder Client-Rechenknoten 502 als ein beliebiger Typ von Endpunktkomponente, -Gerät, - Appliance oder „-Ding“ realisiert sein, der zum Kommunizieren als ein Erzeuger oder Verbraucher von Daten imstande ist. Ferner bedeutet die Bezeichnung „Knoten“ oder „Gerät“, wie im Edge-Computing-System 500 verwendet, nicht unbedingt, dass solch ein Knoten oder Gerät die Rolle eines Clients oder Sklaven spielt; vielmehr bezieht sich jeder der Knoten oder jedes der Geräte im Edge-Computing-System 500 auf individuelle Entitäten, Knoten oder Subsysteme, die diskrete oder verbundene Hardware oder Softwarekonfigurationen zum Ermöglichen oder Verwenden der Edge-Cloud 110 umfassen.
-
Entsprechend ist die Edge-Cloud 110 aus Netzwerkkomponenten und Funktionsmerkmalen gebildet, die durch die und innerhalb der Edge-Gateway-Knoten 512 und der Edge-Aggregationsknoten 522 der Schichten 520 bzw. 530 betrieben werden. Die Edge-Cloud 110 kann als ein beliebiger Typ von Netzwerk realisiert sein, der Edge-Computing- und/oder -Speicherressourcen bereitstellt, die sich in der Nähe von Funkzugangsnetzwerk-(RAN-)fähigen Endpunktgeräten (z. B. Mobile-Computing-Geräten, Geräten des IoT, intelligenten Geräten usw.) befinden, die in 5 als die Client-Rechenknoten 502 dargestellt sind. Mit anderen Worten kann man sich die Edge-Cloud 110 als einen „Rand“ vorstellen, der die Endpunktgeräte und herkömmliche Mobilfunknetzwerk-Zugangspunkte verbindet, die als Eintrittspunkte in Dienstanbieter-Kernnetzwerke dienen, die Trägernetzwerke (z. B. Netzwerke des globalen Systems für Mobilkommunikationen (GSM - Global System for Mobile Communications), Long-Term Evolution-(LTE-)Netzwerke, 5G-Netzwerken usw.) umfassen, während sie gleichzeitig auch Speicher- und/oder Rechenfähigkeiten bereitstellen. Andere Typen und Formen von Netzwerkzugang (z. B. Wi-Fi, drahtlose Weitverkehrsnetzwerke) können anstelle von oder in Kombination mit solchen 3GPP-Trägernetzwerken ebenfalls verwendet werden.
-
In einigen Beispielen kann die Edge-Cloud 110 einen Teil eines Eintrittspunkts in oder über eine Fog-Networking-Konfiguration 526 (z. B. ein Netzwerk von Fog-Geräten 524 (nicht im Detail dargestellt)), die als eine horizontale und verteilte Architektur auf Systemebene realisiert sein kann, die Ressourcen und Dienste zum Ausführen einer spezifischen Funktion verteilt, bilden oder anderweitig einen solchen bereitstellen. Zum Beispiel kann ein koordiniertes und verteiltes Netzwerk von Fog-Geräten 524 Rechen, Speicher-, Steuerungs- und Vernetzungsaspekte im Kontext einer IoT-Systemanordnung durchführen. Andere vernetzte, aggregierte und verteilte Funktionen können in der Edge-Cloud 110 zwischen der Kernnetzwerkschicht 540 und den Client-Endpunkten (z. B. Client-Rechenknoten 502) bestehen. Einige derselben werden in den folgenden Abschnitten im Kontext einer Virtualisierung von Netzwerkfunktionen oder -diensten erörtert, welche die Verwendung von virtuellen Edges und virtuellen Diensten umfasst, die für mehrere Akteure orchestriert werden.
-
Die Edge-Gateway-Knoten 512 und die Edge-Aggregationsknoten 522 arbeiten zusammen, um verschiedene Edge-Dienste und Sicherheit für die Client-Rechenknoten 502 bereitzustellen. Da außerdem jeder Client-Rechenknoten 502 stationär oder mobil sein kann, kann jeder Edge-Gateway-Knoten 512 mit anderen Edge-Gateway-Geräten zusammenarbeiten, um gegenwärtig bereitgestellte Dienste und Sicherheit zu propagieren, während der entsprechende Client-Rechenknoten 502 sich durch eine Region bewegt. Zu diesem Zweck kann jeder der Edge-Gateway-Knoten 512 und/oder Edge-Aggregationsknoten 522 Konfigurationen mit mehreren Mandanten und mehreren Akteuren unterstützen, wobei Dienste von (oder gehostet für) mehrere/n Dienstanbieter/n und mehrere/n Verbrauchern über ein einziges oder mehrere Rechengeräte unterstützt und koordiniert werden können.
-
In verschiedenen Beispielen können die Operationen zur Generierung und Verifizierung von Zeitstempeln unter den Client-Rechenknoten 502, an den Edge-Gateway-Knoten 512 oder den Aggregationsknoten 522 und anderen Zwischenknoten in der Edge-Cloud 110 implementiert werden, die Zeitstempel als Teil von Dienst-, Beschleunigungs-, Rechen-, Datenspeicher- und Arbeitsspeicherfunktionen ausführen oder verwenden, wie im Folgenden unter Bezugnahme auf 7 bis 12 ausführlicher dargelegt.
-
In weiteren Beispielen kann jeder der Rechenknoten oder jedes der Rechengeräte, der/das unter Bezugnahme auf die vorliegende/n Edge-Computing-Systeme und - Umgebung erörtert wird, basierend auf den in 6A und 6B dargestellten Komponenten verwirklicht sein. Jeder Edge-Rechenknoten kann als ein Typ von Gerät, Appliance, Computer oder „Ding“ realisiert sein, der zum Kommunizieren mit anderen Edge-, Netzwerk- oder Endpunktkomponenten imstande ist. Zum Beispiel kann ein Edge-Rechengerät als ein Smartphone, ein mobiles Rechengerät, ein intelligentes Haushaltsgerät, ein fahrzeuginternes Rechensystem (z. B. ein Navigationssystem) oder ein anderes Gerät oder System realisiert sein, das zum Ausführen der beschriebenen Funktionen imstande ist.
-
Im vereinfachten Beispiel, das in 6A dargestellt ist, umfasst ein veranschaulichender Edge-Rechenknoten 600 eine Rechenmaschine (hierin auch als „Rechenschaltungsanordnung“ bezeichnet) 602, ein Ein-/Ausgabe-(E-/A-)Subsystem 608, einen Datenspeicher 610, ein Kommunikationsschaltungsanordnungs-Subsystem 612 und gegebenenfalls ein oder mehrere Peripheriegeräte 614. In anderen Beispielen kann jedes Rechengerät andere oder zusätzliche Komponenten umfassen, wie beispielsweise jene, die in persönlichen und Server-Datenverarbeitungssystemen verwendet werden (z. B. eine Anzeige, Peripheriegeräte usw.) Außerdem können in einigen Beispielen eine oder mehrere der veranschaulichenden Komponenten in eine andere Komponente eingebaut sein oder anderweitig einen Teil davon bilden.
-
Der Rechenknoten 600 kann als ein beliebiger Typ von Maschine oder Gerät oder eine Sammlung von Geräten realisiert sein, der/die zum Ausführen der im Rechenfunktionen imstande ist. In einigen Beispielen kann der Rechenknoten 600 als ein einzelnes Gerät, wie beispielsweise eine integrierte Schaltung, ein eingebettetes System, ein feldprogrammierbares Gate-Array (FPGA), ein Systemchip (SoC) oder ein anderes integriertes System oder ein anderes integriertes Gerät realisiert sein. Im veranschaulichenden Beispiel umfasst der Rechenknoten 600 einen Prozessor 604 und einen Speicher 606 oder ist als solche realisiert. Der Prozessor 604 kann als ein beliebiger Prozessortyp realisiert sein, der dazu imstande ist, die hier beschriebenen Funktionen auszuführen (z. B. eine Anwendung auszuführen). Zum Beispiel kann der Prozessor 604 kann als ein Mehrkernprozessor(en), ein Mikrocontroller oder ein anderer Prozessor oder eine Verarbeitungs-/Steuerungsschaltung realisiert sein. In einigen Beispielen kann der Prozessor 604 als ein FPGA, eine anwendungsspezifische integrierte Schaltung (ASIC), eine rekonfigurierbare Hardware oder Hardwareschaltungsanordnung oder eine andere Spezialhardware zum Ermöglichen der Ausführung der hierin beschriebenen Funktionen realisiert sein, damit gekoppelt sein oder solche umfassen.
-
Der Hauptspeicher 606 kann als ein beliebiger Typ von flüchtigem (z. B. dynamischer Direktzugriffsspeicher (DRAM - Dynamic Random Access Memory) usw.) oder nichtflüchtigem Arbeitsspeicher oder Datenspeicher realisiert sein, der zum Ausführen der hierin beschriebenen Funktionen imstande ist. Ein flüchtiger Speicher kann ein Speichermedium sein, das Leistung benötigt, um den Zustand von Daten aufrechtzuerhalten, die vom Medium gespeichert werden. Nicht einschränkende Beispiele für flüchtigen Speicher können verschiedene Typen von Direktzugriffsspeicher (RAM), wie beispielsweise DRAM oder statischen Direktzugriffspeicher (SRAM) umfassen. Ein besonderer Typ von DRAM, der in einem Speichermodul verwendet werden kann, ist ein synchroner dynamischer Direktzugriffsspeicher (SDRAM).
-
In einem Beispiel ist das Speichergerät ein blockadressierbares Speichergerät, wie beispielsweise jene, die auf NAND- oder NOR-Technologien basieren. Ein Speichergerät kann auch ein dreidimensionales Kreuzpunktspeichergerät (z. B. einen Intel 3D XPoint™-Speicher) oder andere Byte-adressierbare nichtflüchtige In-Situ-Schreib-Speichergeräte umfassen. Das Speichergerät kann sich auf den Die selbst und/oder ein gehäustes Speicherprodukt beziehen. In einigen Beispielen kann der 3D-Kreuzpunktspeicher (z. B. Intel 3D XPoint™-Speicher) eine transistorlose, stapelbare Kreuzpunkt-Architektur umfassen, wobei Speicherzellen sich am Schnittpunkt von Wortleitungen und Bitleitungen befinden und individuell adressierbar sind und wobei Bitspeicherung auf einer Transformation des Volumenwiderstands basiert. In einigen Beispielen kann die Gesamtheit oder ein Teil des Hauptspeichers 606 in den Prozessor 604 integriert sein. In Betrieb kann der Hauptspeicher 606 verschiedene Software und Daten speichern, die während des Betriebs verwendet werden, wie beispielsweise eine oder mehrere Anwendungen, Daten, die von den Anwendung(en) bearbeitet werden, Bibliotheken und Treiber.
-
Die Rechenschaltungsanordnung 602 ist mit anderen Komponenten des Rechenknotens 600 kommunikativ über das E-/A-Subsystem 608 gekoppelt, das als Schaltungsanordnung und/oder Komponenten zum Ermöglichen von Eingabe-/Ausgabe-Operationen mit der Rechenschaltungsanordnung 602 (z. B. mit dem Prozessor 604 und/oder dem Hauptspeicher 606) und anderen Komponenten der Rechenschaltungsanordnung 602 realisiert sein kann. Das E-/A-Subsystem 608 kann zum Beispiel als Speichercontrollerhubs, Eingabe-/Ausgabe-Controllerhubs, integrierte Sensorhubs, Firmwaregeräte, Kommunikationsverbindungen (z. B. Punkt-zu-Punkt-Verbindungen, Bus-Verbindungen, Drähte, Kabel, Lichtleiter, Leiterbahnen auf gedruckten Leiterplatten usw.) und/oder andere Komponenten und Subsysteme realisiert sein oder diese anderweitig umfassen, um die Eingabe-/Ausgabe-Operationen zu ermöglichen. In einigen Beispielen kann das E-/A-Subsystem 608 einen Teil eines Systemchips (SoC) bilden und zusammen mit einem oder mehreren von dem Prozessor 604, dem Hauptspeicher 606 und anderen Komponenten der Rechenschaltungsanordnung 602 in die Rechenschaltungsanordnung 602 integriert sein.
-
Das eine oder die mehreren veranschaulichenden Datenspeichergeräte 610 können als ein beliebiger Typ von Geräten realisiert sein, der zu Kurz- oder Langzeitspeicherung von Daten konfiguriert ist, wie zum Beispiel Speichergeräte und -schaltungen, Speicherkarten, Festplattenlaufwerke, Festkörper-Laufwerke oder andere Datenspeichergeräte. Jedes Datenspeichergerät 610 kann eine Systempartition umfassen, die Daten und Firmwarecode für das Datenspeichergerät 610 speichert. Jedes Datenspeichergerät 610 kann außerdem eine oder mehrere Betriebssystempartitionen umfassen, die zum Beispiel in Abhängigkeit vom Typ des Rechenknotens 600 Datendateien und ausführbare Dateien für Betriebssysteme speichern.
-
Die Kommunikationsschaltungsanordnung 612 kann als eine beliebige Kommunikationsschaltung, Einrichtung oder Sammlung davon realisiert sein, die zum Ermöglichen von Kommunikationen zwischen der Rechenschaltungsanordnung 602 und einem anderen Rechengerät (z. B. einem Edge-Gateway-Knoten 512 des Edge-Computing-Systems 500) imstande ist. Die Kommunikationsschaltungsanordnung 612 kann so konfiguriert sein, dass sie eine oder mehrere beliebige Kommunikationstechnologien (z. B. drahtgebundene oder drahtlose Kommunikationen) und damit assoziierte Protokolle (z. B. ein Mobilfunknetzwerkprotokoll, beispielweise einen 4G- oder 5G-Standard von 3GPP, ein Protokoll eines drahtlosen lokalen Netzwerks, beispielsweise IEEE 802.11/Wi-Fi®, ein Protokoll eines drahtlosen Weitverkehrsnetzwerk, Ethernet, Bluetooth® usw.) zum Durchführen solch einer Kommunikation verwendet.
-
Die veranschaulichende Kommunikationsschaltungsanordnung 612 umfasst eine Netzwerkschnittstellensteuerung (NIC - Network Interface Controller) 620, die auch als Host-Fabric-Schnittstelle (HFI - Host Fabric Interface) bezeichnet werden kann. Die NIC 620 kann als eine oder mehrere von Add-in-Karten, Tochterkarten, Netzwerkschnittstellenkarten, Controller-Chips, Chipsätzen oder anderen Einrichtungen realisiert sein, die vom Rechenknoten 600 zum Herstellen einer Verbindung mit einem anderen Rechengerät (z. B. einem Edge- Gateway-Knoten 512) verwendet werden können. In einigen Beispielen kann die NIC 620 als Teil eines Systemchips (SoC), der einen oder mehrere Prozessoren umfasst, realisiert oder in einem Mehrchipgehäuse umfasst sein, das ebenfalls einen oder mehrere Prozessoren enthält. In einigen Beispielen kann die NIC 620 einen lokalen Prozessor (nicht dargestellt) und/oder einen lokalen Speicher (nicht dargestellt) umfassen, die beide für die NIC 620 lokal sind. In solchen Beispielen kann der lokale Prozessor der NIC 620 zum Ausführen einer oder mehrerer der Funktionen der hierin beschriebenen Rechenschaltungsanordnung 602 imstande sein. Zusätzlich oder alternativ kann der lokale Speicher der NIC 620 in solchen Beispielen in eine oder mehrere Komponenten des Client-Rechenknotens auf Leiterplattenebene, Socket-Ebene, Chip-Ebene und/oder anderen Ebenen integriert sein.
-
Außerdem kann jeder Rechenknoten 600 in einigen Beispielen ein oder mehrere Peripheriegeräte 614 umfassen. Solche Peripheriegeräte 614 können in Abhängigkeit vom jeweiligen Typ des Rechenknotens 600 einen beliebigen Typ von Peripheriegerät umfassen, der in einem Rechengerät oder Server vorzufinden ist, wie beispielsweise Audio-Eingabegeräte, eine Anzeige, andere Eingabe-/Ausgabegeräte, Schnittstellengeräte und/oder andere Peripheriegeräte. In weiteren Beispielen kann der Rechenknoten 600 durch einen jeweiligen Edge-Rechenknoten in einem Edge-Computing-System (z. B. den Client-Rechenknoten 502, den Edge-Gateway-Knoten 512, den Edge-Aggregationsknoten 522) oder dergleichen Formen von Appliances, Computern, Subsystemen, Schaltungsanordnungen oder anderen Komponenten realisiert sein.
-
In einem ausführlicheren Beispiel veranschaulicht 6B ein Blockdiagramm eines Beispiels von Komponenten, die zum Implementieren der hierin beschriebenen Techniken (z. B. Operationen, Prozesse, Verfahren und Methodologien) in einem Edge-Computing-Knoten 650 vorhanden sein können. Der Edge-Computing-Knoten 650 kann beliebige Kombinationen der oben erwähnten Komponenten umfassen, und er kann jedes Gerät umfassen, das mit einem Edge-Kommunikationsnetzwerk oder einer Kombination solcher Netzwerke verwendet werden kann. Die Komponenten können als ICs, Teile davon, diskrete elektronische Geräte oder andere Module, Logik, Hardware, Software, Firmware oder eine Kombination davon passend im Edge-Computing-Knoten 650 implementiert oder als Komponenten anderweitig innerhalb eines Gehäuses eines größeren Systems integriert sein.
-
Der Edge-Computing-Knoten 650 kann eine Verarbeitungsschaltungsanordnung in Form eines Prozessors 652 umfassen, der ein Mikroprozessor, ein Mehrkernprozessor, ein Multithread-Prozessor, ein Energiesparprozessor, ein eingebetteter Prozessor oder ein anderes bekanntes Verarbeitungselement sein kann. Der Prozessor 652 kann ein Teil eines Systemchips (SoC - System on a Chip) sein, auf welchem der Prozessor 652 und andere Komponenten zu einer integrierten Einzelschaltung oder Einzelpackung ausgebildet sind, wie beispielsweise die SoC-Platinen Edison™ oder Galileo™ von der Intel Corporation in Santa Clara, Kalifornien. Als ein Beispiel kann der Prozessor 652 einen Prozessor auf der Basis des Intel® Architecture Core™, beispielsweise einen QuarkTm, einen AtomTM, einen i3, einen i5, einen i7, einen i9 oder einen Prozessor der MCU-Klasse, oder einen anderen solchen Prozessor umfassen, der von Intel® erhältlich ist. Es kann jedoch eine beliebige Anzahl anderer Prozessoren verwendet werden, wie von der Advanced Micro Devices, Inc. (AMD) in Sunnyvale, Kalifornien, ein MIPSbasiertes Design von der MIPS Technologies, Inc. in Sunnyvale, Kalifornien, ein ARM-basiertes Design, das von der ARM Holdings, Ltd. lizenziert ist, oder einem Kunden davon oder ihren Lizenznehmern oder Erstanwendern erhältlich. Die Prozessoren können Einheiten, wie beispielsweise einen A5-A12-Prozessor von der Apple® Inc., einen Snapdragon™-Prozessor von der Qualcomm@ Technologies, Inc., oder einen OMAP™-Prozessor von der Texas Instruments, Inc., umfassen.
-
Der Prozessor 652 kann über einen Interconnect 656 (z. B. einen Bus) mit einem Systemspeicher 654 kommunizieren. Es kann jede Anzahl von Speichergeräten zum Bereitstellen einer gegebenen Systemspeicherkapazität verwendet werden. Als Beispiele kann der Speicher einen Direktzugriffsspeicher (RAM) nach einem Design des Joint Electron Devices Engineering Council (JEDEC), wie beispielsweise den Standards DDR oder Mobile-DDR (z. B. LPDDR, LPDDR2, LPDDR3 oder LPDDR4), umfassen. In bestimmten Beispielen kann eine Speicherkomponente einem von JEDEC veröffentlichten DRAM-Standard entsprechen, wie beispielsweise 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 DDR bei niedriger Leistung (LPDDR - Low Power DDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4. Solche Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden, und Kommunikationsschnittstellen der Speichergeräte, die solche Standards implementieren, können als DDR-basierte Schnittstellen bezeichnet werden. In verschiedenen Implementierungen können die einzelnen Speichergeräte aus jeder Anzahl von verschiedenen Packungstypen, wie beispielsweise einer Einzelchip-Packung (SDP), einer Doppelchip-Packung (DDP) oder einer Vier-Chip-Packung (Q17P), sein. Diese Geräte können in einigen Beispielen direkt auf eine Hauptplatine gelötet sein, um eine Lösung mit einem flacheren Profil bereitzustellen, während in anderen Beispielen die Geräte als ein oder mehrere Speichermodule konfiguriert sind, die ihrerseits durch einen gegebenen Steckverbinder mit der Hauptplatine gekoppelt sind. Es kann eine beliebige Anzahl anderer Speicherimplementierungen verwendet werden, wie beispielsweise andere Typen von Speichermodulen, z. B. doppelreihige Speichermodule (DIMMs) verschiedener Varianten, die microDIMMs oder MiniDIMMs umfassen, ohne darauf beschränkt zu sein.
-
Zum Bereitstellen persistenter Speicherung von Informationen, wie beispielsweise Daten, Anwendungen, Betriebssystemen und so weiter, kann auch ein Datenspeicher 658 über den Interconnect 656 mit dem Prozessor 652 gekoppelt sein. In einem Beispiel kann der Datenspeicher 658 durch ein Festkörper-Festplattenlaufwerk (SSDD - Solid-State Disk Drive) implementiert sein. Andere Geräte, die für den Datenspeicher 658 verwendet werden können, umfassen Flash-Speicherkarten, wie beispielsweise SD-Karten, microSD-Karten, XD-Picture Cards, und dergleichen, und USB-Flash-Laufwerke. In einem Beispiel kann das Speichergerät ein Speichergerät sein oder Speichergeräte umfassen, die Chalkogenidglas, NAND-Flash-Speicher mit Mehrfachschwellenebenen, NOR-Flash-Speicher, Ein- oder Mehrebenen-Phasenwechselspeicher (PCM - Phase Change Memory), einen resistiven Speicher, Nanodrahtspeicher, Direktzugriffsspeicher mit ferroelektrischem Transistor (FeTRAM - Ferroelectric Transistor Random Access Memory), antiferroelektrischen Speicher, magnetoresistiven Direktzugriffsspeicher (MRAM - Magnetoresistive Random Access Memory), Speicher, der Memristor-Technologie umfasst, resistiven Speicher, der den Metalloxid-basierten, den Sauerstoff-Leerstellen-basierten und den Direktzugriffsspeicher mit leitender Brücke (CB-RAM - Conductive Bridge Random Access Memory) oder MRAM mit Spin-Übertragungsmoment (STT - Spin Transfer Torque) umfasst, ein Speichergerät auf der Basis eines Spintronik-Magnetübergangs, ein Gerät auf der Basis eines Magnet-Tunnelübergangs (MTJ - Magnetic Tunneling Junction), ein Gerät auf der Basis von Domänenwand (DW und Spin-Bahn-Übertragung (SOT - Spin Orbit Transfer), ein Speichergerät auf der Basis eines Thyristors oder eine Kombination beliebiger davon oder anderen Speicher verwendet/verwenden.
-
In energiesparsamen Implementierungen kann es sich bei dem Datenspeicher 658 um einen chipintegrierten Speicher oder mit dem Prozessor 652 assoziierte Register handeln. In einigen Beispielen kann der Datenspeicher 658 unter Verwendung eines Mikro-Festplattenlaufwerks (HDD) implementiert sein. Ferner kann eine beliebige Anzahl neuer Technologien für den Datenspeicher 658 zusätzlich zu oder anstelle von den beschriebenen Technologien verwendet werden, wie beispielsweise u. a. Widerstandstransformationsspeicher, Phasenwechselspeicher, holografische Speicher oder chemische Speicher.
-
Die Komponenten können über den Interconnect 656 kommunizieren. Der Interconnect 656 kann jede Anzahl von Technologien, darunter ISA (Industry Standard Architecture), EISA (Extended Industry Standard Architecture), PCI (Peripheral Component Interconnect) PCIx (Peripheral Component Interconnect extended), PCIe (PCI express), oder eine beliebige Anzahl anderer Technologien umfassen. Der Interconnect 656 kann zum Beispiel ein proprietärer Bus sein, der in einem SoCbasierten System verwendet wird. Es können andere Bussysteme umfasst sein, wie beispielsweise u. a. eine I2C-Schnittstelle, eine SPI-Schnittstelle, Punkt-zu-Punkt-Schnittstellen und ein Power-Bus.
-
Der Interconnect 656 kann den Prozessor 652 mit einem Sendeempfänger 666 für Kommunikationen mit den verbundenen Edge-Geräten 662 koppeln. Der Sendeempfänger 666 kann jede Anzahl von Frequenzen und Protokollen, wie beispielsweise 2,4-Gigahertz (GHz)-Übertragungen gemäß dem Standard IEEE 802.15.4 u. a. unter Verwendung des BLE (Bluetooth® Low Energy)-Standards, wie von der Bluetooth® Special Interest Group definiert, oder des ZigBee®-Standards verwenden. Es kann jede Anzahl von Funkgeräten, die für ein bestimmtes Drahtloskommunikationsprotokoll konfiguriert sind, für die Verbindungen mit den verbundenen Edge-Geräten 662 verwendet werden. Zum Beispiel kann eine Einheit eines drahtlosen lokalen Netzwerks (WLAN - Local Area Network) zum Implementieren von Wi-Fi®-Kommunikationen gemäß dem Standard 802.11 des Institute of Electrical and Electronics Engineers (IEEE) verwendet werden. Außerdem können drahtlose Weitverkehrskommunikationen, z. B. gemäß einem Mobilfunk- oder anderen Drahtlos-Weitverkehrsprotokoll, über eine Einheit eines drahtlosen Weitverkehrsnetzwerks (WWAN - Wireless Local Area Network) stattfinden.
-
Der Drahtlosnetzwerks-Sendeempfänger 666 (oder mehrere Sendeempfänger) kann unter Verwendung mehrerer Standards oder Funkgeräte für Kommunikationen mit unterschiedlicher Reichweite kommunizieren. Zum Beispiel kann der Edge-Computing-Knoten 650 mit Geräten in der Nähe, z. B. innerhalb von etwa 10 Metern, unter Verwendung eines lokalen Sendeempfängers basierend auf BLE oder eines anderen niederenergetischen Funkgeräts kommunizieren, um Energie zu sparen. Verbundene Edge-Geräte 662 in größerer Entfernung, z. B. innerhalb von etwa 50 Metern, können über ZigBee oder anderen mittelenergetischen Funktechniken erreicht werden. Beide Kommunikationstechniken können über ein einziges Funkgerät mit verschiedenen Leistungspegeln oder über separate Sendeempfänger, zum Beispiel einen lokalen Sendeempfänger, der BLE verwendet, und einen separaten Mesh-Sendeempfänger, der ZigBee verwendet, stattfinden.
-
Ein Drahtlosnetzwerk-Sendeempfänger 666 (z. B. ein Funksendeempfänger) kann zum Kommunizieren mit Geräten oder Diensten in der Edge-Cloud 690 über Lokal- oder Weitverkehrsnetzwerkprotokolle umfasst sein. Der Drahtlosnetzwerk-Sendeempfänger 666 kann ein LPWA-Sendeempfänger sein, der u. a. den Standards IEEE 802.15.4 oder IEEE 802.15.4g entspricht. Der Edge-Computing-Knoten 650 kann unter Verwendung von LoRaWAN™ (Long Range Wide Area Network), entwickelt von Semtech und der LoRa Alliance, über Weitverkehr kommunizieren. 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 Fernbereichskommunikationen mit niedriger Bandbreite implementieren, wie beispielsweise Sigfox und andere Technologien. Ferner können andere Kommunikationstechniken, wie Kanalsprung mit Zeitschlitzen, beschrieben in der Spezifikation IEEE 802.15.4e, verwendet werden.
-
Es kann eine beliebige Anzahl anderer Funkkommunikationen und -protokolle zusätzlich zu den erwähnten Systemen für den Drahtlosnetzwerk-Sendeempfänger 666, wie hierin beschrieben, verwendet werden. Zum Beispiel kann der Sendeempfänger 666 einen Mobilfunk-Sendeempfänger umfassen, der Spreizspektrum-(SPA/SAS-)Kommunikationen zum Implementieren von Hochgeschwindigkeitskommunikationen verwendet. Ferner kann eine beliebige Anzahl anderer Protokolle, wie beispielsweise Wi-Fi®-Netzwerke für Kommunikation mittlerer Geschwindigkeit und Bereitstellung von Netzwerkkommunikationen, verwendet werden. Der Sendeempfänger 666 kann Funkgeräte umfassen, die mit jeder Anzahl von Spezifikationen des Partnerschaftsprojekts der dritten Generation (3GPP - Third Generation Partnership Project), beispielweise Long Term Evolution (LTE) und Kommunikationssystemen der 5. Generation (5G), kompatibel sind, die am Ende der vorliegenden Offenbarung ausführlicher erörtert werden. Eine Netzwerkschnittstellensteuerung (NIC) 668 kann umfasst sein, um eine drahtgebundene Kommunikation mit Knoten der Edge-Cloud 690 oder mit anderen Geräten, beispielsweise den verbundenen Edge-Geräten 662, bereitzustellen (die z. B. in einem Mesh zu arbeiten). Die drahtgebundene Kommunikation kann eine Ethernet-Verbindung bereitstellen oder auf anderen Typen von Netzwerken basieren, wie beispielsweise Controller Area Network (CAN), Local Interconnect Network (LIN), DeviceNet, ControlNet, Data Highway+, PROFIBUS oder PROFINET, um nur einige zu nennen. Eine zusätzliche NIC 668 kann zum Ermöglichen einer Verbindung mit einem zweiten Netzwerk umfasst sein, zum Beispiel eine erste NIC 668, die Kommunikationen mit der Cloud über Ethernet bereitstellt, und eine zweite NIC 668, die Kommunikationen mit anderen Geräten über einen anderen Typ von Netzwerk bereitstellt. Die NIC 668 kann ferner einen Teilsatz der Standards IEEE 802.1 TSN (Time-Sensitive Networking) oder den IEEE-Standard 1588 (PTP), das Network Time Protocol (NTP) oder ähnliche Standards zum Ermöglichen von Zeitkoordination und Zeitbestimmung in Übereinstimmung mit den hierin erörterten Techniken implementieren.
-
Angesichts der Vielzahl von Typen anwendbarer Kommunikationen vom Gerät zu einer anderen Komponente oder einem anderen Netzwerk kann eine anwendbare Kommunikationsschaltungsanordnung, die vom Gerät verwendet wird, eine oder mehrere der Komponenten 664, 666, 668 oder 670 umfassen oder dadurch realisiert sein. Demgemäß können in verschiedenen Beispielen anwendbare Mittel zum Kommunizieren (z. B. Empfangen, Senden usw.) durch solch eine Kommunikationsschaltungsanordnung realisiert sein.
-
Der Edge-Computing-Knoten 650 kann mit einer Beschleunigungsschaltungsanordnung 664 gekoppelt sein, die durch einen oder mehrere KI-Beschleuniger, einen Neural Compute Stick, neuromorphe Hardware, ein FPGA, eine Anordnung von GPUs, einen oder mehrere SoCs, eine oder mehrere CPUs, einen oder mehrere digitale Signalprozessoren, dedizierte ASICs oder andere Formen von Spezialprozessoren oder -schaltungen realisiert sein kann, die zum Ausführen einer oder mehrerer spezieller Aufgaben ausgelegt sind. Diese Aufgaben können KI-Verarbeitung (darunter Operationen für maschinelles Lernen, Training, Inferenz und Klassifizierung), Bilddatenverarbeitung, Netzwerkdatenverarbeitung, Objekterkennung, Regelanalyse oder dergleichen umfassen. Demgemäß können in verschiedenen Beispielen anwendbare Mittel zur Beschleunigung durch solch eine Beschleunigungsschaltungsanordnung realisiert sein.
-
Der Interconnect 656 kann den Prozessor 652 mit einem Sensorhub oder einer externen Schnittstelle 670 koppeln, der/die zum Verbinden zusätzlicher Geräte oder Subsysteme verwendet wird. Die Geräte können Sensoren 672, wie beispielsweise Beschleunigungsmesser, Füllstandsensoren, Durchflusssensoren, optische Lichtsensoren, Kamerasensoren, Temperatursensoren, Sensoren eines globalen Positionsbestimmungssystems (GPS), Drucksensoren, Luftdrucksensoren und dergleichen, umfassen. Der Hub oder die Schnittstelle 670 kann ferner zum Verbinden des Edge-Computing-Knotens 650 mit Aktoren 674, beispielsweise Leistungsschaltern, Ventil-Stellantrieben, einem Hörschallgenerator, einem optischen Warngerät und dergleichen, verwendet werden.
-
In einigen optionalen Beispielen können verschiedene Eingabe-/Ausgabe-(E-/A-)Geräte innerhalb des Edge-Computing-Knotens 650 vorhanden oder damit verbunden sein. Zum Beispiel kann eine Anzeige oder ein anderes Ausgabegerät 684 enthalten sein, um Informationen, wie beispielsweise Messwerte von Sensoren oder Positionen von Aktoren, darzustellen Ein Eingabegerät 686, beispielsweise ein Touchscreen oder eine Tastatur, kann zum Annehmen von Eingaben umfasst sein. Ein Ausgabegerät 684 kann eine beliebige Anzahl von Formen akustischer oder optischer Anzeige umfassen, darunter einfache optische Ausgaben, wie beispielsweise binäre Statusindikatoren (z. B. LEDs) und optische Ausgaben mit mehreren Zeichen, oder komplexere Ausgaben, wie beispielsweise Anzeigebildschirme (z. B. LCD-Bildschirme), wobei die Ausgabe von Zeichen, Grafiken, Multimedia-Objekten und dergleichen aus dem Betrieb des Edge-Computing-Knotens 650 generiert oder erzeugt wird.
-
Eine Batterie 676 kann den Edge-Computing-Knoten 650 mit Energie versorgen, obwohl der Edge-Computing-Knoten 650 in einigen Beispielen, in welchen er in einer festen Position montiert ist, eine Leistungsversorgung aufweisen kann, die mit einem Stromnetz gekoppelt ist. Die Batterie 676 kann eine Lithium-Ionen-Batterie oder eine Metall-Luft-Batterie, beispielsweise eine Zink-Luft-Batterie, eine Aluminium-Luft-Batterie, eine Lithium-Luft-Batterie und dergleichen, sein.
-
Ein Batterie-Überwachungs-/-Ladegerät 678 kann zum Verfolgen des Ladezustands (SoCh - State Of Charge) der Batterie 676 im Edge-Computing-Knoten 650 umfasst sein. Das Batterie-Überwachungs-/-Ladegerät 678 kann zum Überwachen anderer Parameter der Batterie 676 verwendet werden, um Fehlervorhersagen, wie beispielsweise den Gesundheitszustand (SoH - State Of Health) und den Funktionszustand (SoF - State Of Function) der Batterie 676, bereitzustellen. Das Batterie-Überwachungs-/- Ladegerät 678 kann eine integrierte Batterieüberwachungsschaltung, beispielsweise eine LTC4020 oder eine LTC2990 von Linear Technologies, eine ADT7488A von ON Semiconductor of Phoenix Arizona oder eine IC aus der UCD90xxx-Familie von Texas Instruments in Dallas, Texas, umfassen. Das Batterie-Überwachungs-/-Ladegerät 678 kann die Informationen über die Batterie 676 über den Interconnect 656 an den Prozessor 652 kommunizieren. Das Batterie-Überwachungs-/- Ladegerät 678 kann außerdem einen Analog-Digital-(ADC-)Wandler umfassen, der den Prozessor 652 befähigt, die Spannung der Batterie 676 oder den Stromfluss aus der Batterie 676 direkt zu überwachen. Die Batterieparameter können zum Bestimmen von Aktionen verwendet werden, die der Edge-Computing-Knoten 650 durchführen kann, wie beispielsweise Übertragungsfrequenz, Mesh-Netzwerkbetrieb, Messfrequenz und dergleichen.
-
Ein Leistungsblock 680 oder eine andere Leistungsversorgung, der/die mit einem Stromnetz gekoppelt ist, kann mit dem Batterie-Überwachungs-/- Ladegerät 678 gekoppelt sein, um die Batterie 676 aufzuladen. In einigen Beispielen kann der Leistungsblock 680 durch einen drahtlosen Leistungsempfänger ersetzt sein, um die Leistung zum Beispiel durch eine Rahmenantenne im Edge-Computing-Knoten 650 drahtlos zu erhalten. Eine drahtlose Batterieladeschaltung, beispielsweise ein LTC4020 Chip von Linear Technologies in Milpitas, Kalifornien, kann u. a. im Batterie-Überwachungs-/-Ladegerät 678 enthalten sein. Die spezifischen Ladeschaltungen werden basierend auf der Größe der Batterie 676 und somit dem benötigten Strom ausgewählt werden Das Laden kann u. a. unter Verwendung des von der Airfuel Alliance veröffentlichten Airfuel -Standard, dem vom Wireless Power Consortium veröffentlichten Qi-Drahtlosladestandard oder dem von der Alliance for Wireless Power veröffentlichten Rezence-Standard durchgeführt werden.
-
Der Datenspeicher 658 kann Anweisungen 682 in der Form von Software-, Firmware- oder Hardware-Befehlen zum Implementieren der hierin beschriebenen Techniken umfassen. Es versteht sich, dass, obwohl solche Anweisungen 682 als Codeblöcke dargestellt sind, die im Arbeitsspeicher 654 und im Datenspeicher 658 enthalten sind, jeder der Codeblöcke zum Beispiel durch festverdrahtete Schaltungen ersetzt werden kann, die in eine anwendungsspezifische integrierte Schaltung (ASIC Application Specific Integrated Circuit) eingebaut sind.
-
In einem Beispiel können die Anweisungen 682, die über den Arbeitsspeicher 654, den Datenspeicher 658 oder den Prozessor 652 bereitgestellt werden, als ein nichtflüchtiges maschinenlesbares Medium 660 realisiert sein, das Code zum Anweisen des Prozessors 652 zum Durchführen von elektronischen Operationen im Edge-Computing-Knoten 650 umfasst. Der Prozessor 652 kann auf das nichtflüchtige maschinenlesbare Medium 660 über den Interconnect 656 zugreifen. Zum Beispiel kann das nicht-transitorische, maschinenlesbare Medium 660 durch Geräte realisiert sein, die für den Speicher 658 beschrieben wurden, oder spezifische Speichereinheiten, wie beispielsweise optische Platten, Flash-Laufwerke oder eine beliebige Anzahl von Hardware-Geräten, umfassen. Das nicht-transitorische, maschinenlesbare Medium 660 kann Anweisungen umfassen, um den Prozessor 652 zum Durchführen einer spezifischen Folge oder eines spezifischen Flusses von Vorgängen, wie zum Beispiel in Bezug auf das. bzw. die Flussdiagramm(e) und das bzw. die Blockdiagramm(e) der oben dargelegten Operationen und Funktionen beschrieben, anzuweisen. Wie hierin verwendet, sind die Begriffe „maschinenlesbares Medium“ und „computerlesbares Medium“ austauschbar.
-
In weiteren Beispielen umfasst ein maschinenlesbares Medium außerdem jedes gegenständliche Medium, das zum Speichern, Codieren oder Tragen von Anweisungen zur Ausführung durch eine Maschine imstande ist und das die Maschine veranlasst, eine oder mehrere der Methodologien der vorliegenden Erfindung durchzuführen, oder das zum Speichern, Codieren und Tragen von Datenstrukturen imstande ist, die von solchen Anwendungen verwendet werden oder damit assoziiert sind. Ein „maschinenlesbares Medium“ kann demnach Festkörperspeicher sowie optische und magnetische Medien umfassen, ohne darauf beschränkt zu sein. Spezifische Beispiele für maschinenlesbare Medien umfassen nichtflüchtige Speicher, die, ohne darauf beschränkt zu sein, als Beispiel Halbleiterspeichergeräte, z. B. elektrisch programmierbare Festwertspeicher (EPROMs - Electrically Programmable Read-Only Memory), elektrisch löschbare programmierbare Festwertspeicher (EEPROMs - Electrically Erasable Programmable Read-Only Memory) und Flash-Speichergeräte; Magnetplatten, wie beispielsweise interne Festplatten und Wechselplatten; magnetooptische Platten, und CD-ROM- und DVD-ROM-Datenträger umfassen. Die durch ein maschinenlesbares Medium realisierten Anweisungen können ferner über ein Kommunikationsnetzwerk unter Verwendung eines Übertragungsmediums durch ein Netzwerkschnittstellengerät gesendet oder empfangen werden, wobei ein beliebiges von einer Anzahl von Übertragungsprotokollen (z. B. HTTP) verwendet wird.
-
Ein maschinenlesbares Medium kann durch ein Speichergerät oder eine andere Vorrichtung bereitgestellt werden, das/die zum Hosten von Daten in einem nichtflüchtigen Format imstande ist. In einem Beispiel können Informationen, die auf einem maschinenlesbaren Medium gespeichert oder anderweitig darauf bereitgestellt werden, Anweisungen darstellen, wie beispielsweise Anweisungen selbst oder ein Format, von welchem die Anweisungen abgeleitet werden. Dieses Format, von welchem die Anweisungen 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 umfassen. Die Informationen, welche die Anweisungen im maschinenlesbaren Medium darstellen, können durch eine Verarbeitungsschaltungsanordnung in die Anweisungen zum Implementieren jeglicher der hierin erörterten Operationen verarbeitet werden. Zum Beispiel kann das Ableiten der Anweisungen von den Informationen (z. B. Verarbeiten durch die Verarbeitungsschaltungsanordnung) umfassen: Kompilieren (z. B. aus Quellcode, Objektcode usw.), Interpretieren, Laden, Organisieren (z. B. dynamisches oder statisches Verknüpfen), Codieren, Decodieren, Verschlüsseln, Entschlüsseln, Verpacken, Entpacken oder anderweitiges Verarbeiten der Information in die Anweisungen.
-
In einem Beispiel kann die Ableitung der Anweisungen Assemblierung, Kompilierung oder Interpretation der Informationen (z. B. durch die Verarbeitungsschaltungsanordnung) umfassen, um die Anweisungen aus einem Zwischen- oder vorverarbeiteten Format zu erzeugen, das vom maschinenlesbaren Medium bereitgestellt wird. Die Informationen, wenn in mehreren Teilen bereitgestellt, können kombiniert, entpackt und modifiziert werden, um die Anweisungen zu erzeugen. Zum Beispiel können die Informationen in mehreren komprimierten Quellcodepaketen (oder Objektcode oder ausführbarer Binärcode usw.) auf einem oder mehreren entfernten Servern sein. Die Quellcodepakete können bei ihrer Übertragung über ein Netzwerk verschlüsselt sein und an einer lokalen Maschine entschlüsselt, dekomprimiert, nötigenfalls assembliert (z. B. verknüpft) und kompiliert oder interpretiert (z. B. in eine Bibliothek, unabhängige ausführbare Datei usw.) und durch die lokale Maschine ausgeführt werden.
-
Jedes der Blockdiagramme von 6A und 6B soll eine Übersicht über Komponenten eines Geräts, eines Subsystems oder einer Anordnung eines Edge-Computing-Knotens darstellen. Es versteht sich jedoch, dass einige der dargestellten Komponenten weggelassen werden können, zusätzliche Komponenten vorhanden sein können, und in anderen Implementierungen eine andere Anordnung der dargestellten Komponenten vorkommen kann.
-
Verteilte Edge-Computing-Transaktionen
-
Wie bereits erwähnt, werden Transaktionen, die in Edge-Computing-Settings stattfinden, häufig in einer verteilten Weise zwischen mehreren Entitäten (Geräten, Knoten, Plattformen usw.) durchgeführt. Bei dieser verteilten Anordnung teilen viele Entitäten sich häufig den verteilten Zustand oder die verteilten Informationen, greifen darauf dynamisch zu und modifizieren diese/n. Diese Entitäten können verschiedenen Parteien, Betreibern, Mandanten usw. gehören oder unter der Kontrolle derselben arbeiten.
-
Eine Möglichkeit, wie Edge-Computing-Transaktionen in einem EaaS- oder FaaS-Setting koordiniert werden können, ist unter Verwendung von unveränderlichen verteilten Kassenbüchern (Distributed Ledger). Transaktionen lösen Änderungen an Informationen aus, und die Änderungen müssen transparent und verifizierbar sein, um die Interessen von Transaktionsparteien zu schützen. Die Parteien können einander vertrauen, aber dieses Vertrauen kann nur bis zu einem gewissen Grad bereitgestellt werden, wobei das Vertrauen durch einen unveränderlichen Audit-Pfad zu gewährleisten ist. Bei seiner Einbeziehung in eine Blockkettenimplementierung ermöglicht solch ein Audit-Pfad Vertrauen zwischen mehreren Parteien ohne die Kosten, Verzögerungen und Inflexibilität einer Inanspruchnahme eines vertrauenswürdigen Vermittlers.
-
7 veranschaulicht ein Blockdiagramm einer Blockkette, das insbesondere Zeitstempelwerte darstellt, die innerhalb der Blockkette zwischen mehreren Blöcken 700, 710, 720, 730 verknüpft sind. Das Zeitstempelfeld in solch einem Kassenbuch (Ledger) (z. B. Zeitstempel 702 in Block 0 700, Zeitstempel 1 712 in Block 1 710, Zeitstempel 2 722 in Block 2 720, Zeitstempel N 732 in Block N 730) wird herkömmlicherweise in einer sehr grobgranularen Granularität - typischerweise Sekunden oder Dutzenden oder Hunderten von Millisekunden bereitgestellt. Der Zweck dieses Zeitstempelfeldes ist es, sicherzustellen, dass mehrere Parteien über eine gemeinsame Ansicht verfügen, und zwar nicht nur der Transaktionsaktualisierungen, sondern auch im Hinblick darauf, wann die Aktualisierungen stattfanden, da verschiedene Knoten die Aktualisierungen (in Blöcken) zu verschiedenen Zeitpunkten im Netzwerk empfangen (da es sich bei den Knoten nicht um eine einzige Entität handelt). Demnach ist es möglich, dass eine gewisse Abweichung zwischen Zeitstempeln, die in jeweiligen Blöcken umfasst sind, und den resultierenden Hash-Werten 705, 715, 725 solcher Blöcke besteht, selbst wenn die Blöcke in der Blockkette miteinander verknüpft sind.
-
Verteilte Kassenbücher, beispielsweise Blockketten, und insbesondere Private-Blockkettenimplementierungen (Private - nur Berechtigte dürfen zugreifen) eignen sich gut zum Aufzeichnen von Informationen für Transaktionen in Edge-Computing-Diensten. Es ist sehr wahrscheinlich, dass eine Permissioned-Blockkette (Permissioned - nur Berechtigte dürfen validieren) (oder eine Variante dieses Typs von Kassenbuch) in vielen Settings zum Erreichen von Vertrauen bei Interaktionen in Edge-Computing-Systemen verwendet wird. Bei Administrations-, Organisations- oder Besitzgrenzen zwischen verschiedenen Dienstanbietern müssen die durch Edge-Operationen (-Transaktionen) herbeigeführten Zustandsänderungen gegen einseitigen oder willkürlichen Widerruf oder einseitige oder willkürliche Aufhebung innerhalb eines größeren vorher festgesetzten Vertrauensmechanismus zwischen Parteien in einer Permissioned-Blockkette geschützt werden.
-
Permissioned-Blockketten berücksichtigen auch die Notwendigkeit verschiedener Stufen von Datenschutz unter den verschiedenen Parteien für verschiedene Operationen. Teilnehmer an Edge-Transaktionen haben wahrscheinlich Vertrauensbeziehungen zu gewissen Infrastruktur- oder Dienstanbietern (z. B. einem Cloud-Dienstanbieter, einem Telekommunikations- oder Internet-Dienstanbieter usw.), und bei diesen Dienstanbietern handelt es sich für gewöhnlich um Großunternehmen oder Konsortien, die zum Implementieren einer Permissioned-Blockkette imstande sind.
-
Aufgrund von Anforderungen hinsichtlich niedriger Latenz und der Kostenwirksamkeit ist es wünschenswert, Transaktionen ohne Verzögerungen zu erreichen, die entstehen würden, wenn intermediäre Dritte Sicherheitsmaßnahmen direkt bereitstellen würden. Dies macht Permissioned-Blockketten ideal für Edge-Computing-Transaktionen in vielen EaaS- und FaaS-Szenarios. Selbst an einem einzelnen Knoten können mehrere Domänen einander überschneiden und miteinander interagieren. Mit zunehmender Anzahl von Parteien beim Edge-Austausch - vom Menschen mit IoT-Geräten mit Infrastruktur- und Kommunikationsdienstanbietern, Arbitern, Implementierern, Datenanbietern usw. - werden Transaktionen daher immer weiter verteilt. Die folgenden Techniken sind jedoch nicht auf Implementierungen von Permissioned-Blockketten beschränkt.
-
In diesen und anderen Kontexten, die Blockketten umfassen, bieten koordinierte und feingranulare Zeitwerte erhebliche Vorteile. Typischerweise kann ein Block der Blockkette (z. B. Block 700, wie in 7 dargestellt) in Wirklichkeit viele interne Teilblöcke enthalten, und diese Teilblöcke können ebenfalls Ketten von Transaktionen führen. Dies ist in der Annahme, dass jeder solche Teilblock so angepasst werden kann, dass er einen hochpräzisen Zeitstempel (z. B. mit den im Folgenden erörterten Techniken generiert) enthält, der auf die Daten angewendet wird, die über viele Edge-Knoten, Speichergeräte usw. repliziert werden. Das Rückgewinnen dieser Zeitfelder und Verifizieren, dass keines von ihnen verfälscht oder versehentlich beschädigt wurde, ist unerlässlich, um die Sicherheit der zugrundeliegenden Transaktionsaktionen zu bestätigen. Solch eine Verifizierung kann aus grundsätzlichen Sicherheitsprinzipien - beispielsweise durch Verifizieren, dass die Blöcken nicht verfälscht sind (z. B. durch Validieren ihrer Hashes), und anschließendes Durchlaufen jedes Teilblocks zum Rückgewinnen der Zeitstempel und Aktualisieren der Zeitstempel über die Daten - durchgeführt werden.
-
In Edge-Computing-Settings, in welchen Latenzen von Bedeutung sind und in welchen Berechnungsressourcen beschränkt oder kontrolliert sind, ist konstantes Verifizieren und Aktualisieren von Daten in Blockketten extrem kostspielig und unwirtschaftlich. Auch das Amortisieren des Overheads ist schwierig, da möglicherweise verschiedene Knoten prüfen müssen, ob Daten, die sie verarbeiten, die letzte Transaktionsaktualisierung widerspiegeln. Gleichermaßen werden in Edge-Computing-Settings, die MVCC einbeziehen, genaue und vertrauenswürdige Zeitdaten benötigt, um die Reihenfolge und das Ergebnis von Transaktionen zu bestimmen. Selbst in Implementierungen wie Google Spanner, die Transaktionsaktualisierungen über verteilte Caches durchführen, wird MVCC in herkömmlichen Datenzentrums-Cloud-Settings angewendet, in welchen keine Notwendigkeit einer Verifizierung der Integrität des Zeitstempels aufkommt und in welchen die Leistungs-, Latenz- und Bandbreitenbeschränkungen für das Erreichen von Nebenläufigkeit und Skalierung im Datenzentrum zweitrangig sind.
-
Wie aus den im Folgenden erörterten Techniken ersichtlich, bieten die Integrität und die Verwendung von feingranularen und sicher generierten (und verifizierbaren) Zeitstempeln und Zeitgabedaten einen bedeutenden Vorteil für Blockkettenimplementierungen, MVCC-Implementierungen und eine Vielzahl von anderen Transaktionen innerhalb einer verteilten Edge-Computing-Netzwerks.
-
Generierung und Verifizierung koordinierter Zeit in Edge-Computing-Settings
-
Es wurden verschiedene Ansätze zur Generierung von koordinierten Zeitstempeln zwischen Takten verteilter Computing-Systeme versucht. Zum Beispiel können koordinierte Takte unter Verwendung des IEEE-Standards 1588-2019 („PTP“ - Precision Time Protocol (Präzisionszeitprotkoll)) erzeugt werden, wobei es sich um einen Mechanismus handelt, der es Maschinen ermöglicht, ihre Takte zu synchronisieren. Mit PTP können zwei Maschinen im Netzwerk sehr weit voneinander entfernt sein und unabhängige Zeitquellen verwenden und dennoch in der Lage sein, eine Vereinbarung über eine gemeinsame Referenzzeit, wie beispielsweise die koordinierte Weltzeit (UTC - Universal Coordinated Time), zu treffen. Maschinen verwenden typischerweise Softwarealgorithmen zum Berechnen und Aufrechterhalten von Synchronisierung mit einem gemeinsamen Referenztakt bei einer Granularität von ungefähr 1 ms (typischerweise im Bereich von unter 1 ms bis 10 ms und darüber hinaus).
-
Zum Implementieren von PTP implementiert ein Ethernet-, Wi-Fi- oder 5G-Controller/-Benutzer-Equipment (UE) für Kommunikation mit extrem niedriger Latenz (ULLC - Ultra-Low Latency Communication) einen Hardwarezähler, dessen Phasen- und Frequenzoffset in Bezug auf die PTP-Netzwerkzeitreferenz regelmäßig gemessen wird, dessen Kompensation präzise berechnet wird. Allerdings spielt Software, die von Natur aus nicht deterministisch ist, typischerweise die Schlüsselrolle beim Schätzen der Beziehung zwischen der PTP-Zeit und dem SW-zugänglichen Takt (z. B. über eine Anweisung der Intel® Architecture (IA) (beispielweise einer x86-Anweisung „Zeitstempelzähler lesen“ (RDTSC - Read Time-Stamp Counter)). Die Verwendung von Softwaremessungen in solchen Netzwerksettings kann ein verhältnismäßig großes Maß an Unsicherheit aus relativen Zeitabweichungen einführen, und sie kann Softwarezugriff auf genaue Zeit (z. B. aus Zeitabweichungen im Bereich von Dutzenden Mikrosekunden) unterbrechen.
-
Einige Hardwareansätze, wie beispielsweise „Hammock Harbor“, der in einigen Hardwareimplementierungen von Intel® bereitgestellt wird, sind dazu ausgelegt, Hardware zu befähigen, die PTP-Zeit durch Hardware-Kreuzzeitstempel deterministisch mit der CPU-Zeit in Beziehung zu setzen und eine Worst-Case-Genauigkeit von weniger als einigen Hundert Nanosekunden zu erreichen. Auf diese Weise kann durch Software und durch Peripheriegeräte (z. B. Netzwerkschnittstellenkarten (NICs Network Interface Card), Hostbusadapter (HBAs) usw.), die mit Zeitquellen (z. B. von globalen GPS/GNSS-Positionsbestimmungssystemen erhalten) synchronisiert sind, die über verschiedene Router, Switches, Brücken, Zugangspunkte, drahtlose Netzwerke usw. kommunizieren, eine genaue und feingranulare Zeit gelesen werden.
-
Kurz gefasst funktioniert der Hammock-Hardware-Ansatz, wie folgt: Nachdem das IEEE 1588 Protokoll die Zeit mit dem Netzwerkadapter synchronisiert hat, werden periodische Zeitstempel der PTP-Zeit und der CPU-Zeit (z. B. Zeitstempelzähler (TSC Time Stamp Counter)) simultan in Hardware erfasst, wodurch das Zeitstempelpaar für Software verfügbar gemacht wird, die dann die resultierende Linearitätsbeziehung berechnet. Auch angesichts der genauen Synchronisierung zwischen TSC über alle kohärenten CPU-Kerne und Beschleuniger ermöglicht dies Zusammenarbeit von Maschinen, die durch PTP synchronisiert sind, um einen gemeinsamen Takt für die Anwendungssoftware unverzüglich verfügbar zu machen.
-
Die folgenden Techniken ermöglichen die Koordination und Verifizierung dieser und ähnlicher feingranularer Zeitstempel in verteilten Computing-Settings unter Verwendung von Hardwareimplementierung und Sicherheitsverifizierungen, um jeweilige Edge-Computing-Entitäten in die Lage zu versetzen, feingranularen koordinierten Zeitgabeinformationen zu vertrauen. Auf diese Weise können die folgenden Techniken sowohl durch MVCC-Implementierungen von Public- (Public jeder darf zugreifen) als auch von Permissioned-Blockketten zwischen verteilten Entitäten verwendet werden (wobei Zeitstempelsynchronisierungsaspekte eher in Settings mit Permissioned-Blockketten ein Problem sind). Der Hauptunterschied zwischen Permissioned- und Public-Blockketten in Bezug auf die hierin erörterten Zeitgabeoperationen liegt darin, wie das Recht zum Anhängen eines neuen Blocks an eine bestehende Kette erworben wird, aber die folgenden Techniken stellen eine sichere und verifizierbare Art und Weise des Generierens eines Zeitstempels ungeachtet des endgültigen Anwendungsfalls bereit.
-
In einem Beispiel werden die physisch verifizierbaren Quellen von Zeitinformationen, wie beispielsweise PCI-e-Karten, Speicher-HBAs und Prozessor-CPUs erweitert, um einen Zeitstempel zu erzeugen, der durch einen Hardwareschlüssel kryptografisch signiert ist und daher nicht geändert werden kann, ohne dass die Änderung detektiert wird. Dies ermöglicht es, dass ein hochauflösender Zeitstempel, der gegenwärtig durch Hardwaremechanismen (beispielsweise Intel® Hammock Harbor) erhalten wird, mit einem Hardware-Berechtigungsnachweis am Erzeugungsort selbst gehärtet wird. Für die CPU kann dieses Härten durch eine neue Anweisung bereitgestellt werden, die den Hardware-Berechtigungsnachweis integriert, der an eine RoT einer Maschine (Plattform), beispielsweise eines TPMs gebunden ist (oder einen Hardwaremechanismus, der OS-Software oder -Hypervisor eines Systems selbst vor Verfälschung mit der aktuellen softwarezugänglichen Zeit bewahren kann). Für Nicht-CPU-Generatoren des Zeitstempels kann eine Erweiterung dieser Hardwareteile es ermöglichen, einen sicheren Berechtigungsnachweis zu genieren und darin zu installieren, der auf ähnliche Weise zu verwenden ist, um generierte Zeitstempel mit hoher Auflösung automatisch an eine Maschinen- oder eine Hardware-RoT zu binden.
-
Die Generierung eines feingranularen Zeitstempels verleiht eine Anzahl von Fähigkeiten in Bezug auf Zeit für Edge-Computing-Transaktionen. Diese Fähigkeiten umfassen:
- A) Verifizieren, dass der hochauflösende Zeitstempel die Signaturprüfung besteht (beispielsweise wenn ein Blockkettenblock unter Verwendung des öffentlichen Schlüssel entschlüsselt wird, der an den Block angehängt ist, was den Zeitstempel und eine Nonce ergibt). Dieses Beispiel kann Teil einer „ungefähren“ Prüfung sein, die den Zeitstempel entschlüsselt und ihn basierend auf der bekannten Worst-Case-Ungenauigkeit der Zeitsynchronisierung atomisch mit dem zulässigen Bereich vergleicht.
- B) Vergleichen von Versionsverwaltungsinformationen mit dem Zeitstempel, um zu bestimmen, welche Datenobjekte, falls in der lokalen Maschine vorhanden, erfordern, dass ihre Versionen vorverlegt werden (beispielsweise in einer MVCC-Datenbank). Das Vergleichen kann eine Bitmap aktualisieren (z. B. unter Verwendung von nur 1 Bit pro Datenobjekt, unter Verwendung einer Zuordnungsfunktion über Datenobjekt-IDs).
- C) Markieren der Elemente, deren Versionen sich ändern (in der zuvor erörterten Vergleichsoperation B), so dass Software problemlos prüfen kann, ob Daten, die in einer Operation verwendet werden, auf ihren neuesten Wert aktualisiert werden müssen. Es ist zu erwarten, dass der Großteil der Daten keine Aktualisierung benötigt, so dass diese Schnellprüfung eine bessere Effizienz ermöglicht.
- D) Extrahieren und Indizieren der Aktualisierungen in hardwarebasierten Kuckucks-Hash oder Hopscotch-Hash zum räumlich und zeitlichen effizienten Abrufen des letzten Wertes eines jeden Elements, das als aktualisiert markiert ist. Es können auch andere Hashing- und Indizierungsformen verwendet werden.
-
Jede der vorstehenden Aktionen A) bis D) könnte in Software implementiert sein, aber zu Lasten von Anweisungen und erheblicher Latenz dafür, da insbesondere die Verifizierungsaktion A) in Software beträchtliche Zeit in Anspruch nehmen kann. Falls solch eine Verifizierung in Software erfolgt, müsste ferner der Softwareagent, der diese Aktionen durchführt, unangreifbar sein und daher in einer Hardware- oder Software-Sandbox ausgeführt werden (die z. B. durch eine Hardware-Sandbox wie eine vertrauenswürdige SGX- oder TrustZone-Ausführungsumgebung bereitgestellt wird). Die vorstehenden Aktionen A) bis D) eignen sich daher insbesondere für hardwarebasierte Verarbeitung, wenn als unmodifizierbare Aktionen festgelegt, die in Hardware implementiert werden können.
-
Ferner können diese Fähigkeiten einen vertrauenswürdigen Ende-zu-Ende-Zeitstempel mit hoher Auflösung als einen sehr leichtgewichtigen Versionsverwaltungsmechanismus festlegen, der nicht für mehrmandantenfähige Ausführung von Agenten von mehr als einer einzigen Domäne anfällig ist. Selbst wenn diese Agenten in irgendeiner Vertrauensbeziehung stehen, die es ihnen erlaubt, eine Unternehmensblockkette für einen effizienten unveränderlichen Audit-Pfad zu verwenden, ist aufgrund einer hardwarebasierten RoT gewährleistet, dass die Zeitstempel, welche die Versionsverwaltung und demnach den Fortschritt von Transaktionen steuern, die über diese Agenten über viele Maschinen verteilt sind, fälschungssicher sind.
-
8 stellt ein Blockdiagramm eines beispielhaften Szenarios zur Generierung signierter Zeitstempel dar. Zur Verwendung mit diesem Signaturgenerierungsszenario wurde ein unveränderlicher sicherer hochauflösender globaler Zeitstempel 810 anhand der Verwendung eines Mechanismus zur Generierung globaler synchronisierter hochpräziser Zeitstempel erstellt (z. B. mit Hammock Harbor oder einer anderen Hardwareimplementierung und unter Verwendung des Präzisionszeitprotokolls (PTP Precision Time Protocol/IEEE 1588) oder einer anderen Zeitkoordinationsprozedur, wie bereits erwähnt, generiert). In einem Beispiel wäre der Zeitstempelgenerierungsmechanismus automatisch und würde innerhalb einer Hardwareschnittstellenkarte, einer NIC, einem Arbeitsspeicher-/Datenspeicher-/Netzwerkcontroller usw. geschützt. Der Zeitstempelgenerierungsmechanismus kann alternativ außerdem durch eine Softwaremaschine geschützt sein, wie beispielsweise die, die in einer vertrauenswürdigen Ausführungsumgebung (z. B. Intel® SGX) als Teil eines Smart Contract ausgeführt werden kann.
-
8 stellt ferner die Extraktion einer Nonce 820 und einer CRC 825 aus einer Paketdatennutzlast 815 (z. B. aus einem Blockkettenblock) einer Edge-Transaktion dar. Die CRC 825, die Nonce 820 und der hochpräzise globale Zeitstempel 810 werden für einen Signaturalgorithmus bereitgestellt, der einen versteckten privaten Schlüssel 805 anwendet, um eine Signatur 830 zu erzeugen. In einem weiteren Beispiel kann der versteckte private Schlüssel 805 ein Schlüssel sein, der gemäß einer DICE-Spezifikation generiert ist, derart dass der Zeitstempel implizit als Teil der Verwendung des Schlüssels (z. B. zum Signieren einer Anfrage) attestiert werden kann. Ferner weist der erzeugte Zeitstempel die zusätzliche Charakteristik auf, dass die mit dem Zeitstempel 910 assoziierten Daten Aktualität (Datenaktualität) gemäß der Zeit anzeigen, zu der die Daten geändert oder transformiert wurden, während die Signatur 830 Aktualität (Nutzlastaktualität) gemäß der Zeit anzeigt, zu der die Signatur angewendet wurde,
-
9 stellt ein Blockdiagramm eines beispielhaften Szenarios zur Zeitstempelverifizierung dar. Innerhalb dieses Diagramms wird der Prozess des Verifizierens, dass ein empfangenes Paket, eine empfangene Nachricht, ein empfangener Transaktionsblock oder andere zeitbasierte Daten gültig sind, anhand einer Auswertung einer Signatur erzeugt, die mit dem hochpräzisen globalen Zeitstempel 810 und Begleitdaten assoziiert ist. Es versteht sich, dass dieses Verifizierungsszenario in einigen Szenarien inline auf einer intelligenten (programmierbaren) NIC implementiert sein kann. Bei Verwendung einer intelligenten NIC können Transaktionen zum Verwenden des vorgeschlagenen Verifizierungsschemas, wie in der NIC implementiert, statt nur auf der CPU signiert werden.
-
Wie in 9 dargestellt, kann das Verifizierungsszenario unter Verwendung eines Signaturverifizierungsalgorithmus durchgeführt werden, der die Gültigkeit der Daten basierend auf einem öffentlichen Schlüssel 940 (der z. B. dem privaten Schlüssel 805 entspricht, der in 8 verwendet wird) und der Signatur 830 (z. B. gemäß dem Prozess von 8 generiert) bestimmt. Dieses Verifizierungsszenario kann insbesondere zum Attestieren der Gültigkeit der Transaktionsdatenfelder Zeitstempel 910, Nonce 920 und CRC 925 verwendet werden.
-
Für eine vertrauenswürdige Durchführung dieser Verifizierung muss der Verifizierer einen Vertrauensanker besitzen, der den Hersteller des hochpräzisen globalen Zeitstempels und den Implementierer der Zeitstempelsignaturfunktion identifiziert. Bei Betrieb im Kontext einer Blockkette können Miner auch als Attestierungsverifizierer dienen, wobei ein Teil des Konsensalgorithmus ein Beisteuern der Vertrauensanker, die jeder Miner verwendet, zum Bestimmen des Vertrauens in den Zeitstempel für die Blockkette umfasst. Ein Konsensalgorithmus gewährleistet, dass eine Mehrheit von Minern darüber einig ist, welche/r Vertrauensanker zum Beenden einer Validierung des Zertifikatspfades verwendet werden soll/en.
-
Wie zu sehen ist, ist ein asymmetrischer schlüsselbasierter Prozess zum Signieren und Verifizieren in den Diagrammen von 8 und 9 veranschaulicht. Für Unternehmensblockketten kann die Verwendung einer Signatur mit asymmetrischen Schlüsseln durch einen SHA256-basierten Hash ersetzt werden, da bei solch einem Austausch kein unbekannter, nicht vertrauenswürdiger Vermittler zu fürchten ist. In anderen Beispielen kann der Prozess mit einer Signatur auf der Basis eines symmetrischen Schlüssels geschützt werden, wobei der symmetrische Schlüssel von den Parteien in einer Unternehmensblockkette vereinbart wird, deren Einrichtung (mit einem vereinbarten Ziel, das Verbindlichkeit umfasst) vereinbart wird.
-
Da die zugrundeliegenden Daten (die einen Zeitstempel begleiten), die verifiziert werden sollen, gering an der Zahl sind, und der Verifizierungsprozess nur die Verifizierung der CRC und nicht der Paket- oder Blockdaten als ein Ganzes abdecken soll, stellt die Verwendung von öffentlichen Schlüsseln keine signifikante Performancebarriere für ein implementierendes Computing-System dar. Daher kann der Prozess zur Generierung und Verifizierung von Schlüsseln in einer Vielzahl von Hardwarepositionen (z. B. als Teil eines Hostbusadapters oder als Teil von hardwaregestützten Merkmalen in Netzwerkkarten oder - steuerungen, beispielsweise unter Verwendung der Intel® Quick Assist Technology (QAT)) ausgeführt werden.
-
In weiteren Beispielen kann eine Spezifikation für bestimmte Bereiche von Datenverifizierung, die durchgeführt werden soll, vorgesehen oder definiert sein. Eine CRC kann so definiert sein, dass sie alle Informationen abdeckt, aber der Validierungsprozess kann Verifizierung einiger semantischer Informationen umfassen, wie beispielsweise: der Anzahlwert ist unter 50 oder über 100 usw. Demnach kann eine Auswertung basierend auf einer Prüfung der CRC plus einigen Teilen der Nutzlast (die dynamisch, zum Beispiel in Abhängigkeit vom Datentyp, bestimmt werden) durchgeführt werden. Außerdem können in weiteren Beispielen potenziell mehrere CRC (beispielsweise eine für jede verschiedene Region) zur Verifizierung verwendet werden. Die Verwendung von mehreren CRC kann Identifizierung dessen, was beschädigt oder geändert wurde, mit mehr Granularität ermöglichen und Verarbeitung aufrechterhalten, wenn die beschädigten oder geänderten Daten weder kritisch noch substanziell sind.
-
10 veranschaulicht ein Flussdiagramm eines Prozessor zum Verifizieren eines Transaktionsblocks basierend auf Prozedur zur Verifizierung signierter Zeitstempel. Dieses Flussdiagramm stellt ferner Operationen dar, die auf den oben behandelten Generierungs- und Verifizierungsoperationen basieren.
-
Bei Empfang von Transaktionsblöcken, die verifizierbare Zeitstempel umfassen, in Operation 1010 wird der Zeitstempel (z. B. durch Verifizieren der Signatur für den Zeitstempel, wie in 9 beschrieben) verifiziert. Als Nächstes werden die Dateninhalte der Transaktion in Operation 1020 extrahiert, und aus diesen Inhalten werden in Operation 1030 die Objekte identifiziert, die als Ergebnis dieser Transaktion modifiziert werden.
-
Bei Operation 1040 wird eine virtuelle Liste erstellt, um alle lokal zwischengespeicherten Objekte zu identifizieren, die ab dem Zeitstempel aktualisiert werden. Einige dieser Objekte können einfach aufgrund der dezentralisierten Operationen, die nicht durch Sperren, Mutexe, Mehrphasen-Commit-Protokolle usw. synchronisiert sind, einen neueren als den Zeitstempel im Transaktionsblock tragen.
-
Datenobjekte, die lokal zwischengespeichert werden und einen älteren Zeitstempel aufweisen, wie in Operation 1050 bestimmt (z. B. identifiziert aus Metadaten, die für das Objekt aufrechterhalten werden), werden in Operation 1060 als zu aktualisierend (oder anderweitig zu modifizierend) identifiziert. Außerdem wird in Operation 1060 ein Bitmap-Index aktualisiert, wie im Folgenden beschrieben (z. B. unter Bezugnahme auf 11), um zu identifizieren, dass das spezifische Objekt modifiziert wurde. Obwohl diese Operation und die folgende Beschreibung sich auf die Verwendung einer einfachen Bitmap-Tabelle beziehen, kann jede Implementierung mit diesen Techniken eingesetzt werden, die eine schnelle Bestimmung dessen ermöglicht, welche Objekte lokal zwischengespeichert werden, aber aus einer Aufzeichnung von Transaktionsblöcken aktualisiert werden müssen.
-
In einem Beispiel wird eine spezifische Datenstruktur, beispielsweise ein Index, ein Bitmap-Index, eine Range-Map usw., zum schnellen Identifizieren von Objekten verwendet, die durch eine zeitbasierte Transaktion aktualisiert wurden, deren Transaktionsblock lokal empfangen wurde. Dies ermöglicht, dass dezentralisierte MVCC beim Fortfahren mit Datentransaktionen effektiv ist - in der optimistischen Annahme, dass ein Objekt, das lokal zwischengespeichert wird, entweder bereits auf dem neuesten Stand ist, oder lokal auf den neuesten Stand gebracht werden kann; und es nur zur Transaktionscommitzeit erforderlich ist, zu verifizieren, ob die optimistische Annahme gültig war oder nicht. Da Zeitstempel, die als Versionsverwaltungshilfen verwendet werden, mit feingranularen synchronisierten Takten (mit einer Granularität von unter 1 Mikrosekunde) global aktuell gehalten werden, wird die Wahrscheinlichkeit, dass Objekten nicht auf dem letzten Stand gehalten werden, stark verringert, so dass der Ausnahmefall - dass Transaktionen aufgrund von Wettläufen, die im Nachhinein erkannt werden, abgebrochen oder verschoben (und daher durch einen Shepherd-Ansatz erneut versucht) werden müssen - äußerst selten ist.
-
Zum Erleichtern der lokalen Aktualisierung von Objekten stellt Operation 1070 eine Indizierung von Transaktionsblöcken, die empfangen und in monotoner Zeitreihenfolge lokal gespeichert werden, in Speicher dar. (Dies ist nicht die Zeitreihenfolge, in welcher die Blöcke empfangen werden, sondern die Reihenfolge unter ihren Zeitstempeln.) Der Index in diesen Speicher ist von einer Struktur, die ein Nachschlagen des neuesten Transaktionsblocks, der eine Aktualisierung für dieses Objekt enthält, von jeder Objekt-ID ermöglicht. Basierend auf der Verwendung des Indexes auf diese oder ähnliche Weise wird der Transaktionsblock in Operation 1080 im lokalen Datenspeicher hinzugefügt (oder aktualisiert, modifiziert usw.).
-
In einem weiteren Beispiel können zwei Indizes aufrechterhalten werden: einer für den frühesten Transaktionsblock, und einer für den letzten Transaktionsblock, so dass durch Verwenden einer lokalisierten Suche zwischen den beiden Indizes nach einem komplexen Objekt gesucht werden kann, das in verschiedenen Transaktionsblöcken aktualisiert wird, Ein Satz von Hintergrundthreads kann die Objekte durch Verarbeiten der Transaktionsblöcke in der Reihenfolge der Zeitstempel proaktiv aktualisieren und auf diese Weise Objekte (und ihre Versionen) auf den neuesten Stand bringen; dies bedeutet, dass der Arbeitsaufwand, der zum Durchführen der Transaktionsblöcke erforderlich ist, die darauf warten, dass ihre Aktualisierungen widergespiegelt werden, jederzeit sehr gering gehalten wird.
-
11 veranschaulicht ein Blockdiagramm einer Indexzuordnung, die in einer Zeitstempelverifizierungsprozedur verwendet wird, zur Verwendung mit verteilten Edge-Transaktionen, wie vorstehend erörtert. Konkret stellt 11 eine Veranschaulichung eines Bitmap-Indexes 1110 und optionaler Range-Maps bereit, die über den Bitmap-Index implementiert sind. Der Bitmap-Index kann verwendet werden, um jede lokale Software an einem Knoten zu befähigen, mit nur einem Test zu identifizieren, ob ein Datenobjekt, aus dem sie ausliest, in irgendeinem der unverarbeiteten Transaktionsblöcken aktualisiert wurde oder nicht (z. B. wenn 0 = nicht aktualisiert). Auf diese Weise funktioniert der Index ähnlich wie ein Bloom-Filter, um schnell zu identifizieren, ob irgendein Attribut nicht wahr ist.
-
Die Verwendung dieses Indexes kann eine Schwelle einbeziehen, die verwendet wird, um zu gewährleisten, dass die Anzahl von „1“-Bits sehr klein gehalten werden sollte, und kann von Logik begleitet werden, um die Hintergrundrendering-Schritte zu beschleunigen, wenn diese Zählung eine Schwelle überschreitet. Eine Range-Map über dem Bitmap-Index ermöglicht, dass der Bitmap-Index sehr groß sein und auf der Basis der Kennung des Objekts dennoch schnell konsultiert werden kann.
-
Bei Verwendung der vorliegenden Techniken, welche die authentisierte Verwendung von granularen Zeitstempeln ermöglichen, ist die Wahrscheinlichkeit von Zeitstempelkollision besonders gering. Bei stark reduzierter Möglichkeit einer Zeitkollision (die eine Stornierung, eine Annullierung oder eine Wiederholung von kollidierenden Transaktionen erfordern kann oder nicht, wie kurz erörtert) wird die Mehrheit der Transaktionen schnell und effizient durchgeführt, und nur jene seltenen Transaktionen, die ein Zeitkollision erfahren, müssen einer weiteren genauen Überprüfung unterzogen werden. Im Allgemeinen können die folgenden Auflösungsstrategien oder ähnliche Ansätze im seltenen Fall einer Zeitkollision verwendet werden.
-
Eine erste Strategie für Zeitstempelkollisionen kann die Verwendung einer Strategie des Zurücksetzens-Wiederholens (auch als „Abbrechen-Wiederholen“ bezeichnet) umfassen, die ein Änderungsprotokoll, einen kritischen Abschnitt oder einen Mutex-Kontext zum Identifizieren des Satzes von Deltas verwendet, der atomisch berücksichtigt werden muss, um erwartete ACID-Eigenschaften zu gewährleisten. Alle identifizierten Änderungen werden an den/die Verarbeitungsagenten zur Wiederverarbeitung zurückgesendet. Dieser Ansatz kann mit zunehmender Anzahl von verteilten Verarbeitungsagenten Skalierbarkeitsprobleme aufwerfen.
-
Eine andere Strategie für Zeitstempelkollision kann die Verwendung einer Melden-Ignorieren-Strategie umfassen, die Szenarien berücksichtigt, in welchen ACID-Anforderungen gelockert werden können oder in welchen Datenintegritätsanforderungen weniger streng sind. Zum Beispiel kann ein IoT-Netzwerk, das atmosphärische Bedingungen überwacht, bei jeder Probe größtenteils die gleichen Daten erzeugen. Infolgedessen kann es akzeptierbar sein, Transaktionen, bei welchen Kollisionen auftreten, einfach zu ignorieren und Daten, die von der Zeitstempelkollision betroffen sind, auszusortieren.
-
Eine weitere Strategie für Zeitstempelkollision kann die Verwendung einer Zusammenfassen-Fortsetzen-Strategie umfassen. Diese Strategie berücksichtigt Szenarien, in welchen Datenserialisierung nicht strikt zu sein braucht. Zum Beispiel kann verteilte Videoverarbeitung zu Codecs führen, die überlappende Codierungen erzeugen. Die Decodierungsergebnisse können ähnlich (wenn nicht identisch) sein; die Unterschiede können jedoch vernachlässigbar sein, so dass das eine oder das andere verworfen werden kann, während das erste bewahrt wird und die Verarbeitung normal fortgesetzt wird. Alternativ können kollidierende Datenobjekte gemäß einer Funktion, die das Delta zwischen ihnen mittelt, zusammengelegt werden.
-
Im Kontext der variierenden ACID-Eigenschaften der Daten, die gehandhabt werden, können auch andere Kollisionsauflösungsstrategien in Betracht gezogen werden. Demgemäß kann eine Edge-Computing-Transaktion Metadaten umfassen, die anwendbare ACID-Eigenschaften beschreiben und mit den zeitgestempelten Daten einbezogen werden, derart dass lokalisierte Kollisionsauflösung unter Verwendung einer der zuvor erwähnten Strategien oder durch eine hierin nicht ausdrücklich erwähnte Strategie angewendet werden kann.
-
12 veranschaulicht ein Flussdiagramm 1200 eines beispielhaften Prozesses zur Bereitstellung und Verwendung einer Verifizierung signierter Zeitstempel für Transaktionen innerhalb einer Edge-Computing-Plattform. Die folgenden Operationen 1240 bis 1270 des Flussdiagramms 1200 werden von der Perspektive eines datenimplementierenden Edge-Computing-Geräts veranschaulicht, das Hardware zum Verifizieren und Verwenden von Daten umfasst, die mit einem verifizierten Zeitstempel assoziiert sind; die Operationen 1210 bis 1230 werden von der Perspektive eines datenerzeugenden Edge-Computing-Geräts veranschaulicht, das Hardware zum Generieren von Daten und Erzeugen des verifizierten Zeitstempels und von Transaktionsinformationen umfasst. Die in diesen Beispielen vorgeschlagene Transaktion kann als Teil einer Anzahl von verschiedenen Transaktionsereignissen (z. B. als Teil einer Edge-Computing-Dienstaktion, - Workload-Nutzung usw.) durchgeführt werden. Es versteht sich jedoch, dass andere entsprechende Operationen, Transaktionen und Datenaktionen auch durch oder für andere Entitäten oder innerhalb anderer Komponenten von Hardware oder Hardwaresystemen implementiert werden können.
-
Das Flussdiagramm 1200 beginnt bei Operation 1210, die von einer Entität des Edge-Computing-Systems (dem datenerzeugenden Edge-Computing-Gerät) durchgeführt wird, um Daten in Verbindung mit der Edge-Computing-Transaktion, beispielsweise einer Blockkettentransaktion, einer Datenbanktransaktion usw., festzulegen. Diese Transaktion kann Aktualisierungen, Änderungen, Hinzufügung, Löschungen usw. von Daten bereitstellen, die ein Teil eines größeren Datensatzes (eines Transaktionsdatensatzes) sind. Zum Beispiel kann die Transaktion für das datenimplementierende Edge-Computing-Gerät über ein Netzwerk zum Aktualisieren einer vorherigen Version des Transaktionsdatensatzes bereitgestellt werden. Der Datensatz kann zum Aktualisieren, Hinzufügen, Ändern oder Hosten von Daten in einem Datenspeicher (z. B. einer Datenbank) bereitgestellt werden, wobei die Durchführung der Transaktion am datenimplementierenden Edge-Computing-Gerät bewirkt, dass Daten für die Transaktion (Transaktionsdaten) in den Datenspeicher geschrieben werden, der sich an der Hardwareplattform (z. B. einem in einem Speichergerät gehosteten Datenspeicher) befindet oder damit gekoppelt ist.
-
Wie in den vorstehenden Beispielen erörtert, kann die Transaktion eine Verwendung einer Datenbanktransaktion mit Kontrolle von Nebenläufigkeit mehrerer Versionen (MVCC Multi-Version Concurrency Control) umfassen, wobei die MVCC-Datenbanktransaktion unter Verwendung eines Zeitwerts des Zeitstempels durchgeführt wird. In anderen Beispielen ist die Transaktion eine Blockkettentransaktion, da die Transaktionsdaten in einem Block einer Blockkette bereitgestellt werden, wobei der folgende Zeitstempelwert in den Block einbezogen wird. (Die Blockkette kann zum Beispiel eine Permissioned-Blockkette sein, wie vorstehend erörtert.)
-
Das Flussdiagramm fährt bei Operationen 1220 fort, um einen hochpräzisen, global koordinierten Zeitstempel für die Edge-Computing-Transaktion am datenerzeugenden Edge-Computing-Gerät und zwischen anderen verteilten Entitäten des Edge-Computing-Systems zu generieren. Dies kann einen Zeitstempel umfassen, der mit einer koordinierten Zeitstempelprozedur an einer Hardwareplattform generiert wird, selbst wenn ein koordinierter Zeitstempel an einer anderen Entität (und Entitäten) des Edge-Computing-Systems generiert wird. Zum Beispiel kann eine koordinierte Zeitstempelprozedur unter Verwendung einer netzwerkkoordinierten Zeitstempelkoordinationsprozedur zwischen einem Systemtakt eines Edge-Computing-Geräts und einem Systemtakt einer anderen Entität durchgeführt werden, wenn das Edge-Computing-Gerät und die andere Entität einen koordinierten Zeitstempel bei den jeweiligen Systemtakten unter Verwendung von Hardware-Kreuzzeitstempeln deterministisch in Beziehung setzen. In spezifischen Beispielen werden Takte, die zum Generieren von Zeitstempeln am Edge-Computing-Gerät und der anderen Entität verwendet werden, mit Synchronisierung koordiniert, die gemäß einem Präzisionszeitprotokoll durchgeführt wird.
-
Das Flussdiagramm 1200 fährt bei Operation 1230 fort, um eine Signatur zur Verwendung des hochpräzisen, global koordinierten Zeitstempels mit der Edge-Computing-Transaktion zu generieren. In spezifischen Beispielen wird die Zeitstempelsignatur unter Verwendung eines privaten Schlüssels generiert, der von einem Prozess asymmetrischer Verschlüsselung bereitgestellt wird, um zu ermöglichen, dass eine spätere Validierung der Zeitstempelsignatur (in Operation 1250, die nachstehend erörtert wird) basierend auf einer Verifizierung des Zeitstempels und der Transaktionsdaten unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht, durchgeführt wird. In einem spezifischen Beispiel, das eine Blockkette umfasst, wird die Zeitstempelsignatur in der vertrauenswürdigen Hardwareumgebung unter Verwendung einer Nonce und eines Wertes einer zyklischen Redundanzprüfung (CRC - Cyclic Redundancy Check) für die Transaktionsdaten generiert, wenn die Nonce und der CRC-Wert im Block der Blockkette bereitgestellt werden.
-
Das Flussdiagramm 1200 fährt bei Operation 1240 fort, um die Transaktionsdaten, den Zeitstempel und die generierte Signatur in Verbindung mit der Edge-Computing-Transaktion zu erhalten. Der Zeitstempel wird aus einer koordinierten Zeitstempelprozedur an einer anderen Entität des Edge-Computing-Systems (z. B. bei Operation 1220) generiert, und die Zeitstempelsignatur wird aus einer vertrauenswürdigen Hardwareumgebung der anderen Entität basierend auf dem Zeitstempel und den Transaktionsdaten (z. B. bei Operation 1230) generiert. Diese Operationen können zum Beispiel durch eine Netzwerkschnittstellenschaltungsanordnung implementiert werden, um die Transaktionsdaten, den Zeitstempel und die Zeitstempelsignatur über ein Netzwerk des Edge-Computing-Systems zu empfangen.
-
Das Flussdiagramm 1200 fährt bei Operation 1250 fort, um die Signatur in Bezug auf den Zeitstempel und die für die Edge-Computing-Transaktion bereitgestellten Transaktionsdaten zu validieren. In spezifischen Beispielen basieren die Operationen zum Verifizieren des Zeitstempels für die Transaktion auf Hardwareoperationen, die in einer Schaltungsanordnung im Edge-Computing-Gerät durchgeführt (z. B. mit Hardwareanweisungen implementiert) werden. Basierend auf dieser Verifizierung wird die vertrauenswürdige Hardwareumgebung der anderen Entität für ein spezifisches Edge-Computing-Gerät basierend auf einer dem spezifischen Edge-Computing-Gerät bekannten Vertrauenswurzel attestiert.
-
Das Flussdiagramm 1200 fährt bei Operation 1260 fort, um einen aktualisierten Teil der Transaktionsdaten innerhalb der gesamten Transaktion basierend auf dem Zeitstempel zu identifizieren. Zum Beispiel können in einem Szenario, in welchem eine vorherige Version des Transaktionsdatensatzes am Edge-Computing-Gerät in einem Index indiziert ist, Teile des Transaktionsdatensatzes nur basierend auf dem Index aktualisiert werden. Das Durchführen der Transaktion im Edge-Computing-Gerät basierend auf Werten des Indexes kann zum Beispiel eine Aktualisierung von jeweiligen Teilen eines Transaktionsdatensatzes basierend auf einer Anzeige einer geänderten Version für die jeweiligen Teile des Transaktionsdatensatzes bewirken, wie durch den Index angezeigt. Der Index kann durch Identifizieren eines Wertes des Indexes, der dem Teil des Transaktionsdatensatzes entspricht, basierend auf den Transaktionsdaten generiert werden, derart dass der Wert des Indexes der vorherigen Version der Transaktionsdaten entspricht. Der Index kann in Reaktion darauf, dass sich ein Zeitstempelwert für den Teil des Transaktionsdatensatzes ändert, durch Festlegen des Wertes des Indexes aktualisiert werden, derart dass der Wert des Indexes so festgelegt wird, dass er eine geänderte Version der Transaktionsdaten innerhalb des Transaktionsdatensatzes anzeigt.
-
Das Flussdiagramm 1200 fährt bei Operation 1270 durch Durchführen einer oder mehrerer Transaktionsaktionen basierend auf der Validierung des Zeitstempels und des Zeitstempelwerts fort. Das Durchführen der Transaktion kann zum Beispiel bewirken, dass Transaktionsdaten in den Datenspeicher geschrieben werden. In einem weiteren Beispiel kann das Durchführen der Transaktion im Edge-Computing-Gerät eine Aktualisierung einer vorherigen Version der Transaktionsdaten im Datenspeicher bewirken, wobei die Aktualisierung der Transaktionsdaten im Datenspeicher innerhalb eines Bitmap-Indexes verfolgt wird. Es können auch andere Transaktionsaktionen mit Daten und Datensätzen durchgeführt werden.
-
Die Implementierung der vorstehenden Techniken kann durch jede Anzahl von Spezifikationen, Konfigurationen oder beispielhaften Bereitstellungen von Hardware und Software erreicht werden. Es versteht sich, dass die in dieser Spezifikation beschriebenen Funktionseinheiten oder Fähigkeiten als Komponenten oder Module bezeichnet oder benannt worden sein können, um ihre Abhängigkeit von der Implementierung stärker hervorzuheben. Solche Komponenten können durch eine beliebige Anzahl von Software- oder Hardwareformen realisiert sein. Zum Beispiel kann eine Komponente oder ein Modul als eine Hardwareschaltung implementiert sein, die kundenspezifische höchstintegrierte (VLSI - Very-Large-Scale Integration) Schaltungen oder Gate-Arrays, handelsübliche Halbleiter, wie beispielsweise Logikchips, Transistoren, oder andere diskrete Komponenten umfasst. Eine Komponente oder ein Modul kann auch in programmierbaren Hardwaregeräten, wie beispielsweise feldprogrammierbaren Gate-Arrays, programmierbarer Matrixlogik, programmierbaren Logikbausteinen oder dergleichen implementiert sein. Die Komponenten oder Module können auch in Software zur Ausführung durch verschiedene Typen von Prozessoren implementiert sein. Ein identifizierte Komponente oder ein identifiziertes Modul ausführbaren Codes zum Beispiel umfasst einen oder mehrere physikalische oder logische Blöcke von Computeranweisungen, die zum Beispiel als ein Objekt, eine Prozedur oder eine Funktion organisiert sein können. Dennoch brauchen ausführbare Programme einer identifizierten Komponente oder eines identifizierten Moduls nicht physisch zusammen angeordnet zu sein, sondern können ganz verschiedene Anweisungen umfassen, die an verschiedenen Speicherorten gespeichert sind und die, wenn logisch miteinander verbunden, die Komponente oder das Modul umfassen und das spezifizierte Ziel für die Komponente oder das Modul erreichen.
-
In der Tat kann es sich bei einer Komponente oder einem Modul ausführbaren Codes um eine einzige Anweisung oder viele Anweisungen handeln, und es kann sogar über mehrere verschiedene Codesegmente, unter verschiedenen Programmen und über mehrere Speichergeräte oder Verarbeitungssysteme verteilt sein. Insbesondere können einige Aspekte des beschriebenen Prozesses (wie beispielsweise Umschreiben von Codes oder Analyse von Codes) auf einem anderen Verarbeitungssystem (z. B. in einem Computer in einem Datenzentrum) als dem stattfinden, in welchem der Code bereitgestellt wird (z. B. in einem Computer, der in einen Sensor oder Roboter eingebettet ist). Ähnlich können Betriebsdaten innerhalb von Komponenten oder Modulen hierin identifiziert und veranschaulicht und in jeder geeigneten Form realisiert und innerhalb jedes geeigneten Typs von Datenstruktur organisiert sein. Die Betriebsdaten können als einzelner Datensatz gesammelt werden, oder sie können über verschiedene Speicherorte, einschließlich verschiedener Speichergeräte, verteilt sein, und sie können wenigstens teilweise als elektronische Signale auf einem System oder in einem Netzwerk vorhanden sein. Die Komponenten oder Module können passiv oder aktiv sein und Agenten umfassen, die zum Ausführen gewünschter Funktionen ausgelegt sind.
-
Zusätzliche Anmerkungen und Beispiele
-
Zusätzliche Beispiele der vorliegend beschriebenen Verfahrens-, System- und Geräteausführungsformen umfassen die folgenden, nicht einschränkenden Konfigurationen. Jedes der nicht einschränkenden Beispiele kann für sich allein stehen oder in einer beliebigen Permutation oder Kombination mit einem oder mehreren beliebigen der anderen Beispiele, die im Folgenden oder in der gesamten vorliegenden Offenbarung bereitgestellt werden, kombiniert werden.
-
Beispiel 1 ist ein Edge-Computing-Gerät, das in einem Edge-Computing-System betrieben werden kann und umfasst: eine Verarbeitungsschaltungsanordnung; und ein Speichermedium, das darauf gespeicherte Anweisungen umfasst, wobei die Anweisungen bei Ausführung durch die Verarbeitungsschaltungsanordnung die Verarbeitungsschaltungsanordnung zum Durchführen von Operationen konfigurieren zum: Erhalten von Transaktionsdaten, eines Zeitstempels und einer Zeitstempelsignatur für eine Transaktion, wobei der Zeitstempel aus einer koordinierten Zeitstempelprozedur an einer anderen Entität des Edge-Computing-Systems generiert wird, und die Zeitstempelsignatur aus einer vertrauenswürdigen Hardwareumgebung der anderen Entität basierend auf dem Zeitstempel und den Transaktionsdaten generiert wird; Verifizieren des Zeitstempels für die Transaktion basierend auf einer Validierung der Zeitstempelsignatur und der Transaktionsdaten für die Transaktion; und Durchführen der Transaktion im Edge-Computing-Gerät unter Verwendung der Transaktionsdaten in Reaktion auf eine erfolgreiche Verifizierung des Zeitstempels.
-
In Beispiel 2 umfasst der Gegenstand nach Beispiel 1 einen Gegenstand, wobei die Transaktion am Edge-Computing-Gerät unter Verwendung eines Wertes des Zeitstempels durchgeführt wird.
-
In Beispiel 3 umfasst der Gegenstand nach Beispiel 2 einen Gegenstand, wobei die Transaktion eine Datenbanktransaktion mit Kontrolle von Nebenläufigkeit mehrerer Versionen (MVCC) ist, wobei die MVCC-Datenbanktransaktion unter Verwendung eines Zeitwerts des Zeitstempels durchgeführt wird.
-
In Beispiel 4 umfasst der Gegenstand nach Beispiel 2 bis 3 einen Gegenstand, wobei die Transaktionsdaten in einem Block einer Blockkette bereitgestellt werden, und wobei der Zeitstempel im Block umfasst ist.
-
In Beispiel 5 umfasst der Gegenstand nach Beispiel 4 einen Gegenstand, wobei die Blockkette eine Permissioned-Blockkette ist.
-
In Beispiel 6 umfasst der Gegenstand nach Beispiel 4 bis 5 einen Gegenstand, wobei die Zeitstempelsignatur in der vertrauenswürdigen Hardwareumgebung der anderen Entität unter Verwendung einer Nonce und eines Wertes einer zyklischen Redundanzprüfung (CRC) für die Transaktionsdaten generiert wird, und wobei die Nonce und der CRC-Wert im Block der Blockkette bereitgestellt werden.
-
In Beispiel 7 umfasst der Gegenstand nach Beispiel 1 bis 6 einen Gegenstand, wobei die vertrauenswürdige Hardwareumgebung der anderen Entität für das Edge-Computing-Gerät basierend auf einer dem spezifischen Edge-Computing-Gerät bekannten Vertrauenswurzel attestiert wird.
-
In Beispiel 8 umfasst der Gegenstand nach Beispiel 1 bis 7 einen Gegenstand, wobei die Transaktionsdaten als ein Teil eines Transaktionsdatensatzes bereitgestellt werden, und wobei eine vorherige Version des Transaktionsdatensatzes am Edge-Computing-Gerät in einem Index indiziert ist, wobei die Verarbeitungsschaltungsanordnung ferner konfiguriert ist zum Durchführen von Operationen zum: Identifizieren eines Wertes des Indexes, der dem Teil des Transaktionsdatensatzes entspricht, basierend auf den Transaktionsdaten, wobei der Wert des Indexes der vorherigen Version der Transaktionsdaten entspricht; und Festlegen des Wertes des Indexes in Reaktion darauf, dass sich ein Zeitstempelwert für den Teil des Transaktionsdatensatzes ändert, wobei der Wert des Indexes so festgelegt wird, dass er eine geänderte Version der Transaktionsdaten innerhalb des Transaktionsdatensatzes anzeigt.
-
In Beispiel 9 umfasst der Gegenstand nach Beispiel 8 einen Gegenstand, wobei die Operationen zum Durchführen der Transaktion im Edge-Computing-Gerät basierend auf Werten des Indexes durchgeführt werden, um jeweilige Teile des Transaktionsdatensatzes basierend auf einer Anzeige einer geänderten Version für die jeweiligen Teile des Transaktionsdatensatzes zu aktualisieren, wie durch den Index angezeigt.
-
In Beispiel 10 umfasst der Gegenstand nach Beispiel 1 bis 9 einen Gegenstand, wobei die andere Entität ein zweites Edge-Computing-Gerät ist, und wobei Takte, die zum Generieren von Zeitstempeln am Edge-Computing-Gerät und dem zweiten Edge-Computing-Gerät verwendet werden, mit Synchronisierung koordiniert werden, die gemäß einem Präzisionszeitprotokoll durchgeführt wird.
-
In Beispiel 11 umfasst der Gegenstand nach Beispiel 1 bis 10 einen Gegenstand, wobei die Zeitstempelsignatur unter Verwendung eines privaten Schlüssels generiert wird, der aus einem Prozess asymmetrischer Verschlüsselung bereitgestellt wird, und wobei die Validierung der Zeitstempelsignatur basierend auf einer Validierung des Zeitstempels und der Transaktionsdaten unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht, durchgeführt wird.
-
In Beispiel 12 umfasst der Gegenstand nach Beispiel 1 bis 11 ein Speichergerät, das Daten für einen Datenspeicher hostet; wobei das Durchführen der Transaktion bewirkt, dass die Transaktionsdaten in den Datenspeicher geschrieben werden.
-
In Beispiel 13 umfasst der Gegenstand nach Beispiel 12 einen Gegenstand, wobei das Durchführen der Transaktion im Edge-Computing-Gerät eine Aktualisierung einer vorherigen Version der Transaktionsdaten im Datenspeicher bewirkt, wobei die Aktualisierung der Transaktionsdaten im Datenspeicher innerhalb eines Bitmap-Indexes verfolgt wird.
-
In Beispiel 14 umfasst der Gegenstand nach Beispiel 1 bis 13 einen Gegenstand, wobei die Operationen zum Verifizieren des Zeitstempels für die Transaktion auf Hardwareoperationen basieren, die in einer Schaltungsanordnung des Edge-Computing-Geräts durchgeführt werden.
-
In Beispiel 15 umfasst der Gegenstand nach Beispiel 1 bis 14 eine Netzwerkschnittstellenschaltungsanordnung zum Empfangen der Transaktionsdaten, des Zeitstempels und der Zeitstempelsignatur über ein Netzwerk des Edge-Computing-Systems; wobei die koordinierte Zeitstempelprozedur unter Verwendung einer netzwerkkoordinierten Zeitstempelkoordinationsprozedur zwischen einem Systemtakt des Edge-Computing-Geräts und einem Systemtakt der anderen Entität durchgeführt wird, und wobei das Edge-Computing-Gerät und die andere Entität einen koordinierten Zeitstempel bei den jeweiligen Systemtakten unter Verwendung von Hardware-Kreuzzeitstempeln deterministisch in Beziehung setzen.
-
Beispiel 16 ist ein Verfahren, das von einem Edge-Computing-Gerät eines Edge-Computing-Systems durchgeführt wird, und wobei das Verfahren umfasst: Erhalten von Transaktionsdaten, eines Zeitstempels und einer Zeitstempelsignatur für eine Transaktion, wobei der Zeitstempel aus einer koordinierten Zeitstempelprozedur an einer anderen Entität des Edge-Computing-Systems generiert wird, und die Zeitstempelsignatur aus einer vertrauenswürdigen Hardwareumgebung der anderen Entität basierend auf dem Zeitstempel und den Transaktionsdaten generiert wird; Verifizieren des Zeitstempels für die Transaktion basierend auf einer Validierung der Zeitstempelsignatur und der Transaktionsdaten für die Transaktion; und Durchführen der Transaktion im Edge-Computing-Gerät unter Verwendung der Transaktionsdaten in Reaktion auf eine erfolgreiche Verifizierung des Zeitstempels.
-
In Beispiel 17 umfasst der Gegenstand nach Beispiel 16 einen Gegenstand, wobei die Transaktion am Edge-Computing-Gerät unter Verwendung eines Wertes des Zeitstempels durchgeführt wird.
-
In Beispiel 18 umfasst der Gegenstand nach Beispiel 17 einen Gegenstand, wobei die Transaktion eine Datenbanktransaktion mit Kontrolle von Nebenläufigkeit mehrerer Versionen (MVCC Multi-Version Concurrency Control) ist, wobei die MVCC-Datenbanktransaktion unter Verwendung eines Zeitwerts des Zeitstempels durchgeführt wird.
-
In Beispiel 19 umfasst der Gegenstand nach Beispiel 17 bis 18 einen Gegenstand, wobei die Transaktionsdaten in einem Block einer Blockkette bereitgestellt werden, und wobei der Zeitstempel im Block umfasst ist.
-
In Beispiel 20 umfasst der Gegenstand nach Beispiel 19 einen Gegenstand, wobei die Blockkette eine Permissioned-Blockkette ist.
-
In Beispiel 21 umfasst der Gegenstand nach Beispiel 19 bis 20 einen Gegenstand, wobei die Zeitstempelsignatur in einer vertrauenswürdigen Hardwareumgebung unter der anderen Entität unter Verwendung einer Nonce und eines Wertes einer zyklischen Redundanzprüfung (CRC) für die Transaktionsdaten generiert wird, und wobei die Nonce und der CRC-Wert im Block der Blockkette bereitgestellt werden.
-
In Beispiel 22 umfasst der Gegenstand nach Beispiel 16 bis 21 einen Gegenstand, wobei die vertrauenswürdige Hardwareumgebung der anderen Entität für das Edge-Computing-Gerät basierend auf einer dem Edge-Computing-Gerät bekannten Hardware-Vertrauenswurzel attestiert wird.
-
In Beispiel 23 umfasst der Gegenstand nach Beispiel 16 bis 22 einen Gegenstand, wobei die Transaktionsdaten als ein Teil eines Transaktionsdatensatzes bereitgestellt werden, und wobei eine vorherige Version des Transaktionsdatensatzes am Edge-Computing-Gerät in einem Index indiziert ist, wobei das Verfahren ferner umfasst: Identifizieren eines Wertes des Indexes, der dem Teil des Transaktionsdatensatzes entspricht, basierend auf ein Transaktionsdaten, wobei der Wert des Indexes der vorherigen Version der Transaktionsdaten entspricht; und Aktualisieren des Wertes des Indexes in Reaktion darauf, dass sich ein Zeitstempelwert für den Teil des Transaktionsdatensatzes ändert, wobei der Wert des Indexes aktualisiert wird, um eine geänderte Version der Transaktionsdaten innerhalb des Transaktionsdatensatzes anzuzeigen.
-
In Beispiel 24 umfasst der Gegenstand nach Beispiel 23 ein Durchführen der Transaktion im Edge-Computing-Gerät basierend auf Werten des Indexes, um jeweilige Teile des Transaktionsdatensatzes basierend auf einer Anzeige einer geänderten Version für die jeweiligen Teile des Transaktionsdatensatzes zu aktualisieren, wie durch den Index angezeigt.
-
In Beispiel 25 umfasst der Gegenstand nach Beispiel 16 bis 24 einen Gegenstand, wobei die andere Entität ein zweites Edge-Computing-Gerät ist, und wobei Takte, die zum Generieren von Zeitstempeln am Edge-Computing-Gerät und dem zweiten Edge-Computing-Gerät verwendet werden, mit Synchronisierung koordiniert werden, die gemäß einem Präzisionszeitprotokoll durchgeführt wird.
-
In Beispiel 26 umfasst der Gegenstand nach Beispiel 16 bis 25 einen Gegenstand, wobei die Zeitstempelsignatur unter Verwendung eines privaten Schlüssels generiert wird, der aus einem Prozess asymmetrischer Verschlüsselung bereitgestellt wird, und wobei Validierung der Zeitstempelsignatur basierend auf einer Validierung des Zeitstempels und der Transaktionsdaten unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht, durchgeführt wird.
-
In Beispiel 27 umfasst der Gegenstand nach Beispiel 16 bis 26 einen Gegenstand, wobei das Durchführen der Transaktion bewirkt, dass die Transaktionsdaten in einen Datenspeicher geschrieben werden, der vom Edge-Computer-Gerät betrieben wird.
-
In Beispiel 28 umfasst der Gegenstand nach Beispiel 27 einen Gegenstand, wobei das Durchführen der Transaktion im Edge-Computing-Gerät eine Aktualisierung einer vorherigen Version der Transaktionsdaten im Datenspeicher bewirkt, wobei die Aktualisierung der Transaktionsdaten im Datenspeicher innerhalb eines Bitmap-Indexes verfolgt wird.
-
In Beispiel 29 umfasst der Gegenstand nach Beispiel 16 bis 28 einen Gegenstand, wobei ein Verifizieren des Zeitstempels für die Transaktion basierend auf Hardwareoperationen durchgeführt wird, die in einer Schaltungsanordnung des Edge-Computing-Geräts durchgeführt werden.
-
In Beispiel 30 umfasst der Gegenstand nach Beispiel 16 bis 29 ein Empfangen der Transaktionsdaten, des Zeitstempels und der Zeitstempelsignatur über ein Netzwerk des Edge-Computing-Systems; wobei die koordinierte Zeitstempelprozedur unter Verwendung einer netzwerkkoordinierten Zeitstempelkoordinationsprozedur zwischen einem Systemtakt des Edge-Computing-Geräts und einem Systemtakt der anderen Entität durchgeführt wird, und wobei das Edge-Computing-Gerät und die andere Entität einen koordinierten Zeitstempel bei den jeweiligen Systemtakten unter Verwendung von Hardware-Kreuzzeitstempeln deterministisch in Beziehung setzen.
-
Beispiel 31 ist mindestens ein nichttransitorisches maschinenlesbares Speichermedium, das Anweisungen oder gespeicherte Daten, die zu Anweisungen konfiguriert sein können, umfasst, wobei die Anweisungen, wenn konfiguriert und ausgeführt durch eine Verarbeitungsschaltungsanordnung eines Computing-Geräts, die Verarbeitungsschaltungsanordnung zum Durchführen einer der Operationen nach Beispiel 16 bis 30 veranlassen.
-
Beispiel 32 ist eine Vorrichtung, die in einem Edge-Computing-Systems betrieben werden kann, wobei die Vorrichtung umfasst: Mittel zum Erhalten von Transaktionsdaten, eines Zeitstempels und einer Zeitstempelsignatur für eine Transaktion, wobei der Zeitstempel aus einer koordinierten Zeitstempelprozedur an einer anderen Entität des Edge-Computing-Systems generiert wird, und die Zeitstempelsignatur aus einer vertrauenswürdigen Hardwareumgebung der anderen Entität basierend auf dem Zeitstempel und den Transaktionsdaten generiert wird; Mittel zum Verifizieren des Zeitstempels für die Transaktion basierend auf einer Validierung der Zeitstempelsignatur und der Transaktionsdaten für die Transaktion; und Mittel zum Durchführen der Transaktion unter Verwendung der Transaktionsdaten in Reaktion auf eine erfolgreiche Verifizierung des Zeitstempels.
-
In Beispiel 33 umfasst der Gegenstand nach Beispiel 32 Mittel zum Durchführen der wobei die Verwendung eines Wertes des Zeitstempels.
-
In Beispiel 34 umfasst der Gegenstand nach Beispiel 33 Mittel zum Durchführen der Transaktion als eine Datenbanktransaktion mit Kontrolle von Nebenläufigkeit mehrerer Versionen (MVCC), wobei die MVCC-Datenbanktransaktion unter Verwendung eines Zeitwerts des Zeitstempels durchgeführt wird.
-
In Beispiel 35 umfasst der Gegenstand nach Beispiel 33 bis 34 Mittel zum Erhalten der Transaktionsdaten aus einem Block einer Blockkette, wobei der Zeitstempel im Block umfasst ist.
-
In Beispiel 36 umfasst der Gegenstand nach Beispiel 35 einen Gegenstand, wobei die Blockkette eine Permissioned-Blockkette ist.
-
In Beispiel 37 umfasst der Gegenstand nach Beispiel 35 bis 36 Mittel zum Extrahieren des Blocks der Blockkette, wobei die Zeitstempelsignatur in der vertrauenswürdigen Hardwareumgebung der anderen Entität unter Verwendung einer Nonce und eines Wertes einer zyklischen Redundanzprüfung (CRC) für die Transaktionsdaten generiert wird, und wobei die Nonce und der CRC-Wert im Block der Blockkette bereitgestellt werden.
-
In Beispiel 38 umfasst der Gegenstand nach Beispiel 33 bis 37 Mittel zum Attestieren der vertrauenswürdigen Hardwareumgebung der anderen Entität basierend auf einer der Vorrichtung bekannten Hardware-Vertrauenswurzel.
-
In Beispiel 39 umfasst der Gegenstand nach Beispiel 33 bis 38 Mittel zum Erhalten der Transaktionsdaten aus einem Teil eines Transaktionsdatensatzes, und wobei eine vorherige Version des Transaktionsdatensatzes in einem Index indiziert ist; Mittel zum Identifizieren eines Wertes des Indexes, der dem Teil des Transaktionsdatensatzes entspricht, basierend auf den Transaktionsdaten, wobei der Wert des Indexes der vorherigen Version der Transaktionsdaten entspricht; und Mittel zum Aktualisieren des Wertes des Indexes in Reaktion darauf, dass sich ein Zeitstempelwert für den Teil des Transaktionsdatensatzes ändert, wobei der Wert des Indexes aktualisiert wird, um eine geänderte Version der Transaktionsdaten innerhalb des Transaktionsdatensatzes anzuzeigen.
-
In Beispiel 40 umfasst der Gegenstand nach Beispiel 39 Mittel zum Durchführen der Transaktion basierend auf Werten des Indexes, um jeweilige Teile des Transaktionsdatensatzes basierend auf einer Anzeige einer geänderten Version für die jeweiligen Teile des Transaktionsdatensatzes zu aktualisieren, wie durch den Index angezeigt.
-
In Beispiel 41 umfasst der Gegenstand nach Beispiel 33 bis 40 Mittel zum Generieren von Zeitstempeln in Koordination mit der anderen Entität mit Synchronisierung, die gemäß einem Präzisionszeitprotokoll durchgeführt wird, wobei die andere Entität ein zweites Edge-Computing-Gerät ist.
-
In Beispiel 42 umfasst der Gegenstand nach Beispiel 33 bis 41 Mittel zum Generieren der Zeitstempelsignatur unter Verwendung eines privaten Schlüssels, der aus einem Prozess asymmetrischer Verschlüsselung bereitgestellt wird, und wobei Validierung der Zeitstempelsignatur basierend auf einer Validierung des Zeitstempels und der Transaktionsdaten unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel entspricht, durchgeführt wird.
-
In Beispiel 43 umfasst der Gegenstand nach Beispiel 33 bis 42 Mittel zum Bewirken, dass die Transaktionsdaten in einen Datenspeicher geschrieben werden.
-
In Beispiel 44 umfasst der Gegenstand nach Beispiel 43 Mittel zum Bewirken einer Aktualisierung einer vorherigen Version der Transaktionsdaten im Datenspeicher, wobei die Aktualisierung der Transaktionsdaten im Datenspeicher innerhalb eines Bitmap-Indexes verfolgt wird.
-
In Beispiel 45 umfasst der Gegenstand nach Beispiel 33 bis 44 Mittel zum Durchführen des Verifizierens des Zeitstempels für die Transaktion unter Verwendung von Hardwareoperationen.
-
In Beispiel 46 umfasst der Gegenstand nach Beispiel 33 bis 45 Mittel zum Empfangen der Transaktionsdaten, des Zeitstempels und der Zeitstempelsignatur über ein Netzwerk des Edge-Computing-Systems; wobei die koordinierte Zeitstempelprozedur unter Verwendung einer netzwerkkoordinierten Zeitstempelkoordinationsprozedur zwischen einem Systemtakt der Vorrichtung und einem Systemtakt der anderen Entität durchgeführt wird, und wobei die Vorrichtung und die andere Entität einen koordinierten Zeitstempel bei den jeweiligen Systemtakten unter Verwendung von Hardware-Kreuzzeitstempeln deterministisch in Beziehung setzen.
-
Beispiel 47 kann ein oder mehrere computerlesbare Speichermedien umfassen, die Daten zum Veranlassen eines elektronischen Geräts bei Ladung, Ausführung, Konfiguration oder Bereitstellung der Daten durch einen oder mehrere Prozessoren oder eine elektronische Schaltungsanordnung des elektronischen Geräts zum Durchführen eines oder mehrerer Elemente eines in einem der Beispiele 1 bis 46 beschriebenen oder damit in Beziehung stehenden Verfahrens umfassen.
-
Beispiel 48 kann eine Vorrichtung mit Logik, Modulen oder Schaltungsanordnung zum Durchführen eines oder mehrerer Elemente eines in einem der Beispiele 1 bis 46 beschriebenen oder damit in Beziehung stehenden Verfahrens oder jedes anderen hierin beschriebenen Verfahrens oder Prozesses umfassen.
-
Beispiel 49 kann ein Verfahren, eine Technik oder einen Prozess, das/die/der in einem der Beispiele 1 bis 46 beschrieben wird oder damit in Beziehung steht, oder Abschnitte oder Teile davon umfassen.
-
Beispiel 50 kann eine Vorrichtung umfassen, die umfasst: einen oder mehrere Prozessoren und ein oder mehrere computerlesbare Medien mit Anweisungen, die bei Ausführung durch den einen oder die mehreren Prozessoren den einen oder die mehreren Prozessoren zum Durchführen des Verfahrens, der Techniken oder des Prozesses, das/die/der in einem der Beispiele 1 bis 46 beschrieben wird/werden oder damit in Beziehung steht/stehen, oder von Abschnitten veranlassen, konfigurieren oder anpassen.
-
Beispiel 51 kann ein Signal, das in einem der Beispiele 1 bis 46 beschrieben wird oder damit in Beziehung steht, oder Abschnitte oder Teile davon umfassen.
-
Beispiel 52 kann ein Signal in einem drahtlosen Netzwerk umfassen, das in einem der Beispiele 1 bis 46 beschrieben wird oder damit in Beziehung steht oder hierin anderweitig dargestellt und beschrieben wird.
-
Beispiel 53 kann ein Verfahren zum Durchführen oder Koordinieren von Kommunikationen in einem drahtlosen Netzwerk umfassen, das in einem der Beispiele 1 bis 46 beschrieben wird oder damit in Beziehung steht oder hierin anderweitig dargestellt oder beschrieben wird.
-
Beispiel 54 kann ein Gerät zum Verarbeiten von Kommunikation umfassen, das in einem der Beispiele 1 bis 46 beschrieben wird oder damit in Beziehung steht oder hierin anderweitig dargestellt oder beschrieben wird.
-
Beispiel 55 ist ein Netzwerk, das jeweilige Geräte und Gerätekommunikationsmittel zum Durchführen einer der Operationen nach Beispiel 1 bis 46 umfasst oder wie hierin anderweitig dargestellt und beschrieben.
-
Beispiel 56 ist eine Netzwerkschnittstellenkarte, die eine Schaltungsanordnung umfasst und jeweilige Logik und Funktionalität zum Durchführen einer der Operationen nach Beispiel 1 bis 46 implementiert oder wie hierin anderweitig dargestellt und beschrieben.
-
Beispiel 57 ist eine Schaltungsanordnung zum Generieren und Koordinieren von Zeit, die jeweilige Logik und Funktionalität zum Durchführen einer der Operationen nach Beispiel 1 bis 46 implementiert oder wie hierin anderweitig dargestellt und beschrieben.
-
Beispiel 58 ist ein verteiltes Datenbanksystem, das eine Schaltungsanordnung umfasst und jeweilige Logik und Funktionalität zum Durchführen einer der Operationen nach Beispiel 1 bis 46 implementiert oder wie hierin anderweitig dargestellt und beschrieben.
-
Beispiel 59 ist eine Implementierung von Cloud-Computing-Edge-Geräten, umfassend Verarbeitungsknoten und Datenverarbeitungseinheiten, die zum Durchführen einer der Operationen nach Beispiel 1 bis 46 ausgelegt sind, oder wie hierin anderweitig dargestellt und beschrieben.
-
Beispiel 60 ist eine Vorrichtung, die Mittel zum Implementieren eines der Beispiele 1 bis 46 umfasst.
-
Beispiel 61 ist ein System zum Implementieren eines der Beispiele 1 bis 60.
-
Beispiel 62 ist ein Verfahren zur Implementierung eines der Beispiele 1 bis 60.
-
In der vorstehenden ausführlichen Beschreibung können verschiedene Merkmale zusammengefasst sein, um die Offenbarung zu straffen. Die Ansprüche legen jedoch möglicherweise nicht jedes hierin offenbarte Merkmal dar, da Ausführungsformen einen Teilsatz der Merkmale aufweisen können. Ferner können Ausführungsformen weniger Merkmale als jene umfassen, die in einem bestimmten Beispiel offenbart werden. Demnach werden die folgenden Ansprüche hiermit in die ausführliche Beschreibung aufgenommen, wobei ein Anspruch für sich selbst als eine separate Ausführungsform steht.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 62/907597 [0001]
- US 62/939303 [0001]