DE102016205297A1 - Festlegen von speicherebenen zum platzieren von datensätzen während des ausführens von aufgaben in einem arbeitsablauf - Google Patents

Festlegen von speicherebenen zum platzieren von datensätzen während des ausführens von aufgaben in einem arbeitsablauf Download PDF

Info

Publication number
DE102016205297A1
DE102016205297A1 DE102016205297.7A DE102016205297A DE102016205297A1 DE 102016205297 A1 DE102016205297 A1 DE 102016205297A1 DE 102016205297 A DE102016205297 A DE 102016205297A DE 102016205297 A1 DE102016205297 A1 DE 102016205297A1
Authority
DE
Germany
Prior art keywords
task
tasks
tier
storage
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102016205297.7A
Other languages
English (en)
Inventor
Aayush Gupta
Sangeetha Seshadri
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102016205297A1 publication Critical patent/DE102016205297A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Es werden ein Computerprogrammprodukt, ein System und ein Verfahren zum Festlegen von Speicherebenen zum Platzieren von Datensätzen während des Ausführens von Aufgaben in einem Arbeitsablauf bereitgestellt. Eine Darstellung eines Arbeitsablauf-Ausführungsmusters von Aufgaben für einen Auftrag gibt eine Abhängigkeit der Aufgaben und von Datensätzen an, an denen durch die Aufgaben agiert wird. Es wird eine Zuweisung der Datensätze für die Aufgaben zu einer Mehrzahl von Speicherebenen anhand der Abhängigkeit der Aufgaben festgestellt, die in dem Arbeitsablauf-Ausführungsmuster angegeben ist. Ein Verschieben eines betreffenden Datensatzes von den Datensätzen, an dem durch eine betreffende Aufgabe von den Aufgaben agiert wird, die Gegenstand eines Ereignisses ist, zu einer zugewiesenen Speicherebene, die in der Zuweisung für den betreffenden Aufgabengegenstand angegeben ist, wird zeitlich geplant. Das Verschieben des Datensatzes wird zeitlich so geplant, dass es in Reaktion auf das Ereignis und in Bezug auf die betreffende Aufgabe ausgeführt wird.

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Computerprogrammprodukt, ein System und ein Verfahren zum Festlegen von Speicherebenen zum Platzieren von Datensätzen während des Ausführens von Aufgaben in einem Arbeitsablauf.
  • 2. Beschreibung des Standes der Technik
  • Unternehmen verschieben Datenverarbeitungsoperationen, die eine umfangreiche Datenanalyse beinhalten, zur Cloud, wobei die Datenverarbeitung über verteilte Datenverarbeitungsknoten ausgeführt werden kann. Ein System zum Verwalten des Ausführens mehrerer Aufgaben über zahlreiche Datenverarbeitungsknoten ist als ApacheTM Hadoop® bekannt. (Bei Apache handelt es sich um ein Warenzeichen, und Hadoop ist ein weltweit eingetragenes Warenzeichen der Apache Software Foundation). Bei Hadoop handelt es sich um ein Open-Source-Softwareprojekt, das eine verteilte Verarbeitung großer Datensätze über Cluster von handelsüblichen Servern ermöglicht. Hadoop ist so ausgelegt, dass es von einem einzelnen Server zu tausenden Maschinen bei einem sehr hohen Grad an Fehlertoleranz skaliert werden kann. Die Hadoop-Struktur wird verwendet, um langlaufende Analyseaufträge an sehr großen Datensätzen durch verteilte Prozesse des Map-Reduce-Typs abzuwickeln.
  • Bei einigen verteilten Hadoop-Datenverarbeitungsumgebungen wird ein gemeinsam genutzter Backend-Speicher verwendet, der durch einen Speicher-Manager verwaltet wird, wobei jedem Datenverarbeitungsknoten ein Abschnitt des gemeinsam genutzten Speichers zugewiesen ist, der als lokaler Speicher des Datenverarbeitungsknoten wirkt. Die Speicherschicht kann eine Daten-Klassifizierung heiß/kalt verwenden, um festzulegen, wo Daten auf unterschiedlichen Speicherebenen abgelegt werden, so dass die „heißen“ Daten oder die Daten, auf die häufiger zugegriffen wird, auf der kostenintensiveren leistungsstärkeren Speicherebene platziert werden. Zu weiteren Optionen gehört Zuweisen von leistungsfähigeren Ebenen zu Datensätzen, die stärkere Garantien der Dienstgütevereinbarung (SLA) aufweisen oder auf Preisbildungsmodellen beruhen.
  • Es besteht ein Bedarf an verbesserten Techniken zum Zuweisen von Speicherebenen zu Aufgaben in einer verteilten Datenverarbeitungsumgebung.
  • KURZDARSTELLUNG
  • Es werden ein Computerprogrammprodukt, ein System und ein Verfahren zum Festlegen von Speicherebenen zum Platzieren von Datensätzen während des Ausführens von Aufgaben in einem Arbeitsablauf bereitgestellt. Eine Darstellung eines Arbeitsablauf-Ausführungsmusters von Aufgaben für einen Auftrag, das eine Abhängigkeit der Aufgaben und der Datensätze angibt, an denen durch die Aufgaben agiert wird, wird verarbeitet. Es wird eine Zuweisung der Datensätze für die Aufgaben zu einer Mehrzahl von Speicherebenen anhand der Abhängigkeit der Aufgaben festgelegt, die in dem Arbeitsablauf-Ausführungsmuster angegeben ist, wobei eine leistungsstärkere Speicherebene Speichereinheiten mit schnellerem Zugriff enthält als eine verhältnismäßig leistungsschwächere Speicherebene. Ein Verschieben eines betreffenden Datensatzes von den Datensätzen, an dem durch eine betreffende Aufgabe von den Aufgaben agiert wird, der Gegenstand eines Ereignisses ist, zu einer zugewiesenen Speicherebene, die in der Zuweisung für den betreffenden Aufgabengegenstand angegeben ist, wird zeitlich geplant. Das Verschieben des Datensatzes wird zeitlich so geplant, dass es in Reaktion auf das Ereignis und in Bezug auf die betreffende Aufgabe ausgeführt wird.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1 veranschaulicht eine Ausführungsform einer Datenverarbeitungsumgebung.
  • 2a veranschaulicht ein Beispiel eines Arbeitsablauf-Ausführungsplans.
  • 2b veranschaulicht ein Beispiel eines Auftrags.
  • 3 veranschaulicht eine Ausführungsform von Scheitelpunkt-Informationen der Aufgaben.
  • 4 veranschaulicht eine Ausführungsform einer Speicherebenen-Zuweisung.
  • 5 veranschaulicht eine Ausführungsform eines Planungsereignisses der Platzierung von Datensätzen.
  • 6 veranschaulicht eine Ausführungsform von Operationen zum Zuweisen von Speicherebenen zu Aufgaben.
  • Die 7a und 7b veranschaulichen eine Ausführungsform von Operationen zum Festlegen einer zeitlichen Planung der Speicherebenen-Zuweisung für Datensätze.
  • 8 veranschaulicht eine Ausführungsform von Operationen zum Verschieben von Datensätzen zu zugewiesenen Speicherebenen in Reaktion auf ein Aufgabenereignis.
  • 9 zeigt eine Ausführungsform eines Cloud-Datenverarbeitungsknotens.
  • 10 zeigt eine Ausführungsform einer Cloud-Datenverarbeitungsumgebung.
  • 11 zeigt eine Ausführungsform von Schichten eines Abstraktionsmodells einer Cloud-Datenverarbeitungsumgebung.
  • DETAILLIERTE BESCHREIBUNG
  • Die beschriebenen Ausführungsformen stellen Techniken zum Festlegen einer Speicherebene aus einer Mehrzahl von Speicherebenen bereit, von denen jede einen unterschiedlichen Grad der Speicherleistungsfähigkeit bereitstellt, zum Verwenden für Aufgaben, die in verschiedenen Aufträgen ausgeführt werden, die ein Arbeitsablauf-Ausführungsmuster definieren. Ein Arbeitsablauf-Ausführungsmuster, das die Abhängigkeit von Aufgaben über Aufträge und eine Abhängigkeit über Aufträge angibt, wird verwendet, um die Zuweisung der Datensätze, an denen durch die Aufgaben agiert wird, zu den verschiedenen Speicherebenen festzulegen. Die Speicherebene kann dann das Verschieben der Datensätze zwischen den verschiedenen Ebenen in Reaktion auf unterschiedliche Aufgabenereignisse wie beispielsweise ein Beginnen oder Beenden von Aufgaben zeitlich planen. Regeln werden verwendet zum Festlegen der zeitlichen Planung der Platzierung von Datensätzen wie beispielsweise anhand der Verwandtschaft von Datensätzen, die Datensätze aufweisen, an denen durch dieselbe Aufgabe, durch mehrere Aufgaben gleichzeitig, durch mehrere Aufgaben, die eine Eingabe einer abhängigen Aufgabe bereitstellen, agiert wird, oder anhand weiterer Kriterien wie z.B. die optimale Platzierung anhand einer vorgegebenen Gebrauchsfunktion (wie z.B. Maximieren der insgesamt abgelaufenen Zeit über Arbeitsabläufe hinweg oder innerhalb von Arbeitsabläufen). Die Speicherebene setzt dann die Operation zum Platzieren des Datensatzes in Reaktion auf das Aufgabenereignis um und legt das zeitliche Planen der Platzierung des Datensatzes für das auftretende Aufgabenereignis fest.
  • 1 veranschaulicht eine Ausführungsform einer verteilten Datenverarbeitungsumgebung 100, die in einem oder mehreren Datenverarbeitungsknoten, virtuellen Knoten und/oder physischen Knoten umgesetzt ist, die über ein Netzwerk Daten austauschen können wie z.B. eine Cloud-Datenverarbeitungsumgebung, die eine Anwendungsschicht 102 und eine Speicherschicht 104 zum Speichern von Datensätzen enthält, die durch Aufgaben verarbeitet werden, die in der Anwendungsschicht 102 ausgeführt werden. Alternativ können die Anwendungsschicht 102 und die Speicherschicht 104 in einer einzigen Datenverarbeitungseinheit oder in untereinander verbundenen Datenverarbeitungseinheiten umgesetzt sein. Die Anwendungsschicht 102 enthält einen Auftragsmanager 106, der den Ablauf des Ausführens eines oder mehrerer Aufträge 108 1, 108 2...108 n verwaltet, von denen jeder eine oder mehrere Aufgaben 110 1, 110 2...110 n enthält, die auszuführen sind. Jeder Auftrag 108 1, 108 2...108 n weist eine Sammlung von einem oder mehreren Aufgaben 110 1, 110 2...110 n auf. Eine Aufgabe weist eine Arbeitseinheit auf, die ausgeführt werden muss, und kann Aufgaben aufweisen, bei denen es sich um Teilaufgaben handelt, wobei Aufgaben gleichzeitig parallel oder sequenziell ablaufen können, wobei eine beendet werden muss, bevor eine weitere Aufgabe beginnt. Die Aufträge 108 1, 108 2...108 n können voneinander abhängig sein, wobei bestimmte der Aufgaben 110 1, 110 2...110 n in mehreren Aufträgen von einer Eingabe oder von dem Beenden von Aufgaben in einem anderen Auftrag abhängig sein können. Eine Aufgabe kann außerdem von dem Beenden einer Aufgabe in demselben Auftrag abhängen. Für sequenzielle Arbeitsabläufe muss eine bestimmte Teilmenge der Aufgaben 110 1, 110 2...110 n beendet werden, bevor die nächste abhängige Aufgabe in demselben oder einem anderen Auftrag 108 1, 108 2...108 n beginnen kann. Auf diese Weise können Aufgaben von dem Ausführen von Aufgaben in demselben oder in unterschiedlichen Aufträgen abhängig sein. Analyse-Arbeitslasten enthalten häufig Zwischen-Abhängigkeiten über Aufträge hinweg, da analytische Anfragen in eine Reihe von Stapelverarbeitungsaufträgen umgesetzt werden, wobei die Ausgabe eines Auftrags als Eingabe in einen nächsten Auftrag verwendet werden kann.
  • Ein Arbeitsablauf-Ausführungsmuster 200 stellt ein Ablaufmuster bereit, das den Ablauf des Ausführens von Aufgaben beschreibt, wie z.B. in einem Gerichteten Azyklischen Graphen (DAG) dargestellt. Das Arbeitsablauf-Ausführungsmuster 200 kann gemäß einer Hadoop-Struktur oder anderer Strukturen zum Verarbeiten von Arbeitsabläufen aufgebaut sein, die in der Technik bekannt sind. Das Arbeitsablauf-Ausführungsmuster 200 kann einen umfangreichen Auftrag der Datenanalyse oder andere Auftragstypen aufweisen.
  • Die Speicherschicht 104 verwaltet die Platzierung von Datensätzen, an denen durch die Aufgaben 110 1, 110 2...110 n in verschiedenen Speicherebenen 112 1, 112 2...112 n agiert wird. Auf diese Weise wird dem lokalen Speicher, der von den Datenverarbeitungsknoten verwendet wird, die die Aufgaben 110 1, 110 2...110 n in der Anwendungsschicht 102 ausführen, ein lokaler Speicher in einer der gemeinsam genutzten Speicherebenen 112 1, 112 2...112 n zugewiesen. Jede Speicherklasse kann eine andere Speichermanagementklasse aufweisen, die einen anderen Grad der Speicherleistungsfähigkeit bereitstellt, wobei eine leistungsfähigere Speicherebene 112 1, 112 2...112 n leistungsfähigere Speichereinheiten als eine leistungsschwächere Ebene enthält. Beispielsweise kann eine Ebene 112 1 mit höchster Leistungsfähigkeit Halbleiter-Datenträger (SSDs) mit schnellem Zugriff enthalten, wohingegen eine Ebene 112 2 mit mittlerer Leistungsfähigkeit Festplattenlaufwerke mit schnellem Zugriff enthalten kann und eine Ebene 112 n mit geringster Leistungsfähigkeit Festplattenlaufwerke mit langsamstem Zugriff enthalten kann.
  • Die Speicherschicht 104 enthält einen Speicherebenen-Manager 116 zum Verwalten der Platzierung von Datensätzen, an deren durch die Aufgaben 110 1, 110 2...110 n auf den Speicherebenen 112 1, 112 2...112 n in Reaktion auf Ereignisse der Aufgabenausführung agiert wird. Der Speicherebenen-Manager 116 kann von der Anwendungsschicht 100 das Arbeitsablauf-Ausführungsmuster 200 empfangen und aus dem Arbeitsablauf-Ausführungsmuster Speicherebenen-Zuweisungen 400 festlegen, die eine Zuweisung einer Speicherebene 112 1, 112 2...112 n zu jeder Aufgabe 110 1, 110 2...110 n in den Aufträgen 108 1, 108 2...108 n bereitstellen. Bei bestimmten Ausführungsformen werden die Datensätze, an denen durch eine Aufgabe 110 1, 110 2...110 n agiert wird, vorzugsweise auf der zugewiesenen Speicherebene 112 1, 112 2...112 n platziert. Der Speicherebenen-Manager 116 kann des Weiteren einen Zeitplan 500 zum Platzieren von Datensätzen erzeugen, der einen Zeitplan zum Verschieben von Datensätzen, an denen durch die Aufgaben agiert wird, zwischen den Speicherebenen 112 1, 112 2...112 n anhand von verschiedenen Ereignissen, die auftreten, oder von Zuständen der Aufgaben wie beispielsweise Beginnen einer Aufgabe, Beenden einer Aufgabe usw. bereitstellen.
  • Bei einer Ausführungsform kann der Speicherebenen-Manager 116 im Voraus den Zeitplan 500 zum Platzieren von Datensätzen zum Verwenden während des Ausführens von Aufgaben 110 1, 110 2...110 n durch die Anwendungsschicht 102 erzeugen. Bei einer alternativen Ausführungsform können die Festlegungen des Zeitplans 500 zum Platzieren von Datensätzen in Echtzeit erfolgen, während Aufgabenereignisse verarbeitet werden, um sie zum Zeitpunkt des Empfangens des Aufgabenereignisses umzusetzen.
  • Die Speichereinheiten, die zum Umsetzen der Speicherebenen 112 1, 112 2...112 n verwendet werden, können eine oder mehrere Speichereinheiten enthalten, die nach dem Stand der Technik bekannt sind wie beispielsweise untereinander verbundene Speichereinheiten, wobei die Speichereinheiten Festplattenlaufwerke, Halbleiter-Datenträger (SSDs) mit Halbleiter-Elektronik, EEPROMs (elektrisch löschbare programmierbare Festwertspeicher), Flash-Speicher, Flash-Plattenspeicher, Direktzugriffsspeicher-(RAM-)Datenträger, Speicherklassen-Speicher (SCM) usw., Phasenänderungs-Speicher (PCM), Widerstands-Direktzugriffsspeicher (RRAM), Spintransfer-Drehmoment-Speicher (STM-RAM), RAM mit leitender Brücke (CBRAM), magnetische Festplattenlaufwerke, optische Laufwerke, Band usw. aufweisen. Die Speichereinheiten in einer Speicherebene können möglicherweise als Redundantes Array unabhängiger Platten (RAID-Array), ein Just-a-Bunch-of-Disk-(JBOD-)Array oder in Form anderer Anordnungen organisiert sein. Die Speichereinheiten in jeder der Speicherebenen 112 1, 112 2...112 n können mit einem Profil der Speicherleistungsfähigkeit konsistent sein, das der Speicherebene zugehörig ist.
  • Die Anwendungsschicht 102 und die Speicherschicht 104 können in Computersystemen in einem oder mehreren Datenverarbeitungsknoten virtuell oder physisch umgesetzt sein, die über ein Netzwerk Daten austauschen können wie beispielsweise ein Speicherbereich-Netzwerk (SAN), ein Lokalbereichnetz (LAN), ein Intranet, das Internet, ein Weitbereichsnetz (WAN), ein Peer-zu-Peer-Netzwerk, ein drahtloses Netzwerk, ein arbitriertes Schleifen-Netz usw. Bei einer Ausführungsform kann die Datenverarbeitungsumgebung 100 eine Cloud-Datenverarbeitungsumgebung aufweisen, wobei Operationen über mehrere Datenverarbeitungsknoten verteilt erfolgen.
  • Es sind zwar bestimmte Anzahlen von Instanzen von Elementen gezeigt wie z.B. Aufträge, Aufgaben und Speicherebene usw., es kann jedoch eine beliebige Anzahl dieser Elemente vorhanden sein.
  • 2a veranschaulicht ein Beispiel einer Arbeitsablauf-Ausführungsumgebung 200, die beispielsweise eine Mehrzahl von Aufträgen 202 1, 202 2, und 202 3 enthält. Der Arbeitsablauf 200 weist einen DAG auf, der den Ablauf des Ausführens von Aufgaben zeigt, die in dem Muster 200 die Scheitelpunkte, z.B. 300 i aufweisen. Bei dem Beispiel von 2a sind Aufgaben in unterschiedlichen Aufträgen von dem Ausführen und Beenden vorhergehender Aufgaben in demselben oder anderen Aufträgen abhängig, und Aufträge sind untereinander von anderen Aufträgen abhängig.
  • 2b stellt ein Beispiel eines Auftrags 250 zum Verarbeiten einer Anfrage bereit, die vier Aufgaben enthält, eine erste Aufgabe Grep, bei der eine Operation Grep ausgeführt wird, bei der es sich um eine Aufgabe handelt, bei der Dokumente nach einer übereinstimmenden Zeichenfolge durchsucht werden, eine zweite Aufgabe Pagerank, bei der die Menge von Dokumenten, die durchsucht werden, gemäß einer Reihenfolge eingestuft werden, eine dritte Aufgabe Sort zum Sortieren der Zeichenfolgen, die sich aus der der Aufgabe Grep ergeben, und eine vierte Aufgabe Join zum Zusammenführen der Ausgaben der Operationen Sort und Pagerank anhand der Benutzer-Anfrage.
  • 3 veranschaulicht eine Ausführungsform von Aufgaben-Scheitelpunkt-Informationen 300 für eine der Aufgaben, die in dem Arbeitsablauf des Arbeitsablauf-Ausführungsmusters 200 dargestellt sind, zu denen gehören: eine Scheitelpunkt-Kennung (ID) 302, die den Scheitelpunkt in dem Arbeitsablaufmuster 200 kennzeichnet; eine Auftrags-Kennung 304 des Auftrags, der eine Aufgabe 306 enthält, die durch den Scheitelpunkt 302 dargestellt wird; übergeordnete Aufgaben 308, die null oder eine oder mehrere Aufgaben aufweisen, die beendet werden müssen, bevor die Aufgabe 306 beginnen kann, wie beispielsweise Aufgaben, die der Aufgabe 306 eine Eingabe bereitstellen oder die der Aufgabe 306 in einem sequenziellen Arbeitsablauf vorhergehen; untergeordnete Aufgaben 312, die null oder eine oder mehrere Aufgaben aufweisen, die nicht beginnen können, bevor die Aufgabe 306 beendet ist, wie beispielsweise Aufgaben, die eine Eingabe von der Aufgabe 306 empfangen oder die der Aufgabe 306 in einem sequenziellen Arbeitsablauf folgen; und ein oder mehrere Datensätze 312, an denen durch die Aufgabe 306 agiert wird.
  • 4 veranschaulicht eine Ausführungsform einer Instanz einer Speicherebenen-Zuweisung 400 i, die eine Aufgaben-Kennung 402 und eine zugehörige Speicherebene 404 aufweist, die eine der Speicherebenen 112 1, 112 2...112 n aufweist, die den Datensätzen bevorzugt zugewiesen ist, an denen durch die Aufgabe 402 agiert wird.
  • 5 veranschaulicht eine Ausführungsform einer Instanz eines Zeitplanereignisses 500 i der Datensatz-Platzierung, die enthält: eine Aufgabe i, j 502, wobei es sich bei i um eine Aufgabe in einem Auftrag j handelt; ein Ereignis 504, das für die Aufgabe 502 erfolgt, z.B. Beginnen, Beenden usw.; und für eine Mehrzahl von Datensätzen 506 1...506 n, an denen durch die Aufgabe 502 agiert wird, die das Aufgaben-Ereignis 504 feststellt, die zugewiesenen Speicherebenen 508 1...508 n, auf denen sich die Datensätze 504 1...504 n in Reaktion auf das Aufgaben-Ereignis 504 vorzugsweise befinden. Das Vorhandensein eines Paars aus Datensatz 506 i und zugewiesener Speicherebene 508 i in dem Zeitplanereignis 500 i der Datensatzplatzierung kann angeben, dass der Datensatz 506 i zu der zugewiesenen Speicherebene 508 i zu verschieben ist.
  • 6 veranschaulicht eine Ausführungsform von Operationen, die durch den Speicherebenen-Manager 116 ausgeführt werden, um die Speicherebenen-Zuweisungen 400 zu erzeugen, indem Regeln auf den Aufgabenausführungsablauf, der in dem Arbeitsablauf-Ausführungsmuster 200 dargestellt ist, und die Aufgaben-Scheitelpunkt-Informationen 300 i angewendet werden. Beim Auslösen von Operationen (im Block 600), um Speicherebenen 112 1, 112 2...112 n den Aufgaben 110 1, 110 2...110 n zuzuweisen, verarbeitet der Speicherebenen-Manager 116 (im Block 602) das Arbeitsablauf-Ausführungsmuster 200 und die Aufgaben-Scheitelpunkt-Informationen 300 i. Der Speicherebenen-Manager 116 ermittelt (im Block 606) aus dem Arbeitsablauf-Ausführungsmuster 200 zugehörige Datensätze, die Datensätze aufweisen, an denen agiert wird: durch eine Aufgabe 110 1, 110 2...110 n; gleichzeitig durch eine Gruppe von Aufgaben 110 1, 110 2...110 n von wenigstens einem der Aufträge 108 1, 108 2...108 n; durch eine Gruppe von Aufgaben 110 1, 110 2...110 n, die einer abhängigen Aufgabe eine Eingabe bereitstellen, die die Eingabe von der Gruppe von Aufgaben empfangen muss, bevor die abhängige Aufgabe ausgeführt werden kann; und durch sequenzielle Aufgaben 110 1, 110 2...110 n in einem der Aufträge 108 1, 108 2...108 n, wobei eine Aufgabe in der Abfolge nicht begonnen werden kann, bevor die vorhergehende Aufgabe in der Abfolge beendet wird. Weitere Faktoren können außerdem verwendet werden, um zugehörige Datensätze zu ermitteln. Für jeden der zugehörigen Datensätze wird (im Block 608) ermittelt, ob auf einer leistungsstärkeren Speicherebene ausreichend Platz vorhanden ist, um die zugehörigen Datensätze zu speichern, während aktuelle Aufgaben an den zugehörigen Datensätzen agieren. Für zugehörige Datensätze, die der leistungsstärkeren Speicherebene 112 1 zugewiesen werden können, während eine oder mehrere Aufgaben an den zugehörigen Datensätzen agieren, weist der Speicherebenen-Manager 116 (im Block 610) die Aufgaben, die an den zugehörigen Datensätzen agieren, der leistungsstärkeren Speicherebene zu. Für zugehörige Datensätze, die der leistungsstärkeren Speicherebene nicht zugewiesen werden können, während eine oder mehrere Aufgaben an den zugehörigen Datensätzen agieren, weist der Speicherebenen-Manager 116 (im Block 612) die Aufgaben, die an diesen zugehörigen Datensätzen agieren, einer Speicherebene 112 2...112 n zu, die leistungsschwächer ist als die leistungsstärkere Speicherebene.
  • Beim Ermitteln, wie zugehörige Datensätze einer leistungsstärkeren Speicherebene 112 1 zugewiesen werden, kann der Speicherebenen-Manager 116 zugehörige Datensätze gemäß einem bestimmten Einflussfaktor auswählen, um das Platzieren auf der leistungsstärkeren Speicherebene 112 1 zu optimieren, wie etwa Größe, wie beispielsweise durch bevorzugtes Platzieren von zugehörigen Datensätzen, an denen durch eine größere Anzahl von Aufgaben auf der leistungsstärkeren Speicherebene 112 1 agiert wird bzw. an denen durch Aufgaben mit höherer Priorität agiert wird, usw.
  • Der Speicherebenen-Manager 116 kann (im Block 614) Datensätze, die nicht Teil eines zugehörigen Datensatzes sind, einer leistungsschwächeren Speicherebene 112 2...112 n zuweisen. Das Ergebnis der in 6 ermittelten Zuweisung ist die Speicherebenen-Zuweisung 400, die bevorzugte Zuweisungen von Speicherebenen 404 zu Aufgaben 402 bereitstellt.
  • Die 7a und 7b veranschaulichen eine Ausführungsform von Operationen, die von dem Speicherebenen-Manager 116 ausgeführt werden, um den Zeitplan 500 der Datensatz-Platzierung auf der Grundlage des Arbeitsablauf-Ausführungsmusters 200, von Scheitelpunkt-Informationen 300 i und der Speicherebenen-Zuweisung 400 zu ermitteln. In 7a beginnt der Speicherebenen-Manager 116 (im Block 702) nach dem Einleiten der Operation zum Ermitteln der zeitlichen Planung der Speicherebenen-Zuweisung für Datensätze eine Schleife von Operationen in den Blöcken 702 bis 726 für eine betreffende Aufgabe i, j der Aufgabe i im Auftrag j. Für jede betreffende Aufgabe i, j führt der Speicherebenen-Manager 116 eine Schleife von Operationen in den Blöcken 704 bis 724 für jeden betreffenden Datensatz k aus, an dem durch die betreffende Aufgabe i, j agiert werden soll. Wenn (im Block 706) beim Beginnen der Aufgabe i, j an dem Datensatz k nicht durch eine andere Aufgabe agiert wird, wird (im Block 708) ermittelt, ob sich der Datensatz k beim Beginnen der Aufgabe i, j auf der zugewiesenen Speicherebene 404 für die Aufgabe i, j 402 befindet. Wenn (im Block 708) beim Beginnen der Aufgabe i, j der Datensatz k sich nicht auf der zugewiesenen Speicherebene für die Aufgabe i, j befindet, plant der Speicherebenen-Manager 116 (im Block 712) ein Verschieben des Datensatzes k zu der zugewiesenen Speicherebene für die Aufgabe i, j, wenn die Aufgabe i, j begonnen wird, beispielsweise indem dem Planungsereignis 500 i zur Datensatz-Platzierung für die Aufgabe i, j 502 bei einem Beginn-Ereignis 504 der Datensatz k und die zugewiesene Speicherebene 404 als ein Paar aus Datensatz 506 i und zugewiesener Speicherebene 508 i hinzufügt werden. Wenn sich (im Block 709) der Datensatz k auf der zugewiesenen Speicherebene 404 für die Aufgabe i, j befindet, wird der Datensatz k (im Block 710) so geplant, dass er auf der zugewiesenen Speicherebene 404 bleibt, wenn die Aufgabe i, j begonnen wird. Der Datensatz k kann so geplant werden, dass er auf der zugewiesenen Speicherebene bleibt, indem kein Paar aus Datensatz 506 i und zugewiesener Speicherebene 508 i dem Planungsereignis 500 i zur Datensatz-Platzierung hinzugefügt wird.
  • Wenn (im Block 706) beim Beginnen der Aufgabe i, j an dem Datensatz k durch eine andere Aufgabe agiert wird, ermittelt der Speicherebenen-Manager 116 (im Block 714) beim Beginnen der Aufgabe i, j, ob es sich bei der Speicherebene 404, die der Aufgabe i, j zugewiesen ist, um eine leistungsstärkere Speicherebene handelt als die momentane Speicherebene, auf der sich der Datensatz k befindet. Wenn das der Fall ist, plant der Speicherebenen-Manager 116 (im Block 712) ein Verschieben des Datensatzes k zu der zugewiesenen Speicherebene 404 für die Aufgabe i, j beim Beginnen der Aufgabe i, j, indem beispielsweise die Aufgabe i, j und die zugewiesene Speicherebene 404 dem Planungsereignis 500 i zur Datensatz-Platzierung als Beginnen-Ereignis der Aufgabe i, j angegeben wird. Wenn andernfalls (im Block 714) die zugewiesene Speicherebene 404 für die Aufgabe i, j nicht leistungsstärker als die momentane Speicherebene ist, geht die Steuerung zum Block 710, um den Datensatz auf der momentanen Speicherebene zu belassen.
  • Nach Festlegen der Planungsoperation, die für den Datensatz k auszuführen ist, wenn die Aufgabe i, j begonnen wird, geht die Steuerung in 7b (vom Block 710 oder 712) zum Block 716, um ein Planen für das Beenden der Aufgabe i, j auszuführen. Wenn (im Block 716) beim Beenden der Aufgabe i, j keine zusätzliche Aufgabe weiterhin an dem Datensatz k agiert, plant der Speicherebenen-Manager 116 (im Block 718) ein Verschieben des Datensatzes k zu einer leistungsschwächeren Speicherebene als die Speicherebene, auf der sich der Datensatz momentan beim Beenden der Aufgabe i, j befindet. Die Planung im Block 718 kann ausgeführt werden, indem zum Planungsereignis 500 i zur Datensatz-Platzierung für die Aufgabe i, j 502 und ein Beenden-Ereignis 504 ein Paar aus Datensatz k und zugewiesener leistungsschwächerer Speicherebene 404 hinzugefügt wird, um das Verschieben zu der leistungsschwächeren Speicherebene zu planen. Wenn (im Block 716) eine zusätzliche Aufgabe an dem Datensatz k agiert, wenn die Aufgabe i, j beendet wird, wird (im Block 720) ermittelt, ob die zusätzliche Aufgabe, die an dem Datensatz k agiert, einer leistungsschwächeren Speicherebene als die momentane Speicherebene, auf der sich der Datensatz k momentan befindet, zugewiesen ist. Wenn das der Fall ist, plant der Speicherebenen-Manager 116 (im Block 722) ein Verschieben des Datensatzes k zu der Speicherebene 404, die der zusätzlichen Aufgabe zugewiesen ist, beim Beenden der Aufgabe i, j. Nach Ausführen der Planung für das Ereignis Aufgabe beendet (vom Block 718 oder 722) oder Feststellen, dass für den Datensatz k beim Beenden der Aufgabe i, j keine Planung erforderlich ist (von der Entscheidung keine Verzweigung des Blocks 720), geht die Steuerung (im Block 724) zurück zum Block 704, um einen nächsten Datensatz zu betrachten, an dem die Aufgabe i, j agiert, bis jeder einzelne oder mehrere Datensätze betrachtet wurden. Nach Betrachten aller Datensätze, an denen durch die Aufgabe i, j agiert wird, geht die Steuerung (im Block 726) zurück zum Block 702, um die nächste Aufgabe i, j zu betrachten, bis alle Aufgaben 110 1, 110 2...110 n in allen Aufträgen 108 1, 108 2...108 n berücksichtigt wurden.
  • Der Speicherebenen-Manager 116 ermittelt (im Block 728) Datensätze, die in Reaktion auf ein Beginnen oder Beenden einer Aufgabe 110 1, 110 2...110 n anschließend zu verarbeiten sind. Der Speicherebenen-Manager 116 plant (im Block 730) ein Einstufen des Datensatzes, der anschließend verarbeitet wird, in eine leistungsstärkere Speicherebene, die leistungsstärker ist als wenigstens eine andere Speicherebene, damit der Datensatz auf der leistungsstärkeren Speicherebene zur Verfügung steht, wenn der Datensatz verarbeitet wird. Zum Ausführen der Planung kann das Paar aus Datensatz, der eingestuft werden soll, und zugewiesener Speicherebene wie beispielsweise eine leistungsstärkere Speicherebene, einem Planungsereignis 500 i für das Aufgaben-Planungsereignis hinzugefügt werden, das das Einstufen auslöst.
  • Die beschriebenen Operationen der 7a und 7b erläutern das Planen des Verschiebens von Datensätzen in Reaktion auf ein Beginnen- und Beenden-Ereignis für eine Aufgabe. Bei zusätzlichen Ausführungsformen kann das Planen des Verschiebens eines betreffenden Datensatzes, an dem eine betreffende Aufgabe agiert, für andere Ereignistypen ausgeführt werden, die bezüglich der betreffenden Aufgabe zusätzlich zu Beenden- und Beginnen-Ereignissen für die betreffende Aufgabe auftreten.
  • Bei den beschriebenen Operationen der 7a und 7b wird der Plan 500 der Datensatz-Platzierung auf der Grundlage der Speicherebenen-Zuweisungen 400 und des Zustands von Operationen anderer Aufgaben in Bezug auf einen Datensatz erzeugt, wenn die Aufgabe, die an einem Datensatz agiert, begonnen oder beendet werden soll. Bei einer alternativen Ausführungsform können die Planungsoperationen nicht in einem Plan 500 der Datensatz-Platzierung gespeichert werden, sondern können stattdessen in Echtzeit festgelegt werden, wenn die Anwendungsschicht 102 Aufgabenereignisse verarbeitet, um die Operation des Zuweisens der Datensatz-Speicherebene in Reaktion auf das Aufgaben-Ereignis zu ermitteln, das in Echtzeit auftritt.
  • 8 veranschaulicht eine Ausführungsform von Operationen, die von dem Speicherebenen-Manager 116 ausgeführt werden, um Operationen der Datensatz-Platzierung auszuführen, während Aufgaben in der Anwendungsschicht 102 ausgeführt werden. Beim Empfangen einer Benachrichtigung (im Block 800) von der Anwendungsschicht 102 über das Beginnen oder Beenden der Aufgabe, ermittelt der Speicherebenen-Manager 116 (im Block 802) das Speicherebenen-Planungsereignis für die Aufgabe und das gemeldete Ereignis für die Aufgabe. Dieses Ermitteln kann erfolgen, indem das Planungsereignis 500 i der Datensatz-Platzierung für die Aufgabe 502 und das Ereignis 504, für das die Benachrichtigung empfangen wurde, verarbeitet werden. Der Speicherebenen-Manager 116 führt (im Block 804) die Planungsoperation aus, um den einen oder mehrere Datensätze zu der zugewiesenen Speicherebene zu verschieben, die durch das Planungsereignis spezifiziert ist, z.B. 500 i, wenn spezifiziert wurde, dass eine Verschiebungsoperation ausgeführt werden soll. Nach dem Ausführen der Datensatz-Platzierungsoperationen, um die Datensätze, an denen unter dem Einfluss des Ereignisses auf den zugewiesenen Speicherebenen durch die Aufgabe agiert wird, zu den zugewiesenen Speicherebenen zu verschieben oder damit sie auf diesen verbleiben, gibt der Speicherebenen-Manager 116 (im Block 806) eine Bestätigung an die Anwendungsschicht 104 zurück, dass die Operationen zur Datensatz-Platzierung beendet wurden.
  • Bei der beschriebenen Operationen von 8 findet ein Abgleich zwischen Anwendungsschicht 102 und Speicherschicht 104 statt, um sicherzustellen, dass sich Datensätze beim Beginnen und Beenden von Aufgaben auf der geeigneten Speicherebene 112 2...112 n befinden. Die Anwendungsschicht 102 kann warten, bis die Benachrichtigung von der Speicherschicht 104 empfangen wurde, dass die Operationen zum Zuweisen von Datensätzen beendet wurden, bevor sie in dem Arbeitsablauf-Ausführungsmuster 200 zum Verarbeiten einer nächsten Aufgabe in einem der Aufträge 108 1, 108 2...108 n geht.
  • Ausführungsformen von Cloud-Datenverarbeitung
  • Zwar enthält diese Offenbarung eine genaue Beschreibung der Cloud-Datenverarbeitung, es sollte jedoch von vornherein klar sein, dass Umsetzungen der hier zitierten Lehren nicht auf eine Cloud-Datenverarbeitungsumgebung beschränkt sind. Stattdessen können Ausführungsformen der vorliegenden Erfindung in Verbindung mit jedem anderen Typ von Datenverarbeitungsumgebung umgesetzt werden, der gegenwärtig bekannt ist oder zukünftig entwickelt wird.
  • Cloud-Datenverarbeitung ist ein Modell des Liefern von Diensten, mit dem ein problemloser Netzwerkzugang auf Anforderung auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Speichereinrichtungen, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht wird, die rasch bereitgestellt und mit einem minimalen Verwaltungsaufwand oder minimaler Wechselwirkung mit einem Anbieter des Dienstes aufgegeben werden können. Dieses Cloud-Modell kann wenigstens fünf Charakteristiken, wenigstens drei Dienstmodelle und wenigstens vier Einsatzmodelle enthalten.
  • Es gibt folgende Charakteristiken:
  • Selbstbedienung auf Anforderung: ein Cloud-Kunde kann sich mit Datenverarbeitungsfunktionen wie etwa Serverzeit und Netzwerk-Speichereinrichtungen bei Bedarf automatisch einseitig versorgen, ohne dass eine menschliche Wechselwirkung mit dem Dienstanbieter erforderlich ist.
  • Allgemeiner Netzwerkzugang: Funktionen können über ein Netzwerk zur Verfügung stehen, und der Zugang kann über Standard-Mechanismen erfolgen, die eine Verwendung von heterogenen Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Ressourcen-Poolbildung: die Datenverarbeitungs-Ressourcen eines Anbieters werden in einem Pool zusammengefasst, um mehrere Kunden unter Verwendung eines Mehrmandanten-Modells mit unterschiedlichen physischen und virtuellen Ressourcen zu versorgen, die dynamisch zugewiesen und nach Bedarf erneut zugewiesen werden. Es gibt eine Art von Standortunabhängigkeit dahingehend, dass der Kunde im Allgemeinen keine Kontrolle oder Kenntnis des genauen Standorts der bereitgestellten Ressource hat, er kann jedoch in der Lage sein, den Standort auf einer höheren Abstraktionsebene (z.B. Land, Staat oder Datenzentrum) anzugeben.
  • Schnelle Anpassbarkeit: Funktionen können schnell und elastisch, in einigen Fällen automatisch für eine schnelle Erweiterung, bereitgestellt werden und für eine schnelle Verkleinerung rasch freigegeben werden. Für den Kunden erscheinen die Funktionen, die zur Bereitstellung zur Verfügung stehen, häufig unbegrenzt und können jederzeit in beliebiger Menge gekauft werden.
  • Gemessener Dienst: Cloud-Systeme steuern und optimieren automatisch die Ressourcen-Nutzung durch die vorteilhafte Nutzung einer Messfunktion auf einem bestimmten Abstraktionsgrad, der für den Typ des Dienstes geeignet ist (z.B. Speicherung, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcen-Nutzung kann überwacht, gesteuert, und es kann von ihr berichtet werden, wodurch sowohl für den Anbieter als auch für den Kunden des genutzten Dienstes eine Transparenz bereitgestellt wird.
  • Es gibt folgende Dienstmodelle:
  • Software als Dienst (Software as a Service, SaaS): Die für den Kunden bereitgestellte Funktion besteht darin, die Anwendungen des Anbieters zu verwenden, die in einer Cloud-Infrastruktur ausgeführt werden. Die Anwendungen sind von verschiedenen Client-Einheiten über eine Thin-Client-Schnittstelle wie etwa einen Web-Browser (z.B. eMails auf Web-Grundlage) zugänglich. Der Kunde verwaltet oder steuert nicht die zugrunde liegende Cloud-Infrastruktur, zu der Netzwerk, Server, Betriebssysteme, Speicher oder sogar einzelne Anwendungsmöglichkeiten gehören, mit der möglichen Ausnahme von begrenzten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Plattform als Dienst (Platform as a Service, PaaS): Die für den Kunden bereitgestellte Funktion besteht darin, in der Cloud-Infrastruktur vom Kunden erzeugte oder erworbene Anwendungen einzusetzen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erzeugt werden. Der Kunde verwaltet oder steuert nicht die zugrunde liegende Cloud-Infrastruktur, zu der Netzwerke, Server, Betriebssysteme oder Speicher gehören, hat jedoch steuernden Einfluss auf die eingesetzten Anwendungen und möglicherweise auf Konfigurationseinstellungen einer Anwendungs-Hosting-Umgebung.
  • Infrastruktur als Dienst (Infrastructure as a Service, IaaS): Die für den Kunden bereitgestellte Funktion besteht in der Bereitstellung von Verarbeitung, Speichereinrichtungen, Netzwerken und anderen grundlegenden Datenverarbeitungs-Ressourcen, wobei der Kunde in der Lage ist, willkürlich Software einzusetzen und zu betreiben, die Betriebssysteme und Anwendungen enthalten kann. Der Kunde verwaltet und steuert nicht die zugrunde liegende Cloud-Infrastruktur, hat jedoch steuernden Einfluss auf Betriebssysteme, Speichereinrichtungen, eingesetzte Anwendungen und dies eingeschränkt möglicherweise auch auf ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Es gibt folgende Einsatzmodelle:
  • Private-Cloud: Die Cloud-Infrastruktur wird lediglich für eine Organisation betrieben. Sie kann durch die Organisation oder eine dritte Stelle verwaltet werden und kann intern oder extern vorhanden sein.
  • Community-Cloud: Die Cloud-Infrastruktur wird durch mehrere Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die durch gemeinsame Belange verbunden ist (z.B. Zielsetzung, Sicherheitsanforderungen, Strategie und Konformitätserwägungen). Sie kann durch die Organisationen oder eine dritte Stelle verwaltet werden und kann intern oder extern vorhanden sein.
  • Public-Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid-Cloud: die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehr Clouds (Privat-, Community- oder öffentlich), die eigenständige Entitäten bleiben, jedoch durch eine standardisierte oder rechtlich geschützte Technologie miteinander verbunden sind, die eine Daten- und Anwendungsbeweglichkeit ermöglicht (z.B. Cloud-Bursting zum Lastausgleich zwischen Clouds).
  • Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert mit dem Schwerpunkt auf Statusunabhängigkeit, geringe Kopplung, Modularität und semantische Interoperabilität. Der Kern der Cloud-Datenverarbeitung ist eine Infrastruktur, die ein Netzwerk aus miteinander verbundenen Knoten aufweist.
  • In 9 ist eine schematische Darstellung eines Beispiels eines Cloud-Datenverarbeitungsknotens gezeigt wie beispielsweise die Knoten, die die Aufträge und Aufgaben in der Anwendungsschicht 102 ausführen, und die Knoten, die die Verwaltungsoperationen der Speicherschicht 104 des Speicherebenen-Managers 116 ausführen. Der Cloud-Datenverarbeitungsknoten 900 ist lediglich Beispiel eines geeigneten Cloud-Datenverarbeitungsknotens und soll keinerlei Einschränkungen an dem Umfang der Verwendungsmöglichkeiten oder der Funktionalität von Ausführungsformen der hier beschriebenen Erfindung darstellen. Unabhängig davon kann der Cloud-Datenverarbeitungsknoten 900 umgesetzt werden und/oder jede der vorstehend ausgeführten Funktionalitäten ausführen.
  • Bei dem Cloud-Datenverarbeitungsknoten 900 handelt es sich um ein Computersystem/einen Server 902, das bzw. der mit zahlreichen anderen Umgebungen oder Konfigurationen eines Universal- oder speziellen Datenverarbeitungssystems betrieben werden kann. Zu Beispielen bekannter Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem Computersystem/Server 902 geeignet sind, gehören Personal-Computer-Systeme, Server-Computersysteme, Thin-Clients, Thick-Clients, handgehaltene oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxes, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Datenverarbeitungsumgebungen, die eines bzw. eine der oben genannten Systeme oder Einheiten enthalten, und dergleichen, sind jedoch nicht auf diese beschränkt.
  • Das Computersystem/der Server 902 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Befehlen wie z.B. als Programmmodule, die durch ein Computersystem ausgeführt werden, beschrieben werden. Programmmodule können im Allgemeinen Routinen, Programme, Objekte, Komponenten, Logikschaltungen, Datenstrukturen usw. enthalten, die spezielle Aufgaben ausführen oder bestimmte Typen abstrakter Daten umsetzen. Das Computersystem/der Server 902 kann in verteilten Cloud-Datenverarbeitungsumgebungen realisiert werden, wobei Aufgaben durch ferne Datenverarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. Bei einer verteilten Cloud-Datenverarbeitungsumgebung können sich Programmmodule in Speichermedien sowohl des lokalen als auch des fernen Computersystems befinden, zu denen Speichereinheiten des Arbeitsspeichers gehören.
  • Wie in 9 gezeigt ist das Computersystem/der Server 902 in dem Cloud-Datenverarbeitungsknoten 900 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/des Servers 902 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 904, einen Systemspeicher 906 und einen Bus 908 enthalten, der zahlreiche Systemkomponenten, darunter der Systemspeicher 906, mit dem Prozessor 904 verbindet, ohne jedoch auf diese beschränkt zu sein.
  • Der Bus 908 repräsentiert einen oder mehrere von verschiedenen Typen von Busstrukturen, darunter einen Speicherbus oder eine Speichersteuereinheit, einen peripheren Bus, einen beschleunigten Grafikanschluss und einen Prozessor- oder lokalen Bus unter Verwendung einer aus einer Vielfalt von Busarchitekturen. Lediglich beispielhaft und nicht einschränkend gehören zu derartigen Architekturen Industry-Standard-Architecture-(ISA-)Bus, Micro-Channel-Architecture-(MCA-)Bus, Enhanced-ISA-(EISA-)Bus, Video-Electronics-Standards-Association-(VESA-)Lokalbus und Peripheral-Component-Interconnects-(PCI-)Bus.
  • Das Computersystem/der Server 902 enthält üblicherweise eine Vielfalt von durch das Computersystem lesbaren Medien. Bei derartigen Medien kann es sich jedes verfügbare Medium handeln, auf das durch das Computersystem/den Server 902 zugegriffen werden kann, und es enthält sowohl flüchtige und nichtflüchtige Medien als auch Wechsel- und Nichtwechsel-Medien.
  • Der Systemspeicher 906 kann durch ein Computersystem lesbare Medien in der Form eines flüchtigen Speichers wie z.B. ein Direktzugriffsspeicher (RAM) 910 und/oder einen Cache-Speicher 912 enthalten. Das Computersystem/der Server 902 kann ferner andere flüchtige/nichtflüchtige Wechsel/Nichtwechsel-Speichermedien des Computersystems enthalten. Lediglich beispielhaft kann das Speichersystem 913 zum Lesen von und zum Schreiben auf Nichtwechsel-, nichtflüchtige magnetische Medien bereitgestellt werden (die nicht gezeigt sind und üblicherweise als „Festplattenlaufwerk“ bezeichnet werden). Obwohl nicht gezeigt können ein magnetisches Plattenlaufwerk zum Lesen von und zum Schreiben auf eine nichtflüchtige magnetische Wechselplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Lesen von und zum Schreiben auf eine nichtflüchtige optische Wechselplatte wie z.B. ein CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. Bei derartigen Fällen kann jedes Medium mit dem Bus 908 durch eine oder mehrere Datenmedien-Schnittstellen verbunden sein. Wie weiter im Folgenden dargestellt und beschrieben wird, kann der Speicher 906 wenigstens ein Programmprodukt mit einer Gruppe von Programmmodulen (z.B. wenigstens einem Programmmodul) enthalten, die so eingerichtet sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Das Programm/Dienstprogramm 914, das eine Gruppe von Programmmodulen 916 (wenigstens ein Programmmodul) aufweist, kann ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme und Programmdaten beispielhaft und nicht als Einschränkung in einem Speicher 906 gespeichert sein. In jedem Betriebssystem, einem oder mehreren Anwendungsprogrammen, anderen Programmmodulen und Programmdaten oder bestimmten Kombinationen hiervon kann eine Vernetzungsumgebung umgesetzt werden. Programmmodule 916 führen im Allgemeinen die Funktionen und/oder Verfahrensweisen von hier beschriebenen Ausführungsformen der Erfindung aus.
  • Das Computersystem/der Server 902 kann außerdem mit einer oder mehreren externen Einheiten 918 wie z.B. eine Tastatur, eine Zeigeeinheit, eine Anzeige 920 usw.; mit einer oder mehreren Einheiten, die ein Zusammenwirken eines Benutzers mit dem Computersystem/Server 902 ermöglichen; und/oder mit allen Einheiten (z.B. Netzwerkkarte, Modem usw.) Daten austauschen, die dem Computersystem/Server 902 einen Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe-(E/A-)Schnittstellen 922 erfolgen. Des Weiteren kann das Computersystem/der Server 902 mit einem oder mehreren Netzwerken wie z.B. einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. das Internet) über einen Netzwerkadapter 924 Daten austauschen. Wie dargestellt tauscht der Netzwerkadapter 924 Daten mit den anderen Komponenten von Computersystem/Server 902 über einen Bus 908 aus. Obwohl nicht gezeigt sollte klar sein, dass in Verbindung mit dem Computersystem/Server 902 weitere Hardware- und/oder Software-Komponenten verwendet werden könnten. Zu Beispielen gehören, sind jedoch nicht beschränkt auf: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchiv-Speichersysteme usw.
  • In 10 ist eine veranschaulichende Cloud-Datenverarbeitungsumgebung 1000 dargestellt. Wie gezeigt weist die Cloud-Datenverarbeitungsumgebung 1000 einen oder mehrere Cloud-Datenverarbeitungsknoten 1000 auf, mit denen lokale Datenverarbeitungseinheiten, die von Cloud-Kunden verwendet werden wie z.B. ein persönlicher digitaler Assistent (PDA) oder ein Funktelefon 1002A, ein Desktop-Computer 1002B, ein Laptop-Computer 1002C und/oder ein Fahrzeug-Computersystem 1002N Daten austauschen können. Die Knoten 1000 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie z.B. in privaten, Community-, öffentlichen oder Hybrid-Clouds, die oben beschrieben wurden, oder in einer Kombination hiervon gruppiert sein (nicht gezeigt). Dadurch kann die Cloud-Datenverarbeitungsumgebung 1000 Infrastruktur, Plattformen und/oder Software als Dienste bereitstellen, für die ein Cloud-Kunde keine Ressourcen in einer lokalen Datenverarbeitungseinheit vorhalten muss. Es ist klar, dass die Typen von Datenverarbeitungseinheiten 1002A bis N, die in 10 gezeigt sind, lediglich veranschaulichend sein sollen und dass Datenverarbeitungsknoten 1000 und die Cloud-Datenverarbeitungsumgebung 1000 mit jedem Typ von computergestützter Einheit über jeden Typ von Netzwerk und/oder von im Netzwerk adressierbarer Verbindung (z.B. unter Verwendung eines Web-Browser) Daten austauschen können.
  • In 11 ist eine Gruppe von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Datenverarbeitungsumgebung 1000 (10) bereitgestellt wird. Es sollte von vornherein klar sein, dass die in 11 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht auf diese beschränkt sind. Wie dargestellt werden die folgenden Schichten und betreffenden Funktionen bereitgestellt:
    Die Hardware- und Software-Schicht 1102 enthält Hardware- und Software-Komponenten. Zu Beispielen von Hardware-Komponenten gehören: Mainframe-Computer, Server auf der Grundlage einer RISC-(Reduced Instruction Set Computer-)Architektur; Speichereinheiten; Netzwerke und Vernetzungskomponenten. Bei einigen Ausführungsformen enthalten Software-Komponenten Netzwerk-Anwendungsserver-Software.
  • Die Virtualisierungsschicht 1004 stellt eine Abstraktionsschicht bereit, von der die folgenden Beispiele virtueller Entitäten bereitgestellt werden können: virtuelle Server; virtuelle Speichereinrichtungen; virtuelle Netzwerke, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • Bei einem Beispiel kann die Verwaltungsschicht 1106 die nachfolgend beschriebenen Funktionen bereitstellen. Ressourcenbereitstellung gewährleistet eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiterer Ressourcen, die zum Ausführen von Aufgaben in der Cloud-Datenverarbeitungsumgebung genutzt werden. Messung und Preisbildung (Metering and Pricing) stellt eine Kostenverfolgungsfunktion in Bezug auf die in der Cloud-Datenverarbeitungsumgebung verwendeten Ressourcen sowie eine Abrechnung oder Fakturierung (Billing and Invoicing) für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftware-Lizenzen aufweisen. Sicherheit (Security) stellt eine Identitätsprüfung für Cloud-Kunden und Aufgaben sowie Schutz von Daten und andere Ressourcen bereit. Benutzerportal (User Portal) stellt einen Zugang zur Cloud-Datenverarbeitungsumgebung für Kunden und Systemadministratoren bereit. Kontextbezogene Dienstgüteverwaltung (Service Level Management) sorgt für eine Zuweisung und Verwaltung von Cloud-Datenverarbeitungsressourcen, so dass vorgeschriebene Dienstgütewerte eingehalten werden. Planung und Erfüllung von Dienstgütevereinbarungen (SLA) sorgt für eine vorbereitende Reservierung und Beschaffung von Cloud-Datenverarbeitungsressourcen, für die gemäß einer Dienstgütevereinbarung (SLA) ein zukünftiger Bedarf erwartet wird.
  • Die Speicherschicht 104 kann in den Funktionen der Verwaltungsschicht 1106 umgesetzt sein.
  • Die Arbeitslastschicht 1108 stellt Beispiele der Funktionalität bereit, für die die Cloud-Datenverarbeitungsumgebung verwendet werden kann. Zu Beispielen der Arbeitslast und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Zuordnung und Navigation; Software-Entwicklung und Lebenszyklus-Verwaltung; Bereitstellung von Bildungsinhalten im virtuellen Klassenzimmer; Datenanalysenverarbeitung; Transaktionsverarbeitung; und die oben beschriebene Anwendungsschicht 102.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Medien) enthalten, auf dem sich computerlesbare Programmbefehle befinden, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem computerlesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit halten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich beispielsweise um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination der Vorhergehenden handeln, ist jedoch nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compactdisk-Festwertspeicher (CD-ROM), eine digitale Versatile-Disk (DVD), einen Speicherstick, eine Diskette (Floppy Disk), eine mechanisch codierte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Nut, in denen Befehle aufgezeichnet sind, oder jede geeignete Kombination des Vorhergehenden. Ein hier verwendetes computerlesbares Speichermedium sollte nicht so ausgelegt werden, dass es sich dabei per se um vergängliche Signale handelt wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die durch ein Lichtwellenleiterkabel geleitet werden) oder elektrische Signale, die durch eine Leitung übertragen werden.
  • Computerlesbare Programmbefehle, die hier beschrieben werden, können von einem computerlesbaren Speichermedium zu betreffenden Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk, z.B. das Internet, ein Lokalbereichsnetz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk zu einem externen Computer oder einer externen Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupfer-Übertragungskabel, Lichtwellenleiter, drahtlose Übertragungen, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder eine Netzwerk-Schnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt computerlesbare Programmbefehle von dem Netzwerk und leitet die computerlesbaren Programmbefehle zum Speichern in einem computerlesbaren Speichermedium in der betreffenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei computerlesbaren Programmbefehlen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, Befehle mit Befehlssatz-Architektur (ISA), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandseinstellungsdaten oder Quellencode bzw. Objektcode handeln, die in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache "C" oder ähnliche Programmiersprachen. Die computerlesbaren Programmbefehle können nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei einigen Ausführungsformen können elektronische Schaltungsanordnungen, darunter beispielsweise eine programmierbare logische Schaltungsanordnung, vor Ort programmierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmbefehle ausführen, indem Zustandsinformationen der computerlesbaren Programmbefehle genutzt werden, um die elektronische Schaltungsanordnung zu personalisieren, um Aspekte der vorliegenden Erfindung auszuführen.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle umgesetzt werden können.
  • Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen. Diese computerlesbaren Programmbefehle können außerdem in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand aufweist, der Befehle enthält, die Aspekte der Funktion/Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Die computerlesbaren Programmbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, umsetzen.
  • Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Befehlen repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Bei einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockdarstellungen und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockdarstellungen und/oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
  • Die hier verwendeten Bezugszeichen wie etwa i, j, k, n werden hier verwendet, um eine veränderliche Anzahl von Instanzen eines Elements zu bezeichnen, die dieselben oder unterschiedliche Werte darstellen können und die bei Verwendung mit unterschiedlichen oder denselben Elementen in unterschiedlichen beschriebenen Instanzen dieselben oder unterschiedliche Werte darstellen können.
  • Die Ausdrücke „eine Ausführungsform“, „Ausführungsform“, „Ausführungsformen“, „die Ausführungsform“, „die Ausführungsformen“, „eine oder mehrere Ausführungsformen“, „einige Ausführungsformen“ und „eine Ausführungsform“ bedeuten „eine oder mehrere (jedoch nicht alle) Ausführungsform der vorliegenden Erfindung(en)“, falls nicht ausdrücklich anders angegeben.
  • Die Ausdrücke „darunter“, „aufweisend“, „enthaltend“ und deren Variationen bedeuten „darunter, jedoch nicht beschränkt auf“, falls nicht ausdrücklich anders angegeben.
  • Die nummerierte Auflistung von Elementen bedeutet nicht, dass einige oder alle Elemente sich untereinander ausschließen, falls nicht ausdrücklich anders angegeben.
  • Die Ausdrücke „ein“ und „der/die/das“ bedeuten „ein oder mehrere“, falls nicht ausdrücklich anders angegeben.
  • Einheiten, die untereinander Daten austauschen können, müssen nicht ständig miteinander verbunden sein, falls nicht ausdrücklich anders angegeben. Außerdem können Einheiten, die untereinander Daten austauschen, direkt oder indirekt über einen oder mehrere Vermittler Daten austauschen.
  • Eine Beschreibung einer Ausführungsform mit mehreren Komponenten, die untereinander Daten austauschen, bedeutet nicht, dass alle derartigen Komponenten erforderlich sind. Im Gegenteil wird eine Vielfalt von optionalen Komponenten beschrieben, um die breite Vielfalt von möglichen Ausführungsformen der vorliegenden Erfindung zu veranschaulichen.
  • Wenn eine einzige Einheit oder ein einziger Gegenstand hier beschrieben wird, ist es leicht ersichtlich, dass mehr als eine Einheit/ein Gegenstand (die möglicherweise zusammenwirken) anstelle einer einzigen Einheit/eines einzigen Gegenstands verwendet werden kann. Wenn in ähnlicher Weise mehr als eine Einheit oder mehr als ein Gegenstand hier beschrieben wird (die möglicherweise zusammenwirken), ist es leicht ersichtlich, dass eine einzige Einheit oder ein einziger Gegenstand anstelle der mehreren Einheiten oder der mehreren Gegenstände oder eine andere Anzahl von Einheiten/Gegenständen anstelle der gezeigten Anzahl von Einheiten oder Programmen verwendet werden kann. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ durch eine oder mehreren andere Einheiten verkörpert werden, die nicht explizit so beschrieben werden, dass sie eine derartige Funktionalität/Merkmale aufweisen. Somit müssen andere Ausführungsformen der vorliegenden Erfindung die eigentliche Einheit nicht enthalten.
  • Die vorhergehende Beschreibung zahlreicher Ausführungsformen der Erfindung wurde für den Zweck der Veranschaulichung und Beschreibung dargestellt. Sie soll für die Erfindung in der offenbarten präzisen Form nicht erschöpfend oder einschränkend sein. Viele Modifikationen und Variationen sind im Licht der oben genannten Lehren möglich. Der Umfang der Erfindung soll nicht durch diese genaue Beschreibung, sondern durch die daran angefügten Ansprüche beschränkt sein. Die obige Spezifikation, Beispiele und Daten stellen eine vollständige Beschreibung der Herstellung und Verwendungsart der Zusammenstellung der Erfindung bereit. Da viele Ausführungsformen der Erfindung möglich sind, ohne vom Erfindungsgedanken und Umfang der Erfindung abzuweichen, liegt die Erfindung in den hier nachfolgend angefügten Ansprüchen.

Claims (15)

  1. Computerprogrammprodukt zum Zuweisen von Aufgaben an Speicherebenen zum Speichern von Datensätzen, die durch die Aufgaben verarbeitet werden, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darin verkörperten Programmbefehlen aufweist, wobei die Programmbefehle durch einen Prozessor ausführbar sind, um Operationen zu bewirken, wobei die Operationen aufweisen: Verarbeiten einer Darstellung eines Arbeitsablauf-Ausführungsmusters von Aufgaben für einen Auftrag, wodurch eine Abhängigkeit der Aufgaben und der Datensätze angegeben wird, an denen durch die Aufgabe agiert wird; Festlegen einer Zuweisung der Datensätze für die Aufgaben zu einer Mehrzahl der Speicherebenen anhand der Abhängigkeit der Aufgaben, die in dem Arbeitsablauf-Ausführungsmuster angegeben ist, wobei eine leistungsstarke Speicherebene Speichereinheiten mit einem schnelleren Zugriff als eine verhältnismäßig leistungsschwächere Speicherebene enthält; und zeitliches Planen eines Verschiebens eines betreffenden Datensatzes von den Datensätzen, an dem durch eine betreffende Aufgabe von den Aufgaben agiert wird, die Gegenstand eines Ereignisses ist, zu einer zugewiesenen Speicherebene, die in der Zuweisung für den betreffenden Gegenstand der Aufgabe angegeben ist, wobei das Verschieben des Datensatzes zeitlich so geplant ist, dass es in Reaktion auf das Ereignis bei Bezugnahme auf die betreffende Aufgabe ausgeführt wird.
  2. Computerprogrammprodukt nach Anspruch 1, wobei die Operationen ferner aufweisen: Ermitteln, ob sich der betreffende Datensatz bereits auf der zugewiesenen Speicherebene befindet, wobei die zeitliche Planung so erfolgt, dass der betreffende Datensatz zu der zugewiesenen Speicherebene in Reaktion auf ein Feststellen verschoben wird, dass sich der betreffende Datensatz noch nicht auf der zugewiesenen Speicherebene befindet.
  3. Computerprogrammprodukt nach Anspruch 1, wobei eine Anwendungsschicht, die das Arbeitsablauf-Ausführungsmuster von Aufgaben ausführt, das Arbeitsablauf-Ausführungsmuster von Aufgaben für den Auftrag zu einer Speicherschicht überträgt, die den Zugriff auf Speicherebenen verwaltet, wobei die Speicherschicht die Operationen zum Festlegen der Zuweisung und der zeitlichen Planung des Verschiebens des Datensatzes ausführt, wobei die Operationen ferner aufweisen: durch die Speicherschicht Benachrichtigen der Anwendungsschicht, dass sich der Datensatz für die nächste Aufgabe auf der zugewiesenen Speicherebene befindet; und durch die Anwendungsschicht Ausführen der nächsten Aufgabe in Reaktion auf Empfangen der Benachrichtigung von der Speicherschicht, dass sich der Datensatz, an dem durch die nächste Aufgabe agiert wird, auf der zugewiesenen Speicherebene befindet.
  4. Computerprogrammprodukt nach Anspruch 1, wobei die betreffende Aufgabe eine nächste Aufgabe aufweist, die begonnen werden soll; wobei die Operationen ferner aufweisen: Ermitteln, ob an dem Datensatz, an dem durch die nächste Aufgabe agiert werden soll, in einer aktuellen Speicherebene durch eine andere Aufgabe agiert wird; Ermitteln, ob es sich bei der zugewiesenen Speicherebene um eine leistungsstärkere Speicherebene als die aktuelle Speicherebene handelt, in Reaktion auf Feststellen, dass an dem Datensatz durch eine andere Aufgabe agiert wird, wobei die zeitliche Planung so erfolgt, dass der Datensatz zu der zugewiesenen Speicherebene verschoben wird in Reaktion auf Feststellen, dass die zugewiesene Speicherebene leistungsstärker ist als die aktuelle Speicherebene, und wobei die zeitliche Planung so erfolgt, dass der Datensatz auf der aktuellen Speicherebene verbleibt, in Reaktion auf Feststellen, dass die zugewiesene Speicherebene nicht leistungsstärker ist als die aktuelle Speicherebene.
  5. Computerprogrammprodukt nach Anspruch 1, wobei die betreffende Aufgabe eine beendete Aufgabe aufweist, wobei die Operationen ferner aufweisen: Ermitteln, ob eine aktuelle Speicherebene, auf der sich der Datensatz befindet, an dem durch die beendete Aufgabe agiert wurde, eine leistungsstärkere Speicherebene ist als eine Speicherebene, der eine zusätzliche Aufgabe zugewiesen ist, die an dem Datensatz, an dem durch die beendete Aufgabe agiert wurde, momentan agiert; und zeitliches Planen eines Verschiebens des Datensatzes, an dem durch die beendete Aufgabe agiert wurde, zu einer Speicherebene, der die zusätzliche Aufgabe zugewiesen ist, in Reaktion auf ein Feststellen, dass es sich bei der Speicherebene, die der beendeten Aufgabe zugewiesen ist, um eine leistungsstärkere Speicherebene handelt als die Speicherebene, die der beendeten Aufgabe zugewiesen ist.
  6. Computerprogrammprodukt nach Anspruch 1, wobei die betreffende Aufgabe eine beendete Aufgabe aufweist, wobei die Operationen ferner aufweisen: Ermitteln, ob eine zusätzliche Aufgabe momentan an dem Datensatz agiert, an dem durch die beendete Aufgabe agiert wurde; und zeitliches Planen des Verschiebens des Datensatzes, an dem durch die beendete Aufgabe agiert wurde, zu einer leistungsschwächeren Speicherebene als die der beendeten Aufgabe zugewiesene Speicherebene in Reaktion auf ein Feststellen, dass keine zusätzliche Aufgabe vorhanden ist, die momentan an dem Datensatz agiert, an dem durch die beendete Aufgabe agiert wurde.
  7. Computerprogrammprodukt nach Anspruch 1, wobei das Feststellen der Zuweisung aufweist: Ermitteln zugehöriger Datensätze, die mehrere Datensätze aufweisen, an denen durch eine einzelne Aufgabe agiert wird, wobei sich die zugehörigen Datensätze auf derselben Speicherebene befinden.
  8. Computerprogrammprodukt nach Anspruch 1, wobei das Feststellen der Zuweisung aufweist: Zuweisen einer einzelnen Speicherebene zu mehreren Aufgaben, die gleichzeitig an demselben Datensatz agieren.
  9. Computerprogrammprodukt nach Anspruch 1, wobei das Feststellen der Zuweisung aufweist: Zuweisen einer einzelnen Speicherebene zu mehreren Eingabe-Aufgaben, die an wenigstens einem Datensatz agieren, die einer abhängigen Aufgabe eine Eingabe bereitstellen, die nicht ausgeführt werden kann, bis die Eingabe von den Eingabe-Aufgaben empfangen wird; und wobei die einzelne Speicherebene, die den mehreren Eingabe-Aufgaben zugewiesen ist, einer bevorzugten leistungsstärkeren Speicherebene zugewiesen wird, die eine höhere Leistungsfähigkeit hat als die wenigstens eine andere Speicherebene.
  10. Computerprogrammprodukt nach Anspruch 1, wobei das Arbeitsablauf-Ausführungsmuster eine Mehrzahl von Aufträgen aufweist, wobei jeder der Aufträge eine Mehrzahl von Aufgaben enthält, die an Datensätzen Operationen ausführen, wobei das Feststellen der Zuweisung aufweist: Ermitteln zugehöriger Datensätze, die aufweisen: mehrere Datensätze, an denen durch eine einzige Aufgabe in einem der Aufträge agiert wird, und/oder mehrere Datensätze, an denen durch eine erste Gruppe von Aufgaben von wenigstens einem der Aufträge agiert wird, bevor wenigstens eine abhängige Aufgabe von wenigstens einem der Aufträge ausgeführt werden kann; und/oder mehrere Datensätze, an denen durch sequenzielle Aufgaben in wenigstens einem der Aufträge, die Teil eines sequenziellen Arbeitsablaufs sind, agiert wird; und Zuweisen von Aufgaben, die an zugehörigen Datensätzen agieren, zu einer bevorzugten leistungsstärkeren Speicherebene, die eine höhere Leistungsfähigkeit hat als die wenigstens eine andere Speicherebene.
  11. Computerprogrammprodukt, nach Anspruch 10, wobei die Operationen ferner aufweisen: Ermitteln, ob auf der bevorzugten leistungsstärkeren Speicherebene für die zugehörigen Datensätze genügend Platz vorhanden ist; und Zuweisen der Aufgaben, die an den zugehörigen Datensätzen Operationen ausführen, zu einer leistungsschwächeren Speicherebene als die bevorzugte leistungsstärkere Speicherebene, die ausreichend Platz hat, um die zugehörigen Datensätze zu speichern, in Reaktion auf ein Feststellen, dass die bevorzugte leistungsstärkere Speicherebene keinen ausreichenden Platz hat, um die zugehörigen Datensätze zu speichern.
  12. Computerprogrammprodukt nach Anspruch 1, wobei die Operationen ferner aufweisen: Feststellen, dass ein Datensatz nachfolgend durch eine der Aufgaben in dem Arbeitsablauf-Ausführungsmuster verarbeitet wird; und zeitliches Planen eines Einstufens des Datensatzes, der nachfolgend verarbeitet wird, auf eine leistungsstärkere Speicherebene, die eine höhere Leistungsfähigkeit als wenigstens eine andere Speicherebene hat, um den Datensatz auf der leistungsstärkeren Speicherebene zur Verfügung zu stellen, wenn der Datensatz verarbeitet wird.
  13. System, das mit einer Mehrzahl von Speicherebenen verbunden ist, wobei das System aufweist: eine Mehrzahl von Datenverarbeitungsknoten; und ein computerlesbares Speichermedium mit Programmbefehlen, die beim Ausführen durch die Datenverarbeitungsknoten Operationen ausführen, wobei die Operationen aufweisen: Verarbeiten einer Darstellung eines Arbeitsablauf-Ausführungsmusters von Aufgaben für einen Auftrag, die eine Abhängigkeit der Aufgaben und der Datensätze, an denen durch die Aufgabe agiert wird, angibt; Feststellen einer Zuweisung der Datensätze für die Aufgaben zu einer Mehrzahl der Speicherebenen auf der Grundlage der Abhängigkeit der Aufgaben, die in dem Arbeitsablauf-Ausführungsmuster angegeben ist, wobei eine leistungsstärkere Speicherebene Speichereinheiten mit schnellerem Zugriff enthält als eine verhältnismäßig leistungsschwächere Speicherebene; und zeitliches Planen eines Verschiebens eines betreffenden Datensatzes von den Datensätzen, an dem durch eine betreffende Aufgabe von den Aufgaben agiert wird, der Gegenstand eines Ereignisses ist, zu einer zugewiesenen Speicherebene, die in der Zuweisung für den betreffenden Aufgabengegenstand angegeben ist, wobei das Verschieben des Datensatzes zeitlich so geplant ist, dass es in Reaktion auf das Ereignis und in Bezug auf die betreffende Aufgabe ausgeführt wird.
  14. Das System gemaäß Anspruch 13, wobei die betreffende Aufgabe eine nächste zu startende Aufgabe aufweist, wobei die Operationen ferner aufweisen: Ermitteln, ob an dem Datensatz, an dem durch die nächste Aufgabe agiert werden soll, in einer aktuellen Speicherebene durch einen andere Aufgabe agiert wird; und Ermitteln, ob es sich bei der zugewiesenen Speicherebene um eine leistungsstärkere Speicherebene als die aktuelle Speicherebene handelt, in Reaktion auf Feststellen, dass an dem Datensatz durch eine andere Aufgabe agiert wird, wobei die zeitliche Planung so erfolgt, dass der Datensatz zu der zugewiesenen Speicherebene verschoben wird in Reaktion auf Feststellen, dass die zugewiesene Speicherebene leistungsstärker ist als die aktuelle Speicherebene, und wobei die zeitliche Planung so erfolgt, dass der Datensatz auf der aktuellen Speicherebene verbleibt, in Reaktion auf Feststellen, dass die zugewiesene Speicherebene nicht leistungsstärker ist als die aktuelle Speicherebene, und/oder wobei das Arbeitsablauf-Ausführungsmuster eine Mehrzahl von Aufträgen aufweist, wobei jeder der Aufträge eine Mehrzahl von Aufgaben enthält, die an Datensätzen Operationen ausführen, wobei das Bestimmen der Zuweisung aufweist: Ermitteln zugehöriger Datensätze, die aufweisen: mehrere Datensätze, an denen durch eine einzige Aufgabe in einem der Aufträge agiert wird, und/oder mehrere Datensätze, an denen durch eine erste Gruppe von Aufgaben von wenigstens einem der Aufträge agiert wird, bevor wenigstens eine abhängige Aufgabe von wenigstens einem der Aufträge ausgeführt werden kann; und/oder mehrere Datensätze, an denen durch sequenzielle Aufgaben in wenigstens einem der Aufträge, die Teil eines sequenziellen Arbeitsablaufs sind, agiert wird; und Zuweisen von Aufgaben, die an zugehörigen Datensätzen agieren, zu einer bevorzugten leistungsstärkeren Speicherebene, die eine höhere Leistungsfähigkeit hat als die wenigstens eine andere Speicherebene.
  15. Verfahren zum Zuweisen von Aufgaben zu Speicherebenen, um Datensätze zu speichern, die durch die Aufgaben verarbeitet wurden, wobei das Verfahren aufweist: Verarbeiten einer Darstellung eines Arbeitsablauf-Ausführungsmusters von Aufgaben für einen Auftrag, die eine Abhängigkeit der Aufgaben und der Datensätze, an denen durch die Aufgabe agiert wird, angibt; Feststellen einer Zuweisung der Datensätze für die Aufgaben zu einer Mehrzahl der Speicherebenen auf der Grundlage der Abhängigkeit der Aufgaben, die in dem Arbeitsablauf-Ausführungsmuster angegeben ist, wobei eine leistungsstärkere Speicherebene Speichereinheiten mit schnellerem Zugriff enthält als eine verhältnismäßig leistungsschwächere Speicherebene; und zeitliches Planen eines Verschiebens eines betreffenden Datensatzes von den Datensätzen, an dem durch eine betreffende Aufgabe von den Aufgaben agiert wird, die Gegenstand eines Ereignisses ist, zu einer zugewiesenen Speicherebene, die in der Zuweisung für den betreffenden Aufgabengegenstand angegeben ist, wobei das Verschieben des Datensatzes zeitlich so geplant ist, dass es in Reaktion auf das Ereignis und in Bezug auf die betreffende Aufgabe ausgeführt wird.
DE102016205297.7A 2015-03-31 2016-03-31 Festlegen von speicherebenen zum platzieren von datensätzen während des ausführens von aufgaben in einem arbeitsablauf Pending DE102016205297A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/675,610 US9430290B1 (en) 2015-03-31 2015-03-31 Determining storage tiers for placement of data sets during execution of tasks in a workflow
US14/675,610 2015-03-31

Publications (1)

Publication Number Publication Date
DE102016205297A1 true DE102016205297A1 (de) 2016-10-06

Family

ID=56739876

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016205297.7A Pending DE102016205297A1 (de) 2015-03-31 2016-03-31 Festlegen von speicherebenen zum platzieren von datensätzen während des ausführens von aufgaben in einem arbeitsablauf

Country Status (3)

Country Link
US (3) US9430290B1 (de)
CN (1) CN106020940B (de)
DE (1) DE102016205297A1 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3140734B1 (de) 2014-05-09 2020-04-08 Nutanix, Inc. Mechanismus zur bereitstellung von externem zugriff auf eine gesicherte vernetzte virtualisierungsumgebung
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9430290B1 (en) 2015-03-31 2016-08-30 International Business Machines Corporation Determining storage tiers for placement of data sets during execution of tasks in a workflow
CA3009817A1 (en) * 2015-12-29 2017-07-06 Tao Tao Systems and methods for caching task execution
US11086550B1 (en) * 2015-12-31 2021-08-10 EMC IP Holding Company LLC Transforming dark data
US10650045B2 (en) * 2016-02-05 2020-05-12 Sas Institute Inc. Staged training of neural networks for improved time series prediction performance
US10346476B2 (en) 2016-02-05 2019-07-09 Sas Institute Inc. Sketch entry and interpretation of graphical user interface design
US10380185B2 (en) 2016-02-05 2019-08-13 Sas Institute Inc. Generation of job flow objects in federated areas from data structure
US10409863B2 (en) * 2016-02-05 2019-09-10 Sas Institute Inc. Verification and export of federated areas and job flow objects within federated areas
US10795935B2 (en) 2016-02-05 2020-10-06 Sas Institute Inc. Automated generation of job flow definitions
US10331495B2 (en) 2016-02-05 2019-06-25 Sas Institute Inc. Generation of directed acyclic graphs from task routines
US10338968B2 (en) 2016-02-05 2019-07-02 Sas Institute Inc. Distributed neuromorphic processing performance accountability
US10650046B2 (en) * 2016-02-05 2020-05-12 Sas Institute Inc. Many task computing with distributed file system
US11474863B2 (en) * 2018-06-22 2022-10-18 Sas Institute Inc. Federated area coherency across multiple devices in many-task computing
US10642896B2 (en) 2016-02-05 2020-05-05 Sas Institute Inc. Handling of data sets during execution of task routines of multiple languages
US10831465B2 (en) 2016-02-12 2020-11-10 Nutanix, Inc. Virtualized file server distribution across clusters
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US11119813B1 (en) * 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10296390B2 (en) 2016-10-14 2019-05-21 International Business Machines Corporation Feedback mechanism for controlling dispatching work tasks in a multi-tier storage environment
CN106993019B (zh) * 2016-11-29 2019-11-19 深圳壹账通智能科技有限公司 分布式任务调度方法和系统
US10437799B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
US10437800B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US10437633B1 (en) * 2016-12-30 2019-10-08 EMC IP Holding Company LLC Data storage system management with promotion of task-level resource identifiers to higher objects
USD898059S1 (en) 2017-02-06 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
US10514993B2 (en) * 2017-02-14 2019-12-24 Google Llc Analyzing large-scale data processing jobs
US10713088B2 (en) * 2017-03-23 2020-07-14 Amazon Technologies, Inc. Event-driven scheduling using directed acyclic graphs
CN107168781A (zh) * 2017-04-07 2017-09-15 广东银禧科技股份有限公司 一种3d打印子任务调度方法和装置
USD898060S1 (en) 2017-06-05 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
US10956052B1 (en) 2017-07-21 2021-03-23 EMC IP Holding Company LLC Online address to hash (A2H) metadata scanner
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
JP7271164B2 (ja) * 2018-12-21 2023-05-11 キヤノン株式会社 情報処理装置、管理システム、情報処理装置の制御方法及びプログラム
US11188231B2 (en) 2019-03-01 2021-11-30 International Business Machines Corporation Data placement on storage devices
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11216388B2 (en) * 2019-04-30 2022-01-04 EMC IP Holding Company LLC Tiering between storage media in a content aware storage system
CN110147280B (zh) * 2019-05-14 2023-01-31 河南城建学院 基于安全与成本感知的大数据应用调度方法
US20200396287A1 (en) * 2019-06-17 2020-12-17 Netflix, Inc. Distributed global object storage
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
JP7326969B2 (ja) * 2019-07-30 2023-08-16 富士通株式会社 情報処理装置,ストレージシステム及びスケジューリングプログラム
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
CN113448493B (zh) * 2020-03-27 2024-04-26 伊姆西Ip控股有限责任公司 用于备份数据的方法、电子设备和计算机可读介质
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
CN112035236B (zh) * 2020-09-08 2023-02-14 深圳天源迪科信息技术股份有限公司 基于多因子协同的任务调度方法、装置、及存储介质
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
CN112817744A (zh) * 2021-01-14 2021-05-18 内蒙古蒙商消费金融股份有限公司 一种任务处理方法及装置
EP4113297A1 (de) * 2021-06-30 2023-01-04 Bull SAS Verfahren zur verwaltung der arbeiten in einem computersystem und entsprechendes system
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
GB2611542B (en) * 2021-10-06 2023-11-15 Advanced Risc Mach Ltd Circuitry and method
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8387066B1 (en) * 2007-09-28 2013-02-26 Emc Corporation Dependency-based task management using set of preconditions to generate scheduling data structure in storage area network
US8869165B2 (en) * 2008-03-20 2014-10-21 International Business Machines Corporation Integrating flow orchestration and scheduling of jobs and data activities for a batch of workflows over multiple domains subject to constraints
US8819057B2 (en) * 2010-01-27 2014-08-26 Precise Software Solutions, Inc. Dynamic storage blocks tiering
AU2011224150A1 (en) * 2010-03-11 2012-09-13 Entegrity LLC Methods and systems for data aggregation and reporting
JP5443490B2 (ja) * 2010-03-29 2014-03-19 パナソニック株式会社 光ディスク再生装置
US8527467B2 (en) * 2011-06-30 2013-09-03 International Business Machines Corporation Compression-aware data storage tiering
US8627035B2 (en) * 2011-07-18 2014-01-07 Lsi Corporation Dynamic storage tiering
WO2013061382A1 (ja) * 2011-10-28 2013-05-02 株式会社日立製作所 計算機システム及びストレージ管理方法
US9471243B2 (en) * 2011-12-15 2016-10-18 Veritas Technologies Llc Dynamic storage tiering in a virtual environment
US20140337577A1 (en) * 2011-12-23 2014-11-13 Oracle International Corporation Sub-lun auto-tiering
US8856291B2 (en) 2012-02-14 2014-10-07 Amazon Technologies, Inc. Providing configurable workflow capabilities
US8972983B2 (en) 2012-04-26 2015-03-03 International Business Machines Corporation Efficient execution of jobs in a shared pool of resources
US8793381B2 (en) 2012-06-26 2014-07-29 International Business Machines Corporation Workload adaptive cloud computing resource allocation
WO2014073045A1 (ja) * 2012-11-07 2014-05-15 株式会社日立製作所 計算機システム、ストレージ管理計算機及びストレージ管理方法
US9442954B2 (en) 2012-11-12 2016-09-13 Datawise Systems Method and apparatus for achieving optimal resource allocation dynamically in a distributed computing environment
US10048075B2 (en) 2013-07-19 2018-08-14 Sap Se Trajectory data compression
JP2015052853A (ja) * 2013-09-05 2015-03-19 富士通株式会社 ストレージ制御装置、制御方法及びプログラム
US9773014B2 (en) * 2014-06-03 2017-09-26 Samsung Electronics Co., Ltd. Heterogeneous distributed file system using different types of storage mediums
US9513967B2 (en) * 2014-09-18 2016-12-06 International Business Machines Corporation Data-aware workload scheduling and execution in heterogeneous environments
JP2016184310A (ja) * 2015-03-26 2016-10-20 富士通株式会社 情報処理システム、制御装置および情報処理システムの制御方法
US9430290B1 (en) 2015-03-31 2016-08-30 International Business Machines Corporation Determining storage tiers for placement of data sets during execution of tasks in a workflow

Also Published As

Publication number Publication date
US9430290B1 (en) 2016-08-30
CN106020940A (zh) 2016-10-12
US20160335134A1 (en) 2016-11-17
US9864642B2 (en) 2018-01-09
CN106020940B (zh) 2019-02-15
US10489217B2 (en) 2019-11-26
US20180107527A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
DE102016205297A1 (de) Festlegen von speicherebenen zum platzieren von datensätzen während des ausführens von aufgaben in einem arbeitsablauf
DE112010003886B4 (de) Bereitstellung von Diensten unter Verwendung eines Cloud-Dienste-Katalogs
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
DE112013001889B4 (de) Dynamische Zuweisung einer Arbeitslast über eine Vielzahl von Clouds hinweg
DE102013205572B4 (de) Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE112012002941T5 (de) Anwendungsressourcenverwalter über eine Cloud
DE112011105186T5 (de) Graphdatenbanken zum Speichern mehrdimensionaler Modelle von Software-Angeboten
DE112010003819T5 (de) Cloudübergreifende gemeinsame Ressourcen-Nutzung innerhalb einer Cloud-Datenverarbeitungsumgebung
DE102013204508A1 (de) Dynamisches Neukonfigurieren eines Speichersystems
DE112012004999T5 (de) Beschleunigungselement zur Cloud-Bereitstellung
DE102013216735A1 (de) Ressourcenzuweisung in einer virtualisierten Datenverarbeitungsumgebung
DE112021006130T5 (de) Automatisierte orchestrierung von containern durch bewerten von mikrodiensten
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112019001433T5 (de) Datenanonymisierung
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE112021003401T5 (de) Schattenexperimente für serverlose multi-tenant-cloud-dienste
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen
DE112021003294T5 (de) Systemverwaltung auf grundlage von leistung und leistungsfähigkeit
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE102021130359A1 (de) Ressourcenzuordnung auf der grundlage eines kontextbezogenen szenarios
DE102014116744B4 (de) Management von Informationstechnologieressourcen
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE102021122508A1 (de) Ausgleichen von grossrechner- und verteilten arbeitslasten auf der grundlage von leistung und kosten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R084 Declaration of willingness to licence