-
VERWANDTE ANMELDUNG
-
Dieses Patent ergibt sich aus einer nicht vorläufigen Patentanmeldung, welche die Priorität aus der am 22. November 2019 eingereichten vorläufigen US-Patentanmeldung Nr.
62/939 303 mit dem Titel „Multi-Entity Resource, Security, and Service Management in Edge Computing Deployments“ und aus der am 28. September 2019 eingereichten vorläufigen US-Patentanmeldung Nr.
62/907 597 mit dem Titel „Multi-Entity Resource, Security, and Service Management in Edge Computing Deployments“ beansprucht. Die vorläufige US-Patentanmeldung Nr.
62/939 303 und die vorläufige US-Patentanmeldung Nr.
62/907 597 sind hier in ihrer Gesamtheit durch Verweis aufgenommen.
-
GEBIET DER OFFENBARUNG
-
Diese Offenbarung betrifft allgemein Edge-Umgebungen und insbesondere Verfahren und Vorrichtungen zum Aggregieren von Telemetriedaten in einer Edge-Umgebung.
-
HINTERGRUND
-
Edge-Umgebungen (beispielsweise ein Edge-, Fog-, Mehrfachzugriffs-Edge-Computing(MEC)- oder Internet-der-Dinge(IoT)-Netz) ermöglichen eine Ausführung von Arbeitslasten (beispielsweise eine Ausführung einer oder mehrerer Rechenaufgaben, eine Ausführung eines Maschinenlernmodells unter Verwendung eingegebener Daten usw.) in der Nähe von Endpunktvorrichtungen, die eine Ausführung der Arbeitslast fordern. Edge-Umgebungen können Infrastruktur in der Art eines Edge-Dienstes aufweisen, die mit Cloud-Infrastruktur, Endpunktvorrichtungen oder zusätzlicher Edge-Infrastruktur über Netze in der Art des Internets verbunden ist. Edge-Dienste können sich näher an Endpunktvorrichtungen befinden als Cloud-Infrastruktur in der Art zentralisierter Server.
-
Figurenliste
-
Es zeigen:
- 1 eine beispielhafte Umgebung, die eine beispielhafte Cloud-Umgebung, eine beispielhafte Edge-Umgebung, eine beispielhafte Endpunktumgebung und beispielhafte Telemetriesteuereinrichtungen zum Aggregieren von Telemetriedaten aufweist,
- 2 ein Blockdiagramm der beispielhaften Telemetriesteuereinrichtungen aus 1,
- 3 ein beispielhaftes Ressourcenmodell, das ein Ressourceninformationsobjekt und ein Telemetrieinformationsobjekt aufweist,
- 4 ein Blockdiagramm des Telemetrieinformationsobjekts aus 3,
- die 5A - 5E beispielhafte Beziehungen zwischen dem Ressourcenobjekt aus 3 und dem Telemetrieobjekt aus den 3 und/oder 4,
- die 6A - 6C schematische Darstellungen beispielhafter Ressourcenkompositionen,
- die 7A - 7C schematische Darstellungen beispielhafter Telemetriekompositionen,
- 8 ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle repräsentiert, die ausgeführt werden können, um die beispielhafte Telemetrie-Steuereinrichtung aus den 1 und/oder 2 zu implementieren, um auf der Grundlage von Telemetriedaten Rechenaufgaben auf einen oder mehrere beispielhafte Edge-Dienste zu verteilen,
- 9 ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle repräsentiert, die ausgeführt werden können, um die beispielhafte Telemetrie-Steuereinrichtung aus den 1 und/oder 2 zu implementieren, um eine oder mehrere beispielhafte Kompositionen eines beispielhaften Edge-Dienstes zu erzeugen,
- 10 ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle repräsentiert, die ausgeführt werden können, um die beispielhafte Telemetrie-Steuereinrichtung aus den 1 und/oder 2 zu implementieren, um ein oder mehrere beispielhafte Ressourcenobjekte zu erzeugen,
- 11 ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle repräsentiert, die ausgeführt werden können, um die beispielhafte Telemetrie-Steuereinrichtung aus den 1 und/oder 2 zu implementieren, um ein oder mehrere beispielhafte Telemetrieinformationsobjekte zu erzeugen,
- 12 ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle repräsentiert, die ausgeführt werden können, um das beispielhafte Telemetrieinformationsobjekt aus den 3, 4 und/oder 5A zu implementieren, um Telemetriedaten zu erzeugen,
- 13 ein Blockdiagramm einer beispielhaften Verarbeitungsplattform, die aufgebaut ist, um die beispielhaften maschinenlesbaren Befehle aus den 8 - 12 auszuführen, um die eine oder die mehreren beispielhaften Telemetrie-Steuereinrichtungen aus den 1 und/oder 2 zu implementieren, und
- 14 ein Blockdiagramm einer beispielhaften Verarbeitungsplattform, die aufgebaut ist, um die beispielhaften maschinenlesbaren Befehle aus den 8 - 12 auszuführen, um den einen oder die mehreren beispielhaften Edge-Dienste aus 1 zu implementieren.
-
Die Figuren sind nicht maßstabsgerecht. Im Allgemeinen werden in den Zeichnungen und der anliegenden Beschreibung die gleichen Bezugszahlen verwendet, um gleiche oder vergleichbare Teile zu bezeichnen.
-
DETAILLIERTE BESCHREIBUNG
-
Die Deskriptoren „erster“, „zweiter“, „dritter“ usw. werden hier verwendet, wenn mehrere Elemente oder Komponenten identifiziert werden, auf die getrennt Bezug genommen werden kann. Sofern nichts anderes spezifiziert wird oder auf der Grundlage ihres Verwendungszusammenhangs verständlich wird, sollen solche Deskriptoren keine Bedeutung einer Priorität, physischen Reihenfolge oder Anordnung in einer Liste oder zeitlichen Reihenfolge unterstellen, sondern werden lediglich zum einfachen Verständnis der offenbarten Beispiele als Bezeichner zur getrennten Bezugnahme auf mehrere Elemente oder Komponenten verwendet. Bei einigen Beispielen kann der Deskriptor „erster“ verwendet werden, um ein Element in der detaillierten Beschreibung zu bezeichnen, während das gleiche Element in einem Anspruch mit einem anderen Deskriptor in der Art von „zweiter“ oder „dritter“ bezeichnet werden kann. In solchen Fällen ist zu verstehen, dass diese Deskriptoren lediglich zur einfachen Bezugnahme auf mehrere Elemente oder Komponenten verwendet werden.
-
Das Edge-Computing bezieht sich auf einem allgemeinen Niveau auf den Übergang von Rechen- und Speicherressourcen, die Endpunktvorrichtungen (beispielsweise Endverbraucher-Rechenvorrichtungen, Benutzergeräten usw.) näher liegen, um die Gesamtbetriebskosten zu optimieren, die Anwendungslatenz zu verringern, die Dienstfähigkeiten zu verbessern und die Einhaltung von Datenschutz- oder Sicherheitsanforderungen zu verbessern. Das Edge-Computing kann in manchen Szenarien einen Cloud-artigen verteilten Dienst bereitstellen, der eine Orchestrierung und Verwaltung von Anwendungen zwischen vielen Typen von Speicher- und Rechenressourcen bietet. Deshalb wurden einige Implementationen des Edge-Computings als „Edge-Cloud“ oder „Fog“ bezeichnet, weil mächtige Rechenressourcen, die zuvor nur den großen fernen Rechenzentren verfügbar waren, näher an Endpunkte bewegt wurden und Verbrauchern am „Rand“ des Netzes verfügbar gemacht wurden.
-
Verwendungsfälle des Edge-Computings in Mobilnetzumgebungen wurden für die Integration mit Mehrfachzugriffs-Edge-Computing(MEC)-Ansätzen, auch als „mobiles Edge-Computing“ bekannt, entwickelt. MEC-Ansätze sollen es Anwendungsentwicklern und Inhaltsanbietern ermöglichen, auf Rechenkapazitäten und eine Informationstechnologie(IT)-Dienstumgebung in dynamischen Mobilnetzumgebungen am Rand des Netzes zuzugreifen. Begrenzte Standards wurden von der Industriespezifikationsgruppe (ISG) des europäischen Instituts für Telekommunikationsnormung (ETSI) in einem Versuch entwickelt, gemeinsame Schnittstellen für den Betrieb von MEC-Systemen, -Plattformen, - Hosts, -Diensten und -Anwendungen zu definieren.
-
Edge-Computing, MEC und verwandte Technologien streben an, eine geringere Latenz, ein erhöhtes Ansprechverhalten und mehr verfügbare Rechenleistung bereitzustellen, als sie bei traditionellen Cloud-Netzdiensten und Weitbereichsnetzverbindungen angeboten werden. Die Integration von Mobilität und dynamisch gestarteten Diensten in einige mobile Verwendungs- und Vorrichtungsverarbeitungs-Anwendungsfälle hat jedoch zu Beschränkungen und Bedenken in Bezug auf die Orchestrierung, funktionelle Koordination und das Ressourcenmanagement geführt, insbesondere in komplexen Mobilitätsumgebungen, bei denen viele Teilnehmer (beispielsweise Vorrichtungen, Hosts, Mandanten, Dienstanbieter, Betreiber usw.) beteiligt sind.
-
Ähnlich sollen Internet-der-Dinge(IoT)-Netze und -Vorrichtungen eine verteilte Rechenanordnung anhand einer Vielzahl von Endpunkten bieten. IoT-Vorrichtungen können physische oder virtualisierte Objekte sein, die auf einem Netz kommunizieren können und Sensoren, Stellglieder und andere Ein-/Ausgabekomponenten aufweisen können, die verwendet werden können, um Daten zu sammeln oder Aktionen in einer realen Umgebung auszuführen. Beispielsweise können IoT-Vorrichtungen Endpunktvorrichtungen mit geringer Leistungsaufnahme aufweisen, die in alltägliche Dinge in der Art von Gebäuden, Fahrzeugen, Paketen usw. eingebettet oder daran angebracht sind, um eine zusätzliche Ebene einer künstlichen sensorischen Wahrnehmung dieser Dinge bereitzustellen. In den letzten Jahren sind IoT-Vorrichtungen beliebter geworden, und es haben sich demgemäß diese Vorrichtungen verwendende Anwendungen verbreitet.
-
Bei einigen Beispielen kann eine Edge-Umgebung einen Unternehmens-Edge aufweisen, worin eine Kommunikation mit und/oder innerhalb des Unternehmens-Edges durch drahtlose und/oder festverdrahtete Konnektivität erleichtert werden kann. Durch die Einrichtung verschiedener Edge-, Fog-, MEC- und IoT-Netze, -Vorrichtungen und -Dienste wurde eine Anzahl fortgeschrittener Verwendungsfälle und Szenarien eingeleitet, die am Rand des Netzes und zu diesem hin auftreten. Diese fortgeschrittenen Verwendungsfälle haben jedoch zu einer Anzahl entsprechender technischer Herausforderungen in Bezug auf Sicherheit, Verarbeitungs- und Netzressourcen, Dienstverfügbarkeit und Effizienz, unter vielen anderen Problemen, geführt. Eine solche Herausforderung bezieht sich auf Edge-, Fog- , MEC- und IoT-Netze, -Vorrichtungen und -Dienste, die Arbeitslasten im Auftrag von Endpunktvorrichtungen ausführen.
-
Die vorliegenden Techniken und Konfigurationen können in Zusammenhang mit vielen Aspekten aktueller Netzwerksysteme verwendet werden, werden jedoch mit Bezug auf Edge-Cloud, IoT, Mehrfachzugriffs-Edge-Computing (MEC) und andere verteilte Berechnungseinrichtungen bereitgestellt. Die folgenden Systeme und Techniken können in einer Vielzahl verteilter, virtualisierter oder gemanagter Edge-Berechnungssysteme implementiert werden oder diese erweitern. Diese umfassen Umgebungen, in denen Netzdienste unter Verwendung von Mehrfachzugriffs-Edge-Computing(MEC)-, Vierte-Generation(4G)- oder Fünfte-Generation(5G)-Drahtlosnetzkonfigurationen oder in festverdrahteten Netzkonfigurationen, die Faser-, Kupfer- und andere Verbindungen aufweisen, implementiert oder behandelt werden. Ferner können Aspekte der Verarbeitung durch die jeweiligen Rechenkomponenten Rechenelemente betreffen, die in geographischer Nähe zu einem Benutzergerät oder anderen Endpunktstellen stehen, wie ein Smartphone, eine Fahrzeugkommunikationskomponente, eine IoT-Vorrichtung usw. Ferner können sich die gegenwärtig offenbarten Techniken auf andere Edge/MEC/IoT-Netzkommunikationsstandards und -konfigurationen und andere Zwischenverarbeitungsentitäten und -architekturen beziehen.
-
Edge-Computing ist ein Entwicklungsparadigma, bei dem eine Berechnung am „Rand“ eines Netzes oder näher zu diesem ausgeführt wird, typischerweise durch die Verwendung einer Rechenplattform, die an Basisstationen, Gateways, Netz-Routern oder anderen Vorrichtungen implementiert ist, die sich viel näher zu Daten erzeugenden und verbrauchenden Endpunktvorrichtungen befinden. Beispielsweise können Edge-Gateway-Server mit Pools von Speicher- und Massenspeicherressourcen zur Ausführung von Berechnungen in Echtzeit für Verwendungsfälle mit geringer Latenz (beispielsweise autonomes Fahren oder Videoüberwachung) für angeschlossene Client-Vorrichtungen ausgerüstet sein. Bei einem weiteren Beispiel können Basisstationen durch Rechen- und Beschleunigungsressourcen erweitert werden, um Dienstarbeitslasten für ein angeschlossenes Benutzergerät direkt zu verarbeiten, ohne Daten über Backhaul-Netze weiter zu kommunizieren. Bei einem anderen Beispiel kann Zentralbüro-Netzverwaltungshardware durch Rechenhardware ersetzt werden, die virtualisierte Netzfunktionen ausführt und Rechenressourcen für die Ausführung von Diensten und Endverbraucherfunktionen für angeschlossene Vorrichtungen bietet.
-
Edge-Umgebungen weisen Netze und/oder Teile von Netzen auf, die sich zwischen einer Cloud-Umgebung und einer Endpunktumgebung befinden. Edge-Umgebungen ermöglichen Berechnungen von Arbeitslasten an Rändern eines Netzes. Beispielsweise kann eine Endpunktvorrichtung eine nahe gelegene Basisstation an Stelle eines zentralen Servers in einer Cloud-Umgebung auffordern, eine Arbeitslast zu berechnen. Edge-Umgebungen weisen Edge-Dienste auf, die Pools von Speicher-, Massenspeicherressourcen und Verarbeitungsressourcen aufweisen. Edge-Dienste führen Berechnungen in der Art einer Ausführung einer Arbeitslast im Auftrag anderer Edge-Dienste und/oder Edge-Knoten aus. Edge-Umgebungen erleichtern Verbindungen zwischen Erzeugern (beispielsweise Arbeitslastexekutoren, Edge-Diensten) und Verbrauchern (beispielsweise anderen Edge-Diensten, Endpunktvorrichtungen).
-
Weil sich Edge-Dienste näher an Endpunktvorrichtungen als zentralisierte Server in Cloud-Umgebungen befinden können, ermöglichen Edge-Dienste Berechnungen von Arbeitslasten mit einer geringeren Latenz (beispielsweise Antwortzeit) als Cloud-Umgebungen. Edge-Dienste können auch eine lokalisierte Ausführung einer Arbeitslast auf der Grundlage geographischer Orte oder Netztopographien ermöglichen. Beispielsweise kann eine Endpunktvorrichtung fordern, dass eine Arbeitslast in einem ersten geographischen Bereich ausgeführt wird, ein zentralisierter Server kann sich jedoch in einem zweiten geographischen Bereich befinden. Die Endpunktvorrichtung kann eine Arbeitslastausführung durch einen Edge-Dienst fordern, der sich im ersten geographischen Bereich befindet, um Firmen- oder regulatorischen Vorschriften zu genügen.
-
Beispiele von Arbeitslasten, die in einer Edge-Umgebung auszuführen sind, umfassen Berechnungen in Bezug auf das autonome Fahren, Videoüberwachung, Maschinenlernmodell-Ausführungen und Echtzeit-Datenanalytik. Zusätzliche Beispiele von Arbeitslasten umfassen die Übertragung und/oder die Codierung von Medien-Streams, das Messen von Werbungsbeeindruckungsraten, Objekterkennung in Medien-Streams, Sprachanalytik, Asset- und/oder Inventarmanagement und Verarbeitungen in Bezug auf Augmented Reality.
-
Edge-Dienste ermöglichen sowohl die Ausführung von Arbeitslasten als auch eine Rückgabe eines Ergebnisses einer ausgeführten Arbeitslast zu Endpunktvorrichtungen mit einer Antwortzeit, die niedriger ist als die Antwortzeit eines Servers in einer Cloud-Umgebung. Falls sich ein Edge-Dienst beispielsweise näher an einer Endpunktvorrichtung auf einem Netz befindet als ein Cloud-Server, kann der Edge-Dienst schneller als der Cloud-Server auf Arbeitslastausführungsanforderungen von der Endpunktvorrichtung antworten. Eine Endpunktvorrichtung kann eine Ausführung einer zeitlich begrenzten Arbeitslast von einem Edge-Dienst statt einem Cloud-Server fordern.
-
Zusätzlich ermöglichen Edge-Dienste die Verteilung und die Dezentralisierung von Arbeitslastausführungen. Beispielsweise kann eine Endpunktvorrichtung eine erste Arbeitslastausführung und eine zweite Arbeitslastausführung anfordern. Bei einigen Beispielen kann ein Cloud-Server auf beide Arbeitslastausführungsanforderungen antworten. Bei einer Edge-Umgebung kann ein erster Edge-Dienst jedoch die erste Arbeitslastausführungsanforderung bearbeiten und kann ein zweiter Edge-Dienst die zweite Arbeitslastausführungsanforderung bearbeiten.
-
Um den Bedarf an geringer Latenz und hoher Bandbreite von Endpunktvorrichtungen zu erfüllen, muss auf der Grundlage zeitgerechter Ressourcenauslastungsinformationen über die Auslastung vieler Ressourcen (beispielsweise Hardware-Ressourcen, Software-Ressourcen, virtueller Hardware- und/oder Software-Ressourcen usw.) und der Effizienz, mit der diese Ressourcen die ihnen auferlegten Anforderungen erfüllen können, eine Orchestrierung in Edge-Clouds ausgeführt werden. Bei hier offenbarten Beispielen werden solche Ressourcenauslastungsinformationen im Allgemeinen als Telemetrie (beispielsweise Telemetriedaten, Telemetrieinformationen usw.) bezeichnet.
-
Telemetrie kann für mehrere Quellen, einschließlich individueller Hardwarekomponenten und/oder Teile davon, virtueller Maschinen (VMs), Betriebssysteme (OS), Anwendungen und/oder Orchestratoren, erzeugt werden. Telemetrie kann von Orchestratoren, Planem usw. verwendet werden, um den Umfang und/oder die Typen von Rechenaufgaben, deren Ausführung zu planen ist, und an welcher Ressource oder an welchem Teil bzw. welchen Teilen sie auszuführen sind, zu bestimmen. Telemetrie kann auch zur Bestimmung für den Abschluss solcher Rechenaufgaben erwarteter Zeiten auf der Grundlage historischer und/oder aktueller (beispielsweise instantaner oder nahezu instantaner) Telemetrie verwendet werden. Beispielsweise kann ein Kern einer Mehrkern-Zentralverarbeitungseinheit (CPU) unter Verwendung einer Leistungsüberwachungseinheit (PMU), die den Kern und/oder allgemeiner die Mehrkern-CPU überwacht, in jedem Sekundenbruchteil über tausend verschiedene Informationsspielarten erzeugen. Die periodische Aggregation und Verarbeitung all dieser Telemetrie in einer gegebenen Edge-Plattform, einem gegebenen Edge-Dienst usw. kann ein zäher und mühsamer Prozess sein. Die Priorisierung herausragender interessierender Merkmale und die Extraktion solcher herausragender Merkmale aus Telemetrie zur Identifikation aktueller oder künftiger Probleme, Stressoren usw. in Zusammenhang mit einer Ressource ist schwierig. Ferner ist die Identifikation einer anderen Ressource zur Auslagerung von Arbeitslasten aus der belasteten Ressource ein komplexes Unterfangen.
-
Einige EDGE-Umgebungen wünschen, Telemetriedaten in Zusammenhang mit Ressourcen, die eine Vielzahl von Funktionen oder Diensten in der Art von Datenverarbeitungs- oder Videoanalytikfunktionen ausführen (beispielsweise Maschinensicht, Bildverarbeitung für autonome Fahrzeuge, Gesichtserkennung, Sichtobjekterkennung usw.), zu erhalten. Viele Arbeitslasten mit hohem Durchsatz, einschließlich einer oder mehrerer Videoanalytikfunktionen, mit hohem Durchsatz können jedoch während weniger als einer Millisekunde ausgeführt werden (beispielsweise eine feine Granularität des Zeitintervalls). Solche Edge-Umgebungen weisen keine verteilten Überwachungssoftware- oder -hardwarelösungen oder eine Kombination davon auf, die in der Lage sind, solche zustandslosen Funktionen feiner Granularität, die auf einer Plattform ausgeführt werden (beispielsweise einer Ressourcenplattform, einer Hardwareplattform, einer Softwareplattform, einer virtualisierten Plattform usw.) zu überwachen.
-
Hier offenbarte Beispiele verbessern die Verteilung von Rechenaufgaben auf Edge-Dienste auf der Grundlage der Aggregation von Telemetriedaten in einer Edge-Umgebung. Bei einigen offenbarten Beispielen virtualisiert eine Telemetrie-Steuereinrichtung Hardware- und/oder Software-Ressourcen in der Edge-Umgebung, um Telemetriedaten unter Verwendung Ressourcen-agnostischer Befehle (beispielsweise maschinenlesbarer Befehle), Anweisungen (maschinenlesbarer Anweisungen), Instruktionen (beispielsweise maschinenlesbarer Instruktionen) usw. zu sammeln. Beispielsweise kann die Telemetrie-Steuereinrichtung Modelle (beispielsweise maschinenlesbare Modelle) von Hardware- und/oder Software-Ressourcen erzeugen, die zu einer oder mehreren Kompositionen von Modellen aggregiert werden können. Bei solchen Beispielen kann eine anfordernde oder subskribierende Vorrichtung oder ein anfordernder oder subskribierender Dienst (beispielsweise ein Softwaredienst) Telemetriedaten von einem Hardwaresystem und/oder Software-Ressourcen durch Abfragen der entsprechenden Modellkomposition anfordern. Vorteilhafterweise kann die Vorrichtung oder der Dienst die Telemetrie unter Verwendung maschinenlesbarer Befehle anfordern, die für die zugrunde liegenden Hardware- und/oder virtuellen Ressourcen generisch statt spezifisch sein können.
-
Hier offenbarte Beispiele verbessern die Verteilung von Rechenaufgaben auf Edge-Dienste auf der Grundlage von Telemetriedaten. Die Telemetriedaten werden durch ein oder mehrere Objekte in Zusammenhang mit einer oder mehreren Ressourcen (beispielsweise einer oder mehreren Hardware-Ressourcen, Software-Ressourcen usw. und/oder einer Kombination davon) erzeugt. Hier bezieht sich der Begriff „Objekt“ auf einen logischen Block maschinenlesbarer Definitionen, Datenstrukturen, Befehle usw. und/oder einen physischen Block (beispielsweise einen Block oder einen Abschnitt eines Speichers und/oder Massenspeichers), der den logischen Block aufweist. Der logische Block kann eine Funktion, eine Schnittstelle und/oder andernfalls ein maschinenlesbares Modell oder eine Repräsentation einer Ressource implementieren. Ein logischer Block kann sich auf Code (beispielsweise von Menschen lesbaren Code, maschinenlesbaren Code usw.) beziehen, der so geschrieben sein kann, dass das Objekt eine Partition, einen Abschnitt, einen Slice usw. der Ressource überwachen kann. Beispielsweise kann ein Objekt unter Verwendung eines kompilierten Objektcodes, Quellcodes usw. implementiert werden, der, wenn er ausgeführt wird, eine oder mehrere Objektschnittstellen einem Softwarestapel (beispielsweise einem Plattformsoftwarestapel, einem Systemsoftwarestapel usw.) darbieten kann. Bei solchen Beispielen können die eine oder die mehreren Objektschnittstellen, wenn sie aufgerufen werden, Telemetriedaten, die von einer Ressource erzeugt wurden und/oder ihr auf andere Weise zugeordnet sind, bereitstellen und/oder auf andere Weise darbieten. Beispielsweise können die Telemetriedaten eine Verfolgung der Ausführung eines oder mehrerer Prozesse, Dienste usw. der Ressource aufweisen.
-
Hier offenbarte beispielhafte Objekte können als Ressourcenobjekt oder als Telemetrieobjekt organisiert werden. Beispielsweise kann das Ressourcenobjekt ein Objekt auf der Grundlage einer Hardware- und/oder einer Software-Ressource sein. Bei anderen Beispielen kann das Telemetrieobjekt ein Objekt auf der Grundlage einer Schnittstelle zur Hardware- und/oder Software-Ressource sein.
-
Bei einigen offenbarten Beispielen virtualisiert die Telemetrie-Steuereinrichtung eine Hardware-Ressource in der Art eines Kerns (beispielsweise eines Rechenkerns, eines Prozessorkerns usw.) einer Mehrkern-CPU zu einem Ressourcenobjekt. Das Ressourcenobjekt kann ein Ressourceninformationsobjekt (RIO) und eine RIO-Schnittstelle aufweisen. Bei solchen Beispielen kann die Telemetrie-Steuereinrichtung das RIO durch Einkapseln beschreibender oder identifizierender Informationen über Fähigkeiten oder Funktionen des Kerns und/oder allgemeiner über den Kern in eine virtuelle objektorientierte Datenstruktur, die den Kern repräsentiert, erzeugen. Die beispielhafte Telemetrie-Steuereinrichtung kann die RIO-Schnittstelle durch Einkapseln von Befehlen, Anweisungen usw., die, wenn sie ausgeführt oder aufgerufen werden, den Kern veranlassen können, eine Aufgabe (beispielsweise eine Rechenaufgabe) auszuführen, wie das Bestimmen, Messen und/oder anderweitiges Erzeugen von interessierenden Telemetriedaten, erzeugen.
-
Bei einigen offenbarten Beispielen virtualisiert die Telemetrie-Steuereinrichtung eine Telemetrie-Ressource in der Art einer Datenschnittstelle für den Kern der Mehrkern-CPU in ein Telemetrieobjekt. Das Telemetrieobjekt kann ein Telemetrieinformationsobjekt (TIO) und eine TIO-Schnittstelle aufweisen. Bei solchen Beispielen kann die Telemetrie-Steuereinrichtung das TIO durch Einkapseln beschreibender oder identifizierender Informationen über Fähigkeiten oder Funktionen der Datenschnittstelle und/oder allgemeiner die Datenschnittstelle in eine virtuelle objektorientierte Datenstruktur, welche die Datenschnittstelle repräsentiert, erzeugen. Die beispielhafte Telemetrie-Steuereinrichtung kann die TIO-Schnittstelle durch Einkapseln von Befehlen, Anweisungen usw., die, wenn sie ausgeführt oder aufgerufen werden, die Datenschnittstelle veranlassen können, eine Aufgabe in der Art des Anforderns interessierender Telemetriedaten vom Kern auszuführen, erzeugen.
-
Bei einigen offenbarten Beispielen erzeugt die Telemetrie-Steuereinrichtung RIOs und entsprechende RIO-Schnittstellen für eine oder mehrere Edge-Dienstressourcen. Die beispielhafte Telemetrie-Steuereinrichtung kann eine Edge-Dienstkomposition erzeugen, die Datenteilungsbeziehungen, Funktionsbeziehungen usw. zwischen einigen der RIOs und/oder der RIO-Schnittstellen des einen oder der mehreren Edge-Dienste repräsentieren kann. Beispielsweise kann die Komposition eine oder mehrere Schnittstellen für das Erhalten von Telemetriedaten in Zusammenhang mit Ressourcen eines Edge-Dienstes repräsentieren. Bei einigen offenbarten Beispielen erzeugt die Telemetrie-Steuereinrichtung eine Edge-Umgebungskomposition, die Datenteilungsbeziehungen, Funktionsbeziehungen usw. zwischen einigen der Edge-Dienstkompositionen repräsentieren kann. Bei einigen offenbarten Beispielen kann die Telemetrie-Steuereinrichtung die verschiedenen Kompositionen ansprechend darauf, dass sich eine Ressource mit der Edge-Umgebung verbindet oder davon getrennt wird, adaptiv und dynamisch anpassen.
-
Bei einigen offenbarten Beispielen orchestriert die Telemetrie-Steuereinrichtung die Erzeugung und das Abrufen von Telemetriedaten in verschiedenen hierarchischen Schichten einer Rechenumgebung (beispielsweise einer ersten Schicht, die eine Ressource repräsentiert, einer zweiten Schicht, die einen mehrere Ressourcen aufweisenden Edge-Dienst repräsentiert, einer dritten Schicht, die eine einen oder mehrere Edge-Dienste aufweisende Edge-Umgebung repräsentiert, usw.). Vorteilhafterweise kann die beispielhafte Telemetrie-Steuereinrichtung die Erzeugung und/oder das Erhalten von Telemetriedaten in verschiedenen Granularitätsbereichen, von einem Hardwarezähler, einem Softwarezähler usw. eines Kerns einer Mehrkern-CPU eines Edge-Dienstes für einen Durchsatz mehrerer vom Edge-Dienst behandelter Ressourcen bewirken. Bei einigen offenbarten Beispielen kann die Telemetrie-Steuereinrichtung die Verteilung und Effizienz durch Ressourcen einer Edge-Umgebung auszuführender Rechenaufgaben auf der Grundlage einer gewünschten Granularität von Telemetriedaten verbessern.
-
1 zeigt eine beispielhafte Umgebung (beispielsweise eine Rechenumgebung) 100, die eine beispielhafte Cloud-Umgebung 105, eine beispielhafte Edge-Umgebung 110 und eine beispielhafte Endpunktumgebung 115 zum Planen, Verteilen und/oder Ausführen einer Arbeitslast (beispielsweise einer oder mehrerer Rechen- oder Verarbeitungsaufgaben) aufweist. Beim Beispiel aus 1 weist die Cloud-Umgebung 105 einen ersten beispielhaften Server 112, einen zweiten beispielhaften Server 114, einen dritten beispielhaften Server 116, eine erste Instanz einer beispielhaften Telemetrie-Steuereinrichtung 130A und eine beispielhafte Datenbank (beispielsweise eine Cloud-Datenbank, eine Cloud-Umgebungs-Datenbank usw.) 135 auf. Alternativ kann die beispielhafte Cloud-Umgebung 105 weniger oder mehr Server als die in 1 dargestellten Server 112, 114, 116 aufweisen. Die beispielhaften Server 112, 114, 116 können zentralisierte Anwendungen ausführen (beispielsweise Webseiten-Hosting, Datenmanagement, Maschinenlernmodell-Anwendungen, das Antworten auf Anforderungen von Client-Vorrichtungen usw.).
-
Beim in 1 dargestellten Beispiel erleichtert die Telemetrie-Steuereinrichtung 130A die Erzeugung und/oder das Abrufen beispielhafter Telemetriedaten 136A-C in Zusammenhang mit zumindest einer von der Cloud-Umgebung 105, der Edge-Umgebung 110 oder der Endpunktumgebung 115. Beim Beispiel aus 1 speichert die Datenbank 135 die Telemetriedaten 136A-C und beispielhafte ausführbare Programme 137, 139, einschließlich zumindest eines ersten beispielhaften ausführbaren Programms 137 und eines zweiten beispielhaften ausführbaren Programms 139. Alternativ kann die Datenbank 135 weniger oder mehr ausführbare Programme als das erste ausführbare Programm 137 und das zweite ausführbare Programm 139 aufweisen. Beispielsweise können die ausführbaren Programme 137, 139 telemetrieerzeugende ausführbare Programme sein, die, wenn sie ausgeführt werden, die Telemetriedaten 136A-C erzeugen können.
-
Beim in 1 dargestellten Beispiel weisen die Telemetriedaten 136A-C erste beispielhafte Telemetriedaten 136A, zweite beispielhafte Telemetriedaten 136B und dritte beispielhafte Telemetriedaten 136C auf. In 1 können die ersten Telemetriedaten 136A und die zweiten Telemetriedaten 136B durch die Edge-Umgebung 110 erzeugt werden. Beim Beispiel aus 1 können die dritten Telemetriedaten 136C durch einen oder mehrere der Server 112, 114, 116, die Datenbank 135 usw. und/oder allgemeiner die Cloud-Umgebung 105 erzeugt werden.
-
Beim in 1 dargestellten Beispiel weist die Cloud-Umgebung 105 die Datenbank 135 zur Aufzeichnung von Daten (beispielsweise der Telemetriedaten 136A-C, der ausführbaren Programme 137, 139 usw.) auf. Bei einigen Beispielen speichert die Datenbank 135 Informationen einschließlich Datenbankaufzeichnungen, Webseitenanforderungen, Maschinenlernmodellen und Ergebnissen der Ausführung von Maschinenlernmodellen. Die beispielhafte Datenbank 135 kann durch einen flüchtigen Speicher (beispielsweise einen synchronen dynamischen Direktzugriffsspeicher (SDRAM), einen dynamischen Direktzugriffsspeicher (DRAM), einen dynamischen RAMBUS-Direktzugriffsspeicher (RDRAM) usw.) und/oder einen nichtflüchtigen Speicher (beispielsweise einen Flash-Speicher) implementiert werden. Die Datenbank 135 kann zusätzlich oder alternativ durch einen oder mehrere Speicher mit doppelter Datenrate (DDR) in der Art von DDR, DDR2, DDR3, DDR4, mobiles DDR (mDDR) usw. implementiert werden. Die beispielhafte Datenbank 135 kann zusätzlich oder alternativ durch eine oder mehrere Massenspeichervorrichtungen in der Art eines oder mehrerer Festplattenlaufwerke, eines oder mehrerer CD-Laufwerke, eines oder mehrerer DVD-Laufwerke, eines oder mehrerer SSD-Laufwerke usw. implementiert werden. Wenngleich die Datenbank 135 beim dargestellten Beispiel als einzelne Datenbank dargestellt ist, kann sie durch eine beliebige Anzahl und/oder durch beliebige Typen von Datenbanken implementiert werden. Ferner können die in der Datenbank 135 gespeicherten Daten ein beliebiges Datenformat annehmen, beispielsweise Binärdaten, kommabegrenzte Daten, tabulatorbegrenzte Daten, Strukturierte-Abfragesprache(SQL)-Strukturen usw.
-
Beim in 1 dargestellten Beispiel kommunizieren die Server 112, 114, 116 über ein Netz in der Art des Internets mit Vorrichtungen in der Edge-Umgebung 110 und/oder der Endpunktumgebung 115. Ebenso kann die beispielhafte Datenbank 135 Datensätze ansprechend auf Anforderungen von Vorrichtungen in der Cloud-Umgebung 105, der Edge-Umgebung 110 und/oder der Endpunktumgebung 115 bereitstellen und/oder speichern.
-
Beim in 1 dargestellten Beispiel weist die Edge-Umgebung 110 einen ersten beispielhaften Edge-Dienst 140 und einen zweiten beispielhaften Edge-Dienst 150 auf. In 1 sind die Edge-Dienste 140, 150 Edge-Rechenplattformen oder -Plattformdienste. Beispielsweise können die Edge-Dienste 140, 150 Hardware- und/oder Software-Ressourcen, Virtualisierungen der Hardware- und/oder Software-Ressourcen usw. und/oder eine Kombination davon aufweisen. Bei solchen Beispielen können die Edge-Dienste 140, 150 eine von einer Edge- oder Endpunktvorrichtung erhaltene Arbeitslast ausführen, wie beim Beispiel aus 1 dargestellt ist.
-
Beim in 1 dargestellten Beispiel weist der erste Edge-Dienst 140 eine zweite Instanz der Telemetrie-Steuereinrichtung 130B, des ersten ausführbaren Programms 137, eines ersten beispielhaften Orchestrators 142, eines ersten beispielhaften Planers 144, einer oder mehrerer erster beispielhafter Kompositionen 146, einer ersten beispielhaften Edge-Dienst(ES)-Datenbank 148 und einer oder mehrerer erster beispielhafter Ressourcen 149 auf. Beim in 1 dargestellten Beispiel weist das erste ausführbare Programm 137 die eine oder die mehreren ersten Kompositionen 146 auf und/oder implementiert sie auf andere Weise. Alternativ können die eine oder die mehreren ersten beispielhaften Kompositionen 146 nicht im ersten ausführbaren Programm 137 enthalten sein. Beispielsweise können die eine oder die mehreren ersten Kompositionen 146 durch den ersten Edge-Dienst 140 als Dienst (beispielsweise Funktion-als-ein-Dienst (FaaS), Software-als-ein-Dienst (SaaS) usw.) bereitgestellt werden, und/oder es kann auf andere Weise als Dienst auf sie zugegriffen werden. Bei solchen Beispielen können die eine oder die mehreren ersten Kompositionen 146 von einem oder mehreren der Server 112, 114, 116 gehostet werden. In 1 weist die erste ES-Datenbank 148 die ersten Telemetriedaten 136A auf.
-
Beim in 1 dargestellten Beispiel weist der zweite Edge-Dienst 150 eine dritte Instanz der Telemetrie-Steuereinrichtung 130C, des zweiten ausführbaren Programms 139, eines zweiten beispielhaften Orchestrators 152, eines zweiten beispielhaften Planers 154, einer oder mehrerer zweiter beispielhafter Kompositionen, einer zweiten beispielhaften ES-Datenbank 158 und einer oder mehrerer zweiter beispielhafter Ressourcen 159 auf. Beim in 1 dargestellten Beispiel weist das zweite ausführbare Programm 139 die eine oder die mehreren zweiten Kompositionen 156 auf und/oder implementiert sie auf andere Weise. Alternativ können die eine oder die mehreren zweiten beispielhaften Kompositionen 156 nicht im zweiten ausführbaren Programm 139 enthalten sein. Beispielsweise können die eine oder die mehreren zweiten Kompositionen 156 durch den zweiten Edge-Dienst 150 als Dienst (beispielsweise FaaS, SaaS usw.) bereitgestellt werden, und/oder es kann auf andere Weise als Dienst auf sie zugegriffen werden. Bei solchen Beispielen können die eine oder die mehreren zweiten Kompositionen 156 von einem oder mehreren der Server 112, 114, 116 gehostet werden. In 1 weist die zweite ES-Datenbank 158 die zweiten Telemetriedaten 136B auf.
-
Beim in 1 dargestellten Beispiel weisen die Edge-Dienste 140, 150 die ES-Datenbanken 148, 158 zum Aufzeichnen von Daten (beispielsweise der ersten Telemetriedaten 136A, der zweiten Telemetriedaten 136B usw.) auf. Die beispielhaften ES-Datenbanken 148, 158 können durch einen flüchtigen Speicher (beispielsweise einen SDRAM, DRAM, RDRAM usw.) und/oder einen nichtflüchtigen Speicher (beispielsweise einen Flash-Speicher) implementiert werden. Die beispielhaften ES-Datenbanken 148, 158 können zusätzlich oder alternativ durch einen oder mehrere DDR-Speicher wie DDR, DDR2, DDR3, DDR4, mDDR usw. implementiert werden. Die beispielhaften ES-Datenbanken 148, 158 können zusätzlich oder alternativ durch eine oder mehrere Massenspeichervorrichtungen in der Art eines oder mehrerer Festplattenlaufwerke, eines oder mehrerer CD-Laufwerke, eines oder mehrerer DVD-Laufwerke, eines oder mehrerer SSD-Laufwerke usw. implementiert werden. Wenngleich die ES-Datenbanken 148, 158 beim dargestellten Beispiel als einzelne Datenbanken dargestellt sind, können sie durch eine beliebige Anzahl und/oder durch beliebige Typen von Datenbanken implementiert werden. Zusätzlich können die in den beispielhaften ES-Datenbanken 148, 158 gespeicherten Daten ein beliebiges Datenformat annehmen, wie beispielsweise Binärdaten, kommabegrenzte Daten, tabulatorbegrenzte Daten, SQL-Strukturen usw.
-
Bei einigen Beispielen kann der erste Edge-Dienst 140 durch eine einzelne Edge-Rechenplattform (beispielsweise eine Einzelprozessorplattform) ausgeführt und/oder auf andere Weise implementiert werden. Bei anderen Beispielen kann der erste Edge-Dienst 140 durch zwei oder mehr Edge-Rechenplattformen ausgeführt und/oder auf andere Weise implementiert werden. Beispielsweise können der erste Edge-Dienst 140 und/oder Teile davon zwischen zwei oder mehr in 1 dargestellten beispielhaften Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 verteilt werden. Bei anderen Beispielen können der erste Edge-Dienst 140 und/oder Teile davon zwischen zwei oder mehr Edge-Rechenplattformen verteilt werden. Beispielsweise können, wie in 1 dargestellt, ein oder mehrere Teile und/oder allgemeiner der gesamte erste Edge-Dienst 140 durch den zweiten Edge-Dienst 150 ausgeführt und/oder auf andere Weise dadurch implementiert werden. Bei solchen Beispielen können eine oder mehrere von der zweiten Instanz der Telemetrie-Steuereinrichtung 130B, des ersten Orchestrators 142, des ersten Planers 144, des ersten ausführbaren Programms 137, der einen oder der mehreren ersten Kompositionen 146, der einen oder der mehreren ersten Ressourcen 149, der ersten ES-Datenbank 148 und/oder der ersten Telemetriedaten 136A zur Ausführung, Implementation, Speicherung usw. und/oder eine Kombination davon durch einen oder mehrere verschiedene Edge-Dienste in der Art des zweiten Edge-Dienstes 150 aus 1 verteilt werden.
-
Bei einigen Beispielen kann der zweite Edge-Dienst 150 durch eine einzelne Edge-Rechenplattform (beispielsweise eine Einzelprozessorplattform) ausgeführt und/oder auf andere Weise implementiert werden. Bei anderen Beispielen kann der zweite Edge-Dienst 150 durch zwei oder mehr Edge-Rechenplattformen ausgeführt und/oder auf andere Weise implementiert werden. Beispielsweise können der zweite Edge-Dienst 150 und/oder Teile davon zwischen zwei oder mehr in 1 dargestellten Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 verteilt werden. Bei anderen Beispielen können der zweite Edge-Dienst 150 und/oder Teile davon zwischen zwei oder mehr Edge-Rechenplattformen verteilt werden. Beispielsweise können, wie in 1 dargestellt, ein oder mehrere Teile und/oder allgemeiner der gesamte zweite Edge-Dienst 150 durch den ersten Edge-Dienst 150 ausgeführt und/oder auf andere Weise dadurch implementiert werden. Bei solchen Beispielen können eine oder mehrere von der dritten Instanz der Telemetrie-Steuereinrichtung 130C, des zweiten Orchestrators 152, des zweiten Planers 154, des zweiten ausführbaren Programms 139, der einen oder der mehreren zweiten Kompositionen 156, der einen oder der mehreren zweiten Ressourcen 159, der zweiten ES-Datenbank 158 und/oder der zweiten Telemetriedaten 136B zur Ausführung, Implementation, Speicherung usw. und/oder eine Kombination davon durch einen oder mehrere verschiedene Edge-Dienste in der Art des ersten Edge-Dienstes 140 aus 1 verteilt werden.
-
Beim in 1 dargestellten Beispiel sind die Telemetrie-Steuereinrichtung 130B, der erste Orchestrator 142, der erste Planer 144, die eine oder die mehreren ersten Kompositionen 146 und die eine oder die mehreren ersten Ressourcen 149 im ersten Edge-Dienst 140 enthalten, entsprechen diesem und/oder repräsentieren diesen auf andere Weise. Bei einigen Beispielen können eine oder mehrere von der Telemetrie-Steuereinrichtung 130B, dem ersten Orchestrator, dem ersten Planer 144, der einen oder der mehreren ersten Kompositionen 146 und/oder der einen oder der mehreren ersten Ressourcen 149 in der Edge-Umgebung 110 enthalten sein, jedoch extern oder außerhalb des ersten Edge-Dienstes 140. Beispielsweise kann der erste Orchestrator 142 mit der Cloud-Umgebung 105 und/oder der Endpunktumgebung 115 verbunden sein, sich jedoch außerhalb des ersten Edge-Dienstes 140 befinden. Bei anderen Beispielen ist/sind eine oder mehrere von der Telemetrie-Steuereinrichtung 130B, dem ersten Orchestrator 142, dem ersten Planer 144, der einen oder der mehreren ersten Kompositionen 146 und/oder der einen oder der mehreren ersten Ressourcen 149 in der Edge-Umgebung 110 enthaltene getrennte Vorrichtungen. Bei einigen Beispielen können eine oder mehrere von der Telemetrie-Steuereinrichtung 130B, dem ersten Orchestrator 142, dem ersten Planer 144, der einen oder der mehreren ersten Kompositionen 146 und/oder der einen oder der mehreren ersten Ressourcen 149 in der Cloud-Umgebung 105 oder der Endpunktumgebung 115 enthalten sein. Beispielsweise kann der erste Orchestrator 142 in der Endpunktumgebung 115 enthalten sein oder können die eine oder die mehreren ersten Kompositionen 146 im ersten Server 112 in der Cloud-Umgebung 105 enthalten sein. Bei einigen Beispielen kann der erste Planer 144 im ersten Orchestrator 142 enthalten sein und/oder auf andere Weise darin integriert oder damit kombiniert sein.
-
Beim in 1 dargestellten Beispiel sind die Telemetrie-Steuereinrichtung 130C, der zweite Orchestrator 152, der zweite Planer 154, die eine oder die mehreren zweiten Kompositionen 156 und die eine oder die mehreren zweiten Ressourcen 159 im zweiten Edge-Dienst 150 enthalten. Bei einigen Beispielen können die eine oder die mehreren von der Telemetrie-Steuereinrichtung 130C, dem zweiten Orchestrator 152, dem zweiten Planer 154, der einen oder der mehreren zweiten Kompositionen 156 und/oder der einen oder der mehreren zweiten Ressourcen 159 in der Edge-Umgebung 110 enthalten sein, statt im zweiten Edge-Dienst 150 enthalten zu sein. Beispielsweise kann der zweite Orchestrator 152 mit der Cloud-Umgebung 105 und/oder der Endpunktumgebung 115 verbunden sein, sich jedoch außerhalb des zweiten Edge-Dienstes 150 befinden. Bei anderen Beispielen ist/sind eine oder mehrere von der Telemetrie-Steuereinrichtung 130C, dem zweiten Orchestrator 152, dem zweiten Planer 154, der einen oder der mehreren zweiten Kompositionen 156 und/oder der einen oder der mehreren zweiten Ressourcen 159 in der Edge-Umgebung 110 enthaltene getrennte Vorrichtungen. Bei einigen Beispielen können eine oder mehrere von der Telemetrie-Steuereinrichtung 130C, dem zweiten Orchestrator 152, dem zweiten Planer 154, der zweiten Edge-Dienstkomposition 156 und/oder der einen oder der mehreren zweiten Ressourcen 159 in der Cloud-Umgebung 105 oder der Endpunktumgebung 115 enthalten sein. Beispielsweise kann der zweite Orchestrator 152 in der Endpunktumgebung 115 enthalten sein oder können die eine oder die mehreren zweiten Kompositionen 156 im zweiten Server 114 in der Cloud-Umgebung 105 enthalten sein. Bei einigen Beispielen kann der zweite Planer 154 im zweiten Orchestrator 152 enthalten sein und/oder auf andere Weise darin integriert oder damit kombiniert sein.
-
Beim in 1 dargestellten Beispiel werden die Ressourcen 149, 159 aufgerufen, um eine von der Endpunktumgebung 115 erhaltene Arbeitslast (beispielsweise eine Edge-Rechenarbeitslast) auszuführen. Beispielsweise können die Ressourcen 149, 159 einem Edge-Knoten oder einem oder mehreren Teilen davon entsprechen und/oder diesen auf andere Weise repräsentieren. Beispielsweise können die Telemetrie-Steuereinrichtung 130B-C, das ausführbare Programm 137, 139, der Orchestrator 142, 152, der Planer 144, 154 und/oder allgemeiner der Edge-Dienst 140, 150 eine jeweilige der Ressourcen 149, 159 aufrufen, um eine oder mehrere Edge-Rechenarbeitslasten auszuführen.
-
Bei einigen Beispielen repräsentieren die Ressourcen 149, 159 Hardware-Ressourcen, Virtualisierungen der Hardware-Ressourcen, Software-Ressourcen, Virtualisierungen der Software-Ressourcen usw. und/oder eine Kombination davon. Beispielsweise können die Ressourcen 149, 159 eine oder mehrere CPUs (beispielsweise Mehrkern-CPUs), ein oder mehrere FPGAs, eine oder mehrere GPUs, eine oder mehrere Netzschnittstellenkarten (NICs), eine oder mehrere Sichtverarbeitungseinheiten (VPUs) usw. und/oder einen anderen Typ von Hardware oder Hardwarebeschleuniger aufweisen, diesen entsprechen und/oder diese auf andere Weise repräsentieren. Bei solchen Beispielen können die Ressourcen 149, 159 eine oder mehrere Virtualisierungen der einen oder der mehreren CPUs, des einen oder der mehreren FPGAs, der einen oder der mehreren GPUs, der einen oder der mehreren NICs usw. aufweisen, diesen entsprechend und/oder diese auf andere Weise repräsentieren. Bei anderen Beispielen können die Orchestratoren 142, 152, die Planer 144, 154, die Ressourcen 149, 159 und/oder allgemeiner die Edge-Dienste 140, 150 eine oder mehrere Software-Ressourcen, Virtualisierungen der Software-Ressourcen usw. in der Art von Hypervisoren, Lastausgleichem, OS, VMs usw. und/oder eine Kombination davon aufweisen, diesen entsprechen und/oder diese auf andere Weise repräsentieren.
-
Beim in 1 dargestellten Beispiel sind die Edge-Dienste 140, 150 miteinander und mit den Servern 112, 114, 116 in der Cloud-Umgebung 105 verbunden und/oder stehen auf andere Weise in Kommunikation damit. Die beispielhaften Edge-Dienste können Arbeitslasten im Auftrag von Vorrichtungen in Zusammenhang mit der Cloud-Umgebung 105, der Edge-Umgebung 110 oder der Endpunktumgebung 115 ausführen. Die beispielhaften Edge-Dienste 140, 150 können über ein Netz in der Art des Internets mit Vorrichtungen in den Umgebungen 105, 110, 115 (beispielsweise dem ersten Server 112, der Datenbank 135 usw.) verbunden sein und/oder auf andere Weise in Kommunikation damit stehen. Zusätzlich oder alternativ können die beispielhaften Edge-Dienste 140, 150 unter Verwendung eines geeigneten Drahtlosnetzes einschließlich beispielsweise eines oder mehrerer drahtloser lokaler Netze (WLANs) (beispielsweise Wireless-Fidelity(WiFi)-Netze, Langstrecken-Drahtlosnetze usw.), eines oder mehrerer zellenbasierter oder mobiler Trägernetze (beispielsweise Global-System-for-Mobile-Communications(GSM)-Netze, Long-Term-Evolution(LTE)-Netze, 5G/6G-Netze usw.), eines oder mehrerer Peer-to-Peer-Netze (beispielsweise Bluetooth-Netz, WiFi-Direct-Netz, Vehicles-to-everything(V2X)-Netz usw.), eines oder mehrerer privater Netze, eines oder mehrerer öffentlicher Netze usw. mit Vorrichtungen in den Umgebungen 105, 110, 115 kommunizieren. Beispielsweise können die Edge-Dienste 140, 150 mit einem oder mehreren Zellenmasten, die in der Cloud-Umgebung 105 enthalten sind, verbunden sein und über den einen oder die mehreren Zellenmasten mit dem ersten Server 112 verbunden sein.
-
Beim in 1 dargestellten Beispiel weist die Endpunktumgebung 115 die Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 auf, welche eine erste beispielhafte Endpunktvorrichtung 160, eine zweite beispielhafte Endpunktvorrichtung 165, eine dritte beispielhafte Endpunktvorrichtung 170, eine vierte beispielhafte Endpunktvorrichtung 175, eine fünfte beispielhafte Endpunktvorrichtung 180 und eine sechste beispielhafte Endpunktvorrichtung 185 umfassen. Alternativ kann es weniger oder mehr als die in der Endpunktumgebung 115 aus 1 dargestellten Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 geben.
-
Beim in 1 dargestellten Beispiel sind die Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 Rechenvorrichtungen. Beispielsweise können eine oder mehrere der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 ein internetfähiges Tablet, ein mobiles Handset (beispielsweise ein Smartphone), eine Uhr (beispielsweise eine Smartwatch), ein Fitness-Tracker, ein Headset, eine Fahrzeugsteuereinheit (beispielsweise eine Motorsteuereinheit, eine elektronische Steuereinheit usw.), eine IoT-Vorrichtung usw. sein. Bei anderen Beispielen können eine oder mehrere der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 ein physischer Server (beispielsweise ein Rack-mounted-Server, ein Blade-Server usw.) sein. Bei wieder anderen Beispielen können eine oder mehrere der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 eine Vorrichtung (beispielsweise eine Vorrichtung, die einen oder mehrere Prozessoren aufweist, eine Rechenvorrichtung usw.) mit einer oder mehreren festverdrahteten Schnittstellen (beispielsweise einer Lokales-Netz(LAN)-Schnittstelle, einer faseroptischen Schnittstelle, einer High-Definition-Multimedia-Schnittstelle (HDMI), einer Video-Graphics-Array(VGA)-Schnittstelle, einer Digital-Visual-Schnittstelle (DVI) usw.) sein. Beispielsweise können eine oder mehrere der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 ein Desktop Computer, ein Internetgerät, eine Spielkonsole, ein Laptopcomputer, ein Online-Medienabspielgerät (beispielsweise eine Vorrichtung, die einen Over-the-top-Mediendienst bereitstellen kann), eine Settop-Box, ein Fernsehgerät usw. sein. Bei zusätzlichen oder alternativen Beispielen können eine oder mehrere der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 eine Kamera, einen Sensor usw. aufweisen.
-
Beim in 1 dargestellten Beispiel sind die erste bis dritte Endpunktvorrichtung 160, 165, 170 mit dem ersten Edge-Dienst 140 verbunden. Auch sind beim Beispiel aus 1 die vierte bis sechste Endpunktvorrichtung 175, 180, 185 mit dem zweiten Edge-Dienst 150 verbunden. Zusätzlich oder alternativ können eine oder mehrere der beispielhaften Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 mit einer Anzahl von Edge-Diensten (beispielsweise den Edge-Diensten 140, 150), Servern (beispielsweise den Servern 112, 114, 116) oder irgendwelchen anderen geeigneten Vorrichtungen, die in den Umgebungen 105, 110, 115 aus 1 enthalten und/oder diesen auf andere Weise zugeordnet sind, verbunden sein. Beispielsweise kann die erste Endpunktvorrichtung 160 mit den Edge-Diensten 140, 150 und dem zweiten Server 114 verbunden sein.
-
Beim in 1 dargestellten Beispiel können sich eine oder mehrere der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 über ein Netz in der Art des Internets mit einer oder mehreren Vorrichtungen in den Umgebungen 105, 110, 115 verbinden. Zusätzlich oder alternativ können eine oder mehrere der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 unter Verwendung eines geeigneten Drahtlosnetzes, einschließlich beispielsweise eines oder mehrerer WLANs, eines oder mehrerer zellenbasierter Netze, eines oder mehrerer Peer-to-Peer-Netze, eines oder mehrerer privater Netze, eines oder mehrerer öffentlicher Netze usw. mit Vorrichtungen in den Umgebungen 105, 110, 115 kommunizieren. Bei einigen Beispielen können die Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 mit einem oder mehreren in einer oder mehreren der Umgebungen 105, 110, 115 enthaltenen Zellenmasten verbunden sein. Beispielsweise kann die erste Endpunktvorrichtung 160 mit einem in der Edge-Umgebung 110 enthaltenen Zellenmast verbunden sein und kann der Zellenmast mit dem ersten Edge-Dienst 140 verbunden sein.
-
Bei einigen Beispielen können eine oder mehrere der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 unter Verwendung eines geeigneten festverdrahteten Netzes, einschließlich beispielsweise eines oder mehrerer LANs, eines oder mehrerer faseroptischer Netze, eines oder mehrerer Koaxialnetze usw. mit Vorrichtungen in den Umgebungen 105, 110, 115 kommunizieren. Beispielsweise kann die erste Rechenvorrichtung 160 ein Fernsehgerät sein, das über eine HDMI-Schnittstelle, eine faseroptische Schnittstelle, eine LAN-Schnittstelle usw. und/oder eine Kombination davon mit dem ersten Edge-Dienst 140 verbunden ist (beispielsweise einem Edge-Dienst, der auf einer Settop-Box, einer Online-Streaming-Vorrichtung, einem Gateway usw. ausgeführt und/oder auf andere Weise dadurch implementiert wird). Bei anderen Beispielen kann die zweite Rechenvorrichtung 165 eine Spielkonsole sein, die über eine HDMI-Schnittstelle, eine LAN-Schnittstelle usw. und/oder eine Kombination davon mit dem ersten Edge-Dienst 140 verbunden ist (beispielsweise einem Edge-Dienst, der auf einem Fernsehgerät, einem Gateway, einem Internetgerät usw. ausgeführt wird und/oder auf andere Weise dadurch implementiert wird).
-
Bei einigen Beispielen kann ein Orchestrator (beispielsweise der erste Orchestrator 142) ansprechend auf eine Anforderung zur Ausführung einer Arbeitslast von einer Endpunktvorrichtung (beispielsweise der ersten Endpunktvorrichtung 160) mit wenigstens einer Ressource (beispielsweise der einen oder den mehreren ersten Ressourcen 149) und einer Endpunktvorrichtung (beispielsweise der zweiten Endpunktvorrichtung 165) kommunizieren, um einen Kontrakt (beispielsweise einen Arbeitslastkontrakt) in Zusammenhang mit einer Beschreibung der auszuführenden Arbeitslast zu erzeugen. Die erste beispielhafte Endpunktvorrichtung 160 kann eine Aufgabe in Zusammenhang mit dem Kontrakt und der Beschreibung der Arbeitslast dem ersten Orchestrator 142 bereitstellen, und der erste Orchestrator 142 kann die Aufgabe einem Planer (beispielsweise dem ersten Planer 144) bereitstellen. Die Aufgabe kann den Kontrakt und die Beschreibung der auszuführenden Arbeitslast aufweisen. Bei einigen Beispielen kann die Aufgabe Anforderungen zum Erhalten und/oder anderweitigen Zuordnen von Ressourcen, die zur Ausführung der Arbeitslast verwendet werden, aufweisen.
-
Bei einigen Beispielen halten die Orchestratoren 142, 152 Aufzeichnungen und/oder Protokolle von in den Umgebungen 105, 110, 115 auftretenden Aktionen. Beispielsweise können die eine oder die mehreren ersten Ressourcen 149 dem ersten Orchestrator 142 den Empfang einer Arbeitslastbeschreibung mitteilen. Einer oder mehrere der Orchestratoren 142, 152, der Planer 144, 154 und/oder der einen oder der mehreren Ressourcen 149, 159 können den Orchestratoren 142, 152 Aufzeichnungen von Aktionen und/oder Zuweisungen von Ressourcen bereitstellen. Beispielsweise kann der erste Orchestrator 142 eine Aufzeichnung des Empfangs einer Anforderung zur Ausführung einer Arbeitslast (beispielsweise einer von der ersten Endpunktvorrichtung 160 bereitgestellten Kontraktanforderung) halten oder speichern.
-
Bei einigen Beispielen können die Planer 144, 154 auf eine Aufgabe zugreifen, die von den Orchestratoren 142, 152 empfangen und/oder auf andere Weise erhalten wurde, und die Aufgabe einer oder mehreren der Ressourcen 149, 159 bereitstellen, um sie auszuführen oder abzuschließen. Die eine oder die mehreren Ressourcen 149, 159 können eine Arbeitslast auf der Grundlage einer Beschreibung der in der Aufgabe enthaltenen Arbeitslast ausführen. Die beispielhaften Planer 144, 154 können auf das Ergebnis der Ausführung der Arbeitslast von einer oder mehreren der Ressourcen 149, 159, welche die Arbeitslast ausgeführt haben, zugreifen. Die Planer 144, 154 können das Ergebnis der Vorrichtung bereitstellen, welche die auszuführende Arbeitslast angefordert hat, beispielsweise der ersten Endpunktvorrichtung 160.
-
Vorteilhafterweise kann eine Ausführung einer Arbeitslast in der beispielhaften Edge-Umgebung 110 Kosten (beispielsweise Rechen- oder Berechnungskosten, Netzkosten, Speicherkosten usw. und/oder eine Kombination davon) und/oder die zur Ausführung der Arbeitslast verwendete Verarbeitungszeit verringern. Beispielsweise kann die erste Endpunktvorrichtung 160 den ersten Edge-Dienst 140 auffordern, eine Arbeitslast zu ersten Kosten unterhalb zweiter Kosten in Zusammenhang mit der Ausführung der Arbeitslast in der Cloud-Umgebung 105 auszuführen. Bei anderen Beispielen kann sich eine Endpunktvorrichtung in der Art der ersten bis dritten Endpunktvorrichtungen 160, 165, 170 näher (beispielsweise räumlich oder geographisch näher) und/oder auf andere Weise nahe bei einem Edge-Dienst in der Art des ersten Edge-Dienstes 140 als ein zentralisierter Server (beispielsweise die Server 112, 114, 116) in der Cloud-Umgebung 105 befinden. Beispielsweise befindet sich der erste Edge-Dienst 140 räumlich näher zur ersten Endpunktvorrichtung 160 als der erste Server 112. Daher kann die erste beispielhafte Endpunktvorrichtung 160 den ersten Edge-Dienst 140 auffordern, eine Arbeitslast auszuführen, und ist die Antwortzeit des ersten Edge-Dienstes 140 für die Auslieferung des Ergebnisses der ausgeführten Arbeitslast geringer als jene, die vom ersten Server 112 in der Cloud-Umgebung 105 bereitgestellt werden kann.
-
Beim in 1 dargestellten Beispiel verbessert die Telemetrie-Steuereinrichtung 130A-C die Verteilung und Ausführung von Edge-Rechenarbeitslasten (beispielsweise zwischen den Edge-Diensten 140, 150) auf der Grundlage der Telemetriedaten 136A-C in Zusammenhang mit wenigstens einer von der Cloud-Umgebung 105, der Edge-Umgebung 110 oder der Endpunktumgebung 115. Beispielsweise kann die Telemetrie-Steuereinrichtung 130A-C auf der Grundlage der Telemetriedaten 136A-C, anhand derer Edge-Rechenarbeitslasten ausgeführt werden können, feststellen, dass der erste Edge-Dienst 140 und/oder der zweite Edge-Dienst 150 eine oder mehrere der Ressourcen 149, 159 in der Art von Hardware-Ressourcen (beispielsweise Rechenressourcen, Netzressourcen, Sicherheitsressourcen, Massenspeicherressourcen usw.), Software-Ressourcen (beispielsweise eine Firewall, einen Lastausgleicher, eine virtuelle Maschine (VM), ein Gastbetriebssystem (OS), eine Anwendung, die Orchestratoren 142, 152, einen Hypervisor usw.) usw. und/oder eine Kombination davon verfügbar hat. Bei solchen Beispielen können die Telemetriedaten 136A-C eine Auslastung (beispielsweise einen Prozentsatz einer Ressource, die verwendet oder nicht verwendet wird), eine Verzögerung (beispielsweise eine durchschnittliche Verzögerung) beim Empfang eines Dienstes (beispielsweise Latenz), eine Rate (beispielsweise eine durchschnittliche Rate), mit der eine Ressource verfügbar ist (beispielsweise Bandbreite, Durchsatz usw.), den Energieverbrauch usw. in Zusammenhang mit einer oder mehreren der Ressourcen 149, 159 wenigstens einer vom ersten Edge-Dienst 140 oder vom zweiten Edge-Dienst 150 aufweisen.
-
Bei einigen Beispielen erzeugt das erste ausführbare Telemetrieprogramm 137, wenn es ausgeführt wird, die ersten Telemetriedaten 136A. Bei einigen Beispielen erzeugt das zweite ausführbare Telemetrieprogramm 139, wenn es ausgeführt wird, die zweiten Telemetriedaten 136B. Bei einigen Beispielen können die ausführbaren Telemetrieprogramme 137, 139, wenn sie ausgeführt werden, die Telemetriedaten 136A-B durch Aufrufen einer entsprechenden von der einen oder den mehreren Kompositionen 146, 156 erzeugen.
-
Bei einigen Beispielen können die eine oder die mehreren Kompositionen 146, 156 in Zusammenhang mit einer Software-Ressource (beispielsweise einer oder mehreren der Ressourcen 149, 159) allgemein durch eine Manifeststruktur beschrieben werden, die einem oder mehreren Tags in der Art eines oder mehrerer Softwareidentifikations(SWID)-Tags, eines oder mehrerer kurzer SWID(CoSWID)-Tags usw. und/oder einer Kombination davon entspricht. SWID-Tags, CoSWID-Tags usw. können eine erweiterbare XML-basierte Struktur zur Identifikation und Beschreibung individueller Softwarekomponenten, Patches und Installationsbündel bereitstellen. Beispielsweise kann ein SWID- und/oder ein CoSWID-Tag einen Softwarenamen, eine Ausgabe, eine Version usw. der entsprechenden Software-Ressource aufweisen. Bei einigen Beispielen kann ein SWID- und/oder ein CoSWID-Tag eine oder mehrere verfügbare Ressourcen des einen oder der mehreren Edge-Dienste 140, 150 und eine Mitgliedschaft einer subskribierenden Vorrichtung am einen oder an den mehreren Edge-Diensten 140, 150 angeben. Beispielsweise kann eine subskribierende Vorrichtung einen oder mehrere der Server 112, 114, 116, eine oder mehrere der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 usw. sein, welche auf Telemetriedaten vom einen oder von den mehreren Edge-Diensten 140, 150 zugreifen können, diese anfordern können, diese abfragen können usw. Verschiedene Softwarekomponenten und sogar verschiedene Ausgaben einer bestimmten Softwarekomponente können jeweils einen anderen zugeordneten SWID-Tag-Datensatz aufweisen. SWID-Tags, CoSWID-Tags usw. sind flexible Datenstrukturen, die einen breiten Satz von Metadaten in Zusammenhang mit einer Softwarekomponente, einem ausführbaren Programm, einen Satz maschinenlesbarer Befehle usw. definieren und/oder auf andere Weise repräsentieren können. Bei einigen Beispielen werden die eine oder die mehreren Kompositionen 146, 156 durch SWID-Tags beschrieben, wie sie in der International-Organization-for-Standardization(ISO)-Norm ISO-19770-2 definiert sind (beispielsweise Informationstechnologie - Software-Asset-Management - Teil 2: Softwareidentifikationstag, ISO-19770-2:2015; 2015).
-
Bei einigen Beispielen können die eine oder die mehreren Kompositionen 146, 156 in Zusammenhang mit einer Hardware-Ressource (beispielsweise einer oder mehreren der Ressourcen 149, 159) allgemein durch eine Ontologie (beispielsweise eine Hardware-Ressourcenontologie), eine Taxonomie (beispielsweise eine Hardware-Ressourcentaxonomie), ein Manifest (beispielsweise ein Hardware-Ressourcenmanifest) oder ein Plattformattributzertifikat (beispielsweise ein Hardware-Ressourcen-Plattformattributzertifikat, ein Trusted-Computing-Group(TCG)-Plattformattributzertifikat oder einen entsprechenden Berechtigungsnachweis usw.) beschrieben werden.
-
Bei einigen Beispielen kann eine Komposition von Hardware oder Software (beispielsweise eine Hardwarekomposition, eine Softwarekomposition, eine oder mehrere der Kompositionen 146, 156 usw.) unter Benutzung und/oder auf andere Weise auf der Grundlage von Referenzintegritätsmessungen (RIMs) behandelt oder verfolgt werden. Bei einigen Beispielen können die eine oder die mehreren Kompositionen 146, 156 durch Protokollieren von Änderungen an einem zentralen Protokollierungsdienst oder einem dezentralisierten Protokollierungsdienst in der Art eines Blockchain-basierten Protokollierungssystems behandelt oder verfolgt werden. Beispielsweise können die eine oder die mehreren Kompositionen 146, 156 einen oder mehrere der Server 112, 114, 116, der Datenbank 135 usw. ansprechend auf die Erkennung einer Änderung in einem aktuellen oder zuletzt bekannten Zustand der einen oder der mehreren Kompositionen 146, 156 aktualisieren. Bei solchen Beispielen kann die Datenbank 135 den einen oder die mehreren zuletzt bekannten Zustände der einen oder der mehreren Kompositionen 146, 156 speichern. Ansprechend auf eine Änderung des Zustands der einen oder der mehreren Kompositionen 146, 156 können die eine oder die mehreren geänderten Kompositionen 146, 156 den einen oder die mehreren Server 112, 114, 116 auffordern, den einen oder die mehreren in der Datenbank 135 gespeicherten zuletzt bekannten Zustände zu aktualisieren. Bei anderen Beispielen können die Telemetrie-Steuereinrichtung 130B-C, der Orchestrator 152, 162, der Planer 154, 164 usw. und/oder allgemeiner der eine oder die mehreren Edge-Dienste 140, 150 den einen oder die mehreren Server 112, 114, 116 veranlassen, den einen oder die mehreren zuletzt bekannten Zustände zum einen oder zu den mehreren aktuell bekannten Zuständen der einen oder der mehreren Kompositionen 146, 156 zu aktualisieren.
-
Beim in 1 dargestellten Beispiel können die eine oder die mehreren Kompositionen 146, 156 eine oder mehrere Ressourcenkompositionen in Zusammenhang mit einer oder mehreren von den Ressourcen 149, 159, eine oder mehrere Edge-Dienstkompositionen in Zusammenhang mit den Edge-Diensten 140, 150 usw. sein. In 1 weisen die eine oder die mehreren Kompositionen 146, 156 Datenmodelle, Informationsmodelle, maschinenlesbare Ressourcenmodelle usw., die Virtualisierungen von Hardware-Ressourcen, Software-Ressourcen usw. der einen oder der mehreren Ressourcen 149, 159 und/oder allgemeiner der Edge-Dienste 140, 150, welche die Aggregation von Edge-Rechentelemetrie erleichtern können, repräsentieren, auf, entsprechen ihnen und/oder repräsentieren sie auf andere Weise. Beispielsweise können die eine oder die mehreren Kompositionen 146, 156 eine oder mehrere Schnittstellen zur Erzeugung und/oder zum anderweitigen Erhalten der Telemetriedaten 136A-C in Zusammenhang mit der einen oder den mehreren Ressourcen 149, 159 der Edge-Dienste 140, 150 repräsentieren. Bei einigen Beispielen weisen die eine oder die mehreren Kompositionen 146, 156 eine oder mehrere Ressourcenkompositionen auf, die jeweils ein oder mehrere Ressourcenmodelle aufweisen können. Beispielsweise kann ein Ressourcenmodell eine Virtualisierung einer Hardware-Ressource oder einer Software-Ressource aufweisen, dieser entsprechen und/oder diese auf andere Weise repräsentieren.
-
Bei einigen Beispielen weisen die eine oder die mehreren ersten Kompositionen 146 wenigstens ein erstes Ressourcenmodell auf, das einer Virtualisierung einer Rechenressource (beispielsweise einer CPU, eines FPGAs, einer GPU, einer NIC usw.) entspricht. Bei solchen Beispielen kann das erste Ressourcenmodell ein Ressourcenobjekt und ein Telemetrieobjekt aufweisen. Das Ressourcenobjekt kann eine Fähigkeit und/oder eine Funktion eines Kerns einer Mehrkern-CPU, eines oder mehrerer Hardwareabschnitte eines FPGAs, eines oder mehrerer Threads einer GPU usw. sein und/oder diesen auf andere Weise entsprechen. Das Telemetrieobjekt kann eine Schnittstelle (beispielsweise eine Telemetrieschnittstelle) zum Kern der Mehrkern-CPU, zum einen oder zu mehreren Hardwareabschnitten des FPGAs, zum einen oder zu mehreren Threads der GPU usw. sein und/oder ihr auf andere Weise entsprechen. Bei einigen Beispielen kann das Telemetrieobjekt eine oder mehrere Anwendungsprogrammierschnittstellen (APIs), Aufrufe (beispielsweise Hardwareaufrufe, Systemaufrufe usw.), Hooks usw. aufweisen, ihnen entsprechen und/oder sie auf andere Weise repräsentieren, die, wenn sie ausgeführt werden, Telemetriedaten von der Rechenressource erhalten können.
-
Bei einem beispielhaften Betrieb kann der erste Edge-Dienst 140 die eine oder die mehreren ersten Kompositionen 146 und/oder allgemeiner das erste ausführbare Telemetrieprogramm 137 aufrufen, um die ersten Telemetriedaten 136A zu bestimmen, zu erzeugen und/oder zu erhalten. Beispielsweise können die eine oder die mehreren ersten Ressourcen 149 Hardware-Ressourcen aufweisen, die von den Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 für Edge-Rechenaufgaben verwendet werden können, wobei die Hardware-Ressourcen zumindest eine Mehrkern-CPU und ein Halbleiter(SSD)-Laufwerk aufweisen können. Bei solchen Beispielen können die ersten Kompositionen 146 zumindest ein erstes Ressourcenmodell, das einem Kern der Mehrkern-CPU entspricht, und ein zweites Ressourcenmodell, das einer Partition des SSD-Laufwerks entspricht, aufweisen. Die ersten Kompositionen 146 können die ersten Telemetriedaten 136A bestimmen, wie die Anzahl der Gigahertz (GHz), mit denen der Kern ausführen kann, die Auslastung des Kerns (beispielsweise wird der Kern zu 25 %, 50 %, 75 % usw. ausgelastet), die Anzahl der Gigabytes (GB) der SSD-Partition, die Auslastung der SSD-Partition usw. und/oder eine Kombination davon bestimmen.
-
Bei einem beispielhaften Betrieb kann der erste Edge-Dienst 140 ansprechend darauf, dass die eine oder die mehreren ersten Kompositionen 146 die Telemetriedaten 136 bestimmen und/oder auf andere Weise erhalten, die ersten Telemetriedaten 136A zu einem oder mehreren der Server 112, 114, 116 übertragen. Der eine oder die mehreren beispielhaften Server 112, 114, 116 können die ersten Telemetriedaten 136A in der Datenbank 135 speichern. Bei einigen Beispielen können der eine oder die mehreren Server 112, 114, 116 einen oder beide Orchestratoren 142, 152 auffordern, die Verteilung von den Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 erhaltener Arbeitslasten auf die Edge-Dienste 140, 150 anzupassen. Vorteilhafterweise können die beispielhaften Orchestratoren 142, 152 und/oder allgemeiner die beispielhaften Edge-Dienste 140, 150 die Effizienz und Auslastung der Edge-Dienste 140, 150 durch Zuordnen oder Zuweisen von Edge-Rechenarbeitslasten zu der einen oder den mehreren Ressourcen 149, 159 der Edge-Dienste 140, 150, die auf der Grundlage der Telemetriedaten 136A-C als verfügbar identifiziert wurden, verbessern. Vorteilhafterweise können die beispielhaften Edge-Dienste 140, 150 durch Zuordnen von Edge-Rechenarbeitslasten zu einer oder mehreren der verfügbaren Ressourcen 149, 159 den Durchsatz der von der Edge-Umgebung 110 ausgeführten Arbeitslasten erhöhen und ihre Latenz verringern.
-
2 zeigt ein beispielhaftes Blockdiagramm der Telemetrie-Steuereinrichtung 130A-C aus 1. Beim Beispiel aus 2 weist die Telemetrie-Steuereinrichtung 130A eine beispielhafte Netzschnittstelle 210, eine beispielhafte Ressourcenabfrage-Steuereinrichtung 220, eine beispielhafte Kompositionssteuereinrichtung 230, eine beispielhafte Leistungsmetrik-Bestimmungseinrichtung 232, einen beispielhaften Objekterzeuger 234, einen beispielhaften Schnittstellenerzeuger 236, einen beispielhaften Kompositionserzeuger 238, eine beispielhafte Ressourcenverfügbarkeits-Steuereinrichtung 240 und eine beispielhafte Steuereinrichtung 250 für ausführbare Programme auf. Wenngleich das Blockdiagramm aus 2 eine einzige Telemetrie-Steuereinrichtung repräsentiert, können mehrere Instanzen des Blockdiagramms aus 2 verwendet werden, um mehrere Telemetrie-Steuereinrichtungen in der Art der Telemetrie-Steuereinrichtungen 130A-C aus 1 zu implementieren.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C die Netzschnittstelle 210 zum Erhalten von Informationen von einem Netz (beispielsweise dem Internet, einem zellenbasierten Netz, einem Edge-Netz, einem V2X-Netz usw.), einer Umgebung (beispielsweise der Cloud-Umgebung 105, der Edge-Umgebung 110, der Endpunktumgebung 115 usw. aus 1) usw. und/oder einer Kombination davon und/oder zum Übertragen der Informationen zu diesen auf. Bei einigen Beispielen implementiert die Netzschnittstelle 210 einen Webserver, der (1) Arbeitslasten von den Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 empfängt, (2) die Telemetriedaten 136A-C zu den Servern 112, 114, 116 überträgt usw. Bei einigen Beispielen werden die Arbeitslasten, die Telemetriedaten 136A-C usw. als eine oder mehrere HyperText-Transfer-Protocol-(HTTP)-Nachrichten formatiert. Es kann jedoch jedes beliebige andere Nachrichtenformat und/oder Protokoll zusätzlich oder alternativ verwendet werden, wie beispielsweise das Dateiübertragungsprotokoll (FTP), ein einfaches Nachrichtenübertragungsprotokoll (SMTP), ein sicheres HTTP(HTTPS)-Protokoll, ein V2X-Protokoll, ein Mobilkommunikationsprotokoll usw.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C die Ressourcenabfrage-Steuereinrichtung 220 zum Auffordern und/oder Abfragen einer Umgebung (beispielsweise der Cloud-Umgebung 105, der Edge-Umgebung 110, der Endpunktumgebung 115 usw. aus 1) für Ressourcen in Zusammenhang mit der Umgebung auf. Bei einigen Beispielen kann die Ressourcenabfrage-Steuereinrichtung 220 ein Entdeckungs- oder Abfragedatenpaket (beispielsweise ein Adressauflösungsprotokoll-(ARP)-Paket, ein HTTP-Paket, ein HTTPS-Paket usw.) für eine interessierende Umgebung erzeugen. Beispielsweise kann die Ressourcenabfrage-Steuereinrichtung 220 ein oder mehrere Entdeckungsdatenpakete zu einem oder mehreren der Server 112, 114, 116 aus 1, einem oder mehreren der Edge-Dienste 140, 150 aus 1, einer oder mehreren der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 aus 1 usw. und/oder einer Kombination davon übertragen.
-
Bei einigen Beispielen erhält die Ressourcenabfrage-Steuereinrichtung 220 ein oder mehrere Antwortdatenpakete ansprechend auf ein oder mehrere übertragene Entdeckungsdatenpakete. Beispielsweise kann die Ressourcenabfrage-Steuereinrichtung 220 ein Entdeckungsdatenpaket zum ersten Edge-Dienst 140 übertragen. Bei solchen Beispielen kann der erste Edge-Dienst 140 ein oder mehrere Antwortdatenpakete zur Ressourcenabfrage-Steuereinrichtung 220 übertragen. Die beispielhafte Ressourcenabfrage-Steuereinrichtung 220 kann durch Extrahieren von Ressourcendaten oder -informationen aus dem einen oder den mehreren Antwortdatenpaketen feststellen, dass der erste Edge-Dienst 140 eine oder mehrere der Ressourcen 149 aufweist. Beispielsweise kann die Ressourcenabfrage-Steuereinrichtung 220 auf der Grundlage der extrahierten Ressourcendaten feststellen, dass die eine oder die mehreren Ressourcen 149 eine oder mehrere CPUs, eine oder mehrere GPUs, ein oder mehrere FPGAs, eine oder mehrere VMs, einen oder mehrere Hypervisoren usw. aufweist. Bei solchen Beispielen kann die Ressourcenabfrage-Steuereinrichtung 220 feststellen, dass die eine oder die mehreren CPUs, die eine oder die mehreren GPUs, das eine oder die mehreren FPGAs usw. von einer bestimmten Bauart, einem Modell, einer Version usw. eines Herstellers sind oder irgendeinen anderen Typ identifizierender Informationen aufweisen. Bei anderen Beispielen kann die Ressourcenabfrage-Steuereinrichtung 220 feststellen, dass die eine oder die mehreren VMs, der eine oder die mehreren Hypervisoren usw. von einem bestimmten Softwareverkäufer, einer bestimmten Softwareversion usw. stammen.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C die Kompositionssteuereinrichtung 230 zum adaptiven und/oder dynamischen Erzeugen eines maschinenlesbaren Modells (beispielsweise eines Ressourcenmodells, eines Telemetriemodells usw.) für eine interessierende Ressource auf. Beim Beispiel aus 2 weist die Kompositionssteuereinrichtung 230 die Leistungsmetrik-Bestimmungseinrichtung 232, den Objekterzeuger 234, den Schnittstellenerzeuger 236 und den Kompositionserzeuger 238 auf.
-
Beim in 2 dargestellten Beispiel weist die Kompositionssteuereinrichtung 230 die Leistungsmetrik-Bestimmungseinrichtung 232 zum Bestimmen, Identifizieren und/oder Auswählen einer für die Verarbeitung interessierenden Leistungsmetrik auf. Bei einigen Beispielen stellt die Leistungsmetrik-Bestimmungseinrichtung 232 fest, dass eine Ressource in der Art eines Kerns einer Mehrkern-CPU eine oder mehrere interessierende Leistungsmetriken aufweist, die für die Erzeugung der Telemetriedaten 136A-C aus 1 verwendet werden können. Beispielsweise kann der Kern der Mehrkern-CPU eine erste Leistungsmetrik, welche die Anzahl der verfügbaren Threads repräsentiert, eine zweite Leistungsmetrik, welche einen Beschleuniger repräsentiert, welchen der Kern unterstützt, eine dritte Leistungsmetrik, welche die Kernlatenz repräsentiert, usw. aufweisen. Bei einigen Beispielen wählt die Leistungsmetrik-Bestimmungseinrichtung 232 eine für die Verarbeitung interessierende Leistungsmetrik aus. Beispielsweise kann die Leistungsmetrik-Bestimmungseinrichtung 232 die erste, die zweite, die dritte usw. Leistungsmetrik auswählen, um ein Objekt (beispielsweise ein Ressourcenobjekt, ein Telemetrieobjekt usw.) und/oder eine Schnittstelle (beispielsweise eine RIO-Schnittstelle, eine TIO-Schnittstelle usw.) zu erzeugen.
-
Beim in 2 dargestellten Beispiel weist die Kompositionssteuereinrichtung 230 den Objekterzeuger 234 zum Erzeugen, Kompilieren und/oder anderweitigen Instanziieren eines Objekts (beispielsweise eines Ressourcenobjekts, eines Telemetrieobjekts usw.) auf der Grundlage einer Ressource auf. Bei einigen Beispielen erzeugt der Objekterzeuger 234 ein Ressourcenobjekt durch Virtualisieren einer Hardware-Ressource oder einer Software-Ressource. Bei einigen Beispielen erzeugt der Objekterzeuger 234 ein Ressourcenobjekt auf der Grundlage einer Hardware-Ressource. Beispielsweise kann der Objekterzeuger 234 ein Ressourcenobjekt für eine Hardware-Ressource in der Art einer Partition des Massenspeichers erzeugen. Bei solchen Beispielen kann der Objekterzeuger 234 ein RIO auf der Grundlage der Massenspeicherpartition erzeugen, wobei das RIO einer der Massenspeicherpartition zugeordneten Leistungsmetrik entspricht. Beispielsweise kann das RIO eine Leistungsmetrik der Massenspeicherpartition in der Art der Anzahl der von der Massenspeicherpartition ausgeführten Lese-/Schreibzyklen, der Latenz der Massenspeicherpartition, des Prozentsatzes oder Anteils der Massenspeicherpartition, der für die Ausführung einer Edge-Rechenarbeitslast verfügbar ist, usw. repräsentieren.
-
Bei einigen Beispielen erzeugt der Objekterzeuger 234 ein Telemetrieobjekt auf der Grundlage der Hardware-Ressource. Beispielsweise kann der Objekterzeuger 234 ein Telemetrieobjekt für die Massenspeicherpartition erzeugen. Bei solchen Beispielen kann der Objekterzeuger 234 ein TIO auf der Grundlage der Massenspeicherpartition erzeugen, wobei das TIO einer der Massenspeicherpartition zugeordneten Leistungsmetrik entspricht. Beispielsweise kann das TIO eine Leistungsmetrik der Massenspeicherpartition in der Art der Anzahl der von der Massenspeicherpartition ausgeführten Lese-/Schreibzyklen, der Latenz der Massenspeicherpartition, des Anteils der Massenspeicherpartition, der für die Ausführung einer Edge-Rechenarbeitslast verfügbar ist, usw. repräsentieren.
-
Bei einigen Beispielen erzeugt der Objekterzeuger 234 ein Ressourcenobjekt auf der Grundlage einer Software-Ressource. Beispielsweise kann der Objekterzeuger 234 ein Ressourcenobjekt für eine Software-Ressource in der Art eines virtualisierten Lastausgleichers erzeugen. Bei solchen Beispielen kann der Objekterzeuger 234 ein Ressourceninformationsobjekt auf der Grundlage des Lastausgleichers erzeugen, wobei das Ressourceninformationsobjekt einer Leistungsmetrik in Zusammenhang mit dem Lastausgleicher entspricht. Beispielsweise kann das Ressourceninformationsobjekt eine Leistungsmetrik des Lastausgleichers in der Art eines aktuellen oder historischen Durchsatzes des Lastausgleichers, der Latenz des Lastausgleichers, ob der Lastausgleicher für die Ausführung einer Edge-Rechenarbeitslast verfügbar ist, usw. repräsentieren.
-
Bei einigen Beispielen erzeugt der Objekterzeuger 234 ein Telemetrieobjekt auf der Grundlage der Software-Ressource. Beispielsweise kann der Objekterzeuger 234 ein Telemetrieobjekt für den Lastausgleicher erzeugen. Bei solchen Beispielen kann der Objekterzeuger 234 ein TIO auf der Grundlage des Lastausgleichers erzeugen, wobei das TIO einer Leistungsmetrik in Zusammenhang mit dem Lastausgleicher entspricht. Beispielsweise kann das TIO eine Leistungsmetrik des Lastausgleichers in der Art eines aktuellen oder historischen Durchsatzes des Lastausgleichers, der Latenz des Lastausgleichers, ob der Lastausgleicher für die Ausführung einer Edge-Rechenarbeitslast verfügbar ist, usw. repräsentieren.
-
Beim in 2 dargestellten Beispiel weist die Kompositionssteuereinrichtung 230 den Schnittstellenerzeuger 236 zum Erzeugen, Kompilieren und/oder anderweitigen Instanziieren einer Schnittstelle (beispielsweise einer RIO-Schnittstelle, einer TIO-Schnittstelle usw.) auf der Grundlage eines RIO, eines TIO usw. auf. Bei einigen Beispielen erzeugt der Schnittstellenerzeuger 236 eine RIO-Schnittstelle auf der Grundlage eines RIOs. Beispielsweise kann der Schnittstellenerzeuger 236 eine RIO-Schnittstelle für ein einer Massenspeicherpartition entsprechendes RIO erzeugen. Bei solchen Beispielen kann der Schnittstellenerzeuger 236 eine RIO-Schnittstelle auf der Grundlage der Massenspeicherpartition erzeugen, wobei die RIO-Schnittstelle maschinenlesbare Befehle (beispielsweise einen Hardwareaufruf, einen Systemaufruf usw.), die, wenn sie ausgeführt werden, die Massenspeicherpartition veranlassen, Telemetriedaten in Zusammenhang mit einer Leistungsmetrik, die der Massenspeicherpartition zugeordnet ist, zu erhalten und/oder zu erzeugen, repräsentiert und/oder ihnen auf andere Weise entspricht. Beispielsweise kann die RIO-Schnittstelle eine Telemetrieschnittstelle sein und demgemäß einen Befehl, eine Anweisung usw. repräsentieren, die, wenn sie ausgeführt werden, die Massenspeicherpartition für interessierende Telemetriedaten in Zusammenhang mit der Massenspeicherpartition abfragen können.
-
Bei einigen Beispielen erzeugt der Schnittstellenerzeuger 236 eine TIO-Schnittstelle auf der Grundlage eines TIO. Beispielsweise kann der Schnittstellenerzeuger 236 eine TIO-Schnittstelle für ein einer Massenspeicherpartition entsprechendes TIO erzeugen. Bei solchen Beispielen kann der Schnittstellenerzeuger 236 eine TIO-Schnittstelle auf der Grundlage der Massenspeicherpartition erzeugen, wobei die TIO-Schnittstelle maschinenlesbare Befehle (beispielsweise eine API, einen Aufruf, einen Hook usw.), die, wenn sie ausgeführt werden, das RIO veranlassen, Telemetriedaten in Zusammenhang mit einer Leistungsmetrik, die der Massenspeicherpartition zugeordnet ist, zu erhalten und/oder zu erzeugen, repräsentiert und/oder ihnen auf andere Weise entspricht. Beispielsweise kann die TIO-Schnittstelle einen Befehl, eine Anweisung usw. repräsentieren, die, wenn sie ausgeführt wird, das RIO aufrufen kann, das RIO-Objekt aufzurufen, die Massenspeicherpartition auf interessierende Telemetriedaten in Zusammenhang mit der Massenspeicherpartition abzufragen.
-
Beim in 2 dargestellten Beispiel weist die Kompositionssteuereinrichtung 230 den Kompositionserzeuger 238 zum Erzeugen, Kompilieren und/oder anderweitigen Instanziieren einer Komposition (beispielsweise einer Ressourcenkomposition, einer Telemetriekomposition usw.) in Zusammenhang mit der einen oder den mehreren Ressourcen 149, 159 aus 1 und/oder allgemeiner dem Edge-Dienst 140, 150 aus 1 auf. Beispielsweise kann die Kompositionssteuereinrichtung 230 die eine oder die mehreren Kompositionen 146, 156 aus 1 erzeugen. Bei solchen Beispielen kann die Kompositionssteuereinrichtung 230 die eine oder die mehreren Kompositionen 146, 156 durch Zusammenstellen isomorpher Graphen auf der Grundlage einer oder mehrerer Beziehungen zwischen verschiedenen Ressourcenobjekten, Telemetrieobjekten usw. erzeugen. Vorteilhafterweise kann die Kompositionssteuereinrichtung 230 bei einigen Beispielen die eine oder die mehreren Kompositionen 146, 156 erzeugen, um Telemetriedaten in Zusammenhang mit einer oder mehreren der Ressourcen 149, 159 insgesamt (beispielsweise einer Hardwareplattform, die eine Mehrkern-CPU und ein FPGA aufweist) an Stelle von Telemetriedaten in Zusammenhang mit einem Teil der einen oder der mehreren Ressourcen 149, 159 (beispielsweise einem Kern der Mehrkern-CPU, einem Hardwareabschnitt des FPGAs usw.) zu erzeugen.
-
Bei einigen Beispielen erzeugt der Kompositionserzeuger 238 eine Ressourcenkomposition, die ein oder mehrere Ressourcenobjekte oder Systeme von Objekten aufweist. Bei solchen Beispielen kann der Kompositionserzeuger 238 mehrere Ressourcenobjekte aggregieren, eines oder mehrere der mehreren Ressourcenobjekte unter Verwendung eines azyklischen und/oder eines zyklischen Graphen oder Teilgraphen verknüpfen und auf der Grundlage der einen oder der mehreren Verknüpfungen feststellen, ob eines oder mehrere der mehreren Ressourcenobjekte untergeordnete Objekte, Peer-to-Peer-gekoppelte Objekte usw. sind. Die Ressourcenkomposition wird nachstehend weiter in Zusammenhang mit den 6A-6C beschrieben.
-
Bei einigen Beispielen erzeugt der Kompositionserzeuger 238 eine Telemetriekomposition, die ein oder mehrere Telemetrieobjekte aufweist. Bei solchen Beispielen kann der Kompositionserzeuger 238 mehrere Telemetrieobjekte aggregieren, eines oder mehrere der mehreren Telemetrieobjekte unter Verwendung eines azyklischen und/oder eines zyklischen Graphen oder Teilgraphen verknüpfen und auf der Grundlage der einen oder der mehreren Verknüpfungen feststellen, ob eines oder mehrere der mehreren Telemetrieobjekte untergeordnete Objekte, Peer-to-Peer-gekoppelte Objekte usw. sind. Die Telemetriekomposition wird nachstehend weiter in Zusammenhang mit den 7A-7C beschrieben.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C die Ressourcenverfügbarkeits-Steuereinrichtung 240 zum auf der Grundlage der Telemetriedaten 136A-C erfolgenden Feststellen und/oder anderweitigen Identifizieren, ob eine oder mehrere der Ressourcen 149, 159 verfügbar sind, um eine Edge-Rechenarbeitslast auszuführen, auf. Bei einigen Beispielen kann die Ressourcenverfügbarkeits-Steuereinrichtung 240 auf der Grundlage der ersten Telemetriedaten 136A feststellen, dass die eine oder die mehreren ersten Ressourcen 149 aus 1 für die Ausführung einer Arbeitslast von der ersten Endpunktvorrichtung 160 verfügbar sind. Beispielsweise kann die Arbeitslast zur Ausführung ein FPGA anfordern. Bei solchen Beispielen kann die Ressourcenverfiigbarkeits-Steuereinrichtung 240 auf der Grundlage davon, ob die eine oder die mehreren ersten Kompositionen 146 eine Ressourcenkomposition, eine Telemetriekomposition usw., die einem FPGA entsprechen, aufweisen, feststellen, dass die eine oder die mehreren ersten Ressourcen 149 des ersten Edge-Dienstes 140 ein FPGA auf der Grundlage der einen oder der mehreren ersten Kompositionen 146 aufweisen. Vorteilhafterweise kann die Ressourcenverfiigbarkeits-Steuereinrichtung 240 auf der Grundlage der ersten Telemetriedaten 136A feststellen, dass das FPGA in Zusammenhang mit dem ersten Edge-Dienst 140 verfügbar ist. Beispielsweise geben die ersten Telemetriedaten 136A an, dass das FPGA einen oder mehrere Hardwareabschnitte aufweist, die im Bereitschaftszustand, unterausgelastet und/oder auf andere Weise verfügbar sind, um eine Arbeitslast auszufiihren. Bei solchen Beispielen kann die Ressourcenverfügbarkeits-Steuereinrichtung 240 die Arbeitslast für die Ausführung auf die eine oder die mehreren ersten Ressourcen 149 verteilen und/oder diesen auf andere Weise zuordnen.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C die Steuereinrichtung 250 für ausführbare Programme zum Kompilieren und/oder anderweitigen Erzeugen der ausführbaren Programme 137, 139 aus 1 auf der Grundlage der einen oder der mehreren Kompositionen 146, 156 aus 1 auf. Bei einigen Beispielen kann die Steuereinrichtung 250 für ausführbare Programme ansprechend darauf, dass der Kompositionserzeuger 238 und/oder allgemeiner die Kompositionssteuereinrichtung 230 eine oder mehrere Ressourcenkompositionen (beispielsweise Hardware-Ressourcenkompositionen, Software-Ressourcenkompositionen usw.) erzeugt, die eine oder die mehreren Ressourcenkompositionen zu einem oder mehreren maschinenlesbaren ausführbaren Programmen kompilieren.
-
Bei einigen Beispielen können der eine oder die mehreren Server 112, 114, 116 ansprechend darauf, dass die Steuereinrichtung 250 für ausführbare Programme der ersten Telemetrie-Steuereinrichtung 130A die ausführbaren Programme 137, 139 kompiliert, die ausführbaren Programme 137, 139 an einen entsprechenden der Edge-Dienste 140, 150 ausliefern. Beispielsweise kann die Steuereinrichtung 250 für ausführbare Programme (1) das erste ausführbare Programm 137 zum ersten Edge-Dienst 140, (2) das zweite ausführbare Programm 139 zum zweiten Edge-Dienst 150 usw. übertragen und/oder auf andere Weise daran ausliefern. Bei einigen Beispielen kann die Steuereinrichtung 250 für ausführbare Programme ansprechend darauf, dass die Steuereinrichtung 250 für ausführbare Programme eines der Edge-Dienste 140, 150 ein entsprechendes der ausführbaren Programme 137, 139 kompiliert, das entsprechende der ausführbaren Programme 137, 139 zu einem oder mehreren der Server 112, 114, 116 zur Speicherung in der Datenbank 135 übertragen.
-
Wenngleich in 2 eine beispielhafte Art der Implementation der Telemetrie-Steuereinrichtung 130A-C aus 1 dargestellt ist, können eines oder mehrere der Elemente, Prozesse und/oder Vorrichtungen, die in 2 dargestellt sind, kombiniert, unterteilt, neu angeordnet, fortgelassen, beseitigt und/oder auf andere Weise implementiert werden. Ferner können die beispielhafte Netzschnittstelle 210, die beispielhafte Ressourcenabfrage-Steuereinrichtung 220, die beispielhafte Kompositionssteuereinrichtung 230, die beispielhafte Leistungsmetrik-Bestimmungseinrichtung 232, der beispielhafte Objekterzeuger 234, der beispielhafte Schnittstellenerzeuger 236, der beispielhafte Kompositionserzeuger 238, die beispielhafte Ressourcenverfügbarkeits-Steuereinrichtung 240, die beispielhafte Steuereinrichtung 250 für ausführbare Programme und/oder allgemeiner die beispielhafte Telemetrie-Steuereinrichtung 130A-C aus 1 durch Hardware, Software, Firmware und/oder eine Kombination von Hardware, Software und/oder Firmware implementiert werden. Demgemäß könnten beispielsweise jegliche von der beispielhaften Netzschnittstelle 210, der beispielhaften Ressourcenabfrage-Steuereinrichtung 220, der beispielhaften Kompositionssteuereinrichtung 230, der beispielhaften Leistungsmetrik-Bestimmungseinrichtung 232, vom beispielhaften Objekterzeuger 234, vom beispielhaften Schnittstellenerzeuger 236, vom beispielhaften Kompositionserzeuger 238, von der beispielhaften Ressourcenverfügbarkeits-Steuereinrichtung 240, von der beispielhaften Steuereinrichtung 250 für ausführbare Programme und/oder allgemeiner von der beispielhaften Telemetrie-Steuereinrichtung 130A-C durch eine oder mehrere analoge oder digitale Schaltungen, Logikschaltungen, programmierbare Prozessoren, programmierbare Steuereinrichtungen, Graphikverarbeitungseinheiten (GPUs), digitale Signalprozessoren (DSPs), anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikvorrichtungen (PLDs) und/oder feldprogrammierbare Logikvorrichtungen (FPLDs) implementiert werden. Wenn jegliche der Vorrichtungs- oder Systemansprüche dieses Patents zur Abdeckung einer reinen Software- und/oder Firmwareimplementation gelesen werden, wird hier ausdrücklich definiert, dass wenigstens eine von der beispielhaften Netzschnittstelle 210, der beispielhaften Ressourcenabfrage-Steuereinrichtung 220, der beispielhaften Kompositionssteuereinrichtung 230, der beispielhaften Leistungsmetrik-Bestimmungseinrichtung 232, dem beispielhaften Objekterzeuger 234, dem beispielhaften Schnittstellenerzeuger 236, dem beispielhaften Kompositionserzeuger 238, der beispielhaften Ressourcenverfügbarkeits-Steuereinrichtung 240 und/oder der beispielhaften Steuereinrichtung 250 für ausführbare Programme eine nichtflüchtige computerlesbare Speichervorrichtung oder Speicherplatte in der Art eines Speichers, einer Digital Versatile Disk (DVD), einer Compact Disk (CD), einer Bluray-Disk usw., einschließlich der Software und/oder Firmware, aufweist. Überdies kann die beispielhafte Telemetrie-Steuereinrichtung 130A-C aus 1 ein oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu jenen, die in 2 dargestellt sind, oder an Stelle dieser aufweisen und/oder mehr als eines von einigen oder allen der dargestellten Elemente, Prozesse und Vorrichtungen aufweisen. Hier umfasst der Ausdruck „in Kommunikation“, einschließlich Variationen davon, eine direkte Kommunikation und/oder eine indirekte Kommunikation durch eine oder mehrere Zwischenkomponenten und erfordert keine direkte physische (beispielsweise drahtgestützte) Kommunikation und/oder konstante Kommunikation, sondern schließt vielmehr zusätzlich eine selektive Kommunikation in periodischen Intervallen, geplanten Intervallen, aperiodischen Intervallen und/oder einmaligen Ereignissen ein.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C Mittel zur Zusammenstellung einer Komposition (beispielsweise der einen oder der mehreren Kompositionen 146, 156) für einen Edge-Dienst (beispielsweise den einen oder die mehreren Edge-Dienste 140, 150) in einer Edge-Umgebung (beispielsweise der Edge-Umgebung 110) auf, wobei die Komposition eine erste Schnittstelle zum Erhalten von Telemetriedaten (beispielsweise der Telemetriedaten 136A-C) in Zusammenhang mit Ressourcen (beispielsweise der einen oder der mehreren Ressourcen 149, 159) des Edge-Dienstes repräsentieren kann und wobei die Telemetriedaten eine Leistungsmetrik aufweisen.
-
Bei einigen Beispielen können die Mittel zur Zusammenstellung feststellen, dass ein zweites Ressourcenobjekt (beispielsweise ein zweites der Ressourcenobjekte 302) von einem ersten Ressourcenobjekt (beispielsweise einem ersten der Ressourcenobjekte 302) abhängig ist, und ansprechend auf die Feststellung ein zweites Telemetrieobjekt (beispielsweise ein zweites der Telemetrieobjekte 304) als vom ersten Telemetrieobjekt (beispielsweise einem ersten der Telemetrieobjekte 304) abhängig zuweisen, wobei das zweite Telemetrieobjekt dem zweiten Ressourcenobjekt entspricht.
-
Bei einigen Beispielen können die Mittel zum Zusammenstellen ansprechend auf die Feststellung, dass das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängt, eine neue Komposition (beispielsweise die eine oder die mehreren Kompositionen 146, 156 aus 1) durch Zuweisen des zweiten Ressourcenobjekts als vom ersten Ressourcenobjekt abhängig, und Zuweisen des zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, erzeugen. Bei einigen Beispielen implementiert der Kompositionserzeuger 238 die Mittel zur Zusammenstellung.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C Mittel zur Erzeugung eines Ressourcenobjekts (beispielsweise des Ressourcenobjekts 302) auf der Grundlage einer Leistungsmetrik auf, wobei das Ressourcenobjekt eine erste Schnittstelle repräsentiert, welche die Leistungsmetrik von einer Ressource (beispielsweise einer oder mehrerer der Ressourcen 149, 159 aus 1) erhalten kann. Bei einigen Beispielen erzeugen die Mittel zur Erzeugung ein Telemetrieobjekt auf der Grundlage der Leistungsmetrik, wobei das Telemetrieobjekt eine zweite Schnittstelle repräsentiert, welche die Leistungsmetrik vom Ressourcenobjekt erhalten kann.
-
Bei einigen Beispielen erzeugen die Mittel zur Erzeugung eine RIO-Schnittstelle (beispielsweise die RIO-Schnittstelle 308 aus 3) auf der Grundlage eines Ereignisses (beispielsweise eines Hardwareereignisses, eines Ressourcenereignisses usw.), wobei die RIO-Schnittstelle einen ersten Befehl zum Erhalten der Leistungsmetrik von einer Ressource (beispielsweise der Ressource 310 aus 3) repräsentieren kann. Bei einigen Beispielen erzeugen die Mittel zur Erzeugung ein RIO (beispielsweise das RIO 306 aus 3) auf der Grundlage einer Funktion der Ressource, wobei das RIO einen zweiten Befehl zum Erhalten der Leistungsmetrik von der RIO-Schnittstelle repräsentieren kann.
-
Bei einigen Beispielen können die Mittel zur Erzeugung eine TIO-Schnittstelle (beispielsweise die TIO-Schnittstelle 314 aus 3) auf der Grundlage eines Telemetrieaufrufs (beispielsweise einer API) erzeugen, wobei die TIO-Schnittstelle einen ersten Befehl zum Erhalten einer Anforderung der Telemetriedaten (beispielsweise der Telemetriedaten 136A-C aus 1) von einer Endpunktumgebung (beispielsweise der Endpunktumgebung 115 aus 1) repräsentieren kann. Bei einigen Beispielen erzeugen die Mittel zur Erzeugung ein TIO (beispielsweise das TIO 312 aus 3) auf der Grundlage des ersten Befehls, wobei das TIO einen zweiten Befehl zum Erhalten der Leistungsmetrik vom Ressourcenobjekt repräsentieren kann.
-
Bei einigen Beispielen erzeugen die Mittel zur Erzeugung ein erstes Ressourcenobjekt (beispielsweise ein erstes der Ressourcenobjekte 302 aus 3) durch Virtualisieren einer Hardware-Ressource oder einer Software-Ressource (beispielsweise der einen oder der mehreren Ressourcen 149, 159 aus 1). Bei einigen Beispielen erzeugen die Mittel zur Erzeugung ein erstes Telemetrieobjekt (beispielsweise ein erstes der Telemetrieobjekte 304 aus 3), das einen oder mehrere Befehle zum Auffordern des ersten Ressourcenobjekts, eine Leistungsmetrik in Zusammenhang mit der Hardware-Ressource oder der Software-Ressource zu erhalten, repräsentiert. Bei einigen Beispielen erzeugen die Mittel zur Erzeugung ein zweites Ressourcenobjekt und ein zweites Telemetrieobjekt auf der Grundlage einer zweiten Ressource, wobei die zweite Ressource von der ersten Ressource verschieden sein kann. Bei solchen Beispielen kann das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängen und kann das zweite Telemetrieobjekt vom ersten Telemetrieobjekt abhängen. Bei einigen Beispielen implementieren der Objekterzeuger 234 und/oder der Schnittstellenerzeuger 236 die Mittel zur Erzeugung.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C erste Mittel zur Abbildung einer Leistungsmetrik auf eine Funktion einer Ressource (beispielsweise der einen oder der mehreren Ressourcen 149, 159 aus 1) auf, wobei die Leistungsmetrik auf der Grundlage der die Funktion ausführenden Ressource bestimmt werden kann.
-
Bei einigen Beispielen bilden die ersten Mittel zur Abbildung die Leistungsmetrik auf eine Funktion einer Telemetrie-Ressource ab, wobei die Telemetrie-Ressource einen Befehl zum Erhalten von Telemetriedaten (beispielsweise der Telemetriedaten 136A-C aus 1) von einem Ressourcenobjekt (beispielsweise dem Ressourcenobjekt 302 aus 3) repräsentieren kann, wobei die Leistungsmetrik auf der Grundlage der eine Rechenaufgabe ausführenden Ressource bestimmt werden kann. Bei einigen Beispielen implementiert der Objekterzeuger 234 die ersten Mittel zur Abbildung.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C zweite Mittel zur Abbildung einer Leistungsmetrik auf ein von einer Ressource (beispielsweise der einen oder der mehreren Ressourcen 149, 159) erzeugtes Ereignis auf, wobei das Ereignis wenigstens einem von einem Hardwarezähler oder einem Softwarezähler in Zusammenhang mit der Ressource entsprechen kann. Bei einigen Beispielen bilden die zweiten Mittel zur Abbildung die Leistungsmetrik auf einen Telemetrieaufruf (beispielsweise eine API) ab. Bei einigen Beispielen implementiert der Schnittstellenerzeuger 236 die zweiten Mittel zur Abbildung.
-
Beim in 2 dargestellten Beispiel weist die Telemetrie-Steuereinrichtung 130A-C Mittel zum Kompilieren eines ausführbaren Telemetrieprogramms (beispielsweise des einen oder der mehreren ausführbaren Programme 137, 147 aus 1) auf der Grundlage einer Komposition (beispielsweise der einen oder der mehreren Kompositionen 146, 156 aus 1) auf, wobei die Komposition wenigstens eines von einem Ressourcenobjekt (beispielsweise das Ressourcenobjekt 302 aus 3) oder einem Telemetrieobjekt (beispielsweise das Telemetrieobjekt 304 aus 3) aufweisen kann. Bei solchen Beispielen kann das ausführbare Telemetrieprogramm Telemetriedaten (beispielsweise die Telemetriedaten 136A-C aus 1) ansprechend darauf erzeugen, dass ein Edge-Dienst (beispielsweise der Edge-Dienst 140, 150 aus 1) eine Rechenaufgabe ausführt, wobei die Rechenaufgabe auf der Grundlage der Telemetriedaten an den Edge-Dienst übergeben werden kann. Bei einigen Beispielen implementiert die Steuereinrichtung 250 für ausführbare Programme die Mittel zum Kompilieren.
-
Beim in 2 dargestellten Beispiel weisen der eine oder die mehreren Edge-Dienste 140, 150 aus 1 erste Mittel zum Aufrufen auf, wobei die ersten Mittel zum Aufrufen ansprechend auf das Erhalten eines ersten Befehls zum Erhalten von Telemetriedaten (beispielsweise der Telemetriedaten 136A-C aus 1) von einer Komposition (beispielsweise der einen oder der mehreren Kompositionen 146, 156 aus 1) ein erstes Telemetrieobjekt (beispielsweise ein erstes der Telemetrieobjekte 304 aus 3) auffordern, einen zweiten Befehl zum Erhalten der Telemetriedaten von einem ersten Ressourcenobjekt (beispielsweise einem ersten der Ressourcenobjekte 302 aus 3) zu erzeugen. In 2 weist die Telemetrie-Steuereinrichtung 130A-C zweite Mittel zum Aufrufen auf, wobei die zweiten Mittel zum Aufrufen ansprechend auf das Erhalten eines dritten Befehls das erste Ressourcenobjekt auffordern, die Telemetriedaten von der Hardware-Ressource oder der Software-Ressource zu erhalten. Bei einigen Beispielen implementieren die eine oder die mehreren Kompositionen 146, 156 aus 1 und/oder allgemeiner das ausführbare Telemetrieprogramm 137, 147 aus 1 die ersten Mittel zum Aufrufen und/oder die zweiten Mittel zum Aufrufen.
-
Beim in 2 dargestellten Beispiel weisen der eine oder die mehreren Edge-Dienste 140, 150 zweite Mittel zum Erzeugen zweiter Telemetriedaten (beispielsweise der Telemetriedaten 136A-C aus 1) durch Aufrufen eines zweiten Telemetrieobjekts (beispielsweise eines zweiten der Telemetrieobjekte 304 aus 3), das vom ersten Telemetrieobjekt abhängt, auf. Bei einigen Beispielen erzeugen die zweiten Mittel zum Erzeugen ansprechend auf die Erzeugung der zweiten Telemetriedaten erste Telemetriedaten durch Aufrufen des ersten Telemetrieobjekts (beispielsweise eines ersten der Telemetrieobjekte 304 aus 3) und Bestimmen dritte Telemetriedaten (beispielsweise die Telemetriedaten 136A-C aus 1) auf der Grundlage der ersten Telemetriedaten und der zweiten Telemetriedaten.
-
Bei einigen Beispielen bestimmen die zweiten Mittel zum Erzeugen einen Erste-Leistungsmetrik-Code auf der Grundlage einer ersten Leistungsmetrik, einen Zweite-Leistungsmetrik-Code auf der Grundlage einer zweiten Leistungsmetrik und einen Dritte-Leistungsmetrik-Code auf der Grundlage einer dritten Leistungsmetrik. Bei einigen Beispielen sollen die zweiten Mittel zum Erzeugen ansprechend auf das Aufrufen eines Auslösers, der angibt, dass die erste Leistungsmetrik und die zweite Leistungsmetrik erzeugt werden, den Erste-Leistungsmetrik-Code auf eine die erste Leistungsmetrik speichernde erste Speicherstelle abbilden, den Zweite-Leistungsmetrik-Code auf eine die zweite Leistungsmetrik speichernde zweite Speicherstelle abbilden, die dritte Leistungsmetrik auf der Grundlage der ersten Leistungsmetrik und der zweiten Leistungsmetrik bestimmen und ansprechend auf die Abbildung des Dritte-Leistungsmetrik-Codes auf eine dritte Speicherstelle die dritte Leistungsmetrik an der dritten Speicherstelle speichern. Bei einigen Beispielen implementieren die eine oder die mehreren Kompositionen 146, 156 aus 1 und/oder allgemeiner das eine oder die mehreren ausführbaren Telemetrieprogramme 137, 147 aus 1 die zweiten Mittel zum Erzeugen.
-
Bei einigen Beispielen werden eines oder mehrere der Mittel zum Zusammenstellen, der Mittel zum Erzeugen (beispielsweise der ersten Mittel zum Erzeugen), der zweiten Mittel zum Erzeugen, der Mittel zum Kompilieren, der ersten Mittel zum Abbilden, der zweiten Mittel zum Abbilden, der ersten Mittel zum Aufrufen und/oder der zweiten Mittel zum Aufrufen durch einen Prozessor, der aufgebaut ist, um eine entsprechende Operation durch Ausführen von Software oder Firmware auszuführen, oder eine Hardwareschaltung (beispielsweise eine diskrete und/oder integrierte Analog- und/oder Digitalschaltungsanordnung, ein FPGA, eine PLD, eine FPLD, ein ASIC, ein Vergleicher, ein Operationsverstärker (op-amp), eine Logikschaltung usw.), die aufgebaut ist, um die entsprechende Operation ohne Ausführung von Software oder Firmware auszuführen, implementiert, andere Strukturen sind jedoch gleichermaßen geeignet.
-
3 zeigt ein beispielhaftes Ressourcenmodell 300, das ein beispielhaftes Ressourcenobjekt 302 und ein beispielhaftes Telemetrieobjekt 304 aufweist. In 3 kann das Ressourcenmodell 300 ein Telemetriemodell sein, das, wenn es ausgeführt wird, Telemetriedaten auf der Grundlage einer oder mehrerer Partitionen, Abschnitte, Slices usw. einer oder mehrerer Ressourcen, die eine oder mehrere Rechenaufgaben ausführen, erzeugen kann. Beispielsweise kann das Ressourcenmodell 300 aus 3 verwendet werden, um die eine oder die mehreren Kompositionen 146, 156 aus 1 zu implementieren. Beim Beispiel aus 3 kann das Ressourcenmodell 300 ein maschinenausführbares Modell oder eine maschinenausführbare Repräsentation einer der Ressourcen 149, 159 sein, d. h., wenn es ausgeführt wird, Telemetriedaten für den Verbrauch durch einen Datenverbraucher erzeugen und/oder auf andere Weise verfügbar machen. Beim Beispiel aus 3 kann das Ressourcenmodell 300 einer oder mehreren Virtualisierungen einer oder mehrerer der Ressourcen 149, 159 aus 1 entsprechen. Beispielsweise kann das Ressourcenmodell 300 unter Verwendung maschinenlesbarer Befehle implementiert werden, die, wenn sie ausgeführt werden, Telemetriedaten für eine interessierende Leistungsmetrik in Zusammenhang mit der einen oder den mehreren der Ressourcen 149, 159 erhalten und/oder erzeugen.
-
Bei einigen Beispielen entspricht das Ressourcenmodell 300 aus 3 einer Leistungsmetrik einer Hardware-Ressource in der Art eines Kerns einer Mehrkern-CPU. Beispielsweise kann die Leistungsmetrik die Kernauslastung (beispielsweise die Auslastung für den gesamten Kern oder einen spezifischen durch den Kern ausgeführten Prozess), die Anzahl der privaten Bytes (beispielsweise zugewiesener Prozessspeicher (sowohl gemanagt als auch nativ)), die Anzahl der virtuellen Bytes (beispielsweise einem Prozess zugeordneter virtueller Speicher), die Anzahl der Ein-/Ausgabe(E/A)-Datenbytes pro Sekunde (beispielsweise die Anzahl der Bytes, die ein Prozess sendet oder empfängt), die Anzahl der Ausnahmen, die pro Sekunde erzeugt werden, usw. sein. Beispielsweise kann das Ressourcenmodell 300 zumindest der Auslastung des Kerns der Mehrkern-CPU entsprechen.
-
Beim in 3 dargestellten Beispiel weist das Ressourcenmodell 300 das Ressourcenobjekt 302 zum Erzeugen, Zugreifen auf und/oder anderweitigen Erhalten von Werten einer interessierenden Leistungsmetrik auf. In 3 kann das Ressourcenobjekt 302 eine Schnittstelle zum Erhalten einer Leistungsmetrik, eines Werts einer Leistungsmetrik usw. von einer beispielhaften Ressource 310 (beispielsweise einer oder mehrerer der Ressourcen 149, 159 aus 1) sein. In 3 weist das Ressourcenobjekt 302 ein beispielhaftes Ressourceninformationsobjekt (RIO) 306 und eine beispielhafte RIO-Schnittstelle 308 auf.
-
Beim in 3 dargestellten Beispiel weist das Ressourcenobjekt 302 das RIO 306 zum Definieren und/oder anderweitigen Spezifizieren einer Leistungsmetrik und/oder von Befehlen zum Erhalten der Leistungsmetrik auf. Beispielsweise kann das RIO 306 eine Datenstruktur, eine Datendefinition usw., einschließlich einer Kennung (beispielsweise einer Variable, einer alphanumerischen Kennung usw.) für die Leistungsmetrik, eines Datentyps der Leistungsmetrik (beispielsweise eines Array-Datentyps, eines Gleitkomma-Datentyps, eines Integer-Datentyps, eines String-Datentyps usw.), einer Datengenauigkeitsinformation (beispielsweise der Anzahl der Stellen, die Anzahl der signifikanten Zahlen usw.) usw. und/oder einer Kombination davon sein.
-
Bei einigen Beispielen erzeugt der Objekterzeuger 234 aus 2 und/oder allgemeiner die Telemetrie-Steuereinrichtung 130A-C (1 und 2) das RIO 306 durch Abbilden einer interessierenden Leistungsmetrik in Zusammenhang mit der Ressource 310 auf eine Funktion der Ressource 310. Beispielsweise kann die Ressource 310 ein Kern einer Mehrkern-CPU sein, und kann die Funktion ein Befehl ausführen oder zurückziehen, einen Logikzyklus ausführen, einen Referenzzyklus ausführen, einen Aufruf ausführen, einen direkten Aufruf ausführen usw. Bei solchen Beispielen kann der Objekterzeuger 234 eine der Anzahl der ausgeführten Befehle entsprechende Leistungsmetrik auf die Funktion der Ausführung eines Befehls abbilden. Der beispielhafte Objekterzeuger 234 kann das RIO 306 auf der Grundlage der Funktion erzeugen, wobei das RIO 306 einen oder mehrere Befehle zum Erhalten der Leistungsmetrik von der RIO-Schnittstelle 308 repräsentieren kann.
-
Beim in 3 dargestellten Beispiel weist das Ressourcenobjekt 302 die RIO-Schnittstelle 308 zum Definieren und/oder anderweitigen Spezifizieren eines oder mehrerer Befehle, Anweisungen usw. zum Aufrufen der Ressource 310, einen Wert für die dem RIO 306 entsprechende Leistungsmetrik und/oder allgemeiner das Ressourcenmodell 300 zu erhalten, auf. Beispielsweise kann die RIO-Schnittstelle 308 ein oder mehrere Hardware- oder Systemaufrufe (beispielsweise einen Linux-Performance(PERF)-Befehl oder eine entsprechende Anweisung, einen Nigel's-Monitor(NMON)-Befehl oder eine entsprechende Anweisung, einen System-Activity-Report(SAR)-Werkzeug-Befehl oder eine entsprechende Anweisung usw.) usw. aufweisen, diesen entsprechen und/oder diese auf andere Weise repräsentieren. Beim Beispiel aus 3 kann die Ressource 310 eine Hardware-Ressource, eine Software-Ressource usw. sein. Beispielsweise kann die Ressource 310 ein Kern einer Mehrkern-CPU, ein Lastausgleicher (beispielsweise ein virtualisierter Lastausgleicher) usw. sein. Bei solchen Beispielen kann die RIO-Schnittstelle 308, wenn sie aufgerufen wird, einen Befehl zur Ressource 310 übertragen, welche wiederum einen dem Befehl entsprechenden Leistungsmetrikwert erhalten und/oder erzeugen kann.
-
Bei einigen Beispielen erzeugt der Schnittstellenerzeuger 236 aus 2 und/oder allgemeiner die Telemetrie-Steuereinrichtung 130A-C die RIO-Schnittstelle 308 durch Abbilden einer interessierenden Leistungsmetrik in Zusammenhang mit der Ressource 310 auf ein oder mehrere von der Ressource 310 erzeugte Ereignisse (beispielsweise ein oder mehrere Ressourcenereignisse). Beispielsweise kann die Ressource 310 ein Kern einer Mehrkern-CPU sein und kann das Ergebnis eine Aktualisierung von wenigstens einem von einem Hardwarezähler (beispielsweise einem Hardwareleistungszähler) oder einem Softwarezähler (beispielsweise einem Softwareleistungszähler), der in der Mehrkern-CPU enthalten ist und eine Funktion des Kerns überwacht, sein. Beispielsweise kann die Funktion dem einen Befehl ausführenden Kern entsprechen. Bei solchen Beispielen kann der Schnittstellenerzeuger 236 eine Leistungsmetrik, die der Anzahl der ausgeführten Befehle entspricht, auf die Funktion zur Ausführung eines Befehls abbilden. Der beispielhafte Schnittstellenerzeuger 236 kann die RIO-Schnittstelle 308 auf der Grundlage des Ereignisses erzeugen, wobei die RIO-Schnittstelle 308 einen oder mehrere Befehle zum Erhalten der Leistungsmetrik von wenigstens einem vom Hardwarezähler oder vom Softwarezähler der Ressource 310 repräsentieren kann.
-
Beim in 3 dargestellten Beispiel weist das Ressourcenmodell 300 das Telemetrieobjekt 304 zum Erzeugen, Zugreifen auf und/oder anderweitigen Erhalten von Werten für eine interessierende Leistungsmetrik vom Ressourcenobjekt 302 auf. Beim Beispiel aus 3 kann das Telemetrieobjekt 304 eine Schnittstelle zum Erhalten einer Leistungsmetrik, eines Werts der Leistungsmetrik usw. vom Ressourcenobjekt 302 repräsentieren. Beim Beispiel aus 3 weist das Telemetrieobjekt 304 ein beispielhaftes Telemetrieinformationsobjekt (TIO) 312 und eine beispielhafte TIO-Schnittstelle 314 auf. In 3 sind das TIO 312 und/oder allgemeiner das Telemetrieobjekt 304 kommunikativ und/oder funktionell mit dem RIO 306 und/oder allgemeiner dem Ressourcenobjekt 302 gekoppelt.
-
Beim in 3 dargestellten Beispiel weist das Telemetrieobjekt 304 das TIO 312 zum Definieren und/oder anderweitigen Spezifizieren einer Leistungsmetrik und/oder von Befehlen zum Erhalten der Leistungsmetrik von der Ressource 310 über das Ressourcenobjekt 302 auf. Beispielsweise kann das TIO 312 eine Datenstruktur oder - definition einschließlich Befehlen zum Aufrufen des RIOs 306, einer Kennung (beispielsweise einer Variable, einer alphanumerischen Kennung usw.) für die Leistungsmetrik, eines Datentyps der Leistungsmetrik (beispielsweise eines Array-Datentyps, eines Gleitkomma-Datentyps, eines Integer-Datentyps, eines String-Datentyps usw.), einer Datengenauigkeitsinformation (beispielsweise der Anzahl der Stellen, die Anzahl der signifikanten Zahlen usw.) usw. und/oder einer Kombination davon sein.
-
Bei einigen Beispielen erzeugt der Objekterzeuger 234 aus 2 und/oder allgemeiner die Telemetrie-Steuereinrichtung 130A-C das TIO 312 durch Abbilden einer interessierenden Leistungsmetrik in Zusammenhang mit der Ressource 310 auf eine Funktion einer Telemetrie-Ressource. Beispielsweise kann die Funktion das Erhalten von Telemetriedaten vom RIO 306 sein und kann die Telemetrie-Ressource ein Aufrufbefehl, ein Sprungbefehl, ein maschinenlesbarer Befehl usw. sein, der, wenn er ausgeführt wird, das RIO 306 veranlasst, Telemetriedaten von der Ressource 310 zu erhalten. Der beispielhafte Objekterzeuger 234 kann das TIO 312 auf der Grundlage der Funktion erzeugen, wobei das TIO 312 einen oder mehrere Befehle zum Erhalten der Leistungsmetrik vom RIO 306 repräsentieren kann.
-
Beim in 3 dargestellten Beispiel weist das Telemetrieobjekt 304 die TIO-Schnittstelle 314 zum Definieren und/oder anderweitigen Spezifizieren eines oder mehrerer Befehle, Anweisungen usw. zum Aufrufen des Ressourcenobjekts 302, einen Wert für die dem Ressourcenmodell 300 entsprechende Leistungsmetrik zu erhalten, auf. Beispielsweise kann die TIO-Schnittstelle 314 eine oder mehrere Netzschnittstellen, einen oder mehrere Webserver, eine oder mehrere APIs (beispielsweise eine Representational-State-Transfer(REST)-API, eine Simple-Object-Access-Protocol(SOAP)-API usw.) usw. aufweisen, diesen entsprechen und/oder diese auf andere Weise repräsentieren.
-
Bei einigen Beispielen erzeugt der Schnittstellenerzeuger 236 aus 2 und/oder allgemeiner die Telemetrie-Steuereinrichtung 130A-C die TIO-Schnittstelle 314 durch Abbilden einer interessierenden Leistungsmetrik in Zusammenhang mit der Ressource 310 auf einen Telemetrieaufruf. Beispielsweise kann der Telemetrieaufruf ein Aufruf oder eine Anforderung einer Netzschnittstelle, eines Webservers, einer API usw. sein, der, wenn er ausgeführt wird, das TIO 312 veranlasst, Telemetriedaten vom RIO 306 zu erhalten. Der beispielhafte Schnittstellenerzeuger 236 kann die TIO-Schnittstelle 314 auf der Grundlage des Telemetrieaufrufs erzeugen, wobei die TIO-Schnittstelle 314 einen oder mehrere Befehle zum Erhalten der Leistungsmetrik von der Ressource 310 über das RIO 306 repräsentieren kann.
-
Beim in 3 dargestellten Beispiel stehen die TIO-Schnittstelle 314 und/oder allgemeiner das Telemetrieobjekt 304 und/oder allgemeiner das Ressourcenmodell 300 in Kommunikation mit einem beispielhaften Orchestrator 316 und einem beispielhaften Planer 318. Beim Beispiel aus 3 kann der Orchestrator 316 durch wenigstens einen vom ersten Orchestrator 142 oder vom zweiten Orchestrator 152 aus 1 implementiert sein und/oder diesem auf andere Weise entsprechen. Beim Beispiel aus 3 kann der Planer 318 durch wenigstens einen vom ersten Planer 144 oder vom zweiten Planer 154 aus 1 implementiert sein und/oder diesem auf andere Weise entsprechen.
-
Beim in 3 dargestellten Beispiel wird das Ressourcenmodell 300 in Zusammenhang mit mehreren beispielhaften logischen Schichten 320, 322, 324 ausgeführt. Beim Beispiel aus 3 weisen die logischen Schichten 320, 322, 324 eine beispielhafte Planungs- und Orchestrierungsschicht 320, eine beispielhafte Kompositionsschicht 322 und eine beispielhafte Atomare-Ressourcen-Schicht 324 auf. Beim Beispiel aus 3 weist die Planungs- und Orchestrierungsschicht 320 den Orchestrator 316 und den Planer 318 zum Erleichtern der Aggregation von Telemetriedaten und der Planung und/oder Ausführung von Arbeitslasten auf. Beim Beispiel aus 3 weist die Kompositionsschicht 322 das Ressourcenmodell 300 zum Erzeugen und/oder anderweitigen Aggregieren interessierender Telemetriedaten in Zusammenhang mit der Ressource 310 auf. Beim Beispiel aus 3 weist die Atomare-Ressourcen-Schicht 324 Hardware-Ressourcen, Software-Ressourcen usw. in der Art der Ressource 310 auf. Beispielsweise kann die Ressource 310 der einen oder den mehreren ersten Ressourcen 149 und/oder der einen oder den mehreren zweiten Ressourcen 159 aus 1 entsprechen und/oder diese auf andere Weise implementieren.
-
Beim beispielhaften Betrieb können der Orchestrator 316 und/oder der Planer 318 eine Anforderung zu einer API der TIO-Schnittstelle 314 übertragen und/oder diese auf andere Weise aufrufen. Beispielsweise kann die Anforderung dem Erhalten einer Leistungsmetrik, eines Leistungsmetrikwerts usw. in Zusammenhang mit der Ressource 310 entsprechen. Bei solchen Beispielen kann die TIO-Schnittstelle 314 ansprechend auf das Aufrufen der Anforderung und/oder der API das TIO 312 veranlassen oder diesem auf andere Weise befehlen, die Anforderung auszuführen. Beispielsweise kann die TIO-Schnittstelle 314 die in der Anforderung enthaltene Leistungsmetrik auf eine Definition der Leistungsmetrik TIO 312 abbilden. Ansprechend darauf, dass das beispielhafte TIO 312 die Anforderung von der TIO-Schnittstelle 314 erhält, kann das TIO 312 das RIO 306 veranlassen und/oder auf andere Weise anweisen, die Anforderung auszuführen. Ansprechend darauf, dass das beispielhafte RIO 306 die Anforderung vom TIO 312 erhält, kann das RIO 306 die RIO-Schnittstelle 308 auffordern, die Leistungsmetrik von der Ressource 310 anzufordern. Beispielsweise kann die RIO-Schnittstelle 308 einen Befehl zur Ressource 310 übertragen, die interessierenden Telemetriedaten zu erzeugen.
-
Vorteilhafterweise kann das beispielhafte Ressourcenmodell 300 einen Ressourcen-agnostischen API-Befehl, -Hook, -Aufruf usw. vom Orchestrator 316 und/oder vom Planer 318 in einen Hardware- und/oder Softwaresystemaufruf übersetzen, der für die entsprechende Ressource 310 ausgelegt ist und/oder dieser auf andere Weise entspricht. Beispielsweise kann die Anforderung vom Orchestrator 316 und/oder vom Planer 318 eine Anforderung interessierender Telemetriedaten sein, und die Anforderung braucht keinem spezifischen Hersteller, keiner spezifischen Modellnummer, keinem spezifischen Typ, keiner spezifischen Version usw. der Ressource 310 zu entsprechen. Bei solchen Beispielen kann der Hardware- oder Softwaresystemaufruf einem spezifischen Hersteller, einer spezifischen Modellnummer, einem spezifischen Typ, einer spezifischen Version usw. der Ressource 310 entsprechen und/oder auf andere Weise damit kompatibel sein. Vorteilhafterweise kann eine anfordernde Vorrichtung oder ein anfordernder Dienst (beispielsweise ein Server, ein Edge-Dienst usw.) interessierende Telemetriedaten für die Ressource 310 anfordern, ohne sich spezifischen Einzelheiten über die Ressource 310 bewusst zu sein und/oder diese auf andere Weise zu kennen.
-
4 zeigt ein Blockdiagramm des beispielhaften Telemetrieobjekts 304 aus 3. Beim in 4 dargestellten Beispiel ist das Telemetrieobjekt 304 durch eine beispielhafte Steuerebene 410, eine beispielhafte Datenebene 420, eine beispielhafte Kompositionsebene 450 und eine beispielhafte Ausgabeebene 460 implementiert. Beispielsweise können die Steuereinrichtung 250 für ausführbare Programme aus 2 und/oder allgemeiner die Telemetrie-Steuereinrichtung 130A-C (1 und 2) das Telemetrieobjekt 304 durch Erzeugen der Steuerebene 410, der Datenebene 420, der Kompositionsebene 450 und der Ausgabeebene 460 erzeugen. Bei solchen Beispielen kann die Steuereinrichtung 250 für ausführbare Programme das eine oder die mehreren ausführbaren Programme 137, 147 aus 1 durch Kompilieren maschinenlesbarer Befehle erzeugen, die, wenn sie ausgeführt werden, die Steuerebene 410, die Datenebene 420, die Kompositionsebene 450 und die Ausgabeebene 460 und/oder allgemeiner das Telemetrieobjekt 304, das in der einen oder den mehreren Kompositionen 146, 156 aus 1 enthalten ist, implementieren.
-
Beim in 4 dargestellten Beispiel weist das Telemetrieobjekt 304 die Steuerebene 410 zum Steuern der Planung der Telemetrieaggregations- und/oder Sammeloperationen auf. Beispielsweise kann die Steuerebene 410 des Telemetrieobjekts 304 interessierende Telemetriedaten ansprechend auf einen oder mehrere beispielhafte Auslöser 412, 414, 416, 418 erhalten. Beispielsweise können die Auslöser 412, 414, 416, 418 den Typ der zu sammelnden Telemetriedaten und/oder den Zeitraum, während dessen die Telemetriedaten zu sammeln sind, steuern. In 4 weisen die Auslöser 412, 414, 416, 418 einen oder mehrere beispielhafte Erzeugungsauslöser 412, Sammelauslöser 414, Verbrauchsauslöser 416 und Kompositionsauslöser 418 auf.
-
Beim in 4 dargestellten Beispiel weist die Steuerebene 410 den einen oder die mehreren Erzeugungsauslöser 412 auf, um das Telemetrieobjekt 304 anzuweisen, Telemetriedaten zu einem Datenverbraucher in der Art einer oder mehrerer der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 aus 1, eines oder mehrerer der Server 112, 114, 116 aus 1 usw. zu übertragen und/oder auf andere Weise verfügbar zu machen. Der eine oder die mehreren beispielhaften Erzeugungsauslöser 412 können asynchron oder synchron sein. Beispielsweise können der eine oder die mehreren Erzeugungsauslöser 412 einen ersten Erzeugungsauslöser aufweisen, der, wenn er aufgerufen wird, nach dem Aufruf Telemetriedaten übertragen kann. Bei anderen Beispielen können der eine oder die mehreren Erzeugungsauslöser 412 einen zweiten Erzeugungsauslöser aufweisen, der, wenn er aufgerufen wird, Telemetriedaten jede Minute, jede Stunde, jeden Tag usw. übertragen kann. Beispielsweise kann der zweite Erzeugungsauslöser einem Zeitgeber entsprechen. Bei solchen Beispielen kann das Telemetrieobjekt 304 ansprechend auf die Erzeugung eines ersten der Erzeugungsauslöser 412 Telemetriedaten jede Minute zur ersten Endpunktvorrichtung 160 aus 1 übertragen.
-
Beim in 4 dargestellten Beispiel weist die Steuerebene 410 den einen oder die mehreren Sammelauslöser 414 zum Aggregieren und/oder Sammeln von Telemetriedaten auf. Der eine oder die mehreren beispielhaften Sammelauslöser 414 können asynchron oder synchron sein. Beispielsweise können der eine oder die mehreren Sammelauslöser 414 einen ersten Sammelauslöser aufweisen, der, wenn er aufgerufen wird, das TIO 312 auffordern kann, Telemetriedaten von der Ressource 310 aus 3 über das Ressourcenobjekt 302 aus 3 zu erhalten. Bei anderen Beispielen können der eine oder die mehreren Sammelauslöser einen zweiten Sammelauslöser aufweisen, der, wenn er aufgerufen wird, Telemetriedaten jede Minute, jede Stunde, jeden Tag usw. sammeln kann. Beispielsweise kann das Telemetrieobjekt 304 ansprechend auf die Ausführung eines ersten der Sammelauslöser 414 Telemetriedaten jede Minute über das RIO 306 aus 3 von der Ressource 310 erhalten.
-
Beim in 4 dargestellten Beispiel weist die Steuerebene 410 den einen oder die mehreren Verbrauchsauslöser 416 zum Sammeln einer Klasse oder eines Typs von Telemetriedaten auf der Grundlage eines zeitlichen Parameters auf. Bei einigen Beispielen sammeln der eine oder die mehreren Verbrauchsauslöser 416, wenn sie aufgerufen werden, Telemetriedaten ansprechend darauf, dass eine oder mehrere Bedingungen erfüllt werden. Beispielsweise kann das TIO 312 ansprechend auf das Aufrufen eines ersten der Verbrauchsauslöser 416 das RIO 306 auf in einem ersten Speicherregister gespeicherte Daten abfragen, nachdem dem TIO 312 mitgeteilt wurde, dass die Daten im ersten Speicherregister gespeichert wurden. Bei solchen Beispielen kann das TIO 312 die Daten erhalten, nachdem sie von einer anderen Ressource (beispielsweise einer anderen Ressource als der Ressource 310) berechnet worden sind.
-
Beim in 4 dargestellten Beispiel weist die Steuerebene 410 den einen oder die mehreren Kompositionsauslöser 418 zum Sammeln abgeleiteter, berechneter und/oder auf andere Weise bestimmter Telemetriedaten auf. Bei einigen Beispielen erhält das Telemetrieobjekt 304 gemessene Telemetriedaten, die Daten (beispielsweise Roh- oder unverarbeitete Daten) repräsentieren, die von einem Hardwarezähler, einem Softwarezähler, einem Speicherregister usw. erhalten (beispielsweise direkt erhalten) wurden. Bei einigen Beispielen erhält das Telemetrieobjekt 304 berechnete oder bestimmte Telemetriedaten, die Daten repräsentieren, die auf der Grundlage der gemessenen Telemetriedaten berechnet wurden. Beispielsweise können die bestimmten Telemetriedaten durch Ausführen eines Algorithmus an von einem Hardwarezähler erhaltenen ersten Daten erzeugt werden, um zweite Daten zu erzeugen, wobei die zweiten Daten auf der Grundlage der ersten Daten bestimmt werden. Beispielsweise können die gemessenen Telemetriedaten Rohzählwerte sein und können die bestimmten Telemetriedaten ein Durchschnitt oder ein gleitender Durchschnitt dieser Zählwerte sein. Bei solchen Beispielen sind die bestimmten Telemetriedaten von der Ressource 310 aus 3 nicht direkt beobachtbar und/oder messbar. Dementsprechend können der eine oder die mehreren beispielhaften Kompositionsauslöser 418, wenn sie aufgerufen werden, das Telemetrieobjekt 304 anweisen, die berechneten oder bestimmten interessierenden Telemetriedaten zu erhalten.
-
Beim in 4 dargestellten Beispiel weist das Telemetrieobjekt 304 die Datenebene 420 zum Steuern und/oder anderweitigen Erleichtern des Speicherns von Telemetriedaten für den Zugriff durch einen Datenverbraucher auf. Beim Beispiel aus 4 weist die Datenebene 420 beispielhafte Codes 430 auf, die Kennungen von Leistungsmetriken entsprechen. Beim Beispiel aus 4 weist die Datenebene 420 beispielhafte Leistungsmetrikdaten (METRIKDATEN) 440 auf, die Werten der Leistungsmetriken entsprechen. Beispielsweise können die Codes 430 jede Leistungsmetrik durch einen spezifischen Code, eine spezifische Kennung usw. identifizieren, und können die Leistungsmetrikdaten 440 die Leistungsmetrikdaten, Werte der Leistungsmetrik usw. aufweisen. Bei solchen Beispielen können die Codes 430 einen ersten Code aufweisen, der eine erste Leistungsmetrik für die Ressource 310 aus 3 identifiziert, und können die Leistungsmetrikdaten 440 einen Wert für die erste Leistungsmetrik aufweisen, wobei die erste Leistungsmetrik durch den ersten Code identifiziert wird. Bei anderen Beispielen können die Leistungsmetrikdaten 440 Register- oder Speicherstellen zum Speichern der Werte der entsprechenden Leistungsmetriken sein. Beispielsweise können die Leistungsmetrikdaten 440 Zeiger (beispielsweise Datenzeiger, Leistungsmetrikzeiger usw.), Datenstellen (beispielsweise Leistungsmetrikstellen, Leistungsmetrikdaten-Stellen usw.) usw. aufweisen.
-
Beim in 4 dargestellten Beispiel weisen die Codes 430 beispielhafte Roh-Leistungsmetrikcodes (ROHMETRIKCODES) 432 und beispielhafte bestimmte Leistungsmetrikcodes (BESTIMMTE METRIKCODES) 434 auf. Beim Beispiel aus 4 weisen die Roh-Leistungsmetrikcodes 432 einen oder mehrere Codes, Kennungen, Werte usw. auf, die Leistungsmetriken repräsentieren, die von einem Hardwarezähler, einem Softwarezähler, einer Speicherstelle, einer Registerstelle usw., die der Ressource 310 aus 3 zugeordnet ist, gemessen, abgerufen und/oder auf andere Weise erhalten werden. Beim Beispiel aus 4 weisen die bestimmten Leistungsmetrikcodes 434 einen oder mehrere Codes, Kennungen, Werte usw. auf, die Leistungsmetriken repräsentieren, welche auf der Grundlage einer oder mehrerer der gemessenen Leistungsmetriken festgelegt sind.
-
Beim in 4 dargestellten Beispiel weisen die Leistungsmetrikdaten 440 beispielhafte Roh-Leistungsmetrikdaten (ROHMETRIKDATEN) 442 und bestimmte Leistungsmetrikdaten (BESTIMMTE METRIKDATEN) 444 auf. Beispielsweise können die Roh-Leistungsmetrikdaten 442, die bestimmten Leistungsmetrikdaten 444 und/oder allgemeiner die Leistungsmetrikdaten 440 den ersten, zweiten und/oder dritten Telemetriedaten 136A-C aus 1 und/oder Teilen davon entsprechen.
-
Beim in 4 dargestellten Beispiel weisen die Roh-Leistungsmetrikdaten 442 Daten oder Werte einer oder mehrerer Leistungsmetriken auf, die von einem Hardwarezähler, einem Softwarezähler, einer Speicherstelle, einer Registerstelle usw., die der Ressource 310 aus 3 zugeordnet ist, gemessen, abgerufen und/oder auf andere Weise erhalten wurden. Beispielsweise können die ersten Daten oder die Speicherstelle in den Roh-Leistungsmetrikdaten 442 einem ersten Code der Pro-Leistungsmetrikcodes 432 entsprechen und/oder auf andere Weise dadurch identifiziert werden. Bei solchen Beispielen können zweite Daten oder eine zweite Speicherstelle in den bestimmten Leistungsmetrikdaten 444 einem zweiten Code der bestimmten Leistungsmetrikcodes 434 entsprechen und/oder auf andere Weise dadurch identifiziert werden.
-
Beim in 4 dargestellten Beispiel weisen die bestimmten Leistungsmetrikdaten 444 Daten oder Werte von Leistungsmetriken auf, die auf der Grundlage eines oder mehrerer gemessener Leistungsmetrikwerte, die in den Roh-Leistungsmetrikdaten 442 enthalten sind, bestimmt wurden. Beim beispielhaften Betrieb kann die Datenebene 420 eine oder mehrere interessierende Leistungsmetriken identifizieren, um auf der Grundlage im TIO 312 aus 3 enthaltener Informationen zu erhalten und/oder zu bestimmen. Bei solchen Beispielen kann die Datenebene 420 die Roh-Leistungsmetrikcodes 432 und/oder die bestimmten Leistungsmetrikcodes 434 auf der Grundlage einer Definition, eines online oder öffentlich verfügbaren Telemetriewörterbuchs, eines Produktentwurfsdokuments, einer Spezifikation (beispielsweise einer formalen Spezifikation), einer Anforderung usw., die verwendet werden, um das Telemetrieobjekt 304 zu erzeugen und/oder auf andere Weise zu instanziieren, erzeugen.
-
Beim in 4 dargestellten Beispiel weist das Telemetrieobjekt 304 die Kompositionsebene 450 zum Erzeugen, Berechnen und/oder anderweitigen Bestimmen der bestimmten Leistungsmetrikdaten 444 zum Zugriff durch einen Datenverbraucher auf. In 4 weist die Kompositionsebene 450 beispielhafte Formeln 452, beispielhafte Prädikate 454, beispielhafte Filter 456 und eine beispielhafte Importsteuereinrichtung 458 auf.
-
Beim in 4 dargestellten Beispiel weisen die Formeln 452 Algorithmen, Formeln, mathematische Operationen usw. auf, entsprechen diesen und/oder repräsentieren diese auf andere Weise, die ausgeführt, durchgeführt und/oder auf andere Weise auf die Roh-Leistungsmetrikdaten 442 angewendet werden können. Beim Beispiel aus 4 weisen die Prädikate 454 konditionelle Operationen auf, entsprechen diesen und/oder repräsentieren diese auf andere Weise, welche vor und/oder nach dem Aufrufen der Formeln 452 an den Roh-Leistungsmetrikdaten 442 ausgeführt werden können. Beispielsweise können die Prädikate 454 eine Bedingung in der Art einer Sättigungsoperation, einer Schwellenwertbildungsoperation, einer Ereignisbedingung usw. aufweisen, die, wenn sie erfüllt oder befriedigt wird, die Formeln 452 aufruft. Bei solchen Beispielen kann ansprechend darauf, dass eine erste Bedingung der Prädikate 454 erfüllt wird, ein erster Wert der Roh-Leistungsmetrikdaten 442 in einen ersten Algorithmus der Formeln 452 eingegeben werden, um einen Wert der bestimmten Leistungsmetrikdaten 444 zu erzeugen.
-
Beim in 4 dargestellten Beispiel weisen die Filter 456 ein oder mehrere Filter auf, entsprechen diesen und/oder repräsentieren diese auf andere Weise, die verwendet werden können, um zu bestimmen, wann neue Leistungsmetrikwerte in den bestimmten Leistungsmetrikdaten 444 zu speichern sind. Beispielsweise kann ein erster der Filter 456 einen neuen vorgegebenen Leistungsmetrikwert vom Speichern ausschließen und/oder das Speichern auf andere Weise verhindern, weil der neue Wert unterhalb einer Filterschwelle, oberhalb einer Filterschwelle, nicht gleich einer Filterschwelle usw. ist. Bei solchen Beispielen können die Filter 456 zusätzliche bedingte Operationen repräsentieren, die, wenn sie aufgerufen werden, das Speichern unwesentlicher oder redundanter Leistungsmetrikdaten und/oder das Übertragen von ihnen zu einem Datenverbraucher verringern und/oder dies auf andere Weise verhindern können.
-
Beim in 4 dargestellten Beispiel weist die Kompositionsebene 450 die Importsteuereinrichtung 458 zum Zugreifen auf Leistungsmetrikdaten von einem anderen Telemetrieobjekt 304 auf. Bei einigen Beispielen kann die Importsteuereinrichtung 458 des Telemetrieobjekts 304 eine Anforderung an eine andere TIO-Schnittstelle 314 eines anderen Telemetrieobjekts 304 entsprechend einer anderen der Ressourcen 310 übertragen, um auf interessierende Leistungsmetrikdaten zuzugreifen. Bei solchen Beispielen kann die Importsteuereinrichtung 458 die Leistungsmetrikdaten, auf die zugegriffen wurde, zu wenigstens einer der Formeln 452, der Prädikate 454 oder der Filter 456 übertragen, um die bestimmten Leistungsmetrikdaten 444 zu erzeugen. Bei einigen Beispielen kann die Importsteuereinrichtung 458 des der Ressource 310 entsprechenden Telemetrieobjekts 304 eine Anforderung zu einer anderen TIO-Schnittstelle 314 eines anderen Telemetrieobjekts 304, das derselben Ressource 310 entspricht, übertragen, um auf andere interessierende Leistungsmetrikdaten zuzugreifen.
-
Beim in 4 dargestellten Beispiel weist das Telemetrieobjekt 304 die Ausgabeebene 460 zum Aggregieren, Kompilieren und/oder anderweitigen Präparieren von Telemetriedaten in der Art der Leistungsmetrikdaten 440 zum Zugriff durch einen Datenverbraucher oder zum Abruf durch diesen auf. Bei einigen Beispielen überträgt die Ausgabeebene 460 einen oder mehrere Teile der Leistungsmetrikdaten 440 zu einem Datenverbraucher. Bei einigen Beispielen kann es die Ausgabeebene 460 einem Datenverbraucher ermöglichen, den einen oder die mehreren Teile der Leistungsmetrikdaten 440 durch Aufrufen einer API, durch Zugreifen auf einen Webserver usw., die oder der von der Ausgabeebene 460 instanziiert und/oder auf andere Weise behandelt wird, abzurufen. In 4 weist die Ausgabeebene 460 beispielhafte TIO-Ereignisse 462 und beispielhafte Datenverbraucherdaten 464 auf.
-
Beim in 4 dargestellten Beispiel weisen die TIO-Ereignisse 462 Alarme, Angaben usw. auf, entsprechen diesen und/oder repräsentieren diese auf andere Weise, die von einem Datenverbraucher oder vom Telemetrieobjekt 304 erzeugt werden und angeben, dass die Datenverbraucherdaten 464 für den Zugriff bereit oder verfügbar sind. Bei einigen Beispielen kann ansprechend auf die Erzeugung eines ersten der TIO-Ereignisse 462 eine Datennachricht (beispielsweise eine HTTP-Nachricht, eine V2X-Nachricht usw.) zu einem Datenverbraucher übertragen werden, um den Datenverbraucher darauf hinzuweisen, dass die von ihm angeforderten Datenverbraucherdaten 464 für den Zugriff, den Abruf usw. bereit sind. Bei einigen Beispielen kann der Datenverbraucher eine Anforderung der Datenverbraucherdaten 464 übertragen. Bei solchen Beispielen kann die Ausgabeebene 460 ein zweites der TIO-Ereignisse 462 auf der Grundlage der Anforderung erzeugen. Ansprechend darauf, dass das zweite der TIO-Ereignisse 462 erzeugt wird, kann das beispielhafte Telemetrieobjekt 304 vom Datenverbraucher zur Speicherung in den Datenverbraucherdaten 464 angeforderte Telemetriedaten erzeugen. Beim Beispiel aus 4 weisen die Datenverbraucherdaten 464 vom Ressourcenmodell 300 aus 3 erzeugte Telemetriedaten auf, entsprechen diesen und/oder repräsentieren diese auf andere Weise, welche zu einem Datenverbraucher übertragen werden können und/oder worauf er auf andere Weise zugreifen kann. Die beispielhaften Datenverbraucherdaten 464 können einen oder mehrere Teile der Roh-Leistungsmetrikdaten 442, der bestimmten Leistungsmetrikdaten 444 und/oder allgemeiner der Leistungsmetrikdaten 440 aufweisen.
-
Bei einigen Beispielen kann zumindest eine von der Steuerebene 410, der Datenebene 420, der Kompositionsebene 450 oder der Ausgabeebene 460 Cache- oder Speicherlogik der einen oder der mehreren Ressourcen 149, 159 und/oder allgemeiner der Edge-Dienste 140, 150 implementieren und/oder diesen auf andere Weise entsprechen, die, wenn sie ausgeführt werden, die Sammlung und Übertragung von Telemetriedaten erleichtern können. Beispielsweise kann wenigstens eine von der Steuerebene 410, der Datenebene 420, der Kompositionsebene 450 oder der Ausgabeebene 460 in einer Schaltung mit Cache oder Speicher sein (beispielsweise Cache oder Speicher, der in der einen oder den mehreren Ressourcen 149, 159, dem einen oder den mehreren Edge-Diensten 140, 150 usw. enthalten ist). Beispielsweise kann das Telemetrieobjekt 304 eine neue Schnittstelle (beispielsweise die TIO-Schnittstelle 314) einem Softwarestapel der Ressource 310 eine neue Schnittstelle exponieren oder instanziieren, die verwendet werden kann, um das TIO 312 zu benachrichtigen, dass eine Leistungsmetrik durch eine bestimmte Prozessadressraumkennung (PASID) repräsentiert wird. Die neue PASID kann von der Cache-Logik verfolgt werden. Beispielsweise kann die Ressource 310 die TIO-Schnittstelle 314 auffordern, festzustellen, wie lange die Daten in Zusammenhang mit der Leistungsmetrik im Cache gespeichert werden müssen. Bei solchen Beispielen können nach Verstreichen einer von der TIO-Schnittstelle 314 spezifizierten Zeit alle Daten, die sich auf die Leistungsmetrik beziehen, aus dem Cache ausgeschlossen oder entfernt werden. Vorteilhafterweise kann der Softwarestapel die TIO-Schnittstelle 314 aufrufen, (1) zu entdecken und herauszufinden, wie viele Objekte (beispielsweise TIO 312 und/oder allgemeiner das Telemetrieobjekt 304) im Cache gespeichert wurden, wobei jedes der Objekte durch eine eindeutige PASID repräsentiert werden kann, und/oder (2) auf ein interessierendes Objekt durch Bereitstellen der PASID und einer Kennung des Objekts zuzugreifen.
-
Beim beispielhaften Betrieb können die ersten Telemetriedaten 136A aus 1 einen ersten Teil (beispielsweise einen ersten Telemetriedatenteil, einen ersten Teil der ersten Telemetriedaten 136A usw.), der eine erste Leistungsmetrik aufweist, einen zweiten Teil, der eine zweite Leistungsmetrik aufweist, und einen dritten Teil, der eine dritte Leistungsmetrik aufweist, aufweisen. Die beispielhafte Datenebene 420 und/oder allgemeiner das Telemetrieobjekt 304 können einen Erste-Leistungsmetrik-Code auf der Grundlage der ersten Leistungsmetrik, einen Zweite-Leistungsmetrik-Code auf der Grundlage der zweiten Leistungsmetrik und einen Dritte-Leistungsmetrik-Code auf der Grundlage der dritten Leistungsmetrik bestimmen. Der Erste-Leistungsmetrik-Code und der Zweite-Leistungsmetrik-Code können in den Roh-Leistungsmetrikcodes 432 gespeichert werden, und der Dritte-Leistungsmetrik-Code kann in den bestimmten Leistungsmetrikcodes 434 gespeichert werden.
-
Beim beispielhaften Betrieb kann die Datenebene 420 ansprechend auf den Aufruf eines Auslösers (beispielsweise eines von dem einen oder den mehreren Erzeugungsauslösern 412, eines von dem einen oder den mehreren Sammelauslösern 414, eines von dem einen oder den mehreren Verbrauchsauslösern 416, eines von dem einen oder den mehreren Kompositionsauslösern 418 usw.), der angibt, dass die erste Leistungsmetrik und die zweite Leistungsmetrik erzeugt werden (beispielsweise in den Roh-Leistungsmetrikdaten 442 gespeichert werden), (1) den Erste-Leistungsmetrik-Code auf eine erste Speicherstelle in den Roh-Leistungsmetrikdaten 442 abbilden, welche die erste Leistungsmetrik speichert, und (2) den Zweite-Leistungsmetrik-Code auf die zweite Speicherstelle in den Roh-Leistungsmetrikdaten 442 abbilden, welche die zweite Leistungsmetrik speichert. Beim beispielhaften Betrieb kann die Datenebene 420 die dritte Leistungsmetrik auf der Grundlage der ersten Leistungsmetrik und der zweiten Leistungsmetrik bestimmen. Beim beispielhaften Betrieb kann die Datenebene 420 ansprechend auf die Abbildung des Dritte-Leistungsmetrik-Codes auf eine dritte Speicherstelle, die sich in den vorgegebenen Leistungsmetrikdaten 444 befindet, die dritte Leistungsmetrik an der dritten Speicherstelle speichern. Beim beispielhaften Betrieb kann die Ausgabeebene 460 eines der TIO-Ereignisse 462 erzeugen, die angeben, dass die dritte Leistungsmetrik bestimmt wurde. Beim beispielhaften Betrieb kann die Ausgabeebene 460 die dritte Leistungsmetrik von der dritten Speicherstelle erhalten und die dritte Leistungsmetrik als Datenverbraucherdaten 464 identifizieren und/oder die dritte Leistungsmetrik als Datenverbraucherdaten 464 speichern.
-
5A zeigt eine andere beispielhafte Implementation des Ressourcenmodells 300 aus 3. In 5A weist ein beispielhaftes Ressourcenmodell 500 ein beispielhaftes Ressourcen-Objekt/System 510, das einer Objekt-/Systemschnittstelle (I/F) und einer Implementation (IMPL) der Ressource 310 aus 3 entspricht, die eine oder die mehreren Ressourcen 149, 159 aus 1 usw. und ein beispielhaftes TelemetrieObjekt/System 520, das einer Telemetrieschnittstelle und einer Implementation einer Schnittstelle der Ressource 310 entspricht, die eine oder die mehreren Ressourcen 149, 159 usw. auf. In 5 kann das Ressourcen-Objekt/System 510 einem Objekt in der Art des Ressourcenobjekts 302 aus 3 oder einem System von Objekten, welches das Ressourcenobjekt 302 aufweist, entsprechen. In 5A kann der Objekt-/Systemimplementationsabschnitt des Ressourcen-Objekts/Systems 510 dem RIO 306 aus 3 entsprechen und kann der Objekt-/Systemschnittstellenabschnitt des RessourcenObjekts/Systems 510 der RIO-Schnittstelle 308 aus 5A entsprechen.
-
Beim in 5A dargestellten Beispiel kann das TelemetrieObjekt/System 520 einem Objekt in der Art des TIOs 312 aus 3 oder einem System von Objekten, welches das TIO 312 aufweist, entsprechen. In 5A kann der Telemetrieimplementationsabschnitt des Telemetrie-Objekts/Systems 520 dem TIO 312 aus 3 entsprechen und kann der Telemetrieschnittstellenabschnitt des Telemetrie-Objekts/Systems 520 der TIO-Schnittstelle 314 aus 3 entsprechen.
-
Beim in 5A dargestellten Beispiel ist die Beziehung zwischen dem Ressourcen-Objekt/System 510 und dem Telemetrie-Objekt/System 520 nicht als gleich und/oder auf andere Weise nicht streng als eins-zu-eins dargestellt. Beispielsweise kann das Ressourcen-Objekt/System 510 einer Virtualisierung von zwei oder mehr Leistungsmetriken und entsprechenden Schnittstellen zum Erhalten und/oder anderweitigen Anfordern der Erzeugung von zwei oder mehr Leistungsmetriken entsprechen. Bei solchen Beispielen kann das Telemetrie-Objekt/System 520 einer Virtualisierung einer Schnittstelle zum Erhalten der zwei oder mehr Leistungsmetriken vom Ressourcen-Objekt/System 510 entsprechen. Alternativ kann, wie beim in 5B dargestellten Beispiel gezeigt ist, eine erste beispielhafte Beziehung 530 zwischen dem Ressourcen-Objekt/System 510 und dem TelemetrieObjekt/System 520 eine Eins-zu-eins-Beziehung sein. Beispielsweise kann das RessourcenObjekt/System 510 eine Leistungsmetrik repräsentieren und kann das TelemetrieObjekt/System 520 eine Schnittstelle zum Erhalten der einen Leistungsmetrik repräsentieren.
-
Bei einigen Beispielen kann das Ressourcenmodell 500 aus 5A ein computerlesbares Modell eines komplexen Objekts oder eines Objekts, das mehrere Funktionen oder mehrere Leistungsmetriken aufweist, in der Art einer CPU, wobei für die CPU viele verschiedene Leistungsmetriken verfügbar sein können, sein und/oder dieses auf andere Weise repräsentieren. Vorteilhafterweise kann das Ressourcen-Objekt/System 510 die verschiedenen für die CPU verfügbaren Leistungsmetriken repräsentieren, während das Telemetrie-Objekt/System 520 eine Schnittstelle zum Erhalten der verschiedenen Leistungsmetriken repräsentieren kann. Beispielsweise kann es vorteilhaft sein, die verschiedene Leistungsmetriken in mehrere verschiedene Gruppen oder mehrere verschiedene TIOs und entsprechende TIO-Schnittstellen zu gruppieren, wie in einer beim Beispiel aus 5C dargestellten zweiten beispielhaften Beziehung 540 gezeigt ist. In 5C kann ein einzelnes Objekt (beispielsweise eines vom Ressourcen-Objekt/System 510) in der Art einer CPU eine RIO 306 aufweisen, die mehrere Leistungsmetriken definiert, wobei jede der Leistungsmetriken ein anderes TIO und eine entsprechende TIO-Schnittstelle aufweisen kann (beispielsweise mehrere vom Telemetrie-Objekt/System 520).
-
Bei einigen Beispielen kann eine einzige Ressource in der Art einer Mehrkern-CPU eine bestimmte TIO-Gruppe aufweisen (beispielsweise eine Gruppe, welche die verfügbare PCI-e-Bandbreite der Mehrkern-CPU beschreibt), die auf alle Kerne der Mehrkern-CPU, wenn sie gemeinsam betrachtet werden, angewendet werden kann. Eine beim in 5D dargestellten Beispiel gezeigte dritte beispielhafte Beziehung 550 kann solchen Beispielen entsprechen. Beispielsweise kann in 5D eine erste Leistungsmetrik in Zusammenhang mit einem ersten Kern der Mehrkern-CPU einem ersten 510A vom Ressourcen-Objekt/System 510 entsprechen und kann eine zweite Leistungsmetrik in Zusammenhang mit einem zweiten Kern der Mehrkern-CPU einem zweiten 510B vom Ressourcen-Objekt/System 510 entsprechen. Beim Beispiel aus 5D kann das Telemetrie-Objekt/System 520 ein TIO-Objekt repräsentieren und einer Schnittstelle zum Erhalten der ersten und der zweiten Leistungsmetrik und zum Bestimmen einer dritten Leistungsmetrik auf der Grundlage der ersten und der zweiten Leistungsmetrik entsprechen. Bei einigen Beispielen kann, wie durch die vierte beispielhafte Beziehung 560 beim in 5E dargestellten Beispiel gezeigt ist, eine Leistungsmetrik eine Beziehung mit einem oder mehreren Telemetrieobjekten und entsprechenden Schnittstellen aufweisen.
-
Die 6A - 6C sind schematische Darstellungen beispielhafter Ressourcenkompositionen 600, 610, 620, einschließlich einer ersten beispielhaften Ressourcenkomposition 600, einer zweiten beispielhaften Ressourcenkomposition 610 und einer dritten beispielhaften Ressourcenkomposition 620. Beispielsweise können der Kompositionserzeuger 238 und/oder allgemeiner die Kompositionssteuereinrichtung 230 aus 2 wenigstens eine von der ersten Ressourcenkomposition 600, der zweiten Ressourcenkomposition 610 oder der dritten Ressourcenkomposition 620 erzeugen. Bei solchen Beispielen kann der Kompositionserzeuger 238 die Ressourcenkompositionen 600, 610, 620 durch Verknüpfen und/oder anderweitiges Zuweisen von Ressourcen-Objekten/Systemen auf der Grundlage von Abhängigkeiten (beispielsweise inneren Abhängigkeiten) miteinander erzeugen. In den 6A - 6C können die Ressourcenkompositionen 600, 610, 620 Telemetriemodelle sein, die, wenn sie ausgeführt werden, Telemetriedaten auf der Grundlage einer oder mehrerer zugrunde liegender Ressourcen, die eine oder mehrere Rechenaufgaben ausführen, erzeugen können.
-
Beim in 6A dargestellten Beispiel weisen die Ressourcenkompositionen 600, 610, 620 eine Mischung azyklischer und zyklischer Teilgraphen auf. In 6A weist die erste Ressourcenkomposition 600 erste beispielhafte RessourcenObjekte/Systeme 510P, 510Q, 510R, 510S auf, die Implementationen des RessourcenObjekts/Systems 510 aus 5A entsprechen. In 6A weist die zweite Ressourcenkomposition 610 zweite beispielhafte Ressourcen-Objekte/Systeme 510T, 510U auf, die Implementationen des Ressourcen-Objekts/Systems 510 aus 5A entsprechen.
-
Beim in 6A dargestellten Beispiel weisen die ersten RessourcenObjekte/Systeme 510P, 510Q, 510R, 510S ein erstes beispielhaftes RessourcenObjekt/System 510P, das ein Ressourcenobjekt oder ein System von Ressourcenobjekten repräsentiert, auf. Beispielsweise kann der Kompositionserzeuger 238 feststellen, dass das erste Ressourcen-Objekt/System 510P nicht von einem anderen Ressourcen-Objekt/System abhängt. In 6A weist das erste Ressourcen-Objekt/System 510P zwei untergeordnete Ressourcen-Objekte/Systeme auf, die ein zweites beispielhaftes Ressourcen-Objekt/System 510Q und ein drittes beispielhaftes Ressourcen-Objekt/System 510R aufweisen. In 6A weist die erste Ressourcenkomposition 600 ein viertes beispielhaftes RessourcenObjekt/System 510S auf, das dem zweiten Ressourcen-Objekt/System 510Q untergeordnet ist.
-
Beim in 6A dargestellten Beispiel kann der Kompositionserzeuger 238 die erste Ressourcenkomposition 600 durch Verknüpfen und/oder anderweitiges Zuweisen von Ressourcen-Objekten/Systemen zu einem oder mehreren verschiedenen der Ressourcen-Objekte/Systeme auf der Grundlage der Abhängigkeiten miteinander erzeugen. Beispielsweise kann der Kompositionserzeuger 238 das zweite Ressourcen-Objekt/System 510Q und das dritte Ressourcen-Objekt/System 510R auf der Grundlage der Abhängigkeiten der zweiten und dritten Ressourcen-Objekte/Systeme 510Q, 510R vom ersten Objekt/System 510P mit dem ersten Ressourcen-Objekt/System 510P verknüpfen und/oder diesem auf andere Weise zuweisen.
-
Hier bezieht sich ein untergeordnetes Ressourcen-Objekt/System (beispielsweise ein untergeordnetes Ressourcenobjekt, ein untergeordnetes Ressourcensystem usw.) auf ein Ressourcenobjekt und/oder -system, das unter der Steuerung, Anleitung oder engen Kopplung mit einem anderen Ressourcenobjekt und/oder -system, dem es untergeordnet ist, arbeitet. Beispielsweise hängt für Anforderer oder Subskribenten eines Dienstes vom ersten Ressourcen-Objekt/System 510P die Gesamtleistung der ersten Ressourcenkomposition 600 von verschiedenen Leistungsgraden von Unterkomponenten (beispielsweise der zweiten bis vierten Ressourcen-Objekte/Systeme 510Q, 510R, 510S) des ersten Ressourcen-Objekts/Systems 510P ab.
-
Beim in 6A dargestellten Beispiel weisen die zweiten Ressourcen-Objekte/Systeme 510T, 510U der zweiten Ressourcenkomposition 610 ein fünftes beispielhaftes Ressourcen-Objekt/System 510T auf, das einem sechsten beispielhaften Ressourcen-Objekt/System 510U untergeordnet ist. Beispielsweise kann der Kompositionserzeuger 238 das fünfte Ressourcen-Objekt/System 510T mit dem sechsten RessourcenObjekt/System 510U ansprechend auf die Feststellung, dass das fünfte RessourcenObjekt/System 510T vom sechsten Ressourcen-Objekt/System 510U abhängt, verknüpfen und/oder diesem auf andere Weise zuweisen.
-
Beim in 6A dargestellten Beispiel ist die erste Ressourcenkomposition 600 mit der zweiten Ressourcenkomposition 610 gekoppelt. Beispielsweise kann das dritte Ressourcen-Objekt/System 510R der ersten Ressourcenkomposition 600 mit dem fünften Ressourcen-Objekt/System 510T der zweiten Ressourcenkomposition 610 Peer-to-Peer-gekoppelt sein. Bei solchen Beispielen bewirkt die Peer-to-Peer-Kopplung des dritten Ressourcen-Objekts/Systems 510R und des fünften Ressourcen-Objekts/Systems 510T, dass zusammengesetzte Ressourcen-Objekte/Systeme (beispielsweise ein Ressourcenobjekt, ein - system usw. der Ressourcenkompositionen 600, 610), die dem ersten RessourcenObjekt/System 510P und dem sechsten Ressourcen-Objekt/System 510U untergeordnet sind, Peer-to-Peer-gekoppelt werden, wie beim Beispiel aus 6B dargestellt ist.
-
Beim in 6B dargestellten Beispiel sind die inneren Beziehungen jedes zusammengesetzten Ressourcen-Objekts/Systems (wie in 6A dargestellt) nicht gezeigt und kann sich ein Anforderer oder Subskribent eines Dienstes der ersten und der zweiten Ressourcenkomposition 600, 610 nur auf die Funktionsweise der jeweiligen Ressourcenkompositionen 600, 610 statt auf die Funktionsweise der zugrunde liegenden zusammengesetzten Ressourcen-Objekte/Systeme verlassen.
-
Beispielsweise können die 6A und/oder 6B ein computerlesbares Modell eines Inter-Socket-Links oder einer Ultra-Path-Zwischenverbindung (UPI) in einer Mehr-Socket-CPU repräsentieren. Bei solchen Beispielen kann die erste Ressourcenkomposition 600 ein computerlesbares Modell eines ersten Kerns einer Mehrkern-CPU sein und/oder diesen auf andere Weise repräsentieren und kann die zweite Ressourcenkomposition 610 ein computerlesbares Modell eines zweiten Kerns der Mehrkern-CPU sein und/oder diesen auf andere Weise repräsentieren. Das dritte Ressourcen-Objekt/System 510R kann einem ersten Socket des ersten Kerns entsprechen, und das sechste RessourcenObjekt/System 510T kann einem zweiten Socket des zweiten Kerns entsprechen. Bei solchen Beispielen kann die Peer-to-Peer-Kopplung zwischen dem dritten Ressourcen-Objekt/System 510R und dem sechsten Ressourcen-Objekt/System 510T dem UPI-Link zwischen dem ersten und dem zweiten Socket der Mehrkern-CPU entsprechen. Vorteilhafterweise kann ein anfordernder oder subskribierender Dienst Telemetriedaten von den verschiedenen Kernen der Mehrkern-CPU durch Abfragen einer oder beider Ressourcenkompositionen 600, 610 statt durch Abfragen eines zugrunde liegenden Ressourcen-Objekts/Systems erhalten.
-
6C ist eine beispielhafte schematische Darstellung der dritten Ressourcenkomposition 620, welche die erste Ressourcenkomposition 600 und die zweite Ressourcenkomposition 610 aufweist. Die dritte beispielhafte Ressourcenkomposition 620 ist eine vereinfachte Darstellung der zugrunde liegenden Ressourcenkompositionen 600, 610. Beispielsweise wird die zugrunde liegende Kombination azyklischer und zyklischer Teilgraphen der ersten Ressourcenkomposition 600 und der zweiten Ressourcenkomposition 620 durch eine erste Ressourcenkomposition „PQRS“, die der ersten Ressourcenkomposition 600 entspricht, und eine zweite Ressourcenkomposition „TU“, die der zweiten Ressourcenkomposition 610 entspricht, ersetzt, wobei die erste Ressourcenkomposition und die zweite Ressourcenkomposition Peer-to-Peer-gekoppelt sind. Vorteilhafterweise kann ein Anforderer oder Subskribent des Dienstes Telemetriedaten auf der beispielhaften Kompositionsschicht 322 aus 3 statt auf der Atomare-Ressourcen-Schicht 324 aus 3 durch Anfordern von Telemetriedaten von der dritten Ressourcenkomposition 620 statt vom einen oder von den mehreren zugrunde liegenden Ressourcenobjekten und/oder -systemen erhalten.
-
Die 7A - 7C sind schematische Darstellungen beispielhafter Telemetriekompositionen 700, 710, 720, die eine erste beispielhafte Telemetriekomposition 700, eine zweite beispielhafte Telemetriekomposition 710 und eine dritte beispielhafte Telemetriekomposition 720 aufweisen. Beispielsweise können der Kompositionserzeuger 238 und/oder allgemeiner die Kompositionssteuereinrichtung 230 aus 2 wenigstens eine von der ersten Telemetriekomposition 700, der zweiten Telemetriekomposition 710 oder der dritten Telemetriekomposition 720 erzeugen. Bei solchen Beispielen kann der Kompositionserzeuger 238 die Telemetriekompositionen 700, 710, 720 durch Verknüpfen und/oder anderweitiges Zuweisen von Telemetrie-Objekten/Systemen auf der Grundlage von Abhängigkeiten (beispielsweise inneren Abhängigkeiten) miteinander erzeugen.
-
Beim in 7A dargestellten Beispiel weisen die Telemetriekompositionen 700, 710, 720 eine Mischung azyklischer und zyklischer Teilgraphen auf. In 7A weist die erste Telemetriekomposition 700 erste beispielhafte TelemetrieObjekte/Systeme 520P, 520Q, 520R, 520S auf, die Implementationen des TelemetrieObjekts/Systems 520 aus 5A entsprechen. In 7A weist die zweite Telemetriekomposition 610 zweite beispielhafte Telemetrie-Objekte/Systeme 520T, 520U auf, die Implementationen des Telemetrie-Objekts/Systems 520 aus 5A entsprechen.
-
Beim in 7A dargestellten Beispiel werden die Telemetriekompositionen 700, 710, 720 auf der Grundlage der Ressourcenkompositionen 600, 610, 620 aus den 6A - 6C zusammengesetzt. Beispielsweise können die Telemetriekompositionen 700, 710, 720 ansprechend auf eine Änderung der Ressourcenkompositionen 600, 610, 620 angepasst, geändert usw. werden. Bei solchen Beispielen kann der Kompositionserzeuger 238 ansprechend darauf, dass eine oder mehrere der Ressourcen 149, 159 aus 1 offline gehen oder online kommen, eine oder mehrere Aktualisierungen der Ressourcenkompositionen 600, 610, 620 erzeugen. Vorteilhafterweise kann der beispielhafte Kompositionserzeuger 238 eine oder mehrere Aktualisierungen der Telemetriekompositionen 700, 710, 720 erzeugen, um Telemetrieaggregationsoperationen in Zusammenhang mit einer oder mehreren Änderungen in der einen oder den mehreren Ressourcen 149, 159 hochzuskalieren oder herunterzuskalieren.
-
Beim in 7A dargestellten Beispiel weisen die ersten TelemetrieObjekte/Systeme 520P, 520Q, 520R, 520S ein erstes beispielhaftes TelemetrieObjekt/System 520P, das ein Telemetrieobjekt oder ein System von Telemetrieobjekten repräsentiert, auf. Beispielsweise kann der Kompositionserzeuger 238 auf der Grundlage davon, dass das erste Ressourcen-Objekt/System 510P nicht von einem anderen RessourcenObjekt/System abhängt, wie in den 6A - 6B dargestellt, feststellen, dass das erste Telemetrie-Objekt/System 520P nicht von einem anderen Telemetrie-Objekt/System abhängt. In 7A weist das erste Telemetrie-Objekt/System 520P zwei untergeordnete TelemetrieObjekte/Systeme auf, die ein zweites beispielhaftes Telemetrie-Objekt/System 520Q und ein drittes beispielhaftes Telemetrie-Objekt/System 520R aufweisen. In 7A weist die erste Telemetriekomposition 700 ein viertes beispielhaftes Telemetrie-Objekt/System 520S auf, das dem zweiten Telemetrie-Objekt/System 520Q untergeordnet ist.
-
Beim in 7A dargestellten Beispiel kann der Kompositionserzeuger 238 die erste Telemetriekomposition 700 durch Verknüpfen und/oder anderweitiges Zuweisen von Telemetrie-Objekten/Systemen zu einem oder mehreren verschiedenen der Telemetrie-Objekte/Systeme auf der Grundlage der Abhängigkeiten miteinander erzeugen. Beispielsweise kann der Kompositionserzeuger 238 das zweite Telemetrie-Objekt/System 520Q und das dritte Telemetrie-Objekt/System 520R auf der Grundlage der Abhängigkeiten der zweiten und dritten Ressourcen-Objekte/Systeme 510Q, 510R vom ersten Objekt/System 510P mit dem ersten Telemetrie-Objekt/System 520P verknüpfen und/oder diesem auf andere Weise zuweisen, wie in den 6A - 6B dargestellt ist.
-
Hier kann ein untergeordnetes Telemetrie-Objekt/System (beispielsweise ein untergeordnetes Telemetrieobjekt, ein untergeordnetes Telemetriesystem usw.) ein Telemetrieobjekt und/oder -system bezeichnen, das unter der Steuerung, Anleitung oder engen Kopplung mit einem anderen Telemetrieobjekt und/oder -system, dem es untergeordnet ist, arbeitet. Beispielsweise hängen für Anforderer oder Subskribenten eines Dienstes vom ersten Telemetrie-Objekt/System 520P Telemetriedaten in Zusammenhang mit der Gesamtleistung der ersten Ressourcenkomposition 600 aus den 6A - 6C in verschiedenen Leistungsgraden von Unterkomponenten (beispielsweise der zweiten bis vierten Ressourcen-Objekte/Systeme 510Q, 510R, 510S) des ersten RessourcenObjekts/Systems 510P ab und können anhand der ersten Telemetriekomposition 700 erhalten werden.
-
Beim in 7A dargestellten Beispiel weisen die zweiten Telemetrie-Objekte/Systeme 520T, 520U der zweiten Telemetriekomposition 710 ein fünftes beispielhaftes Telemetrie-Objekt/System 520T auf, das einem sechsten beispielhaften Telemetrie-Objekt/System 520U untergeordnet ist. Beispielsweise kann der Kompositionserzeuger 238 das fünfte Telemetrie-Objekt/System 520T ansprechend auf die Feststellung, dass das fünfte Ressourcen-Objekt/System 510T vom sechsten Ressourcen-Objekt/System 510U abhängt, wie in den 6A - 6B dargestellt, mit dem sechsten TelemetrieObjekt/System 520U verknüpfen und/oder diesem auf andere Weise zuweisen.
-
Beim in 7A dargestellten Beispiel wird die erste Telemetriekomposition 700 auf der Grundlage davon, dass die erste Ressourcenkomposition 600 aus den 6A - 6C mit der zweiten Ressourcenkomposition 610 aus den 6A - 6C gekoppelt wird, mit der zweiten Telemetriekomposition 710 gekoppelt. Beispielsweise kann das dritte Telemetrie-Objekt/System 520R der ersten Telemetriekomposition 700 mit dem fünften Telemetrie-Objekt/System 520T der zweiten Telemetriekomposition 710 Peer-to-Peer-gekoppelt sein. Bei solchen Beispielen bewirkt die Peer-to-Peer-Kopplung des dritten Telemetrie-Objekts/Systems 520R und des fünften Telemetrie-Objekts/Systems 520T, dass zusammengesetzte Telemetrie-Objekte/Systeme (beispielsweise ein Objekt, ein System usw. der Telemetriekompositionen 700, 710), die dem ersten Telemetrie-Objekt/System 520P und dem sechsten Telemetrie-Objekt/System 520U untergeordnet sind, Peer-to-Peer-gekoppelt werden, wie beim Beispiel aus 7B dargestellt ist.
-
Beim in 7B dargestellten Beispiel sind die inneren Beziehungen jedes zusammengesetzten Telemetrie-Objekts/Systems (wie in 7A dargestellt) nicht gezeigt und kann sich ein Anforderer oder Subskribent eines Dienstes der ersten und der zweiten Telemetriekomposition 700, 710 nur auf die Funktionsweise der jeweiligen Telemetriekompositionen 700, 710 statt auf die Funktionsweise der zugrunde liegenden zusammengesetzten Telemetrie-Objekte/Systeme verlassen.
-
7C ist eine schematische Darstellung der dritten Telemetriekomposition 720, welche die erste Telemetriekomposition 700 und die zweite Telemetriekomposition 710 aufweist. Die dritte beispielhafte Telemetriekomposition 720 ist eine vereinfachte Darstellung der zugrunde liegenden Telemetriekompositionen 700, 710. Beispielsweise wird die zugrunde liegende Kombination azyklischer und zyklischer Teilgraphen der ersten Telemetriekomposition 700 und der zweiten Telemetriekomposition 720 durch eine erste Telemetriekomposition „PQRS“, die der ersten Telemetriekomposition 700 entspricht, und eine zweite Telemetriekomposition „TU“, die der zweiten Telemetriekomposition 710 entspricht, ersetzt, wobei die erste Telemetriekomposition und die zweite Telemetriekomposition Peer-to-Peer-gekoppelt sind. Vorteilhafterweise kann ein Anforderer oder Subskribent des Dienstes Telemetriedaten auf der beispielhaften Kompositionsschicht 322 aus 3 statt auf der Atomare-Ressourcen-Schicht 324 aus 3 durch Anfordern von Telemetriedaten von der dritten Telemetriekomposition 720 statt vom einen oder von den mehreren zugrunde liegenden Telemetrieobjekten und/oder -systemen erhalten.
-
Flussdiagramme, die beispielhafte Hardwarelogik, maschinenlesbare Befehle, hardwareimplementierte Zustandsmaschinen und/oder eine Kombination davon zur Implementation der einen oder der mehreren beispielhaften Kompositionen 146, 156 und/oder allgemeiner der beispielhaften ausführbaren Programme 137, 149 aus 1 und/oder der beispielhaften Telemetrie-Steuereinrichtung 130A-C aus den 1 - 2 repräsentieren, sind in den 8 - 12 dargestellt. Die maschinenlesbaren Befehle können ein oder mehrere ausführbare Programme oder Teile eines ausführbaren Programms zur Ausführung durch einen Computerprozessor in der Art des Prozessors 1312, der in der nachstehend in Verbindung mit 13 erörterten beispielhaften Prozessorplattform 1300 dargestellt ist, und/oder des Prozessors 1412, der in der nachstehend in Verbindung mit 14 erörterten beispielhaften Prozessorplattform 1400 dargestellt ist, sein. Das Programm kann in Software, die auf einem nichtflüchtigen computerlesbaren Speichermedium in der Art einer CD-ROM, einer Diskette, einer Festplatte, einer DVD, einer Bluray-Disk oder einem Speicher in Zusammenhang mit dem Prozessor 1312 aus 13 und/oder dem Prozessor 1412 aus 14 gespeichert ist, verwirklicht werden, das gesamte Programm und/oder Teile davon könnten jedoch alternativ durch eine andere Vorrichtung als den Prozessor 1312 aus 13 und/oder den Prozessor 1412 aus 14 ausgeführt werden und/oder in Firmware oder dedizierter Hardware verwirklicht werden. Ferner können, wenngleich das beispielhafte Programm mit Bezug auf die in den 8 - 12 dargestellten Flussdiagramme beschrieben wird, viele andere Verfahren zur Implementation der einen oder der mehreren beispielhaften Kompositionen 146, 156 und/oder allgemeiner der beispielhaften ausführbaren Programme 137, 149 und/oder der beispielhaften Telemetrie-Steuereinrichtung 130A-C alternativ verwendet werden. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke geändert werden und/oder können einige der beschriebenen Blöcke geändert, fortgelassen oder kombiniert werden. Zusätzlich oder alternativ können einige oder alle der Blöcke durch eine oder mehrere Hardwareschaltungen (beispielsweise eine diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, einen FPGA, einen ASIC, einen Vergleicher, einen Operationsverstärker (op-amp), eine Logikschaltung usw.) implementiert werden, die strukturiert sind, um die entsprechende Operation ohne Ausführung von Software oder Firmware durchzuführen.
-
Die hier beschriebenen maschinenlesbaren Befehle können in einem oder mehreren von einem komprimierten Format, einem verschlüsselten Format, einem fragmentierten Format, einem kompilierten Format, einem ausführbaren Format, einem paketierten Format usw. gespeichert werden. Hier beschriebene maschinenlesbare Befehle können als Daten (beispielsweise Abschnitte von Befehlen, Code, Repräsentationen von Code usw.) gespeichert werden, die für die Erzeugung, Herstellung und/oder Produktion maschinenausführbarer Befehle verwendet werden können. Beispielsweise können die maschinenlesbaren Befehle fragmentiert und auf einer oder mehreren Speichervorrichtungen und/oder Rechenvorrichtungen (beispielsweise Servern) gespeichert werden. Die maschinenlesbaren Befehle können eines oder mehrere von Installation, Modifikation, Anpassung, Aktualisierung, Kombination, Ergänzung, Konfigurierung, Entschlüsselung, Dekompression, Entpackung, Verteilung, Neuzuweisung, Kompilierung usw. erfordern, um sie von einer Rechenvorrichtung und/oder einer anderen Maschine direkt lesbar, interpretierbar und/oder ausführbar zu machen. Beispielsweise können die maschinenlesbaren Befehle in mehreren Teilen gespeichert werden, die einzeln komprimiert, verschlüsselt und auf getrennten Rechenvorrichtungen gespeichert werden, wobei die Teile, wenn sie entschlüsselt, dekomprimiert und kombiniert werden, einen Satz ausführbarer Befehle bilden, die ein Programm in der Art des hier beschriebenen implementieren.
-
Bei einem anderen Beispiel können die maschinenlesbaren Befehle in einem Zustand gespeichert werden, in dem sie von einem Computer gelesen werden können, jedoch zusätzlich eine Bibliothek (beispielsweise eine Dynamic Link Library (DLL)), einen Softwareentwicklungskit (SDK), eine Anwendungsprogrammierschnittstelle (API) usw. erfordern, um die Befehle auf einer bestimmten Rechenvorrichtung oder einer anderen Vorrichtung auszuführen. Bei einem anderen Beispiel können die maschinenlesbaren Befehle konfiguriert werden müssen (beispielsweise Einstellungen gespeichert, Daten eingegeben, Netzwerkadressen aufgezeichnet usw.), bevor die maschinenlesbaren Befehle und/oder das eine oder die mehreren entsprechenden Programme ganz oder teilweise ausgeführt werden können. Demgemäß sollen die offenbarten maschinenlesbaren Befehle und/oder das eine oder die mehreren entsprechenden Programme solche maschinenlesbaren Befehle und/oder Programme unabhängig vom bestimmten Format oder Zustand der maschinenlesbaren Befehle und/oder Programme, wenn gespeichert oder auf andere Weise in Ruhe oder in Übertragung, umfassen.
-
Die hier beschriebenen maschinenlesbaren Befehle können durch eine frühere, gegenwärtige oder künftige Befehlssprache, Skriptsprache, Programmiersprache usw. repräsentiert werden. Beispielsweise können die maschinenlesbaren Befehle unter Verwendung jeglicher der folgenden Sprachen repräsentiert werden: C, C++, Java, C#, Perl, Python, JavaScript, HyperText Markup Language (HTML), Structured Query Language (SQL), Swift usw.
-
Wie vorstehend erwähnt, können die beispielhaften Prozesse aus den 8 - 12 unter Verwendung ausführbarer Befehle (beispielsweise computer- und/oder maschinenlesbarer Befehle) implementiert werden, die auf einem nichtflüchtigen computer- und/oder maschinenlesbaren Medium in der Art eines Festplattenlaufwerks, eines Flash-Speichers, eines Nurlesespeichers, einer Compact Disk, einer Digital Versatile Disk, eines Caches, eines Direktzugriffsspeichers und/oder einer anderen Speichervorrichtung oder Speicherplatte, worin Informationen für eine Zeitdauer gespeichert werden (beispielsweise während längerer Zeiträume, permanent, für kurze Momente, für ein Zwischenpuffern und/oder für das Caching der Informationen), gespeichert werden. Wie hier verwendet, wird der Begriff nichtflüchtiges computerlesbares Medium ausdrücklich so definiert, dass er einen beliebigen Typ einer computerlesbaren Speichervorrichtung und/oder Speicherplatte einschließt und sich ausbreitende Signale und Übertragungsmedien ausschließt.
-
„Aufweisend“ und „umfassend“ (und alle Formen und Tempi davon) werden hier als einschließende Begriffe verwendet. Wenn ein Anspruch demgemäß eine Form von „aufweisen“ oder „umfassen“ als Oberbegriff oder innerhalb eines Anspruchszitats irgendeiner Art verwendet (beispielsweise umfasst, weist auf, umfassend, aufweisend, habend usw.), ist zu verstehen, dass zusätzliche Elemente, Begriffe usw. vorhanden sein können, ohne den Schutzumfang des entsprechenden Anspruchs oder Zitats zu verlassen. Wenn hier der Ausdruck „wenigstens“ als Übergangsbegriff beispielsweise in einem Oberbegriff eines Anspruchs verwendet wird, ist er in der gleichen Weise wie die Begriffe „umfassend“ und „aufweisend“ einschließend. Wenn der Begriff „und/oder“ beispielsweise in einer Form in der Art von A, B und/oder C verwendet wird, bezieht er sich auf eine Kombination oder Teilmenge von A, B, C in der Art von (1) A allein, (2) B allein, (3) C allein, (4) A mit B, (5) A mit C, (6) B mit C und (7) A mit B und mit C. Wenn er hier in Zusammenhang mit beschreibenden Strukturen, Komponenten, Elementen, Objekten und/oder Dingen verwendet wird, soll sich der Ausdruck „wenigstens einer von A und B“ auf Implementationen beziehen, die jegliche von (1) wenigstens ein A, (2) wenigstens ein B und (3) wenigstens ein A und wenigstens ein B aufweisen. Ähnlich soll sich der Ausdruck „wenigstens einer von A oder B“, wenn er hier in Zusammenhang mit beschreibenden Strukturen, Komponenten, Elementen, Objekten und/oder Dingen verwendet wird, auf Implementationen beziehen, die jegliche von (1) wenigstens ein A, (2) wenigstens ein B und (3) wenigstens ein A und wenigstens ein B aufweisen. Wenn er hier in Zusammenhang mit der Beschreibung der Funktionsweise oder Ausführung von Prozessen, Befehlen, Aktionen, Aktivitäten und/oder Schritten verwendet wird, soll sich der Ausdruck „wenigstens einer von A und B“ auf Implementationen beziehen, die jegliche von (1) wenigstens ein A, (2) wenigstens ein B und (3) wenigstens ein A und wenigstens ein B aufweisen. Ähnlich soll sich der Ausdruck „wenigstens einer von A oder B“, wenn er hier in Zusammenhang mit der Beschreibung der Funktionsweise oder Ausführung von Prozessen, Befehlen, Aktionen, Aktivitäten und/oder Schritten verwendet wird, auf Implementationen beziehen, die jegliche von (1) wenigstens ein A, (2) wenigstens ein B und (3) wenigstens ein A und wenigstens ein B aufweisen.
-
Hier schließen Singularreferenzen (beispielsweise „ein/eine/eines“, „erster/erste/erstes“, „zweiter/zweite/zweites“ usw.) den Plural nicht aus. Der Begriff „eine“ Entität bezieht sich hier auf eine oder mehrere dieser Entitäten. Die Begriffe „ein/eine/eines“, „ein/eine/eines oder mehrere“ und „wenigstens ein/eine/eines“ können hier austauschbar verwendet werden. Ferner können, wenngleich sie individuell aufgelistet werden, mehrere Mittel, Elemente oder Verfahrensschritte beispielsweise durch eine einzige Einheit oder einen einzigen Prozessor implementiert werden. Zusätzlich können, wenngleich individuelle Merkmale in verschiedenen Beispielen oder Ansprüchen aufgenommen sein können, diese möglicherweise kombiniert werden, und impliziert die Aufnahme in verschiedenen Beispielen oder Ansprüchen nicht, dass eine Kombination von Merkmalen nicht möglich und/oder vorteilhaft ist.
-
8 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle 800 repräsentiert, die ausgeführt werden können, um die beispielhafte Telemetrie-Steuereinrichtung 130A-C aus den 1 und/oder 2 zu implementieren, um auf der Grundlage der Telemetriedaten 136A-C aus 1 Rechenaufgaben auf den ersten Edge-Dienst 140 und/oder den zweiten Edge-Dienst 150 zu verteilen. Die beispielhaften maschinenlesbaren Befehle 800 aus 8 beginnen in Block 802, wo die Telemetrie-Steuereinrichtung 130A-C eine oder mehrere Edge-Dienstressourcen in einer Edge-Umgebung entdeckt. Beispielsweise kann die Ressourcenabfrage-Steuereinrichtung 220 (2) den ersten Edge-Dienst 140 aus 1 abfragen. Bei solchen Beispielen kann die Ressourcenabfrage-Steuereinrichtung 220 die eine oder die mehreren Ressourcen 149 ( 1) des ersten Edge-Dienstes 140 auf der Grundlage der Abfrage identifizieren.
-
In Block 804 stellt die beispielhafte Telemetrie-Steuereinrichtung 130A-C fest, ob eine oder mehrere neue Kompositionen zu erzeugen sind. Beispielsweise kann die Kompositionssteuereinrichtung 230 (2) feststellen, dass eine der einen oder der mehreren Ressourcen 149 online gekommen ist und nicht in der ersten Ressourcenkomposition 600 enthalten ist. Bei solchen Beispielen kann die Kompositionssteuereinrichtung 230 feststellen, dass eine neue Komposition auf der Grundlage der entdeckten einen der einen oder der mehreren Ressourcen 149 zu erzeugen ist.
-
Falls die beispielhafte Telemetrie-Steuereinrichtung 130A-C in Block 804 feststellt, dass keine neuen Kompositionen zu erzeugen sind, wird die Steuerung in Block 814 fortgesetzt, um Telemetriedaten ansprechend darauf zu erhalten, dass der eine oder die mehreren Edge-Dienste das eine oder die mehreren ausführbaren Telemetrieprogramme ausführen. Falls die beispielhafte Telemetrie-Steuereinrichtung 130A-C in Block 804 feststellt, dass eine oder mehrere neue Kompositionen zu erzeugen sind, erzeugt sie in Block 806 eine oder mehrere Kompositionen für einen Edge-Dienst. Beispielsweise kann die Kompositionssteuereinrichtung 230 die eine oder die mehreren ersten Kompositionen 146 (1) durch Erzeugen eines Ressourcenobjekts, eines Telemetrieobjekts usw. auf der Grundlage der entdeckten einen der einen oder der mehreren Ressourcen 149 erzeugen. Beispielhafte Befehle, die zur Implementation von Block 806 ausgeführt werden können, werden nachstehend in Verbindung mit 9 beschrieben.
-
In Block 808 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine oder mehrere Umgebungskompositionen auf der Grundlage der einen oder der mehreren Edge-Dienstkompositionen. Beispielsweise kann die Kompositionssteuereinrichtung 230 eine Komposition erzeugen, welche die eine oder die mehreren Kompositionen 146, 156 der Edge-Umgebung 110 aus 1 aufweist, diesen entspricht und/oder diesen auf andere Weise zugeordnet ist.
-
In Block 810 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C ein oder mehrere ausführbare Telemetrieprogramme auf der Grundlage des Edge-Dienstes und/oder der einen oder der mehreren Umgebungskompositionen. Beispielsweise kann die Steuereinrichtung 250 für ausführbare Programme (2) das erste ausführbare Programm 137 (1) auf der Grundlage zumindest einer von der einen oder den mehreren ersten Kompositionen 146 oder der einen oder den mehreren zweiten Kompositionen 156 kompilieren.
-
In Block 812 installiert die beispielhafte Telemetrie-Steuereinrichtung 130A-C das eine oder die mehreren ausführbaren Telemetrieprogramme im einen oder den mehreren Edge-Diensten. Beispielsweise kann der erste Server 112 ansprechend darauf, dass die erste Telemetrie-Steuereinrichtung 130A des ersten Servers 112 (1) das erste ausführbare Programm 137 erzeugt, das erste ausführbare Programm 137 zum ersten Edge-Dienst 140 übertragen. Bei anderen Beispielen kann der erste Edge-Dienst 140 ansprechend darauf, dass die zweite Telemetrie-Steuereinrichtung 130B des ersten Edge-Dienstes 140 das erste ausführbare Programm 137 erzeugt, das erste ausführbare Programm 137 am ersten Edge-Dienst 140 installieren. Beispielsweise kann der erste Edge-Dienst 140 das erste ausführbare Programm 137 in einen Speicher (beispielsweise einen flüchtigen oder nichtflüchtigen Speicher, der in der einen oder den mehreren Ressourcen 149 enthalten ist), die erste ES-Datenbank 148 aus 1 usw. zur Ausführung durch den ersten Edge-Dienst 140 laden.
-
In Block 814 erhält die beispielhafte Telemetrie-Steuereinrichtung 130A-C Telemetriedaten ansprechend darauf, dass der eine oder die mehreren Edge-Dienste das eine oder die mehreren ausführbaren Telemetrieprogramme ausführt. Beispielsweise kann die zweite Telemetrie-Steuereinrichtung 130B des ersten Edge-Dienstes 140 die ersten Telemetriedaten 136A von der einen oder den mehreren ersten Kompositionen 146 erhalten und die ersten Telemetriedaten 136A in der ersten ES-Datenbank 148 speichern. Bei anderen Beispielen kann die erste Telemetrie-Steuereinrichtung 130A des einen oder der mehreren Server 110, 112, 114 die ersten Telemetriedaten 136A ansprechend darauf, dass der erste Edge-Dienst 140 die eine oder die mehreren ersten Kompositionen 146 und/oder allgemeiner das erste ausführbare Programm 137 ausführt, vom ersten Edge-Dienst 140 erhalten.
-
In Block 816 verteilt die beispielhafte Telemetrie-Steuereinrichtung 130A-C die eine oder die mehreren Arbeitslasten auf der Grundlage der Telemetriedaten auf den einen oder die mehreren Edge-Dienste. Beispielsweise kann die Netzschnittstelle 210 (2) eine Arbeitslast von der ersten Endpunktvorrichtung 160 erhalten. Die beispielhafte Ressourcenverfiigbarkeits-Steuereinrichtung 240 (2) kann auf der Grundlage der ersten Telemetriedaten 136A feststellen, dass eine oder mehrere der Ressourcen 149 des ersten Edge-Dienstes 140 verfügbar sind, um die Arbeitslast auszuführen. Die beispielhafte Ressourcenverfügbarkeits-Steuereinrichtung 240 kann die Arbeitslast zur Ausführung an den ersten Edge-Dienst 140 übergeben. Ansprechend darauf, dass der erste beispielhafte Edge-Dienst 140 die Arbeitslast ausführt, kann der erste Edge-Dienst 140 verarbeitete Daten, ein Ergebnis der Arbeitslast usw. zur ersten Endpunktvorrichtung 160 übertragen. Ansprechend auf die Verteilung der einen oder der mehreren Arbeitslasten auf den einen oder die mehreren Edge-Dienste auf der Grundlage der Telemetriedaten in Block 816 wird die Steuerung in Block 818 fortgesetzt, um festzustellen, ob eine oder mehrere Edge-Dienstressourcen in der Edge-Umgebung zu entdecken sind. Beispielsweise kann die Ressourcenabfrage-Steuereinrichtung 220 feststellen, dass eine andere Abfrageoperation auszuführen ist, um festzustellen, ob eine neue Ressource verfügbar geworden ist, online gekommen ist usw. oder ob eine zuvor entdeckte Ressource nicht mehr verfügbar ist, offline gegangen ist usw. Falls die beispielhafte Telemetrie-Steuereinrichtung 130A-C in Block 818 feststellt, dass eine oder mehrere Edge-Dienstressourcen in der Edge-Umgebung zu entdecken sind, kehrt die Steuerung zu Block 802 zurück, und andernfalls werden die beispielhaften maschinenlesbaren Befehle 800 aus 8 abgeschlossen.
-
9 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle 900 repräsentiert, die ausgeführt werden können, um die Telemetrie-Steuereinrichtung 130A-C aus den 1 und/oder 2 zu implementieren, um eine oder mehrere Kompositionen (beispielsweise die eine oder die mehreren Kompositionen 146, 156 aus 1) für einen Edge-Dienst (beispielsweise den einen oder die mehreren Edge-Dienste 140, 150 aus 1) zu erzeugen. Die beispielhaften maschinenlesbaren Befehle 900 aus 9 können ausgeführt werden, um Block 806 aus 8 zu implementieren. Die maschinenlesbaren Befehle 900 aus 9 beginnen in Block 902, wo die beispielhafte Telemetrie-Steuereinrichtung 130A-C einen Edge-Dienst für die Verarbeitung auswählt. Beispielsweise kann die Kompositionssteuereinrichtung 230 (2) den ersten Edge-Dienst 140 aus 1 für die Verarbeitung auswählen.
-
In Block 904 bestimmt die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine oder mehrere interessierende Leistungsmetriken, die vom Edge-Dienst zu erhalten sind. Beispielsweise kann die Leistungsmetrik-Bestimmungseinrichtung 232 ( 2) feststellen, dass eine erste Ressource von der einen oder den mehreren Ressourcen 149 eine Mehrkern-CPU ist. Bei solchen Beispielen kann die Leistungsmetrik-Bestimmungseinrichtung 232 die Mehrkern-CPU auf eine erste Leistungsmetrik, eine zweite Leistungsmetrik, eine dritte Leistungsmetrik usw. abbilden. Beispielsweise kann die erste Leistungsmetrik die Anzahl der Befehle messen, die ein Kern der Mehrkern-CPU ausgeführt hat.
-
In Block 906 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C ein oder mehrere Ressourcenobjekte auf der Grundlage der einen oder der mehreren Leistungsmetriken. Beispielsweise kann der Objekterzeuger 234 (2) das Ressourcenobjekt 302 aus 3 auf der Grundlage der ersten Leistungsmetrik erzeugen. Beispielhafte Befehle, die zur Implementation von Block 906 ausgeführt werden können, werden nachstehend in Verbindung mit 10 beschrieben.
-
In Block 908 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C ein oder mehrere Telemetrieobjekte auf der Grundlage der einen oder der mehreren Leistungsmetriken. Beispielsweise kann der Schnittstellenerzeuger 236 (2) das Telemetrieobjekt 304 aus 3 auf der Grundlage der ersten Leistungsmetrik erzeugen. Beispielhafte Befehle, die zur Implementation von Block 908 ausgeführt werden können, werden nachstehend in Verbindung mit 11 beschrieben.
-
In Block 910 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine oder mehrere Ressourcenkompositionen auf der Grundlage des einen oder der mehreren Ressourcenobjekte. Beispielsweise kann der Kompositionserzeuger 238 (2) die erste Ressourcenkomposition 600 aus den 6A - 6C auf der Grundlage der ersten Ressourcen-Objekte/Systeme 510P, 510Q, 510R, 510S aus den 6A - 6B erzeugen. Bei solchen Beispielen kann das Ressourcenobjekt 302 einem von den ersten RessourcenObjekten/Systemen 510P, 510Q, 510R, 510S aus den 6A - 6B entsprechen.
-
In Block 912 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine oder mehrere Telemetriekompositionen auf der Grundlage des einen oder der mehreren Telemetrieobjekte. Beispielsweise kann der Kompositionserzeuger 238 die erste Telemetriekomposition 700 aus den 7A - 7C auf der Grundlage der ersten Telemetrie-Objekte/Systeme 520P, 520Q, 520R, 520S aus den 7A - 7B erzeugen. Bei solchen Beispielen kann das Telemetrieobjekt 304 einem von den ersten TelemetrieObjekten/Systemen 520P, 520Q, 520R, 520S aus den 7A - 7B entsprechen.
-
In Block 914 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine Edge-Dienstkomposition auf der Grundlage der Ressourcen- und Telemetriekompositionen. Beispielsweise kann der Kompositionserzeuger 238 die dritte Ressourcenkomposition 620 aus 6C und die dritte Telemetriekomposition 720 aus 7C erzeugen. Bei solchen Beispielen kann der Kompositionserzeuger 238 die eine oder die mehreren ersten Kompositionen 146 aus 1 auf der Grundlage wenigstens einer von der dritten Ressourcenkomposition 620 oder der dritten Telemetriekomposition 720 erzeugen. Beispielsweise können die eine oder die mehreren ersten Kompositionen 146 einer Edge-Dienstkomposition des ersten Edge-Dienstes 140 entsprechen.
-
In Block 916 stellt die beispielhafte Telemetrie-Steuereinrichtung 130A-C fest, ob ein anderer Edge-Dienst für die Verarbeitung auszuwählen ist. Beispielsweise kann die Kompositionssteuereinrichtung 230 feststellen, ob der zweite Edge-Dienst 150 aus 2 für die Verarbeitung auszuwählen ist. Falls die beispielhafte Telemetrie-Steuereinrichtung 130A-C in Block 916 feststellt, dass ein anderer Edge-Dienst für die Verarbeitung auszuwählen ist, kehrt die Steuerung zu Block 902 zurück, um einen anderen Edge-Dienst für die Verarbeitung auszuwählen. Falls in Block 916 die beispielhafte Telemetrie-Steuereinrichtung 130A-C feststellt, dass kein anderer Edge-Dienst für die Verarbeitung auszuwählen ist, kehrt die Steuerung zu Block 808 der beispielhaften maschinenlesbaren Befehle 800 aus 8 zurück, um eine oder mehrere Umgebungskompositionen auf der Grundlage der einen oder der mehreren Edge-Dienstkompositionen zu erzeugen.
-
10 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle 1000 repräsentiert, die ausgeführt werden können, um die Telemetrie-Steuereinrichtung 130A-C aus den 1 und/oder 2 zu implementieren, um ein oder mehrere Ressourcenobjekte auf der Grundlage einer oder mehrerer Leistungsmetriken zu erzeugen. Die beispielhaften maschinenlesbaren Befehle 1000 aus 10 können ausgeführt werden, um Block 906 der beispielhaften maschinenlesbaren Befehle 900 aus 9 zu implementieren. Die beispielhaften maschinenlesbaren Befehle 1000 aus 10 beginnen in Block 1002, wo die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine Ressource auf eine oder mehrere Leistungsmetriken abbildet. Beispielsweise kann die Leistungsmetrik-Bestimmungseinrichtung 232 (2) ein FPGA, das in der einen oder den mehreren Ressourcen 149 aus 1 enthalten ist, auf eine oder mehrere Leistungsmetriken abbilden, die eine erste Leistungsmetrik aufweisen, welche die Anzahl der Threads (beispielsweise Verarbeitungs-Threads), die Anzahl der Kernels usw., die verwendet werden, repräsentiert.
-
In Block 1004 wählt die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine Leistungsmetrik für die Verarbeitung aus. Beispielsweise kann die Leistungsmetrik-Bestimmungseinrichtung 232 die erste Leistungsmetrik des FPGAs für die Verarbeitung auswählen.
-
In Block 1006 bildet die beispielhafte Telemetrie-Steuereinrichtung 130A-C die Leistungsmetrik auf eine Funktion der Ressource ab. Beispielsweise kann der Objekterzeuger 234 (2) die Anzahl der verwendeten Threads auf eine Thread-Ausführungsfunktion abbilden, die, wenn sie vom FPGA aufgerufen oder ausgeführt wird, einen oder mehrere Threads des FPGAs zur Ausführung einer Arbeitslast verwendet.
-
In Block 1008 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C auf der Grundlage der Funktion ein Ressourceninformationsobjekt (RIO). Beispielsweise kann der Objekterzeuger 234 das RIO 306 aus 3 auf der Grundlage der Thread-Ausführungsfunktion erzeugen. Bei solchen Beispielen kann der Objekterzeuger 234 das RIO 306 durch Erzeugen einer Datenstruktur auf der Grundlage der Thread-Ausfiihrungsfunktion erzeugen, wobei die Datenstruktur Befehle zum Aufrufen der RIO-Schnittstelle 308, um die erste Leistungsmetrik zu erhalten, eine Kennung der ersten Leistungsmetrik, einen Datentyp der ersten Leistungsmetrik, Datengenauigkeitsinformationen der ersten Leistungsmetrik usw. und/oder eine Kombination davon aufweisen kann.
-
In Block 1010 bildet die beispielhafte Telemetrie-Steuereinrichtung 130A-C die Leistungsmetrik auf ein Ressourcenereignis ab. Beispielsweise kann der Schnittstellenerzeuger 236 (2) die erste Leistungsmetrik auf ein Ereignis abbilden, das einem Zähler (beispielsweise einem Hardwarezähler, einem Softwarezähler) des FPGAs entspricht.
-
In Block 1012 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine RIO-Schnittstelle auf der Grundlage des Ressourcenereignisses. Beispielsweise kann der Schnittstellenerzeuger 236 die RIO-Schnittstelle 308 aus 3 auf der Grundlage des Zählers erzeugen. Bei solchen Beispielen kann der Schnittstellenerzeuger 236 die RIO-Schnittstelle 308 durch Einkapseln von Befehlen (beispielsweise NMON-Befehlen, PERF-Befehlen, SAR-Befehlen usw.) zum Abrufen eines Werts vom Zähler erzeugen.
-
In Block 1014 stellt die beispielhafte Telemetrie-Steuereinrichtung 130A-C fest, ob eine andere Leistungsmetrik zur Verarbeitung auszuwählen ist. Beispielsweise kann die Leistungsmetrik-Bestimmungseinrichtung 232 eine zweite Leistungsmetrik des FPGAs für die Verarbeitung auswählen. Falls die Telemetrie-Steuereinrichtung 130A-C in Block 1012 feststellt, dass eine andere Leistungsmetrik zur Verarbeitung auszuwählen ist, kehrt die Steuerung zu Block 1004 zurück, um eine andere Leistungsmetrik für die Verarbeitung auszuwählen. Falls die Telemetrie-Steuereinrichtung 130A-C in Block 1012 feststellt, dass keine andere Leistungsmetrik für die Verarbeitung auszuwählen ist, kehrt die Steuerung zu Block 908 der beispielhaften maschinenlesbaren Befehle 900 aus 9 zurück, um ein oder mehrere Telemetrieobjekte auf der Grundlage der einen oder der mehreren Leistungsmetriken zu erzeugen.
-
11 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle 1100 repräsentiert, die ausgeführt werden können, um die Telemetrie-Steuereinrichtung 130A-C aus den 1 und/oder 2 zu implementieren, um ein oder mehrere Telemetrieobjekte auf der Grundlage einer oder mehrerer Leistungsmetriken zu erzeugen. Die beispielhaften maschinenlesbaren Befehle 1100 aus 11 können ausgeführt werden, um Block 908 der beispielhaften maschinenlesbaren Befehle 900 aus 9 zu implementieren. Die beispielhaften maschinenlesbaren Befehle 1100 aus 11 beginnen in Block 1102, wo die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine oder mehrere Leistungsmetriken auf eine oder mehrere Funktionen einer Telemetrie-Ressource abbildet. Beispielsweise kann die Leistungsmetrik-Bestimmungseinrichtung 232 (2) eine erste Leistungsmetrik einer GPU auf eine Funktion einer Telemetrie-Ressource abbilden. Bei solchen Beispielen kann die Telemetrie-Ressource ein maschinenlesbarer Befehl sein, um das RIO 306 aus 3 aufzurufen, Telemetriedaten von der Ressource 310 aus 3 zu erhalten.
-
In Block 1104 wählt die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine Leistungsmetrik für die Verarbeitung aus. Beispielsweise kann die Leistungsmetrik-Bestimmungseinrichtung 232 die erste Leistungsmetrik der GPU für die Verarbeitung auswählen.
-
In Block 1106 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C ein Telemetrieinformationsobjekt (TIO) auf der Grundlage der Telemetrie-Ressource. Beispielsweise kann der Objekterzeuger 234 (2) das TIO 312 aus 3 auf der Grundlage der ersten Leistungsmetrik erzeugen. Bei solchen Beispielen kann der Objekterzeuger 234 das TIO 312 durch Erzeugen einer Datenstruktur auf der Grundlage der ersten Leistungsmetrik erzeugen, wobei die Datenstruktur Befehle zum Aufrufen des RIOs 306, eine Kennung der ersten Leistungsmetrik, einen Datentyp der ersten Leistungsmetrik, Datengenauigkeitsinformationen der ersten Leistungsmetrik usw. und/oder eine Kombination davon aufweisen kann.
-
In Block 1108 bildet die beispielhafte Telemetrie-Steuereinrichtung 130A-C die Leistungsmetrik auf einen Telemetrieaufruf ab. Beispielsweise kann der Schnittstellenerzeuger 236 (2) die erste Leistungsmetrik auf einen Aufruf einer Netzschnittstelle, eines Webservers, einer API usw. abbilden.
-
In Block 1110 erzeugt die beispielhafte Telemetrie-Steuereinrichtung 130A-C eine Telemetrieinformationsobjekt-Schnittstelle (TIO) auf der Grundlage des Telemetrieaufrufs. Beispielsweise kann der Schnittstellenerzeuger 236 die TIO-Schnittstelle 314 aus 3 auf der Grundlage der Netzschnittstelle, des Webservers, der API usw. und/oder einer Kombination davon erzeugen. Bei solchen Beispielen kann der Schnittstellenerzeuger 236 die TIO-Schnittstelle 314 durch Einkapseln maschinenlesbarer Befehle erzeugen, die, wenn sie ausgeführt oder aufgerufen werden, das TIO 312 aufrufen können, Telemetriedaten vom RIO 306 zu erhalten.
-
In Block 1112 stellt die beispielhafte Telemetrie-Steuereinrichtung 130A-C fest, ob eine andere Leistungsmetrik zur Verarbeitung auszuwählen ist. Beispielsweise kann die Leistungsmetrik-Bestimmungseinrichtung 232 eine zweite Leistungsmetrik der GPU für die Verarbeitung auswählen. Falls die Telemetrie-Steuereinrichtung 130A-C in Block 1112 feststellt, dass eine andere Leistungsmetrik zur Verarbeitung auszuwählen ist, kehrt die Steuerung zu Block 1104 zurück, um eine andere Leistungsmetrik für die Verarbeitung auszuwählen. Falls die beispielhafte Telemetrie-Steuereinrichtung 130A-C in Block 1112 feststellt, dass keine andere Leistungsmetrik für die Verarbeitung auszuwählen ist, kehrt die Steuerung zu Block 910 der beispielhaften maschinenlesbaren Befehle 900 aus 9 zurück, um eine oder mehrere Ressourcenkompositionen auf der Grundlage des einen oder der mehreren Ressourcenobjekte zu erzeugen.
-
12 ist ein Flussdiagramm, das beispielhafte maschinenlesbare Befehle 1200 repräsentiert, die ausgeführt werden können, um das Telemetrieobjekt 304 aus den 3, 4 und/oder 5 und/oder allgemeiner das eine oder die mehreren ausführbaren Programme 137, 147 aus 1 zu implementieren, um die Telemetriedaten 136A-C aus 1 zu erzeugen. Die beispielhaften maschinenlesbaren Befehle 1200 aus 12 beginnen in Block 1202, wo das beispielhafte Telemetrieobjekt 304 feststellt, ob ein oder mehrere Auslöser aufgerufen wurden. Beispielsweise kann die Steuerebene 410 (4) feststellen, ob wenigstens einer von den einen oder den mehreren Erzeugungsauslösern 412, den einen oder den mehreren Sammelauslösern 414, den einen oder den mehreren Verbrauchsauslösern 416 oder den einen oder den mehreren Kompositionsauslösern 418 aufgerufen und/oder auf andere Weise ausgelöst wurde.
-
Falls das beispielhafte Telemetrieobjekt 304 in Block 1202 feststellt, dass kein Auslöser aufgerufen wurde, wartet die Steuerung in Block 1202 (beispielsweise bis ein Auslöser aufgerufen wurde). Falls das beispielhafte Telemetrieobjekt 304 in Block 1202 feststellt, dass ein oder mehrere Auslöser aufgerufen wurden, stellt das Telemetrieobjekt 304 in Block 1204 fest, ob der eine oder die mehreren aufgerufenen Auslöser ein oder mehrere Sammelauslöser sind. Beispielsweise kann die Steuerebene 410 feststellen, dass einer von den einen oder den mehreren Sammelauslösern 414 aus 4 ausgelöst worden ist.
-
Falls das beispielhafte Telemetrieobjekt 304 in Block 1204 feststellt, dass der eine oder die mehreren aufgerufenen Auslöser keine Sammelauslöser sind, wird die Steuerung in Block 1208 fortgesetzt, um festzustellen, ob der eine oder die mehreren aufgerufenen Auslöser Verbrauchsauslöser sind. Falls das beispielhafte Telemetrieobjekt 304 in Block 1204 feststellt, dass der eine oder die mehreren aufgerufenen Auslöser Sammelauslöser sind, liest das Telemetrieobjekt 304 in Block 1206 durch direkte Messungen erzeugte Telemetriedaten. Beispielsweise kann die Datenebene 420 Pro-Leistungsmetrikdaten von einem Zähler der Ressource 310 über das Ressourcenobjekt 302 aus 3 erhalten. Bei solchen Beispielen kann die Datenebene 420 die Roh-Leistungsmetrikdaten in den Roh-Leistungsmetrikdaten 442 der Leistungsmetrikdaten 440 aus 4 speichern.
-
In Block 1208 stellt das beispielhafte Telemetrieobjekt 304 fest, ob der eine oder die mehreren aufgerufenen Auslöser Verbrauchsauslöser sind. Beispielsweise kann die Steuerebene 410 feststellen, dass einer von den einen oder den mehreren Verbrauchsauslösern 416 aus 4 ausgelöst worden ist.
-
Falls das beispielhafte Telemetrieobjekt 304 in Block 1208 feststellt, dass der eine oder die mehreren aufgerufenen Auslöser keine Verbrauchsauslöser sind, wird die Steuerung in Block 1212 fortgesetzt, um festzustellen, ob der eine oder die mehreren aufgerufenen Auslöser Kompositionsauslöser sind. Falls das beispielhafte Telemetrieobjekt 304 in Block 1208 feststellt, dass der eine oder die mehreren aufgerufenen Auslöser keine Verbrauchsauslöser sind, liest das Telemetrieobjekt 304 in Block 1210 auf der Grundlage zeitsynchronisierter Ereignisse erzeugte Telemetriedaten. Beispielsweise kann die Datenebene 420 zu einer ersten Zeit erste Roh-Leistungsmetrikdaten vom vierten RessourcenObjekt/System 510S aus den 6A - 6B erhalten, zu einer zweiten Zeit nach der ersten Zeit zweite Roh-Leistungsmetrikdaten vom zweiten Ressourcen-Objekt/System 510Q aus den 6A - 6B erhalten und/oder zu einer dritten Zeit nach der zweiten Zeit dritte Roh-Leistungsmetrikdaten vom ersten Ressourcen-Objekt/System 510P aus den 6A - 6B erhalten. Bei solchen Beispielen kann die Datenebene 420 die ersten bis dritten Roh-Leistungsmetrikdaten in den Roh-Leistungsmetrikdaten 442 der Leistungsmetrikdaten 440 aus 4 speichern.
-
In Block 1212 stellt das beispielhafte Telemetrieobjekt 304 fest, ob der eine oder die mehreren aufgerufenen Auslöser Kompositionsauslöser sind. Beispielsweise kann die Steuerebene 410 feststellen, dass einer von den einen oder den mehreren Kompositionsauslösern 418 aus 4 ausgelöst worden ist.
-
Falls das beispielhafte Telemetrieobjekt 304 in Block 1212 feststellt, dass der eine oder die mehreren aufgerufenen Auslöser keine Kompositionsauslöser sind, wird die Steuerung in Block 1216 fortgesetzt, um festzustellen, ob der eine oder die mehreren aufgerufenen Auslöser Erzeugungsauslöser sind. Falls das beispielhafte Telemetrieobjekt 304 in Block 1212 feststellt, dass der eine oder die mehreren aufgerufenen Auslöser Kompositionsauslöser sind, liest das Telemetrieobjekt 304 in Block 1214 auf der Grundlage bestimmter Leistungsmetriken erzeugte Telemetriedaten. Beispielsweise kann die Kompositionsebene 450 einen Teil der bestimmten Leistungsmetrikdaten 444 auf der Grundlage eines Teils der Roh-Leistungsmetrikdaten 442 durch Ausführen und/oder anderweitiges Anwenden einer oder mehrerer der Formeln 452, der Prädikate 454 und/oder der Filter 456 auf den Teil der Roh-Leistungsmetrikdaten 442 erzeugen.
-
In Block 1216 stellt das beispielhafte Telemetrieobjekt 304 fest, ob der eine oder die mehreren aufgerufenen Auslöser Erzeugungsauslöser sind. Beispielsweise kann die Steuerebene 410 feststellen, dass einer von den einen oder den mehreren Erzeugungsauslösern 412 aus 4 ausgelöst worden ist.
-
Falls das beispielhafte Telemetrieobjekt 304 in Block 1216 feststellt, dass der eine oder die mehreren aufgerufenen Auslöser keine Erzeugungsauslöser sind, kehrt die Steuerung zu Block 1202 zurück, um festzustellen, ob ein Auslöser aufgerufen wurde. Falls das beispielhafte Telemetrieobjekt 304 in Block 1216 feststellt, dass der eine oder die mehreren aufgerufenen Auslöser Erzeugungsauslöser sind, liest das Telemetrieobjekt 304 in Block 1218 durch das TIO eines Edge-Dienstes erzeugte Telemetriedaten. Beispielsweise kann die Ausgabeebene 460 (4) eines oder mehrere der TIO-Ereignisse 462 aus 4 erzeugen, die angeben, ob ein oder mehrere Teile der Roh-Leistungsmetrikdaten 442, der bestimmten Leistungsmetrikdaten 444 usw. für den Zugriff, das Abrufen usw. durch einen Datenverbraucher verfügbar sind.
-
In Block 1220 sendet das beispielhafte Telemetrieobjekt 304 Telemetriedaten zu einem Datenverbraucher. Die Ausgabeebene 460 kann die Datenverbraucherdaten 464 beispielsweise zu einem oder mehreren der Server 112, 114, 116 der Cloud-Umgebung 105 aus 1, einer oder mehreren der Endpunktvorrichtungen 160, 165, 170, 175, 180, 185 der Endpunktumgebung 115 aus 1 usw. und/oder einer Kombination davon übertragen. Bei anderen Beispielen kann die Ausgabeebene 460 die Datenverbraucherdaten 464 dem ersten Edge-Dienst 140 zur Speicherung in der ersten ES-Datenbank 148 aus 1 bereitstellen. Ansprechend auf die Übertragung der Telemetriedaten zum Datenverbraucher in Block 1220 stellt das beispielhafte Telemetrieobjekt 304 fest, ob zu identifizieren ist, dass ein oder mehrere Auslöser aufgerufen wurden. Beispielsweise kann die Steuerebene 410 (4) feststellen, dass eine Feststellung oder Analyse neu auszuführen ist, ob zumindest einer von dem einen oder den mehreren Erzeugungsauslösern 412, dem einen oder den mehreren Sammelauslösern 414, dem einen oder den mehreren Verbrauchsauslösern 416 oder dem einen oder den mehreren Kompositionsauslösern 418 aufgerufen worden ist.
-
Falls das Telemetrieobjekt 304 in Block 1222 feststellt, dass zu identifizieren ist, ob ein oder mehrere Auslöser aufgerufen wurden, kehrt die Steuerung zu Block 1202 zurück, um festzustellen, ob ein oder mehrere Auslöser aufgerufen worden sind, und andernfalls werden die beispielhaften maschinenlesbaren Befehle 1200 aus 12 abgeschlossen.
-
13 ist ein Blockdiagramm einer beispielhaften Prozessorplattform 1300, die aufgebaut ist, um die Befehle aus den 8 - 12 auszuführen, um die beispielhafte Telemetrie-Steuereinrichtung 130A-C aus den 1 und/oder 2 zu implementieren. Die Prozessorplattform 1300 kann beispielsweise ein Server, ein Personalcomputer, eine Workstation, eine selbstlernende Maschine (beispielsweise ein neuronales Netz), eine mobile Vorrichtung (beispielsweise ein Mobiltelefon, ein Smartphone, ein Tablet in der Art eines iPads™), ein Internetgerät, eine Spielkonsole, eine Settop-Box, ein Headset oder eine andere tragbare Vorrichtung oder ein anderer Typ einer Rechenvorrichtung sein.
-
Die Prozessorplattform 1300 des erläuterten Beispiels weist einen Prozessor 1312 auf. Der Prozessor 1312 des erläuterten Beispiels ist Hardware. Beispielsweise kann der Prozessor 1312 durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, Mikroprozessoren, GPU, DSP oder Steuereinrichtungen aus einer gewünschten Familie oder von einem gewünschten Hersteller implementiert sein. Der Hardwareprozessor kann eine halbleiterbasierte (beispielsweise siliciumbasierte) Vorrichtung sein. Bei diesem Beispiel implementiert der Prozessor 1312 die beispielhafte Ressourcenabfrage-Steuereinrichtung 220, die beispielhafte Kompositionssteuereinrichtung 230, die beispielhafte Leistungsmetrik-Bestimmungseinrichtung 232, den beispielhaften Objekterzeuger 234, den beispielhaften Schnittstellenerzeuger 236, den beispielhaften Kompositionserzeuger 238, die beispielhafte Ressourcenverfügbarkeits-Steuereinrichtung 240 und die beispielhafte Steuereinrichtung 250 für ausführbare Programme aus 2.
-
Der Prozessor 1312 aus dem erläuterten Beispiel weist einen lokalen Speicher 1313 (beispielsweise einen Cache) auf. Der Prozessor 1312 aus dem erläuterten Beispiel steht über einen Bus 1318 in Kommunikation mit einem Hauptspeicher einschließlich eines flüchtigen Speichers 1314 und eines nichtflüchtigen Speichers 1316. Der flüchtige Speicher 1314 kann durch einen synchronen dynamischen Direktzugriffsspeicher (SDRAM), einen dynamischen Direktzugriffsspeicher (DRAM), einen dynamischen RAMBUS®-Direktzugriffsspeicher (RDRAM®) und/oder einen anderen Typ einer Direktzugriffsspeichervorrichtung implementiert sein. Der nichtflüchtige Speicher 1316 kann durch einen Flash-Speicher und/oder einen anderen gewünschten Typ einer Speichervorrichtung implementiert sein. Der Zugriff auf den Hauptspeicher 1314, 1316 wird durch eine Speichersteuereinrichtung gesteuert.
-
Die Prozessorplattform 1300 aus dem erläuterten Beispiel weist auch eine Schnittstellenschaltung 1320 auf. Die Schnittstellenschaltung 1320 kann durch einen beliebigen Schnittstellenstandardtyp in der Art einer Ethernetschnittstelle, eines universellen seriellen Busses (USB), einer Bluetooth®-Schnittstelle, einer Nahfeldkommunikations(NFC)-Schnittstelle und/oder einer PCI-Expressschnittstelle implementiert sein. Bei diesem Beispiel implementiert die Schnittstellenschaltung 1320 die beispielhafte Netzschnittstelle 210 aus 2.
-
Beim erläuterten Beispiel sind eine oder mehrere Eingabevorrichtungen 1322 mit der Schnittstellenschaltung 1320 verbunden. Die eine oder die mehreren Eingabevorrichtungen 1322 ermöglichen es einem Benutzer, Daten und/oder Befehle in den Prozessor 1312 einzugeben. Die eine oder die mehreren Eingabevorrichtungen 1322 können beispielsweise durch einen Audiosensor, ein Mikrofon, eine Kamera (Fotokamera oder Videokamera), eine Tastatur, eine Taste, eine Maus, einen Touchscreen, ein Trackpad, einen Trackball, eine Isopoint-Vorrichtung und/oder ein Spracherkennungssystem implementiert sein.
-
Eine oder mehrere Ausgabevorrichtungen 1324 sind auch mit der Schnittstellenschaltung 1320 des erläuterten Beispiels verbunden. Die Ausgabevorrichtungen 1324 können beispielsweise durch Anzeigevorrichtungen (beispielsweise eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhrenanzeige (CRT), eine In-Place-Switching(IPS)-Anzeige, einen Touchscreen usw.), eine Berührungsausgabevorrichtung, einen Drucker und/oder einen Lautsprecher implementiert sein. Die Schnittstellenschaltung 1320 des erläuterten Beispiels weist demgemäß typischerweise eine Graphiktreiberkarte, einen Graphiktreiberchip und/oder einen Graphiktreiberprozessor auf.
-
Die Schnittstellenschaltung 1320 des erläuterten Beispiels weist auch eine Kommunikationsvorrichtung in der Art eines Senders, eines Empfängers, eines Sendeempfängers, eines Modems, eines Heim-Gateways, eines Drahtloszugangspunkts und/oder einer Netzschnittstelle zur Erleichterung des Datenaustausches mit externen Maschinen (beispielsweise Rechenvorrichtungen irgendeiner Art) über ein Netz 1326 auf. Die Kommunikation kann beispielsweise über eine Ethernetverbindung, eine Digitale-Teilnehmerleitung-(DSL)-Verbindung, eine Telefonleitungsverbindung, ein Koaxialkabelsystem, ein Satellitensystem, ein Sichtlinien-Drahtlossystem, ein Mobiltelefonsystem usw. erfolgen.
-
Die Prozessorplattform 1300 aus dem erläuterten Beispiel weist auch eine oder mehrere Massenspeichervorrichtungen 1328 zum Speichern von Software und/oder Daten auf. Beispiele solcher Massenspeichervorrichtungen 1328 umfassen Diskettenlaufwerke, Festplattenlaufwerke, CD-Laufwerke, Blu-ray-Laufwerke, Redundant-Array-of-Independent-Disk(RAID)-Systeme und Digital-Versatile-Disk(DVD)-Laufwerke.
-
In den 8 - 12 dargestellte beispielhafte maschinenausführbare Befehle 1332 können in der Massenspeichervorrichtung 1328, im flüchtigen Speicher 1314, im nichtflüchtigen Speicher 1316 und/oder auf einem entfernbaren nichtflüchtigen computerlesbaren Speichermedium in der Art einer CD oder DVD gespeichert werden.
-
14 ist ein Blockdiagramm einer beispielhaften Prozessorplattform 1400, die aufgebaut ist, um die Befehle aus den 8 - 12 auszuführen, um den einen oder die mehreren Edge-Dienste 140, 150 aus 1 zu implementieren. Die Prozessorplattform 1400 kann beispielsweise ein Server, ein Personalcomputer, eine Workstation, eine selbstlernende Maschine (beispielsweise ein neuronales Netz), eine mobile Vorrichtung (beispielsweise ein Mobiltelefon, ein Smartphone, ein Tablet in der Art eines iPads™), ein Internetgerät, eine Spielkonsole, eine Settop-Box, ein Headset oder eine andere tragbare Vorrichtung oder ein anderer Typ einer Rechenvorrichtung sein.
-
Die Prozessorplattform 1400 des erläuterten Beispiels weist einen Prozessor 1412 auf. Der Prozessor 1412 des erläuterten Beispiels ist Hardware. Beispielsweise kann der Prozessor 1412 durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, Mikroprozessoren, GPU, DSP oder Steuereinrichtungen aus einer gewünschten Familie oder von einem gewünschten Hersteller implementiert sein. Der Hardwareprozessor kann eine halbleiterbasierte (beispielsweise siliciumbasierte) Vorrichtung sein. Bei diesem Beispiel implementiert der Prozessor 1012 die beispielhafte Telemetrie-Steuereinrichtung 130B, 130C aus den 1 und/oder 2, den beispielhaften Orchestrator 142, 152, den beispielhaften Planer 144, 154, das beispielhafte ausführbare Programm 137, 139, die eine oder die mehreren beispielhaften Kompositionen 146, 156 und die eine oder die mehreren beispielhaften Ressourcen 149, 159 aus 1.
-
Der Prozessor 1412 aus dem erläuterten Beispiel weist einen lokalen Speicher 1413 (beispielsweise einen Cache) auf. Der Prozessor 1412 aus dem erläuterten Beispiel steht über einen Bus 1418 in Kommunikation mit einem Hauptspeicher einschließlich eines flüchtigen Speichers 1414 und eines nichtflüchtigen Speichers 1416. Der flüchtige Speicher 1414 kann durch SDRAM, DRAM, RDRAM® und/oder einen anderen Typ einer Direktzugriffsspeichervorrichtung implementiert werden. Der nichtflüchtige Speicher 1416 kann durch einen Flash-Speicher und/oder einen anderen gewünschten Typ einer Speichervorrichtung implementiert sein. Der Zugriff auf den Hauptspeicher 1414, 1416 wird durch eine Speichersteuereinrichtung gesteuert.
-
Die Prozessorplattform 1400 aus dem erläuterten Beispiel weist auch eine Schnittstellenschaltung 1420 auf. Die Schnittstellenschaltung 1420 kann durch einen beliebigen Schnittstellenstandardtyp in der Art einer Ethernetschnittstelle, einer USB-Schnittstelle, einer Bluetooth®-Schnittstelle, einer NFC-Schnittstelle und/oder einer PCI-Expressschnittstelle implementiert sein.
-
Beim erläuterten Beispiel sind eine oder mehrere Eingabevorrichtungen 1422 mit der Schnittstellenschaltung 1420 verbunden. Die eine oder die mehreren Eingabevorrichtungen 1422 ermöglichen es einem Benutzer, Daten und/oder Befehle in den Prozessor 1412 einzugeben. Die eine oder die mehreren Eingabevorrichtungen 1422 können beispielsweise durch einen Audiosensor, ein Mikrofon, eine Kamera (Photokamera oder Videokamera), eine Tastatur, eine Taste, eine Maus, einen Touchscreen, ein Trackpad, einen Trackball, eine Isopoint-Vorrichtung und/oder ein Spracherkennungssystem implementiert sein.
-
Eine oder mehrere Ausgabevorrichtungen 1424 sind auch mit der Schnittstellenschaltung 1420 des erläuterten Beispiels verbunden. Die Ausgabevorrichtungen 1424 können beispielsweise durch Anzeigevorrichtungen (beispielsweise eine LED-, OLED-, LCD-, CRT-Anzeige, IPS-Anzeige, einen Touchscreen usw.), eine Berührungsausgabevorrichtung, einen Drucker und/oder einen Lautsprecher implementiert werden. Die Schnittstellenschaltung 1420 des erläuterten Beispiels weist demgemäß typischerweise eine Graphiktreiberkarte, einen Graphiktreiberchip und/oder einen Graphiktreiberprozessor auf.
-
Die Schnittstellenschaltung 1420 des erläuterten Beispiels weist auch eine Kommunikationsvorrichtung in der Art eines Senders, eines Empfängers, eines Sendeempfängers, eines Modems, eines Heim-Gateways, eines Drahtloszugangspunkts und/oder einer Netzschnittstelle zur Erleichterung des Datenaustausches mit externen Maschinen (beispielsweise Rechenvorrichtungen irgendeiner Art) über ein Netz 1426 auf. Die Kommunikation kann beispielsweise über eine Ethernetverbindung, eine DSL-Verbindung, eine Telefonleitungsverbindung, ein Koaxialkabelsystem, ein Satellitensystem, ein Sichtlinien-Drahtlossystem, ein Mobiltelefonsystem usw. erfolgen.
-
Die Prozessorplattform 1400 aus dem erläuterten Beispiel weist auch eine oder mehrere Massenspeichervorrichtungen 1428 zum Speichern von Software und/oder Daten auf. Beispiele dieser Massenspeichervorrichtungen 1428 umfassen Diskettenlaufwerke, Festplattenlaufwerke, Compact-Disk-Laufwerke, Blu-ray-Disk-Laufwerke, RAID Systeme und DVD-Laufwerke. Bei diesem Beispiel implementieren die eine oder die mehreren Massenspeichervorrichtungen 1428 die ES-Datenbanken 148, 158 und die Telemetriedaten 136B, 136C aus 1.
-
In den 8 - 12 dargestellte beispielhafte maschinenausführbare Befehle 1432 können in der Massenspeichervorrichtung 1428, im flüchtigen Speicher 1414, im nichtflüchtigen Speicher 1416 und/oder auf einem entfernbaren nichtflüchtigen computerlesbaren Speichermedium in der Art einer CD oder DVD gespeichert werden. Zusätzlich oder alternativ können die Ressourcen 149, 159 wenigstens einen vom lokalen Speicher 1413, vom flüchtigen Speicher 1414, vom nichtflüchtigen Speicher 1416, vom Bus 1418, von der Schnittstelle 1420, von der einen oder den mehreren Eingabevorrichtungen 1422, von der einen oder den mehreren Ausgabevorrichtungen 1424 oder von der einen oder den mehreren Massenspeichervorrichtungen 1428 aufweisen und/oder diesen auf andere Weise entsprechen.
-
Anhand des vorstehend Erwähnten wird verständlich geworden sein, das beispielhafte Verfahren, Vorrichtungen und Herstellungsartikel offenbart wurden, welche die Verteilung von Edge-Rechenarbeitslasten auf der Grundlage aggregierter Telemetriedaten in Zusammenhang mit Edge-Diensten einer Edge-Umgebung verbessern. Die offenbarten Verfahren, Vorrichtungen und Herstellungsartikel verbessern die Orchestrierung in Edge-Clouds, Edge-Umgebungen usw. durch Erzeugen und/oder anderweitiges Bestimmen zeitlich festgelegter Telemetriedaten entsprechend wenigstens einer von (1) einer Auslastung einer oder mehrerer Ressourcen in Zusammenhang mit einem Edge-Dienst oder (2) einer Effizienz, mit der diese eine oder diese mehreren Ressourcen die ihnen auferlegten Anforderungen erfüllen können. Vorteilhafterweise verbessern die offenbarten Verfahren, Vorrichtungen und Herstellungsartikel die Art, in der Edge-Dienste die Anforderungen geringer Latenz und hoher Bandbreite von Endpunktvorrichtungen durch Verteilen von Edge-Rechenarbeitslasten auf Edge-Dienste, die eine oder mehrere verfügbare Ressourcen aufweisen, erfüllen können, wobei die eine oder die mehreren verfügbaren Ressourcen auf der Grundlage hier offenbarter Telemetriedatenaggregationstechniken identifiziert werden können. Die offenbarten Verfahren, Vorrichtungen und Herstellungsartikel verbessern die Effizienz der Verwendung einer Rechenvorrichtung durch Zuordnen von Edge-Rechenarbeitslasten zu einer oder mehreren verfügbaren Ressourcen der Rechenvorrichtung oder durch Leiten von Edge-Rechenarbeitslasten von einer stark belasteten oder zu stark ausgelasteten Rechenvorrichtung fort. Die offenbarten Verfahren, Vorrichtungen und Herstellungsartikel betreffen demgemäß eine oder mehrere Verbesserungen der Funktionsweise eines Computers.
-
Hier sind beispielhafte Verfahren, Vorrichtungen, Systeme und Herstellungsartikel zum Aggregieren von Telemetriedaten in einer Edge-Umgebung offenbart. Weitere Beispiele und Kombinationen davon werden nachstehend angegeben.
-
Beispiel 1 weist eine Vorrichtung zum Aggregieren von Telemetriedaten in einer Edge-Umgebung auf, wobei die Vorrichtung Folgendes umfasst: wenigstens einen Prozessor und einen Speicher, der Befehle aufweist, die, wenn sie ausgeführt werden, den wenigstens einen Prozessor veranlassen, wenigstens Folgendes auszuführen: Erzeugen einer Komposition für einen Edge-Dienst in der Edge-Umgebung, wobei die Komposition eine erste Schnittstelle zum Erhalten der Telemetriedaten repräsentiert, die Telemetriedaten Ressourcen des Edge-Dienstes zugeordnet sind und die Telemetriedaten eine Leistungsmetrik aufweisen, Erzeugen eines Ressourcenobjekts auf der Grundlage der Leistungsmetrik, wobei das Ressourcenobjekt eine zweite Schnittstelle repräsentiert und die zweite Schnittstelle die Leistungsmetrik von einer ersten der Ressourcen erhalten soll, Erzeugen eines Telemetrieobjekts auf der Grundlage der Leistungsmetrik, wobei das Telemetrieobjekt eine dritte Schnittstelle repräsentiert und die dritte Schnittstelle die Leistungsmetrik vom Ressourcenobjekt erhalten soll, und Erzeugen eines ausführbaren Telemetrieprogramms auf der Grundlage der Komposition, wobei die Komposition wenigstens eines vom Ressourcenobjekt oder vom Telemetrieobjekt aufweist, das ausführbare Telemetrieprogramm die Telemetriedaten ansprechend darauf erzeugen soll, dass der Edge-Dienst eine Rechenaufgabe ausführt, und die Rechenaufgabe auf der Grundlage der Telemetriedaten auf den Edge-Dienst verteilt wird.
-
Beispiel 2 weist die Vorrichtung nach Beispiel 1 auf, wobei die erste Ressource eine Hardware-Ressource ist und der wenigstens eine Prozessor Folgendes ausführen soll: Abbilden der Leistungsmetrik auf eine Funktion der Hardware-Ressource, wobei die Leistungsmetrik auf der Grundlage der die Funktion ausführenden Hardware-Ressource bestimmt wird, Abbilden der Leistungsmetrik auf ein von der Hardware-Ressource erzeugtes Ereignis, wobei das Ereignis wenigstens einem von einem Hardwarezähler oder einem Softwarezähler entspricht, Erzeugen einer Ressourceninformationsobjekt(RIO)-Schnittstelle auf der Grundlage des Ereignisses, wobei die RIO-Schnittstelle einen ersten Befehl zum Erhalten der Leistungsmetrik von der Hardware-Ressource repräsentiert, und Erzeugen eines RIOs auf der Grundlage der Funktion, wobei das RIO einen zweiten Befehl zum Erhalten der Leistungsmetrik von der RIO-Schnittstelle repräsentiert.
-
Beispiel 3 weist die Vorrichtung nach Beispiel 1 auf, wobei die erste Ressource eine Hardware-Ressource ist und der wenigstens eine Prozessor Folgendes ausführen soll: Abbilden der Leistungsmetrik auf eine Funktion einer Telemetrie-Ressource, wobei die Telemetrie-Ressource einen ersten Befehl zum Erhalten von Telemetriedaten vom Ressourcenobjekt repräsentiert und die Leistungsmetrik auf der Grundlage der eine Rechenaufgabe ausführenden Hardware-Ressource bestimmt wird, Abbilden der Leistungsmetrik auf eine Anwendungsprogrammierschnittstelle (API), Erzeugen einer Telemetrieinformationsobjekt(TIO)-Schnittstelle auf der Grundlage der API, wobei die TIO-Schnittstelle einen zweiten Befehl zum Erhalten einer Anforderung der Telemetriedaten von einer Endpunktumgebung repräsentiert, und Erzeugen eines TIOs auf der Grundlage des ersten Befehls, wobei das TIO einen dritten Befehl zum Erhalten der Leistungsmetrik vom Ressourcenobjekt repräsentiert.
-
Beispiel 4 weist die Vorrichtung nach Beispiel 1 auf, wobei die erste Ressource eine Hardware-Ressource oder eine Software-Ressource ist, die Komposition ein oder mehrere Ressourcenmodelle, einschließlich eines ersten Ressourcenmodells, aufweist und der wenigstens eine Prozessor Folgendes ausführen soll: Erzeugen eines ersten Ressourcenobjekts durch Virtualisieren der Hardware-Ressource oder der Software-Ressource, Erzeugen eines ersten Telemetrieobjekts, das einen oder mehrere Befehle zum Aufrufen des ersten Ressourcenobjekts repräsentiert, um eine der Hardware-Ressource oder der Software-Ressource zugeordnete Leistungsmetrik zu erhalten, Feststellen, dass ein zweites Ressourcenobjekt vom ersten Ressourcenobjekt abhängt, und, ansprechend auf die Feststellung, Zuweisen eines zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, wobei das zweite Telemetrieobjekt dem zweiten Ressourcenobjekt entspricht.
-
Beispiel 5 weist die Vorrichtung nach Beispiel 4 auf, wobei der eine oder die mehreren Befehle einen ersten Befehl aufweisen und der wenigstens eine Prozessor Folgendes ausführen soll: ansprechend auf das Erhalten eines zweiten Befehls zum Erhalten der Telemetriedaten von der Komposition, Aufrufen des ersten Telemetrieobjekts, um einen dritten Befehl zum Erhalten der Telemetriedaten vom ersten Ressourcenobjekt zu erzeugen, und, ansprechend auf das Erhalten des ersten Befehls, Aufrufen des ersten Ressourcenobjekts, die Telemetriedaten von der Hardware-Ressource oder der Software-Ressource zu erhalten.
-
Beispiel 6 weist die Vorrichtung nach Beispiel 1 auf, wobei die Komposition eine erste Komposition ist, das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen, das ausführbare Telemetrieprogramm ein erstes ausführbares Programm ist und der wenigstens eine Prozessor Folgendes ausführen soll: Erzeugen eines zweiten Ressourcenobjekts und eines zweiten Telemetrieobjekts auf der Grundlage der zweiten Ressource, ansprechend auf die Feststellung, dass das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist, Erzeugen einer zweiten Komposition durch Zuweisen des zweiten Ressourcenobjekts als vom ersten Ressourcenobjekt abhängig, und Zuweisen des zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, und Erzeugen eines zweiten ausführbaren Programms auf der Grundlage der ersten Komposition, wobei das zweite ausführbare Programm die Telemetriedaten erzeugen soll.
-
Beispiel 7 weist die Vorrichtung nach Beispiel 1 auf, wobei das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen, die Telemetriedaten erste Telemetriedaten, zweite Telemetriedaten und dritte Telemetriedaten aufweisen und der wenigstens eine Prozessor Folgendes ausführen soll: Erzeugen eines zweiten Ressourcenobjekts und eines zweiten Telemetrieobjekts auf der Grundlage der zweiten Ressource, wobei das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist und das zweite Telemetrieobjekt vom ersten Telemetrieobjekt abhängig ist, Erzeugen der zweiten Telemetriedaten durch Aufrufen des zweiten Telemetrieobjekts, ansprechend auf die Erzeugung der zweiten Telemetriedaten, Erzeugen der ersten Telemetriedaten durch Aufrufen des ersten Telemetrieobjekts, und Bestimmen der dritten Telemetriedaten auf der Grundlage der ersten Telemetriedaten und der zweiten Telemetriedaten.
-
Beispiel 8 weist die Vorrichtung nach Beispiel 7 auf, wobei die Leistungsmetrik eine erste Leistungsmetrik ist, die ersten Telemetriedaten die erste Leistungsmetrik aufweisen, die zweiten Telemetriedaten eine zweite Leistungsmetrik aufweisen und die dritten Telemetriedaten eine dritte Leistungsmetrik aufweisen und der wenigstens eine Prozessor Folgendes ausführen soll: Bestimmen eines Erste-Leistungsmetrik-Codes auf der Grundlage der ersten Leistungsmetrik, eines Zweite-Leistungsmetrik-Codes auf der Grundlage der zweiten Leistungsmetrik und eines Dritte-Leistungsmetrik-Codes auf der Grundlage der dritten Leistungsmetrik und, ansprechend auf das Aufrufen eines Auslösers, der angibt, dass die erste Leistungsmetrik und die zweite Leistungsmetrik erzeugt werden, Abbilden des Erste-Leistungsmetrik-Codes auf eine erste Speicherstelle, welche die erste Leistungsmetrik speichert, Abbilden des Zweite-Leistungsmetrik-Codes auf eine zweite Speicherstelle, welche die zweite Leistungsmetrik speichert, Bestimmen der dritten Leistungsmetrik auf der Grundlage der ersten Leistungsmetrik und der zweiten Leistungsmetrik, und, ansprechend auf die Abbildung des Dritte-Leistungsmetrik-Codes auf eine dritte Speicherstelle, Speichern der dritten Leistungsmetrik an der dritten Speicherstelle.
-
Beispiel 9 weist ein nichtflüchtiges computerlesbares Speichermedium auf, das Befehle umfasst, die, wenn sie ausgeführt werden, eine Maschine veranlassen, wenigstens Folgendes auszuführen: Erzeugen einer Komposition für einen Edge-Dienst in einer Edge-Umgebung, wobei die Komposition eine erste Schnittstelle zum Erhalten von Telemetriedaten repräsentiert, die Telemetriedaten Ressourcen des Edge-Dienstes zugeordnet werden und die Telemetriedaten eine Leistungsmetrik aufweisen, wobei die Befehle die Komposition durch Folgendes erzeugen sollen: Erzeugen eines Ressourcenobjekts auf der Grundlage der Leistungsmetrik, wobei das Ressourcenobjekt eine zweite Schnittstelle repräsentiert und die zweite Schnittstelle die Leistungsmetrik von einer ersten der Ressourcen erhalten soll, und Erzeugen eines Telemetrieobjekts auf der Grundlage der Leistungsmetrik, wobei das Telemetrieobjekt eine dritte Schnittstelle repräsentiert und die dritte Schnittstelle die Leistungsmetrik vom Ressourcenobjekt erhalten soll, und Erzeugen eines ausführbaren Telemetrieprogramms auf der Grundlage der Komposition, wobei die Komposition wenigstens eines vom Ressourcenobjekt oder vom Telemetrieobjekt aufweist, Ausführen des ausführbaren Telemetrieprogramms zur Erzeugung der Telemetriedaten und, ansprechend auf die Verteilung einer Rechenaufgabe auf den Edge-Dienst auf der Grundlage der Telemetriedaten, Ausführen der Rechenaufgabe.
-
Beispiel 10 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 9 auf, wobei die erste Ressource eine Hardware-Ressource ist und die Befehle, wenn sie ausgeführt werden, die Maschine veranlassen, Folgendes auszuführen: Abbilden der Leistungsmetrik auf eine Funktion der Hardware-Ressource, wobei die Leistungsmetrik auf der Grundlage der die Funktion ausführenden Hardware-Ressource bestimmt wird, Abbilden der Leistungsmetrik auf ein von der Hardware-Ressource erzeugtes Ereignis, wobei das Ereignis wenigstens einem von einem Hardwarezähler oder einem Softwarezähler entspricht, Erzeugen einer Ressourceninformationsobjekt(RIO)-Schnittstelle auf der Grundlage des Ereignisses, wobei die RIO-Schnittstelle einen ersten Befehl zum Erhalten der Leistungsmetrik von der Hardware-Ressource repräsentiert, und Erzeugen eines RIOs auf der Grundlage der Funktion, wobei das RIO einen zweiten Befehl zum Erhalten der Leistungsmetrik von der RIO-Schnittstelle repräsentiert.
-
Beispiel 11 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 9 auf, wobei die erste Ressource eine Hardware-Ressource ist und die Befehle, wenn sie ausgeführt werden, die Maschine veranlassen, Folgendes auszuführen: Abbilden der Leistungsmetrik auf eine Funktion einer Telemetrie-Ressource, wobei die Telemetrie-Ressource einen ersten Befehl zum Erhalten von Telemetriedaten vom Ressourcenobjekt repräsentiert und die Leistungsmetrik auf der Grundlage der eine Rechenaufgabe ausführenden Hardware-Ressource bestimmt wird, Abbilden der Leistungsmetrik auf eine Anwendungsprogrammierschnittstelle (API), Erzeugen einer Telemetrieinformationsobjekt-(TIO)-Schnittstelle auf der Grundlage der API, wobei die TIO-Schnittstelle einen zweiten Befehl zum Erhalten einer Anforderung der Telemetriedaten von einer Endpunktumgebung repräsentiert, und Erzeugen eines TIOs auf der Grundlage des ersten Befehls, wobei das TIO einen dritten Befehl zum Erhalten der Leistungsmetrik vom Ressourcenobjekt repräsentiert.
-
Beispiel 12 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 9 auf, wobei die erste Ressource eine Hardware-Ressource oder eine Software-Ressource ist, wobei die Komposition ein oder mehrere Ressourcenmodelle, einschließlich eines ersten Ressourcenmodells, aufweist und die Befehle, wenn sie ausgeführt werden, die Maschine veranlassen, das erste Ressourcenmodell durch Folgendes zu erzeugen: Erzeugen eines ersten Ressourcenobjekts durch Virtualisieren der Hardware-Ressource oder der Software-Ressource, Erzeugen eines ersten Telemetrieobjekts, das einen oder mehrere Befehle zum Aufrufen des ersten Ressourcenobjekts repräsentiert, um eine der Hardware-Ressource oder der Software-Ressource zugeordnete Leistungsmetrik zu erhalten, Feststellen, dass ein zweites Ressourcenobjekt vom ersten Ressourcenobjekt abhängt, und, ansprechend auf die Feststellung, Zuweisen eines zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, wobei das zweite Telemetrieobjekt dem zweiten Ressourcenobjekt entspricht.
-
Beispiel 13 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 12 auf, wobei der eine oder die mehreren Befehle einen ersten Befehl aufweisen und die Befehle, wenn sie ausgeführt werden, die Maschine veranlassen, Folgendes auszuführen: ansprechend auf das Erhalten eines zweiten Befehls zum Erhalten der Telemetriedaten von der Komposition, Aufrufen des ersten Telemetrieobjekts, um einen dritten Befehl zum Erhalten der Telemetriedaten vom ersten Ressourcenobjekt zu erzeugen, und, ansprechend auf das Erhalten des ersten Befehls, Aufrufen des ersten Ressourcenobjekts, die Telemetriedaten von der Hardware-Ressource oder der Software-Ressource zu erhalten.
-
Beispiel 14 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 9 auf, wobei die Komposition eine erste Komposition ist, das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen, das ausführbare Telemetrieprogramm ein erstes ausführbares Programm ist und die Befehle, wenn sie ausgeführt werden, die Maschine veranlassen, Folgendes auszuführen: Erzeugen eines zweiten Ressourcenobjekts und eines zweiten Telemetrieobjekts auf der Grundlage der zweiten Ressource, ansprechend auf die Feststellung, dass das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist, Erzeugen einer zweiten Komposition durch: Zuweisen des zweiten Ressourcenobjekts als vom ersten Ressourcenobjekt abhängig, und Zuweisen des zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, Erzeugen eines zweiten ausführbaren Programms auf der Grundlage der ersten Komposition und Erzeugen der Telemetriedaten auf der Grundlage des zweiten ausführbaren Programms.
-
Beispiel 15 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 9 auf, wobei das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen, die Telemetriedaten erste Telemetriedaten, zweite Telemetriedaten und dritte Telemetriedaten aufweisen und die Befehle, wenn sie ausgeführt werden, die Maschine veranlassen, Folgendes auszuführen: Erzeugen eines zweiten Ressourcenobjekts und eines zweiten Telemetrieobjekts auf der Grundlage der zweiten Ressource, wobei das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist und das zweite Telemetrieobjekt vom ersten Telemetrieobjekt abhängig ist, Erzeugen der zweiten Telemetriedaten durch Aufrufen des zweiten Telemetrieobjekts, ansprechend auf die Erzeugung der zweiten Telemetriedaten, Erzeugen der ersten Telemetriedaten durch Aufrufen des ersten Telemetrieobjekts, und Bestimmen der dritten Telemetriedaten auf der Grundlage der ersten Telemetriedaten und der zweiten Telemetriedaten.
-
Beispiel 16 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 15 auf, wobei die Leistungsmetrik eine erste Leistungsmetrik ist, die ersten Telemetriedaten die erste Leistungsmetrik aufweisen, die zweiten Telemetriedaten eine zweite Leistungsmetrik aufweisen und die dritten Telemetriedaten eine dritte Leistungsmetrik aufweisen und die Befehle, wenn sie ausgeführt werden, die Maschine veranlassen, Folgendes auszuführen: Bestimmen eines Erste-Leistungsmetrik-Codes auf der Grundlage der ersten Leistungsmetrik, eines Zweite-Leistungsmetrik-Codes auf der Grundlage der zweiten Leistungsmetrik und eines Dritte-Leistungsmetrik-Codes auf der Grundlage der dritten Leistungsmetrik und, ansprechend auf das Aufrufen eines Auslösers, der angibt, dass die erste Leistungsmetrik und die zweite Leistungsmetrik erzeugt werden, Abbilden des Erste-Leistungsmetrik-Codes auf eine erste Speicherstelle, welche die erste Leistungsmetrik speichert, Abbilden des Zweite-Leistungsmetrik-Codes auf eine zweite Speicherstelle, welche die zweite Leistungsmetrik speichert, Bestimmen der dritten Leistungsmetrik auf der Grundlage der ersten Leistungsmetrik und der zweiten Leistungsmetrik, und, ansprechend auf die Abbildung des Dritte-Leistungsmetrik-Codes auf eine dritte Speicherstelle, Speichern der dritten Leistungsmetrik an der dritten Speicherstelle.
-
Beispiel 17 weist eine Vorrichtung zum Aggregieren von Telemetriedaten in einer Edge-Umgebung auf, wobei die Vorrichtung Folgendes umfasst: Mittel zum Zusammenstellen einer Komposition für einen Edge-Dienst in der Edge-Umgebung, wobei die Komposition eine erste Schnittstelle zum Erhalten der Telemetriedaten repräsentiert, die Telemetriedaten Ressourcen des Edge-Dienstes zugeordnet sind und die Telemetriedaten eine Leistungsmetrik aufweisen, Mittel, um Folgendes zu erzeugen: ein Ressourcenobjekt auf der Grundlage der Leistungsmetrik, wobei das Ressourcenobjekt eine zweite Schnittstelle repräsentiert und die zweite Schnittstelle die Leistungsmetrik von einer ersten der Ressourcen erhalten soll, und ein Telemetrieobjekt auf der Grundlage der Leistungsmetrik, wobei das Telemetrieobjekt eine dritte Schnittstelle repräsentiert und die dritte Schnittstelle die Leistungsmetrik vom Ressourcenobjekt erhalten soll, und Mittel zum Kompilieren eines ausführbaren Telemetrieprogramms auf der Grundlage der Komposition, wobei die Komposition wenigstens eines vom Ressourcenobjekt oder vom Telemetrieobjekt aufweist, das ausführbare Telemetrieprogramm die Telemetriedaten ansprechend darauf erzeugen soll, dass der Edge-Dienst eine Rechenaufgabe ausführt, und die Rechenaufgabe auf der Grundlage der Telemetriedaten auf den Edge-Dienst verteilt wird.
-
Beispiel 18 weist die Vorrichtung nach Beispiel 17 auf, wobei die erste Ressource eine Hardware-Ressource ist, und wobei sie ferner Folgendes aufweist: erste Mittel zum Abbilden der Leistungsmetrik auf eine Funktion der Hardware-Ressource, wobei die Leistungsmetrik auf der Grundlage der die Funktion ausführenden Hardware-Ressource bestimmt wird, zweite Mittel zum Abbilden der Leistungsmetrik auf ein von der Hardware-Ressource erzeugtes Ereignis, wobei das Ereignis wenigstens einem von einem Hardwarezähler oder einem Softwarezähler entspricht, und die Mittel zum Erzeugen einer Ressourceninformationsobjekt(RIO)-Schnittstelle auf der Grundlage des Ereignisses, wobei die RIO-Schnittstelle einen ersten Befehl zum Erhalten der Leistungsmetrik von der Hardware-Ressource repräsentiert, und zum Erzeugen eines RIOs auf der Grundlage der Funktion, wobei das RIO einen zweiten Befehl zum Erhalten der Leistungsmetrik von der RIO-Schnittstelle repräsentiert.
-
Beispiel 19 weist die Vorrichtung nach Beispiel 17 auf, wobei die erste Ressource eine Hardware-Ressource ist, welche ferner Folgendes aufweist: erste Mittel zum Abbilden der Leistungsmetrik auf eine Funktion einer Telemetrie-Ressource, wobei die Telemetrie-Ressource einen ersten Befehl zum Erhalten von Telemetriedaten vom Ressourcenobjekt repräsentiert und die Leistungsmetrik auf der Grundlage der eine Rechenaufgabe ausführenden Hardware-Ressource bestimmt wird, zweite Mittel zum Abbilden der Leistungsmetrik auf eine Anwendungsprogrammierschnittstelle (API), wobei die Mittel zur Erzeugung Folgendes ausführen sollen: Erzeugen einer Telemetrieinformationsobjekt(TIO)-Schnittstelle auf der Grundlage der API, wobei die TIO-Schnittstelle einen zweiten Befehl zum Erhalten einer Anforderung der Telemetriedaten von einer Endpunktumgebung repräsentiert, und Erzeugen eines TIOs auf der Grundlage des ersten Befehls, wobei das TIO einen dritten Befehl zum Erhalten der Leistungsmetrik vom Ressourcenobjekt repräsentiert.
-
Beispiel 20 weist die Vorrichtung nach Beispiel 17 auf, wobei die erste Ressource eine Hardware-Ressource oder eine Software-Ressource ist und die Komposition ein oder mehrere Ressourcenmodelle, einschließlich eines ersten Ressourcenmodells, aufweist, welche ferner Folgendes aufweist: die Mittel zur Erzeugung, um Folgendes auszuführen: Erzeugen eines ersten Ressourcenobjekts durch Virtualisieren der Hardware-Ressource oder der Software-Ressource und Erzeugen eines ersten Telemetrieobjekts, das einen oder mehrere Befehle zum Aufrufen des ersten Ressourcenobjekts repräsentiert, um eine der Hardware-Ressource oder der Software-Ressource zugeordnete Leistungsmetrik zu erhalten, und die Mittel zum Zusammenstellen, um Folgendes auszuführen: Feststellen, dass ein zweites Ressourcenobjekt vom ersten Ressourcenobjekt abhängt, und, ansprechend auf die Feststellung, Zuweisen eines zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, wobei das zweite Telemetrieobjekt dem zweiten Ressourcenobjekt entspricht.
-
Beispiel 21 weist die Vorrichtung nach Beispiel 20 auf, wobei der eine oder die mehreren Befehle einen ersten Befehl aufweisen, wobei sie ferner Folgendes aufweist: erste Mittel, um ansprechend auf das Erhalten eines zweiten Befehls zum Erhalten der Telemetriedaten von der Komposition das erste Telemetrieobjekt aufzurufen, einen dritten Befehl zum Erhalten der Telemetriedaten vom ersten Ressourcenobjekt zu erzeugen, und zweite Mittel, um ansprechend auf das Erhalten des ersten Befehls das erste Ressourcenobjekt aufzurufen, die Telemetriedaten von der Hardware-Ressource oder der Software-Ressource zu erhalten.
-
Beispiel 22 weist die Vorrichtung nach Beispiel 17 auf, wobei die Komposition eine erste Komposition ist, das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen und das ausführbare Telemetrieprogramm ein erstes ausführbares Programm ist, wobei sie ferner Folgendes aufweist: die Mittel zum Erzeugen, um ein zweites Ressourcenobjekt und ein zweites Telemetrieobjekt auf der Grundlage der zweiten Ressource zu erzeugen, die Mittel zum Zusammenstellen, um ansprechend auf die Feststellung, dass das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist, eine zweite Komposition zu erzeugen, indem sie Folgendes ausführen: Zuweisen des zweiten Ressourcenobjekts als vom ersten Ressourcenobjekt abhängig, und Zuweisen des zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, und die Mittel zum Kompilieren, um auf der Grundlage der ersten Komposition ein zweites ausführbares Programm zu erzeugen, wobei das zweite ausführbare Programm die Telemetriedaten erzeugen soll.
-
Beispiel 23 weist die Vorrichtung nach Beispiel 17 auf, wobei das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen, die Telemetriedaten erste Telemetriedaten, zweite Telemetriedaten und dritte Telemetriedaten aufweisen und die Mittel zum Erzeugen erste Mittel zum Erzeugen sind, welche ferner Folgendes aufweist: die ersten Mittel zum Erzeugen, um ein zweites Ressourcenobjekt und ein zweites Telemetrieobjekt auf der Grundlage der zweiten Ressource zu erzeugen, wobei das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist und das zweite Telemetrieobjekt vom ersten Telemetrieobjekt abhängig ist, und zweite Mittel zum Erzeugen, um Folgendes auszuführen: Erzeugen der zweiten Telemetriedaten durch Aufrufen des zweiten Telemetrieobjekts, ansprechend auf die Erzeugung der zweiten Telemetriedaten, Erzeugen der ersten Telemetriedaten durch Aufrufen des ersten Telemetrieobjekts, und Bestimmen der dritten Telemetriedaten auf der Grundlage der ersten Telemetriedaten und der zweiten Telemetriedaten.
-
Beispiel 24 weist die Vorrichtung nach Beispiel 23 auf, wobei die Leistungsmetrik eine erste Leistungsmetrik ist, die ersten Telemetriedaten die erste Leistungsmetrik aufweisen, die zweiten Telemetriedaten eine zweite Leistungsmetrik aufweisen und die dritten Telemetriedaten eine dritte Leistungsmetrik aufweisen und die zweiten Mittel zur Erzeugung Folgendes ausführen sollen: Bestimmen eines Erste-Leistungsmetrik-Codes auf der Grundlage der ersten Leistungsmetrik, eines Zweite-Leistungsmetrik-Codes auf der Grundlage der zweiten Leistungsmetrik und eines Dritte-Leistungsmetrik-Codes auf der Grundlage der dritten Leistungsmetrik und, ansprechend auf das Aufrufen eines Auslösers, der angibt, dass die erste Leistungsmetrik und die zweite Leistungsmetrik erzeugt werden, Abbilden des Erste-Leistungsmetrik-Codes auf eine erste Speicherstelle, welche die erste Leistungsmetrik speichert, Abbilden des Zweite-Leistungsmetrik-Codes auf eine zweite Speicherstelle, welche die zweite Leistungsmetrik speichert, Bestimmen der dritten Leistungsmetrik auf der Grundlage der ersten Leistungsmetrik und der zweiten Leistungsmetrik, und, ansprechend auf die Abbildung des Dritte-Leistungsmetrik-Codes auf eine dritte Speicherstelle, Speichern der dritten Leistungsmetrik an der dritten Speicherstelle.
-
Beispiel 25 weist ein nichtflüchtiges computerlesbares Speichermedium auf, das Befehle umfasst, die, wenn sie ausgeführt werden, wenigstens einen Prozessor veranlassen, wenigstens Folgendes auszuführen: ansprechend auf das Erhalten einer Anforderung zur Ausführung einer Arbeitslast von einer Edge-Vorrichtung, Entdecken mehrerer Edge-Dienstressourcen in Zusammenhang mit wenigstens einem Edge-Dienst in einer Edge-Umgebung, wobei der wenigstens eine Edge-Dienst erste Edge-Dienstressourcen von den mehreren Edge-Dienstressourcen aufweist, Identifizieren des wenigstens einen Edge-Dienstes auf der Grundlage vom wenigstens einen Edge-Dienst erhaltener erster Telemetriedaten, wobei die ersten Telemetriedaten eine Leistungsmetrik aufweisen, welche die Verfügbarkeit der ersten Edge-Dienstressourcen für die Ausführung der Arbeitslast angeben, Verteilen der Arbeitslast auf den wenigstens einen Edge-Dienst zur Ausführung und, ansprechend darauf, dass der wenigstens eine Edge-Dienst ein Telemetriemodell ausführt, Erhalten zweiter Telemetriedaten vom wenigstens einen Edge-Dienst auf der Grundlage der Ausführung der Arbeitslast durch den wenigstens einen Edge-Dienst, wobei das Telemetriemodell eine erste Schnittstelle zum Erhalten der von den ersten Edge-Dienstressourcen erzeugten zweiten Telemetriedaten aufweist.
-
Beispiel 26 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 25 auf, wobei die zweiten Telemetriedaten die Leistungsmetrik aufweisen, die ersten Edge-Dienstressourcen eine erste Hardware-Ressource aufweisen und die Befehle, wenn sie ausgeführt werden, den wenigstens einen Prozessor veranlassen, Folgendes auszuführen: Erzeugen eines Ressourcenobjekts auf der Grundlage der Leistungsmetrik, wobei das Ressourcenobjekt eine zweite Schnittstelle repräsentiert, wobei die zweite Schnittstelle die Leistungsmetrik anhand der ersten Hardware-Ressource erhalten soll, und Erzeugen eines Telemetrieobjekts auf der Grundlage der Leistungsmetrik, wobei das Telemetrieobjekt eine dritte Schnittstelle repräsentiert, wobei die dritte Schnittstelle die Leistungsmetrik anhand des Ressourcenobjekts erhalten soll.
-
Beispiel 27 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 26 auf, wobei die ersten Edge-Dienstressourcen eine Hardware-Ressource aufweisen und die Befehle, wenn sie ausgeführt werden, den wenigstens einen Prozessor veranlassen, Folgendes auszuführen: Abbilden der Leistungsmetrik auf eine Funktion einer Telemetrie-Ressource, wobei die Telemetrie-Ressource einen ersten Befehl zum Erhalten von Telemetriedaten vom Ressourcenobjekt repräsentiert und die Leistungsmetrik auf der Grundlage der eine Rechenaufgabe ausführenden Hardware-Ressource bestimmt wird, Abbilden der Leistungsmetrik auf eine Anwendungsprogrammierschnittstelle (API), Erzeugen einer Telemetrieinformationsobjekt(TIO)-Schnittstelle auf der Grundlage der API, wobei die TIO-Schnittstelle einen zweiten Befehl zum Erhalten einer Anforderung der Telemetriedaten von einer Endpunktumgebung repräsentiert, und Erzeugen eines TIOs auf der Grundlage des ersten Befehls, wobei das TIO einen dritten Befehl zum Erhalten der Leistungsmetrik vom Ressourcenobjekt repräsentiert.
-
Beispiel 28 weist das nichtflüchtige computerlesbare Speichermedium nach Beispiel 25 auf, wobei die ersten Edge-Dienstressourcen eine Hardware-Ressource aufweisen und die Befehle, wenn sie ausgeführt werden, den wenigstens einen Prozessor veranlassen, Folgendes auszuführen: Abbilden der Leistungsmetrik auf eine Funktion der Hardware-Ressource, wobei die Leistungsmetrik auf der Grundlage der die Funktion ausführenden Hardware-Ressource bestimmt wird, Abbilden der Leistungsmetrik auf ein von der Hardware-Ressource erzeugtes Ereignis, wobei das Ereignis wenigstens einem von einem Hardwarezähler oder einem Softwarezähler entspricht, Erzeugen einer Ressourceninformationsobjekt(RIO)-Schnittstelle auf der Grundlage des Ereignisses, wobei die RIO-Schnittstelle einen ersten Befehl zum Erhalten der Leistungsmetrik von der Hardware-Ressource repräsentiert, und Erzeugen eines RIOs auf der Grundlage der Funktion, wobei das RIO einen zweiten Befehl zum Erhalten der Leistungsmetrik von der RIO-Schnittstelle repräsentiert.
-
Beispiel 29 weist ein Verfahren zum Aggregieren von Telemetriedaten in einer Edge-Umgebung auf, wobei das Verfahren Folgendes umfasst: Erzeugen einer Komposition für einen Edge-Dienst in der Edge-Umgebung, wobei die Komposition eine erste Schnittstelle zum Erhalten der Telemetriedaten repräsentiert, die Telemetriedaten Ressourcen des Edge-Dienstes zugeordnet werden und die Telemetriedaten eine Leistungsmetrik aufweisen, Erzeugen eines Ressourcenobjekts auf der Grundlage der Leistungsmetrik, wobei das Ressourcenobjekt eine zweite Schnittstelle repräsentiert und die zweite Schnittstelle die Leistungsmetrik von einer ersten der Ressourcen erhalten soll, und Erzeugen eines Telemetrieobjekts auf der Grundlage der Leistungsmetrik, wobei das Telemetrieobjekt eine dritte Schnittstelle repräsentiert und die dritte Schnittstelle die Leistungsmetrik vom Ressourcenobjekt erhalten soll, Erzeugen eines ausführbaren Telemetrieprogramms auf der Grundlage der Komposition, wobei die Komposition wenigstens eines vom Ressourcenobjekt oder vom Telemetrieobjekt aufweist, Ausführen des ausführbaren Telemetrieprogramms zur Erzeugung der Telemetriedaten und, ansprechend auf die Verteilung einer Rechenaufgabe auf den Edge-Dienst auf der Grundlage der Telemetriedaten, Ausführen der Rechenaufgabe.
-
Beispiel 30 weist das Verfahren nach Beispiel 29 auf, wobei die erste Ressource eine Hardware-Ressource ist, wobei es ferner Folgendes aufweist: Abbilden der Leistungsmetrik auf eine Funktion der Hardware-Ressource, wobei die Leistungsmetrik auf der Grundlage der die Funktion ausführenden Hardware-Ressource bestimmt wird, Abbilden der Leistungsmetrik auf ein von der Hardware-Ressource erzeugtes Ereignis, wobei das Ereignis wenigstens einem von einem Hardwarezähler oder einem Softwarezähler entspricht, Erzeugen einer Ressourceninformationsobjekt(RIO)-Schnittstelle auf der Grundlage des Ereignisses, wobei die RIO-Schnittstelle einen ersten Befehl zum Erhalten der Leistungsmetrik von der Hardware-Ressource repräsentiert, und Erzeugen eines RIOs auf der Grundlage der Funktion, wobei das RIO einen zweiten Befehl zum Erhalten der Leistungsmetrik von der RIO-Schnittstelle repräsentiert.
-
Beispiel 31 weist das Verfahren nach Beispiel 29 auf, wobei die erste Ressource eine Hardware-Ressource ist, wobei es ferner Folgendes aufweist: Abbilden der Leistungsmetrik auf eine Funktion einer Telemetrie-Ressource, wobei die Telemetrie-Ressource einen ersten Befehl zum Erhalten von Telemetriedaten vom Ressourcenobjekt repräsentiert und die Leistungsmetrik auf der Grundlage der eine Rechenaufgabe ausführenden Hardware-Ressource bestimmt wird, Abbilden der Leistungsmetrik auf eine Anwendungsprogrammierschnittstelle (API), Erzeugen einer Telemetrieinformationsobjekt(TIO)-Schnittstelle auf der Grundlage der API, wobei die TIO-Schnittstelle einen zweiten Befehl zum Erhalten einer Anforderung der Telemetriedaten von einer Endpunktumgebung repräsentiert, und Erzeugen eines TIOs auf der Grundlage des ersten Befehls, wobei das TIO einen dritten Befehl zum Erhalten der Leistungsmetrik vom Ressourcenobjekt repräsentiert.
-
Beispiel 32 weist das Verfahren nach Beispiel 29 auf, wobei die erste Ressource eine Hardware-Ressource oder eine Software-Ressource ist und die Komposition ein oder mehrere Ressourcenmodelle, einschließlich eines ersten Ressourcenmodells, aufweist, wobei es ferner Folgendes aufweist: Erzeugen des ersten Ressourcenmodells durch Erzeugen eines ersten Ressourcenobjekts durch Virtualisieren der Hardware-Ressource oder der Software-Ressource, Erzeugen eines ersten Telemetrieobjekts, das einen oder mehrere Befehle zum Aufrufen des ersten Ressourcenobjekts repräsentiert, um eine der Hardware-Ressource oder der Software-Ressource zugeordnete Leistungsmetrik zu erhalten, Feststellen, dass ein zweites Ressourcenobjekt vom ersten Ressourcenobjekt abhängt, und, ansprechend auf die Feststellung, Zuweisen eines zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, wobei das zweite Telemetrieobjekt dem zweiten Ressourcenobjekt entspricht.
-
Beispiel 33 weist das Verfahren nach Beispiel 32 auf, wobei der eine oder die mehreren Befehle einen ersten Befehl aufweisen, wobei es ferner Folgendes aufweist: ansprechend auf das Erhalten eines zweiten Befehls zum Erhalten der Telemetriedaten von der Komposition, Aufrufen des ersten Telemetrieobjekts, um einen dritten Befehl zum Erhalten der Telemetriedaten vom ersten Ressourcenobjekt zu erzeugen, und, ansprechend auf das Erhalten des ersten Befehls, Aufrufen des ersten Ressourcenobjekts, die Telemetriedaten von der Hardware-Ressource oder der Software-Ressource zu erhalten.
-
Beispiel 34 weist das Verfahren nach Beispiel 29 auf, wobei die Komposition eine erste Komposition ist, das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen und das ausführbare Telemetrieprogramm ein erstes ausführbares Programm ist, wobei es ferner Folgendes aufweist: Erzeugen eines zweiten Ressourcenobjekts und eines zweiten Telemetrieobjekts auf der Grundlage der zweiten Ressource, ansprechend auf die Feststellung, dass das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist, Erzeugen einer zweiten Komposition durch Zuweisen des zweiten Ressourcenobjekts als vom ersten Ressourcenobjekt abhängig und Zuweisen des zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, Erzeugen eines zweiten ausführbaren Programms auf der Grundlage der ersten Komposition und Erzeugen der Telemetriedaten auf der Grundlage des zweiten ausführbaren Programms.
-
Beispiel 35 weist das Verfahren nach Beispiel 29 auf, wobei das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen, die Telemetriedaten erste Telemetriedaten, zweite Telemetriedaten und dritte Telemetriedaten aufweisen, wobei es ferner Folgendes aufweist: Erzeugen eines zweiten Ressourcenobjekts und eines zweiten Telemetrieobjekts auf der Grundlage der zweiten Ressource, wobei das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist und das zweite Telemetrieobjekt vom ersten Telemetrieobjekt abhängig ist, Erzeugen der zweiten Telemetriedaten durch Aufrufen des zweiten Telemetrieobjekts, ansprechend auf die Erzeugung der zweiten Telemetriedaten, Erzeugen der ersten Telemetriedaten durch Aufrufen des ersten Telemetrieobjekts, und Bestimmen der dritten Telemetriedaten auf der Grundlage der ersten Telemetriedaten und der zweiten Telemetriedaten.
-
Beispiel 36 weist das Verfahren nach Beispiel 35 auf, wobei die Leistungsmetrik eine erste Leistungsmetrik ist, die ersten Telemetriedaten die erste Leistungsmetrik aufweisen, die zweiten Telemetriedaten eine zweite Leistungsmetrik aufweisen und die dritten Telemetriedaten eine dritte Leistungsmetrik aufweisen, wobei es ferner Folgendes aufweist: Bestimmen eines Erste-Leistungsmetrik-Codes auf der Grundlage der ersten Leistungsmetrik, eines Zweite-Leistungsmetrik-Codes auf der Grundlage der zweiten Leistungsmetrik und eines Dritte-Leistungsmetrik-Codes auf der Grundlage der dritten Leistungsmetrik und, ansprechend auf das Aufrufen eines Auslösers, der angibt, dass die erste Leistungsmetrik und die zweite Leistungsmetrik erzeugt werden, Abbilden des Erste-Leistungsmetrik-Codes auf eine erste Speicherstelle, welche die erste Leistungsmetrik speichert, Abbilden des Zweite-Leistungsmetrik-Codes auf eine zweite Speicherstelle, welche die zweite Leistungsmetrik speichert, Bestimmen der dritten Leistungsmetrik auf der Grundlage der ersten Leistungsmetrik und der zweiten Leistungsmetrik, und, ansprechend auf die Abbildung des Dritte-Leistungsmetrik-Codes auf eine dritte Speicherstelle, Speichern der dritten Leistungsmetrik an der dritten Speicherstelle.
-
Beispiel 37 weist eine Vorrichtung zum Aggregieren von Telemetriedaten in einer Edge-Umgebung auf, wobei die Vorrichtung Folgendes umfasst: einen Kompositionserzeuger zum Erzeugen einer Komposition für einen Edge-Dienst in der Edge-Umgebung, wobei die Komposition eine erste Schnittstelle zum Erhalten der Telemetriedaten repräsentiert, die Telemetriedaten Ressourcen des Edge-Dienstes zugeordnet sind und die Telemetriedaten eine Leistungsmetrik aufweisen, einen Objekterzeuger zum Erzeugen eines Ressourcenobjekts auf der Grundlage der Leistungsmetrik, wobei das Ressourcenobjekt eine zweite Schnittstelle repräsentiert und die zweite Schnittstelle die Leistungsmetrik von einer ersten der Ressourcen erhalten soll, und Erzeugen eines Telemetrieobjekts auf der Grundlage der Leistungsmetrik, wobei das Telemetrieobjekt eine dritte Schnittstelle repräsentiert und die dritte Schnittstelle die Leistungsmetrik vom Ressourcenobjekt erhalten soll, und eine Steuereinrichtung für ausführbare Programme zum Erzeugen eines ausführbaren Telemetrieprogramms auf der Grundlage der Komposition, wobei die Komposition wenigstens eines vom Ressourcenobjekt oder vom Telemetrieobjekt aufweist und das ausführbare Telemetrieprogramm die Telemetriedaten ansprechend darauf erzeugen soll, dass der Edge-Dienst eine Rechenaufgabe ausführt, wobei die Rechenaufgabe auf der Grundlage der Telemetriedaten auf den Edge-Dienst verteilt wird.
-
Beispiel 38 weist die Vorrichtung nach Beispiel 37 auf, wobei die erste Ressource eine Hardware-Ressource ist, wobei sie ferner Folgendes aufweist: den Objekterzeuger zum Abbilden der Leistungsmetrik auf eine Funktion der Hardware-Ressource, wobei die Leistungsmetrik auf der Grundlage der die Funktion ausführenden Hardware-Ressource bestimmt wird, einen Schnittstellenerzeuger zum Abbilden der Leistungsmetrik auf ein von der Hardware-Ressource erzeugtes Ereignis, wobei das Ereignis wenigstens einem von einem Hardwarezähler oder einem Softwarezähler entspricht, und Erzeugen einer Ressourceninformationsobjekt(RIO)-Schnittstelle auf der Grundlage des Ereignisses, wobei die RIO-Schnittstelle einen ersten Befehl zum Erhalten der Leistungsmetrik von der Hardware-Ressource repräsentiert, und den Objekterzeuger zum Erzeugen eines RIOs auf der Grundlage der Funktion, wobei das RIO einen zweiten Befehl zum Erhalten der Leistungsmetrik von der RIO-Schnittstelle repräsentiert.
-
Beispiel 39 weist die Vorrichtung nach Beispiel 37 auf, wobei die erste Ressource eine Hardware-Ressource ist, wobei sie ferner Folgendes aufweist: den Objekterzeuger zum Abbilden der Leistungsmetrik auf eine Funktion einer Telemetrie-Ressource, wobei die Telemetrie-Ressource einen ersten Befehl zum Erhalten von Telemetriedaten vom Ressourcenobjekt repräsentiert, wobei die Leistungsmetrik auf der Grundlage der eine Rechenaufgabe ausführenden Hardware-Ressource bestimmt wird, einen Schnittstellenerzeuger zum Abbilden der Leistungsmetrik auf eine Anwendungsprogrammierschnittstelle (API) und zum Erzeugen einer Telemetrieinformationsobjekt(TIO)-Schnittstelle auf der Grundlage der API, wobei die TIO-Schnittstelle einen zweiten Befehl zum Erhalten einer Anforderung der Telemetriedaten von einer Endpunktumgebung repräsentiert, und den Objekterzeuger zum Erzeugen eines TIOs auf der Grundlage des ersten Befehls, wobei das TIO einen dritten Befehl zum Erhalten der Leistungsmetrik vom Ressourcenobjekt repräsentiert.
-
Beispiel 40 weist die Vorrichtung nach Beispiel 37 auf, wobei die erste Ressource eine Hardware-Ressource oder eine Software-Ressource ist und die Komposition ein oder mehrere Ressourcenmodelle, einschließlich eines ersten Ressourcenmodells, aufweist, wobei sie ferner Folgendes aufweist: den Objekterzeuger zum Erzeugen eines ersten Ressourcenobjekts durch Virtualisieren der Hardware-Ressource oder der Software-Ressource und zum Erzeugen eines ersten Telemetrieobjekts, das einen oder mehrere Befehle zum Aufrufen des ersten Ressourcenobjekts repräsentiert, um eine der Hardware-Ressource oder der Software-Ressource zugeordnete Leistungsmetrik zu erhalten, und den Kompositionserzeuger zum Feststellen, dass ein zweites Ressourcenobjekt vom ersten Ressourcenobjekt abhängt, und, ansprechend auf die Feststellung, Zuweisen eines zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, wobei das zweite Telemetrieobjekt dem zweiten Ressourcenobjekt entspricht.
-
Beispiel 41 weist die Vorrichtung nach Beispiel 40 auf, wobei der eine oder die mehreren Befehle einen ersten Befehl aufweisen und das ausführbare Telemetrieprogramm Folgendes ausführen soll: ansprechend auf das Erhalten eines zweiten Befehls zum Erhalten der Telemetriedaten von der Komposition, Aufrufen des ersten Telemetrieobjekts, um einen dritten Befehl zum Erhalten der Telemetriedaten vom ersten Ressourcenobjekt zu erzeugen, und, ansprechend auf das Erhalten des ersten Befehls, Aufrufen des ersten Ressourcenobjekts, die Telemetriedaten von der Hardware-Ressource oder der Software-Ressource zu erhalten.
-
Beispiel 42 weist die Vorrichtung nach Beispiel 37 auf, wobei die Komposition eine erste Komposition ist, das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen und das ausführbare Telemetrieprogramm ein erstes ausführbares Programm ist, wobei sie ferner Folgendes aufweist: den Objekterzeuger zum Erzeugen eines zweiten Ressourcenobjekts und eines zweiten Telemetrieobjekts auf der Grundlage der zweiten Ressource, ansprechend auf die Feststellung, dass das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist, den Kompositionserzeuger zum Erzeugen einer zweiten Komposition durch Zuweisen des zweiten Ressourcenobjekts als vom ersten Ressourcenobjekt abhängig und zum Zuweisen des zweiten Telemetrieobjekts als vom ersten Telemetrieobjekt abhängig, und die Steuereinrichtung für ausführbare Programme zum Erzeugen eines zweiten ausführbaren Programms auf der Grundlage der ersten Komposition, wobei das zweite ausführbare Programm die Telemetriedaten erzeugen soll.
-
Beispiel 43 weist die Vorrichtung nach Beispiel 37 auf, wobei das Ressourcenobjekt ein erstes Ressourcenobjekt ist, das Telemetrieobjekt ein erstes Telemetrieobjekt ist, die Ressourcen eine zweite Ressource aufweisen und die Telemetriedaten erste Telemetriedaten, zweite Telemetriedaten und dritte Telemetriedaten aufweisen, wobei sie ferner Folgendes aufweist: den Objekterzeuger zum Erzeugen eines zweiten Ressourcenobjekts und eines zweiten Telemetrieobjekts auf der Grundlage der zweiten Ressource, wobei das zweite Ressourcenobjekt vom ersten Ressourcenobjekt abhängig ist und das zweite Telemetrieobjekt vom ersten Telemetrieobjekt abhängig ist, und das ausführbare Telemetrieprogramm zum Erzeugen der zweiten Telemetriedaten durch Aufrufen des zweiten Telemetrieobjekts, ansprechend auf die Erzeugung der zweiten Telemetriedaten, Erzeugen der ersten Telemetriedaten durch Aufrufen des ersten Telemetrieobjekts und Bestimmen der dritten Telemetriedaten auf der Grundlage der ersten Telemetriedaten und der zweiten Telemetriedaten.
-
Beispiel 44 weist die Vorrichtung nach Beispiel 43 auf, wobei die Leistungsmetrik eine erste Leistungsmetrik ist, die ersten Telemetriedaten die erste Leistungsmetrik aufweisen, die zweiten Telemetriedaten eine zweite Leistungsmetrik aufweisen und die dritten Telemetriedaten eine dritte Leistungsmetrik aufweisen, wobei das ausführbare Telemetrieprogramm Folgendes ausführen soll: Bestimmen eines Erste-Leistungsmetrik-Codes auf der Grundlage der ersten Leistungsmetrik, eines Zweite-Leistungsmetrik-Codes auf der Grundlage der zweiten Leistungsmetrik und eines Dritte-Leistungsmetrik-Codes auf der Grundlage der dritten Leistungsmetrik und, ansprechend auf das Aufrufen eines Auslösers, der angibt, dass die erste Leistungsmetrik und die zweite Leistungsmetrik erzeugt werden, Abbilden des Erste-Leistungsmetrik-Codes auf eine erste Speicherstelle, welche die erste Leistungsmetrik speichert, Abbilden des Zweite-Leistungsmetrik-Codes auf eine zweite Speicherstelle, welche die zweite Leistungsmetrik speichert, Bestimmen der dritten Leistungsmetrik auf der Grundlage der ersten Leistungsmetrik und der zweiten Leistungsmetrik, und, ansprechend auf die Abbildung des Dritte-Leistungsmetrik-Codes auf eine dritte Speicherstelle, Speichern der dritten Leistungsmetrik an der dritten Speicherstelle.
-
Wenngleich hier bestimmte beispielhafte Verfahren, Vorrichtungen und Herstellungsartikel offenbart wurden, ist der Abdeckungsbereich dieses Patents nicht darauf beschränkt. Dieses Patent deckt dagegen alle Verfahren, Vorrichtungen und Herstellungsartikel ab, die grob in den Schutzumfang der Ansprüche dieses Patents fallen.
-
Die folgenden Ansprüche werden hiermit durch diese Bezugnahme in diese Detaillierte Beschreibung aufgenommen, wobei jeder Anspruch für sich als eine getrennte Ausführungsform der vorliegenden Offenbarung 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/939303 [0001]
- US 62/907597 [0001]