DE202014010925U1 - Dienstbrücken - Google Patents

Dienstbrücken Download PDF

Info

Publication number
DE202014010925U1
DE202014010925U1 DE202014010925.7U DE202014010925U DE202014010925U1 DE 202014010925 U1 DE202014010925 U1 DE 202014010925U1 DE 202014010925 U DE202014010925 U DE 202014010925U DE 202014010925 U1 DE202014010925 U1 DE 202014010925U1
Authority
DE
Germany
Prior art keywords
service
requests
request
virtual machine
service bridge
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
DE202014010925.7U
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 DE202014010925U1 publication Critical patent/DE202014010925U1/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
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • 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/4555Para-virtualisation, i.e. guest operating system has to be modified

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

System, das Folgendes umfasst: einen Prozessor; und computerlesbares Medium verbunden mit dem Prozessor mit gespeicherten Befehlen, sodass bei Ausführung durch den Prozessor dieser Prozessor zu folgenden Operationen veranlasst wird: das Betreiben einer oder mehrerer virtueller Maschinen auf dem Datenverarbeitungsgerät, worin virtuelle Maschinen von einem Host-Betriebssystem gehostet werden, das auf dem Datenverarbeitungsgerät ausgeführt wird, worin das Host-Betriebssystem die folgenden Operationen durchführt: das Empfangen einer Vielzahl von Anfragen von einer oder mehreren virtueller Maschinen über Service Bridges, die auf einem Host-Betriebssystem ausgeführt werden, worin jede Service Bridge jeweils mit einer unterschiedlichen virtuellen Maschine der einen oder mehreren virtuellen Maschinen verbunden ist und worin jede Anfrage eine Anfrage zum Anschluss an einen oder mehrere externe Dienste ist; das Ändern, über die jeweilige Service Bridge der Anfrage, die von externen Diensten zu verarbeiten ist; und das Übermitteln der geänderten Anfragen von der jeweiligen Service Bridge zum externen Dienst, wobei die jeweilige Service Bridge mit einem oder mehreren externen Diensten über ein Netzwerk kommuniziert.

Description

  • HINTERGRUND
  • Diese Beschreibung betrifft Service Bridges (Dienstbrücken) und insbesondere Service Bridges zur Kommunikation mit virtuellen Maschinen.
  • Cloud Computing bezeichnet eine Art des über Netzwerk zugänglichen Computing, bei dem normalerweise große Gruppen von in Datenzentren oder „Serverfarmen” untergebrachten Servern externen Endbenutzern je nach Bedarf Rechenressourcen und Datenspeicher zur Verfügung stellen. Manche Cloud Computing Services erlauben dem Endbenutzer, vom Benutzer bereitgestellte Server-Softwareanwendungen (z. B. e-Commerce-Serveranwendungen, Web-Server oder Datei-Server) in der Cloud auszuführen. Andere Cloud Computing Services bieten Endbenutzern über Webbrowser-Schnittstelle oder sonstige clientseitige Software Zugang zu Softwareanwendungen wie Textverarbeitungsprogrammen oder anderen allgemein üblichen Anwendungen. Elektronische Daten der Benutzer werden üblicherweise in der Server-Farm anstatt auf den Rechenvorrichtungen der Benutzer gespeichert. Die Pflege der Softwareanwendungen und Benutzerdaten auf der Serverfarm kann die Verwaltung von Computergeräten des Endbenutzers vereinfachen. Einige Cloud-Computing-Dienste ermöglichen Endbenutzern das Ausführen von Softwareanwendungen in virtuellen Maschinen. Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, 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
  • Das beschriebene System dient der Implementierung von Service Bridges zwischen virtuellen Maschinen und externen Diensten. Service Bridges können einen Mechanismus zur Zugangsverwaltung einer Gruppe virtueller Maschinen zu externen Ressourcen und Diensten bieten. Service Bridges können Proxys sein, d. h.
  • Metadatendienste, die die Kommunikation zwischen den virtuellen Maschinen und den externen Diensten ermöglichen. Service Bridges sind z. B. in der Lage, ohne Beteiligung der virtuellen Maschinen Authentifizierungsprotokolle hinzuzufügen und zu verwalten. Service Bridges können ferner Zugang zu sonst unzugänglichen Diensten wie privaten Datenspeichern bieten. Service Bridges können Anfragen übersetzen, sodass sie kompatibel mit den Protokollen des Anfrageziels sind. Ferner können Service Bridges Anfragen an die richtigen Ziele weiterleiten.
  • Im Allgemeinen kann ein Aspekt des hierin beschriebenen Gegenstandes aus Verfahren bestehen, die die Aktionen einer Methode beinhalten, die durch Datenverarbeitungsgeräte durchgeführt werden, wobei die Methode das Folgende umfasst: das Betreiben von virtuellen Maschinen auf dem Datenverarbeitungsgerät, worin die virtuellen Maschinen von einem Host-Betriebssystem gehostet werden, das auf dem Datenverarbeitungsgerät ausgeführt wird, worin das Host-Betriebssystem Operationen durchführt, Folgendes umfassend: den Empfang einer Vielzahl von Anfragen von virtuellen Maschinen über eine oder mehrere Service Bridges, die im Host-Betriebssystem ausgeführt werden, worin jede Service Bridge mit einer eigenen virtuellen Maschine verbunden ist und jede Anfrage eine Anfrage auf Anschluss an externe Dienste ist; Änderung der von externen Diensten zu verarbeitenden Anfragen mithilfe der jeweiligen Service Bridge; und Übermitteln der geänderten Anfragen von der jeweiligen Service Bridge an die externen Dienste, wobei die Service Bridge über ein Netzwerk mit den externen Diensten kommuniziert.
  • Implementierungen können eines oder mehrere der folgenden Merkmale beinhalten. Die Konfiguration geschieht über eine Programmierschnittstelle (API). Eine oder mehrere von einer Vielzahl von Anfragen sind nicht mit irgendeinem der externen Dienste kompatibel. Nicht alle virtuellen Maschinen haben eine direkte Verbindung zu einem externen Netzwerk. Die Änderungen umfassen die Übersetzung von Anfragen, damit diese mit dem Protokoll einer oder mehrerer externer Dienste kompatibel sind. Änderungen des Weiteren umfassend: Das Abrufen einer Adresse aus einer Namensdatenbank, wobei die Namensdatenbank zumindest eine Vielzahl von Adressen, die den externen Diensten zugewiesen sind, beinhaltet; die Zuordnung der abgefragten Adresse als Zieladresse der Anfrage. Des Weiteren umfassend, als Antwort auf das Übermitteln einer Anfrage: Den Erhalt einer Antwort auf die Anfrage von externen Diensten; Identifizieren einer Service Bridge aufgrund der Antwort, wobei die Antwort die Adresse einer virtuellen Maschine enthält und wobei die Service Bridge aus einer Datenbank von Zuordnungen zwischen Service Bridges und virtuellen Maschinen identifiziert wird; Änderung der von der virtuellen Maschine zu verarbeitenden Antwort mithilfe der identifizierten Service Bridge; und Übermitteln der Antwort an die virtuelle Maschine. Die Änderung der Antwort umfasst die Übersetzung des Antwortprotokolls in ein kompatibles Protokoll für die jeweilige virtuelle Maschine. Änderung der Antwort umfasst des Weiteren: Das Abrufen einer Adresse aus einer Namensdatenbank, wobei die Namensdatenbank zumindest eine Vielzahl von Adressen beinhaltet, die den virtuellen Maschinen zugewiesen sind; die Zuordnung der abgefragten Adresse als Zieladresse der Antwort. Jede von einer Vielzahl von Anfragen wird über einen virtuellen Netzwerkadapter an der jeweiligen virtuellen Maschine empfangen, wobei dieser virtuelle Netzwerkadapter als Schnittstelle dient und über Datenpakete die jeweilige virtuelle Maschine mit der entsprechenden Service Bridge verbindet. Jede von einer Vielzahl von Anfragen wird von einem paravirtualisierten Socket an der jeweiligen virtuellen Maschine empfangen, wobei der paravirtualisierte Socketadapter als Schnittstelle dient und mithilfe eines gemeinsamen Ringpufferspeichers die jeweilige virtuelle Maschine mit der entsprechenden Service Bridge verbindet. Das Netzwerk ist extern. Die Service Bridges werden während der Erstellung der entsprechenden virtuellen Maschine generiert. Des Weiteren umfassend den Empfang eine zweiten Vielzahl von Anfragen von externen Diensten über Service Bridges, worin wiederum jede in der zweiten Vielzahl von Anfragen eine Anfrage auf Anschluss an virtuelle Maschinen ist; Änderungen an jeder Anfrage in der zweiten Vielzahl von zu verarbeitenden Anfragen mithilfe der jeweiligen Service Bridge; und Übermitteln jeder geänderten Anfrage von der jeweiligen Service Bridge an die eine oder mehr virtuellen Maschinen. Des Weiteren die Durchführung kryptografischer Operationen und Authentifizierungsoperationen mithilfe des Host-Betriebssystems umfassend, um zu verhindern, dass die virtuellen Maschinen die kryptografischen Operationen und Authentifizierungsoperationen überschreiben. Service Bridges sind allen vom Administrator ausgewählten Benutzern zugänglich.
  • Bestimmte Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können so implementiert werden, dass sie einen oder mehrere der folgenden Vorteile verwirklichen. Die virtuellen Maschinen benötigen keine externe Verbindung, z. B. zum Internet, um mit den externen Diensten zu kommunizieren. Anfragen, die von virtuellen Maschinen an externe Dienste gesendet und empfangen wurden, können über Service Bridges geändert werden, um die Softwareanforderungen an die virtuellen Maschinen und externen Dienste gering zu halten. In anderen Worten: Service Bridges können als Kommunikationsabstraktion dienen, die es virtuellen Maschinen und externen Diensten erlaubt, zu kommunizieren. Durch die Verwendung von Service Bridges sind virtuelle Maschinen z. B. in der Lage, mit externen Diensten zu kommunizieren, selbst wenn die Kommunikationsprotokolle der virtuellen Maschinen und der externen Dienste unterschiedlich sind. Service Bridges können selbst bei Standortwechsel die aktualisierten Adressen virtueller Maschinen und externer Dienste liefern. Die Adresse einer virtuellen Maschine kann sich z. B. bei Migration auf eine andere Host-Maschine ändern. Service Bridges sind auch in der Lage, virtuelle Maschinen dynamisch zu konfigurieren. So kann ein Benutzer Konfigurationen für virtuelle Maschine über Programmierschnittstelle (API) liefern, z. B. durch API-Aufrufe in einem Script. Host-Betriebssysteme können schnell mit virtuellen Maschinen über Transmission Control Protocol (TCP) oder paravirtualisierte Socket-Unterstützung kommunizieren, um die Latenz zu reduzieren. Service Bridges können ferner als Layer dienen, um Zugang zu sonst unzugänglichen Diensten zu bieten. Service Bridges können z. B. Zugang lediglich zu bestimmten Tabellen einer privaten Datenbank erlauben. Service Bridges können zudem die Identitäts- und Authentifizierungsinformationen einer virtuellen Maschine verwalten, sodass die Authentifizierung von üblichen Diensten durchgeführt werden kann, die auf dem Host-Betriebssystem der virtuellen Maschine zur Verfügung stehen.
  • Die Details einer oder mehrerer Ausführungsformen des in dieser Spezifikation behandelten und beschriebenen Gegenstands sind in den begleitenden Bildern und der Beschreibung unten 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 virtuellen Maschine.
  • 2 ist eine schematische Darstellung eines Beispielsystems mit Service Bridges.
  • 3 ist ein Diagramm einer internen Beispielarchitektur einer Service Bridge.
  • 4 ist ein Flussdiagramm eines Beispielprozesses zur Nutzung von Service Bridges über virtuelle Maschinen hinweg.
  • 5 ist ein Diagramm eines Beispielsystems zur Kommunikation zwischen einer Service Bridge und einer virtuellen Maschine.
  • Entsprechende Referenznummern und Kennzeichnungen in den verschiedenen Zeichnungen zeigen entsprechende Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist eine schematische Darstellung eines beispielhaften virtuellen Maschinensystems 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 drahtgebundene (z. B. Ethernet-) oder drahtlose (z. B. Wi-Fi-)Netzwerke umfassen. In einigen Implementierungen ist das interne Netzwerk 116 ein Intranet. 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.
  • Auf jeder Host-Maschine wird ein Host-Betriebssystem oder sonstige Software ausgeführt, die die darunterliegende Hardware der Host-Maschine virtualisiert und die simultane Ausführung von virtuellen Maschinen steuert (z. B. Virtual-Machine-Monitors oder Hypervisors). Zum Beispiel verwaltet das Hostbetriebssystem 106 die virtuelle Maschine (VM) 110 und VM 112, während Hostbetriebssystem 108 eine einzige VM 114 verwaltet. VMs können von einer Host-Maschine zur anderen migrieren. Zudem kann eine einzelne VM von mehreren Host-Maschinen gesteuert werden. Jede VM enthält eine simulierte Version der darunterliegenden 10 Host-Maschinen-Hardware oder eine andere Computerarchitektur. Die simulierte Version der Hardware wird 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 Gastsoftware, die in einer VM ausgeführt wird, oder die VM selbst fehlerhaft funktioniert oder abbricht, werden andere VMs, die auf der Hostmaschine ausgeführt werden, nicht beeinflusst. (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.
  • Jeder VM (z. B., VMs 110, 112 und 114) wird ein Satz virtueller Speicherseiten auf dem virtuellen Speicher des darunterliegenden Host-Betriebssystems zugeordnet sowie virtuelle Datenträgerblöcke von virtuellen Diskettenlaufwerken, die der Gast-Software zur Verfügung stehen, die auf der VM ausgeführt wird. So ordnet beispielsweise Hostbetriebssystem 106 Speicherseiten und Plattenblöcke zu VM 110 und VM 112 zu und Hostbetriebssystem 108 führt dasselbe mit VM 114 durch. In einigen Implementierungen kann eine gegebene VM nicht auf die Seiten virtuellen Speichers zugreifen, die anderen VMs zugeordnet sind. So kann beispielsweise VM 110 nicht auf Speicherseiten zugreifen, die VM 112 zugeordnet wurden. Ein virtuelles Plattenlaufwerk kann über mehrere VM-Neustarts hinweg verbunden bleiben. 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 virtuellem Speicher und Plattenressourcen können VMs Netzwerkadressen zugeordnet werden, durch die deren entsprechende Gastsoftware 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 ist jede VM einem oder mehreren eindeutigen Internetprotokoll-(Internet Protocol, IP-)Adressen der IP Version 4 oder Version 6 zugeordnet. Andere Adresssysteme sind möglich.
  • Zur Gast-Software einer VM kann ein Gast-Betriebssystem (wie die Gast-Betriebssysteme 110b, 112b und 114b) gehören, d. h. Software zur Steuerung der Ausführung der jeweiligen Gast-Softwareanwendungen (wie die Gast-Anwendungen 110c, 112c und 114c), die sich auf der VM befindet und Dienste für solche Anwendungen bietet. So könnte beispielsweise ein Gastbetriebssystem eine Variante des UNIX-Betriebssystems sein. Andere Betriebssysteme sind möglich. Jede VM kann dasselbe Gastbetriebssystem oder verschiedene Gastbetriebssysteme ausführen. In weiteren Implementierungen benötigt eine VM kein Gastbetriebssystem, um Gastsoftwareanwendungen auszuführen. Ein Zugriff des Gastbetriebssystems auf Ressourcen wie Netzwerke und virtuelle Plattenspeicher wird durch das zugrunde liegende Betriebssystem gesteuert.
  • Wie das Beispiel der virtuellen 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 virtuelle 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 Kernelprozessraum hat erweiterte Rechte (manchmal als „Supervisor-Modus” bezeichnet); das heißt, dass der Kernel 106d bestimmte vorrangige Operationen durchführen kann, die für Prozesse, die im Benutzerprozessraum 106a ausgeführt werden, nicht zugänglich sind. 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 manchen Implementierungen wird ein Teil der Funktionalität der VM-Netzwerkkommunikation in Kommunikationsprozesse integriert (z. B. Kommunikationsprozesse 106c, 108c). In anderen Implementierungen wird der Kommunikationsprozess im Benutzerbereich (z. B. Prozessbereich 106a) eines Host-Betriebssystems (z. B. Host-Betriebssystem 106) ausgeführt. In wieder anderen Implementierungen kann der Kommunikationsprozess im Kernprozessbereich (z. B. Kernprozessbereich 106d) des Host-Betriebssystems ausgeführt werden oder in die Hardware integriert sein. Es ist möglich, entweder einen einzigen Kommunikationsprozess für alle VMs zu nutzen, die auf einer Host-Maschine ausgeführt werden, oder mehrere Kommunikationsprozesse, einen für jede VM, die auf einer Host-Maschine ausgeführt wird. In wieder anderen Implementierungen wird ein Teil des Kommunikationsprozesses im Benutzerbereich ausgeführt und ein Teil im Kernprozessbereich. Der Kommunikationsprozess kommuniziert mit einem Verzeichnisdienst (z. B. dem VM-Registrierungsdienst 118), um ein virtuelles Netzwerkpaar (VNP) zwischen zwei VMs aufzubauen.
  • 2 ist eine schematische Darstellung 200 eines Beispielsystems mit Service Bridges. Das System kann aus einer oder mehreren Host-Maschinen bestehen. In manchen Implementierungen besitzt eine Host-Maschine 202 VMs 204 und Service Bridges 206. Die Host-Maschine 202 z. B. kann mehrere VMs 204a–d und mehrere Service Bridges 206a–d hosten. Service Bridges 206 dienen als Gateway zwischen VMs' und externen Diensten 208, die in einem externen Netzwerk gespeichert sein können, das für VMs nicht direkt zugänglich ist. Externe Dienste 208 sind im Folgenden beschrieben. In manchen Implementierungen ist eine Service Bridge ein Proxy, der als Vermittler von Anfragen von Prozessen wirkt, die auf VMs ausgeführt werden, und er kann Informationen von Services suchen, die sich nicht auf den VMs befinden. Die Service Bridge kann ferner als Proxy für Software verwendet werden, die in der Hosting-Umgebung ausgeführt wird, um Informationen von Software anzufordern, die auf einer VM abläuft. Ein Suchdienst kann z. B. mithilfe einer Service Bridge eine Suche nach bestimmten Informationen auf einer VM mit Drittsoftware durchführen. Ein Proxy ist ein Prozess, der im Benutzerbereich (z. B. Benutzerbereich 106a) oder im Kernprozessbereich (z. B. Kernprozessbereich 106b) des Host-Betriebssystems (z. B. Host-Betriebssystem 106) ausgeführt werden kann. Das System generiert eine entsprechende Service Bridge für jede VM, und das System verbindet die jeweilige Service Bridge während oder nach der VM-Generierung mit der VM. Service Bridges können entweder einzeln auf einer eindeutigen festen IP-Adresse (oder einem anderen Adressenkonzept) betrieben werden, oder alle Service Bridges eine gemeinsame feste IP-Adresse teilen. Somit ist ein Kunde oder VM-Administrator in der Lage, eine virtuelle Umgebung zu verwalten.
  • Jede VM ist mit einer entsprechenden Service Bridge verbunden. Service Bridge 206a z. B. ist mit VM 204a verbunden, Service Bridge 206b mit VM 204b, Service Bridge 206c mit VM 204c und Service Bridge 206d mit VM 204d. Eine Service Bridge kann während oder nach der VM-Generierung mit der verbundenen VM kommunizieren und umgekehrt. Während der Generierung einer VM ist die VM z. B. in der Lage, Daten von der mit ihr verbundenen Service Bridge abrufen. In manchen Implementierungen können mehrere VMs eine Service Bridge teilen, anstatt dass jede VM mit einer entsprechenden Service Bridge verbunden ist.
  • In manchen Implementierungen können mehrere Service Bridges mit einer einzigen VM verbunden sein. Die erste Service Bridge einer VM kann z. B. für eingehende HTTP-Anfragen verwendet werden und eine zweite Service Bridge als Zugang zu einem hochverfügbaren Datenbankdienst. Diese zwei Service Bridges können über 10 verschiedene Protokolle miteinander kommunizieren und unterschiedliche Authentifizierungsstufen und Lastverteilung anwenden.
  • Service Bridges 206 können mit mehreren externen Diensten 208 für die VMs kommunizieren. Das heißt, dass die Service Bridges 206 Anfragen an mehrere externe Dienste 208 senden können und umgekehrt. Zu den externen Diensten können z. B. verteilte Datenbankdienste, Werbebörsen, Rechenressourcen oder Namensdatenbank gehören. Kommunikation mit externen Diensten kann über ein internes oder externes Netzwerk wie z. B. das Internet erfolgen. In manchen Implementierungen geschieht die Kommunikation über das Transmission Control Protocol (TCP). Externe Dienste können in virtualisierten und nichtvirtualisierten betrieben werden. In manchen Implementierungen wird ein externer Service in einer nichtvirtualisierten Umgebung auf Computer an einem oder mehreren Standorten implementiert.
  • 3 ist ein Diagramm 300 einer internen Beispielarchitektur einer Service Bridge. In manchen Implementierungen besitzt eine Service Bridge 306 vier Nachrichtenwarteschlangen: eine eingehende VM-orientierte Warteschlange 308, eine ausgehende VM-orientierte Warteschlange 310, eine eingehende netzwerkorientierte Warteschlange 312 und eine ausgehende netzwerkorientierte Warteschlange 314. In manchen Implementierungen funktionieren die Warteschlangen nach dem First-In-First-Out(FIFO)-Prinzip. Das heißt, dass Nachrichten in Warteschlangen in der Reihenfolge abgearbeitet werden, in der sie empfangen werden.
  • Service Bridge 306 besitzt einen Prozessor 318, der eingehende und ausgehende Nachrichten generiert und verarbeitet. Prozessor 318 platziert Nachrichten in Warteschlagen, um den Verkehr zu steuern. Prozessor 318 kann Nachrichten aus jeder Nachrichtenwarteschlange lesen und schreiben. Im Allgemeinen enthalten Nachrichten eine Quelladresse und eine Zieladresse. Wenn eine Nachricht zu einer VM-orientierten Warteschlange für ausgehende Nachrichten 308 oder zur netzwerkorientierten Warteschlange für ausgehende Nachrichten 314 hinzugefügt wird, kann die Service Bridge 306 die Nachricht zur Zieladresse in der Nachricht umleiten, wenn die Nachricht am Anfang der entsprechenden Warteschlange steht. Wenn eine Nachricht in einer VM-orientierten Warteschlange für eingehende Nachrichten 308 eingeht, kann Service Bridge 306 die Nachricht verarbeiten, was im Folgenden beschrieben wird, und die Nachricht zur netzwerkorientierten Warteschlange für ausgehende Nachrichten 314 hinzufügen, falls zutreffend. Wenn eine Nachricht in einer netzwerkorientierten Warteschlange für eingehende Nachrichten eingeht, kann Service Bridge 306 die Nachricht verarbeiten und die Nachricht zur VM-orientierten Warteschlange für ausgehende Nachrichten 310 hinzufügen, falls zutreffend. In manchen Implementierungen bestimmen die Warteschlagen eine Zieladresse der jeweiligen Nachricht.
  • In manchen Implementierungen ist die VM-orientierte Seite der Service Bridge an eine 10 feste Internet Protocol(IP)-Adresse gebunden, während die netzwerkorientierte Seite der Bridge eine dynamische IP-Adresse besitzen kann. Service Bridge 306 kann mit Ressourcen, wie z. B. Servern außerhalb der Host-Maschine 302, über einen Netzwerkadapter 316 der Host-Maschine 302, wie z. B. einem Ethernetadapter, kommunizieren. Die Ressourcen können z. B. externe Diensten auf einem externen Netzwerk sein wie oben beschrieben zu 2. Service Bridge 306 kann eine Nachricht mithilfe eines Protokollübersetzers 320 verarbeiten, der die Kommunikation zwischen VM 304 und externen Diensten ermöglicht. Protokollübersetzer 320 ist in der Lage, ein Protokoll der Nachricht zu erkennen und die Nachricht in ein anderes Protokoll zu übersetzen. Wenn VM 304 z. B. eine Nachricht mit einem ersten Protokoll sendet, kann der Protokollübersetzer 320 das erste Protokoll erkennen, indem er den Nachrichtentitel mit den Titelformaten der Protokolle vergleicht, die auf der Service Bridge gespeichert sind. Protokollübersetzer 320 kann das verwendete Protokoll durch ein Nachrichtenziel erkennen, z. B. indem eine Datenbank abgefragt wird, die Ziele den jeweiligen Kommunikationsprotokollen zuordnet. Das Nachrichtenziel kann ein externer Dienst sein. Protokollübersetzer 320 übersetzt die Nachricht vom ersten Protokoll in das Zielprotokoll. Der Protokollübersetzer 320 z. B. kann die Nutzdaten der Nachricht beibehalten und die Nachrichtentitel entsprechend dem Zielprotokoll ändern. Das Übersetzen der Nachrichten ist weiter unten beschrieben in Bezugnahme auf 4.
  • Service Bridge 306 kann die Nachricht mit anderen Operationen verarbeiten. Service Bridge 306 kann das Kryptografiemodul 322 verwenden, im die Nachricht zu ver- oder entschlüsseln, z. B. durch Verwendung eines kryptografischen Schlüssels, bevor die Nachricht an einen externen Dienst gesendet wird. Auf Service Bridge 306 kann ein Virenscanner 324 verwendet werden, um die Nutzdaten der Nachricht auf Viren zu prüfen. In manchen Implementierungen enthält die Service Bridge einen Load Balancer 326, der dazu dient, Anfragen und Antworten auf die Anfragen zu verwalten, z. B. mithilfe der oben beschriebenen Nachrichtenwarteschlagen. Die Service Bridge kann einen Authentifikator 328 verwenden, um Merker hinzuzufügen, die bestätigen, dass eine Nachricht von der VM 304 stammt. Da das Kryptografiemodul 322, der Virenscanner 324 und der Authentifikator 328 für die VM 304 transparent sind, können diese nicht aus Zufall oder durch Viren durch die VM 304 deaktiviert werden, sodass der Administrator in der Lage ist, Richtlinien durchzusetzen, die nicht von der VM 304 überschrieben werden können.
  • 4 ist ein Flussdiagramm eines Beispielprozesses 400 zur Nutzung einer Service Bridge mit einer virtuellen Maschinen. Aus Gründen der Übersichtlichkeit wird Prozess 400 in 10 Bezug auf ein System beschrieben, z. B. System 200 mit Service Bridges beschrieben in 2, mit Computergeräten, die Software zur Implementierung von Prozess 400 ausführen.
  • Das System empfängt Anfragen von virtuellen Maschinen, die auf einem Host-Betriebssystem betrieben werden (Schritt 402). Jede Anfrage kann eine Anfrage sein, die an einen externen Dienst gerichtet ist. Eine Anfrage kann z. B. darin bestehen, Daten von einer externen Datenbank abzurufen oder Daten an eine Werbebörse zu senden.
  • Das System verwendet Service Bridges, die auf dem Host-Betriebssystem betrieben werden, um die Anfragen zu empfangen. Die einzelnen Service Bridges können von einem Administrator des Host-Betriebssystems konfiguriert und den Administratoren von virtuellen Maschinen zur Verfügung gestellt werden. Der Host-Administrator kann auswählen, welche Dienste den jeweiligen VM-Administratoren zur Verfügung gestellt werden. In einer multimandantenfähigen Umgebung können VMs, die Administrator A gehören, Lesezugriff auf Datenbank R besitzen, während VMs von Administrator B Lesezugriff auf Datenbank R und Lese- und Schreibzugriff auf Datenbank S haben kann. Der Administrator kann den Zugriff auf die Service Bridge für eine bestimmte VM einschränken, die vom Host-Administrator konfiguriert wurde. Administrator B hat z. B. die Wahl, eine VM zu instanziieren, die keinen Zugang zu Datenbank R hat.
  • Der Administrator ist für die Generierung, Löschung und Verwaltung der virtuellen Maschine. Der Administrator kann z. B. die Spezifikationen der virtuellen Maschine konfigurieren wie den Betriebssystemtyp, den Prozessortyp oder die Speichermenge. Der Administrator hat auch die Möglichkeit, z. B. durch Aufruf der Service Bridge über die Programmierschnittstelle (API), zu identifizieren, mit welchen externen Diensten die virtuelle Maschine kommunizieren wird.
  • In manchen Implementierungen konfiguriert der Administrator die virtuelle Maschine über eine Programmierschnittstelle (API), die auf der Service Bridge betrieben wird. Wie oben beschrieben, kann der Administrator ein einzelne VM oder einen Dienst als Ganzes verwalten. Ein Administrator eines ganzen Dienstes kann Grenzen und Kontrollen auf den verfügbaren Service Bridges festlegen. In alternativen Implementierungen kann die API auf der VM betrieben werden. Die API kann Representational State Transfer(REST)-basierte Operationen umfassen. Die API kann synchrone LIST-, INSERT-, UPDATE- und DELETE-Operationen umfassen. Diese Operationen erlauben dem Administrator, die VM schnell und dynamisch zu konfigurieren. So kann ein Administrator z. B. einen LIST-Befehl an eine Service Bridge senden, um eine Liste potenzieller Konfigurationen abzurufen wie die Version einer anzuwendenden Datenbank oder die Art einer zu aktivierenden Software. Die Service Bridge kann eine Antwort an den Administrator mit der Liste potenzieller Konfigurationen senden. Der Administrator kann aufgrund der Antwort einen INSERT-Befehl sowie vom Administrator ausgewählte Konfigurationen an die Service Bridge senden. Der Befehl kann von der Service Bridge verarbeitet und die VM aufgrund der Auswahl des Administrators konfiguriert werden. Auf ähnliche Weise kann der Administrator VM-Konfigurationen mithilfe des UPDATE- und DELETE-Befehls aktualisieren bzw. löschen. In manchen Implementierungen kann der Administrator genehmigen, dass auf einer weißen Liste verzeichnete Benutzer nur Lesezugriff auf die VM erhalten.
  • Jede Anfrage, die vom jeweiligen externen Dienst verarbeitet wird (Schritt 404), wird vom System mithilfe der Service Bridge geändert. In manchen Implementierungen ist die Anfrage nicht mit dem externen Dienst kompatibel. Der externe Dienst und die virtuelle Maschine können z. B. verschiedene Datenkommunikationsprotokolle verwenden. Die Anfrage kann von der jeweiligen Service Bridge durch Übersetzen des Anfrageprotokolls in ein kompatibles Protokoll für den entsprechenden externen Dienst geändert werden. Die VM z. B. die Anfrage mit einem Datenbankprotokoll erstellen, der externe Dienst jedoch nach einem zweiten Datenbankprotokoll betrieben werden. Die jeweilige Service Bridge kann die Anfrage so übersetzen, dass sie mit dem zweiten Datenbankprotokoll konform ist wie oben beschrieben in Bezugnahme auf 2.
  • In manchen Implementierungen kann das Anfrageprotokoll mit dem Protokoll des externen Dienstes kompatibel sein, die Anfrage jedoch keine Zieladresse für den externen Dienst enthalten. So kann die Anfrage z. B. die Identität des externen Dienstes enthalten, jedoch keine Adresse der externen Adresse enthalten. Die Service Bridge kann die Adresse von einer Namensdatenbank aufgrund der Identität des externen Dienstes abrufen. Die Namensdatenbank pflegt ein aktualisiertes Verzeichnis der Verbindungen zwischen Adressen und externen Diensten und der Verbindungen zwischen Adressen und virtuellen Maschinen. Die Namensdatenbank kann auf demselben internen Netzwerk gespeichert sein wie die Host-Maschine. In manchen Implementierungen wird die Namensdatenbank aktualisiert, wenn ein externer Dienst oder eine virtuelle Maschine migriert oder aus irgendeinem anderen Grund die Adresse ändert. In manchen anderen Implementierungen gibt eine VM Adresse der Namensdatenbank bei der Generierung der VM bekannt. Nach Abrufen der Adresse kann eine Zieladresse in der Anfrage durch die Service Bridge geändert, d. h. zugeordnet, werden, sodass die Anfrage zu dem externen Dienst weitergeleitet werden kann.
  • Jede Anfrage von der jeweiligen Service Bridge wird vom System an den entsprechenden externen Dienst übermittelt (Schritt 406). Die Anfrage kann über Standard-Kommunikationsprotokolle wie TCP, User Datagram Protokoll (UDP), über Nicht-IP-Protokolle, wie Infiniband Remote Direct Memory Access (RDMA), oder über höherwertige Protokolle, wie Remote Procedure Call (RPC), über ein Netzwerk gesendet werden.
  • In manchen Implementierungen empfängt die Service Bridge eine Antwort auf die Anfrage vom entsprechenden externen Dienst. Ähnlich wie die Anfrage, kann auch die Antwort vor Senden der Antwort zur jeweiligen virtuellen Maschine von der Service Bridge geändert werden. Die Service Bridge kann die Antwort z. B. übersetzen, sodass sie mit einem Protokoll der jeweiligen virtuellen Maschine konform ist. Die Service Bridge kann die Antwort auch an eine Adresse der jeweiligen VM weiterleiten. In manchen Implementierungen enthält die Antwort nicht die richtige Zieladresse der virtuellen Maschine. Dies kann geschehen, wenn die VM den Standort gewechselt hat. In diesem Fall kann die Service Bridge die Adresse von der Namensdatenbank abrufen und die Adresse in der Antwort ändern, sodass sie die jeweilige VM erreicht. Die Service Bridge kann die Antwort an die VM übermitteln. Die Service Bridge kann z. B. über TCP oder einen paravirtualisierten Socket mit der jeweilige VM kommunizieren wie unten beschrieben in Bezugnahme auf 5.
  • 5 ist ein Diagramm eines Beispielsystems 500 zur Kommunikation zwischen einer Service Bridge 510 und einer virtuellen Maschine 502. Eine Host-Maschine 508 kann über eine Netzwerkschnittstelle 516, wie z. B. einen Ethernetadapter, verfügen, der die Kommunikation zwischen der Host-Maschine 508 und externen Diensten 518 ermöglicht. Host-Maschine 508 kann z. B. eine Nachricht von einem externen Dienst erhalten. Die Nachricht kann eine Zieladresse einer virtuellen Maschine 502 enthalten. Host-Maschine 508 kann die entsprechende Service Bridge 510 z. B. durch eine Datenbankabfrage zu den Verbindungen zwischen Service Bridges und Adressen der virtuellen Maschinen der VM 502 gegenüber identifizieren. Host-Maschine 508 kann die Nachricht dann von der Netzwerkschnittstelle 516 zur identifizierten Service Bridge umgeleitet werden. Die Service Bridges werden im Betriebssystem der Host-Maschine 508 gespeichert und sind somit in der Lage, Protokolle wie z. B. Systembibliotheksaufrufe des Host-Betriebssystems zur Kommunikation mit der VM 502 nutzen. Die virtuelle Maschine 502 kann virtuellen Speicherplatz mit Benutzerbereich 504 und einem Kernbereich 506 besitzen. Kernbereich 506 kann so geändert werden, dass er entweder über die Netzwerkschnittstelle 514, wie z. B. einem virtuellen Ethernetadapter, mit der Service Bridge 510 kommuniziert oder mit einem paravirtualisierten Socket 512.
  • In manchen Implementierungen kommuniziert die Service Bridge 510 mithilfe von TCP über die Netzwerkschnittstelle 514 mit der VM 502. (Es können jedoch auch andere Datenkommunikationsprotokolle verwendet werden.) In manchen Implementierungen besteht die Netzwerkschnittstelle 514 aus einer virtuellen Ethernetschnittstelle. Die Service Bridge 510 kann einen TCP-Datenstrom bilden, den die VM 502 verarbeiten kann. Die Service Bridge 510 kann TCP-Protokolle nutzen, um den TCP-Datenstrom in IP-Pakete aufzuteilen und diese Pakete zur VM 502 zu kommunizieren. In anderen Worten, da VMs isolierte Umgebungen simulieren können, müssen zur Kommunikation über TCP sowohl die VM 502 als auch die Service Bridge 510 Standardprotokolle verwenden. Andererseits wird bei der Kommunikation mithilfe von TCP keine Änderung der Service Bridge 510 benötigt.
  • In manchen Implementierungen wird eine optimierte Version von TCP verwendet. TCP kann für Systeme vorteilhaft sein, die physikalisch nicht nah beieinander liegen, indem sie Probleme in der Netzwerkumgebung anspricht. Die Kommunikation mithilfe von TCP kann jedoch optimiert werden, wenn Systeme physikalisch nah beieinander liegen. TCP verfügt z. B. über eine zuverlässige Übertragungsfunktionalität, die sicherstellt, dass ein Paket über ein Netzwerk gesendet wird. Da sich die VM 502 in diesem Fall jedoch auf derselben Host-Maschine wie die Service Bridge 510 befindet, kann die zuverlässige Übertragung, die Fehlerprüfung und andere für eine Netzwerkumgebung optimierte Funktionalitäten der TCP für eine einzige Systemumgebung vereinfacht werden, um die Latenz zu reduzieren. Manche TCP-Funktionalitäten wie z. B. die Sliding-Window-Optimierung von TCP kann entfernt werden, während andere TCP-Funktionalitäten reduziert werden können wie z. B. die Verwendung von weniger Paritätsbits zur Fehlerprüfung.
  • In manchen Implementierungen kommuniziert die Service Bridge 510 mithilfe eines paravirtualisierten Sockets 512 mit der VM 502. Ein paravirtualisierter Socket ist eine Virtualisierungstechnik, die eine Softwareschnittstelle zwischen virtueller Maschine und Host-Betriebssystem bildet. Ein paravirtualisierter Socket kann die Latenzprobleme von Protokollen wie TCP lösen. Ein paravirtualisierter Socket kann z. B. sehr viel weniger Hardwareemulation erfordern, z. B. sind keine virtuellen Netzwerkschnittstellen notwendig und die Anzahl an langsamen Übergängen aus der VM-Umgebung kann reduziert und die Effizienz 5 der Kommunikation verbessert werden. Die Kommunikation zwischen Service Bridge 510 und VM 502 über den paravirtualisierten Socket 512 macht zudem die Fehlerprüfung im Netzwerk und einen Wiederanlauf im Fehlerfall überflüssig.
  • In manchen Implementierungen können über Service Bridge 510 Pakete wie z. B. Antworten an die VM gesendet werden, indem Pakete von der Service Bridge 510 über den paravisualierten Socket 512 in die VM 502 eingespeist werden. Service Bridge 510 kann z. B. Daten über einen gemeinsamen Ringpufferspeicher senden und von der VM 502 empfangen. In manchen Implementierungen ist ein gemeinsamer Ringpufferspeicher ein getrennter Bereich des Speichers, der in die VM und das Betriebssystem der Host-Maschine 508 zugewiesen ist. Ein Ringpuffer erlaubt der VM und der Service Bridge das gleichzeitige Lesen und Schreiben mit einem Minimum an Aufwand. In manchen Implementierungen werden über Kernel 506 der VM 502 Datenpakete aus dem gemeinsamen Ringpufferspeicher erstellt mit einem ähnlichen Protokoll wie TCP.
  • In manchen Implementierungen speist Service Bridge 510 die Pakete ein, indem sie ein Datenpaket erstellt, das die Paketstruktur eines Kommunikationsprotokoll nachahmt, z. B. die Struktur eines TCP-Pakets, und das Paket an Kernel 506 von VM 502 sendet.
  • Ausführungsformen des Gegenstands und die in dieser Spezifikation beschriebenen Tätigkeiten können in digitalen elektronischen Schaltungen oder in 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 Ausführung durch oder die Steuerung 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, ein zufälliges oder serielles Speicher-Array oder Speichergerät oder um eine Kombination aus einem oder mehreren dieser Geräte handeln oder in ihnen enthalten sein. Außerdem ist ein Computer-Speichermedium zwar kein verbreitetes Signal, aber ein Computer-Speichermedium kann eine Quelle oder ein Bestimmungsort von Computerprogrammanweisungen sein, die in einem künstlich erzeugten verbreiteten Signal kodiert werden. Bei dem Computer-Speichermedium kann es sich auch um eine oder mehrere unterschiedliche physische Komponenten oder Medien (z. B. mehrere CDs, Plattenlaufwerke oder andere Speichergeräte) handeln, bzw. kann das Speichermedium darin enthalten sein.
  • Die in dieser Spezifikation beschriebenen Tätigkeiten können als Tätigkeiten implementiert werden, die von einem datenverarbeitenden Apparat mit Daten durchgeführt werden, die auf einem oder mehreren maschinell lesbaren Speichergeräten gespeichert werden oder von anderen Quellen entgegengenommen werden.
  • Der Begriff „datenverarbeitender Apparat” umfasst alle Arten von Apparaten, Geräten und Maschinen für die Verarbeitung von Daten, einschließlich beispielsweise durch einen programmierbaren Prozessor, einen Computer, ein System auf einem oder mehreren Chips oder Kombinationen des Vorstehenden. Der Apparat kann logische Schaltungen mit einem Sonderzweck, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung) enthalten. Der Apparat kann neben der Hardware auch einen Code einschließen, der eine Ausführungsumgebung für das betreffende Computerprogramm in der Frage erstellt, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbank-Managementsystem, ein Betriebssystem, eine plattformunabhängige Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination einer oder mehrerer der genannten darstellt. Der Apparat und die Ausführungsumgebung können verschiedene unterschiedliche Rechnermodell-Infrastrukturen umsetzen, wie Webdienstleistungen, verteilte Rechen- und Grid-Computing-Infrastrukturen.
  • Ein Computerprogramm (auch bezeichnet als Programm, Software, Softwareanwendung, 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, ein Objekt 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 enthält (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 Verfahren und Logikflüsse, die in dieser Spezifikation beschrieben sind, können durch Handlungen, wie dem Betreiben von Eingabedaten und dem Erzeugen von Ausgaben. durch einen oder mehrere programmierbare Prozessoren, die einen oder mehrere Computerprogramme ausführen, durchgeführt werden. 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, schließen beispielsweise sowohl allgemeine und als auch Spezial-Mikroprozessoren sowie alle Arten eines oder mehrerer Prozessoren jeglicher Art Digitalrechner ein. Ganz allgemein nimmt ein Prozessor Befehle und Daten von einem Festwertspeicher oder einem Arbeitsspeicher oder von beiden entgegen. Die wesentlichen Elemente eines Computers sind ein Prozessor für das Ausführen von Befehlen und ein oder mehrere Speichergeräte für das Speichern von Befehlen und Daten. Ganz allgemein gehören zu einem Computer auch ein oder mehrere 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. Geräte, die für das Speichern von Computerprogrammanweisungen und -daten geeignet sind, schließen alle Formen von Dauerspeichern, Medien- und Speichergeräten ein, einschließlich beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und USB-Flash-Speicher; Magnetplatten, z. B. interne Festplatten oder herausnehmbare Platten; magnetooptische Platten; 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. Zu Beispielen für Kommunikationsnetze zählen lokale Netzwerke („LANs”), Fernnetzwerke („WAN”), netzübergreifende Verbindungen (z. B. das Internet) und Peer-to-Peer Netzwerke (z. B. ad hoc Peer-to-Peer Netzwerke).
  • 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. In einigen Ausführungsformen überträgt ein Server Daten (z. B. eine HTML-Seite) an ein Client-Gerät (z. B. zum Anzeigen von Daten auf und zum Empfangen von Benutzereingaben von einem Benutzer, der mit dem Client-Gerät interagiert). Am Client-Gerät erzeugte Daten (z. B. infolge der Benutzerinteraktion) können vom Client-Gerät am Server empfangen werden.
  • System aus einem oder mehreren Computern kann so konfiguriert werden, dass bestimmte Operationen oder Aktionen mithilfe von im System installierter Software, Firmware, Hardware oder einer Kombination davon ausgeführt werden, wenn das System in Betrieb ist. Ein oder mehrere Computerprogramme können so konfiguriert werden, dass sie bestimmte Operationen oder Aktionen durchführen, indem sie Anweisungen enthalten, die bei Ausführung durch die Datenverarbeitungsvorrichtung bewirken, dass die Vorrichtung die Aktionen durchführt.
  • Zwar enthält 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 zu mehreren Softwareprodukten verkapselt werden können.
  • Folglich wurden bestimmte Ausführungsformen des Gegenstands beschrieben. Weitere Ausführungsformen gehören zum Umfang der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen beschriebenen Handlungen in einer anderen Reihenfolge ausgeführt werden und dennoch erwünschte Ergebnisse erzielen. Zusätzlich erfordern die in den beigefügten Figuren dargestellten Prozesse nicht notwendigerweise die bestimmte gezeigte Reihenfolge oder aufeinanderfolgende Reihenfolge, um erwünschte Ergebnisse zu erzielen. Bei bestimmten Implementierungen können Multitasking und eine Parallelbearbeitung vorteilhaft sein.

Claims (30)

  1. System, das Folgendes umfasst: einen Prozessor; und computerlesbares Medium verbunden mit dem Prozessor mit gespeicherten Befehlen, sodass bei Ausführung durch den Prozessor dieser Prozessor zu folgenden Operationen veranlasst wird: das Betreiben einer oder mehrerer virtueller Maschinen auf dem Datenverarbeitungsgerät, worin virtuelle Maschinen von einem Host-Betriebssystem gehostet werden, das auf dem Datenverarbeitungsgerät ausgeführt wird, worin das Host-Betriebssystem die folgenden Operationen durchführt: das Empfangen einer Vielzahl von Anfragen von einer oder mehreren virtueller Maschinen über Service Bridges, die auf einem Host-Betriebssystem ausgeführt werden, worin jede Service Bridge jeweils mit einer unterschiedlichen virtuellen Maschine der einen oder mehreren virtuellen Maschinen verbunden ist und worin jede Anfrage eine Anfrage zum Anschluss an einen oder mehrere externe Dienste ist; das Ändern, über die jeweilige Service Bridge der Anfrage, die von externen Diensten zu verarbeiten ist; und das Übermitteln der geänderten Anfragen von der jeweiligen Service Bridge zum externen Dienst, wobei die jeweilige Service Bridge mit einem oder mehreren externen Diensten über ein Netzwerk kommuniziert.
  2. System nach Anspruch 1, wobei eine oder mehrere Anfragen in der Vielzahl von Anfragen nicht mit irgendeinem der externen Dienste kompatibel sind.
  3. System nach Anspruch 1, wobei nicht alle virtuellen Maschinen eine direkte Verbindung zu einem externen Netzwerk haben.
  4. System nach Anspruch 1, wobei die Änderungen aus der Übersetzung von Anfragen bestehen, damit diese mit dem Protokoll der externen Dienste kompatibel sind.
  5. System nach Anspruch 1, wobei die Änderung des Weiteren umfasst: das Abrufen einer Adresse aus einer Namensdatenbank, wobei die Namensdatenbank zumindest eine Vielzahl von mit den externen Diensten verbundenen Adressen enthält; das Zuordnen der abgefragten Adresse als Zieladresse der Anfrage.
  6. System nach Anspruch 1, des Weiteren als Antwort auf das Übermitteln der Anfragen umfassend: das Erhalten einer Antwort auf eine Anfrage von externen Diensten; das Identifizieren einer Service Bridge aufgrund der Antwort, wobei die Antwort die Adresse einer virtuellen Maschine enthält und wobei die Service Bridge aus einer Datenbank von Zuordnungen zwischen Service Bridges und virtuellen Maschinen identifiziert wird; das Ändern der von der virtuellen Maschine zu verarbeitenden Antwort mithilfe der identifizierten Service Bridge; und das Übermitteln der Antwort an die virtuelle Maschine.
  7. System nach Anspruch 6, wobei die Änderung der Antwort die Übersetzung des Antwortprotokolls in ein kompatibles Protokoll für die jeweilige virtuelle Maschine umfasst.
  8. System nach Anspruch 6, wobei die Änderung der Antwort des Weiteren umfasst: das Abrufen einer Adresse aus einer Namensdatenbank, wobei die Namensdatenbank zumindest eine Vielzahl von mit den virtuellen Maschinen verbundenen Adressen beinhaltet; das Zuordnen der abgefragten Adresse als Zieladresse der Antwort.
  9. System nach Anspruch 1, wobei jede Anfrage in der Vielzahl von Anfragen über einen virtuellen Netzwerkadapter an der jeweiligen virtuellen Maschine empfangen werden, wobei der Adapter als Schnittstelle dient und über Datenpakete die jeweilige virtuelle Maschine mit der entsprechenden Service Bridge verbindet.
  10. System nach Anspruch 1, wobei jede Anfrage in der Vielzahl von Anfragen von einem paravirtualisierten Socket an der jeweiligen virtuellen Maschine empfangen wird, wobei der paravirtualisierte Socketadapter als Schnittstelle dient und mithilfe eines gemeinsamen Ringpufferspeichers die jeweilige virtuelle Maschine mit der entsprechenden Service Bridge verbindet.
  11. System nach Anspruch 1, wobei das Netzwerk extern ist.
  12. System nach Anspruch 1, wobei die Service Bridges während der Erstellung der entsprechenden virtuellen Maschine generiert werden.
  13. System nach Anspruch 1, des Weiteren den Empfang einer zweiten Vielzahl von Anfragen von einem oder mehreren externen Diensten über Service Bridges umfassend, worin wiederum jede in der zweiten Vielzahl von Anfragen eine Anfrage auf Anschluss an eine oder mehrere virtuelle Maschinen ist; Änderungen an jeder Anfrage der zweiten Vielzahl der zu verarbeitenden Anfragen mithilfe der jeweiligen Service Bridge; und Übermitteln jeder geänderten Anfrage von der jeweiligen Service Bridge an die eine oder mehreren virtuellen Maschinen.
  14. System nach Anspruch 1, des Weiteren die Durchführung kryptografischer Operationen und Authentifizierungsoperationen mithilfe des Host-Betriebssystems umfassend, um zu verhindern, dass die virtuellen Maschinen die kryptografischen Operationen und Authentifizierungsoperationen überschreiben.
  15. System nach Anspruch 1, wobei Service Bridges allen vom Administrator ausgewählten Benutzern zugänglich sind.
  16. Ein computerlesbares Medium mit gespeicherten Befehlen, sodass bei Ausführung durch den Prozessor dieser Prozessor zu folgenden Operationen veranlasst wird: das Betreiben einer oder mehrerer virtueller Maschinen auf dem Datenverarbeitungsgerät, worin virtuelle Maschinen von einem Host-Betriebssystem gehostet werden, das auf dem Datenverarbeitungsgerät ausgeführt wird, worin das Host-Betriebssystem die folgenden Operationen durchführt: das Empfangen einer Vielzahl von Anfragen von einer oder mehreren virtuellen Maschinen über eine oder mehrere Service Bridges, die auf einem Host-Betriebssystem ausgeführt werden, worin eine Service Bridge jeweils mit einer eigenen virtuellen Maschine von mehreren virtuellen Maschine verbunden ist und alle Anfragen eine Anfrage zum Anschluss an externe Dienste sind; das Ändern, über die jeweilige Service Bridge der Anfrage, die von externen Diensten zu verarbeiten ist; und das Übermitteln der geänderten Anfragen von der jeweiligen Service Bridge zum externen Dienst, wobei die jeweilige Service Bridge mit einem oder mehreren externen Diensten über ein Netzwerk kommuniziert.
  17. Computerlesbares Medium nach Anspruch 16, wobei eine oder mehrere Anfragen in der Vielzahl von Anfragen nicht mit irgendeinem der einen oder mehreren externen Dienste kompatibel sind.
  18. Computerlesbares Medium nach Anspruch 16, wobei nicht alle virtuellen Maschinen eine direkte Verbindung zu einem externen Netzwerk haben.
  19. Computerlesbares Medium nach Anspruch 16, wobei die Änderungen aus der Übersetzung von Anfragen bestehen, damit diese mit dem Protokoll der externen Dienste kompatibel sind.
  20. Computerlesbares Medium nach Anspruch 16, wobei die Änderung des Weiteren umfasst: das Abrufen einer Adresse aus einer Namensdatenbank, wobei die Namensdatenbank zumindest eine Vielzahl von mit den externen Diensten verbundenen Adressen enthält; das Zuordnen der abgefragten Adresse als Zieladresse der Anfrage.
  21. Computerlesbares Medium nach Anspruch 16, des Weiteren als Antwort auf das Übermitteln der Anfragen umfassend: das Erhalten einer Antwort auf eine Anfrage von externen Diensten; das Identifizieren einer Service Bridge aufgrund der Antwort, wobei die Antwort die Adresse einer virtuellen Maschine enthält und wobei die Service Bridge aus einer Datenbank von Zuordnungen zwischen Service Bridges und virtuellen Maschinen identifiziert wird; das Ändern der von der virtuellen Maschine zu verarbeitenden Antwort mithilfe der identifizierten Service Bridge; und das Übermitteln der Antwort an die virtuelle Maschine.
  22. Computerlesbares Medium nach Anspruch 21, wobei die Änderung der Antwort die Übersetzung des Antwortprotokolls in ein kompatibles Protokoll für die jeweilige virtuelle Maschine umfasst.
  23. Computerlesbares Medium nach Anspruch 22, wobei die Änderung der Antwort des Weiteren umfasst: das Abrufen einer Adresse aus einer Namensdatenbank, wobei die Namensdatenbank zumindest eine Vielzahl von mit den virtuellen Maschinen verbundenen Adressen beinhaltet; das Zuordnen der abgefragten Adresse als Zieladresse der Antwort.
  24. Computerlesbares Medium nach Anspruch 16, wobei jede Anfrage in der Vielzahl von Anfragen über einen virtuellen Netzwerkadapter an der jeweiligen virtuellen Maschine empfangen wird, wobei der virtuelle Netzwerkadapter als Schnittstelle dient und mithilfe von Datenpaketen die jeweilige virtuelle Maschine mit der entsprechenden Service Bridge verbindet.
  25. Computerlesbares Medium nach Anspruch 16, wobei jede Anfrage in der Vielzahl von Anfragen von einem paravirtualisierten Socket an der jeweiligen virtuellen Maschine empfangen wird, wobei der paravirtualisierte Socketadapter als Schnittstelle dient und mithilfe eines gemeinsamen Ringpufferspeichers die jeweilige virtuelle Maschine mit der entsprechenden Service Bridge verbindet.
  26. Computerlesbares Medium nach Anspruch 16, wobei das Netzwerk extern ist.
  27. Computerlesbares Medium nach Anspruch 16, wobei die Service Bridges während der Erstellung der entsprechenden virtuellen Maschine generiert werden.
  28. Computerlesbares Medium nach Anspruch 16, des Weiteren den Empfang einer zweiten Vielzahl von Anfragen von einem oder mehreren externen Diensten über eine oder mehrere Service Bridges umfassend, worin wiederum jede Anfragen in der zweiten Vielzahl von Anfragen eine Anfrage auf Anschluss an eine oder mehrere virtuelle Maschinen ist; Änderungen an jeder Anfrage der zweiten Vielzahl der zu verarbeitenden Anfragen mithilfe der jeweiligen Service Bridge; und Übermitteln jeder geänderten Anfrage von der jeweiligen Service Bridge an die eine oder mehreren virtuellen Maschinen.
  29. Computerlesbares Medium nach Anspruch 16, des Weiteren die Durchführung kryptografischer Operationen und Authentifizierungsoperationen mithilfe des Host-Betriebssystems umfassend, um zu verhindern, dass die virtuellen Maschinen die kryptografischen Operationen und Authentifizierungsoperationen überschreiben.
  30. Computerlesbares Medium nach Anspruch 16, wobei Service Bridges allen vom Administrator ausgewählten Benutzern zugänglich sind.
DE202014010925.7U 2013-03-14 2014-03-10 Dienstbrücken Expired - Lifetime DE202014010925U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/830,013 2013-03-14
US13/830,013 US9448830B2 (en) 2013-03-14 2013-03-14 Service bridges

Publications (1)

Publication Number Publication Date
DE202014010925U1 true DE202014010925U1 (de) 2017-02-20

Family

ID=51534730

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202014010925.7U Expired - Lifetime DE202014010925U1 (de) 2013-03-14 2014-03-10 Dienstbrücken

Country Status (4)

Country Link
US (1) US9448830B2 (de)
EP (1) EP2972784B1 (de)
DE (1) DE202014010925U1 (de)
WO (1) WO2014159176A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10908937B2 (en) 2013-11-11 2021-02-02 Amazon Technologies, Inc. Automatic directory join for virtual machine instances
US9736159B2 (en) 2013-11-11 2017-08-15 Amazon Technologies, Inc. Identity pool bridging for managed directory services
US10447610B1 (en) 2013-11-11 2019-10-15 Amazon Technologies, Inc. Techniques for network redirection
US9594584B2 (en) * 2014-03-31 2017-03-14 Electronics And Telecommunications Research Institute Apparatus and method for mapping of tenant based dynamic processor
US10509663B1 (en) 2015-02-04 2019-12-17 Amazon Technologies, Inc. Automatic domain join for virtual machine instances
US20160373405A1 (en) * 2015-06-16 2016-12-22 Amazon Technologies, Inc. Managing dynamic ip address assignments
US10225142B2 (en) * 2015-06-30 2019-03-05 Vmware, Inc. Method and system for communication between a management-server and remote host systems
US20170003997A1 (en) * 2015-07-01 2017-01-05 Dell Products, Lp Compute Cluster Load Balancing Based on Memory Page Contents
US9977761B2 (en) * 2016-06-09 2018-05-22 International Business Machines Corporation Virtualizing TCP/IP services with shared memory transport
US11755363B2 (en) * 2016-12-19 2023-09-12 Vmware, Inc. Framework for workflow extensibility in a cloud computing system
US20190102465A1 (en) * 2017-09-29 2019-04-04 Ca, Inc. Api query extension
US10963407B1 (en) 2019-11-15 2021-03-30 Red Hat, Inc. Remote direct memory access based networking gateway

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914619A (en) 1987-10-19 1990-04-03 International Business Machines Corporation Apparatus and method for interconnecting an application of a transparent services access facility to remote source
US7103625B1 (en) 1999-10-05 2006-09-05 Veritas Operating Corporation Virtual resource ID mapping
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US9304819B2 (en) * 2007-05-29 2016-04-05 Red Hat, Inc. Virtual deployment
CN101321139A (zh) 2007-06-04 2008-12-10 华为技术有限公司 资源管理方法、承载设备及承载控制设备
US8004998B2 (en) * 2008-05-23 2011-08-23 Solera Networks, Inc. Capture and regeneration of a network data using a virtual software switch
WO2010099407A1 (en) 2009-02-27 2010-09-02 Broadcom Corporation Method and system for virtual machine networking
US8924569B2 (en) 2009-12-17 2014-12-30 Intel Corporation Cloud federation as a service
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US9262187B2 (en) 2010-02-05 2016-02-16 Microsoft Technology Licensing, Llc Extension point declarative registration for virtualization
US8407366B2 (en) * 2010-05-14 2013-03-26 Microsoft Corporation Interconnecting members of a virtual network
WO2011159842A2 (en) 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
US8677115B2 (en) * 2010-12-09 2014-03-18 Red Hat, Inc. Methods for verifying system integrity
US8966499B2 (en) * 2011-09-09 2015-02-24 Microsoft Technology Licensing, Llc Virtual switch extensibility
US8983860B1 (en) * 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US8954964B2 (en) * 2012-02-27 2015-02-10 Ca, Inc. System and method for isolated virtual image and appliance communication within a cloud environment
US8955091B2 (en) * 2012-04-30 2015-02-10 Zscaler, Inc. Systems and methods for integrating cloud services with information management systems
US9282036B2 (en) * 2013-02-20 2016-03-08 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
US9282056B2 (en) * 2013-03-13 2016-03-08 International Business Machines Corporation Metrics and forwarding actions on logical switch partitions in a distributed network switch

Also Published As

Publication number Publication date
EP2972784B1 (de) 2020-01-08
WO2014159176A1 (en) 2014-10-02
US20140282510A1 (en) 2014-09-18
EP2972784A1 (de) 2016-01-20
EP2972784A4 (de) 2016-11-30
US9448830B2 (en) 2016-09-20

Similar Documents

Publication Publication Date Title
DE202014010925U1 (de) Dienstbrücken
US11418613B2 (en) Systems and methods for recording metadata about microservices for requests to the microservices
US11695731B2 (en) Distributed identity-based firewalls
DE112013004187B4 (de) Technologie für Netzwerk-Datenübertragung durch ein Computersystem unter Verwendung von mindestens zwei Datenübertragungsprotokollen
DE202012013448U1 (de) Prozessormodussperre
DE112012003056T5 (de) Virtueller Computer und virtueller Dienst
DE202013012495U1 (de) Metadatenbasierte virtual Maschine-Konfiguration
DE112018004210T5 (de) Sichere prozessorbasierte Steuerungsebenen-Funktionsvirtualisierung in Cloud-Systemen
CN105190557A (zh) 用于通过多级api集成在公共与私有云之间进行桥接的系统和方法
DE202015009251U1 (de) Netzwerkpaketkapselung und Routing
US11201930B2 (en) Scalable message passing architecture in a cloud environment
US11044322B2 (en) Method for managing sessions using web sockets
DE112020000535B4 (de) Fehlerbehebung innerhalb und außerhalb der eigenen Räumlichkeiten
DE112022003720T5 (de) Verwenden eines fernen pods in kubernetes
DE102018202432A1 (de) Strukturunterstützung für die Dienstgüte
US20160057210A1 (en) Application profile to configure and manage a software defined environment
DE112012002404T5 (de) Konfiguration und Management virtueller Netzwerke
DE112014000433T5 (de) Kapseln eines virtuellen Servers in einer Hypervisor-Subpartition
US11272000B2 (en) Domain name service caching in distributed systems
DE102021122507A1 (de) Bereitstellen von isolierten containern zur verarbeitung von benutzeranforderungen
DE112020005674T5 (de) Datenaustausch mit einem anwendungsablauf in einem integrationssystem
DE102020113257A1 (de) Policy management system zur bereitstellung von autorisierungsinformationen über den distributed data store
US11693913B2 (en) Searching SaaS virtual applications
US20230188525A1 (en) Control of client access to server-hosted resources
CN114270314A (zh) 智能工作空间平台的统一可访问性设置

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
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

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

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