-
GEBIET
-
Die vorliegende Anmeldung betrifft allgemein die Informationstechnologie und insbesondere Datenverarbeitungstechniken.
-
HINTERGRUND
-
Durch Trainieren von neuronalen Netzmodellen auf eine Ende-zu-Ende-Weise kann eine Vielfalt von Aufgaben erfolgreich gelöst werden. Jedoch verbrauchen Ende-zu-Ende-Modelle gewöhnlich bedeutende Mengen an Daten und Speicher. Ferner kann bei vielen Maschinenlernaufgaben die Verfügbarkeit von vollständig markierten Daten begrenzt sein, während größere Mengen von teilweise markierten Daten vorhanden sind, die durch herkömmliche Modelle nicht effizient verwendet werden können.
-
KURZDARSTELLUNG
-
In einer Ausführungsform der vorliegenden Erfindung werden Techniken für kooperative neuronale Netze mit räumlichen Einschlussvorgaben bereitgestellt. Ein beispielhaftes durch einen Computer realisiertes Verfahren kann Aufteilen einer Verarbeitungsaufgabe in mehrere Teilaufgaben und Trainieren mehrerer unabhängiger neuronaler Netze umfassen, derart, dass zumindest einige der mehreren Teilaufgaben unterschiedlichen der mehreren unabhängigen neuronalen Netze entsprechen. Ein solches Verfahren umfasst außerdem Definieren mindestens eines Vorgabeverlusts für eine gegebene der mehreren Teilaufgaben, zumindest teilweise basierend auf vorgabebasiertem Domänenwissen, welches auf die Verarbeitungsaufgabe bezogen ist, wobei der mindestens eine Vorgabeverlust von einer Ausgabe aus mindestens einer der mehreren anderen Teilaufgaben abhängt, und Neu-Trainieren zumindest eines Teils der mehreren unabhängigen neuronalen Netze, wobei das Neu-Trainieren von einer Verwendung des mindestens einen Vorgabeverlusts abhängt.
-
In einer anderen Ausführungsform der Erfindung kann ein beispielhaftes durch einen Computer realisiertes Verfahren Aufteilen einer Verarbeitungsaufgabe in mehrere Teilaufgaben und Trainieren eines neuronalen Netzes mit mehreren divergenten Zweigen darin umfassen, derart, dass zumindest einige der mehreren Teilaufgaben unterschiedlichen der mehreren divergenten Zweige des neuronalen Netzes entsprechen. Ein solches Verfahren umfasst außerdem Definieren mindestens eines Vorgabeverlusts für eine gegebene der mehreren Teilaufgaben, zumindest teilweise basierend auf vorgabebasiertem Domänenwissen, welches auf die Verarbeitungsaufgabe bezogen ist, wobei der mindestens eine Vorgabeverlust von einer Ausgabe aus mindestens einer der mehreren anderen Teilaufgaben abhängt, und Neu-Trainieren zumindest eines Teils des neuronalen Netzes, wobei das Neu-Trainieren von einer Verwendung des mindestens einen Vorgabeverlusts abhängt.
-
Eine weitere Ausführungsform der Erfindung oder Elemente davon können in Form eines Computerprogrammprodukts realisiert werden, welches computerlesbare Anweisungen materiell verkörpert, welche, wenn sie realisiert werden, bewirken, dass ein Computer eine Mehrzahl von Verfahrensschritten ausführt, wie hierin beschrieben. Ferner können eine weitere Ausführungsform der Erfindung oder Elemente davon in der Form eines Systems realisiert werden, welches einen Speicher und mindestens einen Prozessor umfasst, der mit dem Speicher verbunden und so konfiguriert ist, dass er die besagten Verfahrensschritte ausführt. Außerdem können eine weitere Ausführungsform der Erfindung oder Elemente davon in der Form eines Mittels zum Ausführen der hierin beschriebenen Verfahrensschritte oder von Elementen davon realisiert werden; das Mittel kann ein Hardware-Modul (Hardware-Module) oder eine Kombination von Hardware- und Software-Modulen umfassen, wobei die Software-Module in einem materiellen computerlesbaren Speichermedium (oder mehreren solchen Medien) gespeichert sind.
-
Diese und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung veranschaulichender Ausführungsformen davon ersichtlich, welche in Verbindung mit den begleitenden Zeichnungen zu lesen ist.
-
Figurenliste
-
- 1 ist ein Schaubild, welches eine Systemarchitektur gemäß einer beispielhaften Ausführungsform der Erfindung veranschaulicht;
- 2 ist ein Ablaufplan, welcher Techniken gemäß einer Ausführungsform der Erfindung veranschaulicht;
- 3 ist ein Systemschaubild eines beispielhaften Computersystems, auf welchem mindestens eine Ausführungsform der Erfindung realisiert werden kann;
- 4 zeigt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung; und
- 5 zeigt Abstraktionsmodellschichten gemäß einer Ausführungsform der Erfindung.
-
DETAILLIERTE BESCHREIBUNG
-
Wie hierin beschrieben, umfasst eine Ausführungsform der vorliegenden Erfindung kooperative neuronale Netze mit räumlichen Einschlussvorgaben. Insbesondere umfasst mindestens eine Ausführungsform Erzeugen und/oder Realisieren eines vorgabebasierten Trainingsrahmens für neuronale Netze für Maschinenlernaufgaben. Ein solcher Rahmen umfasst in einer oder mehreren Ausführungsformen Realisieren der folgenden Schritte: Aufteilen der gegebenen Aufgabe in mehrere Teilaufgaben; Trainieren mindestens eines unabhängigen neuronalen Netzes für jede der entsprechenden Teilaufgaben (möglicherweise zum Beispiel unter Verwendung unterschiedlicher Datensätze); Nutzen vorgabebasierten Domänenwissens in Bezug auf die gegebene Aufgabe und Definieren eines Vorgabeverlusts, welcher die Ergebnisse der jeweiligen Teilaufgabe umfasst; und Trainieren des jeweiligen neuronalen Netzmodells nacheinander auf kontradiktorische Weise unter Verwendung von Vorhersageergebnissen eines oder mehrerer anderer Modelle.
-
Dementsprechend umfasst, wie oben zumindest teilweise hervorgehoben, mindestens eine Ausführungsform Aufteilen einer gegebenen Aufgabe in mehrere Teilaufgaben (z.B. getrenntes Erfassen von Tabellen und Zellen dieser Tabellen), Trainieren eines separaten Modells für jede Teilaufgabe mit möglicherweise unterschiedlichen Datensätzen, Definieren und/oder Lernen mindestens einer räumlichen Beziehungsvorgabe zwischen Ausgaben jeder Teilaufgabe, Hinzufügen mindestens eines Verlusts zu jedem Teilaufgabenmodell, Bestrafen von Vorgabeverletzungen und Fortführen des Trainings und weiteres Modifizieren und/oder Feinabstimmen des Rahmens (zum Beispiel mit Vorgabeverlust lediglich mit unmarkierten Daten).
-
Ein solcher Rahmen mindestens einer Ausführungsform wird hierin auch als ein vorgabebasiertes kooperatives neuronales Netz (Constraint-based Cooperative Neural Network, C2NN) bezeichnet, bei welchem mehrere neuronale Netze in Verbindung mit einer oder mehreren vorab definierten Vorgaben miteinander kooperieren. C2NN bietet zumindest die folgenden Vorteile gegenüber herkömmlichen Modellierungs- und/oder Analyseansätzen. Beispielsweise können bei C2NN teilweise markierte Daten besser (z.B. vollständig) genutzt werden, um gleichzeitig robuste lokale Merkmale zu erfassen und eine globale Struktur zu bewahren. Außerdem wird während einer Trainingsstufe, die zu einer beispielhaften Ausführungsform gehört, jedes Modell separat trainiert, so dass teilweise markierte Daten verwendet werden können, um robustere Teilaufgabenmodelle zu trainieren. Wie ebenfalls als Teil einer Trainingsstufe umfasst, kooperieren mehrere neuronale Netze miteinander, um die globale Struktur der gegebenen (Gesamt-)Aufgabe zu bewahren.
-
Ein weiterer Vorteil gegenüber herkömmlichen Ansätzen umfasst die Speichereffizienz. Zum Beispiel erfordert das Trainieren eines Ende-zu-Ende-Modells oft beträchtlichen Speicher einer Graphikverarbeitungseinheit (Graphics Processing Unit, GPU) und/oder einer Tensorverarbeitungseinheit (Tensor Processing Unit, TPU). Jedoch kann C2NN in mindestens einer Ausführungsform verwendet werden, um unter ressourcenintensiven Bedingungen kleinere Teilmodelle zu trainieren, da zu jeder Zeit der C2NN-Realisierung nur ein neuronales Netz für eine Teilaufgabe spontan trainiert wird. Außerdem kann C2NN in einer oder mehreren Ausführungsformen verwendet werden, um die Domänenanpassung zu verbessern. Beispielsweise kann während einer Trainingsstufe durch C2NN die Anpassung aktueller Modelle in eine andere Domäne mit begrenzten markierten Daten erleichtert werden, indem die gleichen Vorgaben bewahrt werden, die sowohl Ziel- als auch Quellendomäne aufweisen.
-
Dementsprechend, und wie hierin ausgeführt, umfassen eine oder mehrere Ausführungsformen das Einbeziehen teilweise markierter Daten (z.B. für Trainingszwecke). Ende-zu-Ende-Modelle sind oft ressourcenintensiv, weil für Neuronen des Modells, die an dem Trainingsbeispiel beteiligt sind, die Back Propagation wirkt. Jedoch umfasst mindestens eine Ausführungsform in jedem Zeitstempel lediglich das Trainieren eines (relativ kleineren) Teilaufgabenmodells.
-
Ferner umfasst mindestens eine Ausführungsform Realisieren und/oder Erleichtern einer Kooperation über mehrere neuronale Netze durch unabhängiges Erfassen mindestens eines Aspekts eines Problems, der dann zu mindestens einer Vorgabe wird, die das andere Netz (die anderen Netze) einbeziehen kann (können). Lediglich als Veranschaulichung kann eine solche Vorgabe sich auf einen Einschluss beziehen, beispielsweise derart, dass die Ausgabe eines Netzes physisch innerhalb der Ausgabe eines anderen Netzes enthalten sein muss.
-
Als ein weiteres Beispiel können unter Verwendung räumlicher Beziehungen zwischen Teilobjekten eine oder mehrere Ausführungsformen unter Verwendung teilweise markierter Daten, welche nicht alle Markierungen enthalten, die für die vollständige Aufgabe benötigt werden, Einbeziehen von Domänenwissen umfassen, um die Trainingsgeschwindigkeit und -genauigkeit und das Lernen aus unmarkierten Daten zu verbessern.
-
1 zeigt ein Beispiel eines vorgabeverlustbasierten Trainingsschemas mit Tabellenerkennung. Eine oder mehrere Ausführungsformen können jedoch an beliebigen Netzen realisiert und/oder auf diese angewendet werden, deren Ausgaben eine Beziehungsvorgabe aufweisen (z.B. Einschlussvorgaben, zeitliche Konsistenzvorgaben usw.). Beispielsweise kann mindestens eine Ausführungsform eine Realisierung innerhalb des Kontexts mindestens einer zeitlichen Ähnlichkeitsvorgabe umfassen, wobei zwei Netze, die jeweils zukünftige und vergangene Ereignisse vorhersagen, ähnliche Ergebnisse aufweisen können, und die Ähnlichkeit ihrer Ausgaben auf Pixelebene wird zu einer Vorgabe.
-
Wie in 1 dargestellt, kann bei einem Tabellenbegrenzungsrahmen 104 ein Zellenerfassungsnetz verwendet werden, indem die Tatsache genutzt wird, dass Tabellen zumindest einige Zellen enthalten müssen. In einer Trainingsstufe umfassen eine oder mehrere Ausführungsformen neben einem Regressions- und Klassifikationsverlust das Hinzufügen eines Teil-für-Teil-Vorgabeverlusts, welcher die Erfassungswahrscheinlichkeit unrealistischer Tabellen unter Berücksichtigung der Zellenpositionen bestraft. Diese neue zellenvorgabebasierte Verlustfunktion kann zu jedem Erfassungsnetz hinzugefügt werden.
-
Entsprechend umfasst, wie in 1 dargestellt, der Tabellenbegrenzungsrahmen 104 einen Objektdetektor für Tabellen 106 und einen Objektdetektor für Zellen 108. Der Objektdetektor für Tabellen 106 erfasst eine oder mehrere Tabellen 110 in dem Eingabebild (vollseitigen Bild) 102, während der Objektdetektor für Zellen 108 eine oder mehrere Zellen 114 in dem Eingabebild (vollseitigen Bild) 102 erfasst. Aus der einen oder den mehreren erfassten Tabellen 110 werden in Frage kommende Tabellenbegrenzungskästen 112 bestimmt. Aus der einen oder den mehreren erfassten Zellen 114 werden ein oder mehrere Zellenbegrenzungskästen 116 bestimmt.
-
Eine oder mehrere Ausführungsformen umfassen die Verwendung eines gesteuerten Zellennetzes zum Erzeugen einer Gruppe von Zellenbegrenzungskästen (z.B. der Zellenbegrenzungskästen 116). Mit dieser Gruppe von Zellenbegrenzungskästen kann eine solche Ausführungsform Definieren von Boole'schen Operatoren umfassen, wobei Eingaben einen inneren Kasten und einen äußeren Kasten umfassen, wobei solche Eingaben die Grenzen eines Maskeneingabebereichs definieren. Der Strafindikator zeigt eine Bestrafung an, wenn weniger als ein bestimmter Prozentsatz der Tabelle Zellen aufweist.
-
In einer Schlussfolgerungsstufe umfassen eine oder mehrere Ausführungsformen Bringen vorgeschlagener Begrenzungskästen in eine Rangordnung unter Berücksichtigung von Erfassungswahrscheinlichkeiten sowie des Vorliegens von Zellen innerhalb und außerhalb der Tabelle. Eine solche Ausführungsform kann außerdem Definieren eines Vorgabekoeffizienten für jeden Begrenzungskasten umfassen und für jede Begrenzung eines Tabellen-Begrenzungskastens Berechnen der Anzahl an Zellen außerhalb der Tabelle, subtrahiert mit der Anzahl an Zellen innerhalb der Tabelle. Für jedes Paar von Begrenzungskästen, die sich um mehr als einen gegebenen Prozentsatz überlappen, umfasst eine solche Ausführungsform Verwerfen des Begrenzungskastens mit dem höheren Vorgabekoeffizienten.
-
In Verbindung mit dem oben angeführten Beispiel der Tabellenerkennung repräsentiert die Tatsache, dass Zellen innerhalb einer Tabelle liegen müssen, eine räumliche Vorgabe zwischen Tabellen und Zellen. Unter Verwendung herkömmlicher Modellierungsansätze könnten unabhängige neuronale Netze, die jeden Aspekt (Zellen und Tabellen) erfassen, diese Art einer globalen Vorgabe nicht nutzen. Wie jedoch in dem obigen beispielhaften Anwendungsfall ausgeführt, können eine oder mehrere Ausführungsformen Nutzen der Ausgabe jedes einzelnen Modells und/oder Netzes und des Domänenwissens umfassen, wie Zellen und Tabellen in Beziehung stehen, um die Erfassung sowohl während Trainings- als auch während Schlussfolgerungsstufen zu verbessern.
-
Weitere beispielhafte Anwendungsfälle zum Realisieren einer oder mehrerer Ausführungsformen der Erfindung können Zero-Shot-Lernen umfassen. Wenn man beispielsweise ein neues Tier erfasst, z.B. ein Zebra, könnte man ein Netz, das als ein Pferdedetektor vortrainiert ist, und ein anderes Netz haben, das als ein Streifendetektor vortrainiert ist. Wenn man weiß, dass Zebras in gewisser Hinsicht Pferden ähneln, aber Streifen aufweisen, kann man dem Pferdedetektor eine Strafe hinzufügen, derart, dass jede Erfassung, ohne dass der Streifendetektor ebenfalls innerhalb des Tieres aktiviert wird, bestraft wird. In ähnlicher Weise könnte jeder Streifendetektor nicht innerhalb des Pferdedetektors ebenfalls bestraft werden. Letztendlich könnten die Netze dafür geeignet sein, Zebras zu erfassen, ohne jemals markierte Vorkommen von Zebras zu haben.
-
2 ist ein Ablaufplan, welcher Techniken gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Schritt 202 umfasst Aufteilen einer Verarbeitungsaufgabe in mehrere Teilaufgaben. Die mehreren Teilaufgaben können unterschiedlichen Teilen eines gegebenen Objekts und/oder zumindest einem Teil einer anderen der mehreren Teilaufgaben entsprechen. Außerdem umfasst in mindestens einer Ausführungsform die Verarbeitungsaufgabe Bestimmen von Struktur und Position einer oder mehrerer Tabellen in einem Dokument. In einer solchen Ausführungsform kann eine Einschlussvorgabe zwischen Zellen und Tabellenbegrenzungen für die Tabellenerkennung vorliegen. Beispielsweise sollten Zellen immer innerhalb von Tabellen enthalten sein und Tabellen sollten immer Zellen enthalten. Deswegen wird, wenn eine Zelle außerhalb von Tabellen erfasst wird, die von dem Tabellennetz erfasst werden, dem Zellennetz für die Extra-Zellenerfassung eine Extrastrafe hinzugefügt. Wenn eine Tabelle erfasst wird, wobei die Dichte erfasster Zellen innerhalb der Tabelle niedrig ist, oder wenn mehrere Zellen gerade außerhalb der Tabelle erfasst werden, wird dem Tabellennetz eine Extrastrafe hinzugefügt.
-
Schritt 204 umfasst Trainieren mehrerer unabhängiger neuronaler Netze, derart, dass zumindest einige der mehreren Teilaufgaben unterschiedlichen der mehreren unabhängigen neuronalen Netze entsprechen. In mindestens einer Ausführungsform kann das Trainieren der mehreren unabhängigen neuronalen Netze Trainieren der mehreren unabhängigen neuronalen Netze derart umfassen, dass sich jedes Netz auf Erfassen von mindestens zwei Typen von Objekten spezialisiert, wobei bekannt ist, dass die mindestens zwei Typen von Objekten mindestens eine räumliche Beziehung zueinander aufweisen (z.B. eine Einschlussbeziehung).
-
Schritt 206 umfasst Definieren mindestens eines Vorgabeverlusts für eine gegebene der mehreren Teilaufgaben zumindest teilweise basierend auf vorgabebasiertem Domänenwissen in Bezug auf die Verarbeitungsaufgabe, wobei der mindestens eine Vorgabeverlust von einer Ausgabe aus mindestens einer der mehreren anderen Teilaufgaben abhängt. In mindestens einer Ausführungsform umfasst das Definieren des mindestens einen Vorgabeverlusts automatisches Auffinden der entsprechenden Vorgabe durch Analyse markierter Daten.
-
Schritt 208 umfasst Neu-Trainieren zumindest eines Teils der mehreren unabhängigen neuronalen Netze, wobei das Neu-Trainieren von der Verwendung des mindestens einen Vorgabeverlusts abhängt. In mindestens einer Ausführungsform umfasst das Neu-Trainieren Einbeziehen des mindestens einen Vorgabeverlusts in mindestens eines der mehreren unabhängigen neuronalen Netze im Hinblick darauf, dass für eine beliebige gegebene Eingabe mindestens eine räumliche Beziehung zwischen einer oder mehreren Ausgaben des mindestens einen neuronalen Netzes und zumindest eines Teils der anderen neuronalen Netze verletzt wird. Eine solche Ausführungsform kann außerdem Zurückführen des mindestens einen Vorgabeverlusts überall in dem mindestens einen neuronalen Netz umfassen, indem eine Gewichtung, die jeder von einer oder mehreren Einheiten in dem mindestens einen neuronalen Netz zugeordnet wird, in Richtung eines Werts modifiziert wird, der eine Ausgabe erzeugt hätte, die die Vorgabe erfüllt. Zusätzlich oder alternativ umfasst in einer oder mehreren Ausführungsformen das Neu-Trainieren Verwenden des mindestens einen Vorgabeverlusts in einer überwachten Einstellung oder in einer unüberwachten Einstellung.
-
Außerdem umfasst eine weitere Ausführungsform der Erfindung Aufteilen einer Verarbeitungsaufgabe in mehrere Teilaufgaben und Trainieren eines neuronalen Netzes mit mehreren divergenten Zweigen darin derart, dass zumindest einige der mehreren Teilaufgaben unterschiedlichen der mehreren divergenten Zweige des neuronalen Netzes entsprechen. Eine solche Ausführungsform umfasst außerdem Definieren mindestens eines Vorgabeverlusts für eine gegebene der mehreren Teilaufgaben zumindest teilweise basierend auf vorgabebasiertem Domänenwissen in Bezug auf die Verarbeitungsaufgabe, wobei der mindestens eine Vorgabeverlust von einer Ausgabe aus mindestens einer der mehreren anderen Teilaufgaben abhängt, und Neu-Trainieren zumindest eines Teils des neuronalen Netzes, wobei das Neu-Trainieren von einer Verwendung des mindestens einen Vorgabeverlusts abhängt.
-
Die in 2 dargestellten Techniken können außerdem, wie hierin beschrieben, Bereitstellen eines Systems umfassen, wobei das System individuelle Software-Module umfasst, wobei jedes der individuellen Software-Module auf einem materiellen computerlesbaren bespielbaren Speichermedium verkörpert ist. Beispielsweise können sich alle der Module (oder eine beliebige Teilgruppe davon) auf demselben Medium befinden oder jedes kann sich auf einem anderen Medium befinden. Die Module können beliebige oder alle der Komponenten umfassen, die in den Figuren dargestellt und/oder hierin beschrieben werden. In einer Ausführungsform der Erfindung können die Module zum Beispiel auf einem Hardware-Prozessor ablaufen. Die Verfahrensschritte können dann unter Verwendung der individuellen Software-Module des Systems, wie oben beschrieben, ausgeführt werden, die auf einem Hardware-Prozessor ausgeführt werden. Ferner kann ein Computerprogrammprodukt ein materielles computerlesbares bespielbares Speichermedium mit Code umfassen, der dafür geeignet ist, so ausgeführt zu werden, dass mindestens ein hierin beschriebener Verfahrensschritt ausgeführt wird, umfassend das Bereitstellen des Systems mit den individuellen Software-Modulen.
-
Außerdem können die in 2 dargestellten Techniken über ein Computerprogrammprodukt realisiert werden, welches von einem Computer verwendbaren Programmcode umfassen kann, der in einem computerlesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert ist, und wobei der von einem Computer verwendbare Programmcode über ein Netzwerk von einem entfernt angeordneten Datenverarbeitungssystem heruntergeladen worden ist. Ferner kann in einer Ausführungsform der Erfindung das Computerprogrammprodukt von einem Computer verwendbaren Programmcode umfassen, der in einem computerlesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert ist, und wobei der von einem Computer verwendbare Programmcode über ein Netzwerk auf ein entfernt angeordnetes Datenverarbeitungssystem zur Verwendung in einem computerlesbaren Speichermedium mit dem entfernt angeordneten System heruntergeladen wird.
-
Eine Ausführungsform der Erfindung oder Elemente davon können in der Form einer Vorrichtung realisiert werden, welche einen Speicher und mindestens einen Prozessor umfasst, der mit dem Speicher verbunden und so konfiguriert ist, dass er beispielhafte Verfahrensschritte ausführt.
-
Außerdem kann eine Ausführungsform der vorliegenden Erfindung Software nutzen, die auf einem Computer oder einem Arbeitsplatzrechner abläuft. Bezug nehmend auf 3, könnte bei einer solchen Realisierung zum Beispiel ein Prozessor 302, ein Speicher 304 und eine Eingabe/Ausgabe-Schnittstelle eingesetzt werden, die zum Beispiel von einer Anzeigevorrichtung 306 und einer Tastatur 308 gebildet wird. Der Begriff „Prozessor“, wie hierin verwendet, soll eine beliebige Verarbeitungseinheit umfassen, wie zum Beispiel eine, die eine CPU (Zentraleinheit) und/oder andere Formen von Verarbeitungsschaltungen umfasst. Ferner kann sich der Begriff „Prozessor“ auf mehr als einen einzelnen Prozessor beziehen. Der Begriff „Speicher“ soll Speicher umfassen, der zu einem Prozessor oder einer CPU gehört, wie zum Beispiel RAM (Direktzugriffsspeicher), ROM (Nur-Lese-Speicher), eine feste Speichereinheit (zum Beispiel ein Festplattenlaufwerk), eine entfernbare Speichereinheit (zum Beispiel eine Diskette), einen Flash-Speicher und Ähnliches. Außerdem soll der Ausdruck „Eingabe/Ausgabe-Schnittstelle“, wie hierin verwendet, zum Beispiel einen Mechanismus zum Eingeben von Daten in die Verarbeitungseinheit (zum Beispiel eine Maus) und einen Mechanismus zum Bereitstellen von Ergebnissen (zum Beispiel einen Drucker) umfassen, der zu der Verarbeitungseinheit gehört. Der Prozessor 302, der Speicher 304 und die Eingabe/Ausgabe-Schnittstelle, z.B. die Anzeigevorrichtung 306 und die Tastatur 308, können zum Beispiel über einen Bus 310 als Teil einer Datenverarbeitungseinheit 312 verbunden sein. Geeignete Verbindungen, zum Beispiel über den Bus 310, können auch einer Netzwerk-Schnittstelle 314, z.B. einer Netzwerkkarte, welche bereitgestellt werden kann, um eine Verbindung zu einem Computernetzwerk zu schaffen, und einer Medienschnittstelle 316, z.B. einem Disketten- oder einem CD-ROM-Laufwerk, bereitgestellt werden, welches bereitgestellt werden kann, um eine Verbindung zu Medien 318 zu schaffen.
-
Entsprechend kann Computer-Software, die Anweisungen oder Code zum Ausführen der Methoden der Erfindung umfasst, wie hierin beschrieben, in zugehörigen Speichereinheiten (zum Beispiel ROM, festem oder austauschbarem Speicher) gespeichert sein und, wenn sie gebrauchsfertig ist, teilweise oder vollständig (zum Beispiel in RAM) geladen werden und von einer CPU umgesetzt werden. Eine solche Software könnte Firmware, residente Software, Mikrocode und Ähnliches umfassen, ohne auf diese beschränkt zu sein.
-
Ein Datenverarbeitungssystem, welches zum Speichern und/oder Ausführen von Programmcode geeignet ist, umfasst mindestens einen Prozessor 302, der über einen Systembus 310 direkt oder indirekt mit Speicherelementen 304 verbunden ist. Die Speicherelemente können lokalen Speicher, der während der tatsächlichen Umsetzung des Programmcodes eingesetzt wird, Massenspeicher und Cache-Speicher umfassen, welche für eine vorübergehende Speicherung mindestens eines Programmcodes sorgen, um die Häufigkeit zu verringern, wie oft während der Umsetzung Code aus dem Massenspeicher abgerufen werden muss.
-
Eingabe/Ausgabe- oder I/O-Einheiten (umfassend, ohne darauf beschränkt zu sein, Tastaturen 308, Anzeigevorrichtungen 306, Zeigeeinheiten und Ähnliches) können entweder direkt (z.B. über den Bus 310) oder über dazwischen angeordnete I/O-Steuerungen (zugunsten einer klaren Darstellung weggelassen) mit dem System verbunden sein.
-
Netzwerkadapter wie die Netzwerk-Schnittstelle 314 können ebenfalls mit dem System verbunden sein, um zu ermöglichen, dass das Datenverarbeitungssystem über dazwischen angeordnete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten verbunden wird. Modems, Kabelmodems und Ethernet-Karten sind nur einige der derzeit erhältlichen Typen von Netzwerkadaptern.
-
Wie hierin einschließlich der Patentansprüche verwendet, umfasst ein „Server“ ein physisches Datenverarbeitungssystem (zum Beispiel das System 312, wie in 3 dargestellt), auf dem ein Server-Programm abläuft. Es versteht sich, dass ein solcher physischer Server eine Anzeigevorrichtung und eine Tastatur aufweisen kann oder nicht.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt in jeder möglichen Feinheitsstufe der technischen Integration handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit computerlesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem computerlesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste speziellerer Beispiele des computerlesbaren Speichermediums gehören die Folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine Digital Versatile Disc (DVD), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein computerlesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse), oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, computerlesbare Programmanweisungen können von einem computerlesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei computerlesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, Instruction-Set-Architecture-Anweisungen (ISA-Anweisungen), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurorientierte Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gate-Arrays (FPGA, Field Programmable Gate Arrays) oder programmierbare Logikanordnungen (PLA, Programmable Logic Arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung auszuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels computerlesbarer Programmanweisungen ausgeführt werden können.
-
Diese computerlesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Realisierung der in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Handlungen erzeugen. Diese computerlesbaren Programmanweisungen können auch auf einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das computerlesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfasst, darunter Anweisungen, welche Aspekte der/des in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder festgelegten Funktion/Schritts realisieren.
-
Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Operationsschritten auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit zu verursachen, um einen durch einen Computer realisierten Prozess zu erzeugen, so dass die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführten Anweisungen die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte realisieren.
-
Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) umfassen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren dargestellt stattfinden. Zwei nacheinander dargestellte Blöcke können zum Beispiel in Wirklichkeit als ein Schritt, gleichzeitig, im Wesentlichen gleichzeitig, in einer teilweise oder vollständig überlappenden Weise ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme realisiert werden können, welche die festgelegten Funktionen oder Handlungen durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Es sei angemerkt, dass jedes der hierin beschriebenen Verfahren einen zusätzlichen Schritt des Bereitstellens eines Systems umfassen kann, welches individuelle Software-Module aufweist, die auf einem computerlesbaren Speichermedium verkörpert sind; die Module können zum Beispiel beliebige oder alle der hierin ausgeführten Komponenten umfassen. Die Verfahrensschritte können dann unter Verwendung der individuellen Software-Module und/oder Teilmodule des Systems, wie oben beschrieben, ausgeführt werden, die auf einem Hardware-Prozessor 302 ablaufen. Ferner kann ein Computerprogrammprodukt ein computerlesbares Speichermedium mit Code umfassen, der dafür geeignet ist, so umgesetzt zu werden, dass mindestens ein hierin beschriebener Verfahrensschritt ausgeführt wird, einschließlich des Bereitstellens des Systems mit den individuellen Software-Modulen.
-
In jedem Fall versteht es sich, dass die hierin veranschaulichten Komponenten in verschiedenen Formen von Hardware, Software oder Kombinationen davon realisiert werden können, zum Beispiel anwendungsspezifischen integrierten Schaltungen (Application Specific Integrated Circuits, ASICs), funktionellen Schaltungen, einem geeignet programmierten digitalen Computer und Ähnlichem. Mit den Lehren der hierin bereitgestellten Erfindung kann der Fachmann andere Realisierungen der Komponenten der Erfindung vorhersehen.
-
Außerdem sei vorab klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine bestimmte Datenverarbeitungsumgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung in Verbindung mit jeder beliebigen Art von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud-Computing ist beispielsweise ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (zum Beispiel Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Diensts schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Einsatzmodelle umfassen.
-
Bei den Eigenschaften handelt es sich um die Folgenden:
-
On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Server-Zeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist.
-
Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin-oderThick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
-
Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle oder Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, eine Position auf einer höheren Abstraktionsebene festzulegen (zum Beispiel Land, Staat oder Rechenzentrum).
-
Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (Scale-out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
-
Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (zum Beispiel Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Bei den Dienstmodellen handelt es sich um die Folgenden:
-
Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die auf einer Cloud-Infrastruktur ablaufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser von verschiedenen Client-Einheiten her zugänglich (zum Beispiel auf dem Web beruhende E-Mail). Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von beschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
-
Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte oder erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Application Hosting Environment.
-
Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine beschränkte Kontrolle über ausgewählte Netzwerkkomponenten (zum Beispiel Host-Firewalls).
-
Bei den Einsatzmodellen handelt es sich um die Folgenden:
-
Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
-
Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (zum Beispiel Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder fremden Räumen befinden.
-
Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (Private, Community oder Public), welche zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Portierbarkeit von Daten und Anwendungen ermöglicht (zum Beispiel Cloud-Bursting für den Lastausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Zentrum des Cloud-Computing steht eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
-
Bezug nehmend auf 4, ist dort die veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie dargestellt, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie ein elektronischer Assistent (PDA, Personal Digital Assistant) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie Private, Community, Public oder Hybrid Clouds, wie vorstehend beschrieben, oder in eine Kombination davon gruppiert werden (nicht dargestellt). Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die Arten von Datenverarbeitungseinheiten 54A bis N, die in 4 dargestellt sind, lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
-
Nun Bezug nehmend auf 5, ist dort ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (4) bereitgestellt werden. Es sollte vorab klargestellt werden, dass die in 5 dargestellten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Software-Schicht 60 umfasst Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC-Architektur (Reduced Instruction Set Computer Architecture) basierende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65 und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Software-Komponenten Netzwerk-Anwendungs-Server-Software 67 und Datenbank-Software 68.
-
Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus welcher die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74 und virtuelle Clients 75. In einem Beispiel kann eine Verwaltungsschicht 80 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Messen und Preisfindung 82 stellt die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit.
-
In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen umfassen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugriff auf die Cloud-Computing-Umgebung bereit. Eine Dienstumfangsverwaltung 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstumfänge erreicht werden. Planung und Erfüllung von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Vorbereitung und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
-
Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95 und kooperative neuronale Netze mit räumlichen Einschlussvorgaben gemäß der einen oder den mehreren Ausführungsformen der vorliegenden Erfindung.
-
Die hierin verwendete Terminologie dient lediglich dem Zweck der Beschreibung bestimmter Ausführungsformen und soll die Erfindung nicht beschränken. Wie hierin verwendet, sollen die Singularformen „ein“, „eine“ und „der“, „die“, „das“ auch die Pluralformen umfassen, sofern es nicht durch den Kontext eindeutig anders angezeigt wird. Es versteht sich ferner, dass die Begriffe „weist auf“ und/oder „aufweisen“, wenn sie in dieser Beschreibung verwendet werden, das Vorliegen angegebener Merkmale, Schritte, Operationen, Elemente und/oder Komponenten anzeigen, aber nicht das Vorliegen oder Hinzufügen eines anderen Merkmals, eines anderen Schritts, einer anderen Operation, eines anderen Elements, einer anderen Komponente und/oder einer Gruppe davon ausschließen.
-
Mindestens eine Ausführungsform der vorliegenden Erfindung kann für vorteilhafte Effekte sorgen, wie zum Beispiel produktives Verwenden teilweise markierter Daten, welche nicht alle Markierungen enthalten, die für die vollständige Aufgabe erforderlich sind, Einbeziehen von Domänenwissen, um eine Netzwerk-Trainingsgeschwindigkeit und -genauigkeit zu verbessern, und Lernen aus unmarkierten Daten.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung sind zu Veranschaulichungszwecken gegeben worden, sollen aber nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Dem Fachmann werden viele Modifikationen und Variationen ersichtlich sein, ohne vom Umfang der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Prinzipien der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber marktüblichen Technologien bestmöglich zu erläutern oder anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.