DE112006003004T5 - Kommunikation zwischen Partitionen in einer Virtualisierungsumgebung - Google Patents
Kommunikation zwischen Partitionen in einer Virtualisierungsumgebung Download PDFInfo
- 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
Links
- 238000005192 partition Methods 0.000 title claims abstract description 21
- 238000004891 communication Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims description 8
- 230000010076 replication Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims description 2
- 230000002688 persistence Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory 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.
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 Rechnersystem100 , das virtualisierte Software122 , Virtualisierungssoftware124 und Plattform-Hardware114 umfaßt. Die Virtualisierungssoftware124 umfaßt eine Softwarekomponente, in dieser Beschreibung als virtueller Maschinenmonitor110 bezeichnet, der die Plattform-Hardware114 des Systems100 zur Bereitstellung einer Virtualisierungsumgebung102 virtualisiert, in welcher mehrere Virtualisierungspartitionen gemeinsam existieren. Jede Virtualisierungspartition hat einen Softwarestapel104 , der Anwendungsprogramme106 und ein Betriebssystem108 umfaßt. Die Bereitstellung einer Virtualisierungsumgebung102 mit mehreren Partitionen ermöglicht den Betrieb mehrerer Exemplare eines oder verschiedener Betriebssysteme auf einem einzigen Rechnersystem100 . - Der virtuelle Maschinenmonitor
110 verwaltet die gesamten Hardwareressourcen (beispielsweise Prozessoren120 , Speicher und E-/A-Einrichtungen) solcherart, daß der Softwarestapel104 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 Maschinenmonitor110 präsentiert jedem Softwarestapel104 eine virtuelle Maschine und vermittelt den Zugriff auf die Hardwareressourcen der zugrunde liegenden Plattform-Hardware114 solcherart, daß sich ein Betriebssystem108a oder ein Anwendungsprogramm106a eines Softwarestapels104a nicht dessen bewußt ist, daß Ressourcen gemeinsam mit einem Betriebssystem108b oder einem Anwendungsprogramm106b eines anderen Softwarestapels104b genutzt werden. - Jedes Anwendungsprogramm
106 eines Softwarestapels104 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 Datenspeicher116 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 Gemeinschaftsspeicher112 bezeichnet wird, der den Anwendungsprogrammen in Softwarestapeln104 in verschiedenen Virtualisierungspartitionen die Kommunikation (beispielsweise die gemeinsame Nutzung/Abrufen von Dateninhalt, Metadaten-Deskriptor oder beidem) ermöglicht, ohne das Betriebssystem108 des jeweils anderen Softwarestapels104 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 Maschinenmonitors110 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 Dateninhalt101b im zentralen Datenspeicher118 und eine GET-Prozedur zum Abrufen von Dateninhalt101b aus dem zentralen Datenspeicher118 . 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 Gemeinschaftsspeichers112 unterstützen. -
2 zeigt ein Flußdiagramm eines gemeinsamen Datennutzungsprozesses200 . Zur gemeinsamen Nutzung von im anwendungsspezifischen Datenspeicher116 befindlichem Dateninhalt101 ruft (202 ) ein Anwendungsprogramm106a die PUT-Prozedur auf und leitet (204 ) Argumente zur PUT-Prozedur, um eine Speicheranforderung durchzuführen. In einer Ausführungsform leitet das Anwendungsprogramm106a zwei Zeiger als Argumente. Der erste Zeiger verweist auf eine Stelle im anwendungsspezifischen Datenspeicher116a , an der der Dateninhalt (101b ), der gemeinsam genutzt werden soll, gespeichert ist. Der zweite Zeiger verweist auf eine Stelle im anwendungsspezifischen Datenspeicher116a , 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 Datenspeicher116a und speichert (210 ) Kopien von Dateninhalt und Metadaten-Deskriptor im zentralen Datenspeicher118 . In manchen Ausführungsformen werden die Kopien von Metadaten-Deskriptor101a und Dateninhalt101b im zentralen Datenspeicher118 respektive als Tag (Marke) und Payload des Datenelements101 an der Stelle des zentralen Datenspeichers118 gespeichert, welche direkt vom Metadaten-Deskriptor101a adressierbar ist. Nachdem das Datenelement101 gespeichert wurde, geht die Steuerung auf die übliche Art, mit der Prozeduraufrufe zurückkehren, wieder zum Anwendungsprogramm106a 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-Abrufprozesses300 . Zum Abrufen von im zentralen Datenspeicher118 befindlichem Dateninhalt101b ruft (302 ) ein Anwendungsprogramm106c die GET-Prozedur auf und leitet (304 ) Argumente zur GET-Prozedur, um eine Abrufanforderung durchzuführen. In einer Ausführungsform leitet das Anwendungsprogramm106c zwei Zeiger als Argumente. Der erste Zeiger verweist auf eine Stelle im anwendungsspezifischen Datenspeicher116c , an der ein Metadaten-Deskriptor gespeichert ist. Der zweite Zeiger verweist auf eine Stelle im anwendungsspezifischen Datenspeicher116c , an der der Dateninhalt, der abgerufen werden soll, gespeichert ist. Der Metadaten-Deskriptor an der vom ersten Zeiger ausgewiesenen Stelle des anwendungsspezifischen Datenspeichers116c definiert Attribute des Dateninhalts, den das Anwendungsprogramm106c 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 Datenspeicher116c 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 Speicher116c gespeichert wird, kehrt die Steuerung auf die übliche Art, mit der Prozeduraufrufe zurückkehren, wieder zum Anwendungsprogramm106c 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 Virtualisierungsumgebung102 wie vorstehend unter1 bis3 beschrieben, ermöglicht Anwendungsprogrammen in Softwarestapeln verschiedener Virtualisierungspartitionen unter Ausschluß der Betriebssysteme der jeweiligen Partitionen miteinander zu agieren und kommunizieren. Die Nutzung eines Gemeinschaftsspeichers112 durch Anwendungsprogramme erschließt auch schnellere Pfade zu Speicher und Prozessoren der zugrunde liegenden Plattform-Hardware114 . Bei einem Ausfall in einem Prozessor oder Anwendungsprogramm ist der Gemeinschaftsspeicher112 nicht kompromittiert, da der Gemeinschaftsspeicher112 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 Systems100 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 Gemeinschaftsspeicher112 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 Gemeinschaftsspeicher112 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)
- 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.
- Verfahren nach Anspruch 1, wobei mindestens eines der Eigenschaftswertepaare in Übereinstimmung mit einem Schema strukturiert ist.
- Verfahren nach Anspruch 2, wobei das Schema ein XML-Schema umfaßt.
- Verfahren nach Anspruch 1, wobei das Ermöglichen umfaßt: Durchführen einer einen Speichervorgang umfassenden Kommunikation.
- Verfahren nach Anspruch 4, wobei der Speichervorgang ohne Involvieren eines Betriebssystems mindestens eines der Softwarestapel durchgeführt wird.
- 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.
- Verfahren nach Anspruch 6, wobei der Speichervorgang ohne Involvieren eines Betriebssystems eines Anwendungsprogrammes eines beliebigen der Softwarestapel durchgeführt wird.
- 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.
- Verfahren nach Anspruch 8, wobei die Aufforderung einen ersten Zeiger auf an einer ersten Stelle in einem anwendungsspezifischen Datenspeicher gespeicherten Dateninhalt umfaßt.
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 12, wobei die Aufforderung einen ersten Zeiger auf an einer ersten Stelle in einem anwendungsspezifischen Datenspeicher gespeicherten Metadaten-Deskriptor umfaßt.
- 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.
- 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.
- 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.
- 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.
- Verfahren, umfassend: Ermöglichen der Kommunikation zwischen Anwendungsprogrammen von Softwarestapeln einer Virtualisierungsumgebung, ohne mindestens eines der Betriebssysteme eines der Softwarestapel zu involvieren.
- 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.
- 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.
- Vorrichtung nach Anspruch 20, wobei der zentrale Datenspeicher von einem virtuellen Maschinenmonitor der Virtualisierungsumgebung verwaltet wird.
- 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.
- Verfahren nach Anspruch 22, wobei mindestens eine der Dienstanweisungen ein Eigenschaftswertepaar umfaßt.
- 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.
- 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.
- 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.
- 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.
- System nach Anspruch 25, wobei die Virtualisierungssoftware ein Datenelement von einer Stelle in einem zentralen Datenspeicher abruft, die mittels eines Metadaten-Deskriptors adressierbar ist.
- System nach Anspruch 25, wobei der Gemeinschaftsspeicher logisch erweitert wird, um mehrere Virtualisierungsumgebungen zu umspannen, die über ein Netzwerk miteinander verbunden sind.
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)
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)
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 |
-
2005
- 2005-12-21 US US11/315,579 patent/US20070143315A1/en not_active Abandoned
-
2006
- 2006-12-21 DE DE112006003004T patent/DE112006003004T5/de not_active Ceased
- 2006-12-21 WO PCT/US2006/049207 patent/WO2007076103A1/en active Application Filing
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 |