-
Technisches Gebiet der Erfindung
-
Im Allgemeinen betrifft die vorliegende Erfindung Cloud Computing. Genauer gesagt betrifft die vorliegende Erfindung die Bereitstellung von Cloud-Diensten durch die Errichtung eines Cloud-Dienste-Katalogs mit einem Cloud-Dienst-Bus innerhalb einer Cloud-Computing-Umgebung.
-
Hintergrund der Erfindung
-
Cloud Computing ist inzwischen ein beliebter Weg, um verschiedene Informationstechnologie (IT) Konzepte wie Dienstleistungen anzubieten. In traditionellen IT-Umgebungen haben Kunden grundlegende Erwartungen rund um die Qualitäten eines Dienstes. Da der Cloud Computing Einsatz weiter wächst, werden die gleichen Erwartungen an Dienste entstehen, um allgemein verfügbar zu sein, skalierbar zu sein und um mit mehr dynamischen Attributen, die mit ihnen verbunden sind, versehen zu sein. Um diese Anforderungen zu erfüllen, müssen Cloud-Anbieter erkennen, dass bestehende Bus-Designs von Dienstleistungsunternehmen nicht angemessen mit dem Maßstab, der heterogenen Beteiligung und den Dynamiken umgehen, welche mit einem reifen (d. h. voll entwickelten) Cloud Computing-Diensten Bus-Modell verknüpft sind.
-
Offenbarung der Erfindung
-
Die vorliegende Erfindung beschreibt ein System und Verfahren zur dynamischen Erzeugung und Pflege eines Cloud-Dienste-Katalogs unter Verwendung eines Cloud-Bus. Der Cloud-Bus ermöglicht mehrere disparate Dienste, die von verschiedenen Partnern angeboten werden, über unverbundene, physikalisch getrennte Clouds, als ein Index von integrierten Diensten zu präsentieren.
-
Unter anderem ermöglicht die vorliegende Erfindung für Cloud-Anbieter: Bereitstellen eines Verfahrens, um eine minimale Menge von Attributen zu etablieren und zu beauftragen, um mit anderen Cloud-Diensten zusammenzuarbeiten; Bereitstellen eines Verfahrens, um die dynamische Natur einer Cloud-Computing-Umgebung zu verwalten, so dass der Cloud-Dienste-Bus verwendet werden kann, um die sich ständig ändernde Natur der Cloud-Ressourcen und der angebotenen Dienste zu verwalten; Bereitstellen eines Verfahrens, um die ständig wechselnden Dienst-Levels, die mit den verfügbaren Cloud-Diensten verbunden sind, zu verwalten und darzustellen; und Bereitstellen eines Verfahrens, um Dritten Cloud-Partnern (oder Cloud-Brokern) zu ermöglichen, neue Dienst-Katalog-Einträge, die von mehreren Back-End-Cloud-Anbietern implementiert werden, zu erstellen.
-
Ein erster Aspekt der vorliegenden Erfindung stellt ein Verfahren zur Bereitstellung von Diensten aus einer Vielzahl von Clouds in einer Cloud Computing-Umgebung zur Verfügung, umfassend: Verbinden der Vielzahl von Clouds in der Cloud Computing-Umgebung;
Pflegen eines Katalogs von integrierten Cloud-Diensten aus der Vielzahl von verbundenen Clouds; und Anzeigen eines Index der integrierten Dienste auf einer Benutzeroberfläche.
-
Ein zweiter Aspekt der vorliegenden Erfindung stellt einen Cloud-Dienste-Katalog Manager zur Bereitstellung von Diensten aus einer Vielzahl von Clouds in einer Cloud Computing-Umgebung zur Verfügung, umfassend: ein Speichermedium mit Anweisungen; einen Bus, der mit dem Speichermedium gekoppelt ist; und einen Prozessor gekoppelt an den Bus, der bei der Ausführung der Anweisungen bewirkt, dass der Cloud-Dienste Bus-Manager: die Vielzahl von Clouds in der Cloud Computing-Umgebung verbindet; einen Katalog von integrierten Cloud-Diensten aus der Vielzahl von verbundenen Clouds pflegt; und einen Index der integrierten Dienste auf einer Benutzeroberfläche anzeigt.
-
Ein dritter Aspekt der vorliegenden Erfindung stellt ein computerlesbares Medium zur Verfügung, dass ein Computerprogramm enthält, zur Bereitstellung von Diensten aus einer Vielzahl von Clouds in einer Cloud Computing-Umgebung, wobei das computerlesbare Medium einen Computerprogramm-Code umfasst, der bewirkt, dass ein Computersystem: die Vielzahl von Clouds in der Cloud Computing-Umgebung verbindet; einen Katalog von integrierten Cloud-Diensten aus der Vielzahl von verbundenen Clouds pflegt; und einen Index der integrierten Dienste auf einer Benutzeroberfläche anzeigt.
-
Ein vierter Aspekt der vorliegenden Erfindung stellt ein Verfahren zur Einsetzung eines Systems zur Bereitstellung von Diensten aus einer Vielzahl von Clouds in einer Cloud Computing-Umgebung zur Verfügung, umfassend: Bereitstellen einer Computer-Infrastruktur, die betriebsfähig ist, um: die Vielzahl von Clouds in der Cloud Computing-Umgebung zu verbinden; einen Katalog von integrierten Cloud-Diensten aus der Vielzahl von verbundenen Clouds zu pflegen; und einen Index der integrierten Dienste auf einer Benutzeroberfläche anzuzeigen.
-
Kurze Beschreibung der Zeichnungen
-
Diese und weitere Merkmale der vorliegenden Erfindung werden leichter aus der folgenden detaillierten Beschreibung der verschiedenen Aspekte der vorliegenden Erfindung in Verbindung mit den beigefügten Zeichnungen, verständlich, wobei:
-
1 einen Cloud-System-Knoten gemäß der vorliegenden Erfindung darstellt.
-
2 eine Cloud Computing-Umgebung gemäß der vorliegenden Erfindung darstellt.
-
3 Cloud Abstraktionsmodellschichten gemäß der vorliegenden Erfindung darstellt.
-
4 ein anschauliches Beispiel eines Cloud-Dienste-Bus gemäß der vorliegenden Erfindung zeigt.
-
5 ein Flussdiagramm eines Verfahrens gemäß der vorliegenden Erfindung zum Einbringen von Dienst-Einträgen in den Cloud-Dienste-Katalog zeigt.
-
6 ein Flussdiagramm eines Verfahrens gemäß der vorliegenden Erfindung zum Synchronisieren der Teilnehmer der Cloud-Dienste-Kataloge zeigt.
-
7 ein Flussdiagramm eines Verfahrens gemäß der vorliegenden Erfindung zeigt.
-
Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu. Die Zeichnungen sind lediglich schematische Darstellungen, nicht dazu gedacht, bestimmte Parameter der vorliegenden Erfindung darzustellen. Die Zeichnungen dienen nur dazu, typische Ausführungsformen der vorliegenden Erfindung darzustellen und werden daher nicht als Einschränkung des Umfangs der vorliegenden Erfindung betrachtet. In den Zeichnungen bezeichnen gleiche Bezugszeichen gleiche Elemente.
-
Detaillierte Beschreibung der bevorzugten Ausführungsform
-
Der Einfachheit halber ist die ausführliche Beschreibung der bevorzugten Ausführungsform in die folgenden Abschnitte unterteilt:
- I. Cloud Computing-Definitionen
- II. Detaillierte Implementierung der bevorzugten Ausführungsform
- I. Cloud Computing-Definitionen
-
Die folgenden Definitionen stammen aus „Draft NIST Working Definition of Cloud Computing” von Peter Mell und Tim Grance, datiert vom 7. Oktober 2009, die in der hiermit eingereichten IDS zitiert wird, und eine Kopie hiervon ist beigefügt.
-
„Cloud Computing” ist ein Modell zur Ermöglichung eines bequemen, Auf-Abruf-Netzwerkzugriff, um auf einen gemeinsam genutzten Pool von konfigurierbaren Computing Ressourcen (zum Beispiel Netzwerke, Server, Speicher, Anwendungen und Dienstleistungen) zuzugreifen, die mit minimalem Managementaufwand oder Interaktion mit einem Dienstanbieter schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell fördert die Verfügbarkeit und umfasst wenigstens fünf Eigenschaften, drei Dienstmodelle und vier Verwendungsmodelle.
-
Eigenschaften sind die folgenden:
-
On Demand Self Service: Ein Verbraucher kann einseitig Computing-Funktionen bereitstellen, wie zum Beispiel Serverzeit und Netzwerkspeicher, bei Bedarf automatisch ohne eine menschliche Interaktion mit einem Dienst-Anbieter.
-
Breiter Netzwerkzugriff (broad network access): Funktionen sind über ein Netzwerk verfügbar und zugegriffen wird über Standardmechanismen, die den Einsatz von heterogenen thin oder thick Client-Plattformen (zum Beispiel Handys, Laptops und PDAs) unterstützen.
-
Ressourcen Pooling: Die Computing-Ressourcen des Anbieters werden gebündelt, um mehreren Verbrauchern mithilfe eines mandantenfähigen-Modells, mit unterschiedlichen physikalischen und virtuellen Ressourcen, die je nach Bedarf dynamisch zugewiesen und neu zugewiesen werden, zu dienen. Es gibt eine Art von Standortunabhängigkeit dadurch, dass der Verbraucher im Allgemeinen nicht die Kontrolle oder Kenntnis über den genauen Standort der zur Verfügung gestellten Ressourcen hat, aber es ist möglich, den Standort auf einer höheren Ebene der Abstraktion (zum Beispiel Land, Bundesland oder Datencenter) anzugeben. Beispiele für Ressourcen umfassen Speicher, Verarbeitung, Speicher, Netzwerk-Bandbreite und virtuelle Maschinen.
-
Schnelle Elastizität (rapid elasticity): Funktionen können schnell und elastisch bereitgestellt werden, in einigen Fällen automatisch, um schnelles scale-out und schnelles scale-in zu gewährleisten. Für den Verbraucher scheinen die verfügbaren Möglichkeiten zur Beschaffung häufig unbegrenzt zu sein und können in beliebiger Menge zu jeder Zeit gekauft werden.
-
Messbarer Dienst (measured service): Cloud-Systeme kontrollieren automatisch und optimieren die Ressourcennutzung durch Nutzung einer wirksam eingesetzten Erfassungsfähigkeit auf einer bestimmten Ebene der Abstraktion, die der Art des Dienstes (zum Beispiel Speicherung, Verarbeitung, Bandbreite und aktivierter Benutzerkonten) entspricht. Die Ressourcennutzung kann überwacht, gesteuert und berichtet werden, um die Transparenz sowohl für die Anbieter als auch für die Verbraucher des verwendeten Dienstes zu gewährleisten.
-
Dienstmodelle sind die folgenden:
-
Cloud Software as a Cloud Service (SaaS): Die Fähigkeit, die dem Verbraucher bereitgestellt wird, ist die Nutzung der Anbieteranwendung, die auf einer Cloud-Infrastruktur betrieben wird. Die Anwendungen sind von verschiedenen Client-Vorrichtungen über eine Thin-Client-Schnittstelle, wie zum Beispiel einen Webbrowser (zum Beispiel Web-basierte E-Mail) erreichbar. Der Verbraucher verwaltet oder kontrolliert nicht die zugrunde liegende Cloud-Infrastruktur einschließlich Netzwerk, Servern, Betriebssystemen, Speichern oder sogar individuellen Anwendungsfähigkeiten, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
-
Cloud Platform as a Cloud Service (PaaS): Die Fähigkeit, die dem Verbraucher bereitgestellt wird, ist die Nutzung der vom Verbraucher geschaffenen Cloud-Infrastruktur oder erworbene Anwendungen, die mit Programmiersprachen und Tools vom Anwender unterstützt werden. Der Verbraucher verwaltet oder kontrolliert die zugrunde liegende Cloud-Struktur einschließlich Netzwerke, Server, Betriebssystem und Speichern, nicht, hat aber die Kontrolle über die eingesetzten Anwendungen und mögliche Anwendungs-Hosting-Umgebungskonfigurationen.
-
Cloud Infrastructure as a Cloud Service (IaaS): Die Fähigkeit, die dem Verbraucher bereitgestellt wird, ist die Beschaffung von Verarbeitungs-, Speicherungs-, Netzwerks- und anderen grundlegenden EDV-Ressourcen, bei denen der Verbraucher in der Lage ist, beliebige Software, die Betriebssysteme und Anwendungen umfassen kann, einzusetzen und zu bedienen. Der Verbraucher verwaltet oder kontrolliert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerk-Komponenten (zum Beispiel Host-Firewalls). Verwendungsmodelle sind die folgenden:
Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer dritten Partei verwaltet werden und kann sich vor Ort oder auswärts befinden.
-
Gemeinschaftliche Cloud (community cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam benutzt und unterstützt eine bestimmte Gemeinschaft, die gemeinsame Anliegen (zum Beispiel Auftrag, Sicherheitsanforderung, Richtlinien und Compliance-Aspekte) teilt. Sie kann von der Organisation oder einer dritten Person verwaltet werden und kann sich vor Ort oder auswärts befinden.
-
Öffentliche Cloud (public cloud): Die Cloud-Infrastruktur wird der breiten Öffentlichkeit zur Verfügung gestellt oder einer großen Industriegruppe und gehört einer Organisation, die Cloud-Dienste verkauft.
-
Mischform-Cloud (hybrid cloud): Die Cloud-Infrastruktur besteht aus zwei oder mehreren Clouds (private, gemeinschaftliche oder öffentliche), die zwar einzigartig bleiben, aber durch standardisierte oder proprietäre Technologien miteinander verbunden sind, was die Daten- und Anwendungsportierbarkeit (zum Beispiel Cloud Bursting für Load Balancing zwischen den Clouds) ermöglicht.
-
Cloud-Software nutzt alle Vorteile des Cloud-Paradigma, indem sie serviceorientiert ist mit einem Fokus auf Zustandslosigkeit, geringe Kopplung, Modularität und semantische Interoperabilität.
-
II. Implementierung der bevorzugten Ausführungsform
-
Wie oben gezeigt, beschreibt die vorliegende Erfindung ein System und Verfahren zur dynamischen Erzeugung und Pflege eines Cloud-Dienste-Katalogs unter Verwendung eines Cloud-Bus. Der Cloud-Bus ermöglicht mehrere disparate Dienste, die von verschiedenen Partnern angeboten werden, über unverbundene, physikalisch getrennte Clouds, die als Index von integrierten Diensten präsentiert werden.
-
Unter anderem ermöglicht die vorliegende Erfindung für Cloud-Anbieter: Bereitstellen eines Verfahrens, um eine minimale Menge von Attributen zu etablieren und zu beauftragen, um mit anderen Cloud-Diensten zusammenzuarbeiten; Bereitstellen eines Verfahrens, um die dynamische Natur einer Cloud-Computing-Umgebung zu verwalten, so dass der Cloud-Dienste-Bus verwendet werden kann, um die sich ständig ändernde Natur der Cloud-Ressourcen und der angebotenen Dienste zu verwalten; Bereitstellen eines Verfahrens, um die ständig wechselnden Dienst-Levels, die mit den verfügbaren Cloud-Diensten verbunden sind, zu verwalten und darzustellen; Bereitstellen eines Verfahrens, um Dritten Cloud-Partnern (oder Cloud-Brokern) zu ermöglichen, neue Dienst-Katalog-Einträge, die von mehreren Back-End-Cloud-Anbietern implementiert werden, zu erstellen.
-
Heute gibt es Cloud-Anbieter in einzelnen Domänen und sie sind auf die Bereitstellung einer bestimmten Ressource, wie zum Beispiel Zugang zu Computern, Computerspeichern, Business-Anwendungen, etc. konzentriert. Um diese Cloud-Funktionen für ihre Kunden bereitzustellen, müssen die Cloud-Anbieter, Geld, Zeit und Energie in den Aufbau der IT-Infrastruktur investieren, um den erwarteten Anforderungen ihrer Kunden gerecht zu werden. Wenn sie „überdimensioniert” sind, verringern sie ihre Rendite des Kapitalinvestments und wenn sie „unterdimensioniert” sind, verlieren sie die Wachstumsmöglichkeit. In der Lage zu sein den Anforderungen gerecht zu werden, die auftreten, wenn ihr Kapitalinvestment keine Rendite umfasst, wird ihnen helfen, profitable Unternehmen zu werden. Um in der Lage zu sein diesen Ansatz auszuführen, erfordert es ein System und Verfahren zur Sammlung, Anzeige und Pflege von Cloud-Diensten, die durch eine Integration von unterschiedlichen Cloud Computing-Umgebungen bereitgestellt werden.
-
Dies wird durch einen Cloud-Dienste-Bus ermöglicht, der verfügbare Dienste den Cloud-Kunden anzeigt, einschließlich Dienste die von mehreren Cloud-Anbietern zur Verfügung gestellt werden. Diese Erscheinungsform eines Cloud-Dienste-Katalogs ermöglicht die Erstellung von ”gemischten” Cloud-Diensten. Insgesamt stellt die vorliegende Erfindung einen neuen Weg für die effiziente Erfüllung dynamischer Ressourcen-Anforderungen zur Verfügung, die innerhalb einer Cloud-Umgebung auftreten, wobei Dienste genutzt werden, die von mehreren Cloud-Partnern über ganz unterschiedliche Cloud-Anbieter angeboten werden.
-
Bezugnehmend nun auf 1 ist eine schematische Darstellung eines beispielhaften Cloud Computing-Knotens gezeigt. Der Cloud-Computing-Knoten 10 ist lediglich eine Beispiel für einen geeigneten Cloud-Computing-Knoten und ist nicht dazu gedacht, irgendeine Einschränkung bezüglich des Umfangs der Verwendung oder Funktionalität der vorliegenden, hierin beschriebenen, Erfindung nahezulegen. Unabhängig davon ist der Cloud-Computing-Knoten 10 in der Lage Funktionen zu implementierten und/oder durchzuführen, wie in obigem Abschnitt I gezeigt. Im Cloud-Computing-Knoten 10 befindet sich ein Computer-System/Server 12, der mit zahlreichen anderen Universal- oder Spezial-Computing-System-Umgebungen oder Konfigurationen betrieben wird. Beispiele von gut bekannten Computersystemen, Umgebungen und/oder Konfigurationen, die für den Einsatz mit dem Computersystem/Server 12 geeignet sein können umfassen, sind aber nicht beschränkt auf, Personal Computer, Server-Computer-Systeme, Thin-Clients, Thick-Clients, handheld oder Laptop-Vorrichtungen, Multiprozessorsysteme, Mikroprozessor-basierte Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputer Systeme, Mainframe-Computersysteme, und verteilte Cloud-Computing-Umgebungen, die irgendeines der oben genannten Systeme oder Vorrichtungen und dergleichen umfassen.
-
Ein Computersystem/Server 12 kann in dem allgemeinen Kontext mit Computer-System-ausführbaren-Anweisungen, wie z. B. Programmmodulen, die durch ein Computersystem ausgeführt werden, beschrieben werden. Im Allgemeinen enthalten Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Das beispielhafte Computersystem/Server 12 kann in verteilten Cloud Computing-Umgebungen genutzt werden, in denen Aufgaben durch dezentrale Verarbeitungsvorrichtungen ausgeführt werden, die über ein Kommunikationsnetz verbunden sind. In einer verteilten Cloud Computing-Umgebung können Programmmodule sowohl in lokalen als auch entfernten Computersystem Speichermedien einschließlich Speichervorrichtungen angeordnet werden.
-
Wie in 1 gezeigt ist, ist das Computersystem/Server 12 in einem Cloud-Computing-Knoten 10 in Form einer Universal-Rechnervorrichtung dargestellt. Die Komponenten des Computersystems/Servers 12 können umfassen, sind aber nicht beschränkt auf, einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18, der verschiedene Systemkomponenten einschließlich des Systemspeichers 28 an den Prozessor 16 koppelt.
-
Der Bus 18 zeigte eine oder mehrere von Typen von Busstrukturen, einschließlich einem Speicherbus oder Speichercontroller, einen Peripheriebus, einen Accelerated Graphics Port, und einen Prozessor oder lokalen Bus unter Verwendung einer aus einer Vielfalt von Busarchitekturen. Beispielsweise, und nicht einschränkend, umfassen solche Architekturen einen Industry Standard Architecture (ISA) Bus, Micro Channel Architecture (MCA) Bus, Enhanced ISA (EISA) Bus, Video Electronics Standards Association (VESA) lokalen Bus und Peripheral Component Interconnects (PCI) Bus. Das Computersystem/Server 12 umfasst üblicherweise eine Vielfalt von Computersystem lesbaren Medien. Solche Medien können beliebige verfügbare Medien sein, die über ein Computersystem/Server 12 ansteuerbar sind, und sie umfassen sowohl flüchtige als auch nichtflüchtige Medien, entfernbare und nicht entfernbare Medien.
-
Systemspeicher 28 kann ein Computersystem lesbares Medium in der Form eines flüchtigen Speichers, wie beispielsweise Random Access Memory (RAM) 30 und/ oder Cache-Speicher 32, umfassen. Das Computersystem/Server 12 kann ferner andere entfernbare/nicht-entfernbare, flüchtige/nichtflüchtige Computer-System Speichermedien umfassen. Beispielsweise kann ein Speichersystem 34 zum Lesen von und Schreiben auf ein nicht-entfernbares, nichtflüchtiges magnetisches Medium (nicht gezeigt und typischerweise als ”Festplatte” bezeichnet) vorgesehen sein. Obwohl nicht gezeigt, kann ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine entfernbare, nichtflüchtige Magnetplatte (z. B. eine ”Floppy Disk”) und ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine entfernbare, nichtflüchtige optische Platte, wie beispielsweise eine CD-ROM, DVD-ROM oder andere optische Medien, vorgesehen sein. In solchen Fällen kann jedes mit dem Bus 18 durch eine oder mehrere Datenträger-Schnittstellen verbunden sein. Wie weiter dargestellt und nachfolgend beschrieben werden wird, kann der Speicher 28 mindestens ein Programm-Produkt mit einem Satz (z. B. mindestens einem) von Programm-Modulen umfassen, die konfiguriert sind, um die Funktionen der vorliegenden Erfindung auszuführen.
-
In dem Speicher 28 kann beispielsweise, aber nicht einschränkend, ein Programm/Dienstprogramm 40 mit einem Satz (mindestens einem) von Programm-Modulen 42 gespeichert sein, sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Jedes Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination davon, kann eine Implementierung einer Netzwerkumgebung umfassen. Programm-Module 42 führen im Allgemeinen die Funktionen und/oder Methoden der vorliegenden, hierin beschriebenen, Erfindung aus.
-
Das Computersystem/Server 12 kann auch mit einer oder mehreren externen Vorrichtungen 14 kommunizieren wie beispielsweise einer Tastatur, einem Zeigegerät, einer Anzeige 24, etc.; einer oder mehreren Vorrichtungen die es dem Nutzer ermöglichen mit dem Computersystem/Server 12 zu interagieren; und/oder anderen Vorrichtungen (z. B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 12 ermöglichen mit einem oder mehreren anderen Computer-Vorrichtungen zu kommunizieren. Eine solche Kommunikation kann über I/O-Schnittstellen 22 auftreten. Dennoch aber kann das Computersystem/Server 12 mit einem oder mehreren Netzwerken wie einem lokalen Netzwerk (LAN), einem allgemeinen Wide Area Netzwerk (WAN), und/oder einem öffentlichen Netzwerk (z. B. das Internet) über Netzwerk-Adapter 20 kommunizieren. Wie dargestellt kommuniziert der Netzwerk-Adapter 20 mit den anderen Komponenten des Computersystems/Server 12 über den Bus 18. Es versteht sich, dass, obwohl nicht gezeigt, andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten. Beispiele umfassen, ohne jedoch darauf beschränkt zu sein: Mikrocode, Gerätetreiber, redundante Prozesseinheiten, externe Laufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchiv Speichersysteme, etc.
-
Bezugnehmend nun auf 2, ist illustrativ eine Cloud Computing-Umgebung 50 dargestellt. Wie gezeigt, umfasst die Cloud Computing-Umgebung 50 eine oder mehrere Cloud-Computing-Knoten 10, mit denen Rechnervorrichtungen wie beispielsweise Personal Digital Assistants (PDA) oder ein Mobiltelefon 54A, Desktop-Computer 54B, Laptop-Computer 54C und/oder ein Auto-Computersystem 54N kommunizieren. Dies ermöglicht es Infrastruktur, Plattformen und/oder Software als Dienste (wie oben in Abschnitt I beschrieben) von Cloud Computing-Umgebung 50 anzubieten, damit es nicht jeder Kunde nötig hat solche Ressourcen separat zu pflegen Es versteht sich, dass die Typen von Rechnervorrichtungen 54A–N, die in 2 gezeigt sind, nur beispielhaft sein sollen und dass die Cloud Computing-Umgebung 50 mit jeder Art einer computergesteuerten Vorrichtung über jede Art von Netzwerk und/oder Netzwerk/adressierbare Verbindung (z. B. unter Verwendung eines Webbrowsers) kommunizieren kann.
-
Bezugnehmend nun auf 3, ist ein Satz von funktionalen Abstraktionsschichten, die durch eine Cloud Computing-Umgebung zur Verfügung gestellt werden, gezeigt. Vorab soll klargestellt werden, dass die Komponenten, Schichten und Funktionen, die in 3 gezeigt sind, nur der Erläuterungen dienen und die Erfindung nicht darauf beschränkt ist. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen zur Verfügung gestellt:
Die Hardware- und Softwareschichten 300 beinhalten Hardware- und Softwarekomponenten. Beispiele für Hardwarekomponenten umfassen Mainframes, in einem Beispiel IBM® Set Series®-Systeme, RISC (Reduced Instruction Set Computer)-Architektur-basierende Server, in einem Beispiel IBM pSeries®-Systeme; IBM xSeries®-Systeme; IBM BladeCenter®-Systeme; Speichergeräte, Netzwerke und Netzwerkkomponenten. Beispiele für Softwarekomponenten umfassen Netzwerk Application Server Software, in einem Beispiel IBM WebSphere® Application Server Software und Datenbanksoftware, in einem Beispiel IBM DB2®-Datenbank-Software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Marken der International Business Machines Cooperation in den Vereinigten Statten, anderen Ländern, oder beiden.)
-
Die Virtualisierungsschicht 302 bietet eine Abstraktionsschicht, aus der die folgenden Beispiele virtueller Einheiten zur Verfügung gestellt werden können: virtuelle Server, virtuelle Speicher, virtuelle Netzwerke, einschließlich Virtual Private Networks, virtuelle Anwendungen und virtuelle Clients.
-
Eine Managementschicht 304 bietet die unten beschriebenen Funktionen. Die Ressourcenbeschaffung sorgt für eine dynamische Vermittlung von IT-Ressourcen und anderen Ressourcen, die genutzt werden, um Aufgaben innerhalb der Cloud Computing-Umgebung durchzuführen. Eine Erfassungs- und Preisgestaltung bietet Kostenträgern Ressourcen innerhalb der Cloud Computing-Umgebung an, um Gebührenerfassung und Rechnungsstellung für den Gebrauch dieser Ressourcen zu nutzen. In einem Beispiel können diese Ressourcen Anwendungs-Softwarelizenzen umfassen. Sicherheit bietet die Identitätsprüfung für Cloud-Verbraucher und -Aufgaben, sowie Schutz für Daten und andere Ressourcen. Ein Benutzerportal bietet Zugriff auf die Cloud Computing-Umgebung für Verbraucher und Systemadministratoren. Ein Dienst-Level-Management bietet Cloud Computing-Ressourcen-Zuteilung und -Verwaltung, sodass erforderliche Dienstlevel erfüllt werden. Ein Servicelevel-Agreement (SLA) leistet die Planung und Erfüllung für eine zuvorige Einrichtung und von Beschaffung der Cloud Computing-Ressourcen, für die eine zukünftige Anforderung gemäß einem SLA zu erwarten ist.
-
Die Workloadschicht 306 bietet Funktionen, für die die Cloud Computing-Umgebung verwendet werden kann. Beispiele für Workloads und Funktionen, die von dieser Schicht bereitgestellt werden können, umfassen: Kartierung und Navigation; Softwareentwicklung und Nutzungsdauermanagement, virtuelle Klassenzimmerausbildung, Datenanalyseverarbeitung; Transaktionsverarbeitung; und Cloud-Dienste-Katalog Management.
-
Generell implementiert das Cloud-Dienste-Katalog Management die Funktion der vorliegenden Erfindung, wie hierin in Verbindung mit 4–7 diskutiert. Wie oben erwähnt, verwendet die vorliegende Erfindung einen Cloud-Dienste-Bus um Cloud-Dienste, die durch eine Integration von unterschiedlichen Cloud Computing-Umgebungen in einem Cloud-Dienste-Katalog zur Verfügung gestellt werden, zu sammeln, anzuzeigen und zu pflegen.
-
Der Cloud-Dienste Katalog wird die Arten von Cloud-Diensten, Attributen und Schnittstellen-Definitionen der Cloud-Dienste und zusätzlicher Cloud-Dienst-Merkmale beschreiben, einschließlich (aber nicht ausschließlich) SLO/SLA, bekannte Kapazitätsgrenzen, Redundanz-Indikator (niedrig, mittel, hoch), Plattform-Ebene(n), und Sicherheitsanforderungen. Service Level Objectives (SLOs) sind spezifische und messbare Eigenschaften des SLA wie Verfügbarkeit, Durchsatz, Frequenz, Reaktionszeit oder Qualität. Die Cloud-Dienste, die in dem Cloud-Dienste Katalog untergebracht sind, werden gesammelt, angezeigt und gepflegt unter Verwendung eines Cloud-Dienste-Bus.
-
Bezugnehmend nun auf 4 zeigt das Diagramm eine beispielhafte logische Architektur 100, die einen Cloud-Dienste-Katalog 110 umfasst. In diesem Beispiel sind drei Cloud-Anbieter (Cloud A 102, Cloud B 104, Cloud C 106) sowohl Partner als auch Mitglieder des Cloud-Dienste-Bus des Cross-Anbieters. Jeder Cloud-Anbieter nutzt die internen und externen Ressourcen, um eine Reihe von Cloud-Diensten, die der Anbieter seinen Kunden anbieten will, zu erstellen. Die Cloud-Dienste können Speicher-Dienste, Netzwerk-Dienste, Business-Dienste, etc. sein. Diese Ansicht zeigt die getrennten Cloud-Infrastrukturen, die durch den Cloud-Dienste Kommunikationsbus 108 mit einer Cloud-Dienste-Katalog-Manager 116 einschließlich Bus-Management-Komponente 120 verbunden sind, so konfiguriert, um die Definition und Verwaltung des Cloud-Dienste-Katalogs 110 zu unterstützen. Jeder Cloud-Anbieter kommuniziert über einen Cloud-Dienste Kommunikationsbus 108, um die Cloud-Dienste des Anbieters unter Verwendung eines Cloud-Dienste-Katalogs 110 anzuzeigen. Eine Bus-Schnittstellen Komponente 118 sammelt Attribute und Interface-Definitionen basierend auf einer Dienst-Klassifizierung, die erforderlich ist, um neue Dienste in den Cloud-Dienste-Katalog 110 einzufügen.
-
Ein gemeinsamer Framework für Dienste-Werbung unter Verwendung des Cloud-Dienste-Katalog-Managers 116 ermöglicht Cloud-Dienst-Eigentümern (Partnern) schnell neue oder aktualisierte Dienste in unterschiedlichen Reifegraden einzufügen. Reife umfasst auch die Benennung von Dienst-Verfügbarkeit (Test, Entwicklung, Produktion), SLO/SLA, und die relative Skalierbarkeit der Lösung. Kunden können ihre Verwendungszwecke auf den Cloud-Dienste-Katalog 110 laden, um die Kombination von Dienstleistungen/Ensembles auszuwählen, die am engsten mit ihren Anforderungen an die Verarbeitung, Verfügbarkeit und Wirtschaftlichkeit ausgerichtet sind. Ein Cloud-Dienste-Partner benötigt ein Mittel zur Bildung und Unterhaltung der Dienste, die er mit einem Cloud-Anbieter anbietet, so dass Cloud-Kunden den Cloud-Dienste-Katalog 110 abrufen können, um einen Verarbeitungs-Programmablauf zu erstellen. Funktionell wird eine Katalog-Verwaltung es dem Partner ermöglichen, seine Dienste als Plug-fähige Komponenten in der Cloud Computing-Umgebung einzuführen.
-
5 zeigt das Verfahren zum Einfügen eines neuen Cloud-Dienstes in den Cloud-Dienste-Katalog 110, die Registrierung des Cloud-Dienstes und die Aufnahme seines Status in die Cloud. In Schritt 1 ist der neue Dienst, wenn eine Anfrage für einen neuen Cloud-Dienst ausgegeben wird, gegen vordefinierte Kategorien (zum Beispiel Infrastruktur-Dienst, Middleware-Dienst, Anwendungs-Dienst) klassifiziert, um festzustellen, wie nahe der neue Dienst den aktuell angebotenen Diensten ist. In Schritt 2 sammelt der Cloud-Dienste-Katalog-Manager 116 Attribute und Interface-Definitionen basierend auf einer Dienst-Klassifizierung, um Komponenten in gemischte Dienste zu integrieren. Um dies zu erreichen, können beschreibende Informationen und Schlüsselbegriffe gesammelt werden, um den Aufbau des Programmablaufs zu unterstützen. In Schritt 3 sammelt der Cloud-Dienste-Katalog-Manager 116 dann zusätzliche Dienst-Merkmale einschließlich, aber nicht darauf beschränkt: SLO/SLA, bekannte Kapazitätsgrenzen, Redundanz-Indikator (niedrig, mittel, hoch), Plattform-Ebene(n), und Sicherheitsanforderungen, um den Aufbau des Programmablaufs zu unterstützen. Der Cloud-Dienste-Katalog 110 stellt Dienst-Baublöcke bereit, die dynamisch von Cloud-Partner oder Kunden zusammengestellt werden können um gemischte Cloud-Dienste zu bilden. Schließlich wird in Schritt 4 der neue Cloud-Dienst innerhalb des Cloud-Dienste-Katalogs 110 aufgenommen. Der Status und die Verfügbarkeit des Cloud-Dienst ist komplett mit Test-, Entwicklungs- und Produktions-Merkmalen definiert.
-
Unter erneuter Bezugnahme auf 4, wird das Beispiel eines Kunden betrachtet, der einen oder mehrere Dienste abonniert hat, die im Cloud-Dienste-Katalog 110 angezeigt werden, der eine Web-Anwendung 114 auszuführen wünscht. Der Kunde schaut zunächst auf den Cloud-Dienst-Katalog 110, um festzustellen, ob die Web-Anwendung verfügbar ist. Wenn der Dienst tatsächlich in dem Katalog ist, fordert der Kunde den Dienst an. Wenn der Dienst nicht im Katalog verfügbar ist, ist der Kunde in der Lage, einen „Antrag auf Dienst” in den Dienst-Katalog zu schreiben. In diesem Beispiel besteht sowohl ein Bedarf für Rechner- als auch für Speicher-Ressourcen, um die Web-Anwendung 114 auszuführen. Jede Cloud enthält eine Dienste-Registrierung, die Ressourcen zuweist, die von der Cloud bereitgestellt werden. Der Cloud-Dienste-Katalog-Manager 116 liest jede Cloud-Dienste-Registrierung und stellt fest, dass Cloud A 102 die EDV-Ressourcen bietet, während Cloud B 104 die Speicher-Ressourcen bietet. In diesem Beispiel integrieren beide Anbieter-Clouds ihrer Dienste um einen neuen Service im Cloud-Dienste-Katalog 110 zu schaffen.
-
In einer anderen Ausführungsform kann der Kunde kundeneigene gemischte Dienste durch die Auswahl von Diensten, die in dem Cloud-Dienste-Katalog verfügbar sind, schaffen. Diese Funktionalität ist möglich, weil beteiligte Partner aufgefordert sind, mindestens ein obligatorisches Attribut an Informationen während der Dienst-Registrierung einzugeben. Diese Attribute optimieren die Self-Service Erfahrung und minimieren die erforderliche Interaktion, die zwischen Dienstleistern, Partnern und Kunden erforderlich ist.
-
In einer anderen Ausführungsform kann ein Cloud-Partner den Anwendungs-Dienst haben, den der Cloud-Partner wünscht, zur Verfügung zu stellen. Der Cloud-Partner nutzt den Katalog, um einen gemischt Dienst zur schaffen, also nur in die Anwendungsentwicklung und -Bilanz, die erforderlich ist um die Anwendung zu entwickeln, zu investieren. Die Cloud-Partner berechnen die anschließende Nutzung der Anwendung, nutzen die Dienste-Infrastruktur, die von anderen Partnern veröffentlicht wurden, zu ihrem Vorteil. Der Cloud-Partner generiert Einnahmen für den Cloud-Partner, für andere Partner und sorgt für ein One-Stop-Shopping für Kunden.
-
In einer anderen Ausführungsform sei die Möglichkeit für den Cloud-Dienst-Bus erwogen, einem Dritten Integrator zu ermöglichen, seine oder ihre eigenen Cloud-Dienste, gänzlich durch Cloud-Partner bereitgestellt, anzubieten. Ein Dienst-Broker wird als eine Einheit betrachtet, die Cloud-Dienste nicht als Broker-Eigen anbietet, ähnlich wie bei einem Hypothek-Broker, der Hypotheken im Namen mehrerer Banken anbietet. Allerdings bietet der Cloud-Broker die Software-Anwendung 112 durch Nutzung bestehender Dienste an, die von den Partner-Clouds bereitgestellt werden, um eine neuen, einzigartigen gemischten Dienst zu erstellen. Die Software-Anwendung 112 wird durch die Verwendung von mehreren Backend Cloud-Anbietern ausgeführt. Der Cloud-Dienste-Katalog-Manager 116 bietet die einzigartige Funktionalität für den Cloud-Broker die Software-Anwendung 112 im Cloud-Dienste-Katalog 110 anzubieten, der von anderen Kunden genutzt werden kann.
-
Bezugnehmend nun auf 6 ist ein Verfahrens-Flussdiagramm für die Synchronisation der teilnehmenden Cloud-Register dargestellt. In Schritt S20 müssen, wenn ein Cloud-Partner eine Änderung des Cloud-Dienst einführt, alle Cloud-Dienst-Kataloge der teilnehmenden Anbieter aktualisiert werden. Ein Dienst-Update kann jede Änderung an einem vorhandenen Cloud-Dienst oder das Hinzufügen von einem neuen Service umfassen. Jede teilnehmende Cloud enthält einen Cloud-Dienste-Katalog der die verfügbaren Ressourcen innerhalb der Cloud zuweist. In Schritt S22 wird der Cloud-Dienste-Katalog, der einen neuen oder aktualisierten Dienst beherbergt, aktualisiert. In Schritt S24 wird ein Change-Log erzeugt und der Master-Katalog wird aktualisiert. In Schritt S26 werden die Änderungen für die Schwester-Anbieter-Clouds innerhalb der Umgebung repliziert. In Schritt S28 wird die Benachrichtigung über Änderungen an Partner und abonnierende Kunden verbreitet.
-
Bezugnehmend nun auf 7 ist ein Verfahrens-Flussdiagramm gemäß der vorliegenden Erfindung gezeigt. Wie gezeigt, sind in Schritt S30 die Mehrzahl der Clouds in der Cloud Computing-Umgebung über einen Cloud-Dienste-Kommunikationsbus 108 verbunden. In Schritt S32 wird ein Cloud-Dienste-Katalog 110 gepflegt unter Verwendung eines Cloud-Dienste-Katalog-Manager 116. In Schritt S34 zeigt eine Bus-Schnittstellen Komponente 118 einen Index der integrierten Dienste auf einer Benutzeroberfläche.
-
Während hierin eine Zwischen-Cloud Ressourcenbereitstellung/Management-Lösung gezeigt und beschrieben wird, ist es selbstverständlich, dass die Erfindung ferner verschiedene alternative Ausführungsformen bereitstellt. Zum Beispiel bietet eine Ausführungsform der Erfindung ein computerlesbares/nutzbares Medium, das Computerprogrammcode umfasst, um eine Computer-Infrastruktur zu ermöglichen, um Zwischen-Cloud Ressourcenbereitstellung/Management-Funktionalität, wie hierin diskutiert wird, bereitzustellen. Insofern umfasst das computerlesbare/nutzbare Medium einen Programmcode, der jede der vielfältigen Prozesse der vorliegenden Erfindung implementiert. Es versteht sich, dass die Begriffe computerlesbares Medium oder computernutzbares Medium eine oder mehrere von jeder Art von physikalischer Ausführungsform des Programmcodes umfassen. Insbesondere kann das computerlesbare/nutzbare Medium einen Programmcode umfassen, der auf einem oder mehreren tragbaren Speicher-Fertigprodukten (z. B. eine Compact-Disk, eine magnetische Platte, ein Band, etc.) ausgeführt wird, auf einem oder mehreren Datenspeicher-Teilen einer Rechnervorrichtung, wie ein Speicher 28 (1) und/oder ein Speicher-System 34 (1) (z. B. eine Festplatte, ein nur-Lese-Speicher, ein RAM-Speicher, ein Cache-Speicher, etc.), und/oder als ein Datensignal (z. B. eine ausgebreitete Signalkomponente) über ein Netzwerk (z. B. während einer fest verdrahteten/drahtlosen elektronischen Verteilung des Programmcodes) übertragen wird.
-
In einer anderen Ausführungsform stellt die Erfindung ein Verfahren bereit, das den Prozess der vorliegenden Erfindung auf einer Abonnement-, Anzeigen- und/oder Honorarbasis führt. Das heißt, ein Cloud-Dienst-Anbieter, wie z. B. ein Lösungsintegrator, könnte Zwischen-Cloud-Ressourcenbereitstellung/Management-Funktionalität anbieten. In diesem Fall kann der Dienstanbieter eine Computer-Infrastruktur, wie etwa ein Computer-System 102 (1) schaffen, pflegen, unterstützen etc., die den Prozess der vorliegenden Erfindung für einen oder mehrere Kunden durchführt. Im Gegenzug kann der Dienstanbieter die Zahlung des Kunden im Rahmen eines Abonnements und/oder einer Honorarvereinbarung erhalten und/oder der Dienstleister kann Zahlung aus dem Verkauf von Werbe-Inhalten an einen oder mehrere Dritte beziehen.
-
In noch einer weiteren Ausführungsform bietet die Erfindung ein Computerimplementiertes Verfahren zum Bereitstellen von Zwischen-Cloud Ressourcenbereitstellung/Management-Funktionalität. In diesem Fall kann eine Computer-Infrastruktur, wie etwa ein Computer-System 102 (1) bereitgestellt werden, und ein oder mehrere Systeme zur Durchführung des Verfahrens der vorliegenden Erfindung können erhalten werden (z. B. erstellt, gekauft, verwendet, verändert, usw. werden) und auf die Computer-Infrastruktur angewendet werden. Insofern kann die Anwendung eines Systems eines oder mehreres davon umfassen: (1) Installation eines Programmcodes auf einer Rechnervorrichtung, wie ein Computer-System 102 (1), von einem Computer-lesbaren Medium; (2) Zugabe von einem oder mehreren Rechnervorrichtungen zu der Computer-Infrastruktur; und (3) Einbau und/oder Modifizierung eines oder mehrerer bestehender Systeme der Computer-Infrastruktur um der Computer-Infrastruktur zu ermöglichen, den Prozess der vorliegenden Erfindung durchzuführen.
-
Wie hierin verwendet, sollte beachtet werden, dass die Begriffe ”Programm-Code” und ”Computer-Programm-Code” gleichbedeutend sind und sie meinen jede Entsprechung, in jeder Sprache, Code oder Notation, aus einem Satz von Anweisungen, welche dazu gedacht sind, eine Rechner-Vorrichtung mit einer Information zu Verarbeitungsfähigkeit zu versorgen, um eine bestimmte Funktion entweder direkt oder nach einem oder beiden der folgenden Schritte durchzuführen: (a) Umwandlung in eine andere Sprache, einen Code oder Notation; und/oder (b) Reproduktion in einer anderen materiellen Form. Insofern kann ein Programmcode als einer oder mehrere daraus ausgebildet werden: eine Anwendung/Software, Software-Komponente/eine Bibliothek von Funktionen, ein Betriebssystem, ein Basis Vorrichtungs-System/Treiber für eine bestimmte Rechenvorrichtung, und dergleichen.
-
Ein Datenverarbeitungssystem geeignet für die Speicherung und/oder Ausführung des Programmcodes kann nachfolgend bereitgestellt werden und kann mindestens einen Prozessor umfassen, der kommunikativ, direkt oder indirekt mit dem/den Speicher-Element(en) durch einen Systembus gekoppelt ist. Die Speicherelemente können, sind aber nicht darauf beschränkt, einen lokalen Speicher umfassen, der während der tatsächlichen Ausführung des Programmcodes Bulk-Speicher und Cache-Speicher verwendet, die eine temporäre Speicherung von mindestens einigen der Programmcodes bereitstellen, um die Zeitdauer, bei der der Code von dem Bulk-Speicher während der Ausführung abgerufen wird, zu verringern. Eingabe/Ausgabe oder Vorrichtungs-Geräte (einschließlich, aber nicht darauf beschränkt, Tastaturen, Anzeigen, Zeigegeräte, usw.) können entweder direkt oder über intervenierende Vorrichtungs-Controller an das System gekoppelt sein.
-
Netzwerk-Adapter können auch mit dem System gekoppelt werden, um dem Datenverarbeitungssystem zu ermöglichen, sich in Verbindung mit anderen Datenverarbeitungssystemen, Remote-Druckern, Speichergeräten und/oder dergleichen über eine beliebige Kombination von intervenierenden privaten oder öffentlichen Netzwerken zu setzen. Veranschaulichende Netzwerk-Adapter umfassen Modems, Kabelmodems und Ethernet-Karten, sind jedoch nicht darauf beschränkt.
-
Die vorstehende Beschreibung der verschiedenen Ausführungsformen der Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung dargestellt. Sie ist nicht beabsichtigt, erschöpfend zu sein oder die Erfindung auf die genau offenbarte Form zu beschränken und offensichtlich sind viele Modifikationen und Variationen möglich. Solche Modifikationen und Variationen, die offensichtlich für einen Fachmann auf dem Gebiet sein können, sollen im Rahmen der vorliegenden Erfindung, wie durch die beigefügten Ansprüche definiert wird, umfasst sein.