DE112006003004T5 - Kommunikation zwischen Partitionen in einer Virtualisierungsumgebung - Google Patents

Kommunikation zwischen Partitionen in einer Virtualisierungsumgebung Download PDF

Info

Publication number
DE112006003004T5
DE112006003004T5 DE112006003004T DE112006003004T DE112006003004T5 DE 112006003004 T5 DE112006003004 T5 DE 112006003004T5 DE 112006003004 T DE112006003004 T DE 112006003004T DE 112006003004 T DE112006003004 T DE 112006003004T DE 112006003004 T5 DE112006003004 T5 DE 112006003004T5
Authority
DE
Germany
Prior art keywords
data
application program
virtualization
software
metadata descriptor
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.)
Ceased
Application number
DE112006003004T
Other languages
English (en)
Inventor
Alan Stone
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112006003004T5 publication Critical patent/DE112006003004T5/de
Ceased legal-status Critical Current

Links

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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren, umfassend:
Ermöglichen der Kommunikation zwischen Anwendungsprogrammen in Softwarestapeln in verschiedenen Virtualisierungspartitionen mittels Datenelementen, wobei jedes Datenelement einen Metadaten-Deskriptor mit einem oder mehreren Eigenschaftswertepaaren umfaßt und das Ermöglichen der Kommunikation die Identifizierung einer Beziehung zwischen einem ersten Anwendungsprogramm und einem zweiten Anwendungsprogramm basierend auf einem jeweils von dem ersten Anwendungsprogramm und dem zweiten Anwendungsprogramm bereitgestellten Datenelement umfaßt.

Description

  • HINTERGRUND
  • Diese Beschreibung betrifft Kommunikation zwischen Partitionen in einer Virtualisierungsumgebung.
  • In einem typischen nicht virtualisierten Rechnersystem steuert ein einziges Betriebssystem die zugrunde liegenden Hardwareressourcen. Eine Virtualisierung für ein Rechnersystem umfaßt im Allgemeinen eine Softwarekomponente („Virtueller Maschinenmonitor"), welche die Zugriffe auf die Hardwareressourcen verteilt, so daß mehrere Softwarestapel, welche jeweils ein Betriebssystem und Anwendungsprogramme umfassen, die Ressourcen gemeinsam nutzen können. Der virtuelle Maschinenmonitor präsentiert jedem Softwarestapel einen Satz virtueller Plattformschnittstellen, die eine virtuelle Maschine darstellen. Dabei virtualisiert der virtuelle Maschinenmonitor das Rechnersystem in mehrere virtuelle Partitionen. Die Virtualisierung eines Rechnersystems kann die Systemsicherheit und Zuverlässigkeit durch Isolieren der mehreren Softwarestapel in den virtuellen Maschinen insgesamt verbessern. Die Sicherheit kann verbessert werden, da Eingriffe auf die virtuelle Maschine, in der sie auftreten, beschränkt werden, während die Zuverlässigkeit dadurch verbessert wird, dass Softwarepannen in einer virtuellen Maschine die anderen virtuellen Maschinen nicht beeinträchtigen. Gegenwärtige virtuelle Maschinenmonitore ermöglichen Softwarestapeln in verschiedenen virtuellen Partitionen, mittels typischerweise auf gemeinsam genutztem Speicher oder Vernetzung basierenden Methoden, miteinander zu kommunizieren.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm einer Virtualisierungsumgebung.
  • 2 ist ein Flußdiagramm eines Prozesses der gemeinsamen Nutzung von Dateninhalt.
  • 3 ist ein Flußdiagramm eines Prozesses zum Abrufen von Dateninhalt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 zeigt ein Rechnersystem 100, das virtualisierte Software 122, Virtualisierungssoftware 124 und Plattform-Hardware 114 umfaßt. Die Virtualisierungssoftware 124 umfaßt eine Softwarekomponente, in dieser Beschreibung als virtueller Maschinenmonitor 110 bezeichnet, der die Plattform-Hardware 114 des Systems 100 zur Bereitstellung einer Virtualisierungsumgebung 102 virtualisiert, in welcher mehrere Virtualisierungspartitionen gemeinsam existieren. Jede Virtualisierungspartition hat einen Softwarestapel 104, der Anwendungsprogramme 106 und ein Betriebssystem 108 umfaßt. Die Bereitstellung einer Virtualisierungsumgebung 102 mit mehreren Partitionen ermöglicht den Betrieb mehrerer Exemplare eines oder verschiedener Betriebssysteme auf einem einzigen Rechnersystem 100.
  • Der virtuelle Maschinenmonitor 110 verwaltet die gesamten Hardwareressourcen (beispielsweise Prozessoren 120, Speicher und E-/A-Einrichtungen) solcherart, daß der Softwarestapel 104 jeder Partition die Illusion hat, die zugrunde liegende Hardware komplett „zu besitzen" und daher das einzige System zu sein, das darauf läuft. Das bedeutet, der virtuelle Maschinenmonitor 110 präsentiert jedem Softwarestapel 104 eine virtuelle Maschine und vermittelt den Zugriff auf die Hardwareressourcen der zugrunde liegenden Plattform-Hardware 114 solcherart, daß sich ein Betriebssystem 108a oder ein Anwendungsprogramm 106a eines Softwarestapels 104a nicht dessen bewußt ist, daß Ressourcen gemeinsam mit einem Betriebssystem 108b oder einem Anwendungsprogramm 106b eines anderen Softwarestapels 104b genutzt werden.
  • Jedes Anwendungsprogramm 106 eines Softwarestapels 104 in einer Virtualisierungspartition hat einen eigenen Adreßspeicher („anwendungsspezifischer Datenspeicher") 116, in dem das Anwendungsprogramm Dateninhalte und Metadatenbeschreibungen speichern kann. In manchen Ausführungsformen verfügt jeder Metadaten-Deskriptor über ein oder mehrere in Übereinstimmung mit einem gut entwickelten Plattform-agnostischen Schema wie beispielsweise XML (Extensible Markup Language) strukturierte Eigenschaftswertepaare. Obzwar sich die nachstehenden Beispiele auf Dateninhalt mit einem assoziierten Metadaten-Deskriptor beziehen, der die Attribute des Dateninhalts beschreibt, kommt es vor, daß ein in einem anwendungsspezifischen Datenspeicher 116 gespeicherter Metadaten-Deskriptor nicht mit Dateninhalt assoziiert ist, sowie es auch Dateninhalt geben kann, der nicht mit einem Metadaten-Deskriptor assoziiert ist.
  • Der virtuelle Maschinenmonitor 110 kann zur Bereitstellung eines Dienstes implementiert werden, welcher in dieser Beschreibung als Gemeinschaftsspeicher 112 bezeichnet wird, der den Anwendungsprogrammen in Softwarestapeln 104 in verschiedenen Virtualisierungspartitionen die Kommunikation (beispielsweise die gemeinsame Nutzung/Abrufen von Dateninhalt, Metadaten-Deskriptor oder beidem) ermöglicht, ohne das Betriebssystem 108 des jeweils anderen Softwarestapels 104 zu involvieren. Der Gemeinschaftsspeicher (collaboration space) 112 ist zur Unterstützung mindestens der folgenden Eigenschaften und Grundelemente logisch definiert: (1) Speichervorgänge werden mittels assoziativer Adressierung durchgeführt, das heißt, Adressierung ohne physikalische oder virtuelle Adressierung; (2) ein Anwendungsprogramm, das eine Quelle für Dateninhalt ist, braucht nichts über ein Anwendungsprogramm zu wissen, das eine Datensenke ist und umgekehrt; und (3) ein Anwendungsprogramm, das eine Quelle für Dateninhalt ist, braucht nicht gleichzeitig in Betrieb zu sein (beispielsweise gestartet oder aktiv) wie ein Anwendungsprogramm, das eine Datensenke ist und umgekehrt.
  • Der Gemeinschaftsspeicher 112 kann als Bibliothek von Prozeduren zur Verwaltung eines Adreßspeichers („zentraler Datenspeicher") des virtuellen Maschinenmonitors 110 implementiert werden.
  • Die Bibliothek umfaßt Routinen, die einem Anwendungsprogramm eines Softwarestapels 104 einer Virtualisierungspartition das Ausführen einfacher Speichervorgänge ermöglicht, wie eine PUT-Prozedur zum Speichern von Dateninhalt 101b im zentralen Datenspeicher 118 und eine GET-Prozedur zum Abrufen von Dateninhalt 101b aus dem zentralen Datenspeicher 118. In manchen Ausführungsformen leitet die Prozedurbibliothek einen Satz an Anweisungsklassen von den nativen Anweisungen einer Anweisungssatzarchitektur eines Prozessors ab. In manchen Ausführungsformen wird die Anweisungssatz-Architektur des Prozessors ausgeweitet, um die gemeinschaftsspeicherspezifischen Anweisungen wie eine PUT_GS-Anweisung und eine GET_GS-Anweisung zu umfassen, die die Eigenschaften und Grundelemente des Gemeinschaftsspeichers 112 unterstützen.
  • 2 zeigt ein Flußdiagramm eines gemeinsamen Datennutzungsprozesses 200. Zur gemeinsamen Nutzung von im anwendungsspezifischen Datenspeicher 116 befindlichem Dateninhalt 101 ruft (202) ein Anwendungsprogramm 106a die PUT-Prozedur auf und leitet (204) Argumente zur PUT-Prozedur, um eine Speicheranforderung durchzuführen. In einer Ausführungsform leitet das Anwendungsprogramm 106a zwei Zeiger als Argumente. Der erste Zeiger verweist auf eine Stelle im anwendungsspezifischen Datenspeicher 116a, an der der Dateninhalt (101b), der gemeinsam genutzt werden soll, gespeichert ist. Der zweite Zeiger verweist auf eine Stelle im anwendungsspezifischen Datenspeicher 116a, an der der mit dem Dateninhalt, der gemeinsam genutzt werden soll, assoziierte Metadaten-Deskriptor (101a) gespeichert ist.
  • Der virtuelle Maschinenmonitor 110 führt (206) die Anweisung(en) der PUT-Prozedur aus, kopiert (208) den Dateninhalt und Metadaten-Deskriptor von durch die Zeiger ausgewiesenen Stellen im anwendungsspezifischen Datenspeicher 116a und speichert (210) Kopien von Dateninhalt und Metadaten-Deskriptor im zentralen Datenspeicher 118. In manchen Ausführungsformen werden die Kopien von Metadaten-Deskriptor 101a und Dateninhalt 101b im zentralen Datenspeicher 118 respektive als Tag (Marke) und Payload des Datenelements 101 an der Stelle des zentralen Datenspeichers 118 gespeichert, welche direkt vom Metadaten-Deskriptor 101a adressierbar ist. Nachdem das Datenelement 101 gespeichert wurde, geht die Steuerung auf die übliche Art, mit der Prozeduraufrufe zurückkehren, wieder zum Anwendungsprogramm 106a zurück (212).
  • Wie bereits erörtert, beschreibt ein Metadaten-Deskriptor Attribute seines zugehörigen Dateninhalts. In manchen Beispielen hat ein im zentralen Datenspeicher 118 gespeichertes Datenelement einen Metadaten-Deskriptor, der einen Namen für seinen assoziierten Dateninhalt bereitstellt. Der Name kann eine global einzigartige Kennzeichnung sein (z. B. C84D7-211E8-G0CD5-E73AC) oder eine Funktion des Dateninhalts repräsentieren (z. B. Name="RESET", Geschwindigkeit=" 125 Mb/s", Sicherheit="ON").
  • 3 zeigt ein Flußdiagramm eines Dateninhalt-Abrufprozesses 300. Zum Abrufen von im zentralen Datenspeicher 118 befindlichem Dateninhalt 101b ruft (302) ein Anwendungsprogramm 106c die GET-Prozedur auf und leitet (304) Argumente zur GET-Prozedur, um eine Abrufanforderung durchzuführen. In einer Ausführungsform leitet das Anwendungsprogramm 106c zwei Zeiger als Argumente. Der erste Zeiger verweist auf eine Stelle im anwendungsspezifischen Datenspeicher 116c, an der ein Metadaten-Deskriptor gespeichert ist. Der zweite Zeiger verweist auf eine Stelle im anwendungsspezifischen Datenspeicher 116c, an der der Dateninhalt, der abgerufen werden soll, gespeichert ist. Der Metadaten-Deskriptor an der vom ersten Zeiger ausgewiesenen Stelle des anwendungsspezifischen Datenspeichers 116c definiert Attribute des Dateninhalts, den das Anwendungsprogramm 106c abrufen möchte. In einem Beispielszenario umfaßt der Metadaten-Deskriptor an der ersten Stelle einen Namen (name=*), wobei (*) einen Platzhalter für einen Eigenschaftswert repräsentiert.
  • Der virtuelle Maschinenmonitor 110 führt (306) die Anweisung(en) der GET-Prozedur aus, identifiziert (308) jedes Datenelement mit einem Metadaten-Deskriptor, der das Metadaten-Kriterium name=* erfüllt, und kopiert (310) den Dateninhalt jedes identifizierten Datenelements in den zentralen Datenspeicher (118) an die zweite Stelle, auf die im anwendungsspezifischen Datenspeicher 116c verwiesen wird. Die Bereitstellung eines Platzhalters für den Eigenschaftswert (*) und prädizierte Logik (z. B. UND, ODER bzw. AND, OR) im Metadaten-Deskriptor von name=* ermöglicht die Auswahl von Dateninhalt basierend auf das Erfüllen von Kriterien. So erweitert oder beschränkt beispielsweise ein Metadaten-Deskriptor von name="RESET", name="LORD" und name="SHUTDOWN" bzw. name="RESET" OR "LOAD" den durch das Aufrufen der GET-Prozedur abgerufenen Dateninhalt. Nachdem der Dateninhalt des Datenelements im anwendungsspezifischen Speicher 116c gespeichert wird, kehrt die Steuerung auf die übliche Art, mit der Prozeduraufrufe zurückkehren, wieder zum Anwendungsprogramm 106c zurück (312).
  • Eine beliebige Anzahl an Prozessen zur gemeinsamen Nutzung von Daten und zum Datenabruf kann gleichzeitig auftreten, ohne sonstige ablaufenden Prozesse zu stören oder involvieren. Der Gemeinschaftsspeicherdienst (112) im virtuellen Maschinenmonitor vermittelt sämtliche PUT- und GET-Transaktionen und gewährleistet, daß sie nicht teilbar sind. Somit werden Partitionen asynchron ausgeführt.
  • Die Einbeziehung eines Gemeinschaftsspeichers 112 in einer Virtualisierungsumgebung 102 wie vorstehend unter 1 bis 3 beschrieben, ermöglicht Anwendungsprogrammen in Softwarestapeln verschiedener Virtualisierungspartitionen unter Ausschluß der Betriebssysteme der jeweiligen Partitionen miteinander zu agieren und kommunizieren. Die Nutzung eines Gemeinschaftsspeichers 112 durch Anwendungsprogramme erschließt auch schnellere Pfade zu Speicher und Prozessoren der zugrunde liegenden Plattform-Hardware 114. Bei einem Ausfall in einem Prozessor oder Anwendungsprogramm ist der Gemeinschaftsspeicher 112 nicht kompromittiert, da der Gemeinschaftsspeicher 112 in manchen Ausführungsformen über einen von dem Speicher des Prozessors selbst getrennten Speicher verfügen kann. Separater Speicher ermöglicht raschen Neustart, Checkpointing (eine Datenwiederherstellungsmethode für fehlertolerante Anwendungsprogramme) und Replikation. Insgesamt ist die Komplexität des Systems 100 reduziert und Verarbeitungsleistung, Zuverlässigkeit und Effizienz infolge der Verlagerung der Kommunikation und Speichertransfervorgänge von Anwendungsspeicher zu VVM-Speicher (VVM – Virtueller Maschinenmonitor), möglicherweise unterstützt durch Hardwareumsetzung, erhöht.
  • Neben der vorstehend beschriebenen Kommunikation zwischen den Partitionen kann der Gemeinschaftsspeicher 112 zusätzliche spezifische Gemeinschaftsspeicherdienste (GS-Dienste) wie Verschlüsselungs-, Replikations-, Persistenz- und Räumungspolitiken, Zugriffssteuerungsprivilegien und sonstige Funktionen bereitstellen. Anwendungsprogramme geben optional Parameter vor oder aktivieren bzw. deaktivieren derartige GS-Dienste durch Einschließen relevanter reservierter Systemanweisungen in den Metadaten-Deskriptoren der in den Gemeinschaftsspeicher geleiteten Datenelemente. Angenommen, die in den Gemeinschaftsspeicher 112 gestellten Datenelemente sollten beispielsweise aus Sicherheitsgründen verschlüsselt werden. Eine optional reservierte Eigenschaft wie „verschlüsseln" kann durch Angabe des Werts „TRUE" aktiviert werden (d. h. verschlüsseln=TRUE bzw. encrypt=TRUE). Der Gemeinschaftsspeicher-Adapter interpretiert die mit den Dienstanweisungen assoziierten Eigenschaftswertepaare und ergreift die entsprechende Maßnahme (in diesem Beispiel die Verschlüsselung von sowohl Metadaten-Deskriptor als auch Payload eines Datenelements). Auf diese Weise ist der Gemeinschaftsspeicher zur Beinhaltung derartiger optionaler Funktionen in verschiedenen Ausführungsformen erweiterbar. Des Weiteren werden GS-Dienste von Anwendungsprogrammen direkt gesteuert, ohne daß Sonderschnittstellen aufgerufen werden müssen. Sämtliche derartige Kommunikation wird einfach durch das Plazieren von Datenelementen in den Gemeinschaftsspeicher 112 durchgeführt.
  • In manchen Ausführungsformen kann der Gemeinschaftsspeicher 112 mehr als eine Virtualisierungsumgebung umspannen und so die Bereitstellung des gleichen Dienstes in einem Netzwerk mit anderen Virtualisierungsumgebungen (d. h. Plattformen) ermöglichen. In derartigen Ausführungsformen werden die gleichen Fähigkeiten auf mehrere Plattformen im Netzwerk ausgedehnt, mit dem Vorteil, daß die Anwendungssoftware dank des Gemeinschaftsspeichers keine physikalischen oder virtuellen Adressen der Knoten zu kennen braucht.
  • Die Methoden einer Ausführungsform der Erfindung können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, welche ein Computerprogramm zur Durchführung von Funktionen der Ausführungsform in Form einer Verarbeitung von Eingangsdaten und Erzeugen von Ausgabedaten ausführen. Die Anordnung einer Ausführung der Erfindung kann in Form von Sonder-Logikschaltkreisen ausgeführt und die Methoden der Erfindung können von Sonder-Logikschaltkreisen durchgeführt werden, beispielsweise in Form einer oder mehrerer FPGA (FPGA = Feldprogrammierbare Gate-Anordnung) und/oder eines oder mehrerer anwendungsspezifischer integrierter Schaltkreise (ASIC = applicationspecific integrated circuit).
  • Für die Ausführung eines Computerprogramms geeignete Prozessoren umfassen beispielsweise sowohl universelle als auch spezielle Mikroprozessoren sowie einen oder mehrere Prozessoren von jeglicher Art von digitalem Computer. Im Allgemeinen erhält ein Prozessor Anweisungen und Daten von einem Speicher (z. B. Speicher 330). Der Speicher kann eine breite Vielfalt an Speichermedien umfassen; einschließlich, jedoch nicht beschränkt auf flüchtigen Speicher, nicht flüchtigen Speicher, Flash-Speicher, Speicher mit programmierbaren Variablen und Zuständen, Direktzugriffspeicher (RAM), nur lesbaren Speicher (ROM), Flash- oder sonstige statische oder dynamische Speichermedien. In einem Beispiel können dem Speicher über eine Form von maschinenzugänglichem Medium maschinenlesbare Anweisungen oder Inhalt bereitgestellt werden. Ein maschinenzugängliches Medium kann jede Vorrichtung darstellen, die Informationen in einer Form bereitstellt (d. h. speichert oder überträgt), die von einer Maschine lesbar ist (z. B. einem ASIC, einer Sonderfunktionssteuereinrichtung oder Prozessor, FPGA oder sonstiger Hardwareeinrichtung). Ein maschinenzugängliches Medium kann beispielsweise umfassen: ROM; RAM; magnetische Datenspeichermedien; optische Speichermedien; Flash- Speichereinrichtungen; elektrische, optische, akustische oder sonstige Form von propagierten Signalen (z. B. Trägerwellen, Infrarotsignale, Digitalsignale); u. Ä. Der Prozessor und der Speicher können in Sonderlogikschaltkreisen integriert oder durch diese ergänzt werden.
  • Andere Ausführungsformen fallen in den Schutzbereich der nachfolgenden Ansprüche. So können die hier beschriebenen Methoden in einer anderen Reihenfolge ausgeführt werden und noch immer die gewünschten Ergebnisse erzielen. Ein weiteres Beispiel eines Systems, das
  • Zusammenfassung
  • Methoden zum Ermöglichen der Kommunikation von Anwendungsprogrammen in Softwarestapeln in verschiedenen Virtualisierungspartitionen mittels Datenelementen, wobei jedes Datenelement einen Metadaten-Deskriptor mit einem oder mehreren Eigenschaftswertepaaren umfaßt und das Ermöglichen der Kommunikation die Identifizierung einer Beziehung zwischen einem ersten Anwendungsprogramm und einem zweiten Anwendungsprogramm basierend auf einem jeweils von dem ersten Anwendungsprogramm und dem zweiten Anwendungsprogramm bereitgestellten Datenelement umfaßt.

Claims (29)

  1. Verfahren, umfassend: Ermöglichen der Kommunikation zwischen Anwendungsprogrammen in Softwarestapeln in verschiedenen Virtualisierungspartitionen mittels Datenelementen, wobei jedes Datenelement einen Metadaten-Deskriptor mit einem oder mehreren Eigenschaftswertepaaren umfaßt und das Ermöglichen der Kommunikation die Identifizierung einer Beziehung zwischen einem ersten Anwendungsprogramm und einem zweiten Anwendungsprogramm basierend auf einem jeweils von dem ersten Anwendungsprogramm und dem zweiten Anwendungsprogramm bereitgestellten Datenelement umfaßt.
  2. Verfahren nach Anspruch 1, wobei mindestens eines der Eigenschaftswertepaare in Übereinstimmung mit einem Schema strukturiert ist.
  3. Verfahren nach Anspruch 2, wobei das Schema ein XML-Schema umfaßt.
  4. Verfahren nach Anspruch 1, wobei das Ermöglichen umfaßt: Durchführen einer einen Speichervorgang umfassenden Kommunikation.
  5. Verfahren nach Anspruch 4, wobei der Speichervorgang ohne Involvieren eines Betriebssystems mindestens eines der Softwarestapel durchgeführt wird.
  6. Verfahren nach Anspruch 1, wobei das Ermöglichen umfaßt: Speichern eines der Datenelemente an einer Stelle in einem zentralen Datenspeicher, die mittels des Metadaten-Deskriptors indirekt adressierbar ist.
  7. Verfahren nach Anspruch 6, wobei der Speichervorgang ohne Involvieren eines Betriebssystems eines Anwendungsprogrammes eines beliebigen der Softwarestapel durchgeführt wird.
  8. Verfahren nach Anspruch 1, wobei das Ermöglichen umfaßt: Empfang einer Aufforderung von einem Anwendungsprogramm eines der Softwarestapel zum Speichern des Datenelements im zentralen Datenspeicher.
  9. Verfahren nach Anspruch 8, wobei die Aufforderung einen ersten Zeiger auf an einer ersten Stelle in einem anwendungsspezifischen Datenspeicher gespeicherten Dateninhalt umfaßt.
  10. Verfahren nach Anspruch 9, wobei die Aufforderung des Weiteren einen zweiten Zeiger auf einen an einer zweiten Stelle im anwendungsspezifischen Datenspeicher gespeicherten Metadaten-Deskriptor umfasst, und der Metadaten-Deskriptor mindestens ein Attribut des an der ersten Stelle gespeicherten Dateninhalts definiert.
  11. Verfahren nach Anspruch 1, wobei das Ermöglichen umfaßt: Abrufen eines Datenelements von einer Stelle in einem zentralen Datenspeicher, die mittels eines Metadaten-Deskriptors adressierbar ist.
  12. Verfahren nach Anspruch 1, wobei das Ermöglichen umfaßt: Empfang einer Aufforderung von einem Anwendungsprogramm eines der Softwarestapel zum Abrufen von mit einem ersten Metadaten-Deskriptor assoziierten Datenelementen.
  13. Verfahren nach Anspruch 12, wobei die Aufforderung einen ersten Zeiger auf an einer ersten Stelle in einem anwendungsspezifischen Datenspeicher gespeicherten Metadaten-Deskriptor umfaßt.
  14. Verfahren nach Anspruch 13, wobei die Aufforderung des Weiteren einen zweiten Zeiger auf eine zweite Stellen im anwendungsspezifischen Datenspeicher umfasst, und die zweite Stelle zum Speichern der abgerufenen Datenelemente den ersten Metadaten-Deskriptor aufweist.
  15. Verfahren nach Anspruch 12, weiterhin umfassend: Identifizieren von an respektiven Stellen im zentralen Datenspeicher gespeicherten Datenelementen, die den ersten Metadaten-Deskriptor haben, sowie Abrufen der identifizierten Datenelemente von den respektiven Stellen im zentralen Datenspeicher.
  16. Maschinenzugängliches Medium, das Inhalt umfaßt, der, wenn er von einer Maschine ausgeführt wird, diese dazu veranlaßt: Kommunikation zwischen Anwendungsprogrammen in Softwarestapeln in verschiedenen Virtualisierungspartitionen mittels Datenelementen zu ermöglichen, wobei jedes Datenelement einen Metadaten-Deskriptor mit einem oder mehreren Eigenschaftswertepaaren umfaßt, wobei der Inhalt bei Ausführung durch die Maschine diese eine Beziehung zwischen einem ersten Anwendungsprogrammen und einem zweiten Anwendungsprogramm basierend auf einem jeweils von dem ersten Anwendungsprogramm und dem zweiten Anwendungsprogramm bereitgestellten Datenelement identifizieren läßt.
  17. Maschinenzugängliches Medium nach Anspruch 16, das des Weiteren Inhalt umfaßt, der, wenn er von einer Maschine ausgeführt wird, diese dazu veranlaßt: einen Speichervorgang auszuführen, ohne ein Betriebssystem mindestens eines der Softwarestapel zu involvieren.
  18. Verfahren, umfassend: Ermöglichen der Kommunikation zwischen Anwendungsprogrammen von Softwarestapeln einer Virtualisierungsumgebung, ohne mindestens eines der Betriebssysteme eines der Softwarestapel zu involvieren.
  19. Verfahren nach Anspruch 18, wobei das Ermöglichen der Kommunikation die Befähigung der Anwendungsprogramme zur Kommunikation mittels Datenelementen umfaßt, und jedes Datenelement einen Metadaten-Deskriptor umfaßt, der über ein oder mehrere Eigenschaftswertepaare aufweist.
  20. Vorrichtung, umfassend: einen zentralen Datenspeicher, in dem Datenelemente gespeichert sind, die jeweils einen Metadaten-Deskriptor umfassen, und die Datenelemente die Kommunikation zwischen Anwendungsprogrammen von Softwarestapeln einer Virtualisierungsumgebung erleichtern.
  21. Vorrichtung nach Anspruch 20, wobei der zentrale Datenspeicher von einem virtuellen Maschinenmonitor der Virtualisierungsumgebung verwaltet wird.
  22. Verfahren, umfassend: einem Anwendungsprogramm in einem Softwarestapel in einer Virtualisierungsumgebung ermöglichen, einen oder mehrere Parameter eines Gemeinschaftsspeichers durch Leiten eines Datenelements in den Gemeinschaftsspeicher zu steuern, wobei das Datenelement einen Metadaten-Deskriptor umfasst, der mindestens eine Dienstanweisung des Gemeinschaftsspeichers definiert.
  23. Verfahren nach Anspruch 22, wobei mindestens eine der Dienstanweisungen ein Eigenschaftswertepaar umfaßt.
  24. Verfahren nach Anspruch 22, wobei mindestens eine der Dienstanweisungen mit einem oder mehreren der Folgenden assoziiert ist: einer Verschlüsselungspolitik, einer Replikationspolitik, einer Persistenzpolitik, einer Räumungspolitik oder einer Zugriffskontrolle-Privilegpolitik.
  25. System, umfassend: Plattform-Hardware; sowie Virtualisierungssoftware, welche die Plattform-Hardware virtualisiert, um mehrere Virtualisierungspartitionen einer Virtualisierungsumgebung zu bilden, wobei jede Virtualisierungspartition einen Softwarestapel aufweist, der ein Betriebssystem und ein Anwendungsprogramm umfasst, und die Virtualisierungssoftware Anwendungsprogrammen in den Softwarestapeln in verschiedenen Virtualisierungspartitionen ermöglicht, mittels Datenelementen zu kommunizieren, und jedes Datenelement einen Metadaten-Deskriptor mit einem oder mehreren Eigenschaftswertepaaren umfasst, und das Ermöglichen die Identifizierung einer Beziehung zwischen einem ersten Anwendungsprogramm und einem zweiten Anwendungsprogramm basierend auf einem jeweils von einem ersten Anwendungsprogramm und einem zweiten Anwendungsprogramm bereitgestellten Datenelement umfaßt.
  26. System nach Anspruch 25, wobei die Virtualisierungssoftware den Anwendungsprogrammen in Softwarestapeln in verschiedenen Virtualisierungspartitionen ermöglicht zu kommunizieren, ohne ein Betriebssystem mindestens eines der Softwarestapel zu involvieren.
  27. System nach Anspruch 25, wobei die Virtualisierungssoftware eines der Datenelemente an einer Stelle in einem zentralen Datenspeicher speichert, die mittels des Metadaten-Deskriptors indirekt adressierbar ist.
  28. System nach Anspruch 25, wobei die Virtualisierungssoftware ein Datenelement von einer Stelle in einem zentralen Datenspeicher abruft, die mittels eines Metadaten-Deskriptors adressierbar ist.
  29. System nach Anspruch 25, wobei der Gemeinschaftsspeicher logisch erweitert wird, um mehrere Virtualisierungsumgebungen zu umspannen, die über ein Netzwerk miteinander verbunden sind.
DE112006003004T 2005-12-21 2006-12-21 Kommunikation zwischen Partitionen in einer Virtualisierungsumgebung Ceased DE112006003004T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/315,579 US20070143315A1 (en) 2005-12-21 2005-12-21 Inter-partition communication in a virtualization environment
US11/315,579 2005-12-21
PCT/US2006/049207 WO2007076103A1 (en) 2005-12-21 2006-12-21 Inter-partition communication in a virtualization environment

Publications (1)

Publication Number Publication Date
DE112006003004T5 true DE112006003004T5 (de) 2008-11-06

Family

ID=38042489

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006003004T Ceased DE112006003004T5 (de) 2005-12-21 2006-12-21 Kommunikation zwischen Partitionen in einer Virtualisierungsumgebung

Country Status (3)

Country Link
US (1) US20070143315A1 (de)
DE (1) DE112006003004T5 (de)
WO (1) WO2007076103A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101375284B (zh) 2004-10-25 2012-02-22 安全第一公司 安全数据分析方法和系统
US20070143302A1 (en) * 2005-12-21 2007-06-21 Alan Stone Inter-node communication in a distributed system
US7788665B2 (en) * 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US7987469B2 (en) 2006-12-14 2011-07-26 Intel Corporation RDMA (remote direct memory access) data transfer in a virtual environment
US8196138B2 (en) * 2007-04-19 2012-06-05 International Business Machines Corporation Method and system for migrating virtual machines between hypervisors
US8521966B2 (en) * 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
US8041877B2 (en) * 2008-06-09 2011-10-18 International Business Machines Corporation Distributed computing utilizing virtual memory having a shared paging space
US8019966B2 (en) * 2008-06-09 2011-09-13 International Business Machines Corporation Data sharing utilizing virtual memory having a shared paging space
US7743375B2 (en) * 2008-06-27 2010-06-22 International Business Machines Corporation Information handling system including dynamically merged physical partitions
US9277021B2 (en) * 2009-08-21 2016-03-01 Avaya Inc. Sending a user associated telecommunication address
KR101654571B1 (ko) * 2010-07-21 2016-09-06 삼성전자주식회사 데이터 전송 장치 및 방법
CN103229450B (zh) * 2010-08-11 2016-09-28 安全第一公司 用于安全多租户数据存储的系统和方法
CN104572493A (zh) * 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置
US11216424B2 (en) 2018-06-07 2022-01-04 Spatika Technologies Inc. Dynamically rendering an application programming interface for internet of things applications
US10666718B2 (en) * 2018-06-07 2020-05-26 Spatika Technologies Inc. Dynamic data transport between enterprise and business computing systems
US11099911B1 (en) 2019-07-01 2021-08-24 Northrop Grumman Systems Corporation Systems and methods for inter-partition communication

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6057438A (ja) * 1983-09-08 1985-04-03 Hitachi Ltd 仮想計算機システム制御装置
JP2945498B2 (ja) * 1991-04-12 1999-09-06 富士通株式会社 システム間通信方式
JPH0962631A (ja) * 1995-08-24 1997-03-07 Hitachi Ltd 共同作業支援システム
US6513041B2 (en) * 1998-07-08 2003-01-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
US6477580B1 (en) * 1999-08-31 2002-11-05 Accenture Llp Self-described stream in a communication services patterns environment
CA2335561A1 (en) * 2000-05-31 2001-11-30 Frank J. Degilio Heterogeneous client server method, system and program product for a partitioned processing environment
US7246104B2 (en) * 2001-03-21 2007-07-17 Nokia Corporation Method and apparatus for information delivery with archive containing metadata in predetermined language and semantics
US7426521B2 (en) * 2002-07-19 2008-09-16 Microsoft Corporation Property and object validation in a database system
JP3806077B2 (ja) * 2002-08-26 2006-08-09 株式会社東芝 メモリカード認識システム、容量切り替え型メモリカード・ホスト機器、容量切り替え型メモリカード、記憶容量設定方法及び記憶容量設定プログラム
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US20060136402A1 (en) * 2004-12-22 2006-06-22 Tsu-Chang Lee Object-based information storage, search and mining system method
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
WO2005036367A2 (en) * 2003-10-08 2005-04-21 Unisys Corporation Virtual data center that allocates and manages system resources across multiple nodes
US7739684B2 (en) * 2003-11-25 2010-06-15 Intel Corporation Virtual direct memory access crossover
US7478204B2 (en) * 2004-04-29 2009-01-13 International Business Machines Corporation Efficient sharing of memory between applications running under different operating systems on a shared hardware system
US8972977B2 (en) * 2004-06-30 2015-03-03 Microsoft Technology Licensing, Llc Systems and methods for providing seamless software compatibility using virtual machines
US8539481B2 (en) * 2005-12-12 2013-09-17 Microsoft Corporation Using virtual hierarchies to build alternative namespaces
US20070143302A1 (en) * 2005-12-21 2007-06-21 Alan Stone Inter-node communication in a distributed system

Also Published As

Publication number Publication date
US20070143315A1 (en) 2007-06-21
WO2007076103A1 (en) 2007-07-05

Similar Documents

Publication Publication Date Title
DE112006003004T5 (de) Kommunikation zwischen Partitionen in einer Virtualisierungsumgebung
DE69327448T2 (de) Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE69832354T2 (de) Netzwerkverwaltungsrahmenwerk
DE60010011T2 (de) Verfahren und Vorrichtung zur Prüfung eines Rechnersystems durch Software-Fehlerinjektion
DE69818135T2 (de) Verfahren zum Zugriff auf Datenbankinformation
DE202012013448U1 (de) Prozessormodussperre
DE10226909A1 (de) System und Verfahren zur vorgeschriebenen Zugriffssteuerung auf ein Dateisystem
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE19852250A1 (de) System und Verfahren zum Ändern der Zuordnung einer Partition zu einem logischen Laufwerk in einem Computerspeicher
DE10225664A1 (de) System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen
DE102021121062A1 (de) System, vorrichtung und verfahren zur dynamischen bereitstellung kohärenter speicherdomänen
DE69733305T2 (de) System/Verfahren zur wirkungsvollen Übermittlung von Datenströmen in einem Multimediasystem
DE112012004247T5 (de) Passives Überwachen virtueller Systeme unter Verwendung einer erweiterbaren Indexierung
DE4221073A1 (de) Datenspeichersystem und -verfahren mit geraeteunabhaengigen dateiverzeichnissen
DE202013012495U1 (de) Metadatenbasierte virtual Maschine-Konfiguration
DE102007006190A1 (de) Techniken zur Verwendung von Speicher-Attributen
DE112011105082T5 (de) Installieren einer Anwendung in eine visualisierte Umgebung
DE112006002908T5 (de) Technik für die Kommunikation und Synchronisation von Threads
DE102009017496A1 (de) Speicherzugriff in einem System mit Speicherschutz
DE202017105367U1 (de) Abfrageneustartfähigkeit
DE102012218699A1 (de) Passives überwachen virtueller systeme mittels agentenlosem offline-indexieren
DE112020003929T5 (de) Verwaltung von metadaten von virtuellen speichern
DE102015111820A1 (de) Auswählen eines Netzwerkes
DE102012217315A1 (de) Verwenden von nativen Routinen an Stelle von emulierten Routinen in einer emulierten Anwendung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection