DE112016006080B4 - Verwaltung von virtuellen desktopinstanzenpools - Google Patents

Verwaltung von virtuellen desktopinstanzenpools Download PDF

Info

Publication number
DE112016006080B4
DE112016006080B4 DE112016006080.7T DE112016006080T DE112016006080B4 DE 112016006080 B4 DE112016006080 B4 DE 112016006080B4 DE 112016006080 T DE112016006080 T DE 112016006080T DE 112016006080 B4 DE112016006080 B4 DE 112016006080B4
Authority
DE
Germany
Prior art keywords
virtual desktop
instance
instances
customer
pool
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.)
Active
Application number
DE112016006080.7T
Other languages
English (en)
Other versions
DE112016006080T5 (de
Inventor
Nathan Bartholomew Thomas
Salman Aftab Paracha
Varun Verma
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of DE112016006080T5 publication Critical patent/DE112016006080T5/de
Application granted granted Critical
Publication of DE112016006080B4 publication Critical patent/DE112016006080B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

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)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

Ein System, umfassend:eine Vielzahl von Rechenknoten in einem Anbieternetzwerk, die zusammen einer Kundenorganisation einen virtuellen Desktopdienst bereitstellen, wobei jeder von den Rechenknoten zumindest einen Prozessor und einen Speicher umfasst und wobei die Kundenorganisation eine Vielzahl von Benutzern umfasst;wobei der virtuelle Desktopdienst zu Folgendem konfiguriert ist:Bestimmen einer festen Anzahl an virtuellen Desktop-Slots für die Kundenorganisation, wobei die feste Anzahl an virtuellen Desktop-Slots kleiner der Anzahl an Benutzern in der Kundenorganisation ist und wobei ein virtueller Desktop-Slot für Folgendes stehen kann:eine virtuelle Dektopinstanz, die mit einer Kundenvorrichtung in der Kundenorganisation verbunden ist,eine virtuelle Desktopinstanz, die nicht verbunden ist, aber ausgeführt wird und einem vorangehend verbundenen Benutzer zugeordnet ist, odereinen leeren Slot, auf dem weder eine verbundene noch eine getrennte Desktopinstanz ausgeführt wird;wobei die ausgeführten virtuellen Desktopinstanzen an virtuellen Desktop-Slots einem Pool an virtuellen Desktopinstanzen bilden undwobei die Anzahl an virtuellen Desktopinstanzen in dem Pool nicht die feste Anzahl an virtuellen Desktop-Slots überschreitet;auf ein Empfangen einer ersten Verbindungsanforderung von einer ersten Kundenvorrichtung, die einem ersten der Benutzer zugeordnet ist, und auf ein Bestimmen, dass eine aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in einem Pool an ausgeführten virtuellen Desktopinstanzen zum Zeitpunkt der ersten Verbindungsanforderung kleiner als die feste Anzahl an virtuellen Desktop-Slots ist;Bereitstellen eines Zugriffs auf eine getrennte, vorangehend mit dem ersten Benutzer verbundene virtuelle Desktopinstanz in dem Pool an ausgeführten virtuellen Desktopinstanzen an der ersten Kundenvorrichtung, oderHinzufügen einer neu gestarteten oder neu implementiertem virtuellen Desktopinstanz für den ersten Benutzer zum Pool an ausgeführten virtuellen Desktopinstanzen unter Verwendung von Ressourcen des Anbieternetzwerkes und Bereitstellen eines Zugriffs auf die hinzugefügte virtuelle Desktopinstanz an der ersten Kundenvorrichtung;Trennen einer ausgeführten virtuellen Desktopinstanz und weiteres Ausführen der virtuellen Desktopinstanz, wobei die virtuelle Desktopinstanz einen virtuellen Desktop-Slot einnimmt und im Pool an ausgeführten virtuellen Desktopinstanzen bleibt; undFreigeben einer getrennten, ausgeführten virtuellen Desktopinstanz aus dem Pool an ausgeführten virtuellen Desktopinstanzen, wenn aus einer zeitlichen Wachstumsrate an verbundenen virtuellen Desktopinstanzen zu erwarten ist, dass der Pool an ausgeführten virtuellen Desktopinstanzen in naher Zeit gefüllt sein wird.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Viele Unternehmen und andere Organisationen betreiben Computernetzwerke, die zur Unterstützung ihrer Vorgänge zahlreiche Rechensysteme miteinander verbinden, wie etwa mit den Rechensystemen, die (z. B. als Teil eines lokalen Netzwerkes) zusammen angeordnet sind oder stattdessen an mehreren verschiedenen geographischen Standorten (z. B. über ein oder mehrere private oder öffentliche Zwischennetzwerke verbunden) angeordnet sind. Beispielsweise sind Datenzentren üblich geworden, die eine erhebliche Anzahl an miteinander verbundenen Rechensystemen aufnehmen, wie etwa private Datenzentren, die durch eine einzige Organisation und im Namen dieser betrieben werden, und öffentliche Datenzentren, die durch Einheiten als Geschäfte betrieben werden, um Kunden oder Klienten Rechenressourcen bereitzustellen. Einige Betreiber von öffentlichen Datenzentren stellen Netzwerkzugriff, Leistung und sichere Installationseinrichtungen für Hardware im Besitz von verschiedenen Kunden bereit, während andere Betreiber von öffentlichen Datenzentren „Komplettservice-”Einrichtungen bereitstellen, die außerdem Hardware-Ressourcen beinhalten, die zur Verwendung durch ihre Kunden zur Verfügung gestellt werden. Da das Ausmaß an und der Umfang von üblichen Datenzentren angestiegen sind, haben sich die Aufgaben des Vermittelns, Administrierens und Verwaltens der physischen Rechenressourcen jedoch zunehmend verkompliziert.
  • Die Einführung von Virtualisierungstechnologien für Standardhardware hat Vorteile in Bezug auf das Verwalten von umfangreichen Rechenressourcen für viele Kunden mit unterschiedlichen Anforderungen mit sich gebracht, wodurch ermöglicht wird, dass verschiedene Rechenvorrichtungen effektiv und sicher von mehreren Kunden geteilt werden. Beispielsweise können Virtualisierungstechnologien ermöglichen, dass ein einziger physischer Rechner von mehreren Benutzern geteilt wird, indem jedem Benutzer eine oder mehrere virtuelle Maschinen bereitgestellt werden, die durch den einzigen physischen Rechner gehostet werden, wobei jede solche virtuelle Maschine eine Software-Simulation ist, die als ein getrenntes logisches Rechensystem wirkt, das Benutzern die Illusion bereitstellt, dass sie die einzigen Betreiber und Administratoren einer gegebenen Hardware-Rechenressource sind, während außerdem eine Anwendungsisolierung und -sicherheit an jeder der verschiedenen virtuellen Maschinen bereitgestellt wird. Ferner sind einige Virtualisierungstechnologien in der Lage, virtuelle Ressourcen bereitzustellen, die zwei oder mehr physische Ressourcen überspannen, wie etwa eine einzige virtuelle Maschine mit mehreren virtuellen Prozessoren, die mehrere getrennte physische Rechensysteme überspannt. Mithilfe von Virtualisierung kann die einzige physische Rechenvorrichtung virtuelle Maschinen auf dynamische Weise erzeugen, aufrechterhalten oder löschen. Benutzer können wiederum Computerressourcen von einem Datenzentrum anfordern und ihnen kann eine variierende Anzahl an virtuellen Maschinenressourcen „bei Bedarf“ oder zumindest „auf Anfrage“ bereitgestellt werden. Einige dieser virtualisierten Ressourcen können verwendet werden, um virtuelle Desktopinstanzen zu implementieren, auf denen Remote-Computing-Sitzungen gehostet werden können.
  • Dienstanbieter, die virtuelle Desktopinstanzen zum Nutzen von Kunden implementieren, fahren häufig jedes Mal die zugrundeliegenden Dienstanbieterressourcen herunter, wenn der Kunde die Verbindung zu seiner virtuellen Desktopinstanz trennt (z. B., indem er sich abmeldet). Wenn sich der Kunden wieder mit seiner virtuellen Desktopinstanz verbinden möchte, kann es lange dauern, bis die Dienstanbieterressourcen wieder hochgefahren sind. Des Weiteren kann es lange dauern (z. B. zwei Größenordnungen länger als beim Anmelden an einer lokalen Maschine), Anwendungen erneut zu öffnen, die vorangehend auf den Dienstanbieterressourcen ausgeführt wurden, sodass der Kunde weiterarbeiten kann.
    Gemäß US 2015/0007180 A1 ordnet ein Leistungsüberwachungssystem virtuelle Maschinen Benutzern oder Benutzersitzungen gemäß einer Benutzerkategorisierung zu, die unter Verwendung von Benutzersitzungsinformationen und virtuellen Maschinenmetriken bestimmt wird. Ein Sitzungsmonitor des Leistungsüberwachungssystems wird benachrichtigt, dass eine Benutzersitzung beendet wurde, bei der die Benutzersitzung auf eine virtuelle Maschine zugegriffen hat. Der Sitzungsmonitor zeichnet als Reaktion darauf die Benutzersitzungsinformationen auf und erhält virtuelle Maschinenmetriken für die virtuelle Maschine von einem virtuellen Maschinenleistungsmonitor. Das Leistungsüberwachungssystem aktualisiert ein Benutzerarbeitslastprofil unter Verwendung der Benutzersitzungsinformationen und der Metriken der virtuellen Maschine und kategorisiert den Benutzer der Benutzersitzung gemäß dem Benutzerarbeitslastprofil. Beim Empfangen einer Anforderung von einem Benutzer für eine virtuelle Maschine fordert eine virtuelle Desktop-Infrastruktur eine virtuelle Maschine von einem virtuellen Maschinen-Manager an. Der virtuelle Maschinenmanager weist dem Benutzer entsprechend der Kategorisierung des Benutzers eine virtuelle Maschine zu.
  • Es ist eine Aufgabe der Erfindung, Mittel bereitzustellen, die es ermöglichen, eine Vielzahl von Computersitzungen von Benutzern in einer Kundenorganisation möglichst schnell zu starten, wobei die für Computersitzungen bereitgestellten Ressourcen auf eine vorgegebene maximale Anzahl von gleichzeitigen Computersitzungen, die geringer sein kann als die Benutzerzahl in der Kundenorganisation, beschränkt sein sollen.
  • Die Aufgabe wird von den Gegenständen der unabhängigen Ansprüche gelöst.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
    • 1 ist ein Blockdiagramm, das eine beispielhafte Anbieternetzwerkumgebung gemäß zumindest einigen Ausführungsformen veranschaulicht.
    • 2 ist ein Blockdiagramm, das ein beispielhaftes Anbieternetzwerk gemäß zumindest einigen Ausführungsformen veranschaulicht, das Kunden einen Speichervirtualisierungsdienst und einen Hardwarevirtualisierungsdienst bereitstellt.
    • 3 ist ein Blockdiagramm, das eine vernetzte Rechenumgebung gemäß zumindest einigen Ausführungsformen veranschaulicht, die eine Kundenrechenvorrichtung in Kommunikation mit einem Dienstanbietercomputernetzwerk beinhaltet.
    • 4 ist ein Blockdiagramm, das ein beispielhaftes Dienstanbieterdatenzentrum gemäß zumindest einigen Ausführungsformen veranschaulicht.
    • 5 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zur Verwaltung von Ressourcen für virtuelle Desktopinstanzen veranschaulicht.
    • 6 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zum Erfassen veranschaulicht, dass ein Kunde eine Verbindung zu einer virtuellen Desktopinstanz getrennt hat (oder aufgrund von Inaktivität effektiv von einer virtuellen Desktopinstanz getrennt wurde).
    • 7 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zum Bestimmen veranschaulicht, ob und/oder wann die Rechenressourceninstanzen für eine virtuelle Desktopinstanz heruntergefahren werden sollen, indem eine oder mehrere Regeln zum Herunterfahren angewendet werden.
    • 8 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zum Aufbauen eines prädiktiven Modells von Verbindungen und Verbindungstrennungen für eine virtuelle Desktopinstanz veranschaulicht.
    • 9 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zum Verwalten von Dienstanbieterressourcen für eine virtuelle Desktopinstanz als Reaktion auf eine Verbindungstrennung oder eine erneute Verbindung veranschaulicht.
    • 10 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zum Initialisieren und Modifizieren einer Konfiguration und/oder Regel zum Herunterfahren für eine virtuelle Desktopinstanz veranschaulicht.
    • 11 ist ein Blockdiagramm, das ein beispielhaftes Anbieternetzwerk gemäß zumindest einigen Ausführungsformen veranschaulicht, das einer Kundenorganisation einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt.
    • 12 ist ein Blockdiagramm, das weitere Aspekte des beispielhaften Anbieternetzwerkes gemäß zumindest einigen Ausführungsformen veranschaulicht, das einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt, darunter verbundene und getrennte virtuelle Desktopinstanzen in Slots in dem Pool.
    • 13 ist ein Blockdiagramm, das weitere Aspekte des beispielhaften Anbieternetzwerkes gemäß zumindest einigen Ausführungsformen veranschaulicht, das einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt, darunter Bereitstellen von Zugriff auf eine virtuelle Desktopinstanz außerhalb des Pools an einer Kundenvorrichtung, wenn alle Slots in dem Pool durch verbundene Instanzen belegt sind.
    • 14 ist ein Blockdiagramm, das weitere Aspekte des beispielhaften Anbieternetzwerkes gemäß zumindest einigen Ausführungsformen veranschaulicht, das einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt, darunter Freigeben von getrennten virtuellen Desktopinstanzen in den Pool.
    • 15 ist ein Blockdiagramm, das weitere Aspekte des beispielhaften Anbieternetzwerkes gemäß zumindest einigen Ausführungsformen veranschaulicht, das einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt, darunter Bereitstellen von Zugriff auf eine neugestartete Desktopinstanz in dem Pool an einer Kundenvorrichtung.
    • 16 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zur Verwaltung von virtuellen Desktopinstanzenpools veranschaulicht.
    • 17 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zur Freigabe von getrennten virtuellen Desktopinstanzen in einem Pool veranschaulicht.
    • 18 ist ein Blockdiagramm, das ein beispielhaftes Computersystem gemäß anderen Ausführungsformen veranschaulicht, das einige oder alle der hierin beschriebenen Techniken implementiert.
  • Während Ausführungsformen hierin beispielhaft für verschiedene Ausführungsformen und veranschaulichende Zeichnungen beschrieben sind, erkennt der Fachmann, dass Ausführungsformen nicht auf die beschriebenen Ausführungsformen oder Zeichnungen beschränkt sind. Es versteht sich, dass die Zeichnungen und detaillierte Beschreibung davon die Ausführungsformen nicht auf die bestimmte offenbarte Form beschränken sollen, sondern die Absicht im Gegenteil ist, alle Modifikationen, Äquivalente und Alternativen abzudecken, die in den Geist und Umfang fallen, wie durch die angehängten Patentansprüche definiert. Die hierin verwendeten Überschriften dienen lediglich organisatorischen Zwecken und sollen nicht verwendet werden, um den Umfang der Beschreibung oder der Patentansprüche einzuschränken. Wie in dieser Anmeldung verwendet, wird das Wort „kann/können“ in einem zulassenden Sinn (d. h. für das Potenzial für etwas stehend) anstatt des verpflichtenden Sinns (d. h. für müssen stehend) verwendet. Gleichermaßen stehen die Wörter „einschtießen“, „einschließend“ und „schließt ein“ für einschließend, jedoch nicht darauf beschränkt.
  • DETAILLIERTE BESCHREIBUNG
  • Hierin werden verschiedene Ausführungsformen von Systemen, Verfahren und computerlesbaren Medien zur Verwaltung von Pools virtueller Desktopinstanzen beschrieben. In einem Dienstanbietersystem, das Kunden virtualisierte Rechenressourcen bereitstellt, kann ein virtueller Desktopdienst Kunden virtuelle Desktopinstanzen bereitstellen. Eine Kundenorganisation und das Anbieternetzwerk können eine Vereinbarung treffen, dass das Anbieternetzwerk einen Pool mit virtuellen Desktopinstanzen für Benutzer der Kundenorganisation bereitstellt. Der Pool kann eine vorbestimmte oder feste Anzahl an Slots beinhalten. Ein beliebiger der Slots kann durch eine verbundene virtuelle Desktopinstanz, eine getrennte (jedoch dennoch ausgeführte) virtuelle Desktopinstanz oder keine virtuelle Desktopinstanz (d. h. ein leerer Slot) gefüllt sein. Die Anzahl an Benutzern in der Kundenorganisation kann üblicherweise die Anzahl an Slots in dem Pool überschreiten. Einem Benutzer in der Kundenorganisation kann der Zugriff auf den Pool verweigert werden, wenn alle Slots durch verbundene Instanzen eingenommen sind. Getrennte (jedoch ausgeführte) Instanzen können freigegeben und für neue Verbindungsanforderungen verfügbar gemacht werden, z. B., wenn sich die Rate an verbundenen Instanzen dem nähert, dass alle Slots eingenommen sind. Getrennte Instanzen können auf Grundlage von Folgendem zur Freigabe ausgewählt werden: der Dauer eines Ruhezustands einer Instanz (um z. B. ein Verwalten der zuletzt getrennten Instanzen zu priorisieren), der erwarteten Dauer eines Neustarts einer Instanz (um z. B. ein Verwalten der getrennten Instanzen zu priorisieren, die am längsten brauchen, um neu gestartet zu werden), der relativen Rangliste oder anderen Eigenschaften von Benutzern (um z. B. ein Verwalten von getrennten Instanzen für Benutzer eines höheren Rangs oder einer höheren Priorität zu priorisieren) und/oder anderen geeigneten Kriterien. Unter bestimmten Umständen kann der Pool dynamisch erweitert werden oder kann einer Kundenvorrichtung Zugriff auf eine virtuelle Desktopinstanz außerhalb des Pools (z. B. eine Instanz, die stündlich geladen wird) bereitgestellt werden, wenn der Pool voll mit verbundenen Instanzen ist.
  • Ressourcenverwaltung für virtuelle Desktopinstanzen
  • Die hierin beschriebenen Systeme und Verfahren können in verschiedenen Ausführungsformen in einer Netzwerkumgebung und auf einem oder mehreren Rechensystemen oder durch diese implementiert werden. Ein beispielhaftes Computersystem, auf dem Ausführungsformen der hierin beschriebenen Techniken zur Verwaltungen von Ressourcen für virtuelle Desktopinstanzen implementiert werden können, ist in 18 veranschaulicht. Ausführungsformen von verschiedenen Systemen und Verfahren zum Implementieren dieser Techniken sind hierin im Allgemeinen im Zusammenhang mit einem Dienstanbieter beschrieben, der über ein Zwischennetzwerk, wie etwa das Internet, Kunden virtualisierte Ressourcen (z. B. virtualisierte Rechen- und Speicherressourcen) bereitstellt, die auf einem Anbieternetzwerk des Dienstanbieters implementiert sind. Die 1-4 und 11 (und die entsprechenden Beschreibungen davon) veranschaulichen und beschreiben beispielhafte Umgebungen, in denen Ausführungsformen der hierin beschriebenen Systeme und Verfahren implementiert werden können, und sollen nicht der Einschränkung dienen. In zumindest einigen Ausführungsformen kann es sich bei zumindest einigen der Ressourcen, die Kunden des Dienstanbieters über das Anbieternetzwerk bereitgestellt werden, um virtualisierte Rechenressourcen handeln, die auf mehrinstanzenfähiger Hardware, die mit (einem) anderen Kunden geteilt wird, und/oder auf Hardware, die dem bestimmten Kunde zugewiesen ist, implementiert sind. Jede virtualisierte Rechenressource kann als eine Ressourceninstanz bezeichnet werden. Ressourceninstanzen können zum Beispiel an Kunden des Dienstanbieters verliehen oder geleast werden. Kunden des Dienstanbieters können auf eine oder mehrere Dienste des Anbieternetzwerkes über APIs mit den Diensten zugreifen, um Ressourceninstanzen zu erhalten und zu konfigurieren und um virtuelle Netzwerkkonfigurationen einzurichten und zu verwalten, welche die Ressourceninstanzen beinhalten, zum Beispiel virtualisierte private Netzwerke.
  • In einigen Ausführungsformen können die Ressourceninstanzen zum Beispiel gemäß Hardwarevirtualisierungstechnologie implementiert werden, die es mehreren Betriebssystemen ermöglicht, gleichzeitig auf einem Host-Computer ausgeführt zu werden, d. h. als virtuelle Maschinen (VMs) auf den Hosts. Ein Hypervisor oder Virtual-Machine-Monitor (VMM) auf einem Host kann die VMs auf dem Host mit einer virtuellen Plattform darstellen und überwacht die Ausführung der VMs. Jede VM kann mit einer oder mehreren privaten IP-Adresse bereitstellt sein; der VMM auf einem Host kann sich über die privaten IP-Adressen der VMs auf dem Host bewusst sein. Ein Beispiel für ein System, das eine solche Hardwarevirtualisierungstechnologie nutzt, ist in 4 veranschaulicht und nachfolgend im Detail beschrieben.
  • Beispielhafte Anbieternetzwerkumgebungen
  • Dieser Abschnitt beschreibt beispielhafte Anbieternetzwerkumgebungen, in denen Ausführungsformen der hierin beschriebenen Verfahren implementiert werden können. Diese beispielhaften Anbieternetzwerkumgebungen sollen jedoch nicht der Einschränkung dienen. In verschiedenen Ausführungsformen kann ein Dienstanbieter in diesen Anbieternetzwerkumgebungen virtuelle Ressourceninstanzen im Namen eines Kunden hosten, auf die durch Endnutzer zugegriffen werden kann. Beispielsweise sind Endnutzer, die dem Kunden zugeordnet sind, in dessen Namen die virtualisierten Ressourceninstanzen gehostet werden (z. B. Mitarbeiter derselben Organisation oder desselben Unternehmens) unter Umständen in der Lage, unter Verwendung von Kundenanwendungen auf Kundenvorrichtungen auf die virtualisierte Ressourceninstanzen zuzugreifen. In einigen Ausführungsformen können die virtualisierten Instanzen konfiguriert sein, um virtuelle Desktopinstanzen zu implementieren.
  • 1 veranschaulicht eine beispielhafte Anbieternetzwerkumgebung gemäß zumindest einigen Ausführungsformen. Ein Anbieternetzwerk 100 kann Kunden Ressourcenvirtualisierung über einen oder mehrere Virtualisierungsdienste 110 bereitstellen, die es Kunden ermöglichen, Instanzen 112 von virtualisierten Ressourcen zu erwerben, zu leihen oder anderweitig zu erhalten, darunter unter anderem Rechen- und Speicherressourcen, die auf Vorrichtungen in dem Anbieternetzwerk oder den Anbieternetzwerken in einem oder mehreren Datenzentren implementiert sind. Den Ressourceninstanzen 112 können private IP-Adressen 116 zugeordnet sein; bei den privaten IP-Adressen handelt es sich um die internen Netzwerkadressen der Ressourceninstanzen 112 in dem Anbieternetzwerk 100. In einigen Ausführungsformen kann das Anbieternetzwerk 100 außerdem öffentliche IP-Adressen 114 und/oder öffentliche IP-Adressbereiche (z. B. Adressen des Internetprotokolls Version 4 (IPv4) oder des Internetprotokolls Version 6 (IPv6)) bereitstellen, die Kunden von dem Anbieter 100 erhalten können.
  • Herkömmlicherweise kann es das Anbieternetzwerk 100 einem Kunden des Dienstanbieters (z. B. einem Kunden, der ein Kundennetzwerk 150A, 150B oder 150C betreibt, von denen jedes eine oder mehrere Kundenvorrichtungen 152 beinhalten kann) über die Virtualisierungsdienste 110 ermöglichen, zumindest einige der öffentlichen IP-Adressen 114, die dem Kunden zugewiesen oder zugeteilt sind, dynamisch bestimmten Ressourceninstanzen 112 zuzuordnen, die dem Kunden zugewiesen sind. Das Anbieternetzwerk 100 kann es dem Kunden außerdem ermöglichen, eine öffentliche IP-Adresse 114, die vorangehend einer virtualisierten Rechenressourceninstanz 112 zugeordnet wurde, die dem Kunden zugeteilt ist, einer anderen virtualisierten Rechenressourceninstanz 112 neu zuzuordnen, die dem Kunden ebenfalls zugeteilt ist. Beispielsweise kann ein Kunde des Dienstanbieters, wie etwa der Betreiber des Kundennetzwerkes 150A, unter Verwendung der virtualisierten Rechenressourceninstanzen 112 und der öffentlichen IP-Adressen 114, die durch den Dienstanbieter bereitgestellt werden, kundenspezifische Anwendungen implementieren und die Anwendungen des Kunden an einem Zwischennetzwerk 140 darstellen, wie etwa dem Internet. Andere Netzwerkeinheiten 120 in dem Zwischennetzwerk 140 können dann Datenverkehr zu einer öffentlichen Ziel-IP-Adresse 114 generieren, die durch das Kundennetzwerk 150A veröffentlicht wird; der Datenverkehr wird an das Datenzentrum des Dienstanbieters geroutet und wird an dem Datenzentrum über ein Netzwerksubstrat an die private IP-Adresse 116 der virtualisierten Rechenressourceninstanz 112 geroutet, die aktuell der öffentlichen Ziel-IP-Adresse 114 zugeordnet ist. Gleichermaßen kann Antwortdatenverkehr von der virtualisierten Rechenressourceninstanz 112 über das Netzwerksubstrat zurück in das Zwischennetzwerk 140 zu der Quelleneinheit 120 geroutet werden.
  • Private IP-Adressen beziehen sich wie hierin verwendet auf die internen Netzwerkadressen von Ressourceninstanzen in einem Anbieternetzwerk. Private IP-Adressen können nur in dem Anbieternetzwerk geroutet werden. Netzwerkdatenverkehr, der seinen Ursprung außerhalb des Anbieternetzwerkes hat, wird nicht direkt an die privaten IP-Adressen geroutet; stattdessen verwendet der Datenverkehr öffentliche IP-Adressen, die den Ressourceninstanzen zugeordnet sind. Das Anbieternetzwerk kann Netzwerkvorrichtungen oder -geräte beinhalten, die eine Netzwerkadressübersetzung (NAT) oder eine ähnliche Funktion bereitstellen, um das Zuordnen von öffentlichen IP-Adressen zu privaten IP-Adressen und umgekehrt durchzuführen.
  • Öffentliche IP-Adressen sind wie hierin verwendet internetroutbare Netzwerkadressen, die entweder durch den Dienstanbieter oder durch den Kunden Ressourceninstanzen zugewiesen sind. Datenverkehr, der zu einer öffentlichen IP-Adresse geroutet wird, wird übersetzt, zum Beispiel über 1: 1 -Netzwerkadressübersetzung (NAT), und an die entsprechende private IP-Adresse einer Ressourceninstanz weitergeleitet.
  • Einige öffentliche IP-Adressen können durch die Infrastruktur des Anbieternetzwerkes bestimmten Ressourceninstanzen zugewiesen werden; diese öffentlichen IP-Adressen können als öffentliche Standard-IP-Adressen oder einfach als Standard-IP-Adressen bezeichnet werden. In zumindest einigen Ausführungsformen ist das Zuordnen einer Standard-IP-Adresse zu einer privaten IP-Adresse einer Ressourceninstanz die Standardstartkonfiguration für alle Ressourceninstanztypen.
  • Zumindest einige öffentliche IP-Adressen können Kunden des Anbieternetzwerkes 100 zugeteilt oder durch diese erhalten werden; ein Kunde kann seine zugeteilten öffentlichen IP-Adressen dann bestimmten Ressourceninstanzen zuweisen, die dem Kunden zugeordnet sind. Diese öffentlichen IP-Adressen können als öffentliche Kunden-IP-Adressen oder einfach als Kunden-IP-Adressen bezeichnet werden. Anstatt durch das Anbieternetzwerk 100 Ressourceninstanzen zugewiesen zu werden, wie im Falle von Standard-IP-Adressen, können Kunden-IP-Adressen durch die Kunden Ressourceninstanzen zugewiesen werden, zum Beispiel über eine AP1, die durch den Dienstanbieter bereitgestellt wird. Anders als Standard-IP-Adressen können Kunden-IP-Adressen Kundenkonten zugeteilt werden und durch die entsprechenden Kunden anderen Ressourceninstanzen neu zugeordnet werden, falls erforderlich oder erwünscht. In einigen Ausführungsformen ist eine Kunden-IP-Adresse einem Konto eines Kunden und nicht einer bestimmten Ressourceninstanz zugeordnet und steuert der Kunde diese IP-Adresse, bis der Kunde sich dazu entscheidet, diese freizugeben. Anders als herkömmliche statische IP-Adressen können es Kunden-IP-Adressen dem Kunden ermöglichen, einen Ressourceninstanz- oder Verfügbarkeitsbereichsfehler zu verbergen, indem die öffentlichen IP-Adressen des Kunden einer beliebigen Ressourceninstanz neu zugeordnet werden, die dem Konto des Kunden zugeordnet ist. Die Kunden-IP-Adressen können es einem Kunden zum Beispiel ermöglichen, Probleme mit den Ressourceninstanzen oder der Software des Kunden zu umgehen, indem er Kunden-IP-Adressen Ersatzressourceninstanzen neu zuordnet.
  • Es ist außerdem anzumerken, dass die Ressourceninstanzen 112, die Kunden (z. B. Kundenressourcen 152) über den (die) Virtualisierungsdienst(e) 110 zur Verfügung gestellt werden, in einigen Ausführungsformen mehrere Netzwerkschnittstellen beinhalten können. Beispielsweise können zumindest einige davon eine Netzwerkschnittstelle zum Kommunizieren mit verschiedenen Komponenten eines Kundennetzwerkes 150 und eine weitere Netzwerkschnittstelle zum Kommunizieren mit Ressourcen oder anderen Netzwerkeinheiten an einem anderen Netzwerk beinhalten, das sich außerhalb des Anbieternetzwerkes 100 befindet (nicht gezeigt).
  • 2 ist ein Blockdiagramm einer weiteren beispielhaften Anbieternetzwerkumgebung gemäß zumindest einigen Ausführungsformen, die Kunden einen Speichervirtualisierungsdienst und einen Hardwarevirtualisierungsdienst bereitstellt. In diesem Beispiel stellt der Hardwarevirtualisierungsdienst 220 Kunden mehrere Rechenressourcen 224 (z. B. VMs) bereit. Die Rechenressourcen 224 können zum Beispiel an Kunden des Anbieternetzwerkes 200 (z. B. an einen Kunden, der ein Kundennetzwerk 250 implementiert) verliehen oder geleast werden. Jede Rechenressource 224 kann mit einer oder mehreren privaten IP-Adressen bereitgestellt werden. Das Anbieternetzwerk 200 kann konfiguriert sein, um Pakete von den privaten IP-Adressen der Rechenressourcen 224 an öffentliche Internetziele und von öffentlichen Internetquellen an die Rechenressourcen 224 zu routen.
  • Das Anbieternetzwerk 200 kann einem Kundennetzwerk 250, das zum Beispiel über ein lokales Netzwerk 256 an ein Zwischennetzwerk 240 gekoppelt ist, die Fähigkeit bereitstellen, virtuelle Rechensysteme 292 über den Hardwarevirtualisierungsdienst 220 zu implementieren, der an das Zwischennetzwerk 240 und das Anbieternetzwerk 200 gekoppelt ist. In einigen Ausführungsformen kann der Hardwarevirtualisierungsdienst 220 eine oder mehrere APIs 202, zum Beispiel eine Webdienst-Schnittstelle, bereitstellen, über die ein Kundennetzwerk 250 auf eine Funktion zugreifen kann, die durch den Hardwarevirtualisierungsdienst 220 bereitgestellt wird, zum Beispiel über eine Konsole 294. In zumindest einigen Ausführungsformen kann an dem Anbieternetzwerk 200 jedes virtuelle Rechensystem 292 an dem Kundennetzwerk 250 einer Rechenressource 224 entsprechen, die an das Kundennetzwerk 250 geleast, verliehen oder anderweitig an diesem bereitgestellt wurde.
  • Der Kunde kann von einer Instanz eines virtuellen Rechensystems 292 und/oder einer anderen Kundenvorrichtung 290 oder -konsole 294, zum Beispiel über eine oder mehrere APIs 202, auf die Funktion eines Speichervirtualisierungsdienstes 210 zugreifen, um auf Daten von einem virtuellen Datenspeicher 216 zuzugreifen, der durch das Anbieternetzwerk 200 bereitgestellt wird, und Daten darauf zu speichern. In einigen Ausführungsformen kann ein virtualisiertes Datenspeicher-Gateway (nicht gezeigt) an dem Kundennetzwerk 250 bereitgestellt werden, das zumindest einige Daten lokal zwischenspeichern kann, zum Beispiel Daten, auf die häufig zugegriffen wird, oder kritische Daten, und das mit dem virtualisierten Datenspeicherdienst 210 über einen oder mehrere Kommunikationskanäle kommunizieren kann, um neue oder modifizierte Daten von einem lokalen Zwischenspeichert hochzuladen, sodass der primäre Datenspeicher (der virtualisierte Datenspeicher 216) beibehalten wird. In zumindest einigen Ausführungsformen kann ein Benutzer über ein virtuelles Rechensystem 292 und/oder eine andere Kundenvorrichtung 290 eines oder mehrere Speichervolumen 218 des virtuellen Datenspeichers 216 einbinden, von denen jedes dem Benutzer als ein virtualisierter lokaler Speicher 298 erscheint, und auf diese zugreifen.
  • Während dies nicht in 2 gezeigt ist, kann auf den (die) Virtualisierungsdienst(e) außerdem über (eine) API(s) 202 von Ressourceninstanzen in dem Anbieternetzwerk 200 zugegriffen werden. Beispielsweise kann ein Kunde, ein Anwendungsdienstanbieter oder eine andere Einheit von innerhalb eines entsprechenden privaten Netzwerkes an dem Anbieternetzwerk 200 über eine API 202 auf einen Virtualisierungsdienst zugreifen, um eine Zuteilung von einer oder mehreren Ressourceninstanzen in dem privaten Netzwerk oder in einem weiteren privaten Netzwerk anzufordern. Es ist anzumerken, dass der Hardwarevirtualisierungsdienst 220 in einigen Ausführungsformen konfiguriert sein kann, um Rechenressourcen 224 bereitzustellen, die konfiguriert wurden, um eine virtuelle Desktopinstanz zu implementieren, die dem Benutzer als ein lokaler Desktop erscheinen kann (der durch ein virtuelles Rechensystem 292 implementiert wurde). Es ist außerdem anzumerken, dass die Rechenressourcen 224, die Kunden über den Hardwarevirtualisierungsdienst 220 zur Verfügung gestellt werden, in einigen Ausführungsformen mehrere Netzwerkschnittstellen beinhalten können. Beispielsweise können zumindest einige davon eine Netzwerkschnittstelle zum Kommunizieren mit verschiedenen Komponenten eines Kundennetzwerkes 250 und eine weitere Netzwerkschnittstelle zum Kommunizieren mit Rechenressourcen oder anderen Netzwerkeinheiten in einem anderen Netzwerk beinhalten, das sich außerhalb des Anbieternetzwerkes 200 befindet (nicht gezeigt).
  • In einigen Ausführungsformen können verschiedene Komponenten eines Dienstanbieternetzwerkes zur Generierung und Verwaltung von Remote-Computing-Sitzungen zwischen Kundenrechenvorrichtungen und virtuellen Desktopinstanzen konfiguriert sein, die durch einen oder mehrere Remote-Datenzentrumscomputer einer Program-Execution-Service-(PES-)Plattform gehostet werden. Eine Reihe von Datenzentren kann als Teil einer einzigen PES-Plattform organisiert sein, welche die Verwendung von Ressourcen der Datenzentren durch Kunden des PES unterstützen kann. In einigen Ausführungsformen kann der PES Hunderte oder Tausende von Datenzentrumscomputers beinhalten. In einigen Ausführungsformen können die Kundenrechenvorrichtungen zum Beispiel während einer oder mehreren Remote-Computing-Sitzungen auf die virtuellen Desktopinstanzen zugreifen und kann eine virtuelle Desktopinstanz einem Benutzer alle Funktionen einer Kunden-Desktopumgebung bereitstellen, wobei die Dienste, auf die der Kunde zugreift, jedoch zentral vermittelt werden.
  • In einigen Ausführungsformen kann ein Kunde über eine Kundenrechenvorrichtung eine Anforderung übermitteln, eine Anwendung zu laden, wie etwa eine Remote-Rechenanwendung. Nach dem Empfang der Anforderung kann die Kundenrechenvorrichtung mit einer PES-Plattform kommunizieren, um eine Remote-Computing-Sitzung zu starten. In einer Ausführungsform kann die Kommunikation zwischen der Kundenrechenvorrichtung und der PES-Plattform Anmeldeinformationen beinhalten. In anderen Ausführungsformen kann die Kommunikation außerdem Informationen beinhalten, die Ressourcennutzungsinformationen, Verarbeitungsanforderungen oder Regeln in Bezug auf die Dauer oder Bedingungen der Remote-Computing-Sitzung für den Benutzer der Kundenrechenvorrichtung identifizieren. Die Kundenrechenvorrichtung kann ferner verschiedene Informationen in Bezug auf den Vorrichtungszustand kommunizieren, darunter unter anderem eine aktuelle oder zukünftige Verfügbarkeit von Vorrichtungsressourcen (z. B. Verarbeitungsleistung, Arbeitsspeicher, Datenspeicher, Netzwerknutzung usw.). Die PES-Plattform kann unter Verwendung der empfangenen Informationen eine oder mehrere virtuelle Desktopinstanzen zur Ausführung bei einer oder mehreren Remote-Computing-Sitzungen identifizieren. In einem Beispiel kann die PES-Plattform eine Instanz einer virtuellen Maschine auf einem Datenzentrumscomputer instanziieren oder veranlassen, dass diese instanziiert wird, und kann die Instanz der virtuellen Maschine ein Betriebssystem beinhalten. Die Kundenrechenvorrichtung kann dann eine Remote-Computing-Sitzung mit der virtuellen Maschine einrichten und die Benutzerschnittstelle des Betriebssystems (z. B. die Ausgabe des Betriebssystems, wie etwa eine grafische Benutzerschnittstelle, ein Ton usw.) kann über eine bestimmte Netzwerkschnittstelle der Instanz der virtuellen Maschine oder einer virtuellen Desktopinstanz an die Kundenrechenvorrichtung gesendet und dem Benutzer dargestellt werden (z. B. kann die grafische Benutzerschnittstelle auf einer Anzeige der Kundenrechenvorrichtung gerendert werden). Das Betriebssystem kann ein Desktop-Profil verwenden, das dem Benutzer zugeordnet und auf einem Desktop-Speicher gespeichert ist, auf den durch den PES zugegriffen werden kann, um die virtuelle Desktopinstanz für den Benutzer zu konfigurieren, indem der Desktop-Hintergrund, der Bildschirmschoner, das Desktop-Layout, die Mauszeiger-Präferenzen, die Toneinstellungen und dergleichen eingestellt werden. Benutzereingaben, wie etwa Maus- und Keyboard-Aktivität, können dann (über eine bestimmte Netzwerkschnittstelle der Instanz der virtuellen Maschine oder virtuellen Desktopinstanz) an die virtuelle Maschine gesendet und in das Betriebssystem eingespeist werden, als ob die Aktivität direkt an der virtuellen Maschine durch einen Benutzer durchgeführt worden wäre.
  • In einigen Ausführungsformen kann die PES-Plattform während der Remote-Computing-Sitzung an der Kundenrechenvorrichtung Daten empfangen oder generieren, die der Interaktion der Kundenrechenvorrichtung mit der virtuellen Desktopinstanz zugeordnet sind. Diese Daten können Benutzerdaten und -präferenzen, Dateien und dergleichen beinhalten. Bei Empfang der Daten kann die PES-Plattform die Daten auf dem Desktopspeicher speichern, welcher der virtuellen Desktopinstanz zugeordnet ist. In einigen Ausführungsformen kann der Desktopspeicher auf einem Volumen oder einer anderen logischen Blockspeichervorrichtung implementiert sein. In einigen Ausführungsformen kann der PES eine Sicherungskopie der Daten erzeugen oder die Daten außerdem auf einem zentralen Datenspeicher speichern. Die gespeicherten Daten können dann verwendet werden, um Remote-Computing-Sitzungen wiederherzustellen, die aufgrund eines Fehlers unterbrochen wurden, wie etwa eines Fehlers der virtuellen Desktopinstanz, des Servers, der die virtuelle Desktopinstanz hostet, des Netzwerkes usw. Indem die Benutzerdaten gespeichert werden, kann die PES-Plattform sicherstellen, dass das Wiederherstellen einer Remote-Computing-Sitzung mit minimaler Verzögerung und Unterbrechung für einen Benutzer einer Kundenrechenvorrichtung erfolgt.
  • In einigen Ausführungsformen kann die bereitgestellte virtuelle Desktopinstanz gemäß einem Benutzerprofil konfiguriert sein, das an einem Benutzerprofilspeicher des PES gespeichert ist. Die Konfiguration der virtuellen Desktopinstanz kann außerdem gemäß der überwachten Verwendung der Instanz angepasst werden. In einigen Ausführungsformen kann das Benutzerprofil durch einen Administrator eingestellt werden, der einer Einheit zugeordnet ist, welche die Verwendung durch den Benutzer reguliert. Das Benutzerprofil kann verschiedene Speicher- und Verarbeitungsanforderungen, die den PES-Computern zugeordnet sind, welche die eine oder mehreren virtuellen Desktopinstanzen ausführen, sowie Anforderungen für die virtuellen Desktopinstanzen angeben. Beispielsweise kann das Benutzerprofil die Programme angeben, auf die der Benutzer Zugriff hat, während er die virtuelle Desktopinstanz verwendet. Das Benutzerprofil kann außerdem einen maximalen Zeitraum oder maximale Kosten angeben, der bzw. die der Remote-Computing-Sitzung zugeordnet ist bzw. sind. Der PES kann ein Benutzerprofil für den Benutzer in Erwägung ziehen, wenn er die virtuellen Desktopinstanzen platziert und konfiguriert. Des Weiteren können Platzierungs- und Konfigurationsentscheidungen außerdem auf Grundlage einer Interaktion eines Benutzers mit dem virtuellen Desktop im Zeitverlauf angepasst werden.
  • 3 ist ein Blockdiagramm, das eine beispielhafte vernetzte Rechenumgebung 300 veranschaulicht, die eine Kundenrechenvorrichtung 306 beinhaltet, die über das Kommunikationsnetzwerk 304 mit einem Dienstanbietercomputernetzwerk 305 in Kommunikation steht. Die Kundenrechenvorrichtung 306 kann verwendet werden, um einem Benutzer Zugriff auf ein Remote-Betriebssystem und -Anwendungen bereitzustellen. In verschiedenen Ausführungsformen kann die Kundenrechenvorrichtung 306 einer breiten Vielfalt von Rechenvorrichtungen entsprechen, darunter persönliche Rechenvorrichtungen, Laptop-Rechenvorrichtungen, tragbare Rechenvorrichtungen, Terminal-Rechenvorrichtungen, mobile Vorrichtungen (z. B. Mobiltelefone, Tablet-Rechenvorrichtungen, E-Book-Reader usw.), drahtlose Vorrichtungen, verschiedene elektronische Vorrichtungen und Geräte und dergleichen. In einigen Ausführungsformen beinhaltet die Kundenrechenvorrichtung 306 notwendige Hardware- und Softwarekomponenten zum Einrichten von Kommunikationen über ein Kommunikationsnetzwerk 304, wie etwa ein Weitbereichsnetzwerk oder ein lokales Netzwerk. Beispielsweise kann die Kundenrechenvorrichtung 306 mit Netzwerkgeräten und Browser-Softwareanwendungen ausgestattet sein, die Kommunikationen über das Internet oder ein Intranet unterstützen. Die Kundenrechenvorrichtung 306 kann variierte lokale Rechenressourcen aufweisen, wie etwa zentrale Verarbeitungseinheiten und -architekturen, einen Speicher, einen Massenspeicher, Grafikverarbeitungseinheiten, Kommunikationsnetzverfügbarkeit und -bandbreite usw.
  • In einer Ausführungsform kann die Kundenrechenvorrichtung 306 eine Remote-Rechenanwendung 330 ausführen. Die Remote-Rechenanwendung 330 kann einen Zugriff auf eine virtuelle Desktopinstanz anfordern, die durch das Dienstanbietercomputernetzwerk 305 gehostet wird. Die Remote-Rechenanwendung 330 kann außerdem die Remote-Computing-Sitzung zwischen der Kundenrechenvorrichtung 306 und dem Dienstanbietercomputernetzwerk 305 verwalten. Wie in 3 veranschaulicht, kann das Dienstanbietercomputernetzwerk 305 außerdem eine PES-Plattform 302 beinhalten. Die in 3 veranschaulichte PES-Plattform 302 entspricht einer logischen Zuordnung von einem oder mehreren Datenzentren, die einem Dienstanbieter zugeordnet sind. Die PES-Plattform 302 kann einer Reihe von Datenzentrumscomputern zugeordnet sein, wie etwa den Datenzentrumscomputern 310. Jeder Datenzentrumscomputer 310 kann eine oder mehrere virtuelle Desktopinstanzen 314 hosten. Beispielsweise kann der Datenzentrumscomputer 310 eine virtuelle Desktopinstanz durch Ausführen einer virtuellen Maschine auf einer physischen Vorrichtung hosten. Die virtuelle Maschine kann eine Instanz eines Betriebssystems und einer Anwendungssoftware ausführen, um eine virtuelle Desktopinstanz zu erzeugen. Auf jede durch den PES 302 ausgeführte virtuelle Desktopinstanz kann durch eine oder mehrere Kundenrechenvorrichtungen zugegriffen werden, wie etwa die Kundenrechenvorrichtung 306.
  • In einigen Ausführungsformen können die Datenzentrumscomputer 310 privaten Netzwerkadressen, wie etwa IP-Adressen, in dem Dienstanbietercomputernetzwerk 305 zugeordnet sein, sodass auf diese unter Umständen nicht direkt durch die Kundenrechenvorrichtungen 306 zugegriffen werden kann. Die virtuellen Desktopinstanzen 314 können öffentlichen Netzwerkadressen zugeordnet sein, die durch ein Gateway am Rande des Dienstanbietercomputernetzwerks 305 verfügbar gemacht werden können. Dementsprechend können die virtuellen Desktopinstanzen 314 über die öffentlichen Netzwerkadressen direkt durch die Kundenrechenvorrichtungen 306 adressierbar sein. Ein Fachmann auf dem jeweiligen Fachgebiet kann nachvollziehen, dass jeder Datenzentrumscomputer 310 physische Rechenvorrichtungsressourcen und Software beinhaltet, um die mehreren virtuellen Desktopinstanzen 314 auszuführen oder die virtuellen Desktopinstanzen 314 dynamisch zu instanziieren. Solche Instanziierungen können auf einer spezifischen Anforderung basieren, wie etwa von der Kundenrechenvorrichtung 306.
  • Wie in 3 veranschaulicht, können die Datenzentrumscomputer 310 einen oder mehrere Instanzenmanager 322 beinhalten. Die Instanzenmanager 322 können sich auf demselben Computer befinden wie die entsprechenden Instanzen 314 oder auf einem separaten Computer. Die Instanzenmanager 322 können den Fortschritt der Instanzen nachverfolgen, die auf den Datenzentrumscomputern 310 ausgeführt werden, die Speicherung von Daten überwachen und koordinieren, die durch den Benutzer während der Interaktion über die Kundenrechenvorrichtungen mit den Instanzen 314 erzeugt werden, und die allgemeine Gesundheit und den allgemeinen Zustand der Datenzentrumscomputer 310 und der Remote-Rechenanwendungen überwachen, die auf den Kundenrechenvorrichtungen 306 ausgeführt werden. Die Instanzenmanager 322 können Informationen kommunizieren, die durch Nachverfolgen und Überwachen mit der Datenzentrumsverwaltungskomponente 301 der PES-Plattform 302 gesammelt wurden, um die verschiedenen Remote-Computing-Sitzungen zwischen den Datenzentrumscomputern 310 und den Kundenrechenvorrichtungen 306 effizient zu verwalten. In einigen Ausführungsformen können die hierin beschriebenen Techniken zum Erfassen von Aktivität oder Inaktivität auf einer virtuellen Desktopinstanz, Überwachen und Nachverfolgen von Verbindungen mit, Verbindungstrennungen von und erneuten Verbindungen mit verschiedenen virtuellen Desktopinstanzen und Bestimmen, ob und/oder wann die zugrundeliegenden virtualisierten Rechenressourcen heruntergefahren werden sollen, durch die Instanzenmanager 322 durchgeführt werden.
  • Wie in 3 veranschaulicht, kann das Dienstanbieternetzwerk 305 außerdem eine Speicherdienstplattform 303 beinhalten. Die Speicherdienstplattform 303 kann einen oder mehrere Speicherserver 307 beinhalten oder mit diesen verbunden sein. Die Speicherserver 307 können zum Speichern von Daten verwendet werden, die durch die virtuellen Desktopinstanzen 314 generiert oder verwendet werden. Die durch die virtuellen Desktopinstanzen 314 generierten oder verwendeten Daten können auf der Interaktion zwischen den Kundenrechenvorrichtungen 306 und dem PES 302 über eine oder mehrere Remote-Computing-Sitzungen basieren.
  • In einigen Ausführungsformen kann die Speicherdienstplattform 303 Informationen, die einer gehosteten virtuellen Desktopinstanz 314 zugeordnet sind, logisch in einem Desktop-Speicher organisieren und verwalten. Die Informationen, die einer virtuellen Desktopinstanz 314 zugeordnet sind und in dem Desktop-Speicher verwaltet werden, können unter anderem Benutzerpräferenzen, benutzer- oder kundenspezifische Regeln, der Ausführung von Programmdaten zugeordnete Informationen, Benutzerinhalte, Referenzen auf Benutzerinhalte und dergleichen einschließen. Beispielsweise können Ordner, die durch den Benutzer verwendet werden, um Musik, Dateien und dergleichen auf anderen Speichervorrichtungen zu speichern, einschließlich durch Speicherdienstanbieter, ebenfalls über Referenzen auf diese Speicherorte dem Desktop-Speicher zugeordnet werden. Dies bedeutet, dass Eingabe-/Ausgabevorgänge, wie etwa Anforderungen, Dateien in diesen Ordnern zu öffnen, zu dem Desktop-Speicher umgeleitet werden können. Wenn ein Benutzer versucht, eine in seinem Dokumentenordner gespeicherte Datei zu öffnen, kann die Anforderung somit durch das Betriebssystem, das in der virtuellen Desktopinstanz ausgeführt wird, an den Desktop-Speicher umgeleitet werden. Zusätzlich zu den durch den Benutzer erzeugten Daten kann das Desktop-Profil des Benutzers, das zum Beispiel Konfigurationsinformationen für den Desktop beinhalten kann, wie etwa das Hintergrundbild, Schriftarten, die Anordnung der Symbole und dergleichen, ebenfalls auf dem Desktop-Speicher gespeichert sein, welcher der virtuellen Desktopinstanz des Benutzers zugeordnet ist. In einigen Ausführungsformen kann das Dienstanbietercomputernetzwerk 305 in der Lage sein, die Auswirkung von Fehlerfunktionen des (der) Datenzentrumscomputer(s) 310, der (die) die virtuellen Desktopinstanzen 314 ausführt (ausführen), oder von Fehlern, die der Ausführung der virtuellen Desktopinstanzen 314 auf dem (den) Datenzentrumscomputer(n) 310 zugeordnet sind, abzuschwächen, indem er Daten auf Speicherservern speichert, die unabhängig von den Datenzentrumscomputern 310 sind. Des Weiteren kann das Dienstanbieternetzwerk 305 außerdem die Kundeninteraktion mit mehreren virtuellen Desktopinstanzen 314 durch Verwalten der Informationen in den Desktop-Speichern unterstützen. Wenn eine virtuelle Desktopinstanz 314 einen Fehler aufweist, kann in einigen Ausführungsformen eine neue Instanz gestartet und mit demselben Desktop-Speicher verbunden werden, der vorangehend mit der virtuellen Desktopinstanz 314 verbunden war, die einen Fehler aufwies.
  • In verschiedenen Ausführungsformen können die Desktop-Speicher über verschiedene Server verteilt sein, die zu Leistungszwecken auf Servern in verschiedenen Netzwerkbereichen repliziert werden können oder die zu Sicherungs- oder Fehlerüberwachungszwecken über mehrere Server mit unabhängigen Fehlerprofilen repliziert werden können. Beispielsweise können die Server mit unterschiedlichen Leistungsquellen oder Kühlsystemen verbunden werden, können sich die Server in unterschiedlichen Räumen eines Datenzentrums oder in unterschiedlichen Datenzentren befinden und/oder können die Server mit unterschiedlichen Routern oder Netzwerk-Switches verbunden werden. In einigen Ausführungsformen kann sich ein Desktop-Speicher auf einen Speicherserver befinden und können Änderungen, die an dem Desktop-Speicher vorgenommen werden, auf einem anderen Desktop-Speicher auf einem anderen Speicherserver repliziert werden. Durch eine solche Replikation kann eine Sicherungskopie der Daten des Benutzers erzeugt werden. Wenn der Desktop-Speicher einen Fehler aufweist oder die virtuelle Desktopinstanz 314 die Verbindung zu dem Desktop-Speicher verliert, kann der PES 302 die Verbindung der virtuellen Desktopinstanz 314 von dem Desktop-Speicher zu dem Desktop-Sicherungsspeicher umschalten.
  • Wie in 3 veranschaulicht, kann die PES-Plattform 302 außerdem eine zentrale Speichervorrichtung beinhalten, wie etwa einen zentralen PES-Datenspeicher 340 zum Speichern von Daten, die durch verschiedene Desktop-Speicher und Sicherungsspeicher auf den Speicherservern 307 gespeichert wurden. Die Datenzentrumscomputer 310 und die Speicherserver 307 können ferner zusätzliche Software- oder Hardware-Komponenten beinhalten, die Kommunikationen unterstützen, darunter unter anderem Software-/Hardware-Komponenten zum Lastausgleich oder zur Lastverteilung zum Auswählen von Instanzen einer virtuellen Maschine, die eine angeforderte Anwendung unterstützen und/oder Informationen an einem DNS-Namensserver bereitstellen, um das Routen von Anforderungen zu unterstützen.
  • Wie in diesem Beispiel veranschaulicht, kann das Dienstanbietercomputernetzwerk 305 einen Benutzerprofil-Speicher 308 beinhalten. Der Benutzerprofil-Speicher 308 kann verwendet werden, um zum Beispiel verschiedene Programme zu speichern, auf die ein Benutzer Zugriff hat, während er eine virtuelle Desktopinstanz 314 verwendet. Die gespeicherten Benutzerprofile können außerdem einen maximalen Zeitraum oder maximale Kosten angeben, der bzw. die den Remote-Computing-Sitzungen verschiedener Benutzer zugeordnet ist bzw. sind. Die PES-Plattform 302 kann Benutzerprofile in Erwägung ziehen, wenn sie die virtuellen Desktopinstanzen 314 platziert, konfiguriert und/oder verwaltet. Die PES-Plattform 302 kann außerdem einen virtuellen Desktop-Bildspeicher 309 beinhalten oder mit diesem verbunden sein. Der virtuelle Desktop-Bildspeicher 309 kann Vorlagenbilder von Betriebssystemen ohne je nach Benutzerprofil angewendete Anpassungen beinhalten.
  • In einigen Ausführungsformen kann in Erwägung gezogen werden, dass die Datenzentrumscomputer 310 und Speicherserver 307 logisch gruppiert sind, unabhängig davon, ob die Komponenten oder Teile der Komponenten physisch getrennt sind. Beispielsweise kann ein Dienstanbietercomputernetzwerk 305 getrennte Orte zum Bereitstellen der virtuellen Desktopinstanzen 314 und der Speicherkomponenten verwalten. Auch wenn die Datenzentrumscomputer 310 in 3 so veranschaulicht sind, dass sie einer PES-Plattform 302 logisch zugeordnet sind, können die Datenzentrumscomputer 310 zudem auf eine Weise geographisch verteilt sein, auf die sie verschiedene demographische Standorte ihrer Benutzer am besten bedienen. Des Weiteren kann ein Fachmann des entsprechenden Fachgebiets nachvollziehen, dass das Dienstanbietercomputernetzwerk 305 verschiedenen zusätzlichen Rechenvorrichtungen zugeordnet sein kann, wie etwa zusätzlichen Rechenvorrichtungen zur Administration von Inhalten und Ressourcen und dergleichen. Beispielsweise kann das Dienstanbietercomputernetzwerk 305 (und/oder verschiedene der virtuellen Desktopinstanzen 314, die darauf implementiert sind) konfiguriert sein, um mit anderen Netzwerkeinheiten 320 über das Kommunikationsnetzwerk 304 oder über ein anderes Kommunikationsnetzwerk zu kommunizieren (z. B. können zumindest einige der virtuellen Desktopinstanzen 314 eine Netzwerkschnittstelle beinhalten, die verwendet werden kann, um auf eine oder mehrere Netzwerkeinheiten 320 zuzugreifen, und die von einer Netzwerkschnittstelle getrennt und verschieden ist, die zum Kommunizieren mit der Kundenrechenvorrichtung 306 verwendet werden kann). Diese anderen Netzwerkeinheiten 320 können zum Beispiel Folgendes beinhalten: andere Kundennetzwerke oder Rechenvorrichtungen davon, Rechensysteme, die Ressourcen zum Bedienen von Anforderungen bereitstellen, die von der Kundenrechenvorrichtung 306 empfangen wurden, und/oder Netzwerke oder Rechenvorrichtung davon, die über das Internet auf andere Dienste, Anwendungen oder Daten zugreifen.
  • In einigen Ausführungsformen können die Verarbeitungsanforderungen, die einem Benutzer oder einer Kundenrechenvorrichtung zugeordnet sind, auf Grundlage einer Vielfalt von Szenarien bestimmt werden. In einigen Ausführungsformen kann die Bestimmung auf einer Benutzeranforderung beim Starten der Remote-Rechenanwendung 330 basieren. Beispielsweise kann dem Benutzer eine grafische Benutzerschnittstelle (GUI) dargestellt werden, die eine Vielfalt von Optionen für Ressourcen und Anwendungen anzeigt. Der Benutzer kann dann die Anwendungen, auf die er wünscht zuzugreifen, oder alternativ die Version dieser Anwendungen auswählen. Beispielsweise möchte ein Benutzer unter Umständen auf eine Basisversion einer Anwendung zugreifen, während ein anderer Benutzer unter Umständen auf eine Professional-Version derselben Anwendung zugreifen möchte. Die Bestimmung kann außerdem auf vorausgewählten Optionen für bestimmte Benutzer basieren, wie durch Administratoren von Einheiten bestimmt, die den Benutzern zugeordnet sind. Beispielsweise können die vorausgewählten Optionen den Benutzern als eine Liste mit unterschiedlichen Paketen von Anwendungen dargestellt werden, auf die der Benutzer unter Umständen wünscht zuzugreifen. In einigen Fällen kann die Bestimmung auf Grundlage von Nutzungsverlaufsdaten eines Benutzers vorgenommen werden, welche die PES-Plattform 302 bestimmen kann, sobald die Anforderung von dem Benutzer empfangen wurde. In anderen Fällen kann die Bestimmung der Verarbeitungsanforderungen auf laufender Überwachung der Verwendung von Prozessen durch den Benutzer, sobald die Remote-Computing-Sitzung initiiert wurde, basieren. In solchen Fällen kann die Auswahl von angemessenen Ressourceninstanzen dynamisch geändert werden, nachdem die Sitzung eingerichtet wurde, und kann der dynamische Wechsel zu (einer) neuen Instanz(en) wie in Bezug auf 3 vorangehend beschrieben durchgeführt werden. In einigen Ausführungsformen kann die Remote-Rechenanwendung 330 anfordern, dass eine virtuelle Desktopsitzung im Namen des Kunden geöffnet wird, als Reaktion worauf eine virtuelle Desktopinstanz 314 instanziiert, zur Verwendung des Kunden konfiguriert und/oder über das Netzwerk 304 (z. B. über eine oder zwei Netzwerkschnittstellen der virtuellen Desktopinstanz 314) mit der Kundenrechenvorrichtung 306 verbunden wird.
  • In einigen Ausführungsformen kann ein Dienstanbieternetzwerk, das VMs und VMMs implementiert, Internetprotokoll-(IP-)Tunneling-Technologie verwendet, um Kundendatenpakete über ein Netzwerksubstrat zwischen Kundenressourceninstanzen auf unterschiedlichen Hosts in dem Anbieternetzwerk zu kapseln und zu routen. Das Anbieternetzwerk kann ein physisches Netzwerksubstrat beinhalten, das Netzwerkgeräte, wie etwa Router, Switches, Netzwerkadressübersetzer (NATs) und so weiter, sowie die physischen Verbindungen zwischen den Vorrichtungen beinhaltet. Das Anbieternetzwerk kann IP-Tunneling-Technologie verwendet, um ein Überlagerungsnetzwerk bereitzustellen, über das gekapselte Pakete (das heißt, Kundenpakete, die mit Überlagerungsnetzwerk-Metadaten gekennzeichnet wurden, darunter unter anderem Überlagerungsnetzwerk-Adressinformationen zum Routen über das Überlagerungsnetzwerk) über Tunnel oder Überlagerungsnetzwerkrouten durch das Netzwerksubstrat geroutet werden. Die IP-Tunneling-Technologie kann ein Zuordnungs- und Kapselsystem zum Erzeugen des Überlagerungsnetzwerkes an dem Netzwerksubstrat bereitstellen und kann einen getrennten Namensraum für die Überlagerungsnetzwerkschicht (öffentliche IP-Adressen) und die Schicht des Netzwerksubstrats (private IP-Adressen) bereitstellen. In zumindest einigen Ausführungsformen können gekapselte Pakete in der Überlagerungsnetzwerkschicht auf Grundlage eines Zuordnungsverzeichnisses geprüft werden, um zu bestimmen, welches Tunnelsubstratziel (welche private IP-Adresse) sie haben sollten. Die IP-Tunneling-Technologie kann eine virtuelle Netzwerktopologie bereitstellen, die auf dem physischen Netzwerksubstrat überlagert ist; die Schnittstellen (z. B. die Dienst-APIs), die Kunden dargestellt werden, werden mit dem Überlagerungsnetzwerk verbunden, sodass eine IP-Adresse durch Kommunikation mit einem Zuordnungsdienst, der bestimmen kann, wo sich die IP-Überlagerungsadressen befinden, in einem virtuellen Raum ausgeführt wird, wenn eine Kundenressourceninstanz die IP-Adresse bereitstellt, an die Pakete gesendet werden sollen. Eine beispielhafte Verwendung der Überlagerungsnetzwerktechnologie ist in 4 veranschaulicht und wird nachfolgend genauer beschrieben.
  • In verschiedenen Ausführungsformen können Kundenressourceninstanzen auf den Hosts gemäß statusbehafteten Protokollen, wie etwa dem Transmission Control Protocol (TCP), und/oder statusfreien Protokollen, wie etwa dem User Datagram Protocol (UDP), mit anderen Kundenressourceninstanzen auf demselben Host oder anderen Hosts kommunizieren. Die Kundenpakete werden jedoch gemäß einem Überlagerungsnetzwerkprotokoll durch den sendenden VMM gekapselt und durch den empfangenden VMM entkapselt. Bei Empfangen eines Kundenpakets (z. B. eines TCP- oder UDP-Pakets) von einer Kundenressourceninstanz auf dem Host und mit dem Ziel einer IP-Adresse einer weiteren Kundenressourceninstanz kapselt oder kennzeichnet ein VMM auf einem Host das Kundenpaket gemäß einem Überlagerungsnetzwerkprotokoll (oder IP-Tunneling-Protokoll) und sendet das gekapselte Paket zur Lieferung auf das Überlagerungsnetzwerk. Das gekapselte Paket kann dann gemäß der IP-Tunneling-Technologie über das Überlagerungsnetzwerk an einen anderen VMM geroutet werden. Der andere VMM entfernt die Überlagerungsnetzwerkkapselung von dem Paket und liefert das Kundenpaket (z. B. ein TCP- oder UDP-Paket) an die entsprechende VM auf dem Host, welche die Zielkundenressourceninstanz implementiert. Anders ausgedrückt: Obwohl in einigen Ausführungsformen ein einziges zugrundeliegendes physisches Netzwerk in der Dienstanbieterrechenumgebung (z. B. das Dienstanbieterdatenzentrum) vorhanden sein kann, können es die hierin beschriebenen Kapselungen ermöglichen, dass es so erscheint, als ob jede Kundenanwendung (oder jede Kundenressourceninstanz, auf der eine oder mehrere Kundenanwendungen ausgeführt werden) auf ihrem eigenen virtuellen Netzwerk ausgeführt wird (z. B. können sich Datenpakete für mehrere Kundenanwendungen auf demselben physischen Netzwerk bewegen, es kann jedoch so erscheinen, als ob sich der zu jeder der Kundenanwendungen geleitete Datenverkehr auf einem privaten Netzwerk bewegt).
  • In einigen Ausführungsformen kann es sich bei dem Überlagerungsnetzwerk um ein zustandsloses Netzwerk handeln, das gemäß einem verbindungslosen (oder zustandslosen) IP-Protokoll implementiert wird. In einigen solchen Ausführungsformen sendet der sendende VMM das gekapselte Paket zum Routen und zur Lieferung auf das Überlagerungsnetzwerk, empfängt jedoch keine Bestätigung (ACK) oder andere Antwort in Bezug auf die Lieferung des Pakets. In anderen Ausführungsformen kann der VMM eine ACK oder andere Antwort in Bezug auf die Lieferung eines gekapselten Pakets empfangen.
  • 4 veranschaulicht ein beispielhaftes Datenzentrum gemäß zumindest einigen Ausführungsformen (z. B. eines, das unter Verwendung von IP-Tunneling-Technologie ein Überlagerungsnetzwerk an einem Netzwerksubstrat bereitstellt). Wie in diesem Beispiel veranschaulicht, kann ein Anbieterdatenzentrum 400 ein Netzwerksubstrat beinhalten, das Netzwerkgeräte 412 beinhaltet, wie etwa Router, Switches, Netzwerkadressübersetzer (NATs) und dergleichen. Zumindest einige Ausführungsformen können eine Internetprotokoll-(IP-)Tunneling-Technologie verwenden, um ein Überlagerungsnetzwerk bereitzustellen, über das gekapselte Pakete unter Verwendung von Tunneln durch das Netzwerksubstrat 410 geleitet werden können. Die IP-Tunneling-Technologie kann ein Zuordnungs- und Kapselsystem zum Erzeugen eines Überlagerungsnetzwerkes an einem Netzwerk (z. B. einem lokalen Netzwerk in dem Datenzentrum 400 aus 4) bereitstellen und kann einen getrennten Namensraum für die Überlagerungsschicht (die öffentlichen IP-Adressen) und die Schicht des Netzwerksubstrats 410 (die privaten IP-Adressen) bereitstellen. Pakete in der Überlagerungsschicht können auf Grundlage eines Zuordnungsverzeichnisses (das z. B. durch einen Zuordnungsdienst 430 bereitgestellt wird) geprüft werden, um zu bestimmen, welches Tunnelsubstratziel (welche private IP-Adresse) sie haben sollten. Die IP-Tunneling-Technologie stellt eine virtuelle Netzwerktopologie (das Überlagerungsnetzwerk) bereit; die Schnittstellen (z. B. die Dienst-APIs), die Kunden dargestellt werden, werden mit dem Überlagerungsnetzwerk verbunden, sodass eine IP-Adresse durch Kommunikation mit einem Zuordnungsdienst (z. B. dem Zuordnungsdienst 430) in einem virtuellen Raum ausgeführt wird, der weiß, wo sich die IP-Überlagerungsadressen befinden, wenn ein Kunde die IP-Adresse bereitstellt, an die der Kunde Pakete senden möchte.
  • In zumindest einigen Ausführungsformen kann die IP-Tunneling-Technologe IP-Überlagerungsadressen (öffentlichen IP-Adressen) Substrat-IP-Adressen (privaten IP-Adressen) zuordnen, die Pakete in einem Tunnel zwischen den zwei Namensräumen kapseln und das Paket über den Tunnel, in dem die Kapselung von dem Paket entfernt wird, an den richtigen Endpunkt liefern. In 4 sind ein beispielhafter Überlagerungsnetzwerktunnel 434A von einer virtuellen Maschine (VM) 424A auf einem Host 420A zu einer Vorrichtung an dem Zwischennetzwerk 440 (z. B. einem Rechensystem 470, einem Rechensystem 452 an einem lokalen Netzwerk 450 oder einem Datenzentrum 46) und ein beispielhafter Überlagerungsnetzwerktunnel 434B zwischen einer VM 424B auf einem Host 420B und einer VM 424A auf einem Host 420A gezeigt. In einigen Ausführungsformen kann ein Paket vor dem Senden in einem Überlagerungsnetzwerk-Paketformat gekapselt werden und kann das Überlagerungsnetzwerkpaket nach dem Empfangen entkapselt werden. In anderen Ausführungsformen kann eine Überlagerungsnetzwerkadresse (öffentliche IP-Adresse) vor dem Senden in eine Substratadresse (private IP-Adresse) eines Pakets eingebettet werden und beim Empfangen von der Paketadresse gelöst werden, statt Pakete in Überlagerungsnetzwerkpaketen zu kapseln. Als ein Beispiel kann das Überlagerungsnetzwerk unter Verwendung von 32-Bit-IPv4-Adressen (Adressen des Internetprotokolls Version 4) als die öffentlichen IP-Adressen implementiert werden und können die IPv4-Adressen als Teil von 128-Bit-IPv6-Adressen (Adressen des Internetprotokolls Version 6) eingebettet werden, die als die privaten IP-Adressen in dem Substratnetzwerk verwendet werden.
  • Zumindest einige Netzwerke, in denen Ausführungsformen der hierin beschriebenen Techniken zum Verwalten von Ressourcen für virtuelle Desktopinstanzen implementiert werden können, können Hardwarevirtualisierungstechnologie beinhalten, die ermöglicht, dass mehrere Betriebssysteme gleichzeitig auf einem Host-Computer (z. B. dem Host 420A und 420B aus 4) ausgeführt werden, d. h. als virtuelle Maschinen (VMs) 424 auf den Hosts 420. Die VMs 424 (von denen einige konfiguriert sein können, um eine virtuelle Desktopinstanz zur Verwendung durch einen Kunden zu implementieren) können zum Beispiel an Kunden eines Netzwerkanbieters verliehen oder geleast werden. Ein Hypervisor oder Virtual-Machine-Monitor (VMM) 422 auf einem Host 420 kann als ein Instanzenmanager für die VMs 424 und/oder andere virtualisierte Ressourceninstanzen auf den Hosts 420 dienen, was Darstellen der VMs 424 auf dem Host mit einer virtuellen Plattform und Überwachen der Ausführung der VMs 424 beinhalten kann. In einigen Ausführungsformen können die hierin beschriebenen Techniken zum Erfassen von Aktivität oder Inaktivität auf einer virtuellen Desktopinstanz, Überwachen und Nachverfolgen von Verbindungen mit, Verbindungstrennungen von und erneuten Verbindungen mit verschiedenen virtuellen Desktopinstanzen und Bestimmen, ob und/oder wann die zugrundeliegenden virtualisierten Rechenressourcen heruntergefahren werden sollen, durch den VMM 422 durchgeführt werden. Jede VM 424 kann mit einer oder mehreren privaten IP-Adressen bereitstellt sein; der VMM 422 auf einem Host 420 kann sich über die privaten IP-Adressen der VMs 424 auf dem Host bewusst sein. Ein Zuordnungsdienst 430 kann sich über alle Netzwerk-IP-Präfixe und die IP-Adressen von Routern oder anderen Vorrichtungen, die IP-Adressen in dem lokalen Netzwerk bedienen, bewusst sein. Die schließt die IP-Adressen der VMMs 422 ein, die mehrere VMs 424 bedienen. Der Zuordnungsdienst 430 kann zentralisiert sein, zum Beispiel auf einem Serversystem, oder kann alternativ auf zwei oder mehr Serversystemen oder anderen Vorrichtungen in dem Netzwerk verteilt sein. Ein Netzwerk kann zum Beispiel die Zuordnungsdienst-Technologie und die IP-Tunneling-Technologie verwendet, um zum Beispiel Datenpakete zwischen VMs 424 auf verschiedenen Hosts 420 in dem Netzwerk des Datenzentrums 400 zu routen; es ist anzumerken, dass ein Interior Gateway Protocol (1GP) verwendet werden kann, um Routing-Informationen in einem solchen lokalen Netzwerk auszutauschen.
  • Des Weiteren kann ein Netzwerk, wie etwa das Netzwerk des Anbieterdatenzentrums 400 (das mitunter als ein autonomes System (AS) bezeichnet wird) die Zuordnungsdienst-Technologie, IP-Tunneling-Technologie und Routingdienst-Technologie verwendet, um Pakete von den VMs 424 zu Internet-Zielen und von Internet-Zielen zu den VMs 424 zu routen. Es ist anzumerken, dass ein External Gateway Protocol (EGP) oder ein Border Gateway Protocol (BGP) üblicherweise für das Internet-Routing zwischen Quellen und Zielen im Internet verwendet werden. 4 zeigt ein beispielhaftes Anbieterdatenzentrum 400 gemäß zumindest einigen Ausführungsformen, das ein Netzwerk implementiert, das Ressourcenvirtualisierungstechnologie bereitstellt und das einen vollständigen Internetzugriff über (einen) Edge-Router 414 bereitstellt, die mit Internet-Transit-Anbietern verbunden sind. Das Anbieterdatenzentrum 400 kann zum Beispiel Kunden die Fähigkeit, virtuelle Rechensysteme (VMs 424) über einen Hardwarevirtualisierungsdienst (wie etwa den Hardwarevirtualisierungsdienst 220 aus 2) zu implementieren, und die Fähigkeit bereitstellen, virtualisierte Datenspeicher 416 über einen Speichervirtualisierungsdienst (wie etwa den Speichervirtualisierungsdienst 210 aus 2) auf Speicherressourcen 418 zu implementieren.
  • In einigen Ausführungsformen kann das Netzwerk des Datenzentrums 400 IP-Tunneling-Technologie, Zuordnungsdienst-Technologie und Routingdienst-Technologie implementieren, um Datenverkehr zu und von virtualisierten Ressourcen zu routen, zum Beispiel, um Pakete von den VMs 424 auf den Hosts 420 in dem Datenzentrum 400 zu Internetzielen und von Internetzielen an die VMs 424 zu routen. Internetquellen und -ziele können zum Beispiel Rechensysteme 470, die mit dem Zwischennetzwerk 440 verbunden sind, und Rechensysteme 452 einschließen, die mit lokalen Netzwerken 450 verbunden sind, die (z. B. über den (die) Edge-Router 414, die das Netzwerk 450 mit Internet-Transitanbietern verbinden) mit dem Zwischennetzwerk 440 verbunden sind. Das Netzwerk des Anbieterdatenzentrums 400 kann außerdem Pakete zwischen Ressourcen in dem Datenzentrum 400 routen, zum Beispiel von einer VM 424 auf einem Host 420 in dem Datenzentrum 400 zu anderen VMs 424 auf demselben Host oder anderen Hosts 420 in dem Datenzentrum 400. In einigen Ausführungsformen können zumindest einige der VMs 424 zwei oder mehr Netzwerkschnittstellen beinhalten. Beispielsweise können sie eine Netzwerkschnittstelle, die zur Kommunikationen zwischen den VMs 424 und den Kunden verwendet werden können, in deren Namen die VMs 424 durch den Anbieter gehostet werden, und eine zweite (getrennte und verschiedene) Netzwerkschnittstelle beinhalten, die verwendet werden kann, um auf externe Ressourcen, Rechensysteme, Datenzentren oder Internetzielen auf Netzwerken zuzugreifen, bei denen es sich nicht um das Anbieternetzwerk oder das Kundennetzwerk handelt, von denen eines oder beide eine IP-Tunneling-Technologie nutzen können, wie hierin beschrieben.
  • Ein Dienstanbieter, der das Datenzentrum 400 bereitstellt, kann außerdem ein zusätzliches Datenzentrum/zusätzliche Datenzentren 460 bereitstellen, das bzw. die eine Hardwarevirtualisierungstechnologie ähnlich der des Datenzentrums 400 beinhaltet bzw. beinhalten und das bzw. die ebenfalls mit dem Zwischennetzwerk 440 verbunden sein kann bzw. können. Pakete können von dem Datenzentrum 400 an andere Datenzentren 460 weitergeleitet werden, zum Beispiel von einer VM 424 auf einem Host 420 in dem Datenzentrum 400 zu einer anderen VM auf einem anderen Host in einem anderen, ähnlichen Datenzentrum 460 und umgekehrt.
  • Während vorangehend Hardwarevirtualisierungstechnologie beschrieben wird, die ermöglicht, dass mehrere Betriebssysteme gleichzeitig als virtuelle Maschinen (VMs) auf den Hosts auf Host-Computern ausgeführt werden, wobei die VMs an Kunden des Netzwerkanbieters verliehen oder geleast werden können, kann die Hardwarevirtualisierungstechnologie außerdem verwendet werden, um Kunden eines Netzwerkanbieters auf ähnliche Weise weitere Rechenressourcen, zum Beispiel Speicherressourcen 418, als virtualisierte Ressourcen bereitzustellen.
  • Es ist anzumerken, dass ein öffentliches Netzwerk im weiteren Sinne als ein Netzwerk definiert sein kann, das einen offenen Zugriff auf eine Vielzahl von Einheiten und Interkonnektivität zwischen diesen bereitstellt. Das Internet oder World Wide Web (WWW) ist ein Beispiel für ein öffentliches Netzwerk. Ein geteiltes Netzwerk kann im weiteren Sinne als ein Netzwerk definiert sein, bei dem der Zugriff auf zwei oder mehr Einheiten beschränkt ist, im Gegensatz zu einem öffentlichen Netzwerk, bei dem der Zugriff im Allgemeinen nicht beschränkt ist. Ein geteiltes Netzwerk kann zum Beispiel ein oder mehrere lokale Netzwerke (LANs) und/oder Datenzentrumsnetzwerke oder zwei oder mehr LANs oder Datenzentrumsnetzwerke, die miteinander verbunden sind, um ein Weitbereichsnetzwerk (WAN) zu bilden, beinhalten. Beispiele für geteilte Netzwerke können unter anderem Unternehmensnetzwerke und andere Geschäftsnetzwerke einschließen. Ein geteiltes Netzwerk kann beliebig im Umfang von einem Netzwerk, das einen lokalen Bereich abdeckt, bis zu einem globalen Netzwerk angeordnet sein. Es ist anzumerken, dass ein geteiltes Netzwerk zumindest einen Teil der Netzwerkinfrastruktur mit einem öffentlichen Netzwerk gemeinsam haben kann und dass ein geteiltes Netzwerk an ein oder mehrere andere Netzwerke gekoppelt sein kann, die ein öffentliches Netzwerk einschließen können, wobei ein kontrollierter Zugriff zwischen dem (den) anderen Netzwerk(en) und dem geteilten Netzwerk besteht. Ein geteiltes Netzwerk kann auch als ein privates Netzwerk im Gegensatz zu einem öffentlichen Netzwerk, wie das Internet, angesehen werden. In Ausführungsformen kann entweder ein geteiltes Netzwerk oder ein öffentliches Netzwerk als ein Zwischennetzwerk zwischen einem Anbieternetzwerk und einem Kundennetzwerk oder zwischen einem Anbieternetzwerk und anderen Netzwerkeinheiten dienen (z. B. externen Ressourcen, Rechensystemen, Datenzentren oder Internetzielen in Netzwerken, bei denen es sich nicht um das Anbieternetzwerk oder das Kundennetzwerk handelt, in dessen Namen die VMs 424 durch den Anbieter gehostet werden).
  • Während in einigen Ausführungsformen physische Computer vorliegen, die Kundenanwendungen und andere hierin beschriebene Prozesse ausführen, können die Kundenanwendungen als virtuelle Maschinen auf den physischen Computern ausgeführt werden. Beispielsweise können interne Prozesse der Cloud-Computing-Umgebung, die konfiguriert sind, um die Erzeugung dieser virtuellen Maschinen zu verwalten, um Ressourcen für diese virtuellen Maschinen zu vermitteln und/oder um andere administrative Aufgaben im Namen von Kunden und/oder ihren Anwendungen auszuführen (z. B. Überwachen der Ressourcenverwendung, Kundenbuchführung, Rechnungsstellung für Dienste usw.) in einer Steuerungsebenenschicht (oder einen Hypervisor) in der Cloud-Computing-Umgebung ausgeführt werden. Im Gegensatz dazu können Kundenanwendungen (z. B. jede Ressourceninstanz, die eine Anwendungskomponente implementiert) in einer Datenebenenschicht der Cloud-Computing-Umgebung ausgeführt werden. Unter diesen Schichten liegt in einigen Ausführungsformen unter Umständen lediglich eine physische Netzwerkkarte für jeden Host-Knoten (oder für mehrere Host-Knoten) vor; jede Ressourceninstanz kann jedoch ausgeführt werden, als ob sie ihr eigenes Netzwerk (z. B. ein virtuelles Netzwerk) aufweisen würde. In einigen Ausführungsformen kann jede Ressourceninstanz ihre eigene(n) Datenebenennetzwerkverbindung(en) aufweisen, kann jedoch lokale API-Aufrufe durchführen (z. B. Aufrufe an eine Komponente an demselben Knoten), ohne sich auf diese Datenebenennetzwerkverbindungen stützen zu müssen.
  • In einigen Ausführungsformen kann ein Kunde eine Anwendung auf einer lokalen Maschine ausführen, jedoch Ressourceninstanzen in einer Cloud-Computing-Umgebung zur Verwendung im Falle eines Fehlers auf der lokalen Maschine vermitteln. In einigen Ausführungsformen können mehrere Ressourceninstanzen in einer Cloud-Computing-Umgebung ausgeführt werden, um eine verteilte Anwendung im Namen eines Kunden zu implementieren. In unterschiedlichen Ausführungsformen kann es sich bei der Cloud-Computing-Umgebung um eine mehrinstanzenfähige Umgebung handeln, in der jede Anwendung (und/oder jedes virtuelle private Netzwerk) ihren (seinen) eigenen Namensraum aufweisen kann. In einigen Ausführungsformen kann jeder Kunde seine eigene Zuteilung an Netzwerkkonnektivität und/oder Durchgangskapazität (Bandbreite) aufweisen. Beispielsweise können/kann die Netzwerkkonnektivität und/oder Durchgangskapazität in dem Datenebenennetzwerk zur Verwendung durch verschiedene Kunden vermittelt werden (d. h. diesen zugewiesen oder für diese reserviert sein).
  • In verschiedenen Ausführungsformen kann ein Anbieter von virtuellen Computing-Diensten private Netzwerke für zumindest einige Kunden in dem Anbieternetzwerk implementieren. Ein virtualisiertes privates Netzwerk eines Kunden in dem Dienstanbieternetzwerk kann es zum Beispiel einem Kunden ermöglichen, seine bestehende Infrastruktur (z. B. Kundenvorrichtungen) in dem Kundennetzwerk mit einem Satz von lokal isolierten Ressourceninstanzen (z. B. VMs und Speichervorrichtungen oder -volumen) zu verbinden, und Verwaltungsfunktionen, wie etwa Sicherheitsdienste, Firewalls und Intrusion-Detection-Systeme, auf seine Ressourceninstanzen auszuweiten. In einigen Ausführungsformen kann ein virtualisiertes privates Netzwerk eines Kunden über einen privaten Kommunikationskanal mit einem Kundennetzwerk verbunden sein. Bei einem privaten Kommunikationskanal kann es sich zum Beispiel um einen Tunnel, der gemäß einer Netzwerk-Tunneling-Technologie implementiert ist, oder um eine andere Peering-Verbindung über ein Zwischennetzwerk handeln. Bei dem Zwischennetzwerk kann es sich zum Beispiel um ein geteiltes Netzwerk oder ein öffentliches Netzwerk, wie etwa das Internet, handeln. Alternativ kann ein privater Kommunikationskanal über eine direkte, dedizierte Verbindung zwischen einem virtualisierten privaten Netzwerk und einem Kundennetzwerk implementiert werden.
  • Um ein virtualisiertes privates Netzwerk für einen Kunden auf einem Anbieternetzwerk einzurichten, können eine oder mehrere Ressourceninstanzen (z. B. VMs, Speichervorrichtungen oder -volumen) dem virtualisierten privaten Netzwerk zugeteilt werden. Es ist anzumerken, dass andere Ressourceninstanzen zur Verwendung durch andere Kunden in dem Anbieternetzwerk verfügbar bleiben können. Eine Reihe von öffentlichen IP-Adressen kann ebenfalls dem virtualisierten privaten Netzwerk zugeteilt werden. Des Weiteren können eine oder mehrere Netzwerkgeräte (Router, Switches usw.) des Anbieternetzwerks dem virtualisierten privaten Netzwerk zugeteilt werden. Ein privater Kommunikationskanal kann zwischen einem privaten Gateway an einem virtualisierten privaten Netzwerk und einem Gateway an einem Kundennetzwerk eingerichtet werden. In zumindest einigen Ausführungsformen kann ein virtualisiertes privates Netzwerk zusätzlich zu oder anstelle von einem privaten Gateway ein öffentliches Gateway beinhalten, das es Ressourcen innerhalb des virtualisierten privaten Netzwerks ermöglicht, direkt über ein Zwischennetzwerk mit anderen Einheiten (z. B. Netzwerkeinheiten) und umgekehrt anstelle davon oder zusätzlich dazu über einen privaten Kommunikationskanal zu kommunizieren. In einigen Ausführungsformen kann ein virtualisiertes privates Netzwerk in zwei oder mehr Teilnetze unterteilt sein (nicht gezeigt); dies ist jedoch nicht zwingend erforderlich. In anderen Ausführungsformen können eine oder mehrere VMs konfiguriert sein, um über einen privaten Kommunikationskanal durch ein privates Gateway (z. B. über eine Netzwerkschnittstelle, die zur Kommunikation zwischen der VM und einer Kundenvorrichtung konfiguriert ist) auf ein Kundennetzwerk zuzugreifen und über einen alternativen Kommunikationskanal durch ein öffentliches Gateway auf andere Netzwerkeinheiten zuzugreifen.
  • In einigen Ausführungsformen kann der Kunde bestimmten Ressourceninstanzen in einem virtualisierten privaten Netzwerk bestimmte öffentliche Kunden-IP-Adressen zuweisen. Eine Netzwerkeinheit an einem Zwischennetzwerk kann dann Datenverkehr an eine öffentliche IP-Adresse senden, die durch den Kunden veröffentlicht wurde; der Datenverkehr kann durch das Anbieternetzwerk an die zugewiesene Ressourceninstanz geroutet werden. Datenverkehr in die umgekehrte Richtung von der Ressourceninstanz kann durch das Anbieternetzwerk über das Zwischennetzwerk zurück an die Netzwerkeinheit geroutet werden. Es ist anzumerken, dass das Routen von Datenverkehr zwischen einer Ressourceninstanz und einer Netzwerkinstanz eine Netzwerkadressenübersetzung erforderlich machen kann, um zwischen der öffentlichen IP-Adresse und der privaten IP-Adresse der Ressourceninstanz zu übersetzen. Zumindest einige Ausführungsformen können es einem Kunden ermöglichen, öffentliche IP-Adresse in einem virtualisierten privaten Netzwerk des Kunden Vorrichtungen des externen Netzwerks des Kunden neu zuzuordnen. Wenn ein Paket empfangen wurde (z. B. von einer Netzwerkeinheit), kann das Netzwerk bestimmen, dass die Ziel-IP-Adresse, die durch das Paket angegeben wird, einem Endpunkt in einem externen Netzwerk neu zugeordnet wurde, und das Routen des Pakets entweder über einen privaten Kommunikationskanal, einen alternativen Kommunikationskanal oder ein Zwischennetzwerk an den entsprechenden Endpunkt vornehmen. Datenverkehr in die umgekehrte Richtung kann von dem Endpunkt durch das Anbieternetzwerk zu der Netzwerkeinheit geroutet werden oder kann alternativ direkt durch das Kundennetzwerk an die Netzwerkeinheit geroutet werden. Aus der Perspektive der Netzwerkeinheit kann es so erscheinen, als ob die Netzwerkeinheit mit der öffentlichen IP-Adresse des Kunden in dem Anbieternetzwerk kommuniziert. Die Netzwerkeinheit kann jedoch tatsächlich mit dem Endpunkt in dem Kundennetzwerk kommunizieren.
  • Verbindungsbasierte Ressourcenverwaltung für virtuelle Desktopinstanzen
  • In verschiedenen Ausführungsformen kann ein Dienstanbieter eine der vorangehend beschriebenen beispielhaften Anbieternetzwerke (oder eine andere geeignete Anbieternetzwerkumgebung) verwenden, um einen gehosteten Desktopdienst in einer Cloud-Computing-Umgebung zu implementieren. In solchen Ausführungsformen kann ein Kunde auf das Anbieternetzwerk in der Cloud-Computing-Umgebung zugreifen, um die Instanziierung und/oder Konfigurierung von einer oder mehreren virtuellen Desktopinstanzen in der Cloud anzufordern, und kann dann einen Zugriff auf diese virtuellen Desktopinstanzen für einen oder mehrere Endnutzer (z. B. durch eine Kundenanwendung) bereitstellen. Beispielsweise kann ein Administrator in einer Organisation oder einem Unternehmen ein Konto bei einem Dienstanbieter erstellen, kann mit dem Dienstanbieter vertraglich festlegen, eine Reihe von virtuellen Desktopinstanzen einzurichten, und kann (sobald die virtuellen Desktopinstanzen eingerichtet wurden) Anmeldeinformationen zum Zugreifen auf diese virtuellen Desktopinstanzen bereitstellen. Sobald die virtuellen Desktopinstanzen eingerichtet und Anmeldeinformationen bereitgestellt wurden, können in diesem Beispiel ein oder mehrere Endnutzer eine Kundenanwendung auf ihrer Kundenvorrichtung (z. B. einem Computer, einer Tablet-Vorrichtung oder einer anderen mobilen Vorrichtung) starten und die Anmeldeinformationen für die virtuelle Desktopinstanz eingeben, wonach sie bei einer virtuellen Desktop-Umgebung angemeldet werden können. Obwohl die virtuelle Desktop-Umgebung durch virtuelle Ressourcen-Instanzen in der Cloud-Computing-Umgebung implementiert ist, kann es den Endnutzern so erscheinen, als ob es sich hierbei um einen lokalen Desktop handelt, und der Betrieb kann so ablaufen, als ob es sich hierbei um einen unabhängigen Computer handelt, mit dem der Benutzer verbunden ist. In einigen Ausführungsformen kann die virtuelle Desktop-Umgebung Zugriff auf Produktivitätssoftware und andere Softwareprogramme bereitstellen, zu denen der Benutzer üblicherweise Zugriff hätte, wenn der Benutzer auf einem physischen Computer angemeldet wäre, der sich im Besitz der Organisation oder des Unternehmens befindet.
  • In einigen Ausführungsformen können diese virtuellen Desktopinstanzen dazu vorgesehen sein, einen Desktop-Computer zu ersetzen, d. h., sie können dazu vorgesehen sein, dieselben Softwareprogramme auszuführen, auf die ein Mitarbeiter der Organisation oder des Unternehmens, in deren bzw. dessen Namen sie instanziiert und konfiguriert wurden, auf einem Desktop-Computer in einer Büroumgebung zugreifen würde (z. B. Anwendungen, die Endnutzer-Produktivitätsaufgaben ausführen). Es ist anzumerken, dass es sich bei diesen Anwendungen um alleinstehende Anwendungen handeln kann oder nicht. Beispielsweise kann jede der virtuellen Desktopinstanzen (und/oder der darauf ausgeführten Anwendungen) in einigen Fällen Teil des aktiven Verzeichnis-Frameworks der Organisation oder des Unternehmens sein und kann in der Lage sein, auf geteilte Dateien oder andere Ressourcen in dem bestehenden Netzwerk der Organisation oder des Unternehmens zuzugreifen, sobald die durch den Benutzer bei Anmeldung an der virtuellen Desktopinstanz vorgelegten Anmeldeinformationen authentifiziert wurden.
  • In einigen Ausführungsformen der hierin beschriebenen Systeme kann ein Rechenressourceninstanzenmanager (oder eine andere Komponente in dem Dienstanbieternetzwerk) einige oder alle der hierin beschriebenen Techniken zum Verwalten der Ressourcen implementieren, die eine virtuelle Desktopinstanz implementieren, sowohl, wenn ein Kunde mit der virtuellen Desktopinstanz verbunden ist, als auch, wenn kein Kunde mit der Desktopinstanz verbunden ist. In einigen Ausführungsformen können diese Techniken intelligentes Abbrechen von getrennten Sitzungen (z. B. Herunterfahren der zugrundeliegenden Rechenressourceninstanz für die virtuelle Desktopinstanz) beinhalten, während Daten für die virtuelle Desktopinstanz in einem Speichervolumen verwaltet werden, das ungezählt von der zugrundeliegenden Ressourceninstanz ist. Dies kann es dem Dienstanbieter ermöglichen, seine Ressourcen effizienter zu verwalten (z. B., wenn die Kapazitäten ausgelastet sind, oder lediglich, um anfallende Kosten für Ressourcen zu vermeiden, die nicht verwendet werden). In einigen Ausführungsformen können die hierin beschriebenen Systeme ein hohes Ausmaß an Verfügbarkeit für Kunden und ein positives Kundenerlebnis (und/oder Endnutzererlebnis) bereitstellen, wenn sie mit einer virtuellen Desktopinstanz verbunden oder erneut verbunden werden, während es dem Dienstanbieter ermöglicht wird, Ressourcen freizugeben, wenn sie nicht verwendet werden (z. B., wenn der Kunde oder Endnutzer nicht verbunden ist). Wie hierin genauer beschrieben, kann der Dienstanbieter in einigen Ausführungsformen einen verbindungsbasierten und/oder „zeitrahmenbasierten“ Ansatz implementieren, um Ressourcen für virtuelle Desktopinstanzen zu verwalten, was auf seinen Ansatz für die Kundenabrechnung für diese virtuellen Desktopinstanzen übertragen werden kann oder nicht.
  • Wenn der Dienstanbieter (oder ein Rechenressourceninstanzenmanager in dem Dienstanbieternetzwerk) erfasst, dass kein Benutzer mit einer bestimmten virtuellen Desktopinstanz verbunden ist, kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) in einigen Ausführungsformen nach einer bestimmten Anzahl an Minuten an Inaktivität (gemäß einem konfigurierbaren und/oder vordefinierten Schwellenwert) die zugrundeliegende Rechenressourceninstanz herunterfahren. Wenn die Rechenressourceninstanz heruntergefahren wird, können die Speichervolumen für die virtuelle Desktopinstanz wie vorangehend angemerkt weiterhin aufrechterhalten werden, können jedoch von der virtuellen Desktopinstanz und der Rechenressourceninstanz getrennt werden (nicht bereitgestellt sein). In einigen Ausführungsformen kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) die Rechenressourceninstanz erneut hochfahren und die entsprechenden Speichervolumen (z. B. On-Demand-Volumen) verbinden, wenn sich ein Benutzer erneut mit einer virtuellen Desktopinstanz verbindet, die vorangehend heruntergefahren wurde.
  • In einigen Ausführungsformen kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) nachverfolgen, wann jede virtuelle Desktopinstanz „in Gebrauch“ ist, was bedeutet, dass ein Kunde (z. B. ein Endnutzer in einer Dienstanbieter-Kundenorganisation) an der virtuellen Desktopinstanz angemeldet/(durch einen Client) verbunden ist. Der Dienstanbieter (oder Rechenressourceninstanzenmanager) kann den Zeitraum (z. B. die Anzahl an einstündigen Zeitrahmen), während dem ein Benutzer verbunden ist, unabhängig davon, ob er die Ressourcen tatsächlich nutzt, um eine Aufgabe auszuführen, und den Zeitraum (z. B. die Anzahl an einstündigen Zeitrahmen) messen, während dem der virtuelle Arbeitsplatz aktiv ist, der Benutzer jedoch nicht mit der virtuellen Desktopinstanz verbunden ist. In einigen Ausführungsformen können der Kundenorganisation die Zeiträume, in denen ein Benutzer verbunden ist, anders in Rechnung gestellt werden (z. B. können ihr hierfür andere Beträge berechnet werden) als die Zeiträume, in denen der virtuelle Arbeitsplatz aktiv, der Benutzer jedoch nicht mit der virtuellen Desktopinstanz verbunden ist. In einigen Ausführungsformen kann eine virtuelle Desktopinstanz lediglich als getrennt angesehen werden (und ihre zugrundeliegenden Rechenressourceninstanzen heruntergefahren werden), wenn die Verbindung von Kundenseite unterbrochen wurde. In anderen Ausführungsformen kann eine virtuelle Desktopinstanz aufgrund von Inaktivität als effektiv getrennt angesehen werden.
  • Eine Ausführungsform eines Verfahrens zum Verwalten von Ressourcen für virtuelle Desktopinstanzen ist durch das Ablaufdiagramm aus 5 veranschaulicht. Wie bei 510 veranschaulicht, kann das Verfahren in diesem Beispiel Empfangen einer Anforderung (an einem Dienstanbieter) von einem Kunden beinhalten, eine virtuelle Desktopinstanz im Namen eines Kunden oder eines bestimmten Endnutzers zu verbinden (z. B. eine Anforderung, sich bei einer virtuellen Desktopinstanz anzumelden). Das Verfahren kann Vermitteln von Rechenressourcen und Speicherressourcen für die virtuelle Desktopinstanz durch den Dienstanbieter (z. B. Ressourcenmanagement-Logik in dem Dienstanbieternetzwerk) beinhalten, wenn diese nicht bereits vermittelt wurden, wie bei 520. Wenn es sich zum Beispiel um das erste Mal handelt, bei dem eine Anmeldeanforderung für die virtuelle Desktopinstanz empfangen wurde, muss der Dienstanbieter unter Umständen virtualisierte Rechenressourcen und/oder Speicherressourcen vermitteln und konfigurieren, um die virtuelle Desktopinstanz zu implementieren. Das Verfahren kann außerdem Hochfahren der virtuellen Desktopinstanz (z. B. durch Booten der zugrundeliegenden Rechenressourcen und Verbinden der Speicherressourcen für die virtuelle Desktopinstanz) und Beginnen einer virtuellen Desktopsitzung an der virtuellen Desktopinstanz beinhalten, wie bei 530.
  • Wie in diesem Beispiel veranschaulicht, kann das Verfahren zu einem späteren Zeitpunkt Empfangen einer Anforderung von dem Kunden beinhalten, die Verbindung mit der virtuellen Desktopinstanz zu trennen, wie bei 540. Das Verfahren kann beinhalten, dass der Dienstanbieter die Rechenressourcen für die virtuelle Desktopinstanz gemäß einer Ressourcenverwaltungsregel herunterfährt, nachdem der Kunde die Verbindung getrennt hat (jedoch nicht notwendigerweise sofort), wie bei 550. Beispielsweise können die Ressourcenverwaltungsregeln eine Regel beinhalten, die Kriterien zum Herunterfahren der Rechenressourcen für eine virtuelle Desktopinstanz angibt (z. B. kann angegeben sein, dass diese zwei Stunden nach einer Verbindungstrennung oder lediglich zwischen 19 Uhr und 7 Uhr heruntergefahren werden sollen). Zu einem späteren Zeitpunkt kann das Verfahren Empfangen einer Anforderung von einem Kunden beinhalten, sich erneut mit der virtuellen Desktopinstanz zu verbinden, wie bei 560. Beispielsweise kann die Anforderung von einem Kunden an derselben Maschine wie der, von der eine vorangehende Verbindungsanforderung empfangen wurde, oder von einem Kunden an einer anderen Maschine empfangen werden, durch die ein Endbenutzer auf die virtuelle Desktopinstanz zugreift. Als Reaktion auf die Anforderung zur erneuten Verbindung kann das Verfahren Neustarten der Rechenressourcen für die virtuelle Desktopinstanz und Beginnen einer neuen virtuellen Desktopsitzung an der virtuellen Desktopinstanz beinhalten, wie bei 570. Es ist anzumerken, dass die in 540-570 veranschaulichten Vorgänge in einigen Ausführungsformen wiederholt werden können, wenn zusätzliche Anforderungen, eine Verbindung zu der virtuellen Desktopinstanz zu trennen und wieder herzustellen, im Namen des Kunden oder eines bestimmten Endnutzers empfangen werden.
  • In verschiedenen Ausführungsformen kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) verschiedene Mechanismen nutzen, um zu bestimmen, ob eine Verbindung zu einer bestimmten virtuellen Desktopinstanz vorliegt oder nicht. Beispielsweise kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) in einigen Ausführungsformen die Anzahl an Bytes (oder die Rate) des Kommunikationsverkehrs messen, der über die Netzwerkschnittstelle strömt, um zu bestimmen, ob der Benutzer die virtuelle Desktopinstanz verwendet oder nicht. In einigen Ausführungsformen beinhalten die Streaming-Protokolle Zwei-Wege-Kommunikationskanäle und kann der Dienstanbieter Informationen nach unten an die Kundenvorrichtung senden, welche die Ausgabe der Pixel darstellt. In diesem Beispiel können diese Pixeldaten eine sehr hohe Änderungsrate aufweisen, wenn sich ein Benutzer ein Video ansieht. Der Dienstanbieter kann außerdem Informationen von dem Kunden zurückerhalten (z. B. durch Mausklicks und Tastatureingaben), die statistische Daten zum Bestimmen von Aktivität oder Inaktivität an der virtuellen Desktopinstanz bereitstellen können, selbst wenn sie verschlüsselt sind. In diesem Beispiel kann sich der Dienstanbieter (oder Rechenressourceninstanzenmanager) heuristische Angaben bezüglich der Gesamtanzahl an Paketen, das Volumen, in dem diese übertragen wurden, usw. ansehen und kann bestimmen, ob ein beobachtetes Muster oder eine beobachtete Eigenschaft des Datenverkehrs einem/einer bekannten (oder vorangehend beobachteten) Muster oder Eigenschaft für Aktivität oder Inaktivität an einer virtuellen Desktopinstanz entspricht. Wenn es bzw. sie einer/einem bekannten (oder vorangehend beobachteten) Muster oder Eigenschaft für Inaktivität entspricht, kann die virtuelle Desktopinstanz als effektiv getrennt angesehen werden und können ihre zugrundeliegenden Rechenressourceninstanzen (gemäß einer anwendbaren Regel zum Herunterfahren) heruntergefahren werden. In noch weiteren Ausführungsformen kann, wenn eine virtuelle Desktopsitzung eingerichtet wurde, ein Sitzungs-Gateway für diese Sitzung eingerichtet werden. Beispielsweise kann eine Sitzungs-Gateway-Komponente einen Tunnel für eine oder mehrere virtuelle Desktopsitzungen bereitstellen und kann erfassen, wenn diese Sitzungen abgebrochen oder anderweitig beendet werden. In einigen Ausführungsformen kann die Anwesenheit oder Abwesenheit einer aktiven Sitzung an einer bestimmten virtuellen Desktopinstanz (wie durch das Sitzungs-Gateway erfasst) eine klare Vorstellung davon geben, ob ein Kunde mit der virtuellen Desktopinstanz verbunden ist oder nicht.
  • Insbesondere kann ein Benutzer in einigen Ausführungsformen als mit einer virtuellen Desktopinstanz verbunden angesehen werden (z. B. als eine aktive Sitzung an einer virtuellen Desktopinstanz aufweisend), wenn er zum Zeitpunkt eines Erfassungsprozesses eine Anmeldesitzung an der virtuellen Desktopinstanz aufweist. In einigen Ausführungsformen können mehrere Protokolle vorhanden sein, die durch das Dienstanbietersystem unterstützt werden, von denen jedes einen anderen Mechanismus verwendet, um eine aktive Sitzung zu erfassen. Wenn das System ein PCoIP-Protokoll unterstützt, kann in einem Beispiel jede virtuelle Desktopinstanz einen Software-Agenten beinhalten, der das Streamen von Bildschirmpixeln von der virtuellen Desktopinstanz ermöglicht. In diesem Beispiel kann der Agent zwei Arten von Anmeldeverfahren unterstützen: einen Standardmodus und einen Konsolenmodus. Der Agent kann jede Sekunde statistische Sitzungsdaten ausgeben, von denen ein Satz eine Eigenschaft ist, welche die Dauer einer Sitzung in Sekunden darstellt. Diese Eigenschaft geht von Null in einen Wert ungleich Null über, wenn eine Sitzung beginnt, und geht von einem Wert ungleich Null auf Null über, wenn eine PCoIP-Sitzung geschlossen wird. Ein zweiter Software-Agent an der virtuellen Desktopinstanz kann eine API offenlegen, durch die diese Informationen erhalten werden können, um zu bestimmen, ob eine aktive Sitzung an einer bestimmten virtuellen Desktopinstanz vorliegt oder nicht. Diese API kann durch einen Überwachungsdienst in regelmäßigen Intervallen aufgerufen werden und die abgerufenen Daten können in einigen Ausführungsformen dem Benutzer oder der Kundenorganisation bereitgestellt werden.
  • Wenn das System ein WebRTC-Protokoll unterstützt, kann in einem weiteren Beispiel jede virtuelle Desktopinstanz einen Agenten aufnehmen, der das Streamen von Bildschirmpixeln von der virtuellen Desktopinstanz ermöglicht. Dieser Agent kann ein Rohr erzeugen, um prozessinterne Kommunikation zwischen einem WebRTC-Agenten und einem zweiten Software-Agenten zu ermöglichen. Der WebRTC-Agent kann Nachrichten ausgeben, die für die Gesundheit der virtuellen Desktopinstanz und einer aktiven Sitzung an der virtuellen Desktopinstanz für einen Benutzer relevant sind. Der zweite Agent kann mit dem Rohr verbunden sein, diese Nachrichten lesen und auf API-Aufrufe durch einen Überwachungsdienst reagieren, um den Gesundheitszustand der virtuellen Desktopinstanz und/oder die Anwesenheit (oder Abwesenheit) einer aktiven Sitzung für den Benutzer zu bestimmen.
  • In noch einem weiteren Beispiel können sich Benutzer von der virtuellen privaten Benutzer-Cloud bei einer virtuellen Desktopinstanz anmelden, wenn das System ein RDP-Protokoll unterstützt, In diesem Beispiel können zwei Arten von Anmeldeverfahren unterstützt werden: ein Standardmodus und ein Konsolenmodus. Ein Agent an jeder virtuellen Desktopinstanz kann eine Aufforderung an ein Überwachungskonto auf Betriebssystemebene senden, einen Versuch (ein Ereignis) zu erfassen, eine Verbindung aufzubauen (Anmeldung) und zu trennen (Abmeldung). Die Anmeldearten für diese Ereignisse können verwendet werden, um zwischen dem Konsolenmodus und dem Standardmodus zu unterscheiden. Es ist anzumerken, dass dieser Agent in einigen Ausführungsformen, in denen das Dienstanbietersystem mehrere Protokolle unterstützt (wie etwa die hierin beschriebenen drei Protokolle), als Single Point of Contact für verschiedene Überwachungsdienste dienen kann. In solchen Ausführungsformen kann dieser Agent außerdem die Funktionen ausführen, die als durch den „zweiten Software-Agenten“ in den anderen zwei Protokollen ausgeführt beschrieben werden.
  • Eine Ausführungsform eines Verfahrens zum Erfassen, dass ein Kunde eine Verbindung von einer virtuellen Desktopinstanz getrennt hat (oder aufgrund von Inaktivität effektiv von einer virtuellen Desktopinstanz getrennt wurde), ist durch das Ablaufdiagramm aus 6 veranschaulicht. Wie bei 610 veranschaulicht, kann das Verfahren in diesem Beispiel beinhalten, dass ein Kunde eine Verbindung zu einer virtuellen Desktopinstanz herstellt, die durch Ressourcen des Dienstanbieters im Namen eines Endnutzers implementiert wird. In einigen Ausführungsformen kann das Verfahren einen Agenten des Dienstanbieters (z. B. eine auf den Dienstanbieterressourcen implementierte Logik) beinhalten, die damit beginnt, die Kommunikationskanäle (z. B. Zwei-Wege-Kommunikationskanäle) zwischen dem Kunden und den Ressourcen zu überwachen, welche die virtuelle Desktopinstanz implementieren, wie bei 620. Das Verfahren kann beinhalten, dass der Agent Informationen über die Anzahl an übertragenen Paketen, die Rate von Paketübertragungen und/oder andere Aktivitätsindikatoren und heuristischen Angaben sammelt, wie bei 630.
  • Wenn eine Gateway-Komponente in dem Dienstanbieternetzwerk zu einem beliebigen Zeitpunkt eine eindeutige Verbindungstrennung erfasst (z. B. durch Erfassen, dass eine virtuelle Desktopsitzung beendet wurde, was als der positive Abschluss von 640 gezeigt ist) oder wenn der Agent zu einem beliebigen Zeitpunkt bestimmt, dass die gesammelten Paketinformationen Inaktivität angeben (als der positive Abschluss von 650 gezeigt), kann das Verfahren wie in diesem Beispiel veranschaulicht beinhalten, dass der Dienstanbieter eine oder mehrere Regeln anwendet, um zu bestimmen, ob und wann die Rechenressourcen für die virtuelle Desktopinstanz als Reaktion auf die eindeutige Verbindungstrennung oder offensichtliche Inaktivität heruntergefahren werden sollen (wie bei 660). In einigen Ausführungsformen kann der Agent Zwei-Wege-Streaming-Daten überwachen und die beobachteten Datenverkehrsmuster mit bekannten oder vorangehend beobachteten Aktivitäts- oder Inaktivitätsmustern vergleichen, um zu bestimmen, ob der Endnutzer die virtuelle Desktopinstanz aktiv nutzt oder nicht.
  • Wie in diesem Beispiel veranschaulicht, kann das Verfahren beinhalten, dass der Agent mit dem Sammeln von Informationen über die Anzahl an übertragenen Paketen, die Rate der Paketübertragungen und/oder Aktivitätsindikatoren und heuristischen Angaben fortfährt und/oder die Gateway-Komponente eine Überwachung auf eine Angabe einer eindeutigen Verbindungstrennung vornimmt, bis und sofern eine dieser Bedingungen erfasst wurde. Dies ist in 6 durch den Weg von dem negativen Abschluss von 640 zu 650 und von dem negativen Abschluss von 650 zu 630 gezeigt. Es ist anzumerken, dass die Gateway-Komponente und der Agent an dem Dienstanbieter in zumindest einigen Ausführungsformen gleichzeitig betrieben werden können. Es ist außerdem anzumerken, dass der Dienstanbieter in einigen Ausführungsformen eine Gateway-Komponente (wie die hierin beschriebene) oder einen Agenten implementieren kann, die bzw. der Kommunikationskanäle überwacht, jedoch nicht beide dieser Komponenten implementieren kann. Im Allgemeinen können die hierin beschriebenen Systeme in verschiedenen Ausführungsformen mehr oder weniger oder andere Mechanismen zum Erfassen, dass ein Kunde die Verbindung zu einer virtuellen Desktopinstanz getrennt hat oder aufgrund von Inaktivität effektiv von einer virtuellen Desktopinstanz getrennt wurde, implementieren als die hierin beschriebenen.
  • Wie hierin beschrieben, kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) in einigen Ausführungsformen der hierin beschriebenen Systeme Logik und/oder maschinelles Lernen anwenden, um zu entscheiden, ob und/oder wann die Rechenressourceninstanzen für eine virtuelle Desktopinstanz als Reaktion auf eine Verbindungstrennung durch den Kunden heruntergefahren werden sollen. In einigen Ausführungsformen können solche Entscheidungen von zeitbasierten Kriterien zum Herunterfahren abhängen. Beispielsweise können die Kriterien zum Herunterfahren angeben, wie lange der Kunde von der virtuellen Desktopinstanz getrennt gewesen sein muss, bevor die zugrundeliegende Rechenressourceninstanz heruntergefahren wird. In einem weiteren Beispiel können die Kriterien zum Herunterfahren angeben, dass keine Rechenressourceninstanzen zwischen 8 Uhr und 18 Uhr heruntergefahren werden, selbst, wenn der Benutzer die Verbindung zu der virtuellen Desktopinstanz trennt, oder können angeben, dass ein längerer Schwellenwert vorhanden ist, bevor die Rechenressourceninstanz nach einer Verbindungstrennung während dieses Zeitraums heruntergefahren wird.
  • Einige Ausführungsformen der hierin beschriebenen Systeme können die Verbindung von kundendefinierten Ressourcenverwaltungsregeln unterstützten, die kundendefinierte Regeln zum Herunterfahren einschließen können. Dies kann dem Kunden (oder einem Endnutzer in einer Kundenorganisation) mehr Kontrolle über den Zustand der Ressourcen geben, die verwendet werden, um dem Kunden Dienste bereitzustellen. Beispielsweise kann ein IT-Administrator in einer Dienstanbieter-Kundenorganisation in einigen Ausführungsformen in der Lage sein Kriterien anzugeben, wann und ob Rechenressourceninstanzen als Reaktion auf eine Verbindungstrennung von einer virtuellen Desktopinstanz heruntergefahren werden sollen.
  • In einigen Ausführungsformen können Präferenzen zum Herunterfahren durch einen IT-Administrator für die virtuellen Desktops eingestellt werden, die im Namen ihrer Endnutzer gehostet werden. In einem Beispiel kann der IT-Administrator eine Regel definieren, die angibt, dass die Rechenressourcen für eine virtuelle Desktopinstanz zwei Stunden nach einer Verbindungstrennung durch einen Endnutzer heruntergefahren werden sollen (z. B., da der IT-Administrator keine hohe Rate für die virtuelle Desktopinstanz während eines Zeitraums bezahlen möchte, in dem sie nicht verwendet wird). Die Möglichkeit, anzugeben, wie lange die Rechenressourceninstanz nach einer Verbindungstrennung weiter betrieben werden soll, kann es dem IT-Administrator ermöglichen, dem Endnutzer Zeit zu geben, die Verbindung zu trennen, zu einem Meeting in einem anderen Raum zu gehen und die Verbindung erneut herzustellen, ohne dass die Rechenressourceninstanz dazwischen heruntergefahren wird. In einem weiteren Beispiel kann ein IT-Administrator an einer Universität, der den Studenten nicht bezüglich einer effektiven Nutzung von virtuellen Desktopinstanzen (und zugrundeliegenden Rechenressourceninstanzen) vertraut, diese streng kontrollieren, indem er einen kurzen Schwellenwert zum Herunterfahren von Rechenressourceninstanzen nach einer Verbindungstrennung einstellt. In anderen Ausführungsformen kann ein IT-Administrator zumindest einige Kontrolle über Ressourcen an deren Endnutzer übertragen. Beispielsweise kann es der IT-Administration zumindest einigen Endnutzern ermöglichen, Regeln zum Herunterfahren oder Kriterien zum Herunterfahren für ihre eigenen virtuellen Desktopinstanzen zu definieren. In einigen Ausführungsformen kann eine Ressourcenverwaltungsregel oder Regel zum Herunterfahren einen Plan zum Herunterfahren von Rechenressourceninstanzen für virtuelle Desktopinstanzen eindeutig definieren. Beispielsweise kann ein Endnutzer einen Plan zum Herunterfahren und/oder Neustarten einer Rechenressourceninstanz für eine virtuelle Desktopinstanz definieren, wenn der Endnutzer im Voraus weiß, wann er eine Verbindung mit der virtuellen Desktopinstanz herstellen und/oder trennen wird.
  • Eine Ausführungsform eines Verfahrens zum Bestimmen, ob und/oder wann die Rechenressourceninstanz(en) für eine virtuelle Desktopinstanz heruntergefahren werden soll(en), indem eine oder mehrere Regeln zum Herunterfahren angewendet werden, ist durch das Ablaufdiagramm aus 7 veranschaulicht. In diesem Beispiel kann das Dienstanbietersystem die Angabe von Kriterien zum Herunterfahren durch einen IT-Administrator der Kundenorganisation, in deren Namen die virtuelle Desktopinstanz instanziiert wird, und/oder durch einen Endnutzer unterstützen. Beispielsweise kann es der Dienstanbieter dem IT-Administrator ermöglichen, Regeln zum Herunterfahren für seine Organisation auszuwählen oder einzustellen und/oder die Auswahl oder das Einstellen einer Regel zum Herunterfahren auf einen einzelnen Endnutzer zu übertragen (z. B. für eine spezifische virtuelle Desktopinstanz, die in dessen Namen implementiert wird). Wie bei 710 veranschaulicht, kann das Verfahren in diesem Beispiel einen Dienstanbieter (oder eine Ressourcenverwaltungslogik, die in dem Dienstanbieternetzwerk implementiert ist) beinhalten, der (die) bestimmt, dass ein Kunde die Verbindung zu einer virtuellen Desktopinstanz getrennt hat, die durch Rechen- und Speicherressourceninstanzen in dem Dienstanbieternetzwerk implementiert wurde.
  • Wenn der Endnutzer eine Regel zum Herunterfahren angegeben hat (als der positive Abschluss von 720 gezeigt) oder wenn ein IT-Administrator der Kundenorganisation eine Regel zum Herunterfahren angegeben hat (als der positive Abschluss von 730 gezeigt), kann das Verfahren beinhalten, dass der Dienstanbieter diese Regeln anwendet. Beispielsweise kann der Endnutzer oder IT-Administrator eine oder mehrere Bedingungen definiert haben, bei denen die zugrundeliegende(n) Rechenressourceninstanz(en) für die virtuelle Desktopinstanz nach einer Verbindungsunterbrechung heruntergefahren werden soll(en). Wenn weder der Endnutzer noch der IT-Administrator der Kundenorganisation eine Regel zum Herunterfahren angegeben hat (als der negative Abschluss von 720 und 730 gezeigt), kann das Verfahren beinhalten, dass der Dienstanbieter eine oder mehrere Standardregeln des Dienstanbieters zum Herunterfahren anwendet, wie bei 740.
  • Wenn die anwendbaren Regeln zum Herunterfahren angeben, dass kein Herunterfahren stattfinden soll (z. B. dass die Rechenressourceninstanz(en) für eine virtuelle Desktopinstanz während einer vertraglich vereinbarten Laufzeit des Dienstes zu keiner Zeit heruntergefahren werden soll(en) oder dass sie nicht als Reaktion auf eine Verbindungstrennung durch den Kunden heruntergefahren werden sollen), kann das Verfahren wie in diesem Beispiel veranschaulicht beinhalten, dass der Dienstanbieter die Rechenressourceninstanz(en) für die virtuelle Desktopinstanz aktiv hält. Dies ist in 7 durch den Weg von dem positiven Abschluss von 750 zu 780 veranschaulicht. Wenn die anwendbaren Kriterien zum Herunterfahren erfüllt sind (als der positive Abschluss von 760 gezeigt), kann das Verfahren Herunterfahren der Rechenressourceninstanz(en) für die virtuelle Desktopinstanz beinhalten, wie bei 790.
  • Wenn die anwendbaren Kriterien zum Herunterfahren nicht erfüllt sind, die anwendbaren Kriterien zum Herunterfahren jedoch zeitbasiert sind (wenn z. B. eine anwendbare Regel angibt, dass die Rechenressourceninstanz(en) für eine virtuelle Desktopinstanz lediglich dann heruntergefahren werden soll(en), wenn ein vorbestimmter Zeitraum nach einer Verbindungstrennung durch den Kunden verstrichen ist, oder lediglich an bestimmten Tageszeiten), kann das Verfahren in einigen Ausführungsformen Warten beinhalten, dass die zeitbasierten Kriterien erfüllt sind, bevor die Rechenressourceninstanz(en) heruntergefahren wird (werden). Dies ist in 7 durch den negativen Abschluss von 760 und die Rückführung von dem positiven Abschluss von 770 zu 760 veranschaulicht. In diesem Fall kann das Verfahren, sobald die zeitbasierten Kriterien erfüllt sind, Herunterfahren der Rechenressourceninstanz(en) für die virtuelle Desktopinstanz beinhalten, wie bei 790.
  • Andererseits kann das Verfahren beinhalten, dass der Dienstanbieter die Rechenressourceninstanz(en) für die virtuelle Desktopinstanz aktiv hält, wie bei 780, wenn die anwendbaren Kriterien zum Herunterfahren nicht erfüllt sind (als der negative Abschluss von 760 gezeigt) und die anwendbaren Kriterien zum Herunterfahren nicht zeitbasiert sind (als der negative Abschluss von 770 gezeigt). Es ist anzumerken, dass das System in anderen Ausführungsformen unter Umständen nicht alle dieser Arten von Regeln zum Herunterfahren unterstützt (es unterstützt z. B. unter Umständen eine Hierarchie der Regeln zum Herunterfahren nicht) oder mehr, weniger oder andere Mechanismen zum Bestimmen, ob und/oder wann die Rechenressourceninstanz(en) für eine virtuelle Desktopinstanz heruntergefahren werden soll(en), unterstützen.
  • Wie hierin beschrieben, kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) nachverfolgen, wann ein Benutzer mit einer virtuellen Desktopinstanz verbunden ist und wann der Benutzer von der virtuellen Desktopinstanz getrennt ist, und kann Nutzungsmuster für die virtuelle Desktopinstanz (neue Muster, übliche Muster oder vorangehend beobachtete Muster) identifizieren. Die Muster können wiederum als Eingaben zum Aufbauen von prädiktiven Modelle (z. B. auf Endnutzerbasis oder kundenweit) zum Herunterfahren und Neustarten von Rechenressourceninstanzen mit dem Ziel, dass sich Rechenressourceninstanzen für eine virtuelle Desktopinstanz zu keiner Zeit in einem Zustand des Herunterfahrens befinden, wenn ein Benutzer versucht, eine Verbindung hierzu aufzubauen, und/oder mit dem Ziel verwendet werden, den Zeitraum (z. B. die Anzahl oder den Anteil an Stunden) zu maximieren, in dem eine Rechenressourceninstanz für eine virtuelle Desktopinstanz mit einer Verbindung, statt keiner Verbindung, in Betrieb ist. In einigen Ausführungsformen können die durch den Dienstanbieter (oder Rechenressourceninstanzenmanager) gesammelten Informationen außerdem als Eingaben in einen Fakturierungsmechanismus verwendet werden, wie hierin verwendet. Beispielsweise kann ein Verbindungsaufbau und/oder eine Verbindungstrennung zu/von einer virtuellen Desktopinstanz in einigen Ausführungsformen verschiedene Arten von Fakturierungsereignissen auslösen.
  • In einem Beispiel kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) ein Muster in den gesammelten Daten identifizieren, in dem ein Benutzer üblicherweise im Laufe des Arbeitstages häufig erneut eine Verbindung aufbaut. In diesem Beispiel kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) die Rechenressourceninstanz (z. B. bis 6:00 Uhr) aktiv halten, selbst wenn der Benutzer die Verbindung zu der virtuellen Desktopinstanz trennt. In einem anderen Beispiel kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) die Rechenressourceninstanz für diese virtuelle Desktopinstanz umgehend herunterfahren, wenn der Benutzer die Verbindung zu der virtuellen Desktopinstanz trennt, wenn der Dienstanbieter (oder Rechenressourceninstanzenmanager) ein Muster in den gesammelten Daten identifiziert, in dem ein Benutzer lediglich einmal am Tag die Verbindung trennt und für den Rest des Tages keine neue Verbindung aufbaut.
  • In einigen Ausführungsformen kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) auf Grundlage der gesammelten Daten ein Modell zum Durchführen eines prädiktiven (proaktiven) Herunterfahrens und/oder Neustartens auf Grundlage von beobachteten Benutzungsmuster generieren. Wenn ein Dienstanbieter (oder Rechenressourceninstanzenmanager) zum Beispiel (z. B. durch Prüfen von Verbindungsprotokollen) bestimmt, dass ein gegebener Benutzer üblicherweise um 9 Uhr eine Verbindung zu einer virtuellen Desktopinstanz herstellt, die Verbindung aufrechterhält, bis er mittags zum Mittagessen geht (zu welchen Zeitpunkt er die Verbindung trennt), um 13 Uhr erneut eine Verbindung herstellt und die Verbindung aufrechterhält, bis er das Büro um 17 Uhr verlässt (zu welchem Zeitpunkt er die Verbindung trennt), kann sich der Dienstanbieter (oder Rechenressourceninstanzenmanager) auf Grundlage dieses Mustersatzes dazu entscheiden, diese virtuelle Desktopinstanz an jedem Wochentag (oder Arbeitstag) prädiktiv (proaktiv) um 8 Uhr (z. B. eine Stunde, bevor der Benutzer eintrifft) hochzufahren und sie jeden Wochentag (oder Arbeitstag) um 18 Uhr herunterzufahren. In diesem Beispiel stellt der Dienstanbieter dem Benutzer unter Umständen keine verbindungsbasierte Rate in Rechnung, bis er tatsächlich eine Verbindung hergestellt hat (der Dienstanbieter kann in diesem Fall somit ein Ausgabenrisiko eingehen); es kann jedoch das Ausgabenrisiko wert sein, um dem Benutzer ein großartiges Benutzererlebnis, d. h. eine kurze Anmeldezeit, zu bieten. In diesem Beispiel kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) die Rechenressourceninstanz automatisch herunterfahren und sie automatisch neustarten (wieder hochfahren); der Benutzer ist sich jedoch nicht darüber bewusst, dass die heruntergefahren wurde (und dass seine Anwendungen geschlossen wurden) und dann für ihn neugestartet wurde. Der Benutzer ist sich lediglich darüber bewusst, dass er sich jeden Tag schnell anmelden kann.
  • In einem komplexeren Beispiel kann ein Benutzer, der um 10 Uhr an einem bestimmten Tag mit einer virtuellen Desktopinstanz verbunden ist, zu einem Meeting gehen und erst um 15 Uhr eine neue Verbindung herstellen und um 18 Uhr die Verbindung trennen. In diesem Beispiel kann das Verbindungs-ZVerbindungstrennungsmuster des Benutzers während des gesamten Tages variieren und kann sich von Tag zu Tag ändern. In diesem Beispiel weist ein prädiktives Modell wahrscheinlich ein sehr niedriges Konfidenzintervall auf. Anders ausgedrückt kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) in eine Situation kommen, in der er sich nicht sicher genug ist, um zu reagieren, da das Verbindungs-ZVerbindungstrennungsmuster des Benutzers eine zu hohe Variabilität aufweist. In diesem Fall kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) eine Standardregel zum Herunterfahren (z. B. nach einer Verbindungstrennung zwei Stunden warten, bevor die Rechenressourceninstanz heruntergefahren wird, oder warten bis nach 18 Uhr, bevor die Rechenressourceninstanz heruntergefahren wird) anwenden oder kann einen anderen Ansatz für ein niedriges Konfidenzniveau anwenden, der es dem Dienstanbieter ermöglicht, Kapazitäten freizugeben, ohne ein Risiko eingehen zu müssen. Es ist anzumerken, dass der Dienstanbieter (oder Rechenressourceninstanzenmanager) in verschiedenen Ausführungsformen eine prädiktive Regel generieren und anwenden kann, wann eine Rechenressourceninstanz heruntergefahren werden soll, eine prädiktive Regel generieren und anwenden kann, wann eine Rechenressourceninstanz neugestartet werden soll, oder beides.
  • Eine Ausführungsform eines Verfahrens zum Aufbauen eines prädiktiven Modells von Verbindungen und Verbindungstrennungen für eine virtuelle Desktopinstanz ist durch das Ablaufdiagramm aus 8 veranschaulicht. Wie bei 810 veranschaulicht, kann das Verfahren in diesem Beispiel Vermitteln einer Rechenressourceninstanz und von Speicherressourcen für eine virtuelle Desktopinstanz im Namen eines Dienstanbieterkundens beinhalten. Das Verfahren kann Beginnen einer Überwachung von Verbindungen zu und Verbindungstrennungen von der virtuellen Desktopinstanz und einer Sammlung von Daten hierüber beinhalten, wie bei 820. Beispielsweise können solche Überwachungs- und Sammlungsaktivitäten durch Logik auf dem Dienstanbietersystem durchgeführt werden.
  • Das Verfahren kann Identifizieren neuer und/oder üblicher Nutzungsmuster für die virtuelle Desktopinstanz in den zuletzt gesammelten Daten und/oder in Daten beinhalten, die sich über einen längeren Zeitraum (z. B. über viele Tage, Wochen und/oder virtuelle Desktopsitzungen) angesammelt haben, wie bei 830. Das Verfahren kann außerdem Entwickeln oder Verfeinern eines prädiktiven Nutzungsmodells für die virtuelle Desktopinstanz zumindest teilweise auf Grundlage der identifizierten Nutzungsmuster und Entwickeln oder Verfeinern einer Regel zum Herunterfahren auf Grundlage des prädiktiven Nutzungsmodells beinhalten, wie bei 840. Beispielsweise kann das prädiktive Nutzungsmodell Zeitpunkte, zu denen ein Benutzer der Prognose nach eine Verbindung zu der virtuellen Desktopinstanz herstellen wird (und zu denen es vorteilhaft sein kann, wenn die zugrundeliegende Rechenressourceninstanz bereits aktiv ist) und/oder Zeitpunkte identifizieren, zu denen der Benutzer der Prognose nach von der virtuellen Desktopinstanz getrennt sein wird (und zu denen es sicher sein kann, die zugrundeliegende Rechenressourceninstanz herunterzufahren). Wie in diesem Beispiel veranschaulicht, kann das Verfahren Fortsetzen der Überwachung der Verbindungen zu der und Verbindungstrennungen von der virtuellen Desktopinstanz und der Sammlung von Daten hierüber (wie bei 860) und Verwenden dieser Informationen beinhalten, um das prädiktive Verwendungsmodell und/oder der Regel zum Herunterfahren zu verfeinern (z. B. durch Wiederholen der als 830-840 gezeigten Vorgänge), während der Kunde die virtuelle Desktopinstanz weiterhin least. Dies ist in 8 durch die Rückführung von 860 zu 830 veranschaulicht.
  • In einigen Ausführungsformen kann das Verfahren beinhalten, dass der Dienstanbieter die Vermittlung der Dienstanbieterressourcen für die virtuelle Desktopinstanz aufhebt, sobald der Kunde die virtuelle Desktopinstanz nicht mehr least (z. B., sobald ein Vertrag über den Dienst abläuft, gekündigt wird oder modifiziert wird, sodass er die virtuelle Desktopinstanz nicht einschließt). Dies ist in 8 durch die Rückführung von dem negativen Abschluss von 850 zu 870 veranschaulicht. In einigen Ausführungsformen können Informationen über die identifizierten Nutzungsmuster und/oder das prädiktive Nutzungsmodell dem Kunden (z. B. einem IT-Administrator in der Kundenorganisation und/oder dem Endnutzer) bereitgestellt werden.
  • In einer Ausführungsform, die einen Ansatz des maschinellen Lernens verwendet, um zu bestimmen, wann und ob eine Rechenressourceninstanz für virtuelle Desktopinstanzen heruntergefahren und/oder neugestartet werden soll, kann der Ansatz des maschinellen Lernen zumindest teilweise auf einer Fitness-Funktion, mit der versucht wird, zu verhindern, dass sich die virtualisierte Rechenressourceninstanz in einem Zustand des Herunterfahrens befindet, wenn ein Kunde eine Verbindung zu der virtuellen Desktopinstanz anfordert, und/oder einer Fitness-Funktion basieren, mit der versucht wird, die Zeitdauer zu minimieren, in der die virtualisierte Rechenressourceninstanz aktiv ist, jedoch kein Kunde mit der virtuellen Desktopinstanz verbunden ist. Eine Fitness-Funktion kann zum Beispiel angeben, dass die Rechenressourceninstanz für eine virtuelle Desktopinstanz stets neugestartet werden soll, bevor der Endnutzer eine Verbindung zu der virtuellen Desktopinstanz herstellen muss (oder aktiv bleiben soll). Eine andere Fitness-Funktion kann angeben, dass die Rechenressourceninstanz für eine virtuelle Desktopinstanz nicht länger als eine bestimmte Anzahl an Stunden aktiv ist, wenn kein Benutzer mit dieser verbunden ist. Mithilfe dieser zwei Fitness-Funktionen möchte der Dienstanbieter (oder Rechenressourceninstanzenmanager) in der Lage sein, zu prognostizieren, wann der Benutzer eine Verbindung herstellen wird, um die Rechenressourceninstanz vor diesem Zeitpunkt zu starten und die Rechenressource dann gegebenenfalls herunterzufahren.
  • Wie vorangehend erwähnt, können in einigen Ausführungsformen alle Daten für die virtuelle Desktopinstanz (z. B. für die Anwendungen, die auf der virtuellen Desktopinstanz ausgeführt wurden), wenn eine Rechenressourceninstanz für eine virtuelle Desktopinstanz (z. B. gemäß einer Regel zum Herunterfahren) heruntergefahren wird, weiterhin in einem oder mehreren Speichervolumen beibehalten werden, die der Rechenressourceninstanz für die Verwendung der virtuellen Desktopinstanz zugeordnet sind, auch wenn diese unter Umständen von der Rechenressourceninstanz getrennt (nicht bereitgestellt) werden. In solchen Ausführungsformen kann die Rechenressourceninstanz neu hochgefahren werden und können die Speichervolumen erneut für die Verwendung der virtuellen Desktopinstanz verbunden (bereitgestellt) werden, wenn der Benutzer erneut eine Verbindung herstellt. Auf diese Weise können die Anwendungen des Benutzers ebenfalls erneut gestartet werden, wenn dieser erneut eine Verbindung herstellt. Wenn der Benutzer einer erneute Verbindung zu der virtuellen Desktopinstanz anfordert, die Rechenressourceninstanz, die vorangehend die virtuelle Desktopinstanz implementiert (gehostet) hat, jedoch heruntergefahren wurde, kann in einigen Ausführungsformen eine neue Rechenressourceninstanz (z. B. eine Instanz desselben Typs wie die vorangehende Rechenressourceninstanz oder eines anderen Typs) für die virtuelle Desktopinstanz an einem anderen Ort gestartet werden und kann dasselbe Speichervolumen mit der neuen Instanz verbunden (bereitgestellt) werden.
  • Eine Ausführungsform eines Verfahrens zum Verwalten von Dienstanbieterressourcen für eine virtuelle Desktopinstanz als Reaktion auf eine Verbindungstrennung oder eine erneute Verbindung ist durch das Ablaufdiagramm in 9 veranschaulicht. Wie bei 910 veranschaulicht, kann das Verfahren in diesem Beispiel Vermitteln und Hochfahren einer Rechenressourceninstanz für eine virtuelle Desktopinstanz und Verbinden von einem oder mehreren Speichervolumen mit der Rechenressourceninstanz als Reaktion auf eine Verbindungsanforderung beinhalten. Das Verfahren kann zu einem späteren Zeitpunkt Erfassen, dass der Benutzer die Verbindung zu der virtuellen Desktopinstanz getrennt hat, wie bei 920, beinhalten. Das Verfahren kann Trennen und Entfernen aus der Bereitstellung der Speichermedien (storage volumes) von bzw. an der Rechenressourceninstanz für die virtuelle Desktopinstanz als Reaktion auf die Verbindungstrennung (und gemäß einer Regel zum Herunterfahren) beinhalten, wie bei 930, wobei jedoch die Speichermedien für die virtuelle Desktopinstanz in dem Dienstanbieternetzwerk beibehalten werden. Das Verfahren kann außerdem Herunterfahren der Rechenressourceninstanz für die virtuelle Desktopinstanz beinhalten, wie bei 940.
  • Wie in diesem Beispiel veranschaulicht, kann das Verfahren zu einem späteren Zeitpunkt Erfassen beinhalten, dass der Benutzer erneut eine Verbindung zu der virtuellen Desktopinstanz hergestellt hat, wie bei 950. Das Verfahren kann Neustarten der Rechenressourceninstanz für die virtuelle Desktopinstanz (wie bei 960) und erneutes Verbinden und Bereitstellen der Speichervolumen mit bzw. an der Rechenressourceninstanz für die virtuelle Desktopinstanz (wie bei 970) als Reaktion auf die erneute Verbindung beinhalten.
  • In einigen Ausführungsformen, z. B., wenn ein Benutzer eine erneute Verbindung zu einer virtuellen Desktopinstanz anfordert, für welche die zugrundeliegende Rechenressourceninstanz heruntergefahren wurde, kann der Benutzer in der Lage sein, anzugeben, dass die virtuelle Desktopinstanz auf einer Rechenressourceninstanz eines anderen Typs gehostet wird. Beispielsweise kann sich der Benutzer dazu entscheiden, dass er (z. B. durch Auswählen eines Instanzentyps aus einem Auswahlmenü einer kundenseitigen GUI) von einer Instanz mit Standardleistung auf eine Instanz mit höherer Leistung wechseln möchte (und dies auf der Kundenseite angeben). Sobald die neu ausgewählte Rechenressourceninstanz hochgefahren und konfiguriert wurde, um die virtuelle Desktopinstanz zu hosten, kann dies in einigen Ausführungsformen der Standardinstanzentyp für das nächste Mal sein, wenn der Benutzer nach einem Herunterfahren erneut eine Verbindung herstellt. In Ausführungsformen, in denen dem Benutzer während Zeiträumen, in denen er mit der virtuellen Desktopinstanz verbunden ist, eine höhere Rate berechnet wird (z. B. auf stündlicher Basis), kann der Benutzer, wenn er weiß, dass er eine Aufgabe ausführen wird, die eine höhere Leistung erforderlich macht, die Rechenressourceninstanz für seine virtuelle Desktopinstanz für diesen Zeitraum auf einen (teureren) Instanzentyp mit höherer Leistung hochstufen (upgraden) und dann auf den vorangehenden Instanzentyp herunterstufen (downgraden), wenn er die höhere Leistung nicht mehr benötigt. Im Gegensatz dazu möchte der Benutzer, wenn er monatlich bezahlt, unabhängig davon, wie lange er mit der virtuellen Desktopinstanz verbunden oder von dieser getrennt ist, unter Umständen den ganzen Monat lang eine Rechenressourceninstanz mit hoher Leistung für seine virtuelle Desktopinstanz aktiv halten, wenn er diese zu einem Zeitpunkt während des Monats benötigt (oder benötigen könnte).
  • In einigen Ausführungsformen kann der Benutzer eine andere Speicherkapazität angeben, wenn er erneut eine Verbindung zu seiner virtuellen Desktopinstanz herstellt. Beispielsweise kann er sich entscheiden, dass er eine höhere Speicherkapazität benötigt als ursprünglich für seine virtuelle Desktopinstanz vermittelt wurde. Wenn eine höhere Speicherkapazität angefordert wird, kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) in einigen Ausführungsformen zusätzlich zu dem erneuten Verbinden der Speichervolumen, die vorangehend verbunden (bereitgestellt) wurden, eine oder mehrere Speichervolumen mit der Rechenressourceninstanz verbinden (daran bereitstellen), wenn sie erneut hochgefahren (oder gestartet wird). In anderen Ausführungsformen kann die Menge an Speicherkapazität, die für eine virtuelle Desktopinstanz vermittelt wird, fest sein und/oder kann von dem Typ der Rechenressourceninstanz abhängig sein.
  • Eine Ausführungsform eines Verfahrens zum Initialisieren und Modifizieren einer Konfiguration und/oder Regel zum Herunterfahren für eine virtuelle Desktopinstanz ist durch das Ablaufdiagramm aus 10 veranschaulicht. Wie bei 1010 veranschaulicht, kann das Verfahren in diesem Beispiel Empfangen (z. B. durch einen Dienstanbieter) einer Anforderung von einem Benutzer (z. B. durch einen Kunden) beinhalten, die einen Typ einer Rechenressourceninstanz, eine Speichervolumenkapazität und eine Regel zum Herunterfahren für eine virtuelle Desktopinstanz angibt. Das Verfahren kann Vermitteln und Hochfahren einer Rechenressourceninstanz des angegebenen Typs für die virtuelle Desktopinstanz und Verbinden von einem oder mehreren Speichervolumen (z. B. ausreichenden, um der angegebenen Kapazität zu entsprechen) mit der Rechenressourceninstanz beinhalten, wie bei 1020. Das Verfahren kann zu einem späteren Zeitpunkt beinhalten, dass das Dienstanbietersystem erfasst, dass der Benutzer von der virtuellen Desktopinstanz getrennt wurde, wie bei 1030.
  • Das Verfahren kann gemäß der Regel zum Herunterfahren Trennen und Entfernen aus der Bereitstellung der Speichervolumen von bzw. an der Rechenressourceninstanz und Herunterfahren der Rechenressourceninstanz für die virtuelle Desktopinstanz beinhalten, wie bei 1040. Das Verfahren kann außerdem zu einem späteren Zeitpunkt beinhalten, dass das Dienstanbietersystem eine Anforderung empfängt, erneut eine Verbindung zu der virtuellen Desktopinstanz herzustellen, wie bei 1050. Wenn die Anforderung eine Rechenressourceninstanz eines anderen Typs oder mit einer anderen Speicherkapazität angibt (als der positive Abschluss von 1060 gezeigt), kann das Verfahren Neustarten oder erneutes Hochfahren einer Rechenressourceninstanz des angegebenen Typs (wie bei 1070) und erneutes Verbinden und Bereitstellen der Speichervolumen beinhalten, während gegebenenfalls Kapazität hinzugefügt oder entfernt wird (wie bei 1075).
  • Wenn die Anforderung jedoch keine Rechenressourceninstanz eines anderen Typs oder mit einer anderen Speicherkapazität angibt (als der negative Abschluss von 1060 gezeigt), kann das Verfahren Neustarten der Rechenressourceninstanz für die virtuelle Desktopinstanz (wie bei 1080) und erneutes Verbinden und Bereitstellen der Speichervolumen mit bzw. an der Rechenressourceninstanz beinhalten (wie bei 1085).
  • In verschiedenen Ausführungsformen kann der Dienstanbieter Ausgaben, die dem Aktivhalten der Ressourceninstanzen, wenn diese nicht verwendet werden, zugeordnet sind, und Bereitstellen eines großartigen Kundenerlebnisses (z. B. schnelle Verbindungen bei jeder Anmeldung) gegeneinander abwägen, insbesondere, wenn ein verbindungsbasiertes oder zeitrahmenbasiertes Fakturierungsmodell eingesetzt wird, bei dem sie nichts berechnen (oder weniger berechnen), wenn die Ressourcen nicht verwendet werden (z. B., wenn kein Benutzer mit der virtuellen Desktopinstanz verbunden ist). Wenn dem Kunden bei Verwenden dieser Art von Fakturierungsmodell weniger in Rechnung gestellt wird, muss der Dienstanbieter seine Ressourcen unter Umständen so verwalten, dass seine Kosten ebenfalls (in einem ähnlichen Verhältnis) geringer sind. In einigen Ausführungsformen kann dies durch Herunterfahren der Rechenressourceninstanzen für nicht verbundene virtuelle Desktopinstanzen unterstützt werden, sodass diese Ressourcen für andere Zwecke (z. B. für andere virtuelle Desktopinstanzen) verwendet werden können.
  • In verschiedenen Ausführungsformen kann der Kunde oder Endnutzer Kosten, die dem Benutzer für die virtuellen Desktopinstanzen entstehen, und die Leistung, die er erhält, wenn er eine erneute Verbindung mit seiner virtuellen Desktopinstanz herstellt (z. B. kann es mehrere Größenordnungen länger dauern, eine erneute Verbindung herzustellen/sich anzumelden, wenn die Rechenressourceninstanz heruntergefahren wurde) gegeneinander abwägen.
  • Wenn der Dienstanbieter (oder Rechenressourceninstanzenmanager) (z. B. unter Verwendung eines Standardmodells oder prädiktiven Modells) entscheidet, wann er die Rechenressourceninstanz in Betrieb lässt, kann der Dienstanbieter in einigen Ausführungsformen für diese Kosten aufkommen. Wenn jedoch ein IT-Administrator oder Endnutzer in einer Kundenorganisation diese Wahl (z. B. durch Definierten einer Ressourcenverwaltungsregel, die Kriterien zum Herunterfahren beinhaltet) trifft, kann dem Kunden die gesamte Zeit, in der die Rechenressourceninstanz aktiv bleibt (z. B. zu der Verbindungsrate) in Rechnung gestellt werden, selbst nachdem die Verbindung getrennt wurde. Wenn der Kunde zum Beispiel Kriterien zum Herunterfahren definiert, die angeben, dass die Rechenressourceninstanz erst zwei Stunden nach einer Verbindungstrennung heruntergefahren werden soll, muss der Kunde unter Umständen zu der Verbindungsrate für die zwei zusätzlichen Stunden nach der Verbindungstrennung bezahlen. In einigen Ausführungsformen kann das System einen Hybrid-Ansatz implementieren, bei dem einige Standardregeln durch den Dienstanbieter und/oder durch den IT-Administrator der Kundenorganisation definiert sein können, diese Standardregeln jedoch in bestimmten Szenarien überschrieben werden können (z. B. durch einen Benutzer, der länger verbunden bleibt oder dem von dem IT-Administrator die Genehmigung erteilt wurde, eine andere Regel anzuwenden).
  • In einigen bestehenden Systemen, die Kundenorganisationen oder deren Endnutzern virtuelle Desktopinstanzen bereitstellen, wird dem Kunden eine monatliche Rechnung für seine virtuellen Desktopinstanzen erstellt, solange er aktiv ist (und unabhängig davon, ob, wie oft und/oder wie lange ein Endnutzer mit der virtuellen Desktopinstanz verbunden ist). Wenn ein Kunde zum Beispiel eine virtuelle Desktopinstanz am 20. des Monats erzeugt hat, wird ihm diese bis zum Ende dieses Monats (z. B. von 20. bis zum 30. des Monats) anteilig in Rechnung gestellt. Wenn er jedoch am 1. des Monats über eine virtuelle Desktopinstanz verfügt, kann ihn diese virtuelle Desktopinstanz für den gesamten Monat in Rechnung gestellt werden, selbst wenn er diese am 2. des Monats löscht. Wie vorangehend angemerkt, können die hierin beschriebenen Systeme in einigen Ausführungsformen stattdessen einen zeitrahmenbasierten Ansatz der Ressourcenverwaltung und/oder Fakturierung für virtuelle Desktopinstanzen verwenden, der in Kombination mit einem verbindungsbasierten Ansatz der Ressourcenverwaltung und Fakturierung angewendet werden kann. Zum Beispiel, in einer Ausführungsform, in der Kunden virtuelle Desktopinstanzen, die im Namen ihrer Endnutzer gehostet werden, pro Stunde berechnet werden,
  • In einem Beispiel können Kunden im Rahmen eines solchen Kombinationsfakturierungsmodells eine virtuelle Desktopinstanz auf Grundlage von zwei unterschiedlichen Dimensionen berechnet werden:
    • I) die Anzahl an Stunden, während denen sie die virtuelle Desktopinstanz tatsächlich nutzen (oder insbesondere, die Anzahl an einstündigen Zeiträumen, während denen ein Endnutzer für einen Teil des einstündigen Zeitraums mit der virtuellen Desktopinstanz verbunden ist). Der Dienstanbieter (oder Rechenressourceninstanzenmanager) kann nachverfolgen, wie lange die Endnutzer die virtuelle Desktopinstanz verwenden, und kann diese Informationen an einem Fakturierungsmechanismus als die Zeitdauer (oder die Anzahl an Zeitrahmen) bereitstellen, die dem Kunde zu der Verbindungsrate berechnet wird.
    • 2) die Anzahl an Stunden, während denen der Kunde eine virtuelle Desktopinstanz ausführt, die jedoch nicht verwendet wird (oder insbesondere, die Anzahl an einstündigen Zeiträumen, während denen kein Endnutzer für einen Teil des einstündigen Zeitraums mit der virtuellen Desktopinstanz verbunden ist). Der Dienstanbieter (oder Rechenressourceninstanzenmanager) kann nachverfolgen, wie lange die Endnutzer die virtuelle Desktopinstanz nicht verwenden, und können diese Informationen an einem Fakturierungsmechanismus als die Zeitdauer (oder die Anzahl an Zeitrahmen) bereitstellen, die dem Kunde zu einer Nicht-Verbindungsrate berechnet wird.
  • Es ist anzumerken, dass die Nicht-Verbindungsrate wesentlich niedriger sein kann als die Verbindungsrate und im Wesentlichen eine Gebühr zum Verwalten der virtuellen Desktopinstanz und der zugeordneten Speichervolumen im Namen des Kunden sein kann. In einer Ausführungsform kann die Verbindungsrate zum Beispiel mehrere Cent (oder Mehrfache von zehn Cent) pro Stunde betragen, die Nicht-Verbindungsrate jedoch ein Bruchteil eines Cents pro Stunde betraten. In einigen Ausführungsformen und für einige Kunden und Arbeitsumfänge können die kombinierten Kosten, die dem Kunden für die Zeit, die zu der Verbindungsrate berechnet wird, und die Zeit, die zu der Nicht-Verbindungsrate berechnet wird, anfallen, wesentlichen geringer sein, als der Betrag, den der Kunde bei dem monatlichen Fakturierungsansatz bezahlt hätte. In einigen Ausführungsformen kann ein Kunde in der Lage sein, anzugeben, dass er keine Verwaltung der Speichervolumen, die einer virtuellen Desktopinstanz zugeordnet sind, durch den Dienstanbieter benötigt, nachdem er die Verbindung zu diesen getrennt hat (z. B., wenn er nicht plant, sich nach einer bestimmten virtuellen Desktopsitzung erneut mit der virtuellen Desktopinstanz zu verbinden, wenn er lediglich plant, die virtuelle Desktopinstanz und deren Ressourcen während einer einzigen virtuellen Desktopsitzung zu verwenden, oder wenn seine Verwendung der virtuellen Desktopinstanz nicht von einer Verwaltung eines Verlaufs oder Zustands für die virtuelle Desktopinstanz zwischen virtuellen Desktopsitzungen abhängig ist). In solchen Ausführungsformen kann der Dienstanbieter die Speichervolumen trennen, die der virtuellen Desktopinstanz zugeordnet sind, wenn eine Inaktivität oder eine eindeutige Verbindungstrennung erfasst wird, und kann diese anderen Benutzern zuteilen (z. B. nach dem Löschen von jeglichen Informationen, die spezifisch für die virtuelle Desktopinstanz sind). In solchen Ausführungsformen kann der Dienstanbieter dem Kunden eine andere Rate für die virtuelle Desktopinstanz als der Standard-Nicht-Verbindungsrate (z. B. eine noch niedrigere Rate) berechnen, wenn keine Benutzer mit der virtuellen Desktopinstanz verbunden sind, da der Dienstanbieter die Speichervolumen für diese bestimmte virtuelle Desktopinstanz nicht verwalten muss.
  • In einigen Ausführungsformen kann ein Dienstanbietersystem einen zeitrahmenbasierten Ansatz der Ressourcenverwaltung und/oder Fakturierung für virtuelle Desktopinstanzen verwenden, der in Kombination mit einem verbindungsbasierten Ansatz der Ressourcenverwaltung und Fakturierung für andere Zeitrahmen als stündliche Zeitrahmen angewendet werden sein. Beispielsweise kann dieser Ansatz in verschiedenen Ausführungsformen auf Zeitrahmen von einer Minute, einem Tag, einer Woche, einem Monat oder einem beliebigen anderen vordefinierten Zeitraum angewendet werden.
  • Wie vorangehend angemerkt, können die hierin beschriebenen Systeme in einigen Ausführungsformen in der Lage sein, Inaktivität für eine virtuelle Desktopinstanz zu erfassen, und können eine Regel zum Herunterfahren anwenden, als ob die virtuelle Desktopinstanz effektiv getrennt worden wäre. Wenn sich zum Beispiel ein Benutzer von seinem Laptop wegbewegt und dieser das gesamte Wochenende mit der virtuellen Recheninstanz verbunden bleibt (z. B., wenn der Benutzer diesen nicht verwendet), könnte die kundenorientierteste Vorgehensweise des Dienstanbieters darin bestehen, die virtuelle Desktopinstanz zu trennen und/oder die zugrundeliegende Rechenressourceninstanz (gemäß den vordefinierten Kriterien zum Herunterfahren) herunterzufahren, anstatt dem Kunden dies zu der Verbindungsrate in Rechnung zu stellen.
  • In einigen Ausführungsformen kann der Dienstanbieter (oder Rechenressourceninstanzenmanager) in der Lage sein, zu bestimmen, wann ein Endnutzer etwas von einer Einheit, bei der es sich nicht um den tatsächlichen virtuellen Desktopinstanzenkunden handelt, auf eine virtuelle Desktopinstanz streamt. Ein IT-Administrator kann zum Beispiel als Reaktion darauf, dass ein Endnutzer ein Problem mit seiner virtuellen Desktopinstanz meldet, (zur Fehlerbehebung) von einer Streaming-Lösung, wie etwa dem Remote Desktop Protocol (RDP), das durch die Microsoft Corporation entwickelt wurde, eine Verbindung zu der virtuellen Desktopinstanz herstellen. In einigen Ausführungsformen kann eine Komponente der virtuellen Desktopinstanz in der Lage sein, zu identifizieren, wenn eine solche Sitzung aktiv ist, und kann der Dienstanbieter in der Lage sein, diesen Zeitraum in Rechnung zu stellen, selbst wenn vorangehend beschriebene Überwachungsmechanismen diese Aktivität unter Umständen nicht erfassen können. Wenn der IT-Administrator einen Fehler auf einer virtuellen Desktopinstanz beheben muss, kann er in einigen Ausführungsformen in der Lage sein, (zumindest kurzfristig) anzufordern, dass die Rechenressourceninstanz aktiv bleibt, unabhängig davon, ob andernfalls Regeln zum Herunterfahren anwendbar wären.
  • Es ist anzumerken, dass die hierin für das Implementieren von verbindungsbasierter Ressourcenverwaltung für virtuelle Desktopinstanzen beschriebenen Konzepte in Systemen angewendet werden können, in denen Rechenressourceninstanzen in Pools zusammengefasst sind. Beispielsweise können diese in unterschiedlichen Ausführungsformen in jedem von mehreren Ressourcenpools (z. B. kundenspezifischen Ressourcenpools) oder in einem großen Ressourcenpool angewendet werden, der auf Dienstanbieterseite verwaltet wird.
  • Verwaltung von virtuellen Desktopinstanzenpools
  • In einem Dienstanbietersystem, das Kunden virtualisierte Rechenressourcen bereitstellt, wie vorangehend in Bezug auf 1 bis 4 erörtert, kann ein virtueller Desktopdienst Kunden virtuelle Desktopinstanzen bereitstellen. Der virtuelle Desktopdienst kann Pools mit virtuellen Desktopinstanzen für bestimmte Kunden reservieren. Die in einem Pool zusammengestellten Instanzen können, wie vorangehend in Bezug auf 5 bis 10 erörtert, zusammen mit anderen Typen von virtuellen Desktopinstanzen bereitgestellt werden, wie etwa Instanzen, die jedem Kunden auf Anfrage zur Verfügung stehen und stündlich abgerechnet werden.
  • 11 ist ein Blockdiagramm, das ein beispielhaftes Anbieternetzwerk gemäß zumindest einigen Ausführungsformen veranschaulicht, das einer Kundenorganisation einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt. Wie vorangehend in Bezug auf 1 bis 4 erörtert, kann ein Anbieternetzwerk 1100 einem oder mehreren Kunden Zugriff auf Ressourcen bereitstellen, einschließlich virtualisierten Rechenressourcen. Das Anbieternetzwerk 1100 kann einen virtuellen Desktopdienst 1120 beinhalten. Der virtuelle Desktopdienst 1120 kann Kunden Zugriff auf virtuelle Desktopinstanzen bereitstellen, wie vorangehend erörtert, z. B. in Bezug auf 3. Wie in dem Beispiel aus 11 gezeigt, kann der virtuelle Desktopdienst 1120 eine Vielzahl von virtuellen Desktopinstanzen, wie etwa die Instanzen 1130A und 1130B sowie die Instanzen 1130Q und 1130R bis 1130Z, im Namen von Kunden instanziieren und verwalten. Für eine bestimmte Kundenorganisation kann ein Satz von virtuellen Desktopinstanzen in einem virtuellen Desktopinstanzenpool 1131 reserviert werden.
  • Die Kundenorganisation kann einen Kunden darstellen, dem das Anbieternetzwerk Zugriff auf eine(n) oder mehrere Dienste und/oder Ressourcen gewährt (z. B. Zugriff auf virtualisierte Rechenressourcen). Die Kundenorganisation kann eine Geschäftsorganisation, Regierungsorganisation, gemeinnützige Organisation, Bildungsorganisation oder eine beliebige andere geeignete Gruppe von Individuen darstellen. Die Kundenorganisation kann Endnutzer (hierin auch als Benutzer bezeichnet) beinhalten, denen Zugriff auf Dienste und/oder Ressourcen des Anbieternetzwerkes 1100 gewährt wird. Die Endnutzer können Kundenvorrichtungen verwendet, wie etwa die Vorrichtungen 1160A und I 160B bis 1160N bis 1160Z, um auf das Anbieternetzwerk 1100 zuzugreifen. Die Kundenvorrichtungen 1160A-1160Z können benutzerspezifisch sein oder können von mehreren Benutzern geteilt werden, z. B. unter Verwendung von benutzerspezifischen Zugangsinformationen. Die Kundenvorrichtungen 1160A-1160Z können mit einem oder mehreren Kundennetzwerken 1150 verbunden sein. Das (die) Kundennetzwerk(e) 1150 kann (können) kommunikativ an den virtuellen Desktopdienst 1120 des Anbieternetzwerks 1100 gekoppelt sein. Ein beliebiges der Kundenvorrichtungen 1160A-1160Z kann unter Verwendung der in 18 gezeigten beispielhaften Rechenvorrichtung implementiert werden.
  • Der virtuelle Desktopinstanzenpool 1130 kann eine definierte Menge an Slots aufweisen, z. B. die Slots 1 und 2 bis N. Die Kundenorganisation kann eine Anzahl N an Slots übermitteln oder dieser zustimmen, z. B. unter Verwendung einer beliebigen geeigneten Programmierschnittstelle und/oder Benutzerschnittstelle für das Anbieternetzwerk 1100. Die Kundenorganisation kann zustimmen, das Anbieternetzwerk 1100 für die Anzahl N an virtuellen Desktop-Slots für einen bestimmten Zeitraum zu bezahlen. Beispielsweise kann die Kundenorganisation zustimmen, das Anbieternetzwerk für einhundert virtuelle Desktop-Slots auf monatlicher Basis zu bezahlen (und möglicherweise jeden Monat, bis zu einer Kündigung oder Modifikation durch eine der Parteien). Die Anzahl N an virtuellen Desktop-Slots kann eine feste oder vorbestimmte Menge an Slots für virtuelle Desktops darstellen, für die das Anbieternetzwerk zur Bereitstellung zu im Wesentlichen jeder Zeit im Verlaufe der Vereinbarung zustimmt. Jeder der virtuellen Desktop-Slots kann Folgendes darstellen: eine virtuelle Desktopinstanz, die mit einer Kundenvorrichtung in der Kundenorganisation verbunden ist (z. B. eine verbundene virtuelle Desktopinstanz), eine virtuelle Desktopinstanz, die nicht verbunden ist, aber noch ausgeführt wird (z. B. eine getrennte virtuelle Desktopinstanz, hierin aus als eine nicht verwendete virtuelle Desktopinstanz bezeichnet) oder einen leeren Slot (z. B. einen Slot, an dem keine virtuelle Desktopinstanz ausgeführt wird, weder eine verbundene noch eine getrennte). Die Kundenorganisation kann für alle Slots zahlen, unabhängig davon, welche Slots verwendet werden oder wie häufig ein Slot verwendet wird. Üblicherweise kann die Anzahl an Endnutzern in der Kundenorganisation (z. B. an Benutzern, die Zugriff auf die virtuellen Desktop-Slots haben) die Anzahl N an virtuellen Desktop-Slots überschreiten. Ein bestimmter Slot kann zu verschiedenen Zeitpunkten von verschiedenen Endnutzern in der Kundenorganisation verwendet werden.
  • Der Pool 1131 der virtuellen Desktopinstanzen kann für die Kundenorganisation reserviert werden. Der Pool 1131 kann virtuelle Desktopinstanzen beinhalten, die ausgeführt werden und mit Benutzern der Kundenorganisation verbunden sind, wie etwa die Instanzen 1130A und 1130B. Wie nachfolgend erörtert, kann der Pool 1131 außerdem virtuelle Desktopinstanzen beinhalten, die ausgeführt werden und nicht mit Benutzern verbunden sind. Wie in dem Beispiel aus 11 gezeigt, können ein oder mehrere der Slots in dem Pool leer sein (d. h. nicht mit einer ausgeführten virtuellen Desktopinstanz ausgefüllt), wie etwa SlotN. Das Reservieren des Instanzenpools beinhaltet im Allgemeinen Ausschließen von anderen Kunden von dem Zugriff auf die Instanzen während des Zeitraums, in dem die Kundenorganisation den Zugriff reserviert hat. Die Anzahl an Instanzen in dem Pool 1131 darf die Anzahl N an virtuellen Desktop-Slots für die Kundenorganisation nicht überschreiten. In einer Ausführungsform kann der Instanzenpool 1131 ausgeführte Instanzen in allen (oder beinahe allen) der N Slots im Wesentlichen zu jeder Zeit nach einer Initialisierungsstufe beinhalten. In einer Ausführungsform können alle der N Slots bei der Initialisierung des Pools 1131 leer sein und können ausgeführte Instanzen zu dem Pool hinzugefügt werden, wenn Verbindungsanforderungen empfangen oder erwartet werden. Slots in dem Pool 1131 mit getrennten Instanzen können freigegeben werden, z. B. durch Neustarten der Instanz oder anderweitiges Ersetzen von dieser durch eine neue Instanz, die ausgeführt wird und für eine neue Verbindung bereit ist.
  • In einer Ausführungsform können Instanzen lediglich zum Zugriff durch Kundenvorrichtungen vermittelt werden, wenn Verbindungsanforderungen von diesen Vorrichtungen empfangen werden. Getrennte Instanzen oder die Rechenressourcen, die verwendet werden, um diese zu implementieren, können zu einem Satz von verfügbaren Instanzen und/oder Ressourcen außerhalb des Pools 1131 zurückgeführt werden. Beispielsweise können die Instanzen 1130Q-1130Z einen größeren Satz von Instanzen darstellen, der mehreren Kundenorganisationen zur Verfügung steht, und können die Instanzen 1130A-1130B von diesem größeren Satz von Instanzen als Reaktion auf Verbindungsanforderungen von den Kundenvorrichtungen 1160A und 1160B reserviert werden, die der Kundenorganisation angehören, die dem Pool 1131 zugeordnet ist. Auf diese Weise kann ein Satz von zugrundeliegenden Ressourcen in dem Anbieternetzwerk 1100 von mehreren Pools virtueller Desktopinstanzen für denselben Kunden oder für mehrere Kunden geteilt werden.
  • Eine virtuelle Desktopinstanz kann im Namen eines gegebenen Endnutzers implementiert werden. Ein Dienstanbieternetzwerk 1100 kann eine Vielzahl von Rechenknoten (zum Beispiel die Rechenvorrichtungen wie in 18 gezeigt) beinhalten, die zusammen einer oder mehreren Kundenorganisationen oder anderen Benutzern des Anbieternetzwerks einen virtuellen Desktopdienst bereitstellen. Das Anbieternetzwerk 1100 kann eine virtualisierte Rechenressourceninstanz implementieren, die auf einem der Rechenknoten ausgeführt wird, und die virtualisierte Rechenressourceninstanz kann die virtuelle Desktopinstanz implementieren, wie vorangehend in Bezug auf 1 bis 4 erörtert. Auf der virtuellen Desktopinstanz können eine oder mehrere Anwendungen installiert und unter Verwendung der virtualisierten Rechenressourceninstanz ausgeführt werden. Der virtuelle Desktopdienst kann den virtuellen Desktop verwalten, z. B. durch Verwalten von Daten, wie etwa Konfigurationsdaten und Anwendungsdaten, die verwendet werden können, um eine grafische Benutzerschnittstelle (GUI) für die virtuelle Desktopinstanz zu generieren und die Anwendung(en) auszuführen. Ein virtueller Desktop kann eine grafische Darstellung eines Satzes von Ressourcen beinhalten, die der virtuellen Desktopinstanz zugeordnet sind (z. B. ein oder mehrere grafische Indikatoren von Anwendungen, ein oder mehrere Fenster, die Anwendungen zugeordnet sind, ein oder mehrere Schnittstellenelemente zum Durchsuchen von Dateien und Ordnern, ein oder mehrere Schnittstellenelemente zum Durchsuchen verfügbarer Anwendungen oder Wechseln zwischen ausgeführten Anwendungen usw.). Wie in dem Beispiel aus 11 gezeigt, kann eine Kundenvorrichtung 1160A über die virtuelle Desktopinstanz 1130A auf einen virtuellen Desktop 1135A zugreifen und kann eine Kundenvorrichtung 1160B über die virtuelle Desktopinstanz 1130B auf einen virtuellen Desktop 1135B zugreifen. Die virtuellen Desktops 1135A und 1135B können auf ähnliche Weise (z. B. mit demselben Satz von Anwendungen) oder auf unterschiedlich Weise (z. B. mit einem unterschiedlichen Satz von Anwendungen) konfiguriert sein. Jede der virtuellen Desktopinstanzen 1130A und 1130B kann ein entsprechendes Stammlaufwerk und außerdem ein entsprechendes Datenlaufwerk beinhalten, das spezifisch für den Benutzer der entsprechenden Kundenvorrichtung ist.
  • 12 ist ein Blockdiagramm, das weitere Aspekte des beispielhaften Anbieternetzwerkes gemäß zumindest einigen Ausführungsformen veranschaulicht, das einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt, darunter verbundene und getrennte virtuelle Desktopinstanzen in Slots in dem Pool. Wie vorangehend erörtert, kann der Pool 1131 virtuelle Desktopinstanzen beinhalten, die ausgeführt werden und mit Benutzern der Kundenorganisation verbunden sind, wie etwa die Instanzen 1130A und 1130N. Eine Verbindung zu einer Instanz kann als Reaktion auf eine Verbindungsanforderung von einer Kundenvorrichtung hergestellt werden, die einem Benutzer der Kundenorganisation zugeordnet ist. Beispielsweise kann der virtuelle Desktopdienst 1120 zwischen dem in 11 gezeigten Zustand und dem in 12 gezeigten Zustand eine Verbindungsanforderung von einer Kundenvorrichtung 1160N empfangen und reagieren, indem er Zugriff auf eine virtuelle Desktopinstanz 1 130N in Slot N bereitstellt. Dementsprechend kann die Kundenvorrichtung 1160A über die virtuelle Desktopinstanz 1130A auf einen virtuellen Desktop 1135A zugreifen und kann die Kundenvorrichtung 1160N über die virtuelle Desktopinstanz 1130N auf einen virtuellen Desktop 1135N zugreifen.
  • Der Pool 1131 kann außerdem virtuelle Desktopinstanzen beinhalten, die ausgeführt werden, jedoch nicht mit Benutzern verbunden sind, wie etwa die Instanz 1130B. Zwischen dem in 11 gezeigten Zustand und dem in 12 gezeigten Zustand kann die Kundenvorrichtung 1160B die Verbindung zu der virtuellen Desktopinstanz 1130B trennen, mit der sie vorangehend verbunden war. Eine Verbindungstrennung von einer Instanz kann als Reaktion auf eine eindeutige Verbindungstrennungsanforderung von einer Kundenvorrichtung oder auf Grundlage einer automatischen Erfassung einer Verbindungstrennung durchgeführt werden, z. B. wie vorangehend in Bezug auf 5 bis 10 erörtert. Die getrennte Instanz 1130B kann weiterhin ausgeführt werden und kann einen Slot (z.B. Slot 2) in dem Pool 1131 einnehmen. In einer Ausführungsform kann die getrennte Instanz 1130B weiterhin mit einem verbundenen Datenlaufwerk ausgeführt werden, das dem Benutzer der vorangehend verbundenen Kundenvorrichtung 1160B zugeordnet ist. Indem die Instanz 1130B mit dem verbundenen benutzerspezifischen Datenlaufwerk ausgeführt wird (wobei z. B. Anwendungen ausgeführt werden), kann die Verbindung zwischen der Kundenvorrichtung 1160B und der Instanz 1130B schneller (z. B. ohne Neustarten oder erneutes Vermitteln einer virtuellen Desktopinstanz) wieder aufgebaut werden, wenn eine Verbindungsanforderung von dem Benutzer der Kundenvorrichtung 1160B empfangen wird.
  • 13 ist ein Blockdiagramm, das weitere Aspekte des beispielhaften Anbieternetzwerkes gemäß zumindest einigen Ausführungsformen veranschaulicht, das einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt, darunter Bereitstellen von Zugriff auf eine virtuelle Desktopinstanz außerhalb des Pools an einer Kundenvorrichtung, wenn alle Slots in dem Pool durch verbundene Instanzen belegt sind. Unter bestimmten Umständen können alle der Slots 1-N in dem Pool 1131 durch verbundene Instanzen eingenommen sein. Wie in dem Beispiel aus 13 gezeigt, können alle der Slots in dem Pool 1131 durch virtuelle Desktopinstanzen 1130A-1130N verwendet werden, die ausgeführt werden und mit entsprechenden Kundenvorrichtungen 1160A-1160N verbunden sind. Die Kundenorganisation kann jedoch mehr Benutzer beinhalten als die Anzahl N an Slots in dem Pool 1131. Wenn eine neue Verbindungsanforderung von einer Kundenvorrichtung der Kundenorganisation empfangen wird, während alle der N Slots in dem Pool 1131 vollständig durch verbundene Instanzen eingenommen sind, kann diesem Benutzer der Zugriff auf eine virtuelle Desktopinstanz in dem Pool verweigert werden. Dem Benutzer kann eine Benachrichtigung darüber, dass keine Kapazität in dem Pool 1131 verfügbar ist, bereitgestellt werden. In einer Ausführungsform kann der Zugriff auf den Pool 1131 lediglich zu dem aktuellen Zeitpunkt verweigert werden und kann der Benutzer in eine Warteliste für eine verfügbare Instanz in dem Pool eingetragen und entsprechend benachrichtigt werden.
  • In einer Ausführungsform kann die Größe des Pools 1131 als Reaktion auf eine neue Verbindungsanforderung, wenn der Pool voll mit verbundenen Instanzen ist, dynamisch erhöht werden. Eine solche dynamische Modifikation der Poolgröße kann lediglich ausgeführt werden, wenn die Kundenvorrichtung über eine aktuelle Vereinbarung verfügt, zusätzliche oder höhere Gebühren zu bezahlen, wie durch das Anbieternetzwerk 1100 berechnet. In einer Ausführungsform kann dem Benutzer wie in dem Beispiel aus 13 gezeigt stattdessen Zugriff auf eine virtuelle Desktopinstanz 1130Z außerhalb des Pools 1131 gewährt werden. Beispielsweise kann dem Benutzer Zugriff auf eine virtuelle Desktopinstanz 1130Z gewährt werden, die auf Anfrage verfügbar ist und stündlich berechnet wird, z. B. die virtuellen Desktopinstanzen, die vorangehend in Bezug auf 5 bis 10 erörtert werden. Ein solcher Zugriff außerhalb des Pools kann lediglich gewährt werden, wenn die Kundenvorrichtung über eine aktuelle Vereinbarung verfügt, angemessene Gebühren zu bezahlen, wie durch das Anbieternetzwerk 1100 berechnet.
  • 14 ist ein Blockdiagramm, das weitere Aspekte des beispielhaften Anbieternetzwerkes gemäß zumindest einigen Ausführungsformen veranschaulicht, das einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt, darunter Freigeben von getrennten virtuellen Desktopinstanzen in den Pool. Wie in dem Beispiel aus 14 gezeigt, können die Kundenvorrichtungen 1160A und 1160B jeweils von den Instanzen 1130A und 1130B getrennt sein, während die Kundenvorrichtung 1160N mit der virtuellen Desktopinstanz 1130N verbunden bleiben kann. Der virtuelle Desktopdienst 1120 kann eine Funktion für eine Freigabe virtueller Desktopinstanzen 1170 beinhalten. Der virtuelle Desktopdienst 1120 kann unter Verwendung der Funktion für eine Freigabe virtueller Desktopinstanzen 1170 Slots in dem Pool 1131 freigeben, die durch getrennte, jedoch ausgeführte Instanzen eingenommen werden.
  • In einer Ausführungsform kann die Freigabe virtueller Desktopinstanzen 1170 zu angemessenen Zeitpunkten die erwartete Rate bestimmen, mit der die virtuellen Desktop-Slots durch die verbundenen Instanzen eingenommen werden. Die angemessene Rate kann eine Wachstumsrate verbundener Instanzen oder Geschwindigkeit darstellen, mit welcher der Pool 1131 mit verbundenen Instanzen ausgefüllt wird. Die erwartete Rate kann (zumindest teilweise) auf Anforderungen erneuter Verbindung mit ausgeführten Instanzen sowie auf Anforderungen neuer Verbindung mit neuen Instanzen basieren. Auf Grundlage der erwarteten Rate kann die Freigabe virtueller Desktopinstanzen 1170 bestimmen, ob sich die Slots einer vollständigen Nutzung durch verbundene Instanzen nähern. Eine solche Bestimmung kann auf beliebigen heuristischen Werten oder Schwellenwerten basieren. Beispielsweise kann die Freigabe virtueller Desktopinstanzen 1170 auf Grundlage der Rate der neuen Verbindungsanforderungen bestimmen, dass der Pool innerhalb einer Stunde ausgefüllt sein wird. Wenn dies der Fall ist, kann die Freigabe virtueller Desktopinstanzen 1170 getrennte Instanzen (falls vorhanden) zur Freigabe auswählen. Die Freigabe kann außerdem unter anderen geeigneten Bedingungen und auf Grundlage anderer geeigneter Regel durchgeführt werden, z. B., wenn der Pool voll mit verbundenen Instanzen ist, eine Warteliste für neue Verbindungen vorhanden ist und eine der bestehenden Instanzen getrennt ist.
  • Eine oder mehrere der getrennten Instanzen 1130A und 1130B können freigegeben werden. Die Freigabe einer virtuellen Desktopinstanz (oder des Slots, den diese einnimmt) kann Neustarten der Instanz mit einem neuen Stammlaufwerk oder anderweitiges Ersetzen der Instanz durch eine neue Instanz beinhalten, die allen anzuwendenden Sicherheitsprozeduren unterworfen wurde und für eine neue Verbindung bereit ist. Beliebige geeignete Freigaberegeln oder -kriterien können angewendet werden, um eine oder mehrere getrennte Instanzen zur Freigabe auszuwählen. In einer Ausführungsform können getrennte Instanzen auf Grundlage der Ruhezustandsdauer der Instanz zur Freigabe ausgewählt werden, um z. B. Beibehalten der zuletzt getrennten Instanzen zu priorisieren. In einer Ausführungsform können getrennte Instanzen auf Grundlage der erwarteten Dauer eines Neustarts der Instanz zur Freigabe ausgewählt werden, um z. B. Beibehalten der getrennten Instanzen zu priorisieren, die am längsten zum Neustarten brauchen würden. In einer Ausführungsform können getrennte Instanzen auf Grundlage der relativen Rangliste oder anderen Eigenschaften von Benutzern zur Freigabe ausgewählt werden, um z. B. Beibehalten getrennter Instanzen für bestimmte Benutzer zu priorisieren. In einer Ausführungsform können eine oder mehrere Instanzen in dem Pool 1131 unbeschränkt für den Zugriff durch einen oder mehrere bestimmte Benutzer in der Kundenorganisation oder für Benutzer mit einer bestimmten Eigenschaft reserviert werden; diese Instanzen können zu jeder Zeit ausgeführt werden, unabhängig davon, ob der entsprechende Benutzer aktuell verbunden ist oder nicht, und können einer Freigabe unterworfen werden.
  • 15 ist ein Blockdiagramm, das weitere Aspekte des beispielhaften Anbieternetzwerkes gemäß zumindest einigen Ausführungsformen veranschaulicht, das einen virtuellen Desktopdienst mit einem virtuellen Desktopinstanzenpool bereitstellt, darunter Bereitstellen von Zugriff auf eine neugestartete Desktopinstanz in dem Pool an einer Kundenvorrichtung. Zwischen dem in 14 gezeigten Zustand und dem in 15 gezeigten Zustand kann die Freigabe virtueller Desktopinstanzen 1170 die virtuellen Desktopinstanzen 1130A und 1130B neustarten. Die neugestarteten Instanzen 1130A und 1130B können dann für neue Verbindungsanforderungen bereit sein. Eine bereite Instanz kann eine virtuelle Desktopinstanz darstellen, die ausgeführt wird, die allen Sicherheitsprozeduren unterworfen wurde und die für eine neue Verbindungsanforderung von einem Benutzer bereit ist. Beispielsweise kann die bereite Instanz eine freigegebene Instanz darstellen, die aus Sicherheitsgründen mit einem neuen Stammlaufwerk neugestartet wurde. Mit einer bereiten Instanz ist jedoch unter Umständen kein benutzerspezifisches Datenlaufwerk verbunden; diese kann jedoch domänenangehörig in der jeweiligen Domäne sein. Wenn eine neue Verbindungsanforderung von einer Kundenvorrichtung 1160C empfangen wird, kann der Kundenvorrichtung Zugriff auf die neugestartete Desktopinstanz 1130B gewährt werden, um einen virtuellen Desktop 1135C zu implementieren. Das Bereitstellen des Zugriffs auf die Instanz 1130B durch die Kundenvorrichtung 1160C kann Verbinden eines benutzerspezifischen Datenlaufwerks mit der Instanz beinhalten. Die andere neugestartete Instanz 1130A kann in dem Pool 1131 verfügbar bleiben, z. B., bis eine neue Verbindungsanforderung empfangen wird.
  • 16 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zur Verwaltung von virtuellen Desktopinstanzenpools veranschaulicht. Wie bei 1610 gezeigt, kann eine Anzahl (d.h eine definierte Menge) an virtuellen Desktop-Slots für eine Kundenorganisation bestimmt werden. Die Kundenorganisation kann einen Kunden darstellen, dem das Anbieternetzwerk Zugriff auf eine(n) oder mehrere Dienste und/oder Ressourcen gewährt (z. B. Zugriff auf virtualisierte Rechenressourcen). Die Kundenorganisation kann eine Geschäftsorganisation, Regierungsorganisation, gemeinnützige Organisation, Bildungsorganisation oder eine beliebige andere geeignete Gruppe von Individuen darstellen. Die Kundenorganisation kann Endnutzer beinhalten, denen Zugriff auf die Dienste und/oder Ressourcen gewährt wird. Die Endnutzer können Kundenvorrichtungen verwenden, um auf das Anbieternetzwerk zuzugreifen. Die Kundenvorrichtungen können benutzerspezifisch sein oder können von mehreren Benutzern geteilt werden, z. B. unter Verwendung von benutzerspezifischen Zugangsinformationen.
  • Die Kundenorganisation kann eine Anzahl an Slots übermitteln oder dieser zustimmen, z. B. unter Verwendung einer beliebigen geeigneten Programmschnittstelle und/oder Benutzerschnittstelle für das Anbieternetzwerk. Die Kundenorganisation kann zustimmen, das Anbieternetzwerk für die Anzahl an virtuellen Desktop-Slots für einen bestimmten Zeitraum zu bezahlen. Beispielsweise kann die Kundenorganisation zustimmen, das Anbieternetzwerk für einhundert virtuelle Desktop-Slots auf monatlicher Basis zu bezahlen (und möglicherweise jeden Monat, bis zu einer Kündigung oder Modifikation durch eine der Parteien). Die Anzahl an virtuellen Desktop-Slots kann eine feste oder vorbestimmte Menge an Slots für virtuelle Desktops darstellen, für die das Anbieternetzwerk zur Bereitstellung zu im Wesentlichen jeder Zeit im Verlaufe der Vereinbarung zustimmt. Jeder der virtuellen Desktop-Slots kann Folgendes darstellen: eine virtuelle Desktopinstanz, die mit einer Kundenvorrichtung in der Kundenorganisation verbunden ist (z. B. eine verbundene virtuelle Desktopinstanz), eine virtuelle Desktopinstanz, die nicht verbunden ist, aber noch ausgeführt wird (z. B. eine getrennte virtuelle Desktopinstanz) oder einen leeren Slot (z. B. einen Slot, an dem keine virtuelle Desktopinstanz ausgeführt wird, weder eine verbundene noch eine getrennte). Die Kundenorganisation kann für alle Slots zahlen, unabhängig davon, welche Slots verwendet werden oder wie häufig ein Slot verwendet wird. Üblicherweise kann die Anzahl an Endnutzern in der Kundenorganisation (z. B. an Benutzern, die Zugriff auf die virtuellen Desktop-Slots haben) die Anzahl an virtuellen Desktop-Slots überschreiten. Ein bestimmter Slot kann zu verschiedenen Zeitpunkten von verschiedenen Endnutzern in der Kundenorganisation verwendet werden.
  • Wie bei 1620 gezeigt, kann ein virtueller Desktopinstanzenpool für die Kundenorganisation reserviert werden. Der Instanzenpool kann neben virtuellen Desktopinstanzen, die ausgeführt werden und nicht mit Benutzern verbunden sind, virtuelle Desktopinstanzen beinhalten, die ausgeführt werden und mit Benutzern der Kundenorganisation verbunden sind. Das Reservieren des Instanzenpools beinhaltet im Allgemeinen Ausschließen von anderen Kunden von dem Zugriff auf die Instanzen während des Zeitraums, in dem die Kundenorganisation den Zugriff reserviert hat. Die Anzahl an Instanzen in dem Pool darf die Anzahl an virtuellen Desktop-Slots für die Kundenorganisation nicht überschreiten. In einer Ausführungsform kann der Instanzenpool ausgeführte Instanzen in allen (oder beinahe allen) Slots im Wesentlichen zu jeder Zeit nach einer Initialisierungsstufe beinhalten. In einer Ausführungsform können alle Slots bei der Initialisierung des Pools leer sein und ausgeführte Instanzen zu dem Pool hinzugefügt werden, wenn Verbindungsanforderungen empfangen oder erwartet werden. Slots in dem Pool mit getrennten Instanzen können freigegeben werden, z. B. durch Neustarten der Instanz oder anderweitiges Ersetzen von dieser durch eine neue Instanz, die ausgeführt wird und für eine neue Verbindung bereit ist.
  • Eine virtuelle Desktopinstanz kann im Namen eines gegebenen Endnutzers implementiert werden. Ein Dienstanbieternetzwerk kann eine Vielzahl von Rechenknoten (zum Beispiel die Rechenvorrichtungen wie in 18 gezeigt) beinhalten, die zusammen einer oder mehreren Kundenorganisationen oder anderen Benutzern des Anbieternetzwerks einen virtuellen Desktopdienst bereitstellen. Das Anbieternetzwerk kann eine virtualisierte Rechenressourceninstanz implementieren, die auf einem der Rechenknoten ausgeführt wird, und die virtualisierte Rechenressourceninstanz kann die virtuelle Desktopinstanz implementieren, wie vorangehend in Bezug auf 1 bis 4 erörtert. Auf der virtuellen Desktopinstanz können eine oder mehrere Anwendungen installiert und unter Verwendung der virtualisierten Rechenressourceninstanz ausgeführt werden. Der virtuelle Desktopdienst kann den virtuellen Desktop verwalten, z. B. durch Verwalten von Daten, wie etwa Konfigurationsdaten und Anwendungsdaten, die verwendet werden können, um eine grafische Benutzerschnittstelle (GUI) für die virtuelle Desktopinstanz zu generieren und die Anwendung(en) auszuführen. Die grafische Darstellung eines Satzes von Ressourcen, die der virtuellen Desktopinstanz zugeordnet sind (z. B. ein oder mehrere grafische Indikatoren von Anwendungen, ein oder mehrere Fenster, die Anwendungen zugeordnet sind, ein oder mehrere Schnittstellenelemente zum Durchsuchten von Dateien oder Ordnern, ein oder mehrere Schnittstellenelemente zum Durchsuchen von verfügbaren Anwendungen oder Wechseln zwischen ausgeführten Anwendungen usw.) und die zugeordneten Anwendungen können zusammen als ein virtueller Desktop bezeichnet werden.
  • Wie bei 1630 gezeigt, kann eine Verbindungsanforderung für eine virtuelle Desktopinstanz in dem Pool empfangen werden. Die Verbindungsanforderung kann von einer Kundenvorrichtung empfangen werden, die einem Endnutzer der Kundenorganisation zugeordnet ist. Die Verbindungsanforderung kann durch einen virtuellen Desktopdienst des Anbieternetzwerks über eine Netzwerkverbindung mit der Kundenorganisation empfangen werden. Die Verbindungsanforderung kann unter Verwendung einer beliebigen geeigneten Programmschnittstelle und/oder Benutzerschnittstelle empfangen werden und kann Zugriffsinformationen des Benutzers der Kundenorganisation beinhalten.
  • Wie bei 1640 gezeigt, kann bestimmt werden, ob alle Slots zu dem aktuellen Zeitpunkt durch verbundene Instanzen eingenommen werden. Wenn dies der Fall ist, kann dem Benutzer wie bei 1680 gezeigt der Zugriff auf eine virtuelle Desktopinstanz in dem Pool verweigert werden. Dem Benutzer kann eine Benachrichtigung darüber, dass keine Kapazität in dem Pool verfügbar ist, bereitgestellt werden. In einer Ausführungsform kann der Zugriff auf den Pool lediglich zu dem aktuellen Zeitpunkt verweigert werden und kann der Benutzer in eine Warteliste für eine verfügbare Instanz in dem Pool eingetragen und entsprechend benachrichtigt werden. In einer Ausführungsform kann dem Benutzer stattdessen Zugriff auf eine virtuelle Desktopinstanz außerhalb des Pools gewährt werden. Beispielsweise kann dem Benutzer Zugriff auf eine virtuelle Desktopinstanz gewährt werden, die auf Anfrage verfügbar ist und stündlich berechnet wird, z. B. die virtuellen Desktopinstanzen, die vorangehend in Bezug auf 5 bis 10 erörtert werden. Ein solcher Zugriff außerhalb des Pools kann lediglich gewährt werden, wenn die Kundenvorrichtung über eine aktuelle Vereinbarung verfügt, angemessene Gebühren zu bezahlen, wie durch das Anbieternetzwerk berechnet.
  • Wenn nicht alle Slots durch verbundene Instanzen eingenommen sind, kann wie bei 1650 gezeigt bestimmt werden, ob eine virtuelle Desktopinstanz in dem Pool bereit für den Benutzer ist. Eine bereite Instanz kann eine virtuelle Desktopinstanz darstellen, die ausgeführt wird, die allen Sicherheitsprozeduren unterworfen wurde und die für eine neue Verbindungsanforderung von einem Benutzer bereit ist. Beispielsweise kann die bereite Instanz eine freigegebene Instanz darstellen, die aus Sicherheitsgründen mit einem neuen Stammlaufwerk neugestartet wurde. Mit einer bereiten Instanz ist jedoch unter Umständen kein benutzerspezifisches Datenlaufwerk verbunden; diese kann jedoch domänenangehörig in der jeweiligen Domäne sein. Wenn keine Instanz in dem Pool bereit ist, kann eine virtuelle Desktopinstanz wie bei 1660 gezeigt in einem der Slots vermittelt werden. Das Vermitteln einer virtuellen Desktopinstanz wird vorangehend in Bezug auf 5 erörtert und beinhaltet im Allgemeinen Reservieren und Konfigurieren von Ressourcen des Anbieternetzwerks. In einer Ausführungsform kann das Vermitteln einer virtuellen Desktopinstanz Hochfahren der Instanz mit einem neuen Stammlaufwerk beinhalten. Erneut kann eine bereite Instanz unter Umständen nicht mit einem benutzerspezifischen Datenlaufwerk verbunden sein, jedoch domänenangehörig in der jeweiligen Domäne sein. Wie bei 1670 gezeigt, kann die virtuelle Desktopinstanz für den Benutzer vorbereitet werden und kann dem Benutzer Zugriff auf die Instanz gewährt werden. Das Vorbereiten der Instanz für den Benutzer kann Verbinden eines Datenlaufwerks beinhalten, das dem Benutzer der Instanz zugeordnet ist.
  • 17 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zur Freigabe von getrennten virtuellen Desktopinstanzen in einem Pool veranschaulicht. Wie bei 1710 gezeigt, kann ein virtueller Desktopinstanzenpool vermittelt werden und kann einer Kundenorganisation Zugriff auf den Pool bereitgestellt werden. Der Instanzenpool kann neben virtuellen Desktopinstanzen, die ausgeführt werden und nicht mit Benutzern verbunden sind, virtuelle Desktopinstanzen beinhalten, die ausgeführt werden und mit Benutzern der Kundenorganisation verbunden sind. Die Anzahl an Instanzen in dem Pool darf eine Anzahl an virtuellen Desktop-Slots für die Kundenorganisation nicht überschreiten. Die Kundenorganisation kann eine Anzahl an Slots übermitteln oder dieser zustimmen, z. B. unter Verwendung einer beliebigen geeigneten Programmschnittstelle und/oder Benutzerschnittstelle für das Anbieternetzwerk. Die Kundenorganisation kann zustimmen, das Anbieternetzwerk für die Anzahl an virtuellen Desktop-Slots für einen bestimmten Zeitraum zu bezahlen. Beispielsweise kann die Kundenorganisation zustimmen, das Anbieternetzwerk für einhundert virtuelle Desktop-Slots auf monatlicher Basis zu bezahlen (und möglicherweise jeden Monat, bis zu einer Kündigung oder Modifikation durch eine der Parteien). Die Anzahl an virtuellen Desktop-Slots kann eine feste oder vorbestimmte Menge an Slots für virtuelle Desktops darstellen, für die das Anbieternetzwerk zur Bereitstellung zu im Wesentlichen jeder Zeit im Verlaufe der Vereinbarung zustimmt. Die Kundenorganisation kann für alle Slots zahlen, unabhängig davon, welche Slots verwendet werden oder wie häufig ein Slot verwendet wird. Üblicherweise kann die Anzahl an Endnutzern in der Kundenorganisation (z. B. an Benutzern, die Zugriff auf die virtuellen Desktop-Slots haben) die Anzahl an virtuellen Desktop-Slots überschreiten. Ein bestimmter Slot kann zu verschiedenen Zeitpunkten von verschiedenen Endnutzern in der Kundenorganisation verwendet werden.
  • Jeder der virtuellen Desktop-Slots kann Folgendes darstellen: eine virtuelle Desktopinstanz, die mit einer Kundenvorrichtung in der Kundenorganisation verbunden ist (z. B. eine verbundene virtuelle Desktopinstanz), eine virtuelle Desktopinstanz, die nicht verbunden ist, aber noch ausgeführt wird (z. B. eine getrennte virtuelle Desktopinstanz) oder einen leeren Slot (z. B. einen Slot, an dem keine virtuelle Desktopinstanz ausgeführt wird, weder eine verbundene noch eine getrennte). In einer Ausführungsform kann der Instanzenpool ausgeführte Instanzen in allen (oder beinahe allen) Slots im Wesentlichen zu jeder Zeit nach einer Initialisierungsstufe beinhalten. In einer Ausführungsform können alle Slots bei der Initialisierung des Pools leer sein und ausgeführte Instanzen zu dem Pool hinzugefügt werden, wenn Verbindungsanforderungen empfangen oder erwartet werden. Slots in dem Pool mit getrennten Instanzen können freigegeben werden, z. B. durch Neustarten der Instanz oder anderweitiges Ersetzen von dieser durch eine neue Instanz, die ausgeführt wird und für eine neue Verbindung bereit ist.
  • Wie bei 1720 gezeigt, kann eine gegebene Kundenvorrichtung mit einer der virtuellen Desktopinstanzen in dem Pool verbunden oder von dieser getrennt sein. Eine Verbindung zu einer Instanz kann als Reaktion auf eine Verbindungsanforderung von einer Kundenvorrichtung hergestellt werden, die einem Benutzer der Kundenorganisation zugeordnet ist. Eine Verbindungstrennung von einer Instanz kann als Reaktion auf eine eindeutige Verbindungstrennungsanforderung von einer Kundenvorrichtung oder auf Grundlage einer automatischen Erfassung einer Verbindungstrennung durchgeführt werden, z. B. wie vorangehend in Bezug auf 5 bis 10 erörtert. Sowohl eine Verbindung als auch eine Verbindungstrennung kann die Zusammensetzung des Pools ändern, d. h. die Anzahl an verbundenen Instanzen, an getrennten (jedoch ausgeführten) Instanzen und an leeren Slots.
  • Wie bei 1730 gezeigt, kann die erwartete Rate bestimmt werden, mit der die virtuellen Desktop-Slots durch verbundene Instanzen eingenommen werden. Die angemessene Rate kann eine Geschwindigkeit darstellen, mit welcher der Pool mit verbundenen Instanzen ausgefüllt wird. Wie bei 1740 gezeigt, kann auf Grundlage der erwarteten Rate bestimmt werden, ob sich die Slots einer vollständigen Nutzung durch verbundene Instanzen nähern. Die bei 1740 gezeigte Bestimmung kann auf beliebigen heuristischen Werten oder Schwellenwerten basieren. Beispielsweise kann auf Grundlage der Rate der neuen Verbindungsanforderungen bestimmt werden, dass der Pool innerhalb einer Stunde ausgefüllt sein wird. Wenn dies der Fall ist, kann wie bei 1750 gezeigt bestimmt werden, ob getrennte Instanzen (auch als nicht verwendete Instanzen bezeichnet) in dem Pool vorhanden sind.
  • Wenn dies der Fall ist, können wie bei 1760 gezeigt eine oder mehrere der getrennten Instanzen freigegeben werden. Die Freigabe einer virtuellen Desktopinstanz (oder des Slots, den diese einnimmt) kann Neustarten der Instanz mit einem neuen Stammlaufwerk oder anderweitiges Ersetzen der Instanz durch eine neue Instanz beinhalten, die allen anzuwendenden Sicherheitsprozeduren unterworfen wurde und für eine neue Verbindung bereit ist. Beliebige geeignete Freigaberegeln oder -kriterien können angewendet werden, um eine oder mehrere getrennte Instanzen zur Freigabe auszuwählen. In einer Ausführungsform können getrennte Instanzen auf Grundlage der Ruhezustandsdauer der Instanz zur Freigabe ausgewählt werden, um z. B. Beibehalten der zuletzt getrennten Instanzen zu priorisieren. In einer Ausführungsform können getrennte Instanzen auf Grundlage der erwarteten Dauer eines Neustarts der Instanz zur Freigabe ausgewählt werden, um z. B. Beibehalten der getrennten Instanzen zu priorisieren, die am längsten zum Neustarten brauchen würden. In einer Ausführungsform können getrennte Instanzen auf Grundlage der relativen Rangliste von Benutzern zur Freigabe ausgewählt werden, um z. B. Beibehalten getrennter Instanzen für Benutzer eines höheren Rangs zu priorisieren.
  • Zusätzlich können Ausführungsformen der vorliegenden Offenbarung in Anbetracht der folgenden Klauseln beschrieben werden:
    1. 1. System, umfassend:
      • eine Vielzahl von Rechenknoten in einem Anbieternetzwerk, die zusammen einer Kundenorganisation einen virtuellen Desktopdienst bereitstellen, wobei jeder von den Rechenknoten zumindest einen Prozessor und einen Speicher umfasst und wobei die Kundenorganisation eine Vielzahl von Benutzern umfasst;
      • wobei der virtuelle Desktopdienst zu Folgendem konfiguriert ist:
        • Bestimmen einer festen Anzahl an virtuellen Desktop-Slots für die Kundenorganisation, wobei die feste Anzahl an virtuellen Desktop-Slots kleiner der Anzahl an Benutzern in der Kundenorganisation ist;
        • Vermitteln einer Vielzahl von virtuellen Desktopinstanzen in einem Pool, wobei die virtuellen Desktopinstanzen unter Verwendung von Ressourcen des Anbieternetzwerkes implementiert werden und wobei die Anzahl an virtuellen Desktopinstanzen in dem Pool nicht die feste Anzahl an virtuellen Desktop-Slots überschreitet;
        • Empfangen einer ersten Verbindungsanforderung von einer ersten Kundenvorrichtung, die einem ersten der Benutzer zugeordnet ist;
        • Bereitstellen eines Zugriffs auf eine bestimmte virtuelle Desktopinstanz in dem Pool an der ersten Kundenvorrichtung zumindest teilweise auf Grundlage einer Bestimmung, dass eine aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zum Zeitpunkt der ersten Verbindungsanforderung kleiner der festen Anzahl an virtuellen Desktop-Slots ist;
        • Empfangen einer zweiten Verbindungsanforderung von einer zweiten Kundenvorrichtung, die einem zweiten der Benutzer zugeordnet ist; und
        • Verweigern eines Zugriffs auf die Vielzahl von virtuellen Desktopinstanzen in dem Pool durch die zweite Kundenvorrichtung zumindest teilweise auf Grundlage einer Bestimmung, dass eine aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zum Zeitpunkt der zweiten Verbindungsanforderung der festen Anzahl an virtuellen Desktop-Slots entspricht.
    2. 2. System nach Klausel 1, wobei der virtuelle Desktopdienst ferner zu Folgendem konfiguriert ist:
      • Bestimmen einer erwarteten Rate, mit der die feste Anzahl an virtuellen Desktop-Slots durch eine Vielzahl von verbundenen virtuellen Desktopinstanzen eingenommen wird; und
      • Freigeben von einer oder mehreren getrennten virtuellen Desktopinstanzen in dem Pool zumindest teilweise auf Grundlage der erwarteten Rate, wobei eine oder mehrere freigegebene virtuelle Desktopinstanzen für neue Verbindungsanforderungen zur Verfügung stehen.
    3. 3. System nach Klausel 1, wobei der virtuelle Desktopdienst ferner zu Folgendem konfiguriert ist:
      • Bereitstellen eines Zugriffs auf eine zweite virtuelle Desktopinstanz außerhalb des Pools an der zweiten Kundenvorrichtung zumindest teilweise auf Grundlage der Bestimmung, dass die aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu dem zweiten Zeitpunkt der festen Anzahl an virtuellen Desktop-Slots entspricht.
    4. 4. Verfahren, das Folgendes umfasst:
      • Durchführen von Folgendem durch eine oder mehrere Rechenvorrichtungen eines Anbieternetzwerkes, die zusammen einen virtuellen Desktopdienst implementieren:
        • Reservieren einer Vielzahl von virtuellen Desktopinstanzen in einem Pool für eine Kundenorganisation, wobei die virtuellen Desktopinstanzen unter Verwendung von Ressourcen des Anbieternetzwerkes implementiert werden, wobei die Anzahl an virtuellen Desktopinstanzen in dem Pool nicht eine Anzahl an virtuellen Desktop-Slots für die Kundenorganisation überschreitet, wobei die Kundenorganisation eine Vielzahl von Benutzern umfasst;
        • Bereitstellen eines Zugriffs auf eine bestimmte virtuelle Desktopinstanz in dem Pool an einer ersten Kundenvorrichtung, die einem ersten der Benutzer zugeordnet ist, zumindest teilweise auf Grundlage einer Bestimmung, dass eine aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu einem ersten Zeitpunkt kleiner der Anzahl an virtuellen Desktop-Slots ist; und
        • Verweigern eines Zugriffs auf die Vielzahl von virtuellen Desktopinstanzen in dem Pool durch eine zweite Kundenvorrichtung, die einem zweiten der Benutzer zugeordnet ist, zumindest teilweise auf Grundlage einer Bestimmung, dass eine aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu einem zweiten Zeitpunkt der Anzahl an virtuellen Desktop-Slots entspricht.
    5. 5. Verfahren nach Klausel 4, ferner umfassend:
      • Bestimmen einer erwarteten Rate, mit der die Anzahl an virtuellen Desktop-Slots durch eine Vielzahl von virtuellen Desktopinstanzen eingenommen wird; und
      • Freigeben von einer oder mehreren unbenutzten virtuellen Desktopinstanzen in dem Pool zumindest teilweise auf Grundlage der erwarteten Rate, wobei eine oder mehrere wiederaufgenommene virtuelle Desktopinstanzen für neue Verbindungsanforderungen zur Verfügung stehen.
    6. 6. Verfahren nach Klausel 5, ferner umfassend:
      • Auswählen der einen oder mehreren nicht verwendeten virtuellen Desktopinstanzen zur Freigabe zumindest teilweise auf Grundlage einer Ruhezustandsdauer.
    7. 7. Verfahren nach Klausel 5, ferner umfassend:
      • Auswählen der einen oder mehreren nicht verwendeten virtuellen Desktopinstanzen zur Freigabe zumindest teilweise auf Grundlage einer erwarteten Neustartdauer.
    8. 8. Verfahren nach Klausel 5, ferner umfassend:
      • Auswählen der einen oder mehreren nicht verwendeten virtuellen Desktopinstanzen zur Freigabe zumindest teilweise auf Grundlage einer Benutzereigenschaft.
    9. 9. Verfahren nach Klausel 4, ferner umfassend:
      • Bereitstellen eines Zugriffs auf eine zweite virtuelle Desktopinstanz außerhalb des Pools an der zweiten Kundenvorrichtung zumindest teilweise auf Grundlage der Bestimmung, dass die aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu dem zweiten Zeitpunkt der Anzahl an virtuellen Desktop-Slots entspricht.
    10. 10. Verfahren nach Klausel 4, wobei die bestimmte virtuelle Desktopinstanz mit einem Stammverzeichnisvolumen gestartet wird, bevor eine Verbindungsanforderung von der ersten Kundenvorrichtung empfangen wird, und wobei das Verfahren ferner Folgendes umfasst:
      • Empfangen der Verbindungsanforderung von der ersten Kundenvorrichtung; und
      • Hinzufügen eines Datenvolumens, das dem ersten Benutzer zugeordnet ist, zu der bestimmten virtuellen Desktopinstanz, wobei das Datenvolumen zumindest teilweise auf Grundlage der Verbindungsanforderung von der ersten Kundenvorrichtung hinzugefügt wird.
    11. 11. Verfahren nach Klausel 4, ferner umfassend:
      • Bestimmen, dass der erste Benutzer die Verbindung zu der bestimmten virtuellen Desktopinstanz getrennt hat; und
      • Freigeben der bestimmten virtuellen Desktopinstanz, was Folgendes umfasst:
        • Entfernen eines Stammvolumens und eines Datenvolumens von der bestimmten virtuellen Desktopinstanz; und
        • Neustarten der bestimmten virtuellen Desktopinstanz mit einem neuen Stammvolumen.
    12. 12. Verfahren nach Klausel 4, ferner umfassend:
      • Festlegen einer zusätzlichen der virtuellen Desktopinstanzen in dem Pool als reservierte Instanz für einen bestimmten der Benutzer der Kundenorganisation, wobei die reservierte Instanz nicht freigegeben wird, wenn sie von einer Kundenvorrichtung getrennt ist, die dem bestimmten der Benutzer zugeordnet ist.
    13. 13. Verfahren nach Klausel 4, ferner umfassend:
      • Bestimmen, dass die bestimmte virtuelle Desktopinstanz von der ersten Kundenvorrichtung getrennt ist; und
      • Rückführen der bestimmten virtuellen Desktopinstanz zu einem Satz von verfügbaren Instanzen, wobei der Satz von verfügbaren Instanzen für die Kundenorganisationen und eine oder mehrere weitere Kundenorganisationen zum Zugriff bereitsteht.
    14. 14. Computerlesbares Speichermedium, auf dem Programmanweisungen gespeichert sind, die computerausführbar sind, um Folgendes durchzuführen:
      • Vermitteln einer Vielzahl von virtuellen Desktopinstanzen in einem Pool für eine Kundenorganisation, wobei die virtuellen Desktopinstanzen unter Verwendung von Ressourcen des Anbieternetzwerkes implementiert werden, wobei die Anzahl an virtuellen Desktopinstanzen in dem Pool nicht eine Anzahl an virtuellen Desktop-Slots für die Kundenorganisation überschreitet, wobei die Kundenorganisation eine Vielzahl von Benutzern umfasst und wobei die Anzahl an virtuellen Desktop-Slots kleiner der Anzahl an Benutzern in der Kundenorganisation ist;
      • Bereitstellen eines Zugriffs auf eine bestimmte virtuelle Desktopinstanz in dem Pool an einer ersten Kundenvorrichtung, die einem ersten der Benutzer zugeordnet ist, zumindest teilweise auf Grundlage einer Bestimmung, dass eine aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu einem ersten Zeitpunkt kleiner der Anzahl an virtuellen Desktop-Slots ist; und
      • Verweigern eines Zugriffs auf die Vielzahl von virtuellen Desktopinstanzen in dem Pool durch eine zweite Kundenvorrichtung, die einem zweiten der Benutzer zugeordnet ist, zumindest teilweise auf Grundlage einer Bestimmung, dass eine aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu einem zweiten Zeitpunkt der Anzahl an virtuellen Desktop-Slots entspricht.
    15. 15. Computerlesbares Speichermedium nach Klausel 14, wobei die Programmanweisungen ferner computerausführbar sind, um Folgendes durchzuführen:
      • Bestimmen einer erwarteten Rate, mit der die Anzahl an virtuellen Desktop-Slots durch eine Vielzahl von virtuellen Desktopinstanzen eingenommen wird; und
      • Freigeben von einer oder mehreren getrennten virtuellen Desktopinstanzen in dem Pool zumindest teilweise auf Grundlage der erwarteten Rate, wobei eine oder mehrere wiederaufgenommene virtuelle Desktopinstanzen für neue Verbindungsanforderungen zur Verfügung stehen.
    16. 16. Computerlesbares Speichermedium nach Klausel 15, wobei die Programmanweisungen ferner computerausführbar sind, um Folgendes durchzuführen:
      • Auswählen der einen oder mehreren getrennten virtuellen Desktopinstanzen zur Freigabe zumindest teilweise auf Grundlage einer Ruhezustandsdauer.
    17. 17. Computerlesbares Speichermedium nach Klausel 15, wobei die Programmanweisungen ferner computerausführbar sind, um Folgendes durchzuführen:
      • Auswählen der einen oder mehreren getrennten virtuellen Desktopinstanzen zur Freigabe zumindest teilweise auf Grundlage einer erwarteten Neustartdauer.
    18. 18. Computerlesbares Speichermedium nach Klausel 15, wobei die Programmanweisungen ferner computerausführbar sind, um Folgendes durchzuführen:
      • Auswählen der einen oder mehreren getrennten virtuellen Desktopinstanzen zur Freigabe zumindest teilweise auf Grundlage einer Benutzereigenschaft.
    19. 19. Computerlesbares Speichermedium nach Klausel 14, wobei die Programmanweisungen ferner computerausführbar sind, um Folgendes durchzuführen:
      • Bereitstellen eines Zugriffs auf eine zweite virtuelle Desktopinstanz außerhalb des Pools an der zweiten Kundenvorrichtung zumindest teilweise auf Grundlage der Bestimmung, dass die aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu dem zweiten Zeitpunkt der Anzahl an virtuellen Desktop-Slots entspricht.
    20. 20. Computerlesbares Speichermedium nach Klausel 14, wobei die bestimmte virtuelle Desktopinstanz mit einem Stammverzeichnisvolumen gestartet wird, bevor eine Verbindungsanforderung von der ersten Kundenvorrichtung empfangen wird, und wobei die Programmanweisungen ferner computerausführbar sind, um Folgendes durchzuführen:
      • Empfangen der Verbindungsanforderung von der ersten Kundenvorrichtung; und
      • Hinzufügen eines Datenvolumens, das dem ersten Benutzer zugeordnet ist, zu der bestimmten virtuellen Desktopinstanz, wobei das Datenvolumen zumindest teilweise auf Grundlage der Verbindungsanforderung von der ersten Kundenvorrichtung hinzugefügt wird.
  • Veranschaulichendes System
  • In zumindest einigen Ausführungsformen kann ein Server, der einige oder alle der Techniken zum Verwalten von Pools virtueller Instanzen wie hierin beschrieben implementiert, ein Computersystem beinhalten, das nichtflüchtige computerverfügbare (z. B. computerlesbare) Medien beinhaltet oder zum Zugriff hierauf konfiguriert ist, wie das Computersystem 2000, das in 18 veranschaulicht ist. Beispielsweise können beliebige oder alle der hierin beschriebenen Computersystemkomponenten (darunter z. B. Datenzentrumscomputer und/oder andere Komponenten in einem Dienstanbieternetzwerk, die zusammen virtuelle Rechendienste und/oder virtuelle Speicherdienste bereitstellen, virtualisierte Rechenressourceninstanzen, virtuelle Maschinen, Virtual-Machine-Monitors oder Hypervisoren, Sitzungs-Gateway-Komponenten, Rechenressourceninstanzenmanager und/oder virtuelle Desktopinstanzen; oder Kundenrechenvorrichtungen oder andere Komponente in einem Kundennetzwerk) in verschiedenen Ausführungsformen unter Verwendung eines Computersystems implementiert werden, das ähnlich dem Computersystem 2000 ist, das konfiguriert wurde, um die Funktion dieser Komponenten bereitzustellen. In der veranschaulichten Ausführungsform beinhaltet das Computersystem 2000 einen oder mehrere Prozessoren (z. B. die Prozessoren 2010A und 2010B bis 2010N), die über eine Eingangs-/Ausgangsschnittstelle (E/A-Schnittstelle) 2030 an einen Systemspeicher 2020 gekoppelt sind. Das Computersystem 2000 beinhaltet ferner eine oder mehrere Netzwerkschnittstellen 2040, die an die E/A-Schnittstelle 2030 gekoppelt sind. In einigen Ausführungsformen können die Netzwerkschnittstellen 2040 zwei oder mehr Netzwerkschnittstellen beinhalten (darunter z. B. eine, die zur Kommunikation zwischen einer virtualisierten Rechenressource, die auf dem Computersystem 2000 gehostet ist, und ihren Kunden konfiguriert ist, und eine, die zur Kommunikation zwischen einer virtualisierten Rechenressource und externen Ressourcen, Rechensystemen, Datenzentren oder Internetzielen in Netzwerken, bei denen es sich nicht um das Anbieternetzwerk handelt, und einem Kundennetzwerk konfiguriert sind, in dessen Namen die virtualisierten Rechenressourcen gehostet werden).
  • In verschiedenen Ausführungsformen kann es sich bei dem Computersystem 2000 um ein Uniprozessor-System, das einen Prozessor beinhaltet, oder ein Multiprozessor-System handeln, das mehrere Prozessoren 2010A-2010N (z. B. zwei, vier, acht oder eine andere geeignete Anzahl an Prozessoren) beinhaltet. Bei den Prozessoren 2010A-2010N kann es sich um beliebige geeignete Prozessoren handeln, die in der Lage sind, Anweisungen auszuführen. Beispielsweise kann es sich in verschiedenen Ausführungsformen bei den Prozessoren 2010A-2010N um Prozessoren handeln, die beliebige einer Vielzahl von Befehlssatzarchitekturen (ISAs) implementieren, wie etwa x86, PowerPC, SPARC oder MIPS ISAs oder eine beliebige andere geeignete ISA. In Multiprozessor-Systemen kann jeder der Prozessoren 2010A-2010N gemeinsam, jedoch nicht notwendigerweise dieselbe, ISA implementieren.
  • Der Systemspeicher 2020 kann konfiguriert sein, um Anweisungen und durch den (die) Prozessoren) 2010A-2010N zugängliche Daten zu speichern. In verschiedenen Ausführungsformen kann der Systemspeicher 2020 unter Verwendung einer beliebigen geeigneten Speichertechnologie implementiert werden, wie etwa unter Verwendung von statischem Direktzugriffsspeicher (SRAM), synchronem dynamischem RAM (SDRAM), nichtflüchtigem/Flash-Speicher oder einer beliebigen anderen Art von Speicher. In der veranschaulichten Ausführungsform sind Programmanweisungen und Daten, die eine oder mehrere erwünschte Funktionen implementieren, wie die Verfahren, Techniken und Daten, die vorangehend zum Verwalten von Ressourcen für virtuelle Desktopinstanzen beschrieben sind, in dem Systemspeicher 2020 als Code 2025 und Daten 2026 gespeichert gezeigt.
  • In einer Ausführungsform kann die E/A-Schnittstelle 2030 konfiguriert sein, um E/A-Datenverkehr zwischen dem Prozessor 2010, dem Systemspeicher 2020 und beliebigen Peripherievorrichtungen in der Vorrichtung zu koordinieren, einschließlich beliebigen von der (den) Netzwerkschnittstelle(n) 2040 oder anderen Peripherieschnittstellen. In einigen Ausführungsformen kann die E/A-Schnittstelle 2030 jede beliebige erforderliche Protokoll-, Zeitgebung- oder andere Datenumwandlung durchführen, um Datensignale von einer Komponente (z. B. dem Systemspeicher 2020) in ein zur Verwendung durch eine andere Komponente (z. B. die Prozessoren 201 0A-2010N) geeignetes Format zu konvertieren. In einigen Ausführungsformen kann die E/A-Schnittstelle 2030 Unterstützung von Vorrichtungen beinhalten, die über verschiedene Arten von Peripheriebussen verbunden sind, wie etwa eine Variation des Peripheral-Component-Interconnect-(PCI-)Busstandards oder des Universal-Serial-Bus-(USB-)Standards usw. In einigen Ausführungsformen kann die Funktion der E/A-Schnittstelle 2030 in zwei oder mehr getrennte Komponenten aufgeteilt sein, wie etwa eine North Bridge und eine South Bridge usw. In einigen Ausführungsformen können außerdem einige oder alle der Funktionen der E/A-Schnittstelle 2030, wie etwa eine Schnittstelle mit dem Systemspeicher 2020, direkt in die Prozessoren 2010A-2010N integriert sein.
  • Die Netzwerkschnittstelle(n) 2040 kann (können) konfiguriert sein, um zu ermöglichen, dass Daten zwischen dem Computersystem 2000 und anderen Vorrichtungen 2060 ausgetauscht werden, die mit einem Netzwerk oder Netzwerken 2050 verbunden sind, wie etwa anderen Computersystemen oder -vorrichtungen, wie in den Figuren veranschaulicht, usw. In verschiedenen Ausführungsformen kann (können) die Netzwerkschnittstelle(n) 2040 eine Kommunikation über beliebige geeignete drahtgebundene oder drahtlose allgemeine Datennetzwerke unterstützen, wie etwa Arten eines Ethernet-Netzwerks usw. Des Weiteren kann (können) die Netzwerkschnittstelle(n) 2040 eine Kommunikation über Telekommunikation-/Telefonienetzwerke, wie etwa analoge Sprachnetzwerke oder digitale Glasfaserkommunikationsnetzwerke, über Speicherbereichsnetzwerke, wie etwa Fibre-Channel-SANs, oder über eine beliebige andere geeignete Art von Netzwerk und/oder Protokoll unterstützen.
  • In einigen Ausführungsformen kann es sich bei dem Systemspeicher 2020 um eine Ausführungsform eines computerverfügbaren Mediums handeln, das konfiguriert ist, um Programmanweisungen und Daten wie vorangehend beschrieben zum Implementieren verschiedener Ausführungsformen der hierin beschriebenen Techniken zum Verwalten von Ressourcen für virtuelle Desktopinstanzen zu speichern. In anderen Ausführungsformen können die Programmanweisungen und/oder Daten jedoch von anderen Arten von computerverfügbaren Medien empfangen, gesendet oder gespeichert werden. Allgemein ausgedrückt kann ein computerverfügbares (z. B. computerlesbares) Medium nichtflüchtige Speichermedien oder Datenspeichermedien einschließen, wie etwa magnetische oder optische Medien, z. B. eine Diskette oder DVD/CD, die über die E/A-Schnittstelle 2030 an das Computersystem 2000 gekoppelt sind. Ein nichtflüchtiges computerverfügbares (z. B. computerlesbares) Speichermedium kann außerdem beliebige flüchtige oder nichtflüchtige Medien einschließen, wie etwa RAM (z. B. SDRAM, DDR, SDRAM, RDRAM, SRAM usw.), ROM usw., die in einigen Ausführungsformen des Computersystems 2000 als Systemspeicher 2020 oder einer anderen Art von Speicher eingeschlossen sein können. Ferner kann ein computerverfügbares Medium Übertragungsmedien oder -signale einschließen, wie etwa elektrische, elektromagnetische oder digitale Signale, die über ein Kommunikationsmedium übermittelt werden, wie etwa ein Netzwerk und/oder eine drahtlose Verbindung, wie sie über die Netzwerkschnittstelle(n) 2040 implementiert werden können/kann.
  • Die verschiedenen Ausführungsformen, wie in den Figuren veranschaulicht und hierin beschrieben, stellen beispielhafte Ausführungsformen von Verfahren dar. Die Verfahren können in Software, Hardware oder einer Kombination davon implementiert sein. Die Reihenfolge des Verfahrens kann geändert werden und verschiedene Elemente können hinzugefügt, neu angeordnet, kombiniert, weggelassen, modifiziert usw. werden.
  • Verschiedene Modifikationen und Änderungen können vorgenommen werden, wie es einem Fachmann ersichtlich ist, dem diese Offenbarung zu Nutzen ist. Es ist vorgesehen, dass alle solche Modifikationen und Änderungen hierin umfasst sind und die vorangehende Beschreibung dementsprechend im veranschaulichenden und nicht im einschränkenden Sinne anzusehen ist.

Claims (12)

  1. Ein System, umfassend: eine Vielzahl von Rechenknoten in einem Anbieternetzwerk, die zusammen einer Kundenorganisation einen virtuellen Desktopdienst bereitstellen, wobei jeder von den Rechenknoten zumindest einen Prozessor und einen Speicher umfasst und wobei die Kundenorganisation eine Vielzahl von Benutzern umfasst; wobei der virtuelle Desktopdienst zu Folgendem konfiguriert ist: Bestimmen einer festen Anzahl an virtuellen Desktop-Slots für die Kundenorganisation, wobei die feste Anzahl an virtuellen Desktop-Slots kleiner der Anzahl an Benutzern in der Kundenorganisation ist und wobei ein virtueller Desktop-Slot für Folgendes stehen kann: eine virtuelle Dektopinstanz, die mit einer Kundenvorrichtung in der Kundenorganisation verbunden ist, eine virtuelle Desktopinstanz, die nicht verbunden ist, aber ausgeführt wird und einem vorangehend verbundenen Benutzer zugeordnet ist, oder einen leeren Slot, auf dem weder eine verbundene noch eine getrennte Desktopinstanz ausgeführt wird; wobei die ausgeführten virtuellen Desktopinstanzen an virtuellen Desktop-Slots einem Pool an virtuellen Desktopinstanzen bilden und wobei die Anzahl an virtuellen Desktopinstanzen in dem Pool nicht die feste Anzahl an virtuellen Desktop-Slots überschreitet; auf ein Empfangen einer ersten Verbindungsanforderung von einer ersten Kundenvorrichtung, die einem ersten der Benutzer zugeordnet ist, und auf ein Bestimmen, dass eine aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in einem Pool an ausgeführten virtuellen Desktopinstanzen zum Zeitpunkt der ersten Verbindungsanforderung kleiner als die feste Anzahl an virtuellen Desktop-Slots ist; Bereitstellen eines Zugriffs auf eine getrennte, vorangehend mit dem ersten Benutzer verbundene virtuelle Desktopinstanz in dem Pool an ausgeführten virtuellen Desktopinstanzen an der ersten Kundenvorrichtung, oder Hinzufügen einer neu gestarteten oder neu implementiertem virtuellen Desktopinstanz für den ersten Benutzer zum Pool an ausgeführten virtuellen Desktopinstanzen unter Verwendung von Ressourcen des Anbieternetzwerkes und Bereitstellen eines Zugriffs auf die hinzugefügte virtuelle Desktopinstanz an der ersten Kundenvorrichtung; Trennen einer ausgeführten virtuellen Desktopinstanz und weiteres Ausführen der virtuellen Desktopinstanz, wobei die virtuelle Desktopinstanz einen virtuellen Desktop-Slot einnimmt und im Pool an ausgeführten virtuellen Desktopinstanzen bleibt; und Freigeben einer getrennten, ausgeführten virtuellen Desktopinstanz aus dem Pool an ausgeführten virtuellen Desktopinstanzen, wenn aus einer zeitlichen Wachstumsrate an verbundenen virtuellen Desktopinstanzen zu erwarten ist, dass der Pool an ausgeführten virtuellen Desktopinstanzen in naher Zeit gefüllt sein wird.
  2. Das System nach Anspruch 1, wobei der virtuelle Desktopdienst ferner zu Folgendem konfiguriert ist: Bereitstellen eines Zugriffs auf eine zweite virtuelle Desktopinstanz außerhalb des Pools an einer zweiten Kundenvorrichtung zumindest teilweise auf Grundlage der Bestimmung, dass die aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu dem zweiten Zeitpunkt der festen Anzahl an virtuellen Desktop-Slots entspricht.
  3. Ein Verfahren, umfassend: Durchführen von Folgendem durch eine oder mehrere Rechenvorrichtungen eines Anbieternetzwerkes, die zusammen einer Kundenorganisation einen virtuellen Desktopdienst bereitstellen, wobei jede von den Rechenvorrichtungen zumindest einen Prozessor und einen Speicher umfasst und wobei die Kunden¬organisation eine Vielzahl von Benutzern umfasst: Bestimmen einer festen Anzahl an virtuellen Desktop-Slots für die Kundenorganisation, wobei die feste Anzahl an virtuellen Desktop-Slots kleiner der Anzahl an Benutzern in der Kundenorganization ist und wobei ein virtueller Desktop-Slot für Folgendes stehen kann: eine virtuelle Dektop¬instanz, die mit einer Kunden¬vorrichtung in der Kunden¬organisation verbunden ist, eine virtuelle Desktop¬instanz, die nicht verbunden ist, aber ausgeführt wird und einem vorangehend verbundenen Benutzer zugeordnet ist, oder einen leeren Slot, auf dem weder eine verbundene noch eine getrennte Desktop¬instanz ausgeführt wird; wobei die ausgeführten virtuellen Desktopinstanzen an virtuellen Desktop-Slots einem Pool an virtuellen Desktopinstanzen bilden und wobei die Anzahl an virtuellen Desktopinstanzen in dem Pool nicht die feste Anzahl an virtuellen Desktop-Slots überschreitet; auf ein Empfangen einer ersten Verbindungsanforderung von einer ersten Kundenvorrichtung, die einem ersten der Benutzer zugeordnet ist, und auf ein Bestimmen, dass eine aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in einem Pool an ausgeführten virtuellen Desktopinstanzen zum Zeitpunkt der ersten Verbindungsanforderung kleiner als die feste Anzahl an virtuellen Desktop-Slots ist; Bereitstellen eines Zugriffs auf eine getrennte, vorangehend mit dem ersten Benutzer verbundene virtuelle Desktopinstanz in dem Pool an ausgeführten virtuellen Desktopinstanzen an der ersten Kundenvorrichtung, oder Hinzufügen einer neu gestarteten oder neu implementiertem virtuellen Desktopinstanz für den ersten Benutzer zum Pool an ausgeführten virtuellen Desktopinstanzen unter Verwendung von Ressourcen des Anbieternetzwerkes und Bereitstellen eines Zugriffs auf die hinzugefügte virtuelle Desktopinstanz an der ersten Kundenvorrichtung; Trennen einer ausgeführten virtuellen Desktopinstanz und weiteres Ausführen der virtuellen Desktopinstanz, wobei die virtuelle Desktopinstanz einen virtuellen Desktop-Slot einnimmt und im Pool an ausgeführten virtuellen Desktopinstanzen bleibt; und Freigeben einer getrennten, ausgeführten virtuellen Desktopinstanz aus dem Pool an ausgeführten virtuellen Desktopinstanzen, wenn aus einer zeitlichen Wachstumsrate an verbundenen virtuellen Desktopinstanzen zu erwarten ist, dass der Pool an ausgeführten virtuellen Desktopinstanzen in naher Zeit gefüllt sein wird.
  4. Das Verfahren nach Anspruch 3, weiterhin umfassend: Bereitstellen eines Zugriffs auf eine zweite virtuelle Desktopinstanz außerhalb des Pools an einer zweiten Kundenvorrichtung zumindest teilweise auf Grundlage der Bestimmung, dass die aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu dem zweiten Zeitpunkt der Anzahl an virtuellen Desktop-Slots entspricht.
  5. Das Verfahren nach Anspruch 3, wobei die bestimmte virtuelle Desktopinstanz mit einem Stammverzeichnisvolumen gestartet wird, bevor eine Verbindungsanforderung von der ersten Kundenvorrichtung empfangen wird, und wobei das Verfahren ferner Folgendes umfasst: Empfangen der Verbindungsanforderung von der ersten Kundenvorrichtung; und Hinzufügen eines Datenvolumens, das dem ersten Benutzer zugeordnet ist, zu der bestimmten virtuellen Desktopinstanz, wobei das Datenvolumen zumindest teilweise auf Grundlage der Verbindungsanforderung von der ersten Kundenvorrichtung hinzugefügt wird.
  6. Das Verfahren nach Anspruch 3, weiterhin umfassend: Bestimmen, dass der erste Benutzer die Verbindung zu der bestimmten virtuellen Desktopinstanz getrennt hat; und Freigeben der bestimmten virtuellen Desktopinstanz, was Folgendes umfasst: Entfernen eines Stammvolumens und eines Datenvolumens von der bestimmten virtuellen Desktopinstanz; und Neustarten der bestimmten virtuellen Desktopinstanz mit einem neuen Stammvolumen.
  7. Das Verfahren nach Anspruch 3, weiterhin umfassend: Festlegen einer zusätzlichen der virtuellen Desktopinstanzen in dem Pool als reservierte Instanz für einen bestimmten der Benutzer der Kundenorganisation, wobei die reservierte Instanz nicht freigegeben wird, wenn sie von einer Kundenvorrichtung getrennt ist, die dem bestimmten der Benutzer zugeordnet ist.
  8. Das Verfahren nach Anspruch 3, weiterhin umfassend: Bestimmen, dass die bestimmte virtuelle Desktopinstanz von der ersten Kundenvorrichtung getrennt ist; und Rückführen der bestimmten virtuellen Desktopinstanz zu einem Satz von verfügbaren Instanzen, wobei der Satz von verfügbaren Instanzen für die Kundenorganisationen und eine oder mehrere weitere Kundenorganisationen zum Zugriff bereitsteht.
  9. Ein computerlesbares Speichermedium, auf dem Programmanweisungen gespeichert sind, die computerausführbar sind, um Folgendes durchzuführen: Bestimmen einer festen Anzahl an virtuellen Desktop-Slots für eine Kundenorganisation, wobei die Kundenorganisation eine Vielzahl von Benutzern umfasst, wobei die feste Anzahl an virtuellen Desktop-Slots kleiner der Anzahl an Benutzern in der Kundenorganisation ist und wobei ein virtueller Desktop-Slot für Folgendes stehen kann: eine virtuelle Dektopinstanz, die mit einer Kundenvorrichtung in der Kundenorganisation verbunden ist, eine virtuelle Desktopinstanz, die nicht verbunden ist, aber ausgeführt wird und einem vorangehend verbundenen Benutzer zugeordnet ist, oder einen leeren Slot, auf dem weder eine verbundene noch eine getrennte Desktopinstanz ausgeführt wird; wobei die ausgeführten virtuellen Desktopinstanzen an virtuellen Desktop-Slots einem Pool an virtuellen Desktopinstanzen bilden und wobei die Anzahl an virtuellen Desktopinstanzen in dem Pool nicht die feste Anzahl an virtuellen Desktop-Slots überschreitet; auf ein Empfangen einer ersten Verbindungsanforderung von einer ersten Kundenvorrichtung, die einem ersten der Benutzer zugeordnet ist, und auf ein Bestimmen, dass eine aktuelle Anzahl an verbundenen virtuellen Desktop¬instanzen in einem Pool an ausgeführten virtuellen Desktop¬instanzen zum Zeitpunkt der ersten Verbindungsanforderung kleiner als die feste Anzahl an virtuellen Desktop-Slots ist; Bereitstellen eines Zugriffs auf eine getrennte, vorangehend mit dem ersten Benutzer verbundene virtuelle Desktopinstanz in dem Pool an ausgeführten virtuellen Desktopinstanzen an einer ersten Kundenvorrichtung, oder Hinzufügen einer neu gestarteten oder neu implementiertem virtuellen Desktopinstanz für den ersten Benutzer zum Pool an ausgeführten virtuellen Desktopinstanzen unter Verwendung von Ressourcen des Anbieternetzwerkes und Bereitstellen eines Zugriffs auf die hinzugefügte virtuelle Desktopinstanz an der ersten Kundenvorrichtung; Trennen einer ausgeführten virtuellen Desktopinstanz und weiteres Ausführen der virtuellen Desktopinstanz, wobei die virtuelle Desktopinstanz einen virtuellen Desktop-Slot einnimmt und im Pool an ausgeführten virtuellen Desktopinstanzen bleibt; und Freigeben einer getrennten, ausgeführten virtuellen Desktopinstanz aus dem Pool an ausgeführten virtuellen Desktopinstanzen, wenn aus einer zeitlichen Wachtumsrate an verbundenen virtuellen Desktopinstanzen zu erwarten ist, dass der Pool an ausgeführten virtuellen Desktopinstanzen in naher Zeit gefüllt sein wird.
  10. Das computerlesbare Speichermedium nach Anspruch 9, wobei die Programmanweisungen weiterhin computerausführbar sind, um Folgendes durchzuführen: Auswählen der einen oder mehreren getrennten virtuellen Desktopinstanzen zur Freigabe zumindest teilweise auf Grundlage einer Benutzereigenschaft.
  11. Das computerlesbare Speichermedium nach Anspruch 9, wobei die Programmanweisungen weiterhin computerausführbar sind, um Folgendes durchzuführen: Bereitstellen eines Zugriffs auf eine zweite virtuelle Desktopinstanz außerhalb des Pools an einer zweiten Kundenvorrichtung zumindest teilweise auf Grundlage der Bestimmung, dass die aktuelle Anzahl an verbundenen virtuellen Desktopinstanzen in dem Pool zu dem zweiten Zeitpunkt der Anzahl an virtuellen Desktop-Slots entspricht.
  12. Das computerlesbare Speichermedium nach Anspruch 9, wobei die bestimmte virtuelle Desktopinstanz mit einem Stammverzeichnisvolumen gestartet wird, bevor eine Verbindungsanforderung von der ersten Kundenvorrichtung empfangen wird, und wobei die Programmanweisungen weiterhin computerausfuhrbar sind, um Folgendes durchzuführen: Empfangen der Verbindungsanforderung von der ersten Kundenvorrichtung; und Hinzufügen eines Datenvolumens, das dem ersten Benutzer zugeordnet ist, zu der bestimmten virtuellen Desktopinstanz, wobei das Datenvolumen zumindest teilweise auf Grundlage der Verbindungsanforderung von der ersten Kundenvorrichtung hinzugefügt wird.
DE112016006080.7T 2015-12-28 2016-12-27 Verwaltung von virtuellen desktopinstanzenpools Active DE112016006080B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/981,587 US10037221B2 (en) 2015-12-28 2015-12-28 Management of virtual desktop instance pools
US14/981,587 2015-12-28
PCT/US2016/068638 WO2017117086A1 (en) 2015-12-28 2016-12-27 Management of virtual desktop instance pools

Publications (2)

Publication Number Publication Date
DE112016006080T5 DE112016006080T5 (de) 2018-09-13
DE112016006080B4 true DE112016006080B4 (de) 2023-09-21

Family

ID=57799878

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016006080.7T Active DE112016006080B4 (de) 2015-12-28 2016-12-27 Verwaltung von virtuellen desktopinstanzenpools

Country Status (4)

Country Link
US (2) US10037221B2 (de)
CN (1) CN108431778A (de)
DE (1) DE112016006080B4 (de)
WO (1) WO2017117086A1 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135437B1 (en) * 2014-03-24 2015-09-15 Amazon Technologies, Inc. Hypervisor enforcement of cryptographic policy
WO2017080590A1 (en) * 2015-11-10 2017-05-18 Telefonaktiebolaget Lm Ericsson (Publ) Technique for exchanging datagrams between application modules
US10037221B2 (en) 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools
US10412168B2 (en) * 2016-02-17 2019-09-10 Latticework, Inc. Implementing a storage system using a personal user device and a data distribution device
US10778750B2 (en) * 2016-06-23 2020-09-15 Vmware, Inc. Server computer management system for supporting highly available virtual desktops of multiple different tenants
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
US10348836B2 (en) * 2017-02-22 2019-07-09 Microsoft Technology Licensing, Llc Migrating clients between servers
EP3603028B1 (de) * 2017-03-28 2023-05-24 NetApp, Inc. Verfahren und systeme zur bereitstellung von wake-on-demand-zugriff auf sitzungsserver
US11587196B2 (en) * 2017-04-10 2023-02-21 Dell Products L.P. Information handling system remote desktop protocol selection
US10776145B2 (en) 2017-04-21 2020-09-15 Dell Products L.P. Systems and methods for traffic monitoring in a virtualized software defined storage architecture
US10296369B2 (en) 2017-04-27 2019-05-21 Dell Products L.P. Systems and methods for protocol termination in a host system driver in a virtualized software defined storage architecture
KR102105683B1 (ko) * 2017-04-28 2020-05-29 한국전자통신연구원 유선 및 이동 통신 서비스의 통합 플랫폼 관리 장치 및 방법
US10503922B2 (en) * 2017-05-04 2019-12-10 Dell Products L.P. Systems and methods for hardware-based security for inter-container communication
US10936353B2 (en) 2017-05-16 2021-03-02 Dell Products L.P. Systems and methods for hypervisor-assisted hardware accelerator offloads in a virtualized information handling system environment
US10652247B2 (en) * 2017-06-09 2020-05-12 Dell Products, L.P. System and method for user authorization in a virtual desktop access device using authentication and authorization subsystems of a virtual desktop environment
US10592293B2 (en) * 2017-08-31 2020-03-17 Cisco Technology, Inc. Tenant-specific policy generation and enforcement within containers
US10887287B2 (en) * 2018-05-11 2021-01-05 Citrix Systems, Inc. Connecting client devices to anonymous sessions via helpers
US11263036B2 (en) * 2018-07-16 2022-03-01 Samsung Electronics Co., Ltd. Method and device for controlling access of application
US10680945B1 (en) * 2018-09-27 2020-06-09 Amazon Technologies, Inc. Extending overlay networks to edge routers of a substrate network
US11171913B2 (en) * 2018-09-28 2021-11-09 Nutanix, Inc. Systems and methods for implementing address translation services
AT521713B1 (de) * 2018-10-11 2023-07-15 Avl List Gmbh Verfahren zur Detektion sicherheitsrelevanter Datenflüsse
US10785056B1 (en) * 2018-11-16 2020-09-22 Amazon Technologies, Inc. Sharing a subnet of a logically isolated network between client accounts of a provider network
US10833949B2 (en) 2018-11-20 2020-11-10 Amazon Technologies, Inc Extension resource groups of provider network services
KR102441860B1 (ko) * 2018-11-20 2022-09-08 아마존 테크놀로지스, 인크. 공급자 네트워크 서비스 확장
US11153281B2 (en) 2018-12-06 2021-10-19 Bank Of America Corporation Deploying and utilizing a dynamic data stenciling system with a smart linking engine
CN109710379A (zh) * 2018-12-24 2019-05-03 广州供电局有限公司 虚拟运维管理方法、装置、***、计算机设备和存储介质
US10860361B2 (en) * 2019-01-07 2020-12-08 Citrix Systems, Inc. Computer system providing virtual computing sessions through virtual delivery agent leasing with enhanced power savings and connectivity and related methods
US10884768B2 (en) * 2019-01-25 2021-01-05 Vmware, Inc. Solution which can improve VDI user experience automatically
US11188372B2 (en) 2019-04-29 2021-11-30 Citrix Systems, Inc. Computing system with dual VDA registration and related methods
US11362943B2 (en) 2019-05-20 2022-06-14 Citrix Systems, Inc. System and method for validating virtual session requests
CN112241299B (zh) * 2019-07-18 2023-08-18 上海达龙信息科技有限公司 电子设备的运营管理方法、***、介质及服务器
US11064017B2 (en) 2019-09-24 2021-07-13 Amazon Technologies, Inc. Peripheral device enabling virtualized computing service extensions
US11520530B2 (en) 2019-09-24 2022-12-06 Amazon Technologies, Inc. Peripheral device for configuring compute instances at client-selected servers
US11569997B1 (en) 2020-03-09 2023-01-31 Amazon Technologies, Inc. Security mechanisms for data plane extensions of provider network services
US11888936B2 (en) * 2020-07-01 2024-01-30 Jpmorgan Chase Bank, N.A. Method and system for an object proxy service
US20220129295A1 (en) * 2020-10-25 2022-04-28 Meta Platforms, Inc. Server-side hosted environment for a cloud gaming system
CN112288404A (zh) * 2020-10-29 2021-01-29 迈普通信技术股份有限公司 一种会议管理方法、装置、电子设备及存储介质
US11595319B2 (en) * 2020-12-21 2023-02-28 Microsoft Technology Licensing, Llc Differential overbooking in a cloud computing environment
EP4272067A1 (de) 2020-12-30 2023-11-08 Citrix Systems, Inc. Sichere sitzungswiederaufnahme
US11385925B1 (en) * 2021-07-06 2022-07-12 Bank Of America Corporation System and method for provisioning hosted virtual desktop resources to remote users
CN114895996A (zh) * 2022-03-25 2022-08-12 阿里巴巴(中国)有限公司 云实例的运行方法、装置、电子设备和存储设备
CN115396290B (zh) * 2022-06-29 2023-11-17 北京车网科技发展有限公司 一种故障自动恢复方法、装置及服务***
CN116560859B (zh) * 2023-07-11 2023-09-22 恒辉信达技术有限公司 一种基于云计算的访问设备资源分配方法及相关装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150007180A1 (en) 2010-10-12 2015-01-01 Citrix Systems, Inc. Allocating virtual machines according to user-specific virtual machine metrics

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510466B1 (en) 1998-12-14 2003-01-21 International Business Machines Corporation Methods, systems and computer program products for centralized management of application programs on a network
US6912578B1 (en) * 2000-02-25 2005-06-28 Sun Microsystems, Inc. Method and apparatus for improving utilization of a resource on a shared client
US7383329B2 (en) * 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7802251B2 (en) * 2005-11-09 2010-09-21 Hitachi, Ltd. System for resource allocation to an active virtual machine using switch and controller to associate resource groups
EP1963984A4 (de) 2005-12-15 2013-07-24 Barclays Capital Inc System und verfahren für sicheren fern-desktop-zugang
US8719816B2 (en) 2006-03-14 2014-05-06 University Of Utah Research Foundation Extendable framework for distributed applications and data
US20080127348A1 (en) * 2006-08-31 2008-05-29 Kenneth Largman Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy ware
US8065676B1 (en) * 2007-04-24 2011-11-22 Hewlett-Packard Development Company, L.P. Automated provisioning of virtual machines for a virtual machine buffer pool and production pool
US8141090B1 (en) * 2007-04-24 2012-03-20 Hewlett-Packard Development Company, L.P. Automated model-based provisioning of resources
US7953833B2 (en) 2008-01-31 2011-05-31 Wanova Technologies Ltd. Desktop delivery for a distributed enterprise
JP5047870B2 (ja) * 2008-04-17 2012-10-10 株式会社日立製作所 マスタ管理システム、マスタ管理方法、およびマスタ管理プログラム
US10411975B2 (en) 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US9130903B2 (en) 2009-07-01 2015-09-08 Citrix Systems, Inc. Unified out of band management system for desktop and server sessions
US9009219B2 (en) 2010-01-27 2015-04-14 Vmware, Inc. Native viewer use for service results from a remote desktop
US9244700B2 (en) 2010-05-09 2016-01-26 Citrix Systems, Inc. Methods and systems for delivering applications from a desktop operating system
US8224781B2 (en) * 2010-05-14 2012-07-17 Lsi Corporation Data protection in a data storage system
US8954564B2 (en) 2010-05-28 2015-02-10 Red Hat, Inc. Cross-cloud vendor mapping service in cloud marketplace
WO2012037076A1 (en) 2010-09-13 2012-03-22 Neverware, Inc. Methods and apparatus for connecting a thin client to a virtual desktop
US20120066679A1 (en) * 2010-09-13 2012-03-15 Startforce, Inc. Disposable virtual desktop for transient use by multiple users
US11106479B2 (en) 2010-09-30 2021-08-31 Amazon Technologies, Inc. Virtual provisioning with implementation resource boundary awareness
US8849941B2 (en) * 2010-09-30 2014-09-30 Microsoft Corporation Virtual desktop configuration and operation techniques
DK2622469T3 (da) * 2010-09-30 2020-02-17 Commvault Systems Inc Effektive datastyringsforbedringer, så som docking af datastyringsmoduler med begrænset funktion til et komplet datastyringssystem
US8850429B2 (en) * 2010-10-05 2014-09-30 Citrix Systems, Inc. Load balancing in multi-server virtual workplace environments
CN102447723B (zh) 2010-10-12 2015-09-09 运软网络科技(上海)有限公司 客户端虚拟化架构
US8607054B2 (en) 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
US9069890B2 (en) * 2011-04-20 2015-06-30 Cisco Technology, Inc. Ranking of computing equipment configurations for satisfying requirements of virtualized computing environments based on an overall performance efficiency
US9251033B2 (en) * 2011-07-07 2016-02-02 Vce Company, Llc Automatic monitoring and just-in-time resource provisioning system
US9038063B2 (en) 2011-09-07 2015-05-19 International Business Machines Corporation Determining virtual machine image pattern distributions in a networked computing environment
US9213503B2 (en) 2011-10-30 2015-12-15 Hewlett-Packard Development Company, L.P. Service provider management of virtual instances corresponding to hardware resources managed by other service providers
US9047476B2 (en) 2011-11-07 2015-06-02 At&T Intellectual Property I, L.P. Browser-based secure desktop applications for open computing platforms
TWI459296B (zh) * 2012-02-21 2014-11-01 Hon Hai Prec Ind Co Ltd 增加伺服器的虛擬機配置數量的方法
US8997093B2 (en) 2012-04-17 2015-03-31 Sap Se Application installation management by selectively reuse or terminate virtual machines based on a process status
US20140047114A1 (en) * 2012-08-13 2014-02-13 Cisco Technology, Inc. Virtual desktop policy control
US9507612B1 (en) * 2012-08-31 2016-11-29 United Services Automobile Association (Usaa) Managing dedicated and floating pool of virtual machines based on demand
US9529613B2 (en) * 2012-12-12 2016-12-27 Vmware, Inc. Methods and apparatus to reclaim resources in virtual computing environments
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
WO2014201350A1 (en) * 2013-06-14 2014-12-18 Huawei Technologies Co., Ltd. Bootstrapping from a remote disk image via a network
US20150019728A1 (en) 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US11663025B2 (en) 2013-09-23 2023-05-30 Bankvault Pty Ltd Maintenance of and caching of suspended virtual computers in a pool of suspended virtual computers
KR102102168B1 (ko) * 2013-10-21 2020-04-21 한국전자통신연구원 가상 데스크탑 서비스 장치 및 방법
US9800650B2 (en) 2014-03-10 2017-10-24 Vmware, Inc. Resource management for multiple desktop configurations for supporting virtual desktops of different user classes
US9386079B2 (en) * 2014-06-10 2016-07-05 American Megatrends, Inc. Method and system of virtual desktop infrastructure deployment studio
US10241836B2 (en) * 2014-06-11 2019-03-26 Vmware, Inc. Resource management in a virtualized computing environment
CN104133750A (zh) * 2014-08-20 2014-11-05 浪潮(北京)电子信息产业有限公司 主机与存储设备兼容适配测试方法和***
US20160056975A1 (en) * 2014-08-25 2016-02-25 Conexlink, LLC System and Method for Virtualizing an IT Infrastructure with Remotely Accessible Virtual Desktops
US9747136B2 (en) * 2014-12-09 2017-08-29 Vmware, Inc. Methods and systems that allocate cost of cluster resources in virtual data centers
US9645625B2 (en) * 2015-02-19 2017-05-09 American Megatrends, Inc. System and method for power management of computing devices in a virtual desktop infrastructure
US9569276B2 (en) * 2015-03-16 2017-02-14 Dell Products L.P. System and method for dynamic user assignment in a virtual desktop environment
US10037221B2 (en) 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150007180A1 (en) 2010-10-12 2015-01-01 Citrix Systems, Inc. Allocating virtual machines according to user-specific virtual machine metrics

Also Published As

Publication number Publication date
US20170185437A1 (en) 2017-06-29
US10853117B2 (en) 2020-12-01
US20180336059A1 (en) 2018-11-22
DE112016006080T5 (de) 2018-09-13
WO2017117086A1 (en) 2017-07-06
CN108431778A (zh) 2018-08-21
US10037221B2 (en) 2018-07-31

Similar Documents

Publication Publication Date Title
DE112016006080B4 (de) Verwaltung von virtuellen desktopinstanzenpools
US11048534B2 (en) Connection-based resource management for virtual desktop instances
DE112020000558B4 (de) Dynamisches ändern einer isolierung einer containerisierten arbeitslast in reaktion auf eine erfassung eines auslösenden faktors
DE112016003726B4 (de) Dynamisch definierte virtuelle private Netzwerktunnel in hybriden Cloud-Umgebungen
DE112012002614B4 (de) Netzwerkfilterung in einer virtualisierten Umgebung
DE112019001481T5 (de) Selektives bereitstellen gegenseitiger transportschichtsicherheit mittels alternativer servernamen
DE60010277T2 (de) Erweiterbares rechnersystem
DE112016001657T5 (de) Multi-Tenant-Sensitiver DHCP-Mechanismus für Cloud-Netzwerke
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE102016222048A1 (de) Dynamisch definierte virtuelle private netzwerktunnel in hybriden cloud-umgebungen
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112018003482T5 (de) Serveranfrageverwaltung
DE112011103522T5 (de) Erstellung eines Multidimensionalen Modells von Software-Angeboten
DE112008003966T5 (de) Selektives Um-Abbilden einer Netzwerktopologie
DE112014002799B4 (de) Bereitstellen einer sicheren Kundendomäne in einer virtualisierten Mehr-Mieter-Umgebung
DE102012221041A1 (de) Ermöglichen des gleichzeitigen Vorhandenseins von Hostrechnern oder virtuellen Maschinen mit identischen Adressen
DE112022003720T5 (de) Verwenden eines fernen pods in kubernetes
DE102021109547A1 (de) Sdwan overlay- routing- dienst
DE102018202432A1 (de) Strukturunterstützung für die Dienstgüte
DE112020000535T5 (de) Fehlerbehebung innerhalb und außerhalb der eigenen Räumlichkeiten
DE112022002615T5 (de) Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs
DE112020004522T5 (de) Erhöhen der leistungsfähigkeit von frame-übergreifenden live-aktualisierungen
DE112014000433T5 (de) Kapseln eines virtuellen Servers in einer Hypervisor-Subpartition
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE102021125847A1 (de) Auf blockchain beruhende reservierung und delegierung von diensten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R130 Divisional application to

Ref document number: 112016007661

Country of ref document: DE