DE112012004238T5 - Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen - Google Patents

Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen Download PDF

Info

Publication number
DE112012004238T5
DE112012004238T5 DE112012004238.7T DE112012004238T DE112012004238T5 DE 112012004238 T5 DE112012004238 T5 DE 112012004238T5 DE 112012004238 T DE112012004238 T DE 112012004238T DE 112012004238 T5 DE112012004238 T5 DE 112012004238T5
Authority
DE
Germany
Prior art keywords
cloud
infrastructures
existing
business
application
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.)
Withdrawn
Application number
DE112012004238.7T
Other languages
English (en)
Inventor
Birgit Pfitzmann
Murthy V. Devarakonda
Nikolai A. Joukov
Shaya Potter
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 DE112012004238T5 publication Critical patent/DE112012004238T5/de
Withdrawn 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
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Infrastrukturen einer Vielzahl von vorhandenen Anwendungen einer Entität werden analysiert, um zumindest eine der Infrastrukturen der Vielzahl von vorhandenen Anwendungen zu identifizieren, die vorhandene Unterstrukturen beinhaltet, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen. Die zumindest eine der Infrastrukturen wird zur Migration zu einer Cloud ausgewählt. Die Cloud beinhaltet zumindest eine Infrastructure-as-a-Service-Cloud und/oder eine Platform-as-a-Service-Cloud. Die vorhandenen Unterstrukturen der zumindest einen der Infrastrukturen werden ohne Änderung auf der Anwendungsebene zu der Cloud migriert. Eine Komponente für die Beweglichkeit der Geschäftsabläufe wird zusammengestellt und dazu eingerichtet, ein Erweitern und Einschränken von Ressourcen der Cloud zu steuern, die für die zumindest eine der Infrastrukturen bestimmt sind. Die Ressourcen der Cloud, die für die zumindest eine der Infrastrukturen bestimmt sind, werden mithilfe der Komponente für die Beweglichkeit der Geschäftsabläufe erweitert oder eingeschränkt.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf die Elektrotechnik, die Elektronik und die Computer-Technik und im Besonderen auf Cloud-Computing und dergleichen.
  • Hintergrund der Erfindung
  • Clouds sind ein aktuelles Interessengebiet in der Industrie. Ein aktueller Schwerpunktbereich sind die Konstruktion und Realisierung neuer Anwendungsprogrammiermodelle und die Erstellung neuer Anwendungen gemäß diesen Modellen. Beispiele sind Googles MapReduce-Modell (erhältlich bei Google Inc., Mountain View, Kalifornien, USA) und das Modell standardisierter katalogartiger Anwendungen auf der Grundlage des Web von Salesforce_dot_com (Salesforce_dot_com, Inc., San Francisco, Kalifornien, USA (wobei „_dot_” „.” ersetzt, um zu vermeiden, dass durch einen Browser ausführbarer Code aufgenommen wird)).
  • Die meisten größeren Unternehmen verfügen über eine große Zahl vorhandener IT-unterstützter Geschäftsanwendungen. In diesen Anwendungen wird auf viele spezifische Arten codiert, wie das jeweilige Unternehmen einen bestimmten spezifischen Teil seines Geschäfts durchführt. Sie bringen außerdem üblicherweise erhebliche Mengen an Daten in Formaten mit sich, die für die Geschäftsanwendung spezifisch sind. Ferner können sie Millionen von Codezeilen enthalten.
  • Kurzdarstellung der Erfindung
  • Grundgedanken der Erfindung stellen Techniken für eine auf Erkennung beruhende Identifizierung und zur Migration von leicht in eine Cloud verlagerbaren Anwendungen bereit. In einem Aspekt beinhaltet ein beispielhaftes Verfahren die Schritte eines Analysierens von Infrastrukturen einer Vielzahl vorhandener Anwendungen einer Entität, um zumindest eine der Infrastrukturen der Vielzahl von vorhandenen Anwendungen zu erkennen, die vorhandene Unterstrukturen beinhaltet, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen; und eines Auswählens der zumindest einen der Infrastrukturen zur Migration in eine Cloud. Die Cloud beinhaltet zumindest eine Infrastructure-as-a-Service-Cloud oder eine Platform-as-a-Service-Cloud. Weitere Schritte beinhalten ein Migrieren der vorhandenen Unterstrukturen der zumindest einen der Infrastrukturen in die Cloud ohne Änderung auf der Anwendungsebene; ein Zusammenstellen einer Komponente für die Beweglichkeit der Geschäftsabläufe, die so konfiguriert ist, dass sie ein Erweitern und Einschränken von Ressourcen der Cloud steuert, die für die zumindest eine der Infrastrukturen bestimmt sind; und ein Erweitern und Einschränken der Ressourcen der Cloud, die für die zumindest eine der Infrastrukturen bestimmt sind, mithilfe der Komponente für die Beweglichkeit der Geschäftsabläufe.
  • In einem weiteren Aspekt beinhaltet ein weiteres beispielhaftes Verfahren den Schritt zum Beziehen einer Spezifikation zumindest einer Infrastruktur von einer Vielzahl von Infrastrukturen einer Vielzahl von vorhandenen Anwendungen einer Entität, die in eine Cloud migriert werden soll. Die zumindest eine Infrastruktur beinhaltet vorhandene Unterstrukturen, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen. Ein zusätzlicher Schritt beinhaltet in einem Vorlagenspeicher einer Anwendungs-Ressourcen-Verwaltungseinheit ein Identifizieren zumindest einer generischen Vorlage, die Anweisungen zum Ausführen eines Erweiterns und/oder eines Einschränkens von Ressourcen der Cloud beinhaltet, die für die zumindest eine Infrastruktur bestimmt werden sollen. Weitere Schritte beinhalten ein Instanziieren einer bestimmten Instanz der zumindest einen generischen Vorlage durch Befüllen der zumindest einen generischen Vorlage mit spezifischen Daten, die die zumindest eine Infrastruktur betreffen; und ein Zusammenstellen, zumindest aus der bestimmten Instanz, einer Komponente für die Beweglichkeit der Geschäftsabläufe, die so konfiguriert ist, dass sie das Erweitern und/oder Einschränken der Ressourcen der Cloud steuert, die für die zumindest eine Infrastruktur bestimmt sind.
  • So, wie der Begriff hierin verwendet wird, beinhaltet ein „Vereinfachen” eines Vorgangs das Durchführen des Vorgangs, das Erleichtern des Vorgangs, das Unterstützen der Durchführung des Vorgangs oder das Veranlassen der Durchführung des Vorgangs. So können beispielsweise, und ohne dabei einschränkend zu wirken, Anweisungen, die auf einem Prozessor ausgeführt werden, einen Vorgang vereinfachen, der durch Anweisungen ausgeführt wird, die auf einem entfernt angeordneten Prozessor ausgeführt werden, indem sie entsprechende Daten oder Befehle senden, um die Durchführung des Vorgangs zu veranlassen oder zu unterstützen. Wenn ein Handlungsträger einen Vorgang auf andere Weise als durch Durchführen des Vorgangs vereinfacht, wird, um Missverständnisse auszuschließen, der Vorgang dennoch durch eine Entität oder eine Kombination von Entitäten durchgeführt.
  • Eine oder mehrere Ausführungsformen der Erfindung oder von Elementen davon können in Form eines Computerprodukts wie zum Beispiel eines computerlesbaren Speichermediums mit einem computerverwendbaren Programmcode zum Durchführen der angegebenen Verfahrensschritte realisiert werden. Des Weiteren können ein oder mehrere Ausführungsformen der Erfindung oder von Elementen davon in Form eines Systems (oder einer Vorrichtung) realisiert werden, das/die einen Speicher und zumindest einen Prozessor beinhaltet, der mit dem Speicher verbunden und in der Lage ist, beispielhafte Verfahrensschritte durchzuführen. Noch weiter können in einem weiteren Aspekt eine oder mehrere Ausführungsformen der Erfindung oder von Elementen davon in Form von Mitteln zum Ausführen eines oder mehrerer der hierin beschriebenen Verfahrensschritte realisiert werden; zu den Mitteln können (i) ein oder mehrere Hardware-Modul(e), (ii) ein oder mehrere Software-Modul(e) oder (iii) eine Kombination aus Hardware- und Software-Modulen zählen; wobei beliebige der (i) bis (iii) die spezifischen Techniken realisieren, die hierin dargelegt werden, und wobei die Software-Module in einem computerlesbaren Speichermedium (oder mehreren solcher Medien) gespeichert sind.
  • Die Techniken der vorliegenden Erfindung können wesentliche vorteilhafte technische Auswirkungen bereitstellen. Beispielsweise können eine oder mehrere Ausführungsformen einen oder mehrere der folgenden Vorteile bieten:
    • • effizientere Verwaltung
    • • kürzere Einrichtungsdauer bei Änderungen der Anforderungen an eine Anwendung oder ihre zugrunde liegende IT-Infrastruktur
    • • größere Zuverlässigkeit
    • • Vermeiden von Energieverschwendung durch unausgelastete Prozessoren, da der Umfang von Ressourcen leicht erhöht und/oder verringert werden kann
    • • schnelleres Erzielen der oben genannten Vorteile
    • • Automatisierung der Wahl, ob es sich lohnt, eine Anwendungsressourcen-Verwaltungseinheit zu codieren.
  • Diese und andere Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden ausführlichen Beschreibung veranschaulichender Ausführungsformen davon, die in Zusammenhang mit den beigefügten Zeichnungen zu lesen ist, ersichtlich.
  • Kurzbeschreibung der Zeichnungen
  • 1 stellt einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 2 stellt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 3 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 4 ist ein Übersichtsblockschaubild eines Systems gemäß einem Aspekt der Erfindung;
  • 5 ist ein ausführliches Blockschaubild eines Systems gemäß einem Aspekt der Erfindung;
  • 6 stellt beispielhafte Komponenten einer Anwendungsressourcen-Verwaltungseinheit gemäß einem Aspekt der Erfindung dar;
  • 7 stellt einen beispielhaften Ablaufplan gemäß einem Aspekt der Erfindung dar;
  • 8 stellt ein beispielhaftes Szenario einer Anwendung zur „Verlagerung in eine Cloud” gemäß einem Aspekt der Erfindung dar; und
  • 9 ist ein beispielhaftes Software-Architekturschaubild gemäß einem Aspekt der Erfindung.
  • Ausführliche Beschreibung von bevorzugten Ausführungsformen
  • Bei Cloud-Computing handelt es sich um ein Modell zum Erbringen von Dienstleistungen, um einen praktischen, bedarfsgesteuerten Netzwerkzugriff auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungs-Ressourcen (z. B. Netzwerken, Netzwerkbandbreite, Servern, Verarbeitung, Speicher, Speicherplatz, Anwendungen, virtuellen Maschinen und Diensten) zu ermöglichen, die schnell mit möglichst geringem Verwaltungsaufwand oder Zusammenwirken mit einem Anbieter des Dienstes bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann zumindest fünf Merkmale, zumindest drei Dienstmodelle und zumindest vier Einsatzmodelle beinhalten.
  • Es handelt sich um folgende Merkmale:
    Selbstbedienung nach Bedarf (on demand self service): Ein Cloud-Kunde kann sich einseitig Datenverarbeitungsfunktionalität wie zum Beispiel Server-Zeit und Netzwerkspeicherplatz automatisch nach Bedarf bereitstellen, ohne dass ein menschliches Zusammenwirken mit dem Anbieter des Dienstes erforderlich ist.
  • Breiter Netzwerkzugriff: Funktionalität ist über ein Netzwerk verfügbar, und der Zugriff erfolgt über Standardmechanismen, die eine Verwendung durch heterogene Thin- oder Thick-Client-Plattformen begünstigen (z. B. Mobiltelefone, Laptops und PDAs).
  • Ressourcen-Zusammenschluss: Die Datenverarbeitungs-Ressourcen des Anbieters werden mit verschiedenen physischen und virtuellen Ressourcen zusammengeschlossen, die nach Bedarf dynamisch zugewiesen und neu zugewiesen werden, um mehrere Kunden mithilfe eines Mehrfachnutzermodells zu bedienen. Es besteht in einem gewissen Sinn Standortunabhängigkeit insofern, als der Kunde im Allgemeinen keine Kontrolle oder Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, er kann den Standort jedoch möglicherweise auf einer höheren Abstraktionsebene (z. B. Land, Bundesstaat oder Rechenzentrum) bestimmen.
  • Schnelle Elastizität: Funktionalität kann für eine schnelle Vergrößerung schnell und elastisch, in einigen Fällen automatisch, bereitgestellt werden und schnell für eine schnelle Verkleinerung freigegeben werden. Dem Kunden erscheint die für die Bereitstellung verfügbare Funktionalität häufig unbegrenzt, und sie kann jederzeit in beliebigem Umfang erworben werden.
  • Gemessener Dienst: Cloud-Systeme steuern und optimieren automatisch die Ressourcen-Nutzung durch Verwenden einer Messfunktion auf einer Abstraktionsebene, die für den Typ des Dienstes geeignet ist (z. B. Speicherplatz, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcen-Nutzung kann überwacht, gesteuert und gemeldet werden, wodurch Transparenz sowohl für den Anbieter als auch für den Kunden des genutzten Dienstes bereitgestellt wird.
  • Es handelt sich um folgende Dienstmodelle:
    Software as a Service (SaaS, Software als Dienstleistung): Die dem Kunden bereitgestellte Funktion besteht darin, die Anwendungen des Anbieters zu nutzen, die in einer Cloud-Infrastruktur ausgeführt werden. Auf die Anwendungen kann von verschiedenen Client-Einheiten durch eine Thin-Client-Schnittstelle wie zum Beispiel einen Web-Browser (z. B. eMail auf der Grundlage des Web) zugegriffen werden. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich des Netzwerks, der Server, der Betriebssysteme, des Speicherplatzes oder sogar einzelner Anwendungsfunktionen mit der möglichen Ausnahme begrenzter benutzerspezifischer Anwendungskonfigurationseinstellungen nicht.
  • Plafform as a Service (PaaS, Plattform als Dienstleistung): Die dem Kunden bereitgestellte Funktion besteht darin, in der Cloud-Infrastruktur durch den Kunden erstellte oder erworbene Anwendungen einzusetzen, die mithilfe von Programmiersprachen und Werkzeugen erstellt worden sind, die durch den Anbieter unterstützt werden. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich der Netzwerke, Server, Betriebssysteme oder des Speicherplatzes nicht, hat aber die Kontrolle über die einzusetzenden Anwendungen und möglicherweise über Konfigurationen von Anwendungen beherbergenden Umgebungen.
  • Infrastructure as a Service (IaaS, Infrastruktur als Dienstleistung): Die dem Kunden bereitgestellte Funktion besteht darin, Verarbeitung, Speicherplatz, Netzwerke und sonstige grundlegende Datenverarbeitungs-Ressourcen bereitzustellen, wobei der Kunde in der Lage ist, beliebige Software einzusetzen und auszuführen, die Betriebssysteme und Anwendungen beinhalten kann. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicherplatz, eingesetzte Anwendungen und möglicherweise begrenzte Kontrolle über ausgewählte Netzwerkkomponenten (z. B. Host-Firewalls).
  • Es handelt sich um folgende Einsatzmodelle:
    Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich auf dem Gelände der Organisation oder außerhalb davon befinden.
  • Gemeinschafts-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Gemeinschaft, die gemeinsame Anliegen hat (z. B. Überlegungen bezüglich einer Zielsetzung, Sicherheitsanforderungen, Richtlinien und Einhalten von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich auf dem Gelände der Organisationen oder außerhalb davon befinden.
  • Öffentliche Cloud: Die Cloud-Infrastruktur wird der breiten Öffentlichkeit oder einer großen Branchengruppe zugänglich gemacht und befindet sich im Besitz einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid-Cloud: Die Cloud-Infrastruktur setzt sich aus zwei oder mehr (privaten, Gemeinschafts- oder öffentlichen) Clouds zusammen, die eigenständige Entitäten bleiben, jedoch durch standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Portierbarkeit von Daten und Anwendungen (z. B. Cloud-Zielgruppenverteilung zum Lastausgleich zwischen Clouds) ermöglicht.
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit einem Schwerpunkt auf Zustandslosigkeit, geringe Kopplung, Modularität und semantische Interoperabilität. Im Zentrum des Cloud-Computing befindet sich eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist.
  • Es wird nun auf 1 Bezug genommen, in der eine schematische Darstellung eines Beispiels für einen Cloud-Computing-Knoten gezeigt wird. Der Cloud-Computing-Knoten 10 ist lediglich ein Beispiel für einen geeigneten Cloud-Computing-Knoten und soll den Umfang der Nutzung oder der Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung nicht einschränken. Dennoch kann der Cloud-Computing-Knoten 10 realisiert werden und/oder alle oben dargelegten Funktionalitäten durchführen.
  • In dem Cloud-Computing-Knoten 10 befindet sich ein Computersystem/Server 12, der mit zahlreichen sonstigen Universal- oder Spezial-Datenverarbeitungssystem-Umgebungen oder -Konfigurationen betrieben werden kann. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die zur Verwendung mit dem Computersystem/Server 12 geeignet sein können, zählen Personal-Computersysteme, Server-Computersysteme, Thin Clients, Thick Clients, Hand- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der obigen Systeme oder Einheiten beinhalten, und dergleichen, ohne auf diese beschränkt zu sein.
  • Das Computersystem/der Server 12 kann im allgemeinen Zusammenhang von Anweisungen beschrieben werden, die durch ein Computersystem ausgeführt werden können, wie zum Beispiel Programmmodule, die durch ein Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. beinhalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen angewendet werden, in denen Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die durch ein Datenübertragungsnetzwerk miteinander verbunden sind. Bei einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien befinden, darunter in Speichereinheiten.
  • Wie in 1 gezeigt, wird das Computersystem/der Server 12 in dem Cloud-Computing-Knoten 10 in Form einer Universal-Datenverarbeitungseinheit dargestellt. Zu den Komponenten des Computersystems/Servers 12 können ein oder mehrere Prozessoren oder Prozessoreinheiten 16, den Systemspeicher 28 und den Bus 18 zählen, der verschiedene Systemkomponenten wie etwa den Systemspeicher 28 mit dem Prozessor 16 verbindet, ohne auf diese beschränkt zu sein.
  • Der Bus 18 stellt einen oder mehrere von mehreren beliebigen Typen von Busstrukturen dar, darunter zum Beispiel einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, einen Accelerated Graphics Port und einen Prozessor oder einen lokalen Bus unter Verwendung einer beliebigen von einer Vielfalt von Busarchitekturen. Beispielsweise, und ohne einschränkend zu wirken, umfassen solche Architekturen einen Industry-Standard-Architecture(ISA)-Bus, einen Micro-Channel-Architecture(MCA)-Bus, einen Enhanced-ISA(EISAA)-Bus, einen lokalen Video-Electronics-Standards-Association(VESA)-Bus und einen Peripheral-Component-Interconnects(PCI)-Bus.
  • Das Computersystem/der Server 12 beinhaltet üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei solchen Medien kann es sich um beliebige verfügbare Medien handeln, auf die durch das Computersystem/den Server 12 zugegriffen werden kann, und sie beinhalten sowohl flüchtige als auch nichtflüchtige Medien sowie austauschbare als auch nichtaustauschbare Medien.
  • Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie zum Beispiel eines Direktzugriffsspeichers (random access memory, RAM) 30 und/oder eines Cachespeichers 32 beinhalten. Das Computersystem/der Server 12 kann des Weiteren sonstige austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien beinhalten. Lediglich als Beispiel kann das Speichersystem 34 zum Lesen von und Schreiben auf ein nicht austauschbares, nichtflüchtiges (nicht dargestelltes und üblicherweise als „Festplatte” bezeichnetes) Magnetmedium bereitgestellt werden. Wenngleich es nicht dargestellt wird, kann ein Magnetplattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen Magnetplatte (z. B. einer „Diskette”) und zum Schreiben darauf und ein optisches Plattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen optischen Platte wie zum Beispiel einer CD-ROM, DVD-ROM oder sonstigen optischen Medien und zum Schreiben darauf bereitgestellt werden. In solchen Fällen kann jedes durch eine oder mehrere Datenmedien-Schnittstellen mit dem Bus 18 verbunden sein. Wie im Folgenden näher dargestellt und beschrieben wird, kann der Speicher 28 zumindest ein Programmprodukt beinhalten, das einen Satz (z. B. zumindest eins) von Programmmodulen aufweist, die dazu konfiguriert sind, die Funktionen von Ausführungsformen der Erfindung auszuführen.
  • Das Programm/Dienstprogramm 40, das einen Satz (zumindest eins) der Programmmodule 42 aufweist, kann als Beispiel, das keine Einschränkung darstellen soll, in dem Speicher 28 gespeichert werden, wie auch ein Betriebssystem, ein oder mehrere Anwendungsprogramme, sonstige Programmmodule und Programmdaten. Von dem Betriebssystem, dem einen oder mehreren Anwendungsprogrammen, den sonstigen Programmmodulen und Programmdaten und einigen Kombinationen davon kann jedes eine Realisierung einer Netzwerkumgebung beinhalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methoden von Ausführungsformen der Erfindung aus, wie sie hierin beschrieben wird.
  • Das Computersystem/der Server 12 kann außerdem mit einer oder mehreren externen Einheiten 14 wie zum Beispiel einer Tastatur, einer Zeigeeinheit, der Anzeige 24 usw.; einer oder mehreren Einheiten, die einem Benutzer ermöglichen, mit dem Computersystem/dem Server 12 in Wechselwirkung zu treten; und/oder beliebigen Einheiten (z. B. einer Netzwerkkarte, einem Modem usw.) Daten austauschen, die dem Computersystem/Server 12 ermöglichen, Daten mit einer oder mehreren sonstigen Datenverarbeitungseinheiten auszutauschen. Ein solcher Datenaustausch kann über die Eingabe-/Ausgabe(E/A)-Schnittstellen 22 durchgeführt werden. Weiterhin kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netzwerk (lokal area network, LAN), einem allgemeinen Weitverkehrsnetz (wide area network, WAN) und/oder einem öffentlichen Netzwerk (z. B. dem Internet) über den Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 Daten mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 aus. Es versteht sich, wenngleich dies nicht dargestellt wird, dass sonstige Hardware- und/oder Software-Komponenten zusammen mit dem Computersystem/Server 12 verwendet werden könnten. Zu Beispielen zählen Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Speichersysteme usw., ohne auf diese beschränkt zu sein.
  • Es wird nun auf 2 Bezug genommen, in der die veranschaulichende Cloud-Computing-Umgebung 50 dargestellt wird. Wie dargestellt, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen lokale Datenverarbeitungseinheiten, die von Cloud-Kunden verwendet werden, wie zum Beispiel ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein KFZ-Computersystem 54N, Daten miteinander austauschen können. Die Knoten 10 können Daten miteinander austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken zusammengefasst werden (ohne Abbildung), zum Beispiel in privaten, Gemeinschafts-, öffentlichen oder Hybrid-Clouds, wie oben beschrieben, oder in einer Kombination davon. Dies ermöglicht der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienstleistungen anzubieten, für die ein Cloud-Kunde keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 2 dargestellten Typen von Datenverarbeitungseinheiten 54A bis N lediglich der Veranschaulichung dienen sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 mit einem beliebigen Typ einer computerisierten Einheit über einen beliebigen Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z. B. mithilfe eines Web-Browsers) Daten austauschen können.
  • Es wird nun auf 3 Bezug genommen, in der ein Satz funktionaler Abstraktionsschichten dargestellt wird, die durch das Cloud-Computing-System 50 (2) bereitgestellt werden. Es versteht sich im Vorhinein, dass die in 3 dargestellten Komponenten, Schichten und Funktionen lediglich der Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
    Die Hardware- und Software-Schicht 60 beinhaltet Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen Großrechner, in einem Beispiel zSeries®-Systeme von IBM®; Server auf der Grundlage einer RISC-Architektur (Reduced Instruction Set Computer, Computer mit reduziertem Befehlssatz), in einem Beispiel pSeries®-Systeme von IBM; xSeries®-Systeme von IBM; BladeCenter®-Systeme von IBM; Speichereinheiten, Netzwerke und Netzwerkkomponenten. Zu Beispielen für Software-Komponenten zählen Netzwerkanwendungs-Server-Software, in einem Beispiel die Anwendungs-Server-Software IBM WebSphere® von IBM; und Datenbank-Software, in einem Beispiel die Datenbank-Software DB2® von IBM. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind in vielen Ländern weltweit eingetragene Marken von International Business Machines Corporation.)
  • Die Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, von der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server; virtueller Speicherplatz; virtuelle Netzwerke, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • In einem Beispiel kann die Verwaltungsschicht 64 die im Folgenden beschriebenen Funktionen bereitstellen. Ressourcen-Bereitstellung bietet eine dynamische Beschaffung von Datenverarbeitungs-Ressourcen und sonstigen Ressourcen, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung genutzt werden. Eine Messung und Preisbildung stellen eine Kostenüberwachung während der Nutzung von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie eine Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt eine Identitätsüberprüfung für Cloud-Kunden und Aufgaben wie auch Schutz für Daten und sonstige Ressourcen bereit. Ein Benutzerportal stellt einen Zugriff auf die Cloud-Computing-Umgebung für Kunden und Systemadministratoren bereit. Eine Dienstgüteverwaltung stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die erforderlichen Dienstgütegrade erreicht werden. Eine Planung und Erfüllung von Dienstgütevereinbarungen (Service Level Agreement, SLA) stellt eine Vorbereitung für und Bereitstellung von Cloud-Computing-Ressourcen bereit, für die eine künftige Erfordernis gemäß einer SLA erwartet wird.
  • Die Arbeitslastenschicht 66 stellt Beispiele für die Funktionalität bereit, für die die Cloud-Computing-Umgebung eingesetzt werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Bereitstellung von virtuellen Schulungen; Datenanalyseverarbeitung, Transaktionsverarbeitung; und mobiler Schreibtisch.
  • Eine oder mehrere Ausführungsformen realisieren in vorteilhafter Weise eine Anwendungs-Ressourcen-Verwaltungseinheit über eine Cloud wie zum Beispiel eine IaaS- oder PaaS-Cloud.
  • Wie oben angemerkt, bieten Information-as-a-Service(IaaS)- und Platform-as-a-Service(Paas)-Clouds grundlegende Fähigkeiten für einen schnellen Einsatz (Bereitstellung) von Abbildern, wobei die Abbilder versteckt gehalten werden, während sie nicht verwendet werden, und potenziell zeitnahe oder quasi zeitnahe Änderungen der Ressourcen, die Abbildern zugewiesen sind. Dies trifft jedoch nicht direkt auf die Anwendungsschicht (die hierin austauschbar als die Arbeitslastenschicht 66 bezeichnet wird) zu, d. h. auf der Anwendungsschicht 66 werden noch Personen benötigt, um die Nutzung zu beobachten und zu entscheiden, wann und wie es möglich ist, die Infrastruktur für eine Anwendung zu erweitern oder einzuschränken. Ausnahmen stellen Anwendungen dar, die nur für einen relativ kurzen Zeitraum eingesetzt und dann vollständig abgebaut werden, wie Entwicklungs- und Testanwendungen. Tatsächlich sind diese die mit Abstand verbreitetsten Anwendungen, die zurzeit für eine Ausführung in IaaS- und PaaS-Clouds in Betracht kommen.
  • Es ist zu beachten, dass die Virtualisierungs- und Verwaltungsschichten 62 und 64 in IaaS- und PaaS-Clouds nur die Hardware und möglicherweise grundlegende Software verwalten, die Arbeitslasten hingegen nicht verwalten. Dementsprechend ist dies zuvor getrennt und üblicherweise durch menschliches Eingreifen durchgeführt worden.
  • Wie ebenfalls oben angemerkt, arbeiten Software-as-a-Service(SaaS)-Clouds auf der Anwendungsschicht, werden jedoch sehr spezifisch für bestimmte Anwendungstypen erstellt, wie zum Beispiel die Lösung LotusLive von IBM (eine Marke von International Business Machines Corporation, Armonk, New York, USA) oder diejenigen, die bei Salesforce_dot_com, San Francisco, Kalifornien, USA (wobei „_dot_”.” ersetzt, um zu vermeiden, dass durch einen Browser ausführbarer Code aufgenommen wird) erhältlich sind.
  • Wiederum wie oben angemerkt, sind außerdem übergeordnete Clouds vorhanden, für die es erforderlich ist, dass Anwendungen in spezifischen neuen Programmiermodellen und -sprachen codiert werden, wie zum Beispiel Amazon Web Services (eine Marke von Amazon Web Services LLC, Seattle, Washington, USA), Microsoft Azure (eine Marke von Microsoft Corporation, Redmond, Washington, USA) und Hadoop (das bei der Apache Software Foundation erhältlich ist).
  • Eine oder mehrere Ausführungsformen ermöglichen in vorteilhafter Weise normalen, weitgehend unveränderten Anwendungen mit fluktuierendem oder einfach nur steigendem Ressourcen-Bedarf eine einfache Verwendung der Funktionen von IaaS- oder PaaS-Plattformen.
  • Es ist anzumerken, dass auch zuvor bereits im Hinblick auf eine dynamische Infrastruktur im Zusammenhang mit Grids gearbeitet worden ist, doch weisen Grids nicht dieselbe Art von Schnittstellen zum Bereitstellen und Verwalten von Abbildern wie IaaS- und PaaS-Clouds auf, und folglich unterscheidet sich das Problem der Anwendungsverwaltung für Grids von Clouds. In ähnlicher Weise arbeiteten ältere verteilte Infrastrukturprojekte wie zum Beispiel das Projekt Oceano von IBM zu einem Datenverarbeitungs-Versorgungsunternehmen nicht mit zugrunde liegenden, getrennten Schichten 60, 62, 64 wie in einer Cloud.
  • Es wird nun auf die einfache Systemübersicht von 4 Bezug genommen, in der eine oder mehrere Ausführungsformen die Anwendungs-Ressourcen-Verwaltungskomponente 401 einsetzen, die dem Standardsystem der IaaS- oder PaaS-Cloud 10 und den Anwendungskomponenten 403 hinzugefügt wird. Diese Anwendungs-Ressourcen-Verwaltungseinheit erweitert Cloud-Ressourcen entsprechend den Anwendungsanforderungen oder schränkt sie ein.
  • Um diese Aufgaben auszuführen, wirkt die Anwendungs-Ressourcen-Verwaltungseinheit mit der Verwaltungsschnittstelle der zugrunde liegenden IaaS- oder PaaS-Cloud, d. h. der oberen Schnittstelle der Verwaltungsschicht 64, zusammen, wohingegen die Anwendung Abbilder und sonstige Ressourcen verwendet, die von der Cloud bereitgestellt werden. Hier wird der Begriff „Abbild” sowohl für die reinen Betriebssystemabbilder, die eine IaaS-Cloud bietet, als auch für die Abbilder verwendet, die Zwischenanwendungen beinhalten, die eine PaaS-Cloud bietet. Im Hinblick auf 3 handelt es sich bei IaaS-Abbildern um virtuelle Server, und es ist üblicherweise ein Katalog von verfügbaren, leicht bereitzustellenden Abbildern, Abbilddateien, die diesem Katalog entsprechen, und tatsächlichen Instanzabbildern vorhanden, die bereitgestellt worden sind und ausgeführt werden. Die Ressourcen-Bereitstellungkomponente der Verwaltungsschicht 64 bietet den Katalog den potenziellen Arbeitslasten der Schicht 66 an, enthält die Abbilddateien und führt zu der Erstellung von Instanzabbildern (virtuellen Servern) in der Virtualisierungsschicht 62. Wenn dieser Prozess gemeint ist, wird mitunter nur von „Abbildern” gesprochen. Zusätzlich zu den Abbildern, die für eine Anwendung bereitgestellt werden, sind Code, Daten, Konfigurationen und dergleichen der Standardanwendungskomponenten vorhanden. Mit anderen Worten, der/die Teil(e) der Arbeitslast, die nicht über die Cloud-Verwaltungsschicht bereitgestellt wurden, bilden die Anwendungskomponenten.
  • Die Verwaltungsschnittstellen, die die Anwendungs-Ressourcen-Verwaltungseinheit verwendet, können OSS-Aspekte (operations support system, Betriebsunterstützungssystem, z. B. eine direkte Schnittstelle zu Ressourcen-Bereitstellungskomponenten) und BSS-Aspekte (business support services, Geschäftsunterstützungsdienste, z. B. eine Schnittstelle zu der Preisbildungskomponente, wenn zum Zeitpunkt einer zusätzlichen Bereitstellung eine zusätzliche Zahlungsvereinbarung benötigt wird) enthalten. Alle diese können durch das Benutzerportal gefiltert werden, es wird hier jedoch davon ausgegangen, dass dieses entweder auch eine API (application programming interface, Anwendungsprogrammierschnittstelle), eine Webdienst-Schnittstelle usw. zur Verwendung durch automatisierte Programme von den Arbeitslastenschichten 66 enthält oder Schnittstellen zu den einzelnen Komponenten wie zum Beispiel Ressourcen-Bereitstellung für die Programme auf der Arbeitslastenschicht 66 direkt zugänglich sind.
  • Die Anwendungs-Ressourcen-Verwaltungseinheit 401 kann von einem aufkommenden Bedarf von dem Anwendungseigner 513 (der Name wird hierin für eine Person verwendet, die berechtigt ist, einen Anwendungsbedarf zu prognostizieren, um diese Rolle von den normalen Benutzern 515 zu unterscheiden – siehe 5) erfahren oder kann die aktuelle Nutzung und Trends aus Berichten, die von der Cloud-Verwaltung bezogen werden, wie auch durch Beobachten der Anwendung ableiten. Die Anwendungs-Ressourcen-Verwaltungseinheit 401 kann auch von Infrastrukturausfällen erfahren und darauf reagieren, um bestimmte Verfügbarkeitsziele zu erreichen.
  • In Anbetracht von Bedarfsänderungen stellt mindestens bei zumindest einigen Ausführungsformen die Anwendungs-Ressourcen-Verwaltungseinheit Abbilder bereit oder hält sie versteckt oder ändert ihre Ressourcen-Zuordnung wie zum Beispiel virtuellen Speicherplatz oder die Zuweisung von virtueller Netzwerk-Bandbreite. Optional stellt sie im Fall einer Bereitstellung den neuen Abbildern auch Software auf Anwendungsebene und/oder Daten bereit.
  • Folglich stellen eine oder mehrere Ausführungsformen ein System, das die Cloud 10 beinhaltet, zumindest die Anwendungskomponente 403 und die Anwendungs-Ressourcen-Verwaltungseinheit 401 bereit, wobei die Anwendungs-Ressourcen-Verwaltungseinheit Cloud-Ressourcen für die Anwendungskomponente erweitert und/oder einschränkt, um Anwendungs-Ressourcen-Anforderungen zu erfüllen.
  • Bei einer oder mehreren Ausführungsformen verwendet die Anwendungs-Ressourcen-Verwaltungseinheit die Dienste einer IaaS- oder PaaS-Cloud. Weitere Einzelheiten über diese Komponenten und ihr Zusammenwirken werden in 5 dargestellt, die eine ausführlichere Systemübersicht bereitstellt.
  • Es ist zu beachten, dass die Anwendungs-Ressourcen-Verwaltungseinheit 401 selbst in der Cloud 10 ausgeführt werden kann. Das Anwendungsfeld 511 ist virtuell; es weist darauf hin, dass die Anwendungs-Ressourcen-Verwaltungseinheit zu einer spezifischen Anwendung gehört und Kenntnis von der Anwendungsstruktur haben sollte.
  • Weiterhin unter Bezugnahme auf 5 wirkt der Anwendungseigner 513 mit der Anwendungs-Ressourcen-Verwaltungseinheit 401 über die Anwendungsverwaltungs-Schnittstelle zusammen (in 3 handelt es sich dabei um die obere Schnittstelle der Arbeitslastenschicht 66, d. h. wo die Anwendungen/Arbeitslasten mit ihren Benutzern zusammenwirken). Die Anwendungs-Ressourcen-Verwaltungseinheit 401 ist der Anwendung 511 zugehörig und führt eine Einrichtung der Anwendungs-Software 517, die von normalen Anwendungsbenutzern 515 verwendet wird, wie auch eine Überwachung der Anwendungs-Software 517 und entsprechender Abbilder 519 aus. Die Abbilder werden Teil der Cloud-Laufzeitumgebung 521. Block 521 entspricht im Wesentlichen der Virtualisierungsschicht 62 von 3 (oder den Schichten 60 und 62 zusammen), wohingegen die Cloud-Verwaltungsplattform 523 der Schicht 64 entspricht. Die Cloud-Verwaltungsplattform 523 verwaltet die Cloud-Laufzeitumgebung 521, die mit der Anwendungs-Ressourcen-Verwaltungseinheit 401 über eine geeignete Bereitstellungsschnittstelle (d. h. eine Schnittstelle zu der Ressourcen-Bereitstellungskomponente, entweder direkt oder mit einer BSS-Schnittstelle und/oder dem Benutzerportal dazwischenliegend) zusammenwirkt, und die Cloud-Verwaltungsplattform 523 stellt außerdem der Anwendungs-Ressourcen-Verwaltungseinheit 401 Nutzungs- und Fehlerberichte bereit (die z. B. von der Messkomponente oder der Service-Level-Management-Komponente von 3 stammen könnten).
  • Bei einer oder mehreren Ausführungsformen kann eine Anwendungs-Ressourcen-Verwaltungseinheit wie zum Beispiel 401 wie in 6 dargestellt strukturiert sein, wobei die Komponenten die folgenden beispielhaften Funktionen bereitstellen:
    Die Richtlinien 631 legen langfristige Ziele fest, z. B. Ziele zu Leistung und Verfügbarkeit, die als Service-Level-Ziele der Anwendung (im Gegensatz zu denjenigen der Cloud) vorgegeben werden können; mit anderen Worten, bei diesen handelt es sich um Ziele für die Schicht 66, nicht für die Schicht 64 als Service-Level-Management-Komponente und SLA-Planungskomponente dieser Schichterfüllung). Kurzfristigere Ziele von einem Anwendungseigner wie zum Beispiel diejenigen, die sich auf eine Kurzfristprognose für gestiegenen Leistungsbedarf beziehen, können ebenfalls als Richtlinien formuliert werden.
  • Die Verwaltungskomponente 633 übernimmt die Richtlinien wie auch das, was sie von der Anwendung und der Cloud erfährt, und legt Maßnahmen fest. Diese Maßnahmen beinhalten insbesondere das Bereitstellen, Versteckthalten oder Löschen von Anforderungen an die Cloud und jegliche sonstige Maßnahmen, die die Cloud-Verwaltungsplattform zulässt, z. B. Erweitern und Einschränken von Abbild-Ressourcen, Live-Migration zu verschiedenen Servern oder Auswahl einer höheren Dienstgüte aus der Cloud (die z. B. Garantien für eine bessere Leistung wie auch Garantien für bessere Verfügbarkeit oder Zuverlässigkeit beinhalten kann).
  • Die Steuerkomponente 635 setzt abstrakte Anforderungen von der Verwaltungskomponente in konkretes Zusammenwirken mit der Cloud-Verwaltungsplattform um, z. B. über eine Anwendungsprogrammierschnittstelle (API) oder eine Webdienst-Schnittstelle. Bei einem solchen Zusammenwirken kann es sich um eine Abfolge mehrerer Schritte handeln, und es kann Schritte auf der OSS- und BSS-Ebene beinhalten, wie zum Beispiel ein Auswählen einer Abbildgröße und Auswählen eines Zahlungsverfahrens oder einer vorhandenen Kontonummer.
  • Im Gegensatz zu der Steuerkomponente interpretiert die Interpretationskomponente 637 Berichte von der Cloud wie zum Beispiel Nutzungsdaten sowohl über die eigenen Abbilder der Anwendung als auch über sonstige virtuelle Ressourcen und die Cloud insgesamt oder Fehlerberichte.
  • Ein Vorteil des Herauslösens einer Steuerkomponente und einer Interpretationskomponente aus der Verwaltungskomponente besteht darin, dass es einfacher wird, die Anwendungs-Ressourcen-Verwaltungseinheit an unterschiedliche Clouds anzupassen. In dem Beispiel in 6 wird jedoch zugelassen, dass die Anwendungs-Ressourcen-Verwaltungseinheit direkt mit den Anwendungskomponenten zusammenwirkt, weil sie für diese Anwendung spezifisch ist.
  • Nun werden zusätzliche, nicht beschränkende beispielhafte Einzelheiten im Hinblick auf einige mögliche Funktionen der Anwendungsverwaltungseinheit bereitgestellt.
  • Im Hinblick auf das Überwachen kann die Anwendungsverwaltungseinheit in einigen Fällen die Anwendungskomponenten 403 und ihre Nutzung überwachen, entweder an den Benutzerschnittstellen der Anwendung (wobei z. B. ein Service-Level-Agreement (SLA) für eine Anwendung gelten kann) oder für einzelne Komponenten (wie etwa 517, 519), insbesondere diejenigen, die auf unterschiedlichen Abbildern eingesetzt sind, oder an beiden. Die Anwendungsverwaltungseinheit kann außerdem Daten über die aktuelle Nutzung ihrer Cloud-Abbilder über die Cloud-Schnittstelle (d. h. von 523) beziehen und/oder kann Daten über die aktuelle Gesamtnutzung der Cloud über die Cloud-Schnittstelle beziehen – dies kann von Interesse sein, um zu prognostizieren, wie sich ein Beziehen von mehr Ressourcen auswirkt, wenn die Ressourcen gemeinsam verwendet werden.
  • Ebenfalls im Hinblick auf ein Überwachen kann die Anwendungsverwaltungseinheit ferner in einigen Fällen Daten über Fehler ihrer eigenen Abbilder (von 523) und über die allgemeine Zuverlässigkeit der Cloud beziehen; kann Prognosen auf der Grundlage von Nutzungstrends verwenden, um den zukünftigen Bedarf zu schätzen (z. B. um monatliche Spitzenwerte zu prognostizieren oder einen langsamen Gesamtanstieg des Bedarfs zu prognostizieren); und/oder kann von Zeit zu Zeit die Anwendungsstruktur durch Erkennungswerkzeuge erneut überprüfen (dies wird an anderer Stelle hierin weiter erörtert und austauschbar als „erneute Erkennung” bezeichnet). Diese würden auf die Abbilder 519 der Anwendung und die Anwendungs-Software 517 angewandt, da die Benutzer 515 der Anwendung ebenfalls über bestimmte Rechte verfügen können, Änderungen vorzunehmen. Erkennungswerkzeuge können außerdem eine Suche nach Leistungsparametern auf Anwendungsebene wie zum Beispiel aktuelle Datenbankgrößen unterstützen.
  • Im Hinblick auf Ziele kann die Anwendungsverwaltungseinheit in einigen Fällen kurzfristige Ziele entweder absolut oder im Verhältnis zur aktuellen Leistung von dem Anwendungseigener beziehen. Diese Ziele beziehen sich üblicherweise auf die Anwendung als Ganzes (z. B. der Transaktionsdurchsatz oder die Reaktionszeit gegenüber Endbenutzern) statt auf die Leistung einzelner Komponenten der Anmeldungs-Software auf den einzelnen Abbildern. Des Weiteren kann die Anwendungs-Verwaltungseinheit übergeordnete Ziele (langfristige Strategien) von dem Anwendungseigner beziehen, z. B. stets bestimmte SLAs bereitzustellen oder stets einen gewissen Spielraum für plötzliche Änderungen zu haben; und/oder sie kann Kostenziele oder -obergrenzen beziehen, z. B. stets den preiswertesten Gesamtsatz von Ressourcen zu beziehen, um eine gewünschte SLA bereitzustellen, oder stets die bestmögliche Leistung zu bieten, jedoch nur bis zu einer bestimmten Kostenobergrenze.
  • Im Hinblick auf mögliche Entscheidungen kann die Anwendungsverwaltungseinheit in einigen Fällen entscheiden, die Ressourcen, die einzelnen Cloud-Abbildern zugewiesen sind, die der Anwendung zugewiesen sind, zu erweitern und/oder einzuschränken. Abhängig von der Cloud kann dies an Ort und Stelle oder durch Migrieren der entsprechenden Anwendungskomponente 517 zu dem größeren Abbild 519 erfolgen. Darüber hinaus kann die Anwendungsverwaltungseinheit entscheiden, vollständige Cloud-Abbilder für die Verwendung der Anwendung bereitzustellen, zu löschen oder versteckt zu halten. In diesem Fall sollte sie auch geeignete Anwendungs-Software auf ihnen einsetzen. In dieser Hinsicht kann die Anwendungsverwaltungseinheit zu diesem Zweck ein oder mehrere Gold-Images beibehalten, d. h. ruhende Abbilder, die bereits alle wiederholbaren Teile der Anwendung enthalten; und/oder kann außerdem Migrationswerkzeuge verwenden, um Software-Konfigurationen einzusetzen, die dem aktuellen Gesamtanwendungsstatus entsprechen.
  • Ebenfalls im Hinblick auf mögliche Entscheidungen kann die Anwendungsverwaltungseinheit des Weiteren entscheiden, zusätzlichen Speicherplatz und/oder Netzwerk-Ressourcen anzufordern, wenn die Cloud solche Wahlmöglichkeiten getrennt anbietet; kann entscheiden, den Benutzer zu warnen, wenn sie ihre aktuellen Richtlinien oder Anforderungen nicht erfüllen kann; und/oder kann den Benutzer regelmäßig oder auf Anforderung über die Situation auf der Anwendungsebene informieren.
  • Im Hinblick auf eine Entscheidungsfindung kann die Anwendungsverwaltungseinheit in einigen Fällen Entscheidungen treffen, indem sie ein Optimierungs-Solver-Werkzeug einsetzt, oder sie kann den Entscheidungsfindungscode direkt enthalten. Sie kann Entscheidungen auf der Grundlage von dynamischen Cloud-Kosten treffen, wenn die Cloud über ein dynamisches Preisgestaltungsschema (z. B. geringere Kosten an Wochenenden) verfügt. Die Verwendung von dynamischen Cloud-Kosten ist insbesondere nützlich, wenn die Anwendung Aspekte enthält, die nicht zeitkritisch sind und in Zeiten preisgünstigerer Ressourcen durchgeführt werden können.
  • Es ist zu beachten, dass Richtlinien zumindest in einigen Fällen durch Parameter in einer Datendatei oder dergleichen realisiert werden können, in der zulässige Werte und sonstige Variablen festgelegt werden können, ohne die zugrunde liegende Codierung ändern zu müssen; das heißt, eine Datenstruktur, die zulässige Werte oder Bereiche von Werten festlegt.
  • Im Hinblick auf den Richtlinienblock 631 legt dieser in einem oder mehreren Fällen Ziele oder Anforderungen fest oder bisweilen, was in einer bestimmten Situation geschehen sollte. Im Besonderen kann er Richtlinien (d. h. formalisierte Ziele oder Anforderungen) auf der Anwendungsebene enthalten, beispielsweise welche Latenzzeit für Transaktionen auf der Anwendungsebene zulässig ist, wie nahe man Endterminen mit welcher Anzahl noch nicht abgeschlossener Vorgänge mit langer Laufzeit kommen darf oder wie hoch die zu erwartende Last z. B. am Monatsende ist. Er kann außerdem bisweilen Richtlinien auf Infrastrukturebene enthalten, z. B. wie viel freier Speicherplatz stets verfügbar sein soll, welche Nutzungsstufe für eine virtuelle Maschine (VM) über einen längeren Zeitraum zulässig sein soll und so weiter.
  • Der Verwaltungsblock 633 beinhaltet eine Logik, die die Werte aus den Richtlinien 631 liest und eine Dateneingabe über Vorgänge in dem System bezieht (zum Beispiel von einer Sonde auf der Anwendungsebene wie auch von dem Interpretationsblock 637, von Cloud-Berichten oder einer Überwachung auf Abbildebene) und die Richtlinien 631 umsetzt. Zu Beispielen zählt ein Festlegen, dass VMs zugeordnet, versteckt gehalten oder Dienste auf anderen VMs gestartet werden sollten; ein Ermitteln, ob der Speicher vergrößert und/oder die CPU-Zuordnung einer VM erhöht werden sollte; ein Ermitteln, ob Speicherplatz vergrößert und/oder verkleinert werden sollte; und dergleichen.
  • Der Steuerblock 635 stellt eine Schnittstelle zu verschiedenen Architekturen bereit; wenn es sich bei der Cloud zum Beispiel einfach um VMware handelte, würde er mit einer vmrun-Schnittstelle zusammenwirken, um die VMs zu steuern. Das heißt, das Steuermodul 635 setzt Anweisungen von dem Verwaltungsmodul 633 um, sodass sie von einem Ressourcen-Bereitstellungsmodul (siehe Schicht 64 in 3) oder dergleichen, das die Cloud-Ressourcen verwaltet, verstanden werden können.
  • Im Hinblick auf den Interpretationsblock 637 stellt dieser eine Schnittstelle zu verschiedenen Cloud-Architekturen bereit; wenn es sich bei der Cloud zum Beispiel einfach um VMware handelte, könnte er Leistungsberichte von VMware-Schnittstellen interpretieren; und/oder stellt eine Abstraktion für Sonden bereit, die in VMs ausgeführt werden können. In einigen Fällen kann die Cloud eine CPU-Auslastung von Abbildern bereitstellen (siehe z. B. die Messung und Preisbildung in der Schicht 64 in 3). Der Verwaltungsblock 633 weist den Interpretationsblock 637 darauf hin, dass er die CPU-Auslastung aller Abbilder benötigt, der Block 637 setzt dies um und gibt den erforderlichen Befehl an den Block für die Messung und Preisbildung und interpretiert die Cloud-spezifischen Ergebnisse in einem gemeinsamen Format. In einigen Fällen stellt die ARM (Application Resource Manager (Anwendungs-Ressourcen-Verwaltungseinheit)) 401 eine Verbindung mit den Abbildern her, die sie zusätzlich zu oder anstelle der Cloud-Schnittstelle auf ihrer eigenen Schicht verwaltet, z. B. um eine Latenzzeit auf Anwendungsebene zu überwachen (d. h. wie lange normale Anwendungsbenutzer 515 auf Ergebnisse warten müssen) oder um den Status von Anwendungen mit langer Laufzeit zu erfahren. In solchen Fällen kann ein IP-Überwachungsdienst oder eine Web-Schnittstelle für die Verwaltung durch die Anwendungs-Software 517 bereitgestellt werden, und die Anwendungsverwaltungseinheit erstellt entsprechende Verbindungen und sendet entsprechende Verwaltungsabfragen.
  • In einigen Fällen weist die ARM 401 ein Konto auf dem Standardabbild auf und kann dieses dazu verwenden, sich bei dem Standardabbild anzumelden und einen geeigneten Befehl zum Auslesen der CPU-Auslastung direkt aus dem Abbild ausführen. In einigen Fallen kann die Anwendung so programmiert werden, dass sie auf entsprechende Abfragen antwortet, zum Beispiel wie viele Transaktionen in den letzten 10 Minuten ausgeführt worden sind.
  • Um Missverständnisse auszuschließen, die „Anwendung” bezieht sich in diesem Zusammenhang auf den Code, der die letztendliche gewünschte Funktion ausführt (und der nicht durch die Cloud bereitgestellt worden ist), etwa einen JAVA-Code in einer WEBSPHERE-Software oder ein bestimmtes Datenbankschema innerhalb einer DB2-Software oder üblicherweise eine Kombination solcher Arten von Code, z. B. sämtliche Codeteile, die benötigt werden, um eine Warenkorbanwendung oder eine Reiseberichtsanwendung bereitzustellen. Bei den Sonden handelt es sich um Software-Einheiten, die mit anderer Software Daten austauschen, um erwünschte Werte zu beziehen, im Gegensatz zu physischen Sonden wie Thermoelementen.
  • Mithilfe eines ausführlichen, jedoch nicht beschränkenden Beispiels wird eine dreischichtige Architektur mit einem (üblicherweise mehr als einem) Web-Server, einem Anwendungs-Server und einer Datenbank betrachtet. Die durchschnittliche Latenzzeit für die Endbenutzeranforderungen sollen unter einem spezifischen Schwellenwert gehalten werden. Latenzzeit kann dadurch entstehen, dass beliebige der Elemente überlastet sind. Die Latenzzeit für eine Reaktion auf Anforderungen soll gemessen werden (anwendungsspezifisch – zum Beispiel – wie lange ein http-Server braucht, um auf eine Anforderung zu reagieren).
  • In diesem Beispiel definiert der Richtlinienblock 631, welche Latenzzeit für eine Reaktion auf eingehende Anforderungen verfügbar sein soll und möglicherweise welcher der reguläre Status des Systems sein soll. Der Interpretationsblock 637 stellt eine Verbindung mit Sonden her, die Daten über einzelne Komponenten bereitstellen. Der Verwaltungsblock 633, der den Richtlinienblock 631 und Daten von dem Interpretationsblock 637 wie auch einen direkten Datenaustausch mit Anwendungs-Software verwendet, trifft Entscheidungen wie zum Beispiel die Anzahl von VMs zu erhöhen, die eingehende Anforderungen verarbeiten, um die Latenzzeit zu verringern, wenn sie zu hoch ist, und entscheidet dabei möglicherweise, welche der 3 Schichten einen Engpass darstellt und erweitert werden muss. Der Verwaltungsblock 633 stellt eine Verbindung mit dem Steuerblock 635 her, um die Cloud anzuweisen, eine vorhandene Mastervorlagen-VM zu klonen und online zu schalten, und ist dann dafür zuständig, entsprechende Daten darauf zu laden und sie in die Anwendung einzubinden, sodass sie ihren Teil der Last übernehmen kann.
  • Wenn die Latenzzeit weit unterhalb der Grenzen liegt und mehr als die gleichbleibende Anzahl an VMs, vorhanden ist (je Richtlinie 631), kann die Verwaltung 633 die Steuerung 635 demgegenüber anweisen, VMs langsam abzuschalten, und ist dafür zuständig, die Anwendung zurückzusetzen, sodass die gesamte Arbeitslast durch die verbleibenden VMs verarbeitet wird, z. B. durch Modifizieren einer Lastausgleichsrichtlinie auf Anwendungsebene.
  • Als weitere ausführliche Beschreibung zu diesem nicht beschränkendem Beispiel definiert der Richtlinienblock 631, welche Latenzzeit für eine Reaktion auf eingehende Anforderungen verfügbar sein sollte und welcher der reguläre Status des Systems sein sollte:
    Figure DE112012004238T5_0002
  • Dies legt eine Richtlinie fest, dass die durchschnittliche Latenzzeit über eine Dauer von einer Minute hinaus nicht mehr als 500 ms betragen sollte. Falls dies eintreten sollte, sollten üblicherweise mehr Maschinen zugeordnet werden. Wie oben erörtert, bezieht eine Logik in dem Verwaltungsmodul 633 Daten von der Sonde, prüft die Richtlinien 631 und ergreift eine entsprechende Maßnahme, falls jegliche Richtlinien verletzt werden; Anweisungen, die dieses bewirken sollen, werden an den Steuerblock 635 gesendet, wo sie so umgesetzt werden, wie ebenfalls oben beschrieben worden ist.
  • Der Verwaltungsblock 633 kann auch Mikrotests an jeder einzelnen Anwendungs-Software-Komponente 517 durchführen.
  • Der Verwaltungsblock 633 setzt dann optional eine Logik um, um zu versuchen zu ermitteln, welche Schicht die Latenzzeit verursacht. Er ist in der Lage, Mikrovergleichstests auf jeder Schicht durchzuführen, was keine Auswirkungen auf andere Schichten hat. Er kann zum Beispiel eine statische Web-Seite vom Web-Server abrufen, um nur die Latenzzeit des Web-Servers zu messen. Er kann eine einfache Abfrage an den Anwendungs-Server, die nicht an die Datenbank gerichtet ist, wie auch einfache Datenbankabfragen durchführen. Diese ermöglichen, genau zu erkennen, welche Komponente überlastet ist, und gleichzeitig die Messungen auf VM-Ebene zu erkennen, die durch den Interpretationsblock 637 bereitgestellt werden, und daher zu erkennen, welche Komponente vergrößert werden muss. In diesem Zusammenhang ist zu beachten, dass nur Messungen verwendet werden können, nur Mikrovergleichstests verwendet werden können oder beide zusammen verwendet werden können. Des Weiteren können Mikrovergleichstests zum Beispiel auf einen Vorabtest auf einem gut laufenden System gegründet werden, um erwünschte Werte zu erfahren.
  • Wenn der Verwaltungsblock 633 beispielsweise ermittelt, dass das Web-Server-Front-End überlastet ist, und die beste Entscheidung darin besteht, mehr Front-Ends hinzuzufügen, weist er den Steuerblock 635 an, eine neue VM zuzuordnen, und verlagert dann jegliche erforderliche Zusatz-Software und Anwendungsdaten darauf und integriert sie in die Anwendung.
  • Wenn es sich bei einer Cloud lediglich um VMware handelt, kopiert der Steuerblock 635 eine Gold-Master-VM des Web-Server-Front-Ends auf eine neue VM. Dann verwendet er die Funktionalität RegisterVM() der VMware-API, um die VM der VM-Infrastruktur hinzuzufügen. Nachdem sie hinzugefügt worden ist, verwendet der Steuerblock 635 die API, um eine Verbindung mit der neuen VM herzustellen, und verwendet ihr Verfahren Start(), um die Maschinen zu booten. Anschließend fügt der Verwaltungsblock 633 sie dem Verbund der Maschinen hinzu, die Front-End-Aufgaben durchführen. Ein einfacheres Beispiel wäre, die Größe einer Maschine zu erhöhen.
  • In einem weiteren nicht beschränkenden Beispiel wird ein Überwachen der Speichernutzung betrachtet. Die Richtlinie 631 definiert, wie viel freier Speicherplatz verfügbar sein sollte, wie auch, wie viel freier Speicherplatz zu viel wäre. Der Interpretationsblock 637 stellt eine Verbindung mit Standardschnittstellen (du, df, quota, ...) her, um zu ermitteln, wie viel Speicherplatz frei ist. Der Verwaltungsblock 633 verwendet diese beiden Informationen, um zu ermitteln, ob nicht genügend freier (oder zu viel) Speicherplatz verfügbar ist. Der Verwaltungsblock 633 weist den Steuerblock 635 an, gemäß der Richtlinie mehr freien Speicherplatz zuzuordnen (oder ihn zu verringern). Ein geeigneter Befehl könnte die Form
    „increase-disk <Abbild-ID> <Platten-ID> <Größe>”
    aufweisen.
  • Beispielsweise könnten einige VMs in der Lage sein, abhängig von der Last der VM einen oder mehrere Dienste auszuführen. In einigen Fällen ist es dann möglich, die VM-Last (von der VM-Infrastruktur aus) zu überwachen, und es können Sonden in jeder VM vorhanden sein, um die Ressourcen-Nutzung (CPU, E/A) einzelner Dienste zu überwachen, um zu erfahren, wie viel jeder einzelne Dienst nutzt.
  • Die Richtlinie 631 kann ermitteln, unter welcher Dauerlast eine VM arbeiten dürfen sollte und welche Dauerlast der einzelnen Dienste zugelassen werden sollte, die auf der VM ausgeführt werden. Der Interpretationsblock 637 stellt eine Verbindung zu der Lastüberwachung der VM-Infrastruktur (VM-Last insgesamt) und zu Sonden innerhalb der VM her (um Lastmessungen auf Betriebssystemebene für jeden einzelnen Dienst durchzuführen). Der Verwaltungsblock 633 kann Entscheidungen treffen, die VM aufzuteilen, sodass einzelne Dienste auf unabhängigen VMs ausgeführt werden können, wenn die Last auf einer einzelnen VM zu hoch ist, oder sie wieder zusammenzufügen, wenn die Last gesunken ist. Er stellt eine Verbindung mit dem Steuerblock 635 her, um nach Bedarf neue VMs zu starten oder vorhandene abzuschalten wie auch Dienste zu starten oder zu beenden, die auf den einzelnen VMs ausgeführt werden.
  • In einem noch weiteren nicht beschränkenden Beispiel wird ein Erweitern des Speichers und der CPU-Auslastung einer VM betrachtet. Die Richtlinie 631 ermittelt, welche Speicher- und CPU-Dauerlast auf einer einzelnen Maschine zulässig sein sollte. Der Interpretationsblock 637 bezieht Berichte über die CPU-Auslastung und den freien Speicher und führt diese dem Verwaltungsblock 633 zu. Der Verwaltungsblock 633 kann entscheiden, die CPU- und Speicherzuordnung einer einzelnen VM zu erhöhen (oder zu verringern). Er weist den Steuerblock 635 dazu an. Der Steuerblock 635 kann die VM abschalten (bei Bedarf, einige VMs unterstützen Hot-Plug-fähige CPUs), sie neu konfigurieren, um die Anzahl der CPUs und den zugeordneten Speicher zu vergrößern, und sie mithilfe der Schnittstellen der VM-Architektur (z. B. vmrun auf VMware; und unter Bearbeitung der Konfigurationsdatei der VM manuell oder über APIs) neu starten.
  • In einem noch weiteren nicht beschränkenden Beispiel wird ein Fall betrachtet, in dem eine zulässige Ausfallzeit pro Monat angegeben ist. Die Anwendungsverwaltungseinheit kann die bisherige Gesamtausfallzeit während des Monats verfolgen; wenn sie feststellt, dass die zulässige Grenze nahekommt, weist sie mithilfe der Steuerkomponente 635 zusätzliche Ressourcen an.
  • Beim Folgenden handelt es sich um nicht beschränkende, beispielhafte tatsächliche Befehle zum Bereitstellen eines Servers und zum Vergrößern des Speicherplatzes:
    provision <Vorlagen-/Basis-ID-Name> <neuer ID-Name>>
    increase-disk <ID-Name> <Größe>
  • In einem weiteren Aspekt behandeln eine oder mehrere Ausführungsformen die Migration vorhandener Geschäftsanwendungen zu einem Cloud-artigen Modell, d. h. zu IT-Infrastrukturen, in denen Geschäftsanwendungen entsprechend den Geschäftsanforderungen leicht erweitert und eingeschränkt werden können. Dies wird auch als Beweglichkeit der Geschäftsabläufe bezeichnet und ist üblicherweise Kosten oder Preisbildung nur entsprechend den Ressourcen zugehörig, die eine Geschäftsanwendung tatsächlich verwendet.
  • Auf diese Weise stellen eine oder mehrere Ausführungsformen auf Erkennung beruhende Identifikation und Migration von leicht in eine Cloud verlagerbaren Anwendungen bereit. Wie oben angemerkt, sind Clouds ein aktuelles Interessengebiet in der Industrie. Ein aktueller Schwerpunktbereich sind die Konstruktion und Realisierung neuer Anwendungsprogrammiermodelle und die Erstellung neuer Anwendungen gemäß diesen Modellen. Beispiele sind Googles MapReduce-Modell (erhältlich bei Google Inc., Mountain View, Kalifornien, USA) und das Modell standardisierter katalogartiger Anwendungen auf der Grundlage des Web von Salesforce_dot_com (Salesforce_dot_com, Inc., San Francisco, Kalifornien, USA (wobei „_dot_” „.” ersetzt, um zu vermeiden, dass durch einen Browser ausführbarer Code aufgenommen wird)).
  • Wenngleich diese Bemühungen für einen Bereich neuer Anwendungen geeignet sind, verfügen die meisten Großunternehmen über eine große Anzahl vorhandener IT-unterstützter Geschäftsanwendungen. In diesen Anwendungen wird auf viele spezifische Arten codiert, wie das jeweilige Unternehmen einen bestimmten spezifischen Teil seines Geschäfts durchführt. Sie bringen außerdem üblicherweise erhebliche Mengen an Daten in Formaten mit sich, die für die Geschäftsanwendung spezifisch sind. Ferner können sie Millionen von Codezeilen enthalten. Aus diesen Gründen kann es sich ein Unternehmen nur sehr selten erlauben, eine solche Anwendung in einem neuen Programmiermodell vollständig neu schreiben zu lassen. Selbst weniger umfangreiche Änderungen wie zum Beispiel ein Aufteilen der Anwendung in Module, die über Web-Dienste zusammenwirken, oder ein Neurealisieren der Datenformate sind sehr kostspielig und häufig riskant, sodass die meisten Unternehmen dies für die meisten ihrer Anwendungen nicht durchführen würden.
  • Die oben genannten neuen Anwendungsprogrammiermodelle mögen in Fällen, in denen sehr umfangreicher bestehender Code vorhanden ist, von begrenztem Nutzen sein; vorteilhafterweise behandeln eine oder mehrere Ausführungsformen der Erfindung solche Fälle und lassen eine Verlagerung in eine Cloud selbst dann zu, wenn umfangreicher bestehender Code vorhanden ist.
  • Tatsächlich würden Unternehmen die Versprechungen von Clouds gern nutzen, insbesondere diejenige zur Beweglichkeit der Geschäftsabläufe. Ein Grund dafür besteht auf der Geschäftsebene: ein schnelles Geschäftswachstum in unerwarteten Bereichen ist nur mit dieser Beweglichkeit möglich. Ein weiterer Grund sind Kosteneinsparungen: Selbst, wenn sich der zukünftige Bedarf prognostizieren oder schätzen lässt, solange die Infrastruktur relativ statisch ist, muss die Infrastruktur dennoch lange im Voraus ausgebaut werden und wird vermutlich nach einer hohen Auslastung nicht wieder verringert. Dadurch werden Ressourcen verschwendet.
  • Eine Option der Gegenwart oder der nahen Zukunft besteht darin, zu einer Infrastructure-as-a-Service(IaaS)-Cloud wie zum Beispiel dem Web-Dienst Amazon Elastic Compute Cloud (Amazon EC2) oder der IBM SmartCloud Enterprise zu migrieren, die bei International Business Machines Corporation, Armonk, New York, USA erhältlich ist. Eine IaaS-Cloud ermöglicht eine schnelle Bereitstellung von Betriebssystemabbildern. Dies ist eine gute Grundlage. Es handelt sich jedoch noch nicht um Beweglichkeit von Geschäftsabläufen, da immer noch viel zusätzliche Arbeit erforderlich ist, um diese leeren Betriebssystemabbilder für die spezifische Geschäftsanwendung nutzbar zu machen. Man nimmt an, dass gegenwärtig kein Verfahren besteht, um dies systematisch für vorhandene Anwendungen durchzuführen.
  • Unter Bezugnahme auf 7 behandeln eine oder mehrere Ausführungsformen vorhandene Anwendungen folgendermaßen. In Schritt 702 wird üblicherweise ein Infrastruktur-Erkennungswerkzeug ausgeführt, um genügend Daten für die folgenden Schritte zu beziehen. Dieses Werkzeug sollte bevorzugt in der Lage sein, Geschäftsanwendungen zu verfolgen; wie z. B. das Werkzeug Galapagos von IBM Research (siehe z. B. Magoutis, M. Devarakonda, N. Joukov und N. G. Vogl, Galapagos: Model driven discovery of end-to-end application–storage relationships in distributed systems, IBM J. RES. & DEV. BD. 52 Nr. 4/5 JULI/SEPTEMBER 2008, 367 bis 377).
  • Die folgenden gemeinsam übertragenen US-Patentveröffentlichungen sind für den Fachmann im Zusammenhang mit Erkennung und/oder Migration von Interesse und sind sämtlich ausdrücklich in jeder Hinsicht in vollen Umfang durch Bezugnahme hierin eingeschlossen:
    20110196984 DISTRIBUTED PARALLEL DISCOVERY
    20110196959 MIDDLEWARE-DRIVEN SERVER DISCOVERY
    20110191454 DISCOVERING PHYSICAL SERVER LOCATION BY CORRELATING EXTERNAL AND INTERNAL SERVER INFORMATION
    20110107327 ASSISTING SERVER MIGRATION
    20110055816 METHOD TO DERIVE SOFTWARE USE AND SOFTWARE DATA OBJECT USE CHARACTERISTICS BY ANALYZING ATTRIBUTES OF RELATED FILES
    20110055806 METHOD AND SYSTEM TO DISCOVER POSSIBLE PROGRAM VARIABLE VALUES BY CONNECTING PROGRAM VALUE EXTRACTION WITH EXTERNAL DATA SOURCES
    20110029946 EFFICIENT EXTRACTION OF SOFTWARE DEPENDENCIES FROM PROGRAM CODE
    20100319060 PROCESS AND SYSTEM FOR COMPREHENSIVE IT DISCOVERY WITHOUT CREDENTIALS
    20090307743 METHOD TO AUTOMATICALLY MAP BUSINESS FUNCTION LEVEL POLICIES TO IT MANAGEMENT POLICIES
    20090307174 CONNECTION OF VALUE NETWORKS WITH INFORMATION TECHNOLOGY INFRASTRUCTURE AND DATA VIA APPLICATIONS AND SUPPORT PERSONNEL
    20090150472 METHOD FOR NON-DISRUPTIVELY ASSOCIATING APPLICATIONS AND MIDDLEWARE COMPONENTS WITH INFORMATION TECHNOLOGY INFRASTRUCTURE
    20110213883 SYSTEM AND METHOD FOR OBJECT MIGRATION USING WAVES
  • Ein zusätzlicher Schritt beinhaltet ein Analysieren der zu jeder Geschäftsanwendung gehörenden Infrastruktur auf vorhandene Unterstrukturen, die eine Replikation einzelner Teile ermöglichen, und ein Auswählen einer oder mehrerer Geschäftsanwendungen dieses Typs wie in Schritt 704. In Schritt 706 werden die einzelnen Unterstrukturen der Anwendung ohne Änderung auf der Anwendungsschicht zu einer IaaS-Cloud migriert. In Schritt 708 wird eine Komponente für die Beweglichkeit von Geschäftsabläufen zusammengestellt, die eine oder mehrere und bevorzugt sämtliche der folgenden Aufgaben durchführen kann:
    • • Um Veränderungen in Geschäftsanforderungen zu verstehen, sind entweder Eingaben über den geschäftsrelevanten Bedarf an Wachstum oder Verkleinerung erforderlich, oder sie analysiert, ob sich der aktuelle Geschäftserfolg bestimmten oberen oder unteren Grenzen nähert.
    • • Entsprechend erweitert sie die Unterstrukturen oder schränkt sie ein. Um diesen Aspekt auszuführen, verwendet die Komponente: – den identifizierten vorhandenen Replikationsmechanismus, um die Unterstrukturen zu erweitern oder einzuschränken; und – die IaaS-Cloud-Infrastruktur, um die benötigten Betriebssystemabbilder bereitzustellen, zu löschen oder versteckt zu halten/wiederherzustellen.
  • In Schritt 710 führt die Komponente für die Beweglichkeit von Geschäftsabläufen tatsächlich die Aufgaben durch, für die sie in Schritt 708 zusammengestellt worden war.
  • Eine geeignete Komponente für die Beweglichkeit der Geschäftsabläufe ist die oben erörterte Anwendungs-Ressourcen-Verwaltungseinheit. Es wird Bezug genommen auf die gemeinsam übertragene, gleichzeitig anhängige US-Patentanmeldung mit der Seriennummer 13/180 858 von Murthy V. Devarakonda et al. mit dem Titel Application Resource Manager over a Cloud, eingereicht am 12. Juli 2011 und ausdrücklich in jeder Hinsicht in vollen Umfang durch Bezugnahme hierin eingeschlossen.
  • Es ist zu beachten, dass eine oder mehrere Ausführungsformen nicht zwingend sämtliche Anwendungen verarbeiten. Es wird angenommen, dass es gegenwärtig nicht praktikabel ist, mit angemessenem Aufwand für eine beliebige Anwendung mit unbekannter, komplexer Struktur eine Beweglichkeit der Geschäftsabläufe zu realisieren. Stattdessen identifizieren eine oder mehrere Ausführungsformen Geschäftsanwendungen, bei denen die Einführung einer Beweglichkeit von Geschäftsprozessen bald und mit angemessenem Mehraufwand möglich ist, und ermöglichen eine tatsächliche Migration dieser Geschäftsanwendungen. Dies führt zu kurzfristigen Verbesserungen und Kosteneinsparungen bei der Beweglichkeit der Geschäftsprozesse, die anderenfalls nicht möglich wären.
  • Ein Beispiel, das das Verfahren von 7 veranschaulicht, wird in 8 gegeben. In diesem Beispiel ergab die anfängliche Erkennung (Schritt 702) die Geschäftsanwendung 851 mit der Bezeichnung „EventX”, die den Web-Server-Verbund 853 (veranschaulicht als mehrere IBM HTTP-Server, IHS), den Anwendungs-Server-Verbund 855 (veranschaulicht als mehrere IBM WebSphere Application Server, WAS) und den Datenbankverbund 857 (veranschaulicht als mehrere DB2-Datenbanken) beinhaltet. Sonstige Anwendungen, die für eine „Verlagerung in eine Cloud” nicht geeignet waren, befinden sich bei 850. Die Web-Server, Anwendungs-Server und Datenbanken und deren spezifische Beispiele sind beispielhaft und nicht beschränkend.
  • Auf diese Weise bleibt diese Geschäftsanwendung bei der Auswahl in Schritt 704 erhalten, da sie Unterstrukturen beinhaltet, die eine Replikation einzelner Teile ermöglicht – bei jedem der drei Verbünde handelt es sich um eine solche Unterstruktur, und die einzelnen IHS-, WAS- und DB2-Elemente sind die Teile.
  • Der Umwandlungspfeil 859 entspricht den Schritten 702, 704, 706, 708 und vor allem den Schritten 706, 708. Auf der einen Seite werden die vorhandenen Unterstrukturen der Geschäftsanwendung „EventX” im Wesentlichen unverändert zu der Cloud 10 migriert, d. h. ihr Code und ihre Einstellungen auf Zwischenanwendungsebene bleiben wie bisher. (Kleine Änderungen wie Aktualisierungen von Versionen können aus anderen Gründen während der Cloud-Migration durchgeführt werden und wirken sich nicht auf dieses Verfahren aus.) Auf der anderen Seite wird die Komponente 861 für die Beweglichkeit der Geschäftsabläufe eingebracht.
  • Der Pfeil 863 für die Beweglichkeit der Geschäftsabläufe entspricht Schritt 710. Zu einem späteren Zeitpunkt besteht ein Bedarf, die Geschäftsanwendung zu erweitern oder einzuschränken. Das Beispiel in der Figur stellt den professionellen Anwender 865 dar, der (auf der Geschäftsebene) prognostiziert, dass die Verwendung von EventX am nächsten Montag um 10 Prozent zunehmen wird. In diesem Fall ist zu erkennen, dass die Komponente 861 für die Beweglichkeit der Geschäftsabläufe entschieden hat, dem Web-Server-Verbund den neuen IHS-Server 867 und dem Datenbankverbund die neue DB2 869 hinzuzufügen. Der genaue Mechanismus, den die Komponente für die Beweglichkeit der Geschäftsabläufe für diese Entscheidungen verwendet, kann bei verschiedenen Ausführungsformen variieren; es kann sogar zusätzliche manuelle Unterstützung stattfinden. Wiederum wie angemerkt, wird bei einem bevorzugten, jedoch nicht beschränkenden Ansatz die oben erörterte Anwendungs-Ressourcen-Verwaltungseinheit 401 als Komponente für die Beweglichkeit der Geschäftsabläufe verwendet.
  • Bei einer oder mehreren Ausführungsformen befinden sich nicht nur neue Abbilder in der zugrunde liegenden IaaS-Cloud 10 und nicht einmal nur neue Abbilder 867, 869 mit einem IHS 853 und einer DB2 857, sondern diese Zwischenanwendungsteile sind am Ende von Schritt 710 noch weiter vollständig in ihre jeweiligen Verbünde integriert und bereit, an der Erfüllung der gestiegenen Geschäftsanforderungen mitzuwirken.
  • Ein Beispiel für eine Geschäftsanwendung Event), in dem ein professioneller Anwender in der Lage sein kann, einen solchen Nutzungsanstieg zu prognostizieren, ist ein Sportereignis, dass am Montag beginnt. Ein weiteres Beispiel ist eine Verkaufsanwendung, für die ein Nutzungsanstieg aufgrund einer neuen Marketing-Kampagne oder aufgrund einer jahreszeitlichen Veränderung prognostiziert wird.
  • Das Verfahren ist nicht auf Verbünde als zugrunde liegende Strukturen beschränkt, es kann ein beliebiges anderes vorhandenes Verfahren zur Replizieren einzelner Teile von Unterstrukturen verwendet werden.
  • In einigen Fällen kann Schritt 710 durch Überwachung verbessert werden, d. h. wenn die Komponente 861 für die Beweglichkeit der Geschäftsabläufe verfolgt oder erkannt haben kann, wie die einzelnen Unterstrukturen zum jeweiligen Zeitpunkt funktionieren, um nur diejenigen zu erweitern oder einzuschränken, für die dies notwendig ist. Wenn keine Messwerte vorhanden sind, können auch Leistungsprognosen, z. B. aus der Konstruktionsphase oder einer früheren Optimierungsphase vorhanden sein, die die Leistung von Unterstrukturen mit der Leistung der Anwendung als Ganzes verknüpfen. Beispielsweise hat in 8 die Komponente für die Beweglichkeit der Geschäftsabläufe von einer dieser Quellen Kenntnis darüber erhalten, dass sie, um die geschäftsrelevante Leistung beim aktuellen Zustand der Systeme um 10% zu steigern, einen IHS und eine DB2, jedoch keinen WAS hinzufügen muss.
  • Eine oder mehrere Ausführungsformen können mit geringen Änderungen auch in einer Platform-as-a-Service(PaaS)-Cloud statt in einer IaaS-Cloud umgesetzt werden. Beispielsweise kann eine PaaS-Cloud vorkonfigurierte IHS-, WAS- und DB2-Komponenten bieten. In diesem Fall kann das obige Beispiel recht ähnlich wie oben verlaufen, außer dass nun neue Abbilder nicht erstellt werden, indem zunächst ein leeres Betriebssystem mithilfe der IaaS-Schnittstellen installiert wird und anschließend Verbundkomponenten in ihnen eingerichtet werden, sondern indem Abbilder bereitgestellt werden, die bereits die Basis-Software beinhalten. Die Komponente für die Beweglichkeit der Geschäftsabläufe muss weiterhin die Elemente, die für die Geschäftsanwendung spezifisch sind, wie zum Beispiel Web-Seiten, Code oder Daten auf diese Abbilder replizieren und sie mit dem Ablauf der Geschäftsanwendung und der potenziellen Verwaltungs-Software der Unterstrukturen verknüpfen.
  • Auf diese Weise erstellen eine oder mehrere Ausführungsformen durch Migration eine geschäftsrelevante, agile Anwendung. Bei einer oder mehreren Ausführungsformen, bei denen zum Beispiel ein erweitertes Erkennungswerkzeug verwendet wird, werden Arbeitslasten ausführlich analysiert; und einige mit einer mehrschichtigen Standardverbundstruktur, wie zum Beispiel insbesondere IHS-WAS-DB2, oder ähnliche Arbeitslasten identifiziert. Eine oder mehrere Ausführungsformen erzielen in vorteilhafter Weise geschäftsrelevante Skalierbarkeit durch schnellen Einsatz von zusätzlichen Verbundelementen. In einigen Fällen können Nutzungsdaten dazu beitragen, Engpässe zu erkennen und festzustellen, welche Verbünde erweitert werden müssen, wenn der Bedarf steigt, und in welchem Umfang.
  • Zurzeit wird angenommen, dass eine geschäftsrelevante Erweiterungsanforderung zu neuen Abbildern in der Cloud führen sollte, auf denen sich Verbund-Software (z. B. zusätzliche IHS oder DB2) befinden sollte und sich die Anwendungs-Software (z. B. EventX-Web-Serving) innerhalb dieses Verbunds befinden sollte und dass ferner eine Verknüpfung mit den Verwaltungseinheiten des Verbunds erfolgen sollte, damit alles unverzüglich ausgeführt werden kann.
  • 9 ist ein beispielhaftes Software-Architekturschaubild gemäß einem Aspekt der Erfindung. Wie darin zu erkennen ist, führt das erweiterte Erkennungswerkzeug 904 eine Erkennung an dem traditionellen System (das auch als Quellumgebung bezeichnet wird) 902 durch, um zumindest eine leicht in eine Cloud verlagerbare Anwendung zu identifizieren. Das Migrationswerkzeug 914 übernimmt eine Eingabe von dem traditionellen System 902 und dem erweiterten Erkennungswerkzeug 914 und führt eine Migration der leicht in eine Cloud verlagerbaren Anwendung zu der Zielumgebung (Cloud) 910 durch. Das Migrationswerkzeug 914 setzt optional den Abbildspeicher 916 ein. Unterdessen erzeugt das Konstruktormodul 906 für die Komponente für die Beweglichkeit der Geschäftsabläufe (business agility component, BAC) (auch als automatisches Code-Erzeugungsmodul bezeichnet) die angepasste BAC 908, um die leicht in eine Cloud verlagerbare Anwendung zu verwalten, nachdem sie zu der Zielumgebung 910 migriert worden ist. Das BAC-Konstruktormodul 906 verwendet zum Beispiel den Datenspeicher mit BAC-Vorlagen 912. Es wird auf 4 bis 6 und den beigefügten Text zur Erörterung der beispielhaften ARM 401 verwiesen, bei der es sich um eine bevorzugte, jedoch nicht beschränkende Form einer BAC handelt.
  • Angesichts der bisherigen Erörterung ist zu erkennen, dass, allgemein ausgedrückt, ein beispielhaftes Verfahren gemäß einem Aspekt der Erfindung den Schritt 702 zum Analysieren von Infrastrukturen einer Vielzahl von vorhandenen Anwendungen einer Entität beinhaltet, um zumindest eine der Infrastrukturen der Vielzahl von vorhandenen Anwendungen zu identifizieren, die vorhandene Unterstrukturen beinhaltet, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen. Ein weiterer Schritt 704 beinhaltet ein Auswählen der identifizierten Infrastruktur(en) zur Migration zu einer Cloud. Bei der Cloud handelt es sich um eine Infrastructure-as-a-Service-Cloud und/oder eine Platform-as-a-Service-Cloud. Ein noch weiterer Schritt 706 beinhaltet ein Migrieren der vorhandenen Unterstrukturen der identifizierten Infrastruktur(en) zu der Cloud ohne Änderung auf der Anwendungsebene. Ein zusätzlicher Schritt 708 beinhaltet ein Zusammenstellen einer Komponente für die Beweglichkeit der Geschäftsabläufe, die dazu eingerichtet ist, das Erweitern und Einschränken derjenigen Ressourcen der Cloud zu steuern, die für die identifizierte(n) Infrastruktur(en) bestimmt sind. Schritt 710 beinhaltet ein Erweitern und Einschränken der Ressourcen der Cloud, die für die identifizierte(n) Infrastruktur(en) bestimmt sind, mithilfe der Komponente für die Beweglichkeit der Geschäftsabläufe. Wie angemerkt, handelt es sich bei der Anwendungs-Ressourcen-Verwaltungseinheit 401 um ein Beispiel für die Komponente 861 für die Beweglichkeit der Geschäftsabläufe.
  • Wie an anderer Stelle angemerkt, beinhaltet in einigen Fällen ein zusätzlicher Schritt ein Ausführen eines Infrastrukturerkennungswerkzeugs wie zum Beispiel des Werkzeugs GALAPAGOS von IBM Research, um Daten für den Analyseschritt zu beziehen.
  • Wie ebenfalls an anderer Stelle angemerkt, handelt es sich bei Verbünden um nicht beschränkende Beispiele für Unterstrukturen. Bei Web-Server-Verbünden, Anwendungs-Server-Verbünden und Datenbankverbünden handelt es sich ihrerseits um nicht beschränkende Beispiele für Verbünde.
  • In einigen Fällen wird die Komponente für die Beweglichkeit der Geschäftsabläufe, die in dem Zusammenstellungsschritt zusammengestellt wird, ferner so eingerichtet, dass sie Veränderungen im Bedarf bewertet, die zu dem Erweitern und Einschränken derjenigen Ressourcen der Cloud führen, die für die identifizierte(n) Infrastruktur(en) bestimmt sind. In solchen Fällen kann ein zusätzlicher Schritt ein Bewerten der Veränderungen im Bedarf beinhalten; beispielsweise durch Annehmen von Eingaben bezüglich zumindest einer Bedarfszunahme und/oder eines Bedarfsrückgangs und/oder durch Analysieren, ob sich der Bedarf einer oberen Grenze und/oder einer unteren Grenze nähert.
  • Wie angemerkt, handelt es sich bei der Cloud in einigen Fällen um eine Infrastructure-as-a-Service-Cloud. In solchen Fällen beinhaltet das Erweitern und Einschränken von Ressourcen ein Erweitern und Einschränken mithilfe des vorhandenen Replikationsmechanismus während einer Verwendung der Infrastruktur der Infrastructure-as-a-Service-Cloud, um ein Bereitstellen, Löschen, Versteckthalten und/oder Wiederherstellen entsprechender Betriebssystemabbilder auszuführen.
  • Wie angemerkt, handelt es sich bei der Cloud in einigen Fällen um eine Plafform-as-a-Service-Cloud. In solchen Fällen beinhaltet das Erweitern und Einschränken der Ressourcen zumindest ein Erweitern durch Bereitstellen von Abbildern in der Plafform-as-a-Service-Cloud, die eine Basis-Software beinhalten, die den Unterstrukturen (z. B. handelt es sich bei der Basis-Software um den IHS 853 in dem Verbund der IHS 853, WAS 855 und DB2 857) zugehörig ist. Bei einer PaaS-Cloud sind Abbilder vorhanden, die bereits einen IHS enthalten, daher geht die Erweiterung damit einher, dass die ARM eine neue virtuelle Maschine anfordert, auf der sich der IHS bereits befindet. Im Fall einer IaaS-Cloud geht die Erweiterung damit einher, dass die ARM eine neue virtuelle Maschine anfordert und die ARM den IHS auf der neuen virtuellen Maschine platziert.
  • Bei einer oder mehreren Ausführungsformen wird das Erweitern und Einschränken derjenigen Ressourcen der Cloud, die für die identifizierte(n) Infrastruktur(en) bestimmt sind, mithilfe der Komponente für die Beweglichkeit der Geschäftsabläufe auf der Ebene der Unterstrukturen ausgeführt. In einigen Fällen beruht das Ausführen des Erweiterns und Einschränkens auf der Ebene der Unterstrukturen auf einer Leistungsüberwachung der Unterstrukturen. Das heißt, wie angemerkt, verfolgt in einigen Fällen die Komponente 861 für die Beweglichkeit der Geschäftsabläufe oder kann erkannt haben, welche Leistung die einzelnen Unterstrukturen zum jeweiligen Zeitpunkt aufweisen, um nur diejenigen zu erweitern oder einzuschränken, für die dies notwendig ist.
  • In einigen Fällen beruht das Ausführen des Erweiterns und Einschränkens auf der Ebene der Unterstrukturen auf Leistungsprognosen für die Unterstrukturen. Das heißt, wie angemerkt, wenn keine Messwerte vorhanden sind, können auch Leistungsprognosen, z. B. aus der Konstruktionsphase oder einer früheren Optimierungsphase vorhanden sein, die die Leistung von Unterstrukturen mit der Leistung der Anwendung als Ganzes verknüpfen. Beispielsweise hat in 8 die Komponente für die Beweglichkeit der Geschäftsabläufe von einer dieser Quellen Kenntnis darüber erhalten, dass sie, um die geschäftsrelevante Leistung um 10% zu steigern, einen IHS und eine DB2, jedoch keinen WAS hinzufügen muss.
  • In einem weiteren Aspekt beinhaltet ein weiteres beispielhaftes Verfahren den Schritt zum Beziehen (z. B. durch das Modul 906 von dem Werkzeug 904, möglicherweise mit einer Eingabe durch einen menschlichen Experten) einer Spezifikation zumindest einer Infrastruktur von einer Vielzahl von Infrastrukturen einer Vielzahl von vorhandenen Anwendungen einer Entität, die zu einer Cloud migriert werden soll. Die zumindest eine Infrastruktur beinhaltet vorhandene Unterstrukturen, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen. Ein zusätzlicher Schritt beinhaltet ein Identifizieren (z. B. durch das Modul 906), in dem BAC-Vorlagenspeicher 912, zumindest einer generischen Vorlage, die Anweisungen zum Ausführen eines Erweiterns und/oder eines Einschränkens von Ressourcen der Cloud beinhaltet, die für die zumindest eine Infrastruktur bestimmt werden sollen. Weitere Schritte beinhalten ein Instanziieren (z. B. durch das Modul 906) einer bestimmten Instanz der zumindest einen generischen Vorlage durch Befüllen der zumindest einen generischen Vorlage mit spezifischen Daten, die die zumindest eine Infrastruktur betreffen; und ein Zusammenstellen (z. B. durch das Modul 906), zumindest aus der bestimmten Instanz, der Komponente 908 für die Beweglichkeit der Geschäftsabläufe (z. B. einer angepassten BAC wie etwa einer angepassten ARM), die so konfiguriert ist, dass sie das Erweitern und/oder Einschränken der Ressourcen der Cloud steuert, die für die zumindest eine Infrastruktur bestimmt sind.
  • Das eben beschriebene Verfahren kann mit dem zuvor erörterten Verfahren kombiniert werden, sodass der Zusammenstellungsschritt in dem zuvor erörterten Verfahren beinhaltet: In einem Vorlagenspeicher einer Komponente für die Beweglichkeit der Geschäftsabläufe, Identifizieren zumindest einer generischen Vorlage, die Anweisungen zum Ausführen eines Erweiterns und/oder eines Einschränkens von Ressourcen der Cloud beinhaltet, die für die zumindest eine der Infrastrukturen bestimmt werden sollen; Instanziieren einer bestimmten Instanz der zumindest einen generischen Vorlage durch Befüllen der zumindest einen generischen Vorlage mit spezifischen Daten, die die zumindest eine der Infrastrukturen betreffen; und zumindest aus der bestimmten Instanz, Zusammenstellen der Komponente für die Beweglichkeit der Geschäftsabläufe.
  • Im Hinblick auf das erweiterte Erkennungswerkzeug wird das nicht beschränkende Beispiel eines Anwendungs-Servers (z. B. des WAS 855) in Betracht gezogen. In einigen Fällen wird ein handelsübliches Erkennungswerkzeug erweitert, um einen dedizierten Verwaltungsknoten (z. B. Server) mit anderen Konfigurationen als bei den anderen WAS-Knoten zu erkennen. Durch Feststellen, dass ein WAS auf einem Server vorhanden ist, und durch Analysieren der Konfiguration des Servers stellt das erweiterte Erkennungswerkzeug in diesem Fall fest, dass es sich bei dem bestimmten Server um einen Verwaltungsknoten handelt. Nachdem festgestellt worden ist, dass es sich bei dem bestimmten Server um einen Verwaltungsknoten handelt, kann durch weitere Analyse der Konfiguration erkannt werden, dass der Verwaltungsknoten sonstige Server in einer Verbundkonfiguration verwaltet. Ein solcher WAS-Verwaltungsknoten und die Server, die er verwaltet, sind gut für eine Verlagerung in eine Cloud geeignet.
  • Es wird auch das nicht beschränkende Beispiel der Datenbank-Software ORACLE (eingetragene Marke von Oracle International Corporation, Redwood City, CA 94065 USA) (oder anderer) betrachtet. Es kann zum Beispiel der WAS-Anwendungs-Server 855 vorhanden sein, der die Software ORACLE verwendet. Die WAS-Server würden mit einem ORACLE-Verbund zusammenwirken. Hier handelt es sich bei dem WAS-Server möglicherweise nicht speziell um einen Verwaltungsknoten, aber er stellt Datenbankverbindungen zu einem Verbund von Datenbanken her, die in ihren Konfigurationsdateien zu sehen sind. Diese Verbundbildung deutet wiederum auf eine gute Verlagerbarkeit in eine Cloud hin.
  • So wird bei einer oder mehreren Ausführungsformen ein vorhandenes Erkennungswerkzeug wie zum Beispiel das oben genannte Werkzeug GALAPAGOS erweitert, um eine Verbundbildung zu identifizieren, wie in den beiden vorhergehenden Beispielen. Angesichts der Lehren hierin ist der Fachmann in der Lage, ein vorhandenes Erkennungswerkzeug zu modifizieren, um z. B. Konfigurationsdateien zu untersuchen, um eine Verbundbildung und dergleichen zu identifizieren und so gute Kandidaten für eine Verlagerung in eine Cloud ausfindig zu machen.
  • Es wird angenommen, dass in dem nicht beschränkenden Beispiel eines Verbunds von Anwendungs-Servern mit einem Verwaltungsknoten zwei Server und ein Verwaltungsknoten gefunden und migriert wurden, und nun soll der Anwendungs-Server-Verbund durch Hinzufügen eines dritten Servers vergrößert werden (es wird angenommen, dass dies durch die ARM festgelegt wurde). Die ARM muss einen aktuellen Anwendungs-Server kopieren, um einen dritten zu erhalten, der den beiden vorhandenen ähnelt; außerdem muss der Verwaltungsknoten aktualisiert werden, damit er Kenntnis darüber erlangt, dass nun drei Server statt zwei vorhanden sind. Das Kopieren ist ein festgelegter Vorgang (wobei angenommen wird, dass die Web-Server zustandslos sind). Der Verwaltungsknoten könnte zum Beispiel über eine API (application programming interface, Anwendungsprogrammierschnittstelle) aktualisiert werden; es könnte ein Befehl an ihn gesendet werden, einen dritten Server in seinen Verbund aufzunehmen. Alternativ könnte die Konfigurationsdatei, in der die Erkennung vorgenommen wurde, direkt aktualisiert werden. Zum Beispiel Kopieren der Konfigurationsdatei, Hineinkopieren des Namens des dritten Servers, dann Umschreiben als Konfigurationsdatei für drei Web-Server und anschließendes Zurückschreiben der umgeschriebenen Datei in den Verwaltungsknoten.
  • Im Hinblick auf eine Datenbankanwendung müssen die Datenbanken an sich Kenntnis darüber haben, dass sie ihren Inhalt untereinander replizieren; folglich ist eine gewisse Konfiguration der Datenbanken zum Replizieren untereinander vorhanden. Des Weiteren haben die WAS-Knoten oder dergleichen Kenntnis von dem Verbund, und folglich müssen die Anwendungs-Server ebenfalls aktualisiert werden – anfänglich ist bekannt, dass eine der beiden Datenbanken verwendet werden kann – eine Aktualisierung ist erforderlich, um darauf hinzuweisen, dass nun eine von drei Datenbanken verwendet werden kann.
  • Vorgänge wie die eben beschriebenen (Verwendung einer API und/oder Ändern von Konfigurationsdateien) sind im Wesentlichen vorgegeben, sodass eine automatische Code-Erzeugungseinheit (der BAC-Konstruktor 906) so geschrieben werden kann, dass sie die Änderungen erzeugt (d. h. die angepasste BAC wie zum Beispiel eine angepasste ARM erzeugt). Das erweiterte Erkennungswerkzeug 904 kann zum Beispiel einen WAS-Verbund und einen ORACLE-Verbund erkennen, die als leicht in eine Cloud verlagerbare Anwendungen identifiziert werden. Das CASE-Modul 906 erzeugt nun die ARM 908 für einen WAS-Verbund und einen ORACLE-Verbund. Die ARM-Vorlagen 912 beinhalten generischen Code für verschiedene Vorgänge, die für jede angepasste ARM erforderlich sind; beispielsweise Zeilen generischen Codes zum Vergrößern eines WAS-Verbunds. Diese Zeilen generischen Codes beinhalten Leerzeichen, Platzhalterwerte („X”) oder dergleichen, um den aktuellen bestimmten WAS-Verbund, einen oder mehrere Knoten usw. anzugeben, die im jeweiligen Fall relevant sind; diese werden durch das BAC-Konstruktormodul 906 mit den korrekten Werten befüllt. Der BAC-Vorlagenspeicher 912 beinhaltet folglich generische (leere) Vorlagen, um den Umfang der Ressourcen für die relevante(n) Anwendung(en), z. B. einen WAS-Verbund, einen ORACLE-Verbund, zu erhöhen oder zu verringern. Das BAC-Konstruktormodul 906 instanziiert auf diese Weise bestimmte Instanzen der generischen Vorlagen 912, die die bestimmten Maschinen, Adressen usw. beinhalten, für die relevante Migration. Wenn zum Beispiel der WAS-Verwaltungsknoten WASND1 ist und „X” der Platzhalterwert in der Vorlage ist, der den WAS-Verwaltungsknoten darstellt, instanziiert das BAC-Konstruktormodul eine Instanz des Codes, der die Ressourcen des WAS-Verbunds erhöht, wobei „X” durch „WASND1” ersetzt wird.
  • Bei einer oder mehreren Ausführungsformen beinhaltet der Schritt zum Analysieren der Infrastrukturen der Vielzahl von vorhandenen Anwendungen der Entität zum Identifizieren zumindest einer der Infrastrukturen der Vielzahl von vorhandenen Anwendungen, die vorhandene Unterstrukturen beinhaltet, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen, ein Identifizieren der Unterstrukturen durch Identifizieren von Replikationsverwaltungsknoten aus Konfigurationsdateien der Replikationsverwaltungsknoten; ein Identifizieren von Konfigurationen von replizierten Servern; und/oder ein Identifizieren von Konfigurationen sonstiger Server, die eine Verbindung mit den replizierten Servern herstellen.
  • Einzelheiten eines beispielhaften Systems und Herstellungsgegenstands
  • Wie für einen Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Erfindung eine reine Hardware-Ausführungsform, eine reine Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder eine Ausführungsform annehmen, in der Software- und Hardware-Aspekte kombiniert werden, die sämtlich hierin verallgemeinernd als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert wird, auf denen computerlesbarer Programmcode verkörpert ist.
  • Eine oder mehrere Ausführungsformen der Erfindung oder von Elementen davon können in Form einer Vorrichtung realisiert werden, die einen Speicher und zumindest einen Prozessor beinhaltet, der mit dem Speicher verbunden und in der Lage ist, beispielhafte Verfahrensschritte durchzuführen.
  • Eine oder mehrere Ausführungsformen können eine Software nutzen, die auf einem Universalcomputer oder einem Arbeitsplatzrechner ausgeführt wird. Unter Bezugnahme auf 1 könnte bei einer solchen Realisierung zum Beispiel der Prozessor 16, der Speicher 28 und die Eingabe-/Ausgabe-Schnittstelle 22 zu der Anzeige 24 und einer oder mehreren externen Einheiten 14 wie zum Beispiel einer Tastatur, einer Zeigeeinheit oder dergleichen eingesetzt werden. Der Begriff „Prozessor” soll so, wie er hierin verwendet wird, eine beliebige Verarbeitungseinheit beinhalten, wie zum Beispiel eine, die eine CPU (central processing unit, Zentralverarbeitungseinheit) und/oder sonstige Formen einer Verarbeitungsschaltung beinhaltet. Des Weiteren kann sich der Begriff „Prozessor” auf mehr als einen einzelnen Prozessor beziehen. Der Begriff „Speicher” soll einen Speicher beinhalten, der einem Prozessor oder einer CPU zugehörig ist, wie zum Beispiel den RAM (random access memory) 30, einen ROM (read only memory), eine feste Speichereinheit (z. B. die Festplatte 34), eine Wechselspeichereinheit (z. B. eine Diskette), einen Flash-Speicher und dergleichen. Darüber hinaus soll der Begriff „Eingabe-/Ausgabe-Schnittstelle” so, wie er hierin verwendet wird, zum Beispiel einen oder mehrere Mechanismen zum Eingeben von Daten in die Verarbeitungseinheit (etwa eine Maus) und einen oder mehrere Mechanismen zum Bereitstellen von Ergebnissen in Betracht ziehen, die der Verarbeitungseinheit zugehörig sind (etwa einen Drucker). Der Prozessor 16, der Speicher 28 und die Eingabe-/Ausgabe-Schnittstelle 22 können zum Beispiel durch den Bus 18 als Teil der Datenverarbeitungseinheit 12 miteinander verbunden sein. Geeignete Verbindungen, beispielsweise über den Bus 18, können auch für die Netzwerk-Schnittstelle 20 wie etwa eine Netzwerkkarte, die dazu bereitgestellt wird, eine Verbindung mit einem Computernetzwerk herzustellen, und für eine Medienschnittstelle wie etwa eine Diskette oder ein CD-ROM-Laufwerk bereitgestellt werden, die dazu bereitgestellt werden kann, eine Verbindung mit geeigneten Medien herzustellen.
  • Dementsprechend kann eine Computer-Software, die Anweisungen oder Code zum Durchführen der Methoden der Erfindung beinhaltet, wie sie hierin beschrieben werden, in einer oder mehreren der zugehörigen Speichereinheiten (zum Beispiel einem ROM, einem festen oder einem Wechselspeicher) gespeichert werden und, wenn sie zur Nutzung bereit ist, durch eine CPU teilweise oder vollständig geladen werden (zum Beispiel in einen RAM) und realisiert werden. Zu einer solchen Software könnte Firmware, residente Software, Mikrocode und dergleichen zählen, ohne auf diese beschränkt zu sein.
  • Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, beinhaltet zumindest den Prozessor 16, der direkt bzw. indirekt durch den Systembus 18 mit den Speicherelementen 28 verbunden ist. Die Speicherelemente können einen lokalen Speicher, der während der tatsächlichen Realisierung des Programmcodes eingesetzt wird, einen Massenspeicher und die Cachespeicher 32 beinhalten, die eine zeitweilige Speicherung von zumindest einem Teil des Programmcodes bereitstellen, um die Häufigkeit zu verringern, mit der der Code während der Realisierung aus dem Massenspeicher abgerufen werden muss.
  • Eingabe-/Ausgabe- oder E/A-Einheiten (zum Beispiel Tastaturen, Anzeigen, Zeigeeinheiten und dergleichen, ohne auf diese beschränkt zu sein) können entweder direkt oder durch zwischengeschaltete E/A-Steuereinheiten mit dem System verbunden sein.
  • Die Netzwerkadapter 20 können ebenfalls mit dem System verbunden sein, um dem Datenverarbeitungssystem zu ermöglichen, durch dazwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten verbunden zu werden. Modems, Kabelmodems und Ethernet-Karten sind nur einige der gegenwärtig verfügbaren Arten von Netzwerkadaptern.
  • Ein „Server” beinhaltet so, wie der Begriff hierin wie auch in den Ansprüchen verwendet wird, ein physisches Datenverarbeitungssystem (zum Beispiel das System 12, wie in 1 dargestellt), das als Server-Programm ausgeführt wird. Es versteht sich, dass ein solcher physischer Server eine Anzeige und eine Tastatur beinhalten kann.
  • Wie angemerkt, können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert wird, auf denen computerlesbarer Programmcode verkörpert ist. Es kann eine beliebige Kombination eines oder mehrerer computerlesbarer Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine solche Vorrichtung oder Einheit oder um eine beliebige geeignete Kombination aus Obigen handeln, ohne auf diese beschränkt zu sein. Zu konkreteren Beispielen (einer nicht erschöpfenden Liste) des computerlesbaren Speichermediums würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (random access memory, RAM), ein Festwertspeicher (read-only memory, ROM), ein löschbarer, programmierbarer Festwertspeicher (erasable programmable read-only memory, EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine Magnetspeichereinheit oder eine beliebige geeignete Kombination der Obigen. Im Rahmen dieses Dokuments kann ein computerlesbares Speichermedium jedes physische Medium sein, das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder Einheit zur Ausführung von Anweisungen bzw. in Verbindung mit diesen enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal, in dem computerlesbarer Programmcode verkörpert wird, zum Beispiel im Basisband oder als Teil einer Trägerwelle beinhalten. Ein solches sich ausbreitendes Signal kann eine Vielfalt von Formen annehmen, darunter eine elektromagnetische Form, eine optische Form oder eine beliebige geeignete Kombination derselben, ohne auf diese beschränkt zu sein. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder Einheit zur Ausführung von Anweisungen bzw. in Verbindung mit diesen austauschen, verbreiten oder transportieren kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann mithilfe eines beliebigen geeigneten Mediums übertragen werden, zum Beispiel über Funk, Kabel, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder über eine beliebige geeignete Kombination der Obigen, ohne auf diese beschränkt zu sein.
  • Computerprogrammcode zum Ausführen von Vorgängen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben werden, zum Beispiel in einer objektorientierten Programmiersprache wie etwa Java, Smalltalk, C++ oder dergleichen und in herkömmlichen verfahrensorientierten Programmiersprachen wie zum Beispiel der Programmiersprache „C” oder ähnlichen Programmiersprachen oder in einer Skriptsprache wie etwa Perl. In einigen Fällen kann ein Optimierungs-Solver als Teilkomponente verwendet werden, z. B. ILOG CPLEX (ein Hochleistungs-Solver für mathematische Programmierung für lineare Programmierung, gemischt-ganzzahlige Programmierung und quadratische Programmierung, der bei International Business Machines Corporation, Armonk, New York, USA erhältlich ist). Allgemein ausgedrückt, kann der Programmcode vollständig auf dem Computer des Benutzers, zum Teil auf dem Computer des Benutzers, als eigenständiges Software-Paket, zum Teil auf dem Computer des Benutzers und zum Teil auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art von Netzwerk verbunden sein, zum Beispiel durch ein lokales Netzwerk (local area network, LAN) oder ein Weitverkehrs-Netzwerk (wide area network, WAN), oder die Verbindung kann mit einem externen Computer (zum Beispiel über das Internet mithilfe eines Internet-Diensteanbieters) hergestellt werden. Bei einer oder mehreren Ausführungsformen ist ein erheblicher Teil des Codes der Anwendungs-Ressourcen-Verwaltungseinheit zugehörig; er kann in der Cloud oder außerhalb ausgeführt werden. In zumindest einigen Fällen ist es wahrscheinlicher, dass er sich auf einem Server befindet als auf einem Endbenutzersystem befindet (wenn überhaupt, dann auf einem Endbenutzersystem des Anwendungseigners), es ist jedoch nicht ausgeschlossen, dass der Anwendungseigner ihn von einem Laptop oder dergleichen aus ausführen würde. Im Hinblick auf das erweiterte Erkennungswerkzeug 904 wird zumindest ein Teil (z. B. Skripte oder Agenten) auf dem traditionellen System 902 ausgeführt, wohingegen ein weiterer Teil auf einem dedizierten Server ausgeführt wird. Das gesamte erweiterte Erkennungswerkzeug könnte jedoch auf einem dedizierten Server mit einer Verbindung oder mit Verbindungen zu dem traditionellen System ausgeführt werden. In einigen Fällen könnte das gesamte erweiterte Erkennungswerkzeug auf dem traditionellen System ausgeführt werden. Im Hinblick auf das BAC-Konstruktormodul wird dies üblicherweise auf einem dedizierten Server ausgeführt. Es könnte sich jedoch auch in einer Cloud oder sogar auf dem traditionellen System befinden (wobei letzteres für besser geeignet gehalten wird, wenn die interne IT-Abteilung eines Unternehmens die gesamte Prozedur ausführt, da ein externer Berater das BAC-Konstruktormodul wahrscheinlich auf seinem eigenen dedizierten Server ausführen möchte).
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computerprogrammanweisungen realisiert werden kann/können. Diese Computerprogrammanweisungen können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Realisieren der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten so steuern kann, dass sie in einer bestimmten Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand (article of manufacture) erzeugen, der Anweisungen beinhaltet, die die/den Funktion/Vorgang realisieren, die/der in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.
  • Die Computerprogrammanweisungen können außerdem auf einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten geladen werden, um zu bewirken, dass eine Reihe von Schritten eines Vorgangs auf dem Computer, einer sonstigen programmierbaren Vorrichtung oder sonstigen Einheiten ausgeführt wird, um einen computerrealisierten Prozess zu erzeugen, sodass die auf dem Computer oder einer sonstigen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse bereitstellen, um die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Vorgänge zu realisieren.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Abschnitt eines Codes darstellen, der einen oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen logischen Funktion(en) aufweist. Es ist außerdem zu beachten, dass bei einigen alternativen Realisierungen die in dem Block vermerkten Funktionen in einer anderen Reihenfolge als in den Figuren vermerkt auftreten können. Beispielsweise können je nach einbezogener Funktionalität zwei nacheinander dargestellte Blöcke sogar im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können bisweilen in der umgekehrten Reihenfolge ausgeführt werden. Es ist ferner zu beachten, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne und Kombinationen von Blöcken in den Blockschaubildern und/oder in den Ablaufplänen durch Spezialsysteme auf der Grundlage von Hardware, die die angegebenen Funktionen oder Vorgänge ausführen, oder durch Kombinationen von Spezial-Hardware und Computeranweisungen realisiert werden können.
  • Es wird darauf hingewiesen, dass beliebige der hierin beschriebenen Verfahren einen zusätzlichen Schritt zum Bereitstellen eines Systems beinhalten können, das verschiedene Software-Module aufweist, die auf einem computerlesbaren Speichermedium verkörpert werden; die Module können zum Beispiel beliebige oder alle der in den Blockschaubildern dargestellten oder hierin beschriebenen Elemente beinhalten; beispielsweise, und ohne dabei einschränkend zu wirken, ein Modul einer Anwendungs-Ressourcen-Verwaltungseinheit mit einem oder mehreren Teilmodulen wie zum Beispiel einem Richtlinienteilmodul, einem Verwaltungsteilmodul, einem Steuerteilmodul und einem Interpretationsteilmodul, wie in 6 veranschaulicht. In einem weiteren Aspekt könnten das geeignete (erweiterte) Erkennungswerkzeugmodul 904, das Migrationswerkzeugmodul 914, das BAC-Konstruktormodul 906 und ein Modul einer Komponente für die Beweglichkeit der Geschäftsabläufe (z. B. die angepasste BAC 908 wie zum Beispiel eine angepasste ARM) zusammen mit einer oder mehreren sonstigen, in 9 dargestellten Komponenten eingesetzt werden. Die Verfahrensschritte können anschließend mithilfe der verschiedenen Software-Module und/oder Teilmodule des Systems, wie oben beschrieben, ausgeführt oder auf andere Weise vereinfacht werden, die auf einem oder mehreren Hardware-Prozessoren wie zum Beispiel 16 ausgeführt werden. Beispielsweise könnte der Analyseschritt 702 durch das Erkennungswerkzeugmodul ausgeführt werden, das auf zumindest einem Hardware-Prozessor ausgeführt wird; der Auswahlschritt 704 könnte durch das Erkennungswerkzeugmodul vereinfacht werden, das auf dem zumindest einen Hardware-Prozessor ausgeführt wird (zum Beispiel durch Unterstützen eines menschlichen Experten oder eines sonstigen menschlichen Benutzers); der Migrationsschritt 706 könnte durch das Migrationswerkzeugmodul ausgeführt werden, das auf dem zumindest einen Hardware-Prozessor ausgeführt werden; und der Zusammenstellungsschritt 708 könnte durch das BAC-Konstruktormodul ausgeführt werden, das auf dem zumindest einen Hardware-Prozessor ausgeführt wird. Anschließend wird Schritt 710 durch die Komponente für die Beweglichkeit der Geschäftsabläufe in Form eines Moduls für die Komponente für die Beweglichkeit der Geschäftsabläufe ausgeführt, das auf dem zumindest einen Hardware-Prozessor ausgeführt wird. Bei einem bevorzugen Ansatz beinhaltet der zumindest eine Prozessor zumindest zwei Prozessoren; die Schritte vor 710 werden durch einen ersten Prozessor durchgeführt, und Schritt 710 wird dann durch die Komponente für die Beweglichkeit der Geschäftsabläufe in Form eines Moduls für die Komponente für die Beweglichkeit der Geschäftsabläufe ausgeführt, das auf einem zweiten Prozessor ausgeführt wird, da Schritt 710 kein Teil des Migrationsprozesses ist, sondern es sich um die eigentliche migrierte Anwendung handelt, die in der neuen Umgebung ausgeführt wird. Bei den ersten und/oder zweiten Prozessoren könnte es sich in einigen Fällen jeweils um mehrere Prozessoren handeln. Des Weiteren kann ein Computerprogrammprodukt ein computerlesbares Speichermedium mit einem Code beinhalten, der so gestaltet ist, dass er realisiert wird, um einen oder mehrere der hierin beschriebenen Verfahrensschritte auszuführen, darunter die Bereitstellung des Systems mit den verschiedenen 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 in (einer) anwendungsspezifischen integrierten Schaltung(en) (application specific integrated circuit(s), ASICs), Funktionsschaltungen, einem oder mehreren in geeigneter Weise programmierten digitalen Universalcomputern mit zugehörigem Speicher und dergleichen. Angesichts der hierin bereitgestellten Lehren der Erfindung ist ein Fachmann in der Lage, sonstige Realisierungen der Komponenten der Erfindung in Betracht zu ziehen.
  • Die hierin verwendete Terminologie dient lediglich der Beschreibung bestimmter Ausführungsformen und soll die Erfindung nicht beschränken. So, wie sie hierin verwendet werden, sollen die Singularformen „ein”, „eine” und „der”, „die”, „das” auch die Pluralformen beinhalten, sofern dies aus dem Kontext nicht eindeutig anders hervorgeht. Es versteht sich darüber hinaus, dass die Begriffe „aufweist” und/oder „aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen und/oder Komponenten bezeichnen, jedoch nicht das Vorhandensein oder die Beifügung von einem/einer oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen davon ausschließen.
  • Die entsprechenden Strukturen, Materialien, Vorgänge und Entsprechungen aller Mittel oder Schritt-plus-Funktion-Elemente in den nachstehenden Ansprüchen sollen jede Struktur, jedes Material bzw. jeden Vorgang zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen als ausdrücklich beansprucht beinhalten. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Beschreibung, ist jedoch nicht erschöpfend oder auf die Erfindung in der dargestellten Form beschränkt gemeint. Viele Modifizierungen und Varianten sind für Fachleute ersichtlich, ohne vom Umfang und Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erläutern und um anderen Fachleuten das Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen, für den in Betracht gezogenen Einsatz geeigneten Modifizierungen zu ermöglichen.

Claims (25)

  1. Verfahren, das aufweist: Analysieren von Infrastrukturen einer Vielzahl von vorhandenen Anwendungen einer Entität, um zumindest eine der Infrastrukturen der Vielzahl von vorhandenen Anwendungen zu identifizieren, die vorhandene Unterstrukturen aufweist, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen; Auswählen der zumindest einen der Infrastrukturen zur Migration zu einer Cloud, wobei die Cloud zumindest eine Infrastructure-as-a-Service-Cloud und/oder eine Platform-as-a-Service-Cloud aufweist; Migrieren der vorhandenen Unterstrukturen der zumindest einen der Infrastrukturen zu der Cloud ohne Änderung auf der Anwendungsebene; Zusammenstellen einer Komponente für die Beweglichkeit der Geschäftsabläufe, die dazu eingerichtet ist, ein Erweitern und Einschränken von Ressourcen der Cloud zu steuern, die für die zumindest eine der Infrastrukturen bestimmt sind; und Erweitern und Einschränken der Ressourcen der Cloud, die für die zumindest eine der Infrastrukturen bestimmt sind, mithilfe der Komponente für die Beweglichkeit der Geschäftsabläufe.
  2. Verfahren nach Anspruch 1, das des Weiteren ein Ausführen eines Infrastruktur-Erkennungswerkzeugs aufweist, um Daten für den Analyseschritt zu beziehen.
  3. Verfahren nach Anspruch 1, wobei die Unterstrukturen der zumindest einen der Infrastrukturen, die in dem Identifizierungsschritt identifiziert worden ist, Verbünde aufweisen.
  4. Verfahren nach Anspruch 3, wobei die Verbünde der zumindest einen der Infrastrukturen, die in dem Identifizierungsschritt identifiziert worden ist, von Web-Server-Verbünden, Anwendungs-Server-Verbünden und Datenbankverbünden zumindest eines aufweisen.
  5. Verfahren nach Anspruch 1, wobei die Komponente für die Beweglichkeit der Geschäftsabläufe, die in dem Zusammenstellungsschritt zusammengestellt worden ist, des Weiteren dazu eingerichtet wird, Veränderungen in einem Bedarf zu bewerten, die zu dem Erweitern und Einschränken der Ressourcen der Cloud führen, die für die zumindest eine der Infrastrukturen bestimmt sind, das des Weiteren ein Bewerten der Veränderungen in dem Bedarf aufweist.
  6. Verfahren nach Anspruch 1, wobei der Schritt zum Analysieren der Infrastrukturen der Vielzahl von vorhandenen Anwendungen der Entität, um die zumindest eine der Infrastrukturen der Vielzahl von vorhandenen Anwendungen zu identifizieren, die vorhandene Unterstrukturen aufweist, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen, ein Identifizieren der Unterstrukturen durch zumindest eines der Folgenden aufweist: Identifizieren von Replikationsverwaltungsknoten aus Konfigurationsdateien der Replikationsverwaltungsknoten; Identifizieren von Konfigurationen von replizierten Servern; und Identifizieren von Konfigurationen sonstiger Server, die eine Verbindung mit den replizierten Servern herstellen.
  7. Verfahren nach Anspruch 1, wobei der Zusammenstellungsschritt aufweist: Identifizieren, in einem Vorlagenspeicher einer Komponente für die Beweglichkeit der Geschäftsabläufe, zumindest einer generischen Vorlage, die Anweisungen zum Ausführen eines Erweiterns und/oder eines Einschränkens von Ressourcen der Cloud aufweist, die für die zumindest eine der Infrastrukturen bestimmt werden sollen; Instanziieren einer bestimmten Instanz der zumindest einen generischen Vorlage durch Befüllen der zumindest einen generischen Vorlage mit spezifischen Daten, die die zumindest eine der Infrastrukturen betreffen; und Zusammenstellen, zumindest aus der bestimmten Instanz, der Komponente für die Beweglichkeit der Geschäftsabläufe.
  8. Verfahren nach Anspruch 1, wobei die Cloud in dem Migrationsschritt die Infrastructure-as-a-Service-Cloud aufweist.
  9. Verfahren nach Anspruch 8, wobei das Erweitern und Einschränken der Ressourcen ein Erweitern und Einschränken mithilfe des vorhandenen Replikationsmechanismus während einer Verwendung einer Infrastruktur der Infrastructure-as-a-Service-Cloud aufweist, um von einem Bereitstellen, Löschen, Versteckthalten und Wiederherstellen entsprechender Betriebssystemabbilder zumindest eines auszuführen.
  10. Verfahren nach Anspruch 1, wobei die Cloud in dem Migrationsschritt die Platform-as-a-Service-Cloud aufweist.
  11. Verfahren nach Anspruch 10, wobei das Erweitern und Einschränken der Ressourcen zumindest ein Erweitern durch Bereitstellen von Abbildern, die eine Basis-Software aufweisen, die den Unterstrukturen zugehörig ist, in der Platform-as-a-Service-Cloud aufweist.
  12. Verfahren nach Anspruch 1, wobei das Erweitern und Einschränken der Ressourcen der Cloud, die für die zumindest eine der Infrastrukturen bestimmt sind, mithilfe der Komponente für die Beweglichkeit der Geschäftsabläufe auf einer Ebene der Unterstrukturen ausgeführt wird.
  13. Verfahren nach Anspruch 12, wobei das Ausführen des Erweiterns und Einschränkens auf der Ebene der Unterstrukturen auf einer Leistungsüberwachung der Unterstrukturen beruht.
  14. Verfahren nach Anspruch 12, wobei das Ausführen des Erweiterns und Einschränkens auf der Ebene der Unterstrukturen auf Leistungsprognosen für die Unterstrukturen beruht.
  15. Verfahren nach Anspruch 1, das des Weiteren ein Bereitstellen eines Systems aufweist, wobei das System verschiedene Software-Module aufweist, wobei jedes der verschiedenen Software-Module auf einem computerlesbaren Speichermedium verkörpert wird und wobei die verschiedenen Software-Module ein Erkennungswerkzeugmodul, ein Migrationswerkzeugmodul und ein Konstruktormodul für eine Komponente für die Beweglichkeit der Geschäftsabläufe aufweisen; wobei: der Analyseschritt durch das Erkennungswerkzeugmodul ausgeführt wird, das auf zumindest einem Hardware-Prozessor ausgeführt wird; der Auswahlschritt durch das Erkennungswerkzeugmodul vereinfacht wird, das auf dem zumindest einen Hardware-Prozessor ausgeführt wird; der Migrationsschritt durch das Migrationswerkzeugmodul ausgeführt wird, das auf dem zumindest einen Hardware-Prozessor ausgeführt wird; und der Zusammenstellungsschritt durch das Konstruktormodul für die Komponente für die Beweglichkeit der Geschäftsabläufe ausgeführt wird, das auf dem zumindest einen Hardware-Prozessor ausgeführt wird.
  16. Herstellungsgegenstand, der ein Computerprogrammprodukt aufweist, wobei das Computerprogrammprodukt aufweist: ein nichttransitorisches, physisches, computerlesbares Speichermedium, das computerlesbaren Programmcode nichttransitorisch speichert, wobei der computerlesbare Programmcode aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, Infrastrukturen einer Vielzahl von vorhandenen Anwendungen einer Entität zu analysieren, um zumindest eine der Infrastrukturen der Vielzahl von vorhandenen Anwendungen zu identifizieren, die vorhandene Unterstrukturen aufweist, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen; computerlesbaren Programmcode, der dazu eingerichtet ist, ein Auswählen der zumindest einen der Infrastrukturen zur Migration zu einer Cloud zu vereinfachen, wobei die Cloud zumindest eine Infrastructure-as-a-Service-Cloud und/oder eine Plafform-as-a-Service-Cloud aufweist; computerlesbaren Programmcode, der dazu eingerichtet ist, ein Migrieren der vorhandenen Unterstrukturen der zumindest einen der Infrastrukturen zu der Cloud ohne Änderung auf der Anwendungsebene zu vereinfachen; und computerlesbaren Programmcode, der dazu eingerichtet ist, eine Komponente für die Beweglichkeit der Geschäftsabläufe zusammenzustellen, die dazu eingerichtet ist, ein Erweitern und Einschränken von Ressourcen der Cloud zu steuern, die für die zumindest eine der Infrastrukturen bestimmt sind.
  17. Herstellungsgegenstand nach Anspruch 16, wobei die Unterstrukturen der zumindest einen der Infrastrukturen, die durch den computerlesbaren Programmcode identifiziert worden ist, der dazu eingerichtet ist, die Infrastrukturen zu analysieren, Verbünde aufweisen.
  18. Herstellungsgegenstand nach Anspruch 17, wobei die Verbünde der zumindest einen der Infrastrukturen, die durch den computerlesbaren Programmcode identifiziert worden ist, der dazu eingerichtet ist, die Infrastrukturen zu analysieren, von Web-Server-Verbünden, Anwendungs-Server-Verbünden und Datenbankverbünden zumindest eines aufweisen.
  19. Herstellungsgegenstand nach Anspruch 16, wobei die Komponente für die Beweglichkeit der Geschäftsabläufe, die durch den computerlesbaren Programmcode zusammengestellt worden ist, der zum Zusammenstellen eingerichtet ist, des Weiteren dazu eingerichtet ist, Veränderungen in einem Bedarf zu bewerten, die zu dem Erweitern und Einschränken der Ressourcen der Cloud führen, die für die zumindest eine der Infrastrukturen bestimmt sind.
  20. Herstellungsgegenstand nach Anspruch 19, wobei der computerlesbare Programmcode, der dazu eingerichtet ist, die Infrastrukturen der Vielzahl von vorhandenen Anwendungen der Entität zu analysieren, um zumindest eine der Infrastrukturen der Vielzahl von vorhandenen Anwendungen zu identifizieren, die vorhandene Unterstrukturen aufweist, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen, computerlesbaren Programmcode aufweist, der dazu eingerichtet ist, die Unterstrukturen durch zumindest eines der Folgenden zu identifizieren: Identifizieren von Replikationsverwaltungsknoten aus Konfigurationsdateien der Replikationsverwaltungsknoten; Identifizieren von Konfigurationen von replizierten Servern; und Identifizieren von Konfigurationen sonstiger Server, die eine Verbindung mit den replizierten Servern herstellen.
  21. Herstellungsgegenstand nach Anspruch 19, wobei der computerlesbare Programmcode, der zum Zusammenstellen eingerichtet ist, aufweist: computerlesbaren Programmcode, der dazu eingerichtet ist, in einem Vorlagenspeicher einer Komponente für die Beweglichkeit der Geschäftsabläufe zumindest eine generische Vorlage zu identifizieren, die Anweisungen zum Ausführen eines Erweiterns und/oder eines Einschränkens von Ressourcen der Cloud aufweist, die für die zumindest eine der Infrastrukturen bestimmt werden sollen; computerlesbaren Programmcode, der dazu eingerichtet ist, eine bestimmte Instanz der zumindest einen generischen Vorlage durch Befüllen der zumindest einen generischen Vorlage mit spezifischen Daten zu instanziieren, die die zumindest eine der Infrastrukturen betreffen; und computerlesbaren Programmcode, der dazu eingerichtet ist, die Komponente für die Beweglichkeit der Geschäftsabläufe zumindest aus der bestimmten Instanz zusammenzustellen.
  22. Vorrichtung, die aufweist: einen Speicher; und zumindest einen Prozessor, der mit dem Speicher verbunden ist und in der Lage ist zu einem: Analysieren von Infrastrukturen einer Vielzahl von vorhandenen Anwendungen einer Entität, um zumindest eine der Infrastrukturen der Vielzahl von vorhandenen Anwendungen zu identifizieren, die vorhandene Unterstrukturen aufweist, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen; Vereinfachen eines Auswählens der zumindest einen der Infrastrukturen zur Migration zu einer Cloud, wobei die Cloud zumindest eine Infrastructure-as-a-Service-Cloud und/oder eine Platform-as-a-Service-Cloud aufweist; Vereinfachen eines Migrierens der vorhandenen Unterstrukturen der zumindest einen der Infrastrukturen zu der Cloud ohne Änderung auf der Anwendungsebene; Zusammenstellen einer Komponente für die Beweglichkeit der Geschäftsabläufe, um ein Erweitern und Einschränken von Ressourcen der Cloud zu steuern, die für die zumindest eine der Infrastrukturen bestimmt sind; und Ausführen der Komponente für die Beweglichkeit der Geschäftsabläufe, um die Ressourcen der Cloud zu erweitern und einzuschränken, die für die zumindest eine der Infrastrukturen bestimmt sind.
  23. Vorrichtung nach Anspruch 22, die des Weiteren eine Vielzahl verschiedener Software-Module aufweist, wobei jedes der verschiedenen Software-Module auf einem computerlesbaren Speichermedium verkörpert ist und wobei die verschiedenen Software-Module ein Erkennungswerkzeugmodul, ein Migrationswerkzeugmodul und ein Konstruktormodul für eine Komponente für die Beweglichkeit der Geschäftsabläufe aufweisen; wobei: der zumindest eine Prozessor in der Lage ist, die Infrastrukturen durch Ausführen des Erkennungswerkzeugmoduls zu analysieren; der zumindest eine Prozessor in der Lage ist, das Auswählen der zumindest einen der Infrastrukturen zur Migration zu der Cloud durch Ausführen des Erkennungswerkzeugmoduls zu vereinfachen; der zumindest eine Prozessor in der Lage ist, das Migrieren der vorhandenen Unterstrukturen der zumindest einen der Infrastrukturen zu der Cloud durch Ausführen des Migrationswerkzeugmoduls zu vereinfachen; und der zumindest eine Prozessor in der Lage ist, die Komponente für die Beweglichkeit der Geschäftsabläufe durch Ausführen des Konstruktormoduls für die Komponente für die Beweglichkeit der Geschäftsabläufe zusammenzustellen.
  24. Verfahren, das aufweist: Beziehen einer Spezifikation zumindest einer Infrastruktur einer Vielzahl von Infrastrukturen einer Vielzahl von vorhandenen Anwendungen einer Entität, die zu einer Cloud migriert werden soll, wobei die zumindest eine Infrastruktur vorhandene Unterstrukturen aufweist, die eine Replikation einzelner Teile über einen vorhandenen Replikationsmechanismus ermöglichen; Identifizieren, in einem Vorlagenspeicher einer Komponente für die Beweglichkeit der Geschäftsabläufe, zumindest einer generischen Vorlage, die Anweisungen zum Ausführen eines Erweiterns und/oder eines Einschränkens von Ressourcen der Cloud aufweist, die für die zumindest eine Infrastruktur bestimmt werden sollen; Instanziieren einer bestimmten Instanz der zumindest einen generischen Vorlage durch Befüllen der zumindest einen generischen Vorlage mit spezifischen Daten, die die zumindest eine Infrastruktur betreffen; und Zusammenstellen, zumindest aus der bestimmten Instanz, einer Komponente für die Beweglichkeit der Geschäftsabläufe, die dazu eingerichtet ist, das Erweitern und/oder Einschränken der Ressourcen der Cloud zu steuern, die für die zumindest eine Infrastruktur bestimmt sind.
  25. Verfahren nach Anspruch 24, das des Weiteren ein Bereitstellen eines Systems aufweist, wobei das System verschiedene Software-Module aufweist, wobei jedes der verschiedenen Software-Module auf einem computerlesbaren Speichermedium verkörpert wird und wobei die verschiedenen Software-Module ein Konstruktormodul für eine Komponente für die Beweglichkeit der Geschäftsabläufe und ein Vorlagenmodul einer Anwendungs-Ressourcen-Verwaltungseinheit aufweisen; wobei: die Schritte zum Beziehen, Instanziieren und Zusammenstellen durch das Konstruktormodul für die Komponente für die Beweglichkeit der Geschäftsabläufe ausgeführt werden, das auf zumindest einem Hardware-Prozessor ausgeführt wird; und der Identifizierungsschritt durch das Konstruktormodul für die Komponente für die Beweglichkeit der Geschäftsabläufe ausgeführt wird, das auf dem zumindest einen Hardware-Prozessor ausgeführt wird und auf das Vorlagenmodul der Komponente für die Beweglichkeit der Geschäftsabläufe zugreift.
DE112012004238.7T 2011-10-11 2012-10-05 Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen Withdrawn DE112012004238T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/270,677 US20130091285A1 (en) 2011-10-11 2011-10-11 Discovery-based identification and migration of easily cloudifiable applications
US13/270,677 2011-10-11
PCT/US2012/059047 WO2013055601A1 (en) 2011-10-11 2012-10-05 Discovery-based indentification and migration of easily cloudifiable applications

Publications (1)

Publication Number Publication Date
DE112012004238T5 true DE112012004238T5 (de) 2014-08-21

Family

ID=48042851

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004238.7T Withdrawn DE112012004238T5 (de) 2011-10-11 2012-10-05 Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen

Country Status (6)

Country Link
US (1) US20130091285A1 (de)
JP (1) JP2014532247A (de)
CN (1) CN103930863A (de)
DE (1) DE112012004238T5 (de)
GB (1) GB2509866A (de)
WO (1) WO2013055601A1 (de)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430172B2 (en) * 2012-09-03 2019-10-01 Telefonaktiebolaget Lm Ericsson (Publ) Re-configuration in cloud computing environments
US10379910B2 (en) 2012-10-26 2019-08-13 Syntel, Inc. System and method for evaluation of migration of applications to the cloud
US20140122577A1 (en) * 2012-10-26 2014-05-01 Syntel, Inc. System and method for evaluating readiness of applications for the cloud
US9742873B2 (en) 2012-11-29 2017-08-22 International Business Machines Corporation Adjustment to managed-infrastructure-as-a-service cloud standard
US9292330B2 (en) 2012-11-29 2016-03-22 International Business Machines Corporation Replacing virtual machine disks
US9692632B2 (en) 2012-11-29 2017-06-27 International Business Machines Corporation Migration to managed clouds
US9282166B2 (en) 2012-11-29 2016-03-08 International Business Machines Corporation Management infrastructure analysis for cloud migration
US9092837B2 (en) * 2012-11-29 2015-07-28 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US20140195673A1 (en) * 2013-01-10 2014-07-10 Hewlett-Packard Development Company, L.P. DYNAMICALLY BALANCING EXECUTION RESOURCES TO MEET A BUDGET AND A QoS of PROJECTS
US9892207B2 (en) * 2013-02-01 2018-02-13 Sap Se Automatic migration for on-premise data objects to on-demand data objects
US9608931B2 (en) * 2013-05-28 2017-03-28 Accenture Global Services Limited Migration assessment for cloud computing platforms
US9606840B2 (en) * 2013-06-27 2017-03-28 Sap Se Enterprise data-driven system for predictive resource provisioning in cloud environments
US9207946B2 (en) 2013-08-27 2015-12-08 International Business Machines Corporation Auto-cloudifying applications via runtime modifications
US10452374B2 (en) 2013-10-30 2019-10-22 Oracle International Corporation System and method for providing a clone service for use with a cloud platform environment
US9389970B2 (en) 2013-11-01 2016-07-12 International Business Machines Corporation Selected virtual machine replication and virtual machine restart techniques
US9639817B2 (en) * 2013-11-13 2017-05-02 Google, Inc. Remote metering for panelist web usage
US9413682B2 (en) 2014-02-07 2016-08-09 International Business Machines Corporation Provisioning legacy systems network architecture resource communications through a group of servers in a data center
WO2015119638A1 (en) * 2014-02-10 2015-08-13 Empire Technology Development, Llc Automatic collection and provisioning of migration resources
US9544385B1 (en) 2014-02-24 2017-01-10 Google Inc. Providing second content items in association with first content items
WO2015165060A1 (en) 2014-04-30 2015-11-05 Dalian University Of Technology Virtual machine migration
US10219168B2 (en) * 2014-06-30 2019-02-26 Futurewei Technologies, Inc. Methods and systems for intelligent mobile function distribution
US9871851B2 (en) * 2014-06-30 2018-01-16 EMC IP Holding Company LLC Migrating private infrastructure services to a cloud
US9836332B2 (en) 2014-07-31 2017-12-05 Corent Technology, Inc. Software defined SaaS platform
US9800673B2 (en) 2014-08-20 2017-10-24 At&T Intellectual Property I, L.P. Service compiler component and service controller for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US9473567B2 (en) 2014-08-20 2016-10-18 At&T Intellectual Property I, L.P. Virtual zones for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US10291689B2 (en) 2014-08-20 2019-05-14 At&T Intellectual Property I, L.P. Service centric virtual network function architecture for development and deployment of open systems interconnection communication model layer 4 through layer 7 services in a cloud computing system
US9749242B2 (en) 2014-08-20 2017-08-29 At&T Intellectual Property I, L.P. Network platform as a service layer for open systems interconnection communication model layer 4 through layer 7 services
US9742690B2 (en) 2014-08-20 2017-08-22 At&T Intellectual Property I, L.P. Load adaptation architecture framework for orchestrating and managing services in a cloud computing system
JP2017534109A (ja) * 2014-09-30 2017-11-16 ヒューレット パッカード エンタープライズ デベロップメント エル ピーHewlett Packard Enterprise Development LP セカンドデーオペレーションのトポロジーベースの管理
US10009292B2 (en) * 2014-10-03 2018-06-26 International Business Machines Corporation Cloud independent tuning service for autonomously managed workloads
US9612765B2 (en) 2014-11-19 2017-04-04 International Business Machines Corporation Context aware dynamic composition of migration plans to cloud
US10341179B2 (en) * 2015-03-18 2019-07-02 Hitachi, Ltd. Management computer and computer system management method
WO2016170625A1 (ja) * 2015-04-22 2016-10-27 株式会社日立製作所 計算機システムの管理システム
US9804879B2 (en) 2015-05-14 2017-10-31 International Business Machines Corporation Performing server migration and dependent server discovery in parallel
WO2016193433A1 (en) 2015-06-05 2016-12-08 Deutsche Telekom Ag A system and method for facilitating migration of server infrastructure services
EP3101541A1 (de) * 2015-06-05 2016-12-07 Deutsche Telekom AG Vorrichtung und verfahren zur erleichterung der migration von serverinfrastrukturdiensten
WO2017002222A1 (ja) * 2015-07-01 2017-01-05 株式会社日立製作所 システムデプロイ装置およびシステムデプロイ方法
US10079730B2 (en) * 2015-09-30 2018-09-18 Amazon Technologies, Inc. Network based resource configuration discovery service
US10623276B2 (en) * 2015-12-29 2020-04-14 International Business Machines Corporation Monitoring and management of software as a service in micro cloud environments
US10394587B2 (en) 2016-01-06 2019-08-27 International Business Machines Corporation Self-terminating or self-shelving virtual machines and workloads
US10031745B2 (en) 2016-02-02 2018-07-24 International Business Machines Corporation System and method for automatic API candidate generation
US10200395B1 (en) * 2016-03-30 2019-02-05 Symantec Corporation Systems and methods for automated whitelisting of files
US10146563B2 (en) 2016-08-03 2018-12-04 International Business Machines Corporation Predictive layer pre-provisioning in container-based virtualization
US10455004B2 (en) 2016-11-01 2019-10-22 Microsoft Technology Licensing, Llc Controlling an application dependency identifier
US10491704B2 (en) * 2016-11-07 2019-11-26 General Electric Company Automatic provisioning of cloud services
JP2018173881A (ja) 2017-03-31 2018-11-08 富士通株式会社 評価処理プログラム、装置、及び方法
US10901804B2 (en) 2017-12-15 2021-01-26 Fujitsu Limited Apparatus and method to select services for executing a user program based on a code pattern included therein
US10915349B2 (en) 2018-04-23 2021-02-09 Hewlett Packard Enterprise Development Lp Containerized application deployment
US20190354628A1 (en) * 2018-05-21 2019-11-21 Pure Storage, Inc. Asynchronous replication of synchronously replicated data
US20200050440A1 (en) * 2018-08-08 2020-02-13 Futurewei Technologies, Inc. Application upgrading through sharing dependencies
US11853273B1 (en) * 2018-09-27 2023-12-26 Amazon Technologies, Inc. Partial migration of applications across database systems
US10715385B2 (en) 2018-09-27 2020-07-14 International Business Machines Corporation System and method for live migration for software agents
US10817157B2 (en) 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US11010336B2 (en) * 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US20200244772A1 (en) * 2019-01-30 2020-07-30 Huawei Technologies Co., Ltd. Method and system for cloud application and service integration using pattern-based discovery
US11483384B2 (en) 2019-03-19 2022-10-25 Hewlett Packard Enterprise Development Lp Application migrations
WO2020205501A1 (en) 2019-03-29 2020-10-08 Ra Pharmaceuticals, Inc. Complement modulators and related methods
US11526770B2 (en) 2019-06-20 2022-12-13 International Business Machines Corporation Latent computing property preference discovery and computing environment migration plan recommendation
US10924559B1 (en) 2019-09-12 2021-02-16 International Business Machines Corporation Migration of cloud services
CN110895461B (zh) * 2019-11-21 2023-08-01 望海康信(北京)科技股份公司 软件研发管理方法、装置、电子设备及存储介质
CN111786808A (zh) 2020-01-10 2020-10-16 北京京东尚科信息技术有限公司 云***的迁移方法、装置和混合云***
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11379843B2 (en) * 2020-03-31 2022-07-05 Paypal, Inc. Systems and methods for multi-domain application hosting platform migration
CN111897654B (zh) * 2020-07-31 2023-08-15 腾讯科技(深圳)有限公司 将应用迁移到云平台的方法、装置、电子设备和存储介质
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
CN112232635B (zh) * 2020-09-17 2023-09-19 中国市政工程华北设计研究总院有限公司 一种基于分布式云架构的智慧水务数据中台
US11483211B2 (en) 2020-09-28 2022-10-25 International Business Machines Corporation Infrastructure discovery and analysis
US11640340B2 (en) 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11892918B2 (en) 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
CN112948091B (zh) * 2021-03-24 2024-01-30 国网上海市电力公司 应用***的迁移方法、装置、电子设备及存储介质
US11979456B2 (en) * 2022-01-14 2024-05-07 Dell Products, L.P. Cloud provisioning readiness verification

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8931038B2 (en) * 2009-06-19 2015-01-06 Servicemesh, Inc. System and method for a cloud computing abstraction layer
US8336047B2 (en) * 2008-08-25 2012-12-18 International Business Machines Corporation Provisioning virtual resources using name resolution
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
CN101763266A (zh) * 2010-01-13 2010-06-30 上海动量软件技术有限公司 计算机软件***实现云构件部署和配置的平台***及方法
WO2011126902A2 (en) * 2010-03-30 2011-10-13 Exoprise Systems Inc. Systems and methods for selecting an alternative computing infrastructure and facilitating the migration and adoption thereto
CN102054235B (zh) * 2011-01-04 2014-04-16 清华大学 基于数字资源服务构件模型的机构仓储搭建方法和装置
US9535751B2 (en) * 2011-09-15 2017-01-03 International Business Machines Corporation Resource selection advisor mechanism

Also Published As

Publication number Publication date
JP2014532247A (ja) 2014-12-04
GB201407437D0 (en) 2014-06-11
GB2509866A (en) 2014-07-16
CN103930863A (zh) 2014-07-16
WO2013055601A1 (en) 2013-04-18
US20130091285A1 (en) 2013-04-11

Similar Documents

Publication Publication Date Title
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE102013205572B4 (de) Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung
DE112012002941T5 (de) Anwendungsressourcenverwalter über eine Cloud
DE112018002984T5 (de) Konformitätsbewusste Laufzeiterzeugung auf Grundlage von Anwendungsmustern und Risikobeurteilung
DE102017217968A1 (de) Generieren eines Verschiebungsprotokolls für virtuelle Maschinen
DE102016205297A1 (de) Festlegen von speicherebenen zum platzieren von datensätzen während des ausführens von aufgaben in einem arbeitsablauf
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE102017217971A1 (de) Ermöglichen von Debugging von serverlosen Anwendungen mittels Graph-Rewriting
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112021006130T5 (de) Automatisierte orchestrierung von containern durch bewerten von mikrodiensten
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112021002572T5 (de) Multikriterielles optimieren von anwendungen
DE112019001433T5 (de) Datenanonymisierung
DE112021002820T5 (de) Dynamische automatisierung einer auswahl von pipeline-artefakten
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE112021003401T5 (de) Schattenexperimente für serverlose multi-tenant-cloud-dienste
DE112021004119T5 (de) Speicherabstufung innerhalb einer vereinheitlichten speicherumgebung
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen
DE112021005927T5 (de) Patchen von arbeitsabläufen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee