-
HINTERGRUND
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Computertechniken und insbesondere auf ein Verfahren, ein System und ein Computerprogrammprodukt zum dynamischen Verwalten eines Aufgabenablaufs in einer Edge-Datenverarbeitungsumgebung.
-
Mit der Entwicklung von Cloud-Computing und IdD-Technologien (Internet der Dinge, Internet of Things, loT) wird die Edge-Datenverarbeitung zu einem neuen Trend, der leistungsfähigere Rechenkapazitäten ermöglicht. Im Zusammenhang mit dem Internet der Dinge (IdD) bezieht sich der Begriff „Edge“ (Ersterkennung) oder „Edge-System“ auf eine Datenverarbeitungsinfrastruktur, die sich in der Nähe von Datenquellen befindet. Eine solche Datenverarbeitungsinfrastruktur kann zum Beispiel industrielle Maschinen, industrielle Steuerungen, industrielle Sensoren, mobile Einheiten und/oder jede andere Infrastruktur umfassen, die ein Fachmann als in der Nähe der Datenquellen vorhanden berücksichtigen würde. Die Maschinen und/oder Einheiten, die als die Datenquellen dienen, können als „Edge-Einheiten“ bezeichnet werden. Die Edge-Einheiten befinden sich in der Regel entfernt von einer zentralen Datenverarbeitungsressource, die in einer Cloud verfügbar ist. Das Edge-System kann Anwendungen und/oder Datenverarbeitung und/oder Modelle von den zentralen Cloud-Rechenzentren auf eine Edge-Seite verlagern, die sich näher an den Edge-Einheiten befindet, wodurch der Umfang des Datenverkehrs zu den Cloud-Rechenzentren verringert wird.
-
KURZDARSTELLUNG
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein auf einem Computer implementiertes Verfahren, Computersystem und Computerprogrammprodukt zum Verwalten eines Aufgabenablaufs bereitgestellt. Gemäß dem auf einem Computer implementierten Verfahren kann ein Definitionsmodul (definer module) eine Anforderung zum Ausführen eines Aufgabenablaufs empfangen. Das Definitionsmodul kann aus einem Satz von Edge-Einheiten einen Cluster von Edge-Einheiten bestimmen, die den Aufgabenablauf ausführen sollen. Das Definitionsmodul kann Metadateninformationen für den Aufgabenablauf und die Edge-Einheiten in dem Cluster abrufen, wobei die Metadateninformationen zum Planen des Aufgabenablaufs in dem Cluster verwendet werden. Anschließend können die Edge-Einheiten in dem Cluster den Aufgabenablauf gemäß den Metadateninformationen ausführen.
-
Figurenliste
-
Diese und andere Aufgaben, Funktionen und Vorteile der vorliegenden Erfindung werden aus der folgenden ausführlichen Beschreibung veranschaulichender Ausführungsformen davon ersichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist. Die verschiedenen Funktionen der Zeichnungen sind nicht maßstabsgetreu, da die Darstellungen der Klarheit dienen, um dem Fachmann das Verständnis der Erfindung in Verbindung mit der ausführlichen Beschreibung zu erleichtern. In den Zeichnungen:
- 1 stellt eine schematische Darstellung eines Beispiels eines Computersystems/Servers gemäß einer Ausführungsform der vorliegenden Offenbarung dar.
- 2 stellt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Offenbarung dar.
- 3 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Offenbarung dar.
- 4 zeigt eine bestehende beispielhafte Edge-Datenverarbeitungsumgebung.
- 5 zeigt eine beispielhafte Edge-Datenverarbeitungsumgebung gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
- 6A zeigt einen beispielhaften Aufgabenablauf gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
- 6B zeigt Informationen über den beispielhaften Aufgabenablauf gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
- 7A zeigt den beispielhaften Aufgabenablauf mit Tags gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
- 7B zeigt einen beispielhaften Cluster von Edge-Einheiten mit Tags, die denen des Aufgabenablaufs gemäß einigen Ausführungsformen der vorliegenden Offenbarung entsprechen.
- 7C zeigt Metadateninformationen, die für den Cluster von Edge-Einheiten zum Ausführen des Aufgabenablaufs gemäß einigen Ausführungsformen der vorliegenden Offenbarung erzeugt wurden.
- 7D zeigt den beispielhaften Aufgabenablauf mit den Metadateninformationen gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
- 8 zeigt einen Ablaufplan für ein beispielhaftes Verfahren 800 zum dynamischen Verwalten des Aufgabenablaufs in der Edge-Datenverarbeitungsumgebung gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Einige Ausführungsformen werden unter Bezugnahme auf die beigefügten Zeichnungen, in denen die Ausführungsformen der vorliegenden Offenbarung veranschaulicht sind, näher beschrieben. Die vorliegende Offenbarung kann jedoch auf verschiedene Arten umgesetzt werden und sollte daher nicht als auf die hier offenbarten Ausführungsformen beschränkt angesehen werden.
-
Es versteht sich, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing umfasst. Vielmehr können Ausführungsformen der vorliegenden Offenbarung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen, bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
-
Bei den Eigenschaften handelt es sich um die folgenden:
-
On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
-
Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
-
Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
-
Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
-
Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Bei den Dienstmodellen handelt es sich um die folgenden:
-
Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Benutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
-
Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Application Hosting Environment.
-
Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Bei den Einsatzmodellen handelt es sich um die folgenden:
-
Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
-
Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
-
Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt, und sie gehört einer Cloud-Dienste verkaufenden Organisation.
-
Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
-
Unter Bezugnahme auf 1 ist eine schematische Darstellung eines Beispiels eines Computersystems/Servers 12 dargestellt, bei dem es sich in einigen Ausführungsformen um eine tragbare elektronische Einheit, zum Beispiel eine Datenübertragungseinheit, handeln kann, die in zahlreichen anderen Datenverarbeitungssystem-Umgebungen oder -Konfigurationen für allgemeine Zwecke oder spezielle Zwecke einsatzfähig ist. Zu Beispielen für bekannte Computersysteme, -umgebungen und/oder -konfigurationen, die für die Verwendung mit Computersystem/Server 12 geeignet sein können, zählen, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme, Server-Computer-Systeme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputer-Systeme, Großrechner-Computersysteme und verteilte Cloud-Computing-Umgebungen, die eines der oben genannten Systeme oder Einheiten umfassen, und dergleichen.
-
Computersystem/Server 12 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, zum Beispiel Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Aufgaben, Komponenten, Logik, Datenstrukturen usw. umfassen, die bestimmte Aufgaben ausführen oder bestimmte Datentypen implementieren. Computersystem/Server 12 kann in verteilten Cloud-Computing-Umgebungen eingesetzt werden, in denen Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetz miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Speichermedien des Computersystems befinden, unter anderem in Arbeitsspeichereinheiten.
-
Wie in 1 dargestellt, ist Computersystem/Server 12 in Form einer Universalcomputereinheit dargestellt. Die Komponenten von Computersystem/Server 12 können, ohne auf diese beschränkt zu sein, einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 umfassen, der verschiedene Systemkomponenten mit dem einen oder den mehreren Prozessoren oder Verarbeitungseinheiten 16 verbindet, unter anderem den Systemspeicher 28.
-
Bus 18 kann eine oder mehrere von mehreren Arten von Busstrukturen darstellen, unter anderem einen Speicherbus oder eine Speichersteuerung, einen Peripheriebus, einen beschleunigten Grafikanschluss und einen Prozessor oder lokalen Bus, der eine von verschiedenen Busarchitekturen verwendet. Zu diesen Architekturen können zum Beispiel ISA-Bus (Industry Standard Architecture), MCA-Bus (Micro Channel Architecture), EISA-Bus (Enhanced ISA), lokaler Bus der Video Electronics Standards Association (VESA) und PCI-Bus (Peripheral Component Interconnect) gehören, ohne auf diese beschränkt zu sein.
-
Computersystem/Server 12 kann in der Regel eine Vielfalt von durch ein Computersystem lesbare Medien umfassen. Bei diesen Medien kann es sich um alle verfügbaren Medien handeln, auf die über Computersystem/Server 12 zugegriffen werden kann, und die Medien umfassen sowohl flüchtige als auch nichtflüchtige Medien, wechselbare und nicht wechselbare Medien.
-
Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers umfassen, zum Beispiel RAM (Random Access Memory) 30 und/oder Cache 32. Computersystem/Server 12 kann außerdem andere wechselbare/nicht wechselbare und/oder flüchtige/nichtflüchtige Speichermedien für Computersysteme umfassen. Nur als Beispiel kann das Speichersystem 34 für Lesevorgänge von einem und Schreibvorgänge zu einem nicht wechselbaren, nichtflüchtigen magnetischen Medium bereitgestellt werden (nicht dargestellt und in der Regel als „Festplatte“ bezeichnet). Es können ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine wechselbare, nichtflüchtige Magnetplatte (z.B. eine „Diskette“) sowie ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine wechselbare, nichtflüchtige optische Platte wie ein CD-ROM, DVD-ROM oder andere optische Medien bereitgestellt werden, obwohl diese nicht dargestellt sind. Hierbei können diese jeweils über eine oder mehrere Datenträgerschnittstellen mit Bus 18 verbunden werden. Wie im Folgenden eingehender dargestellt und beschrieben, kann der Systemspeicher 28 mindestens ein Programmprodukt mit einem Satz (z.B. mindestens eines) von Programmmodulen umfassen, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der vorliegenden Offenbarung ausführen.
-
Ein Programm/Dienstprogramm 40 mit einem oder mehreren Programmmodulen 42 kann zum Beispiel im Systemspeicher 28 sowie in einem Betriebssystem, einem oder mehreren Anwendungsprogrammen, anderen Programmmodulen und Programmdaten gespeichert sein. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination davon können jeweils eine Implementierung einer Netzwerkumgebung umfassen. Das eine oder mehrere Programmmodule 42 können im Allgemeinen die Funktionen und/oder Methodiken der hier beschriebenen Ausführungsformen der vorliegenden Offenbarung ausführen. Computersystem/Server 12 kann auch mit einer oder mehreren externen Einheiten 14 Daten austauschen, zum Beispiel eine Tastatur, eine Zeigeeinheit, eine Anzeige 24, eine oder mehrere Einheiten, anhand derer ein Benutzer mit Computersystem/Server 12 interagieren kann, und/oder alle Einheiten (z.B. Netzwerkkarte, Modem usw.), anhand derer Computersystem/Server 12 mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten austauschen kann. Eine solche Datenübertragung kann über Eingabe/Ausgabe- (E/A-) Schnittstellen 22 erfolgen. Computersystem/Server 12 kann jedoch auch über einen Netzwerkadapter 20 mit einem oder mehreren Netzwerken wie ein lokales Netzwerk (LAN), ein allgemeines Weitverkehrsnetzwerk (WAN) und/oder ein öffentliches Netzwerk (z.B. dem Internet) Daten austauschen. Wie dargestellt kann der Netzwerkadapter 20 über den Bus 18 Daten mit den anderen Komponenten des Computersystems/Servers 12 austauschen. Es versteht sich, dass andere Hardware- und/oder Softwarekomponenten in Verbindung mit Computersystem/Server 12 verwendet werden können, auch wenn sie nicht dargestellt sind. Zu Beispielen zählen, ohne auf diese beschränkt zu sein, Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerkarrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung. Bei dem in 1 dargestellten Computersystem/Server 12 kann es sich um einen Cloud-Computing-Knoten handeln, zum Beispiel um einen oder mehrere Cloud-Computing-Knoten 10, wie in 2 dargestellt. Bei dem in 1 dargestellten Computersystem/Server 12 kann es sich gemäß mindestens einer veranschaulichenden Ausführungsform der vorliegenden Offenbarung auch um Hardwarekomponenten in der beispielhaften Edge-Datenverarbeitungsumgebung handeln, die in 4 und 5 dargestellt ist.
-
Unter Bezugnahme auf 2 ist eine veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, kann die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 aufweisen, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie ein elektronischer Assistent (PDA, personal digital assistant) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein Automobil-Computer-System 54N Daten austauschen können. Der eine oder die mehreren Cloud-Computing-Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus Dieses Gruppieren kann es der Cloud-Computing-Umgebung 50 ermöglichen, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die Arten von in 2 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass der eine oder die mehreren Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
-
Unter Bezugnahme auf 3 wird ein Satz von funktionalen Abstraktionsschichten 300 gezeigt, die durch die Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es versteht sich von Vornherein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Software-Schicht 60 umfasst Hardware- und SoftwareKomponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen SoftwareKomponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
-
Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
In einem Beispiel kann die Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen umfassen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
-
Eine Arbeitslastenschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und eine Edge-Steuerung 96.
-
Die funktionalen Abstraktionsschichten in 3 dienen nur als Beispiel. Bei Bedarf können eine oder mehrere Schichten dazu hinzugefügt werden, und eine oder mehrere Schichten in 3 können zusammengeführt werden oder entfallen. Darüber hinaus können in jeder Schicht von 3 einige Komponenten weggelassen oder zusammengeführt werden, und eine oder mehrere Komponenten können hinzugefügt werden.
-
BEISPIELHAFTE DATENVERARBEITUNGSUMGEBUNG
-
Wie bereits oben erwähnt, wird die Edge-Datenverarbeitung mit der Entwicklung von Cloud-Computing und IdD-Technologien (Internet der Dinge, Internet of Things, loT) zu einem neuen Trend, der leistungsfähigere Rechenkapazitäten ermöglicht. Die Edge-Datenverarbeitung wird zunehmend zu einem wesentlichen Bestandteil des industriellen Internet der Dinge (IIdD, Industrial Internet of Things, IIoT), um die digitale Transformation zu beschleunigen. Die Edge-Datenverarbeitung konzentriert sich auf die Einheiten und Technologien, die tatsächlich mit dem „Ding“ verbunden sind, zum Beispiel industrielle Maschinen. Bei einem typischen Beispiel für die Edge-Datenverarbeitung kann es sich um die intelligente Fertigung (intelligent manufacture) handeln. Die Edge-Datenverarbeitung kann es ermöglichen, dass Analysen und Datenerfassung an der Quelle der Daten stattfinden.
-
Es versteht sich, dass es sich bei der Edge-Datenverarbeitung um eine Optimierung von Cloud-Computing-Systemen handeln kann und dass sie mit Cloud-Computing zusammenarbeiten kann. Zu Szenarien, in denen eine Edge-Datenverarbeitung vorherrschen kann, gehören ein Bedarf an niedrigen Latenzzeiten oder wenn es Einschränkungen bei der Bandbreite gibt. Die Edge-Datenverarbeitung kann auch wichtig sein, wenn Internet- oder Mobilfunkverbindungen nur unzureichend verfügbar sind. Das Cloud-Computing kann eine bedeutendere Position einnehmen, wenn Aktionen eine erhebliche Rechenleistung erfordern, um große Datenmengen von Maschinen effektiv zu verwalten. Das Cloud-Computing und die Edge-Datenverarbeitung können beide für industrielle Operationen notwendig sein, um den größten Nutzen aus den heutigen komplexen, vielfältigen und umfangreichen Datenmengen zu ziehen. Für Industrie- oder Serveranbieter kann es von Vorteil sein, Daten von Edge-Einheiten auf der Edge-Seite näher an den Edge-Einheiten, in der Cloud oder einer Kombination aus beidem zu verwalten und zu verarbeiten, um einen optimalen Betrieb zu erzielen.
-
4 zeigt eine bestehende beispielhafte Edge-Datenverarbeitungsumgebung. Die bestehende beispielhafte Edge-Datenverarbeitungsumgebung kann Komponenten und/oder Module enthalten, die sowohl auf einer Cloud-Ebene als auch auf einer Edge-Ebene ausgeführt werden. Es versteht sich, dass in der bestehenden beispielhaften Edge-Datenverarbeitungsumgebung ein Rechenzentrum der Cloud mit dem Edge-System und den Edge-Einheiten verbunden sein kann und nicht mit Datenverarbeitungsknoten/Servern einer typischen Cloud-Computing-Umgebung.
-
Wie in 4 dargestellt, kann die beispielhafte Edge-Datenverarbeitungsumgebung das Rechenzentrum der Cloud-Schicht 410, die Edge-System-Schicht 420 und die Edge-Einheiten-Schicht 430 aufweisen. Bei den Hardwarekomponenten in den einzelnen Schichten der beispielhaften Edge-Datenverarbeitungsumgebung kann es sich um Computersystem/Server 12 handeln, wie in 1 dargestellt. Das/der in 1 dargestellte Computersystem/Server 12 kann geeignet sein, jede der Funktionen in der beispielhaften Edge-Datenverarbeitungsumgebung zu implementieren. Alle Komponenten und/oder Module in der beispielhaften Edge-Datenverarbeitungsumgebung können direkt oder indirekt über ein Datenübertragungsnetz verbunden sein. Das Netzwerk in 4 kann verschiedene Arten von Datenübertragungsnetzen umfassen, zum Beispiel ein Weitverkehrsnetz (WAN), ein lokales Netzwerk (LAN), ein Telekommunikationsnetz, ein drahtloses Netz, ein öffentliches Telefonnetz (public switched network) und/oder ein Satellitennetz. Das Datenübertragungsnetz kann Verbindungen umfassen, zum Beispiel drahtgebundene, drahtlose Datenübertragungsverbindungen, Lichtwellenleiterkabel und/oder jede andere Verbindung, die ein Fachmann als geeignet für einen Zugang zum Datenübertragungsnetz berücksichtigen würde.
-
Es sei darauf hingewiesen, dass die Schichten und Module in der Edge-Datenverarbeitungsumgebung und die Anzahl der Edge-Einheiten nur zur Veranschaulichung bereitgestellt werden. Die Edge-Datenverarbeitungsumgebung kann eine oder mehrere andere Schichten und Module aufweisen, und die Anzahl der Edge-Einheiten kann unterschiedlich sein und auf andere Weise angeordnet sein.
-
Das Rechenzentrum der Cloud-Schicht 410 kann zu der bestehenden Cloud-Computing-Umgebung gehören, die unter Bezugnahme auf 2 bis 3 oben beschrieben wurde. In der Praxis kann das Cloud-Datenverarbeitungszentrum 410 gemäß den tatsächlichen Anforderungen und Bedingungen der Produktion oder des Dienstes Teile der Datenverarbeitungsleistung, zum Beispiel Teile von Modellen und Anwendungen, an das Edge-System 420 senden, um ein zentrales Verwalten der Edge-Einheiten auszuführen.
-
Wie in 4 dargestellt, können die beispielhaften Module im Rechenzentrum der Cloud-Schicht 410 ein Speichersystem 411, einen API-Server 412 und den Edge-Controller 96 aufweisen. Das Speichersystem 411 kann Metadaten speichern, die für den API-Server 412 erforderlich sind. Zum Beispiel kann es sich bei dem Speichersystem 411 um einen konsistenten, verteilten Schlüsselwert-Speicher handeln. Auf die im Speichersystem 411 gespeicherten Daten kann von einem verteilten System oder einem Cluster von Maschinen zugegriffen werden. Der API-Server 412 kann zum Verarbeiten von API-Operationen verwendet werden und von Benutzern aufgerufen werden. Die Komponenten in der Cloud-Schicht 410 können bei der Nachrichtenübermittlung auf den API-Server 412 zurückgreifen. Die Edge-Steuerung 96 kann verwendet werden, um Daten zwischen dem Rechenzentrum der Cloud-Schicht 410 und der Edge-Systemschicht 420 auszutauschen, um die zentrale Verwaltung auszuführen.
-
Die Edge-Systemschicht 420 kann die Edge-Einheiten in der Edge-Einheiten-Schicht 430 verwalten. Am Beispiel der intelligenten Produktion kann ein zentrales Verwaltungssystem einer Produktionslinie in dem Industriepark der intelligenten Produktion als Edge-System bezeichnet werden, und die Maschinen der Produktionslinie in dem Industriepark können als Edge-Einheiten bezeichnet werden. Als weiteres Beispiel dient eine Basisstation, wobei das zentrale Verwaltungssystem der Basisstation als das Edge-System bezeichnet werden kann und die mobilen Einheiten, die mit der Basisstation Daten austauschen, als Edge-Einheiten bezeichnet werden können.
-
Wie in 4 dargestellt, können die beispielhaften Module in der Edge-Systemschicht 420 ein Speichermodul 421, ein Synchronisierungsdienst-Modul 422 und ein Edge-Agent-Modul 423 aufweisen. Das Speichermodul 421 kann Metadaten für das Edge-System 420 und die Edge-Einheiten speichern. Bei dem Synchronisierungsdienst-Modul 422 kann es sich um das zentrale Datenverarbeitungsmodul des Edge-Systems 420 handeln, das zum Synchronisieren des Modells und der Daten zwischen der Cloud 410 und dem Edge-System 420 verwendet werden kann, und bei dem Edge-Agent-Modul 423 kann es sich um das Verwaltungsmodul der Edge-Einheiten handeln.
-
Die „Edge-Einheit“ kann als Einstiegspunkt in die Kern-Netzwerke von Unternehmen oder Dienstanbietern definiert werden. Das Edge-System 420 kann Daten der Edge-Einheiten verarbeiten und nur die verarbeiteten Daten oder die Daten, die für ein zentrales Verarbeiten geeignet sind, über das Netzwerk an das Cloud-Rechenzentrum 410 senden. Auf diese Weise kann eine umfangreiche Datenübertragung unverarbeiteter Daten über das Netzwerk vermieden werden, und es entsteht kein Zeitaufwand für ein zentrales Verarbeiten. Wie in 4 dargestellt, kann die beispielhafte Edge-Einheiten-Schicht 430 eine Mehrzahl von Edge-Einheiten aufweisen, zum Beispiel die Einheiten A, B, C, D und E usw. Jede der Edge-Einheiten kann einen Container aufweisen, zum Beispiel die Container 4321, 4331, 4311 in den Einheiten B, C bzw. A. Bei dem Container kann es sich um ein Dienstraster oder ein Modul handeln, das zum Ausführen von Anforderungen von Aufgaben konfiguriert ist.
-
Es versteht sich, dass in der Edge-Datenverarbeitungsumgebung industrielle/intelligente Produktions- oder Dienstfunktionen durchgeführt oder realisiert werden können. Die Edge-Einheiten können aufgefordert werden, verschiedene Aufgaben durchzuführen, um eine Arbeitslast zu erfüllen, entweder um Produktionsaufträge zu erfüllen oder um Dienstfunktionen zu implementieren. Die Aufgaben können eine Reihe von Teilaufgaben aufweisen. Die Teilaufgaben können auf mehreren Einheiten parallel und/oder in Reihe ausgeführt werden. Die Aufgabe kann hier auch als der „Aufgabenablauf“ bezeichnet werden. Bei einem Produktions- oder Dienstprozess kann es sich um einen Prozess zum Ausführen des Aufgabenablaufs handeln, der eine Reihe von Teilaufgaben umfasst, die von den Edge-Einheiten ausgeführt werden.
-
Es versteht sich auch, dass in der praktischen Anwendung bei der Produktion oder bei Diensten mehrere Aufgabenabläufe parallel ausgeführt werden können. Bei jedem Aufgabenablauf kann eine Mehrzahl von Einheiten beteiligt sein. Unter der Annahme, dass es zwei ähnliche Aufgabenabläufe gibt, die in den Edge-Einheiten parallel ausgeführt werden sollen, kann einer der Aufgabenabläufe eine Reihe von Teilaufgaben aufweisen, die auf den Einheiten B, C und A auszuführen sind. Die Einheiten B, C und A können jeweils die zugewiesene Teilaufgabe von dem Edge-Agenten 423 empfangen und das laufende Ergebnis an den Edge-Agenten 423 zurückliefern, wie durch die Linien 431, 432 und 433 dargestellt. Der andere Aufgabenablauf kann eine Reihe von Teilaufgaben aufweisen, die auf den Einheiten D, E und A auszuführen sind. Entsprechend können die Einheiten D, E und A mit dem Edge-Agenten 423 Daten austauschen, um den Aufgabenablauf auszuführen, wie durch die gestrichelten Linien 434, 435 und 436 dargestellt.
-
Es ist zu beachten, dass es für jede der an dem Aufgabenablauf beteiligten Edge-Einheiten erforderlich sein kann, Daten mit dem Edge-Agenten 423 auszutauschen, um den Aufgabenablauf auszuführen. Für den Edge-Agent 423 kann es erforderlich sein, die Aufgabenanforderung an jede der Edge-Einheiten zu senden und von jeder Einheit das Ausführungsergebnis zu empfangen. Anders ausgedrückt kann jede der Edge-Einheiten möglicherweise eine Anforderung von dem Edge-Agent 423 empfangen und das Ausführungsergebnis an den Edge-Agent 423 ausgeben. Wie zu erkennen ist, kann der Edge-Agent 423 in der Edge-Systemschicht 420 das Ausführen aller Aufgabenabläufe steuern.
-
In der praktischen Anwendung bei der Produktion oder bei Diensten können die auszuführenden Aufgaben sehr umfangreich und komplex sein, und es kann eine große Anzahl von Edge-Einheiten beteiligt sein. In der bestehenden Edge-Datenverarbeitungsumgebung kann das Verwalten der Aufgabenabläufe jedoch wie oben erwähnt hauptsächlich auf das System Edge-Agent 423 konzentriert sein. Die Arbeitslast des Edge-Agenten 423 kann sehr hoch sein und zu einem Engpass in der Verwaltung führen. Gleichzeitig können die drahtgebundenen oder drahtlosen Verbindungen für die Datenübertragung zwischen dem Edge-Agenten 423 und den Edge-Einheiten instabil sein, was das Risiko eines Engpasses bei der Verwaltung oder eines Systemausfalls erhöhen kann.
-
Ausführungsformen der vorliegenden Offenbarung zielen darauf ab, das oben beschriebene Problem zu lösen, und schlagen eine Lösung für ein dynamisches Verwalten des Aufgabenablaufs hauptsächlich in der Edge-Einheiten-Schicht 430 statt in der Edge-System-Schicht 420 vor, um die Arbeitslast des Edge-Agenten 423 zu verringern.
-
Im Folgenden werden Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf 5 bis 8 ausführlich beschrieben.
-
5 zeigt eine beispielhafte Edge-Datenverarbeitungsumgebung gemäß Ausführungsformen der vorliegenden Offenbarung. Es sei darauf hingewiesen, dass ähnliche und entsprechende Module oder Elemente in 4 durch ähnliche Referenznummern in 5 bezeichnet sind und hier nicht erläutert werden.
-
Es ist zu berücksichtigen, dass 5 lediglich eine Darstellung einer Implementierung der Edge-Datenverarbeitungsumgebung bereitstellt und keine Einschränkungen hinsichtlich der Umgebungen impliziert, in denen verschiedene Ausführungsformen implementiert werden können. Es können viele Änderungen an der dargestellten Umgebung vorgenommen werden.
-
Unter Bezugnahme auf 5 können in dem Edge-Agent 523 ein Definitionsmodul (definer module) 5231, ein Sendemodul (sender module) 5232 und ein Empfangsmodul (receiver module) 5233 konfiguriert werden. Im Vergleich zu der in 4 dargestellten bestehenden Datenverarbeitungsumgebung verfügen diese Module über verbesserte Funktionen, die im Folgenden ausführlich erläutert werden. Des Weiteren können ein oder mehrere Proxy-Module, zum Beispiel Proxy 5312 und Proxy 5322, in jeder der Edge-Einheiten konfiguriert werden. Zum Beispiel kann das Proxy-Modul 5312 in Einheit A konfiguriert werden, das Proxy-Modul 5322 kann in Einheit B konfiguriert werden und so weiter. Gemäß einer Ausführungsform der vorliegenden Offenbarung können das Definitionsmodul 5231, das Sendemodul 5232 und das Empfangsmodul 5233 sowie das eine oder die mehreren Proxy-Module zum Verwalten und Steuern der Aufgabenabläufe verwendet werden. Es ist zu berücksichtigen, dass die Module lediglich zur Veranschaulichung bereitgestellt werden. Die Edge-Datenverarbeitungsumgebung kann gemäß einigen Ausführungsformen der vorliegenden Offenbarung zusätzliche oder weniger Module aufweisen, um eine ähnliche Funktion oder Absicht zu erreichen. Sowohl die Module als auch deren Anzahl können unterschiedlich sein und auf andere Weise angeordnet werden.
-
In der bestehenden Edge-Datenverarbeitungsumgebung kann der Edge-Agent 423 so konfiguriert sein, dass er die Edge-Einheiten zum Ausführen des Aufgabenablaufs dynamisch oder in Echtzeit bestimmt. Gemäß einer Ausführungsform der vorliegenden Offenbarung kann das Definitionsmodul 5231 so konfiguriert sein, dass es die Edge-Einheiten zum Ausführen des Aufgabenablaufs dynamisch bestimmt. Die Edge-Einheiten zum Ausführen des Aufgabenablaufs können einen Cluster bilden, zum Beispiel Cluster 1 und Cluster 2. Wenn das Definitionsmodul 5231 zum Beispiel feststellt, dass ein Aufgabenablauf auf den Einheiten B, C und A ausgeführt werden kann, kann die Gruppe der Einheiten B, C und A als Cluster 1 bezeichnet werden, wie in 5 dargestellt. In ähnlicher Weise kann das Definitionsmodul 5231 feststellen, dass der andere Aufgabenablauf auf den Einheiten D, E und A parallel ausgeführt werden kann, und die Gruppe der Einheiten D, E und A kann als Cluster 2 bezeichnet werden, wie in 5 dargestellt. Der Einfachheit halber wird im Folgenden nur der in Cluster 1 ausgeführte Aufgabenablauf ausführlich erläutert.
-
Das Definitionsmodul 5231 kann ferner so konfiguriert sein, dass es Metadateninformationen des Clusters 1 zum Ausführen der Aufgabe bestimmt. Die Metadateninformationen können zum Verwalten oder Planen des Aufgabenablaufs in den Edge-Einheiten des Clusters 1 verwendet werden. Das Bestimmen von Metadateninformationen wird im Folgenden im Zusammenhang mit 6 ausführlich beschrieben.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann das Sendemodul 5232 so konfiguriert sein, dass es eine Anforderung mit den Metadateninformationen an eine oder mehrere Edge-Einheiten sendet, die an Cluster 1 beteiligt sind, um das Ausführen der Aufgabe zu starten. Die Metadateninformationen können zusammen mit der Anforderung gesendet werden. Zum Beispiel kann, wie zu verstehen ist, eine Anforderung einen Anforderungskopf und einen Anforderungshauptteil aufweisen. Die Metadateninformationen können in dem Kopf der Anforderung eingebettet sein. Auf diese Weise können die Metadateninformationen zusammen mit der Anforderung gesendet werden. Die Metadateninformationen können auch separat gesendet werden. Die Art und Weise, wie die Metadateninformationen gesendet werden, sollte den Umfang der Offenbarung nicht nachteilig beschränken.
-
Die Container in jeder der Edge-Einheiten können die zugewiesene Teilaufgabe ausführen, und das eine oder die mehreren Proxy-Module in jeder der Einheiten können die Daten des Aufgabenablaufs verwalten. Das eine oder die mehreren Proxy-Module in jeder der Edge-Einheiten können den Aufgabenablauf gemäß den Metadateninformationen verwalten oder weiterleiten.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann das Empfangsmodul 5233 so konfiguriert sein, dass es ein endgültiges Ausführungsergebnis bzw. endgültige Ausführungsergebnisse von einer entsprechenden letzten Edge-Einheit bzw. Edge-Einheiten in dem Cluster empfängt, anstatt ein Ausführungsergebnis für jede Teilaufgabe von jeder Einheit zu empfangen.
-
Auf diese Weise kann die vorgeschlagene Lösung der vorliegenden Offenbarung die bestehende Edge-Datenverarbeitungsarchitektur verbessern, indem sie es ermöglicht, den Aufgabenablauf in der Edge-Einheiten-Schicht 530 und nicht in der Edge-System-Schicht 520 zu steuern. Dadurch können die Arbeitslast des Verwaltens im Edge-Agent 523 und das Risiko, dass ein Engpass im Rechenzentrum 410 entsteht, reduziert werden.
-
6A zeigt einen beispielhaften Aufgabenablauf gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
-
Unter Bezugnahme auf 6A kann der beispielhafte Aufgabenablauf zwei Teilaufgaben aufweisen, Teilaufgabe_1 (nicht dargestellt) und Teilaufgabe_2. Die Teilaufgabe_1 weist ferner zwei Teilaufgaben auf, Teilaufgabe_1_1 und Teilaufgabe_1_2. Die Teilaufgabe_1_1 und die Teilaufgabe_1_2 müssen möglicherweise auf zwei Einheiten parallel ausgeführt werden. Die Ausführungsergebnisse der beiden Teilaufgaben müssen möglicherweise als Eingabe an eine dritte Einheit gesendet werden, um die nächste Teilaufgabe auszuführen, genauer gesagt, die Teilaufgabe_2. Die dritte Einheit, bei der es sich um die letzte Einheit handeln kann, die die Teilaufgabe ausführt, kann das Ausführungsergebnis von Teilaufgabe_2 ausgeben. Daraufhin kann der Aufgabenablauf enden. Die Informationen des beispielhaften Aufgabenablaufs können in einer in 6B dargestellten Tabelle abgerufen werden.
-
Wie bereits weiter oben dargelegt, können die auszuführenden Aufgaben in der praktischen Anwendung bei der Produktion oder bei Diensten umfangreich und komplex sein. Der in 6A dargestellte Aufgabenablauf wird lediglich zur Veranschaulichung und zur Vereinfachung als spezifisches Beispiel bereitgestellt, woraus sich keine Einschränkungen für die vorliegende Offenbarung ergeben. Ausführungsformen der vorliegenden Offenbarung können auf alle Arten von Aufgabenabläufen mit denselben, ähnlichen oder unterschiedlichen Definitionen durchgeführt werden.
-
Im Folgenden werden Ausführungsformen der Offenbarung am Beispiel des in 6A dargestellten Aufgabenablaufs unter Bezugnahme auf 5 bis 8 ausführlich beschrieben.
-
BESTIMMEN VON METADATENINFORMATIONEN
-
Wie weiter oben kurz erwähnt, kann das Definitionsmodul 5231 so konfiguriert sein, dass es den Cluster von Edge-Einheiten zum Ausführen eines Aufgabenablaufs auf der Grundlage von Attributen des Aufgabenablaufs und der Edge-Einheiten dynamisch bestimmt, und es kann die Metadateninformationen für den Aufgabenablauf und die Edge-Einheiten in dem Cluster erzeugen.
-
Zum Beispiel kann das Definitionsmodul 5231 beim Empfangen eines Aufgabenablaufs oder einer Aufgabe, wie in 6A dargestellt, Tags für jede Teilaufgabe des Aufgabenablaufs erhalten. Die Tags können grundlegende Anforderungen an die Attribute der Edge-Einheiten anzeigen. Anders ausgedrückt kann der Aufgabenablauf in den Tags anzeigen, welche Einheiten zum Ausführen der Aufgabe geeignet sind. 7A zeigt eine beispielhafte Ausführungsform des Aufgabenablaufs mit Tags gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
-
Es versteht sich, dass die Edge-Einheiten über ihre eigenen Attribute oder Eigenschaften verfügen und so gestaltet sein können, dass sie verschiedene Aufgaben ausführen können. Bei den Attributen der Edge-Einheiten kann es sich um Eigenschaften, Typ, Leistung, Parameter, Index, Konfiguration und Ähnliches handeln. Der Einfachheit halber können die Attribute der Einheiten auch als Tags markiert werden. Das Definitionsmodul 5231 kann auf der Grundlage einer Zuordnungsbeziehung der Tags zwischen dem Aufgabenablauf und den Edge-Einheiten den Cluster von Edge-Einheiten zum Ausführen des Aufgabenablaufs bestimmen. Unter Bezugnahme auf 7A und 7B kann Teilaufgabe_1_1 über ein Tag_1 verfügen, das dem der Einheit C zugeordnet werden kann; Teilaufgabe_1_2 kann ebenfalls über ein Tag_1 verfügen, das dem der Einheit B zugeordnet werden kann; Teilaufgabe_2 kann über ein Tag_2 verfügen, das dem der Einheit A zugeordnet werden kann. Bei der Einheit C und der Einheit B kann es sich um die Einheiten mit denselben Attributen handeln, die austauschbar sein können. So kann das Definitionsmodul 5231 feststellen, dass die Einheiten A, B und C zum Ausführen des Aufgabenablaufs geeignet sind.
-
Gemäß Ausführungsformen der vorliegenden Offenbarung kann das Definitionsmodul 5231 die Gruppe von Einheiten A, B und C als einen Cluster definieren, um den Aufgabenablauf auszuführen, und zwar Cluster1, wie in 5 dargestellt. In Anbetracht der Instabilität des Netzwerks kann der Cluster unter den verfügbaren Edge-Einheiten dynamisch bestimmt werden, nachdem der Aufgabenablauf empfangen wurde. Der Cluster kann aufgelöst werden, nachdem der Aufgabenablauf ausgeführt wurde. Es sei darauf hingewiesen, dass die Edge-Einheiten, die zum Ausführen des Aufgabenablaufs geeignet sind, auch mit anderen geeigneten Ansätzen bestimmt werden können, zum Beispiel auf der Grundlage von historischen Daten, Gewohnheit usw. Der Ansatz zum Bestimmen der Edge-Einheiten zum Ausführen des Aufgabenablaufs sollte den Umfang der Offenbarung nicht nachteilig beschränken.
-
Gemäß Ausführungsformen der vorliegenden Offenbarung kann das Definitionsmodul 5231 ferner Metadaten auf der Grundlage der Zuordnungsbeziehung zwischen dem Aufgabenablauf und den Edge-Einheiten innerhalb des bestimmten Clusters als Metadateninformationen abrufen. Andere Informationen, die zum Verwalten oder Planen des Aufgabenablaufs verwendet werden können, können ebenfalls als Metadateninformationen abgerufen werden. Zum Beispiel kann in einigen Ausführungsformen der vorliegenden Offenbarung eine bestimmte hochleistungsfähige Einheit aus dem Cluster als Koordinationseinheit ausgewählt werden, um die Edge-Einheiten in dem Cluster zu verwalten. In diesem Fall können die Metadateninformationen die entsprechenden Informationen der Koordinationseinheit aufweisen.
-
Unter Bezugnahme auf 7C kann die Einheit B in den Metadateninformationen auf der Grundlage von Leistungsgesichtspunkten als die Koordinationseinheit markiert werden. Die Einheit C und die Einheit A dürfen nicht die Koordinationseinheit sein. Es versteht sich, dass die Leistung der Einheit ein umfassender Faktor sein kann, und der Einfachheit halber kann die Leistung zum Beispiel durch die CPU-Auslastung dargestellt werden. Wie in 7B ersichtlich, hat die Einheit B die niedrigste CPU-Auslastung innerhalb des Clusters, so dass Einheit B als die Koordinationseinheit ausgewählt werden kann. Der Proxy der Koordinationseinheit kann regelmäßig oder unregelmäßig den Status anderer Mitglieder in dem Cluster abfragen und die Statusinformationen mit dem Edge-System 520 synchronisieren. Auf diese Weise kann das Edge-System 520 informiert werden, wenn eine Ausnahme vorliegt, zum Beispiel wenn eine Einheit in dem Cluster aufgrund einer instabilen Netzwerkverbindung ausfällt.
-
Gemäß Ausführungsformen der vorliegenden Offenbarung können die Metadateninformationen alle Informationen aufweisen, die zum Verwalten oder Planen des Aufgabenablaufs verwendet werden können. Zum Beispiel können die Metadateninformationen aufweisen: eine Kennung des Aufgabenablaufs und/oder eine Kennung des Clusters und/oder Kennungen der am Cluster beteiligten Edge-Einheiten und/oder Kennungen der Teilaufgaben des Aufgabenablaufs, die von den Edge-Einheiten in dem Cluster auszuführen sind, und/oder eine Kennung der Koordinations-Edge-Einheit. Die Metadateninformationen können in dem Speichermodul 521 in 5 gespeichert oder verwaltet werden. Die beispielhaften Metadateninformationen für jede Einheit sind in 7C dargestellt. Die Metadateninformationen in 7C sind nur zur Veranschaulichung und zur Vereinfachung dargestellt, woraus sich keine Einschränkungen für die vorliegende Offenbarung ergeben.
-
Unter Bezugnahme auf 7D kann jede Teilaufgabe des Aufgabenablaufs gemäß den Metadateninformationen mit einer entsprechenden Einheit in dem Cluster verknüpft werden. Zum Beispiel kann die Teilaufgabe_1_1 mit der Einheit C verknüpft werden, die Teilaufgabe_1 2 kann mit der Einheit B verknüpft werden, und die Teilaufgabe_2 kann mit der Einheit A verknüpft werden. Das heißt, die Einheit C kann die Teilaufgabe_1_1 ausführen, die Einheit B kann die Teilaufgabe_1 2 ausführen, und die Einheit A kann die Teilaufgabe_2 ausführen. Bei der Einheit C und der Einheit B kann es sich um startende Edge-Einheiten handeln, die startenden Teilaufgaben entsprechen, d.h. der Teilaufgabe_1_1 bzw. der Teilaufgabe_1_2. Bei der Einheit A kann es sich um die letzte Einheit handeln, die der letzten Teilaufgabe, d.h. Teilaufgabe_2, entspricht. Bei dem Ausführungsergebnis der Einheit A kann es sich um das endgültige Ausführungsergebnis des Aufgabenablaufs handeln. So kann jede Einheit in dem Cluster mit einer entsprechenden Teilaufgabe verknüpft werden, um die Teilaufgabe gemäß den Metadateninformationen auszuführen.
-
PROZESS ZUM DYNAMISCHEN VERWALTEN VON AUFGABENABLÄUFEN
-
Gemäß Ausführungsformen der vorliegenden Offenbarung kann im Folgenden der Prozess zum dynamischen Verwalten des Aufgabenablaufs gemäß den Metadateninformationen in Verbindung mit 5 und 6 beschrieben werden.
-
Unter erneuter Bezugnahme auf 5 kann, nachdem der Edge-Agent 523 eine Anforderung zum Ausführen eines Aufgabenablaufs empfangen hat, wie in 6A dargestellt, das Definitionsmodul 5231 auf der Grundlage der Zuordnungsbeziehung der Tags oder der Attribute zwischen den verfügbaren Edge-Einheiten und der Aufgabe den Cluster von Edge-Einheiten bestimmen, die zum Ausführen des Aufgabenablaufs geeignet sind. Das Definitionsmodul 5231 kann ferner die Metadateninformationen für den bestimmten Cluster von Edge-Einheiten und den Aufgabenablauf erzeugen, wie in 7C dargestellt.
-
Anschließend kann das Sendemodul 5232 die Aufgabenanforderung gemäß den Metadateninformationen an Einheit B und Einheit C senden, wie durch die Linien 531 und 532 dargestellt. Das Sendemodul 5232 kann die Metadateninformationen auch in den Kopf der Aufgabenanforderung einbetten, so dass die Metadateninformationen zusammen mit der Anforderung an die Edge-Einheiten gesendet werden können. Nachdem die Anforderung mit den Metadateninformationen empfangen wurde, können der Container 4321 in der Einheit B und der Container 4331 in der Einheit C die Teilaufgabe_1_1 bzw. Teilaufgabe_1_2 ausführen. Anschließend kann das Ausführungsergebnis der Einheit B durch den Proxy 5322 in der Einheit B an die Einheit A gesendet werden, wie durch die Linie 533 dargestellt. Parallel dazu kann das Ausführungsergebnis der Einheit C durch den Proxy 5332 in der Einheit C an die Einheit A gemäß den Metadateninformationen gesendet werden, wie durch die Linie 534 dargestellt. Der Container 4311 in der Einheit A kann die Teilaufgabe_2 ausführen, nachdem er die Ausführungsergebnisse sowohl von der Einheit B als auch von der Einheit C empfangen hat. Das Ausführungsergebnis der Einheit A kann durch den Proxy 5312 in der Einheit A an das Empfangsmodul 5233 gesendet werden, wie durch die Linie 535 dargestellt. Daraufhin kann der Aufgabenablauf beendet werden. Die Linien 531 bis 535 veranschaulichen den Prozess des Ausführens des beispielhaften Aufgabenablaufs in dem Cluster. Wenn die Informationen der Koordinationseinheit in den Metadateninformationen enthalten sind, kann der Prozess ferner einen Statusfluss in dem Cluster aufweisen, der weiter unten ausführlich erläutert wird.
-
Gemäß Ausführungsformen der vorliegenden Offenbarung kann die Einheit B in dem Cluster als Koordinationseinheit ausgewählt werden, die die in 7C dargestellten Metadateninformationen anzeigt. Die Koordinationseinheit B kann regelmäßig oder unregelmäßig Statusinformationen von der Einheit C und der Einheit A abrufen. Die Statusinformationen können „ausführen“, „beendet“ und „Fehler“ aufweisen, ohne auf diese beschränkt zu sein. Die Statusinformationen können abgerufen werden, indem die Einheit C und die Einheit A von der Koordinationseinheit B befragt oder überprüft werden. Die Einheit C und die Einheit A können auch die Statusinformationen über sie selbst an die Koordinationseinheit B übermitteln. Für das Abrufen der Statusinformationen kann jede aktuell bestehende oder in der Zukunft entwickelte geeignete Methode verwendet werden, wodurch der Umfang der Erfindung nicht nachteilig beschränkt werden sollte.
-
Unter erneuter Bezugnahme auf 5 kann der Proxy 5322 in der Koordinationseinheit B die Statusinformationen der Einheit C und der Einheit A abrufen, wie durch die Linien 536 bzw. 537 dargestellt ist. Der Proxy 5322 in der Einheit B kann die empfangenen Statusinformationen an das Empfangsmodul 5233 senden, wie durch die Linie 538 dargestellt ist. Die Linien 536 bis 538 veranschaulichen den Statusfluss in dem Cluster. So kann der Status der Edge-Einheiten in dem Cluster von der Koordinationseinheit in dem Cluster verwaltet werden und dem Empfangsmodul 5233 bereitgestellt werden. Bei Erhalt der Statusinformation „Fehler“ kann der vorliegende Cluster aufgelöst werden und ein neuer Cluster bestimmt werden.
-
Auf diese Weise kann das Sendemodul 5232 die Aufgabenanforderung mit den Metadateninformationen im Kopf senden, um den Aufgabenablauf zu starten. Das Empfangsmodul 5233 kann das endgültige Ausführungsergebnis des Aufgabenablaufs von der entsprechenden letzten Einheit und Statusinformationen der Einheiten von der Koordinationseinheit des Clusters empfangen. Mit Ausnahme des endgültigen Ausführungsergebnisses bzw. der endgültigen Ausführungsergebnisse müssen das Ausführungsergebnis bzw. die Ausführungsergebnisse nicht zwischen den Edge-Einheiten und dem Edge-System 520 übertragen werden. Zum Beispiel muss das Ausführungsergebnis der Einheit C oder der Einheit B nicht an das Empfangsmodul 5233 gesendet werden, sondern kann gemäß den Metadateninformationen an die Einheit A gesendet werden. Bei dem Ausführungsergebnis der Einheit A kann es sich um das endgültige Ausführungsergebnis handeln, das an das Empfangsmodul 5233 gesendet werden kann. Daher kann das Verwalten oder Planen des Aufgabenablaufs gemäß den Metadateninformationen in der Edge-Einheiten-Schicht 530 statt in der Edge-System-Schicht 520 erfolgen. Die Arbeitslast der Edge-System-Schicht 520 kann daher reduziert werden.
-
In ähnlicher Weise kann der Prozess des Verwaltens des Aufgabenablaufs in Cluster 2 gemäß entsprechender Metadateninformationen durch die gestrichelten Linien in 5 dargestellt werden. Wie ersichtlich, können für den Aufgabenablauf in Cluster 2 zunächst zwei Teilaufgaben des Aufgabenablaufs in der Einheit D und der Einheit E parallel ausgeführt werden, dann kann das Ausführungsergebnis der Einheit D und der Einheit E auf der Einheit A ausgeführt werden. Bei der Koordinationseinheit in Cluster 2 kann es sich um die Einheit E handeln. Der Ausführungsprozess des Aufgabenablaufs in Cluster 2 ist ähnlich und wird hier nicht näher erläutert.
-
BEISPIELHAFTES VERFAHREN
-
8 zeigt einen Ablaufplan eines beispielhaften Verfahrens 800 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 800 kann in der in 5 dargestellten Edge-Datenverarbeitungsumgebung implementiert werden. Zum Zweck der Erläuterung wird das Verfahren 800 unter Bezugnahme auf 5 beschrieben.
-
Bei 810 empfängt das Definitionsmodul 5231 eine Anforderung zum Ausführen eines Aufgabenablaufs. Bei 820 bestimmt das Definitionsmodul 5231 aus einem Satz von Edge-Einheiten einen Cluster von Edge-Einheiten, um den Aufgabenablauf auszuführen. Bei 830 ruft das Definitionsmodul 5231 Metadateninformationen für den Aufgabenablauf und Edge-Einheiten in dem Cluster ab, wobei die Metadateninformationen zum Planen des Aufgabenablaufs in dem Cluster verwendet werden. Bei 840 führen die Edge-Einheiten in dem Cluster den Aufgabenablauf gemäß den Metadateninformationen aus.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann das Definitionsmodul einen Cluster von Edge-Einheiten zum Ausführen des Aufgabenablaufs aus einem Satz von Edge-Einheiten bestimmen, was aufweist: Abrufen von Attributen des Aufgabenablaufs bzw. eines Satzes von Edge-Einheiten durch das Definitionsmodul; Auswählen einer Gruppe von Edge-Einheiten aus dem Satz von Edge-Einheiten als Cluster von Edge-Einheiten, um den Aufgabenablauf durchzuführen, auf der Grundlage einer Zuordnungsbeziehung der Attribute zwischen dem Aufgabenablauf und dem Satz von Edge-Einheiten.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung kann das Definitionsmodul einen Cluster von Edge-Einheiten zum Ausführen des Aufgabenablaufs aus einem Satz von Edge-Einheiten bestimmen, was ferner aufweist: Auswählen einer Edge-Einheit aus den Edge-Einheiten in dem Cluster durch das Definitionsmodul als Koordinationseinheit, um den Status anderer Edge-Einheiten in dem Cluster zu verwalten; Anzeigen der Informationen der Koordinationseinheit durch das Definitionsmodul in den Metadateninformationen.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung können die Edge-Einheiten in dem Cluster den Aufgabenablauf gemäß den Metadateninformationen ausführen, was aufweist: Senden einer Anforderung zum Ausführen des Aufgabenablaufs mit den Metadateninformationen an eine oder mehrere startende Edge-Einheiten in dem Cluster durch ein Sendemodul, wobei der Aufgabenablauf eine Reihe von Teilaufgaben aufweist und die eine oder die mehreren startenden Edge-Einheiten gemäß den Metadateninformationen einer oder mehreren startenden Teilaufgaben entsprechen; Ausführen der entsprechenden Teilaufgabe gemäß den Metadateninformationen durch eine entsprechende Edge-Einheit in dem Cluster; Senden eines oder mehrerer endgültiger Ausführungsergebnisse durch die eine oder die mehreren letzten Edge-Einheiten an ein Empfangsmodul als Reaktion darauf, dass eine oder mehrere letzte Teilaufgaben durch eine oder mehrere letzte Edge-Einheiten ausgeführt wurden.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung können die Edge-Einheiten in dem Cluster den Aufgabenablauf gemäß den Metadateninformationen ausführen, was aufweist: Senden einer Anforderung zum Ausführen des Aufgabenablaufs mit den Metadateninformationen an eine oder mehrere startende Edge-Einheiten in dem Cluster durch ein Sendemodul, wobei der Aufgabenablauf eine Reihe von Teilaufgaben aufweist und die eine oder die mehreren startenden Edge-Einheiten gemäß den Metadateninformationen einer oder mehreren startenden Teilaufgaben entsprechen; Ausführen der entsprechenden Teilaufgabe gemäß den Metadateninformationen durch eine entsprechende Edge-Einheit in dem Cluster; Senden eines oder mehrerer endgültiger Ausführungsergebnisse durch die eine oder die mehreren letzten Edge-Einheiten an ein Empfangsmodul als Reaktion darauf, dass eine oder mehrere letzte Teilaufgaben durch eine oder mehrere letzte Edge-Einheiten ausgeführt wurden; Abrufen von Statusinformationen von anderen Edge-Einheiten in dem Cluster durch die Koordinationseinheit; und Senden der Statusinformationen an das Empfangsmodul.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung weist ein Senden einer Anforderung zum Ausführen des Aufgabenablaufs mit den Metadateninformationen an eine oder mehrere startende Edge-Einheiten in dem Cluster auf: Senden einer Anforderung zum Ausführen des Aufgabenablaufs mit den Metadateninformationen im Kopf der Anforderung an eine oder mehrere startende Edge-Einheiten in dem Cluster durch ein Sendemodul.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung können die Metadateninformationen anzeigen: eine Kennung des Aufgabenablaufs und/oder eine Kennung des Clusters und/oder Kennungen der am Cluster beteiligten Edge-Einheiten und/oder Kennungen der Teilaufgaben des Aufgabenablaufs, die von den Edge-Einheiten in dem Cluster auszuführen sind, und/oder eine Kennung der Koordinationseinheit.
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung können die Metadateninformationen des Clusters von Edge-Einheiten zum Ausführen des Aufgabenablaufs in dem Speichermodul gespeichert werden.
-
Es sei darauf hingewiesen, dass das Verarbeiten des Aufgabenablaufs gemäß den Ausführungsformen dieser Offenbarung durch Computersystem/Server 12 von 1 implementiert werden könnte.
-
Bei der vorliegenden Offenbarung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailstufe der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Offenbarung durchzuführen.
-
Aspekte der vorliegenden Offenbarung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit in einem Schritt gleichzeitig, im Wesentlichen gleichzeitig, teilweise oder vollständig zeitlich überlappend ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden zur Veranschaulichung vorgelegt, sollen aber weder erschöpfend noch auf die offenbarten Ausführungsformen beschränkt sein. Für den Fachmann sind viele Modifikationen und Variationen erkennbar, ohne vom Umfang der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien bestmöglich zu erklären oder um es dem Fachmann zu ermöglichen, die hier offenbarten Ausführungsformen zu verstehen.