DE202013012495U1 - Metadatenbasierte virtual Maschine-Konfiguration - Google Patents

Metadatenbasierte virtual Maschine-Konfiguration Download PDF

Info

Publication number
DE202013012495U1
DE202013012495U1 DE202013012495.4U DE202013012495U DE202013012495U1 DE 202013012495 U1 DE202013012495 U1 DE 202013012495U1 DE 202013012495 U DE202013012495 U DE 202013012495U DE 202013012495 U1 DE202013012495 U1 DE 202013012495U1
Authority
DE
Germany
Prior art keywords
metadata
identifier
instance
collection
virtual machine
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.)
Expired - Lifetime
Application number
DE202013012495.4U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202013012495U1 publication Critical patent/DE202013012495U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/144Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/156Query results presentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Computerspeichermedium, das mit Anweisungen codiert ist, die bei Ausführung durch einen oder mehrere Computer, die den einen oder die mehreren Computer veranlassen, Vorgänge auszuführen, umfassend: das Verknüpfen einer oder mehrerer einer Vielzahl von Metadatensammlungen mit einer oder mehreren jeweiligen Identifikatoren, worin jede Metadatensammlung eine oder mehrere Paarungen von Metadatenattributen mit Metadatenwerten beinhaltet, und worin jeder Identifikator einer von einem Projektidentifikator, einem Tag-Identifikator oder einem Instanz-Identifikator ist; das Identifizieren, beruhend auf Identifikator-Informationen, verknüpft mit einer Virtual Machine-Instanz, eines oder mehrerer Metadatenwerte, die zu der Virtual Maschine-Instanz bereitgestellt werden sollen, worin die Identifikator-Information einen oder mehrere von einem Projektidentifikator, einem Tag-Identifikator und einem Instanz-Identifikator spezifiziert, und wobei jede identifizierte Metadatenwert zu einer Metadatensammlung verknüpft mit einem Identifikator gehört, der in der Identifikator-Information spezifiziert ist; und das Bereitstellen zur Virtual Maschine-Instanz des identifizierten einen oder der mehreren Metadatenwerte.

Description

  • HINTERGRUND
  • Diese Beschreibung bezieht sich auf Cloud-Computing.
  • Cloud-Computing ist eine netzwerkbasierte Datenverarbeitung, bei der normalerweise eine große Anzahl an Servern, die sich in Datenzentren oder „Server-Farmen” befinden, Datenverarbeitungsressourcen und Datenspeicherung bereitstellen, die von Endbenutzern benötigt werden. Einige Cloud-Computing-Dienste stellen Endbenutzern, die eine Schnittstelle zu den Anwendungen über Internet-Browser oder andere Software auf der Client-Seite herstellen, den Zugang zu Softwareanwendungen bereit, wie Textverarbeitungsprogrammen und anderen häufig verwendeten Anwendungen. Elektronische Daten der Benutzer werden üblicherweise in der Server-Farm anstatt auf den Rechenvorrichtungen der Benutzer gespeichert. Das Unterhalten von Software-Anwendungen und Benutzerdaten in einer Server-Farm vereinfacht das Management der Rechnervorrichtungen von Endbenutzern. Einige Cloud-Computing-Dienste ermöglichen Endbenutzern das Ausführen von Softwareanwendungen in Virtual Machines.
  • Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • ZUSAMMENFASSUNG
  • Benutzer können Metadaten definieren, z. B. Paarungen von Metadatenattributen und Metadatenwerte, die beim Konfigurieren von Virtual Maschine-Instanzen verwendet werden sollen. Wie sie in dieser Beschreibung verwendet werden, werden die Begriffe Paarungen von Metadatenattributen mit Metadatenwerten und Metadaten-Schlüsselwertpaare austauschbar verwendet. Jedes Metadaten-Schlüsselwertpaar kann mit einem oder mehreren Identifikatoren verknüpft werden. Die Identifikatoren können beispielsweise einen Projektidentifikator beinhalten, der sich auf ein spezifisches Projekt bezieht, mit der einen oder den mehreren Virtual Maschine-Instanzen verknüpft sind, einen Instanz-Identifikator, der sich auf eine spezifische Virtual Maschine-Instanz bezieht, oder einen Tag-Identifikator, der sich auf ein spezifisches Tag bezieht, das mit einer oder mehreren Virtual Maschine-Instanzen verknüpft ist. Jedes Metadaten-Schlüsselwertpaar wird in einer Metadatensammlung gespeichert, die durch einen spezifischen Identifikator identifiziert ist. So wird beispielsweise ein Metadaten-Schlüsselwertpaar, das mit einem Projektidentifikator P1 und einem Tag-Identifikator T1 verknüpft ist, in einer ersten Metadatensammlung, die durch den Projektidentifikator P1 identifiziert ist, und einer zweiten Metadatensammlung, die durch den Tag-Identifikator T1 identifiziert ist, gespeichert.
  • Beim Initialisieren von Virtual Maschine-Instanzen können Benutzer jede Virtual Maschine-Instanz mit einem oder mehreren Identifikatoren verknüpfen, z. B. einem Projektidentifikator, einem Instanz-Identifikator oder einem Tag-Identifikator, wie oben beschrieben. Jede Virtual Maschine-Instanz kann Metadaten beispielsweise von einem Metadaten-Server erlangen. In einigen Implementierungen kann eine Virtual Maschine-Instanz, die mit spezifischen Identifikatoren verknüpft ist, Metadaten erlangen, die auch mit den spezifischen Identifikatoren verknüpft sind. Jede Virtual Maschine-Instanz kann die erlangten Metadaten-Schlüsselwertpaare anwenden, um mehrere Einstellungen in Verbindung mit der jeweiligen Virtual Maschine-Instanz zu konfigurieren.
  • Generell kann ein Aspekt des beschriebenen Gegenstands in dieser Beschreibung in Verfahren ausgeführt werden, das die folgenden Aktionen beinhaltet: Verknüpfen einer oder mehrerer einer Vielzahl von Metadatensammlungen mit einem oder mehreren jeweiligen Identifikatoren, worin jede Metadatensammlung eine oder mehrere Paarungen von Metadatenattributen mit Metadatenwerten beinhaltet, und worin jeder Identifikator einer von einem Projektidentifikator, einem Tag-Identifikator oder einem Instanz-Identifikator ist; Identifizieren beruhend auf Identifikator-Information verknüpft mit einer Virtual Maschine-Instanz, eines oder mehrerer Metadatenwerte, die zur Virtual Machine-Instanz bereitgestellt werden sollen, wobei die Identifikator-Information einen oder mehrere von einem Projektidentifikator, einem Tag-Identifikator und einem Instanz-Identifikator spezifiziert, und wobei jede identifizierte Metadatenwert zu einer Metadatensammlung verknüpft mit einem Identifikator gehört, der in der Identifikator-Information spezifiziert ist; und Bereitstellen zur Virtual Maschine-Instanz des identifizierten einen oder der mehreren Metadatenwerte. Andere Ausführungsformen dieses Aspekts beinhalten entsprechende System-, Vorrichtungs- und Computerprogrammprodukte.
  • Diese und andere Ausführungsformen können als Option eins oder mehrere der folgenden Eigenschaften beinhalten. Das Verfahren beinhaltet ferner ein Erhalten einer Metadatenabfrage von der Virtual Maschine-Instanz, die die Identifikator-Information beinhaltet; und Identifizieren des einen oder der mehreren Metadatenwerte als Antwort auf den Erhalt der Metadatenabfrage. Die Metadatenabfrage wird unter Verwendung eines Hanging GET-Vorgangs kommuniziert. Das Verfahren beinhaltet ferner das Empfangen von Daten, die einen oder mehrere benutzerdefinierte Identifikatoren und eine oder mehrere benutzerdefinierte Paarungen von Metadatenwerten mit Metadatenattributen beinhalten; Erzeugen einer Metadatensammlung, die die eine oder mehrere benutzerdefinierte Paarungen beinhaltet; und Verknüpfen der erzeugten Metadatensammlung mit dem benutzerdefinierten Identifikator. Die Metadatensammlungen beinhaltet eine erste Metadatensammlung und eine zweite Metadatensammlung, wobei die erste Metadatensammlung mit einem ersten Identifikator verknüpft ist und eine Paarung von einem ersten Metadatenattribut mit einem ersten Metadatenwert beinhaltet, und die zweite Metadatensammlung mit einem zweiten Identifikator verknüpft ist und eine Paarung des ersten Metadatenattributs mit einem zweiten Metadatenwert beinhaltet, wobei der erste Metadatenwert sich vom zweiten Metadatenwert unterscheidet.
  • Das Verfahren beinhaltet ferner das Bereitstellen des ersten Metadatenwerts und des zweiten Metadatenwerts zur Virtual Maschinen-Instanz. Das Verfahren beinhaltet ferner das Bestimmen, dass die erste Metadatensammlung eine höhere Prioritätsebene hat als die zweite Metadatensammlung beruhend auf einer Bewertung des ersten Identifikators und des zweiten Identifikators; und ein Bereitstellen des ersten Metadatenwerts und nicht des zweiten Metadatenwerts zur Virtual Maschine-Instanz. Der erste Identifikator ist ein Instanz-Identifikator oder ein Tag-Identifikator und der zweite Identifikator ist ein Projektidentifikator oder der erste Identifikator ist ein Instanz-Identifikator und der zweite Identifikator ist ein Tag-Identifikator oder ein Projektidentifikator. Das Verfahren beinhaltet ferner ein Erhalten von Daten, die einen Identifikator und eine neue Paarung von einem Metadatenattribut mit einem Metadatenwert spezifizieren und ein Aktualisieren der Metadatensammlung, die mit dem spezifizierten Identifikator Daten verknüpft ist, um die neue Paarung zu beinhalten.
  • Bestimmte Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können so implementiert werden, dass sie einen oder mehrere der folgenden Vorteile verwirklichen. Die Rollen von Virtual Maschinen können beruhend auf ihren jeweiligen Tag-Identifikatoren definiert werden. Benutzer können Metadaten-Schlüsselwertpaare spezifizieren und die spezifizierten Metadaten-Schlüsselwertpaare können verwendet werden, um kollektiv Einstellungen für eine oder mehrere Virtual Maschine-Instanzen zu konfigurieren. Einstellungen und Rollen von Virtual Maschine-Instanzen können bei Aktualisierung dynamisch aktualisiert werden. Metadaten können mit Projektidentifikatoren oder Tag-Identifikatoren verknüpft werden, um die Durchführung von üblichen Konfigurationen und Eigenschaften bei vielfachen Virtual Maschine-Instanzen zu vereinfachen. In Fällen, wo Virtual Maschine-Instanzen nicht auf Metadaten zugreifen, die mit einem Instanz-Identifikator verknüpft sind, oder wenn der Zugang zu den Metadaten durch Richtlinien verboten ist, kann das Bearbeiten von Virtual Maschine-Instanzen, die eine Standardkonfiguration verwenden, vereinfacht werden.
  • Die Details von einer oder mehreren Ausführungsformen des Gegenstands dieser Beschreibung werden in den begleitenden Zeichnungen und in der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine schematische Darstellung eines Beispielsystems einer Virtual Maschine.
  • 2 ist ein Schwimmbahndiagramm, das eine Konfiguration einer Virtual Maschine-Instanz unter Verwendung von Paarungen von Metadatenattributen mit Metadatenwerten darstellt.
  • 3 ist ein Flussdiagramm von einem Beispielprozess zum Konfigurieren einer Virtual Maschine-Instanz unter Verwendung von Paarungen von Metadatenattributen mit Metadatenwerten.
  • 4 ist ein schematisches Diagramm einer beispielhaften Host-Maschine.
  • Ähnliche Referenznummern und Bezeichnungen in den verschiedenen Zeichnungen weisen auf ähnliche Elemente hin.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist eine schematische Darstellung eines exemplarischen Virtual Machine-Systems 100. System 100 besteht aus einer oder mehreren Host-Maschinen wie Host-Maschine 102 und Host-Maschine 104. Allgemein gesagt stellt eine Host-Maschine eine oder mehrere Datenverarbeitungsvorrichtungen dar, wie beispielsweise Rack-montierte Server oder andere Computergeräte. Die Datenverarbeitungsvorrichtung kann sich an verschiedenen physikalischen Orten befinden und kann unterschiedliche Fähigkeiten und Computerarchitekturen aufweisen. Hostmaschinen können miteinander über ein internes Datenkommunikationsnetzwerk 116 kommunizieren. Das interne Netzwerk kann beispielsweise ein oder mehrere verdrahtete, z. B. Ethernet, oder drahtlose, z. B. Wi-Fi, Netzwerke beinhalten. In einigen Implementierungen ist das interne Netzwerk 116 ein Intraet. Host-Maschinen sind auch in der Lage, mit Geräten externer Netzwerke zu kommunizieren wie dem Internet 122, über ein oder mehrere Gateways 120. Dies sind Datenverarbeitungsgeräte, die für den Kommunikationsverkehr der Routingdaten zwischen dem internen Netzwerk 116 und dem externen Netzwerk 122 verantwortlich sind. Andere Arten von externen Netzwerken sind möglich.
  • Jede Host-Maschine 102, 104 führt ein Host-Betriebssystem 106, 108 aus. Ein Host-Betriebssystem 106, 108 verwaltet Host-Maschine-Ressourcen. In diesem Beispiel führen Host-Betriebssysteme 106, 108, Software aus, z. B. einen Virtual Maschine-Monitor („VMM”) oder einen Hypervisor, der die zugrunde liegende Host-Maschine-Hardware virtualisiert und eine gleichzeitige Ausführung von eine oder mehrere Instanzen von Virtual Maschines („VMs”) verwaltet. In diesem Beispiel verwaltet das Host-Betriebssystem 106 zwei VM-Instanzen, VM 110 und VM 112, während ein anderes Host-Betriebssystem 108 eine einzelne VM 114 verwaltet. VM-Instanzen können von einer Host-Maschine auf eine andere Host-Maschine migriert werden. Zusätzlich kann eine einzelne VM-Instanz von vielfachen Host-Maschinen verwaltet werden. Eine Host-Maschine kann generell vielfache Virtual Maschinen verwalten, allerdings kann die Anzahl beruhend auf den physikalischen Ressourcen der Host-Maschine begrenzt sein.
  • Jede VM-Instanz stellt eine Emulation eines physikalischen Hardware-Systems dar, die auf der Architektur der Host-Maschine-Hardware basieren kann, aber nicht muss. Die simulierte Version der Hardware wird hierin als virtuelle Hardware bezeichnet, z. B. virtuelle Hardware 110a, 112a und 114a. Software, die durch die virtuelle Hardware ausgeführt wird, wird als Gastsoftware bezeichnet. In einigen Implementierungen kann Gastsoftware nicht bestimmen, ob sie durch virtuelle Hardware oder durch eine physikalische Hostmaschine ausgeführt wird. Wenn eine ausgeführte Gast-Software in einer VM-Instanz, oder die VM-Instanz an sich beeinträchtigt ist, nicht richtig funktioniert oder abgebrochen wird, können andere ausgeführte VM-Instanzen auf der Host-Maschine nicht betroffen sein. (Ein) Mikroprozessor(en) einer Hostmaschine kann/können Mechanismen auf Prozessorebene umfassen, um virtueller Hardware zu ermöglichen, Softwareanwendungen effizient auszuführen, indem zugelassen wird, dass Gastsoftware-Anweisungen direkt auf dem Mikroprozessor der Hostmaschine ausgeführt werden, ohne dass Neuschreiben von Code, Neukompilierung oder Anweisungsemulation notwendig ist.
  • Jede VM-Instanz, z. B. VMs 110, 112 und 114 ist einer Reihe von virtuellen Speicherseiten vom virtuellen Speicher des zugrunde liegenden Host-Betriebssystems und zugewiesen und ist virtuellen Festplattenblöcken von einer oder mehreren virtuellen Festplatten zur Verwendung durch die Gast-Software, die auf der VM-Instanz ausgeführt wird, zugewiesen. So weist beispielsweise ein Host-Betrieb 106 Speicherseiten und Festplattenböcke VM 110 und VM 112 zu, und ein Host-Betriebssystem 108 macht das gleiche für VM 114. In solchen Implementierungen kann eine gegebene VM-Instanz nicht auf die virtuellen Speicherseiten zugreifen, die anderen VMs zugewiesen sind. So kann beispielsweise VM 110 nicht auf Speicherseiten zugreifen, die VM 112 zugeordnet wurden. Eine virtuelle Festplatte kann bei Neustarts von VM-Instanzen fortbestehen. Virtuelle Plattenblöcke werden auf physikalischen Plattenlaufwerken zugeordnet, die beispielsweise mit Hostmaschinen verbunden oder über das interne Netzwerk 116 verfügbar sind. Zusätzlich zu virtuellen Speicher- und Festplatten-Ressourcen können VM-Instanzen Netzwerkadressen zugewiesen werden, über die ihre jeweilige Gast-Software mit anderen Prozessen kommunizieren kann, die über das interne Netzwerk 116 oder das Internet 122 erreichbar sind. So kann beispielsweise Gastsoftware, die auf VM 110 ausgeführt wird, mit Gastsoftware kommunizieren, die auf VM 112 oder VM 114 ausgeführt wird. In einigen Implementierungen wird jede VM-Instanz einer oder mehreren einmaligen Adressen des Internet Protocol (IP) der Version 4 oder Version 6 zugewiesen. Andere Adresssysteme sind möglich. Die IP-Adressen der VM-Instanz sind im internen Netzwerk 116 adressierbar und in einigen Implementierungen sind sie im Internet 122 adressierbar, wenn die Adressen unter Verwendung von z. B. einem geeigneten Routing-Protokoll aufgegeben werden.
  • Eine Gast-Software einer VM-Instanz kann ein Gast-Betriebssystem beinhalten, z. B. Gast-Betriebssysteme 110b, 112b, und 114b, das eine Software ist, die die Ausführung jeweiliger Gast-Software-Anwendungen, z. B. Gastanwendungen 110c, 112c und 114c, in der VM-Instanz steuert und diesen Anwendungen dienste bereitstellt. So könnte beispielsweise ein Gast-Betriebssystem eine Variante des Betriebssystems UNIX sein. Andere Betriebssysteme, z. B. Microsoft Windows, und unterschiedliche Versionen dieser Betriebssysteme können als das Gast-Betriebssystem ausgeführt werden. Jede VM-Instanz kann dasselbe Gast-Betriebssystem oder andere Gast-Betriebssysteme ausführen. In weiteren Implementierungen erfordert eine VM-Instanz kein Gast-Betriebssystem, um Gast-Software-Anwendungen auszuführen. Ein Zugriff des Gastbetriebssystems auf Ressourcen wie Netzwerke und virtuelle Plattenspeicher wird durch das zugrunde liegende Betriebssystem gesteuert.
  • Wie das Beispiel der Virtual Maschine 110 zeigt, wird beim Versuch der Gast-Anwendung 110c oder des Gast-Betriebssystems 110b, eine Ein-/Ausgabeoperation auf einem virtuellen Schreibtisch durchzuführen, eine Netzwerkkommunikation zu starten oder eine privilegierte Operation durchzuführen die virtuelle Hardware 110a unterbrochen, sodass das Host-Betriebssystem 106 die Aktion für die Virtual Maschine 110 durchführen kann. Das Hostbetriebssystem 106 kann diese Handlungen mit einem Prozess durchführen, der in Kernelprozessraum 106b, Benutzerprozessraum 106a oder beiden ausgeführt wird.
  • Der Kernprozessbereich 106b z. B. ist ein virtueller Speicher, der für den Kern 106d des Host-Betriebssystems 106 einschließlich Kernerweiterungen und Gerätetreibern reserviert ist. Der Kernel-Prozessraum hat höhere Privilegien, die manchmal als ein „Supervisor Modus” bezeichnet werden; d. h. das Kernel 106d kann privilegierte Vorgänge ausführen, die außerhalb den Grenzen der Prozesse sind, die im Benutzerprozessraum 106a laufen. Beispiele für vorrangige Operationen umfassen Zugriff auf verschiedene Adressräume, Zugriff auf spezielle Funktionsprozessoreinheiten in der Hostmaschine wie Speicherverwaltungseinheiten usw. Der Benutzerprozessraum 106a ist ein separater Teil virtuellen Speichers, der für Prozesse des Benutzermodus reserviert ist. Prozesse des Benutzermodus können vorrangige Operationen nicht direkt durchführen.
  • In mehreren Implementierungen ist ein Teil der Netzwerk-Kommunikationsfunktionen der VM-Instanz einem Kommunikationsprozess implementiert, z. B. Kommunikationsprozess 106c. In einigen Implementierungen wird der Kommunikationsprozess im Benutzerprozessraum ausgeführt, z. B. Benutzerprozessraum 106a eines Host-Betriebssystems, z. B. Host-Betriebssystem 106. In anderen Implementierungen kann der Kommunikationsprozess im Kernel-Prozessraum ausgeführt werden, z. B. Kernel-Prozessraum 106d des Host-Betriebssystems. In wieder anderen Implementierungen wird ein Teil des Kommunikationsprozesses im Benutzerbereich ausgeführt und ein Teil im Kernprozessbereich.
  • Das System 100 beinhaltet einen Metadaten-Server 130, der Metadaten für VM-Instanzen im System 100 verwaltet und Zugang dazu bereitstellt. Der Metadaten-Server 130 kann als ein oder mehrere Computerprogramme implementiert sein, die auf einem oder mehreren Computern im System 100 installiert sind. Der Metadaten-Server 130 kann beispielsweise auf einer spezifischen Host-Maschine installiert sein. Der Metadaten-Server 130 kann auch als eine VM-Instanz im System 100 implementiert sein. Generell befindet sich der Metadaten-Server 130 im selben Datenzentrum wie die VM-Instanzen, die der Metadaten-Server 130 bedient, obwohl sich der Metadaten-Server 130 auch an einem anderen Ort befinden und beispielsweise über das Internet zugänglich sein kann.
  • Metadaten können unter Verwendung von jedem geeigneten Netzwerk-Kommunikationsprotokoll auf den Metadaten-Server 130 geschrieben und von dort gelesen werden. In einigen Implementierungen sind die Lese- und Schreibbefehle unter Verwendung von konventionellen Befehlen „GET” und „PUT” des Hypertext Transfer Protocol (HTTP) implementiert. In einigen Implementierungen können Benutzer unter Verwendung von einer Application Programming Interface (API) angepasste Metadaten zum Metadaten-Server 130 bereitstellen.
  • Jedes Element von Metadaten ist ein Schlüsselwertpaar. Der Schlüssel, bzw. das Attribut, identifiziert unverwechselbar einen Typ von Metadaten. Der Wert kann ein oder mehrere Datenstücke sein, beispielsweise Textketten. Ein Benutzer kann beispielsweise einen Metadatenschlüssel „hostname” und einen entsprechenden Metadatenwert „myinst.myproject.mydomain.intemal” spezifizieren. Benutzer können auch jedes Schlüsselwertpaar mit einem oder mehreren jeweiligen Identifikatoren verknüpfen. In einigen Implementierungen beinhaltet der eine oder die mehreren Identifikatoren einen Projektidentifikator, einen Instanz-Identifikator oder einen Tag-Identifikator. So kann beispielsweise sich ein Projektidentifikator auf ein spezifisches Projekt beziehen, das von einem Benutzer erstellt wurde. Ein Instanz-Identifikator kann sich auf eine spezifische Virtual Maschine-Instanz beziehen. Ein Tag-Identifikator kann sich auf ein spezifisches Tag beziehen, z. B. „Front-End-Webserver” oder „sql server”, womit eine oder mehrere Virtual Maschine-Instanzen verknüpft sind. In einigen Implementierungen können Benutzer angepasste Identifikatoren spezifizieren, die mit Schlüsselwertpaaren verknüpft sind. So kann beispielsweise ein Benutzer einen Maschinentyp-Identifikator spezifizieren, der mit einem Metadatenschlüssel „hostname” verknüpft werden kann.
  • In einigen Implementierungen ist der Zugang zu Metadaten, die mit einer oder mehreren Identifikatoren verknüpft sind, auf VM-Instanzen beschränkt, die auch mit den einen oder den mehreren Identifikatoren verknüpft sind. So kann beispielsweise eine VM-Instanz, die mit einem Projektidentifikator P1 verknüpft ist, auf Metadaten zugreifen, die mit dem Projektidentifikator P1 verknüpft sind, aber nicht auf Metadaten, die mit einem Projektidentifikator P2 verknüpft sind. Auf ähnliche Art und Weise können ähnliche Tag-Identifikatoren mit verschiedenen Projektidentifikatoren verknüpft werden. Somit kann beispielsweise ein erster Tag-Identifikator „Front-End-Webserver” mit einem Projektidentifikator P1 verknüpft sein, während ein zweiter Tag-Identifikator „Front-End-Webserver” mit einem Projektidentifikator P2 verknüpft werden kann. In diesem Beispiel haben Metadaten, die mit dem ersten Tag-Identifikator „Front-End-Webserver” im Projekt P1 verknüpft sind, keine Beziehung zu Metadaten, die mit dem zweiten Tag-Identifikator „Front-End-Webserver” im Projekt P2 verknüpft sind. Somit können VM-Instanzen, die mit dem Projektidentifikator P1 verknüpft sind, nicht auf Metadaten zugreifen, die mit dem Projektidentifikator P2 verknüpft sind. Auf ähnliche Art und Weise können VM-Instanzen, die mit dem Projektidentifikator P2 verknüpft sind, nicht auf Metadaten zugreifen, die mit dem Projektidentifikator P1 verknüpft sind. Dies ist eine nützliche Eigenschaft für ein mandantenfähiges System, das sie gewährleistet, dass Metadaten geheim bleiben und nicht VM-Instanzen sichtbar sind, die nicht mit den richtigen Identifikatoren verknüpft sind.
  • Der Metadaten-Server 130 ist konfiguriert, um benutzerdefinierte Schlüsselwertpaare und ihre entsprechenden Identifikatoren zu erhalten. In einigen Implementierungen kategorisiert und speichert der Metadaten-Server 130 erhaltene Schlüsselwertpaare in einer oder mehreren Metadatensammlungen basierend auf ihren jeweiligen Identifikatoren. So kann beispielsweise ein Metadaten-Schlüsselwertpaar, das mit einem Projektidentifikator P1 und einem Tag-Identifikator T1 verknüpft ist, in einer ersten Metadatensammlung gespeichert werden, die dem Projektidentifikator P1 entspricht, und einer zweiten Metadatensammlung, die dem Tag-Identifikator T1 entspricht.
  • Der Metadaten-Server 130 ist auch konfiguriert, um Anfragen von VM-Instanzen zu erhalten, die Metadaten anfordern. Benutzer können die Konfiguration von VM-Instanzen, die im System 100 laufen, durch Verknüpfen der VM-Instanzen mit einem oder mehreren jeweiligen Identifikatoren anpassen, z. B. einem Projektidentifikator, einem Instanz-Identifikator oder einem Tag-Identifikator, wie oben beschrieben. So kann beispielsweise ein Benutzer spezifizieren, dass eine VM-Instanz mit einem Projektidentifikator P1, einem Instanz-Identifikator M1 und Tag-Identifikatoren „sql server” und „Front-End-Webserver” verknüpft ist. In einigen Implementierungen kann jede VM-Instanz mit nur einem Projektidentifikator verknüpft sein.
  • Beim Start kann die VM-Instanz den Metadaten-Server 130 abfragen, um Metadaten zu erlangen, die mit denselben Identifikatoren verknüpft sind, die mit der VM-Instanz verknüpft sind. Somit kann beispielsweise eine VM-Instanz, die mit einem Projektidentifikator P1, einem Instanz-Identifikator M1, und Tag-Identifikatoren „sql server” und „Front-End-Webserver” verknüpft ist, den Metadaten-Server 130 abfragen, um Metadaten zu erlangen, die auch mit dem Projektidentifikator P1, dem Instanz-Identifikator M1 und den Tag-Identifikatoren „sql server” und „”Front-End-Webserver” verknüpft sind. Als Antwort auf das Erhalten der Abfrage kann der Metadaten-Server 130 Metadatensammlungen identifizieren, die jeweils dem Projektidentifikator P1, dem Instanz-Identifikator M1 und den Tag-Identifikatoren „sql server” und „Front-End-Webserver” entsprechen. Der Metadaten-Server 130 kann Metadaten bereitstellen, die in den identifizierten Metadatensammlungen zu der VM-Instanz kategorisiert waren. Die VM-Instanz kann die erhaltenen Metadaten anwenden, um mehrere Einstellungen in Verbindung mit der VM-Instanz zu konfigurieren.
  • So kann beispielsweise ein Benutzer einen ersten Metadatenschlüssel „sshKeys” und entsprechenden Wert, z. B. „joe:ssh-rsa <SSH key>”, die Benutzerkonten und entsprechende öffentliche SSH-Schlüssel beschreiben, mit einem Projektidentifikator P1 verknüpfen. Der Benutzer kann auch einen zweiten Metadatenschlüssel „allowedHosts” und entsprechenden Wert, z. B. „192.0.2.24/30”, die Adressen des Internet Protocol (IP) beschreiben, denen es erlaubt ist, sich mit einer VM-Instanz zu verbinden, mit dem Projektidentifikator P1 verknüpfen. Der Benutzer kann dann einen dritten Metadatenschlüssel „startupScript” und entsprechenden Wert, z. B. ein Shell-Script, das einen Webserver konfiguriert und startet, mit einen Tag-Identifikator „web” verknüpfen. Schließlich kann der Benutzer einen vierten Metadatenschlüssel „allowedHosts” und entsprechenden Wert, z. B. „0.0.0.0/0”, die IP-Adressen beschreiben, denen es erlaubt ist, sich mit einer VM-Instanz zu verbinden, mit einem Instanz-Identifikator „shell” verknüpfen.
  • In einigen Implementierungen können Benutzer spezifische Identifikatoren spezifizieren, die mit einer oder mehreren VM-Instanzen unter Verwendung von einer Application Programming Interface (API) verknüpft werden sollen. Eine Systemkomponente in jeder VM-Instanz ist konfiguriert, um die benutzerdefinierten Identifikatoren zu erhalten, und um die Identifikatoren mit der jeweiligen VM-Instanz zu verknüpfen.
  • Ein Benutzer kann eine VM-Instanz initialisieren und kann die VM-Instanz mit einem Projektidentifikator P1 und einem Instanz-Identifikator „shell” verknüpfen. Beim Start kann die VM-Instanz den Metadaten-Server 130 abfragen, um Metadaten zu erlangen, die mit dem Projektidentifikator P1 und dem Instanz-Identifikator „shell” verknüpft sind. Als Antwort auf die Anfrage kann der Metadaten-Server 130 der VM-Instanz Metadaten bereitstellen, die mit dem Projektidentifikator P1 verknüpft sind, z. B. die ersten und zweiten Metadaten-Schlüsselwertpaare, und Metadaten, die mit dem Instanz-Identifikator „shell” verknüpft sind, z. B. das vierte Metadaten-Schlüsselwertpaar. In einigen Implementierungen stellt der Metadaten-Server 130 der VM-Instanz die jeweiligen Pfade des Uniform Resource Locator (URL) bereit, der sich auf die angeforderten Metadaten bezieht. So kann beispielsweise der Metadaten-Server 130 eine erste URL bereitstellen, z. B. „/vlbeta/computemetadata/project/attributes/sshKeys”, der sich auf das Schlüsselwertpaar „sshKeys” bezieht, das mit dem Projektidentifikator P1 verknüpft ist, eine zweite URL, z. B. „/vlbeta/computemetadata/project/attributes/allowedHosts”, die sich auf das Schlüsselwertpaar „allowedHosts” bezieht, das mit dem Projektidentifikator P1 verknüpft ist, und eine dritte URL, z. B. „/vlbeta/computemetadata/instance/attributes/allowedHosts”, die sich auf das Schlüsselwertpaar „allowedHosts” bezieht, das mit dem Instanz-Identifikator „shell” verknüpft ist. Die VM-Instanz kann dann die erhaltenen Metadaten verarbeiten, um die VM-Instanz zu konfigurieren. Wenn der Benutzer in diesem Beispiel die VM-Instanz mit einen Tag-Identifikator „web” verknüpft hatte, würde der Metadaten-Server 130 dann der VM-Instanz eine vierte URL bereitstellen, z. B. „/vlbeta/computemetadata/tags/web/attributes/startupScript”, die sich auf das Schlüsselwertpaar „startupScript” bezieht, das mit dem Tag-Identifikator „web” verknüpft ist.
  • In einigen Instanzen kann ein Metadatenkonflikt entstehen, wenn verschiedene Werte fur einen Metadatenschlüssel spezifiziert werden, der mit mehr als einer Metadatensammlung verknüpft ist, z. B. mit mehr als einem Identifikator, und wenn eine VM-Instanz mit diesen Identifikatoren verknüpft ist. Wie im Beispiel oben beschrieben, hat der zweite Metadatenschlüssel „allowedHosts”, der mit dem Projektidentifikator P1 verknüpft ist, einen entsprechenden Wert „192.0.2.24/30”, während der vierte Metadatenschlüssel „allowedHosts”, der mit dem Instanz-Identifikator „shell” verknüpft ist, einen entsprechenden Wert „0.0.0.0/0” hat. Da die VM-Instanz in diesem Beispiel mit dem Projektidentifikator P1 und dem Instanz-Identifikator „shell” verknüpft ist, besteht ein Konflikt, ob der Metadatenwert des zweiten Metadatenschlüssels „allowedHosts”, z. B. „192.0.2.24/30”, oder des vierten Metadatenschlüssels „allowedHosts”, z. B. „0.0.0.0/0” verwendet wird, um die VM-Instanz zu konfigurieren.
  • In einigen Implementierungen stellt der Metadaten-Server 130 alle in Konflikt stehenden Metadaten zu der VM-Instanz bereit, und die VM-Instanz bestimmt selbst, welcher Metadatenwert verwendet wird, um die VM-Instanz zu konfigurieren. In einigen Implementierungen bestimmt der Metadaten-Server 130, welches Metadaten-Schlüsselwertpaar einen höheren Prioritätsgrad hat, indem er jeweilige Identifikatoren bewertet, die mit den Metadaten-Schlüsselwertpaaren verknüpft sind, und stellt zu der VM-Instanz das Metadaten-Schlüsselwertpaar bereit, das mit dem höheren Prioritätsgrad verknüpft ist. In einigen Implementierungen werden Instanz-Identifikatoren und Tag-Identifikatoren höher priorisiert als Projektidentifikatoren. In einigen Implementierungen werden Instanz-Identifikatoren höher priorisiert als Tag-Identifikatoren und Projektidentifikatoren.
  • In einigen Implementierungen können Benutzer VM-Instanzen neu konfigurieren, indem sie Metadatensammlungen aktualisieren. So kann beispielsweise ein Benutzer neue Metadaten-Schlüsselwertpaare spezifizieren, oder der Benutzer kann Metadatenwerte für vorhandene Metadatenschlüssel aktualisieren. VM-Instanzen können konfiguriert werden, um automatisch den Metadaten-Server 130 abzufragen, um die neuen oder aktualisierten Metadaten zu erlangen, wie nachfolgend beschrieben in Bezug auf 2. Die VM-Instanzen können verwendet werden, um Metadaten zu erlangen, um mehrere Einstellungen in Verbindung mit der VM-Instanz neu zu konfigurieren.
  • In einigen Implementierungen wird jede VM-Instanz, z. B. VM 110, 112 oder 114, mit einem verschiedenen Metadaten-Server gepaart, z. B. dem Metadaten-Server 130. In einigen Implementierungen wird jede Host-Maschine, z. B. Host-Maschinen 102 oder 104, mit einem verschiedenen Metadaten-Server gepaart, z. B. dem Metadaten-Server 130. In einigen Implementierungen ist der Metadaten-Server, z. B. der Metadaten-Server 130, als ein verteiltes System konfiguriert.
  • 2 ist ein Schwimmbahndiagramm, das eine Konfiguration einer Virtual Maschine-Instanz unter Verwendung von Paarungen von Metadatenattributen mit Metadatenwerten darstellt.
  • Ein Benutzer, der ein Benutzergerät betreibt, stellt Metadaten, z. B. Schlüsselwertpaare, und einen oder mehrere entsprechende Identifikatoren zu einem Metadaten-Server bereit, wie oben beschrieben (202). In einigen Implementierungen können Benutzer Werte für Metadatenschlüssel bereitstellen, z. B. „attached-disks”, um eine Liste kurz- und langlebiger Festplatten zu spezifizieren, und kann die Metadaten mit einer oder mehreren Identifikatoren verknüpfen, um VM-Instanzen zu konfigurieren, die mit dem einen eine oder den mehreren Identifikatoren verknüpft sind, um die kurz- und langlebigen Festplatten zu verwenden. Andere Beispiele von Metadaten, für die Benutzer angepasste Werte bereitstellen können, enthalten einen Metadatenschlüssel, z. B. „description”, um eine Beschreibung einer Instanz zu spezifizieren, einen Metadatenschlüssel, z. B. „domain”, um eine Domäne eines VM-Instanz-Hostnamen zu spezifizieren, einen Metadatenschlüssel, z. B. „hostname”, um einen Host-Namen für eine Instanz zu spezifizieren, einen Metadatenschlüssel, z. B. „image”, um ein Bild zu spezifizieren, das zum Initialisieren einer VM-Instanz verwendet werden soll.
  • Zusätzlich können Benutzer angepasste Werte bereitstellen für einen Metadatenschlüssel, z. B. „machine-type”, der einen Maschinentyp identifiziert, z. B. einen Maschinentyp mit einer spezifischen Anzahl von Central Processing Units (CPUs) und Speicherkonfiguration, einen Metadatenschlüssel, z. B. „network”, um spezifische Netzwerkinformation zu spezifizieren, einen Metadatenschlüssel, z. B. „zone”, um eine Zone zu spezifizieren, z. B. Zeitzone. Ferner können Benutzer angepasste Werte bereitstellen für einen Metadatenschlüssel, z. B. „sshKeys”, um eine Liste mit sicheren Schlüsseln Secure Shell (SSH) zu spezifizieren, die verwendet werden können, um sich mit einer Instanz zu verbinden, einen Metadatenschlüssel, z. B. „startup-script”, um ein Start-Script zu spezifizieren, das ausgeführt wird, wenn eine Instanz startet, einen Metadatenschlüssel, z. B. „startup-script-url”, um einen URL (Uniform Resource Locator) eines Start-Scripts zu spezifizieren, das ausgeführt wird, wenn eine Instanz startet.
  • Der Metadaten-Server verknüpft eine oder mehrere Metadatensammlungen mit jeweiligen Identifikatoren (204). Wie oben beschrieben kategorisiert und speichert der Metadaten-Server in einigen Implementierungen die erhaltenen Metadaten in einer eine oder mehreren jeweilige Metadatensammlungen beruhend auf den Identifikatoren entsprechend den erhaltenen Metadaten. Somit kann der Metadaten-Server beispielsweise alle erhaltenen Metadaten, die mit einem spezifischen Projektidentifikator, z. B. P1, in einer ersten Metadatensammlung kategorisieren und speichern, und kann die erste Metadatensammlung mit dem spezifischen Projektidentifikator, z. B. P1 verknüpfen. Auf ähnliche Art und Weise kann der Metadaten-Server beispielsweise alle erhaltenen Metadaten, die mit einem spezifischen Tag-Identifikator, z. B. T1, in einer zweiten Metadatensammlung kategorisieren und speichern, und kann die zweite Metadatensammlung mit dem spezifischen Projektidentifikator, z. B. T1 verknüpfen.
  • Eine VM-Instanz, die mit spezifischen Identifikatoren verknüpft ist, sendet Metadatenabfrage zu dem Metadaten-Server, um Metadaten zu erlangen, die auch mit den spezifischen Identifikatoren (206) verknüpft sind. In einigen Implementierungen ist eine VM-Instanz konfiguriert, um den Metadaten-Server nach Metadaten abzufragen, wenn die VM-Instanz initialisiert wird, z. B. beim Start. In einigen Implementierungen ist eine VM-Instanz konfiguriert, um den Metadaten-Server in spezifizierten Zeitintervallen nach Metadaten abzufragen, wie z. B. in einem regelmäßig ausgeführten Programm.
  • In einigen Implementierungen ist eine VM-Instanz konfiguriert, um den Metadaten-Server unter Verwendung von einem Vorgang „Hanging GET” abzufragen. So kann beispielsweise die VM-Instanz den konventionellen „GET”-Vorgang des Hypertext Transfer Protocol (HTTP) „GET” verwenden, um Metadaten abzufragen. In Situationen, wo der Metadaten-Server bereits die VM-Instanz mit Metadaten bereitgestellt hat, kann die VM-Instanz „hang”, oder die HTTP „GET”-Verbindung aufrechterhalten, um weiter zu warten, bis der Metadaten-Server neue oder aktualisierte Metadaten hat, um die VM-Instanz bereitzustellen. Wenn in solchen Implementierungen die HTTP „GET”-Verbindung wegen Inaktivität geschlossen wird, z. B. eine Zeitüberschreitung, kann die VM-Instanz konfiguriert werden, um die Verbindung wiederherzustellen und weiter auf neue oder aktualisierte Metadaten zu warten.
  • Der Metadaten-Server erhält die Abfrage zur Anforderung von Metadaten, die mit spezifischen Identifikatoren verknüpft sind, wie oben beschrieben (208). Der Metadaten-Server kann Daten kommunizieren, z. B. Abfragen und Metadaten unter Verwendung von jedem geeigneten Netzwerk-Kommunikationsprotokoll oder von konventionellen oder unter Verwendung von konventionellen Befehlen „GET” und „PUT” des Hypertext Transfer Protocol (HTTP).
  • Der Metadaten-Server identifiziert Metadaten, die der Metadatenabfrage (210) entsprechen. Der Metadaten-Server kann eine oder mehrere Metadatensammlungen identifizieren, die jeweils den spezifischen Identifikatoren, wie oben beschrieben unter Bezugnahme auf 1.
  • Der Metadaten-Server stellt die Metadaten bereit, die der Abfrage der VM-Instanz (212) entsprechen. Der Metadaten-Server kann Metadaten bereitstellen, die in der identifizierten Metadatensammlungen zu der VM-Instanz kategorisiert und gespeichert waren, wie oben beschrieben.
  • Die VM-Instanz erhält und wendet die Metadaten an, um die VM-Instanz (214) zu konfigurieren. In einigen Implementierungen konfiguriert sich die VM-Instanz selbst durch Aktualisieren einer besonderen Einstellung in Verbindung mit der VM-Instanz, beispielsweise durch Aktualisieren von Daten in einer spezifischen Datei. So kann beispielsweise die VM-Instanz einen Metadatenschlüssel „hostname” und seinen entsprechenden Wert „example.com” erhalten. Beruhend auf dem Schlüssel „hostname” kann die VM-Instanz konfiguriert werden, um eine spezifische Datei, z. B. „/etc/hostname” mit dem Wert „example.com” zu aktualisieren. Bei Aktualisieren der Datei „/etc/hostname” kann die VM-Instanz ihre Netzwerkkonfiguration aktualisieren, sodass die Domäne VM-Instanz „example.com” entspricht.
  • 3 ist ein Flussdiagramm von einem Beispielprozess 300 zum Konfigurieren einer Virtual Maschine-Instanz unter Verwendung von Paarungen von Metadatenattributen mit Metadatenwerten. Zur Vereinfachung wird der Prozess 300 in Bezug auf ein System beschrieben, z. B. der Metadaten-Server 130, einhaltend eine oder mehrere Datenverarbeitungsvorrichtungen, die den Prozess 300 ausführen.
  • Das System verknüpft eine oder mehrere Metadatensammlungen mit jeweiligen Identifikatoren, wie oben beschrieben (302).
  • Das System erhält eine Metadatenabfrage zur Anforderung von Metadaten, die mit spezifischen Identifikatoren verknüpft sind, wie oben beschrieben (304). Zum Beispiel kann das System die Anfrage von einer VM-Instanz, die auch mit den spezifischen Identifikatoren verknüpft ist.
  • Das System identifiziert Metadaten, die der Metadatenabfrage entsprechen, wie oben beschrieben (306).
  • Das System stellt die Metadaten zu der VM-Instanz bereit, wie oben beschrieben (308).
  • 4 ist ein schematisches Diagramm einer beispielhaften Host-Maschine. Die Host-Maschine 400 aus einem Datenverarbeitungsgerät 402. Das Datenverarbeitungsgerät 402 kann optional mit einem oder mehreren anderen Computer 490 über ein Netzwerk 480 kommunizieren. Während nur ein Datenverarbeitungsgerät 402 in der 4 gezeigt wird, können vielfache Datenverarbeitungsgeräte an einem oder mehreren Standorten verwendet werden. Das Datenverarbeitungsgerät 402 beinhaltet verschiedene Module, z. B. ausführbare Software-Programme. Eines der Module ist das Kernel 406 eines Host-Betriebssystems (z. B. Host-Betriebssystem 106). Ein Virtual Maschine-Modul 408 (z. B. Virtual Maschine 110) beinhaltet virtuelle Hardware (z. B. virtuelle Hardware 110a), ein Gast-Betriebssystem (z. B. Gast-Betriebssystem 110b) und Gastanwendungen (Gastanwendungen 110c). Obwohl mehrere Softwaremodule dargestellt sind, kann es weniger oder mehr Softwaremodule geben. Außerdem können die Softwaremodule auf einem oder mehreren Datenverarbeitungsgeräten verteilt werden, die durch ein oder mehrere Netzwerke oder andere geeignete Kommunikationsmedien verbunden sind.
  • Das Datenverarbeitungsgerät 402 beinhaltet auch Hardware- oder Firmware-Vorrichtungen, beinhaltend einen oder mehrere Prozessoren 412, eine oder mehrere zusätzliche Vorrichtungen 414, ein computerlesbares Speichermedium 416, eine Kommunikationsschnittstelle 418 und optional eine oder mehrere Benutzeroberflächenvorrichtungen 420. Jeder Prozessor 412 ist in der Lage, Anweisungen zur Ausführung in dem Datenverarbeitungsgerät 402 zu verarbeiten. In einigen Implementierungen ist der Prozessor 412 ein Einfach- oder Multithreading-Prozessor. Jeder Prozessor 412 ist in der Lage, Anweisungen zu verarbeiten, die auf dem computerlesbaren Speichermedium 416 oder auf einer Speichervorrichtung, wie z. B. eine der zusätzlichen Vorrichtungen 414, gespeichert sind. Das Datenverarbeitungsgerät 402 verwendet seine Kommunikationsschnittstelle 418, um mit einem oder mehreren Computer 490 zu kommunizieren, beispielsweise über ein Netzwerk 480. Beispiele von Benutzeroberflächenvorrichtungen 420 beinhalten eine Anzeige, eine Kamera, einen Lautsprecher, ein Mikrofon, eine Vorrichtung mit Touch-Rückmeldung, eine Tastatur und eine Maus. Das Datenverarbeitungsgerät 402 kann Anweisungen speichern, die Vorgänge in Verbindung mit den oben beschriebenen Modulen implementieren, beispielsweise auf dem computerlesbaren Speichermedium 416 oder auf einem oder mehreren der zusätzlichen Vorrichtungen 414, zum Beispiel eine oder mehrere CD-Vorrichtung, eine Festplattenvorrichtung, eine optionale Festplattenvorrichtung oder eine Bandvorrichtung.
  • 4 ist auch ein schematisches Diagramm eines beispielhaften Metadaten-Servers. Der Metadaten-Server besteht generell aus einem oder mehreren Datenverarbeitungsgerät an einem oder mehreren Standorten. Jeder Prozessor ist fähig, Anweisungen zur Ausführung innerhalb des Datenverarbeitungsapparats zu verarbeiten. In manchen Implementierungen ist der Prozessor ein Single- oder Multi-Thread-Prozessor. Jeder Prozessor ist in der Lage, Anweisungen auszuführen, die auf einem computerlesbaren Speichermedium oder auf einem Speichergerät, wie einem der zusätzlichen Geräte, gespeichert sind. Der Datenverarbeitungsapparat verwendet seine Kommunikationsschnittstelle, um mit einem oder mehreren Computer zu kommunizieren, zum Beispiel über ein Netzwerk. Jeder Prozessor ist fähig, Anweisungen zur Ausführung innerhalb des Datenverarbeitungsapparats zu verarbeiten.
  • Ausführungsformen des Gegenstands und die in dieser Spezifikation beschriebenen Tätigkeiten können in digitalen elektronischen Schaltungen oder konkret implementierter Computer-Software, Firmware oder Hardware implementiert werden, einschließlich der in dieser Spezifikation offengelegten Strukturen und ihrer strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer von ihnen. Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können als ein oder mehrere Computerprogramme, d. h. als ein oder mehrere Module von Computerprogrammanweisungen implementiert werden, die auf einem Computer-Speichermedium für die Durchführung durch oder die Kontrolle des Betriebs des datenverarbeitenden Apparats kodiert werden. Alternativ oder zusätzlich können die Programmanweisungen auf einem künstlich erzeugten propagierten Signal, z. B. einem maschinell erzeugten elektrischen, optischen oder elektromagnetischen Signal künstlich kodiert werden, das erzeugt wird, um Informationen für die Übertragung auf einen geeigneten Empfängerapparat für die Ausführung durch einen datenverarbeitenden Apparat zu kodieren. Bei einem Computer-Speichermedium kann es sich um ein maschinell lesbares Speichergerät, einen maschinell lesbaren Speicherträger, eine zufällige oder serielle Direktzugriffsspeichervorrichtung oder um eine Kombination aus einem oder mehreren dieser Geräte handeln.
  • Der Begriff „datenverarbeitender Apparat” umfasst jegliche Apparate, Vorrichtungen oder Maschinen zur Verarbeitung von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers bzw. mehrerer Prozessoren oder Computer. Das Gerät kann logische Sonderzweckschaltungen für spezielle Zwecke beinhalten, z. B. ein FPGA (feldprogrammierbares Gate-Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung). Der Apparat kann neben der Hardware auch einen Code einschließen, der eine Durchführungsumgebung für das betreffende Computerprogramm in der Frage erstellt, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbank-Managementsystem, ein Betriebssystem oder eine Kombination einer oder mehrerer der genannten darstellt.
  • Ein Computerprogramm (auch bezeichnet oder beschrieben als Programm, Software, Softwareanwendung, Modul, Softwaremodul, Script oder Code) kann in einer beliebigen Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder verfahrensorientierter Sprachen, und das Programm kann in jeder beliebigen Form eingesetzt sein, darunter als unabhängiges Programm oder als ein Modul, eine Komponente, eine Subroutine oder eine andere Einheit, die zur Benutzung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten beinhaltet, z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind, in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien, z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern. Ein Computerprogramm kann auf einem Computer oder mehreren Computer eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind.
  • Die in dieser Beschreibung dargestellten Prozesse und Logik-Abläufe können durch einen oder mehrere programmierbare Computer durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch das Arbeiten mit Eingabedaten und das Erzeugen von Ausgaben auszuführen. Die Prozesse und die logischen Abläufe können auch durch logische Sonderzweckschaltungen durchgeführt werden, und der Apparat kann als Sonderzweckschaltungen implementiert werden, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung).
  • Prozessoren, die für die Durchführung eines Computerprogramms geeignet sind, können beispielsweise auf allgemeinen oder Spezial-Mikroprozessoren oder auf beiden oder auf jeglicher Art zentraler Verarbeitungseinheit basieren. Ganz allgemein nimmt eine zentrale Verarbeitungseinheit Anweisungen und Daten von einem schreibgeschützten Speicher oder einem Arbeitsspeicher oder von beiden entgegen. Die wesentlichen Elemente eines Computers sind eine zentrale Verarbeitungseinheit für das Durchführen von Anweisungen und ein oder mehr Speichergeräte für das Speichern von Anweisungen und Daten.
  • Ganz allgemein gehören zu einem Computer auch ein oder mehr Massenspeichergeräte für das Speichern von Daten, z. B. Magnet-, magnetooptische oder optische Disketten, um Daten entgegenzunehmen und/oder zu übertragen, bzw. ist ein Computer operativ an ein solches Speichergerät gekoppelt. Jedoch muss ein Computer solche Geräte nicht haben. Außerdem kann ein Computer in einem anderen Gerät eingebettet sein, z. B. in einem Mobiltelefon, einem Organizer (PDA), einem mobilen Audio- oder Videoplayer, einer Spielkonsole, einem Funknavigationsempfänger oder einem tragbaren Speichergerät, z. B. in einem USB-Stick, um nur einige zu nennen.
  • Computerlesbare Medien, die für das Speichern von Computerprogrammanweisungen und -daten geeignet sind, schließen alle Formen von Permanentspeichern, Medien- und Speichergeräten ein, einschließlich beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und Flash-Speichergeräte; Magnetdisketten, z. B. interne Festplatten oder herausnehmbare Disketten; magnetooptische Disketten; und CD-ROMs und DVD-ROMs. Der Prozessor und der Speicher können durch logische Sonderzweckschaltungen ergänzt werden oder darin eingebaut sein.
  • Um die Interaktion mit einem Benutzer zu ermöglichen, können in dieser Spezifikation beschriebene Ausführungsformen des Gegenstands auf einem Computer mit einem Anzeigegerät implementiert werden, z. B. einem CRT (Kathodenstrahlröhre) oder LCD-(Flüssigkristallanzeige) Monitor, mit welchem dem Benutzer Informationen angezeigt werden, sowie einer Tastatur und einem Anzeigegerät, z. B. einer Maus oder einem Trackball, mit denen der Benutzer Eingaben in den Computer vornehmen kann. Es können auch andere Arten von Einrichtungen verwendet werden, um für eine Interaktion mit einem Nutzer zu sorgen; beispielsweise kann eine dem Benutzer gelieferte Rückkopplung beliebiger Form von sensorischer Rückkopplung vorliegen, z. B. eine visuelle Rückkopplung, auditive Rückkopplung oder taktile Rückkopplung; und die Eingabe von dem Nutzer kann in beliebiger Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe. Darüber hinaus kann ein Computer über das Senden von Dokumenten an und das Empfangen von Dokumenten von einer Einrichtung, die vom Benutzer verwendet wird, mit einem Benutzer interagieren; beispielsweise über das Senden von Webpages an einen Webbrowser auf dem Clientgerät des Benutzers als Antwort auf die vom Webbrowser empfangenen Aufforderungen.
  • Ausführungsformen des in dieser Spezifikation betrachteten Gegenstands können in ein Computersystem implementiert werden, das eine Backend-Komponente (z. B. einen Datenserver), oder eine Middleware-Komponente (z. B. einen Anwendungsserver) oder eine Frontend-Komponente (z. B. einen Kundencomputer mit graphischer Benutzeroberfläche oder einem Webbrowser) umfasst, worüber der Benutzer mit einer Implementierung des in dieser Spezifikation beschriebenen Gegenstands interagieren kann oder eine beliebige Kombination aus solchen Backend, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation miteinander verbunden sein, z. B. ein Kommunikationsnetz. Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk („LAN”), ein Fernnetz („WAN”), wie z. B. das Internet.
  • Das Informatiksystem kann Kunden und Server umfassen. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben.
  • Zwar beinhaltet diese Spezifikation viele spezifische Implementierungsdetails, jedoch sollten diese nicht als Beschränkungen des Umfangs oder des Anspruchs ausgelegt werden, sondern vielmehr als Beschreibungen spezifischer Merkmale bestimmter Ausführungsformen bestimmter Erfindungen. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in jeder geeigneten Unterkombination implementiert werden. Außerdem können ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden, auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar als eine Kombination beansprucht werden, und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.
  • Ebenso werden Tätigkeiten in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, aber dies sollte nicht als Erfordernis verstanden werden, dass solche Tätigkeiten in der bestimmten gezeigten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge ausgeführt werden müssen oder dass alle dargestellten Tätigkeiten ausgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht in allen Ausführungsformen erforderlich aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder in mehreren Softwareprodukten verpackt werden können.
  • Bestimmte Ausführungsformen des Gegenstands wurden beschrieben. Weitere Ausführungsformen gehören zum Umfang der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Vorgänge können beispielsweise in einer anderen Reihenfolge ausgeführt werden und erzielen dennoch gewünschte Ergebnisse. Die in den beigefügten Abbildungen dargestellten Verfahren erfordern beispielsweise nicht notwendigerweise die gezeigte Reihenfolge oder sequentielle Reihenfolge, um erwünschte Ergebnisse zu erzielen. Bei bestimmten Implementierungen können Multitasking und eine Parallelbearbeitung vorteilhaft sein.

Claims (18)

  1. Computerspeichermedium, das mit Anweisungen codiert ist, die bei Ausführung durch einen oder mehrere Computer, die den einen oder die mehreren Computer veranlassen, Vorgänge auszuführen, umfassend: das Verknüpfen einer oder mehrerer einer Vielzahl von Metadatensammlungen mit einer oder mehreren jeweiligen Identifikatoren, worin jede Metadatensammlung eine oder mehrere Paarungen von Metadatenattributen mit Metadatenwerten beinhaltet, und worin jeder Identifikator einer von einem Projektidentifikator, einem Tag-Identifikator oder einem Instanz-Identifikator ist; das Identifizieren, beruhend auf Identifikator-Informationen, verknüpft mit einer Virtual Machine-Instanz, eines oder mehrerer Metadatenwerte, die zu der Virtual Maschine-Instanz bereitgestellt werden sollen, worin die Identifikator-Information einen oder mehrere von einem Projektidentifikator, einem Tag-Identifikator und einem Instanz-Identifikator spezifiziert, und wobei jede identifizierte Metadatenwert zu einer Metadatensammlung verknüpft mit einem Identifikator gehört, der in der Identifikator-Information spezifiziert ist; und das Bereitstellen zur Virtual Maschine-Instanz des identifizierten einen oder der mehreren Metadatenwerte.
  2. Computerspeichermedium nach Anspruch 1, ferner umfassend: das Empfangen von der Virtual Maschine-Instanz einer Metadatenabfrage, die die Identifikator-Information beinhaltet; und das Identifizieren des einen oder der mehreren Metadatenwerte als Antwort auf den Erhalt der Metadatenabfrage.
  3. Computerspeichermedium nach Anspruch 2, worin die Metadatenabfrage unter Verwendung eines Hanging GET-Vorgangs kommuniziert wird.
  4. Computerspeichermedium nach Anspruch 1, ferner umfassend: das Empfangen von Daten, das einen oder mehrere benutzerdefinierte Identifikatoren und eine oder mehrere benutzerdefinierte Paarungen von Metadatenwerten mit Metadatenattributen beinhaltet; das Erzeugen einer Metadatensammlung, die die eine oder mehrere benutzerdefinierte Paarungen beinhaltet; und das Verknüpfen der erzeugten Metadatensammlung mit dem benutzerdefinierten Identifikator.
  5. Computerspeichermedium nach Anspruch 1, worin die Vielzahl von Metadatensammlungen eine erste Metadatensammlung und eine zweite Metadatensammlung beinhaltet, wobei die erste Metadatensammlung mit einem ersten Identifikator verknüpft ist und eine Paarung von einem ersten Metadatenattribut mit einem ersten Metadatenwert beinhaltet, und die zweite Metadatensammlung mit einem zweiten Identifikator verknüpft ist und eine Paarung des ersten Metadatenattributs mit einem zweiten Metadatenwert beinhaltet, wobei der erste Metadatenwert sich vom zweiten Metadatenwert unterscheidet.
  6. Computerspeichermedium nach Anspruch 5, ferner umfassend: das Bereitstellen des ersten Metadatenwerts und des zweiten Metadatenwerts zur Virtual Maschine-Instanz.
  7. Computerspeichermedium nach Anspruch 5, ferner umfassend: das Bestimmen, dass die erste Metadatensammlung eine höhere Prioritätsebene hat als die zweite Metadatensammlung beruhend auf einer Bewertung des ersten Identifikators und des zweiten Identifikators; und das Bereitstellen des ersten Metadatenwert und nicht des zweiten Metadatenwerts zur Virtual Maschine-Instanz.
  8. Computerspeichermedium nach Anspruch 7, worin: der erste Identifikator ein Instanz-Identifikator oder ein Tag-Identifikator ist und der zweite Identifikator ein Projektidentifikator ist; oder der erste Identifikator ein Instanz-Identifikator ist und der zweite Identifikator ein Tag-Identifikator oder ein Projektidentifikator ist.
  9. Computerspeichermedium nach Anspruch 1, ferner umfassend: das Erhalten von Daten, die einen Identifikator und eine neue Paarung von einem Metadatenattribut mit einem Metadatenwert spezifizieren; das Aktualisieren der Metadatensammlung, die mit dem spezifizierten Identifikator Daten verknüpft ist, um die neue Paarung zu beinhalten.
  10. System, das Folgendes umfasst: einen oder mehrere Computer und eine oder mehrere Speichervorrichtungen, die Anweisungen speichert, die bei Ausführung durch den einen oder die mehreren Computer den einen oder die mehreren Computer veranlassen, Vorgänge auszuführen, umfassend: das Verknüpfen einer oder mehrerer einer Vielzahl von Metadatensammlungen mit einer oder mehreren jeweiligen Identifikatoren, worin jede Metadatensammlung eine oder mehrere Paarungen von Metadatenattributen mit Metadatenwerten beinhaltet, und worin jeder Identifikator einer von einem Projektidentifikator, einem Tag-Identifikator oder einem Instanz-Identifikator ist; das Identifizieren, beruhend auf Identifikator-Informationen, verknüpft mit einer Virtual Machine-Instanz, eines oder mehrerer Metadatenwerte, die zu der Virtual Maschine-Instanz bereitgestellt werden sollen, worin die Identifikator-Information einen oder mehrere von einem Projektidentifikator, einem Tag-Identifikator und einem Instanz-Identifikator spezifiziert, und wobei jede identifizierte Metadatenwert zu einer Metadatensammlung verknüpft mit einem Identifikator gehört, der in der Identifikator-Information spezifiziert ist; und Bereitstellen zur Virtual Maschine-Instanz des identifizierten einen oder der mehreren Metadatenwerte.
  11. System nach Anspruch 10, ferner umfassend: das Empfangen von der Virtual Maschine-Instanz einer Metadatenabfrage, die die Identifikator-Information beinhaltet; und das Identifizieren des einen oder der mehreren Metadatenwerte als Antwort auf den Erhalt der Metadatenabfrage.
  12. System nach Anspruch 11, worin die Metadatenabfrage unter Verwendung eines Hanging GET-Vorgangs kommuniziert wird.
  13. System nach Anspruch 10, ferner umfassend: das Empfangen von Daten, das einen oder mehrere benutzerdefinierte Identifikatoren und eine oder mehrere benutzerdefinierte Paarungen von Metadatenwerten mit Metadatenattributen beinhaltet; das Erzeugen einer Metadatensammlung, die die eine oder mehrere benutzerdefinierte Paarungen beinhaltet; und das Verknüpfen der erzeugten Metadatensammlung mit dem benutzerdefinierten Identifikator.
  14. System nach Anspruch 10, worin die Vielzahl von Metadatensammlungen eine erste Metadatensammlung und eine zweite Metadatensammlung beinhaltet, worin die erste Metadatensammlung mit einem ersten Identifikator verknüpft ist und eine Paarung von einem ersten Metadatenattribut mit einem ersten Metadatenwert beinhaltet, und die zweite Metadatensammlung mit einem zweiten Identifikator verknüpft ist und eine Paarung des ersten Metadatenattributs mit einem zweiten Metadatenwert beinhaltet, wobei der erste Metadatenwert sich vom zweiten Metadatenwert unterscheidet.
  15. System nach Anspruch 14, ferner umfassend: das Bereitstellen des ersten Metadatenwerts und des zweiten Metadatenwerts zur Virtual Maschine-Instanz.
  16. System nach Anspruch 14, ferner umfassend: das Bestimmen, dass die erste Metadatensammlung eine höhere Prioritätsebene hat als die zweite Metadatensammlung beruhend auf einer Bewertung des ersten Identifikators und des zweiten Identifikators; und das Bereitstellen des ersten Metadatenwert und nicht des zweiten Metadatenwerts zur Virtual Maschine-Instanz.
  17. System nach Anspruch 16, worin: der erste Identifikator ein Instanz-Identifikator oder ein Tag-Identifikator ist und der zweite Identifikator ein Projektidentifikator ist; oder der erste Identifikator ein Instanz-Identifikator ist und der zweite Identifikator ein Tag-Identifikator oder ein Projektidentifikator ist.
  18. System nach Anspruch 10, ferner umfassend: das Empfangen von Daten, die einen Identifikator und eine neue Paarung von einem Metadatenattribut mit einem Metadatenwert spezifizieren; das Aktualisieren der Metadatensammlung, die mit dem spezifizierten Identifikator Daten verknüpft ist, um die neue Paarung zu beinhalten.
DE202013012495.4U 2012-10-31 2013-10-30 Metadatenbasierte virtual Maschine-Konfiguration Expired - Lifetime DE202013012495U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/665,890 US9170834B2 (en) 2012-10-31 2012-10-31 Metadata-based virtual machine configuration
US13/665,890 2012-10-31

Publications (1)

Publication Number Publication Date
DE202013012495U1 true DE202013012495U1 (de) 2017-01-24

Family

ID=49582818

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202013012495.4U Expired - Lifetime DE202013012495U1 (de) 2012-10-31 2013-10-30 Metadatenbasierte virtual Maschine-Konfiguration

Country Status (5)

Country Link
US (2) US9170834B2 (de)
EP (1) EP2915042B1 (de)
CN (2) CN109375986B (de)
DE (1) DE202013012495U1 (de)
WO (1) WO2014070891A2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430255B1 (en) * 2013-03-15 2016-08-30 Google Inc. Updating virtual machine generated metadata to a distribution service for sharing and backup
WO2014144854A1 (en) * 2013-03-15 2014-09-18 Oracle International Corporation System and method for generic product wiring in a virtual assembly builder environment
US10491533B1 (en) * 2013-05-29 2019-11-26 Amazon Technologies, Inc. Dynamically configured overlay multicast
US10659523B1 (en) * 2014-05-23 2020-05-19 Amazon Technologies, Inc. Isolating compute clusters created for a customer
US10299183B2 (en) 2014-05-23 2019-05-21 Nec Corporation Communication apparatus, communication method, communication system, and program
US9519503B2 (en) * 2014-12-01 2016-12-13 Dell Products, L.P. Systems and methods for virtual machine attribution with fault resilient memory tag
US11157288B2 (en) * 2015-05-06 2021-10-26 Hewlett Packard Enterprise Development Lp Securely and reliably transferring startup script
US9853913B2 (en) * 2015-08-25 2017-12-26 Accenture Global Services Limited Multi-cloud network proxy for control and normalization of tagging data
US10289398B2 (en) * 2015-09-26 2019-05-14 Cisco Technology, Inc. In-service upgrade of kernel loadable modules
US20170147355A1 (en) * 2015-11-24 2017-05-25 Le Holdings (Beijing) Co., Ltd. Method and system for accelerating intelligent terminal boot speed
US9678857B1 (en) * 2015-11-30 2017-06-13 International Business Machines Corporation Listing optimal machine instances
US10650007B2 (en) * 2016-04-25 2020-05-12 Microsoft Technology Licensing, Llc Ranking contextual metadata to generate relevant data insights
GB201607825D0 (en) 2016-05-04 2016-06-15 King Com Ltd A method and apparatus for processing data
CN107770095B (zh) * 2016-08-22 2021-07-06 阿里巴巴集团控股有限公司 一种用于控制虚拟机元数据访问的方法与设备
US10437928B2 (en) * 2016-12-30 2019-10-08 Google Llc Device identifier dependent operation processing of packet based data communication
US11397726B2 (en) * 2017-11-15 2022-07-26 Sumo Logic, Inc. Data enrichment and augmentation
US11182434B2 (en) 2017-11-15 2021-11-23 Sumo Logic, Inc. Cardinality of time series
US11615142B2 (en) * 2018-08-20 2023-03-28 Salesforce, Inc. Mapping and query service between object oriented programming objects and deep key-value data stores
US11327814B2 (en) * 2018-11-28 2022-05-10 International Business Machines Corporation Semaphores for serverless computing
CN109726592B (zh) * 2018-12-31 2021-02-23 联动优势科技有限公司 一种数据沙盒的处理方法及装置
US11620147B2 (en) * 2019-04-02 2023-04-04 International Business Machines Corporation Metadata service provisioning in a cloud environment
US11237747B1 (en) * 2019-06-06 2022-02-01 Amazon Technologies, Inc. Arbitrary server metadata persistence for control plane static stability
EP4213016A4 (de) * 2020-09-30 2024-02-07 Huawei Cloud Computing Tech Co Ltd Cloud-plattform und auf cloud-plattform basierendes programmcodeverarbeitungsverfahren
US11941125B2 (en) 2021-03-14 2024-03-26 Microsoft Technology Licensing, Llc Automatic update of VM sets
US20230106318A1 (en) * 2021-10-05 2023-04-06 Vmware,Inc. Automated methods and systems that provide resource recommendations for virtual machines
CN114299522B (zh) * 2022-01-10 2023-08-29 北京百度网讯科技有限公司 图像识别方法装置、设备和存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208988B1 (en) * 1998-06-01 2001-03-27 Bigchalk.Com, Inc. Method for identifying themes associated with a search query using metadata and for organizing documents responsive to the search query in accordance with the themes
US6678695B1 (en) * 2001-06-29 2004-01-13 Trilogy Development Group, Inc. Master data maintenance tool for single source data
US7962545B2 (en) 2002-12-27 2011-06-14 Intel Corporation Dynamic service registry for virtual machines
CN1577251B (zh) * 2003-07-28 2012-07-18 国际商业机器公司 小服务器程序的远程协作方法和系统
US7587721B2 (en) 2004-05-20 2009-09-08 Sap Ag Sharing objects in runtime systems
EP2369479A3 (de) * 2006-01-24 2011-12-21 Citrix Systems, Inc. Verfahren und System zur Bereitstellung des Zugriffs auf eine Computerumgebung
US20080104586A1 (en) * 2006-10-27 2008-05-01 Microsoft Corporation Allowing Virtual Machine to Discover Virtual Status Thereof
US9461819B2 (en) * 2007-05-23 2016-10-04 Nec Corporation Information sharing system, computer, project managing server, and information sharing method used in them
US8918488B2 (en) * 2009-02-04 2014-12-23 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
US8516217B2 (en) * 2009-03-27 2013-08-20 International Business Machines Corporation Managing a logically partitioned computing system through a virtual file system
US9229748B2 (en) 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8607054B2 (en) * 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
US8924964B2 (en) * 2010-11-01 2014-12-30 Microsoft Corporation Dynamic allocation and assignment of virtual environment
US8959511B2 (en) 2010-12-14 2015-02-17 Microsoft Corporation Template virtual machines
US8392526B2 (en) * 2011-03-23 2013-03-05 Color Labs, Inc. Sharing content among multiple devices
US8935704B2 (en) * 2012-08-10 2015-01-13 International Business Machines Corporation Resource management using reliable and efficient delivery of application performance information in a cloud computing system
US8838961B2 (en) * 2012-09-14 2014-09-16 Netflix, Inc. Security credential deployment in cloud environment

Also Published As

Publication number Publication date
CN104823163A (zh) 2015-08-05
US9170834B2 (en) 2015-10-27
US20140123136A1 (en) 2014-05-01
CN109375986A (zh) 2019-02-22
US9798566B2 (en) 2017-10-24
EP2915042A2 (de) 2015-09-09
WO2014070891A2 (en) 2014-05-08
US20160048410A1 (en) 2016-02-18
WO2014070891A3 (en) 2014-11-06
CN104823163B (zh) 2018-11-23
CN109375986B (zh) 2020-06-09
EP2915042B1 (de) 2022-12-28

Similar Documents

Publication Publication Date Title
DE202013012495U1 (de) Metadatenbasierte virtual Maschine-Konfiguration
DE102013207608B4 (de) Instrumentieren von Software-Anwendungen für die Konfiguration derselben
DE202012013448U1 (de) Prozessormodussperre
DE112015004562T5 (de) Kontextbasiertes Cloud-System für die Zusicherung von Sicherheit
DE202015009254U1 (de) Automatisch erzeugende ausführungssequenzen für workflows
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
DE102009023953A1 (de) Verfahren zum Booten eines zustandslosen Client
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE112010004160T5 (de) Portieren virtueller Abbilder zwischen Plattformen
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE202014010943U1 (de) Wechseln zu und aus nativen Webanwendungen
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE112011101357T5 (de) Dynamisches Token für den vorübergehenden Datenzugriff
DE102016222861A1 (de) Transparentes, sicheres Durchführen von Abrufvorgängen
DE112020000912T5 (de) Verwalten von software-programmen
DE202013012500U1 (de) Systemübergreifende Installation von Online-Applikationen
DE112014002051T5 (de) Sichern und Wiederherstellen einer Anwendung
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE112015001914T5 (de) Dauerhaftes Speichern und Verwalten von Anwendungsnachrichten
DE112011103428T5 (de) Automatisierte Analyse zusammengesetzter Anwendungen
DE102012224492A1 (de) Auslösen von Fensterbedingungen unter Verwendung einer Ausnahmebehandlung
DE102021130396A1 (de) Datenzugriffsüberwachung und -steuerung

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R151 Utility model maintained after payment of second maintenance fee after six years
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0009455000

R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right