MX2010009362A - Extension de arquitectura de maquina virtual de escritorio basada en servidor para maquinas de cliente. - Google Patents
Extension de arquitectura de maquina virtual de escritorio basada en servidor para maquinas de cliente.Info
- Publication number
- MX2010009362A MX2010009362A MX2010009362A MX2010009362A MX2010009362A MX 2010009362 A MX2010009362 A MX 2010009362A MX 2010009362 A MX2010009362 A MX 2010009362A MX 2010009362 A MX2010009362 A MX 2010009362A MX 2010009362 A MX2010009362 A MX 2010009362A
- Authority
- MX
- Mexico
- Prior art keywords
- disk
- delta
- user
- virtual machine
- virtual
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Una arquitectura de máquina virtual de escritorio basada en servidor se puede extender a una máquina de cliente; en una modalidad, un escritorio del usuario es accesado remotamente desde un sistema de cliente; el escritorio remoto es generado por una primera máquina virtual que corre en un sistema de servidor, el cual puede comprender una o más computadoras de servidor; durante la ejecución de la primera máquina virtual, los escritos para un disco virtual correspondiente son dirigidos a un archivo de disco delta o registro redo; se crea una copia el disco virtual en el sistema de cliente; cuando un usuario decide realizar una "comprobación de salida" de su escritorio, la primera máquina virtual es terminada (en caso que esté corriendo) y se crea una copia del disco delta en el sistema de cliente; una vez que el disco delta está presente en el sistema de cliente, una segunda máquina virtual puede ser iniciada en el sistema de cliente utilizando el disco virtual y el disco delta para proporcionar acceso local al escritorio del usuario en el sistema de cliente; esto permite al usuario entonces tener acceso a su escritorio sin estar conectado a una red.
Description
EXTENSION DE ARQUITECTURA DE MAQUINA VIRTUAL DE ESCRITORIO BASADA EN SERVIDOR PARA MAQUINAS DE CLIENTE
CAMPO DE LA INVENCION
Los beneficios de la virtualización de computadoras han sido reconocidos como incrementando en gran medida la eficiencia y flexibilidad computacional de una plataforma de hardware de cómputo. Por ejemplo, la virtualización de computadoras permite que múltiples máquinas de cómputo virtuales corran en una plataforma de hardware de computación común. Similar a una plataforma de hardware de computación física, las máquinas de computación virtuales incluyen medios de almacenamiento, tal como discos duros virtuales, procesadores virtuales y otros componentes de sistema asociados con un ambiente de computación. Por ejemplo, un disco duro virtual puede almacenar el sistema operativo, datos y archivos de aplicación para una máquina virtual.
ANTECEDENTES DE LA INVENCIÓN
La computación basada en servidor permite que un sistema de cliente conectado en red, ubicado lejos con respecto a un servidor, tenga acceso a recursos de computación en el servidor. Por ejemplo, un cliente puede
utilizar un protocolo de escritorio remoto tal como RDP o VNC para tener acceso a un escritorio de manera remota y transmitir la entrada de usuario tal como una entrada de teclado o ratón al sistema remoto. La computación basada en servidor facilita la administración centralizada de recursos de computación. No obstante, un inconveniente es que se obtiene una experiencia de computación menos que óptima. Por ejemplo, aplicaciones intensivas gráficas y dispositivos locales, tales como dispositivos USB, impresoras y similares, no pueden operar según se desee. De manera adicional, el usuario debe permanecer conectado a la red para tener acceso al escritorio del usuario almacenado en el servidor.
Como una alternativa a la computación basada en servidor, la computación del lado del cliente permite al usuario estar ubicado lejos de una red empresarial y en modo fuera de linea, es decir, no estar conectado a una red o la Internet. Sin embargo, desde el punto de vista de la administración de una empresa, la computación del lado del cliente conduce a ineficiencias indeseables cuando se trata de tareas, tales como la actualización de sistemas operativos y aplicaciones, puesta en marcha de la seguridad, cumplimiento del licénciamiento, bloqueo de información, la adherencia obligada a diversas políticas, y
el respaldo de datos.
SUMARIO DE LA INVENCION
Los retos antes descritos se pueden corregir extendiendo la arquitectura de máquina virtual de escritorio basada en servidor a una máquina de cliente. En una modalidad, se tiene acceso a un escritorio de usuario remotamente desde un sistema de cliente. El escritorio remoto es generado por una primera máquina virtual que corre en un sistema de servidor, el cual comprende una o más computadoras de servidor. Durante la ejecución de la primera máquina virtual, lo escrito en un disco virtual correspondiente es dirigido a un archivo de disco delta o registro redo. Se crea una copia el disco virtual en el sistema de cliente. Cuando un usuario decide realizar una "comprobación de salida" de su escritorio, la primera máquina virtual es terminada (en caso que esté corriendo) y se crea una copia del disco delta en el sistema de cliente. Una vez que el disco delta está presente en el sistema de cliente, una segunda máquina virtual puede ser iniciada en el sistema de cliente utilizando el disco virtual y el disco delta para proporcionar acceso local al escritorio del usuario en el sistema de cliente. Esto permite al usuario entonces tener acceso a su escritorio sin estar
conectado a una red.
BREVE DESCRIPCION DE LAS FIGURAS
La figura 1 muestra un sistema de infraestructura de escritorio virtual (VDI) ejemplar simple que proporciona acceso a escritorios de usuario centralmente administrados.
La figura 2 muestra una representación lógica de un sistema de computadora virtualizado ejemplar.
La figura 3 ilustra una vista plana simplificada de un ambiente de computación virtualizado operado en la plataforma de hardware de computación de la- figura 1 de acuerdo con la presente invención.
Las figuras 3A, 3B, 3C y 3D muestran diagramas en bloques que ilustran a manera de ejemplo la operación del sistema de infraestructura de escritorio virtual de la figura 1.
La figura 4 muestra un gráfico de flujo que muestra un procedimiento ejemplar para conectar un usuario a un escritorio remoto con sincronización de fondo automática.
La figura 5 muestra un gráfico de flujo que presenta a manera de ejemplo un método para implementar un procedimiento de revisión de escritorio.
DESCRIPCION DETALLADA DE LA INVENCION
La figura 1 muestra un sistema de infraestructura de escritorio virtual (VDI) ejemplar simple 10 que proporciona acceso a escritorios de usuario centralmente administrados. El término, "escritorio" se refiere a un ambiente de interfaz humana a través de la cual los usuarios pueden lanzar, interactuar con, y administrar las aplicaciones de usuario, configuraciones y datos. Tradicionalmente, un escritorio es presentado por un sistema operativo o un despliegue de video, y un usuario interactúa con el escritorio utilizando un ratón y teclado. Todas las aplicaciones, documentos, etc. pueden ser desplegados en el escritorio y la entrada de usuario por lo regular es recibida por aplicaciones visibles al usuario en el despliegue. El término "escritorio" también se utiliza para hacer referencia a un sistema de computadora físico o "escritorio físico" que pudiera ser colocado en o cerca de un escritorio de usuario, el cual es distinto de una "laptop" o "palmtop", pero tal como aquí se utiliza, el término "escritorio" por sí mismo se referirá exclusivamente al ambiente de interfaz humana antes descrito, y no a un sistema de computadora físico. Al utilizar la virtualización de computadoras, el sistema de computadora de un usuario, incluyendo las configuraciones
del sistema operativo, las aplicaciones y configuraciones de aplicación, asi como datos pueden ser transferidos o copiados como una máquina virtual desde una computadora física a otra. Cuando se copia una máquina virtual de esta forma, el usuario puede tener acceso a su "escritorio" desde el sistema de computadora físico que contiene la máquina virtual original, o el sistema de computadora físico que contiene la copia. Por lo tanto, el "escritorio" ya no está vinculado a un sistema de computadora físico particular.
El sistema VDI 10 incluye el sistema de servidor VDI 11 en comunicación de datos sobre la red 13 con diversos sistemas de cliente VDI 12, 14 y 16. La red 13 puede ser cualquier configuración, tal como una red de área local (LAN), o red de área ancha públicamente accesible o privada, tal como la Internet. Se debería reconocer que la figura 1 muestra una representación simplificada de un sistema de servidor de red VDI típico 11, el cual puede incluir otros componentes tales como muros corta fuego, agentes de conexión, y equilibradores de carga, así como redes de almacenamiento de extremo posterior, servidores de datos, etc. Cada sistema de cliente 12, 14, 16 puede incluir una interfaz de usuario 40 (únicamente se muestra una) a través de la cual un usuario puede interactuar con
su escritorio.
La figura 2 muestra una representación lógica de un sistema de computadora virtualizado ejemplar 20. Tal como se explicará con mayor detalle a continuación, el sistema de servidor VDI 11, y los sistemas de cliente VDI 12, 14 y 16, pueden incluir software de virtualización aquí descritos con referencia a la figura 2. El sistema de computadora virtualizado 20 incluye una plataforma de hardware física 22, software de virtualización 80 que corre en la plataforma de hardware 22, y una o más máquinas virtuales 70 que corren en la plataforma de hardware 22 por medio del software de virtualización 80. Por lo tanto, el software de virtualización 80 está lógicamente interpuesto entre el hardware físico de la plataforma de hardware 22 y el software del sistema huésped 72 que corre "en" la máquina virtual 70.
La plataforma de hardware 22 puede ser un sistema de computación de propósito general que tenga uno o más enlaces de sistema 28 que colocan diversos componentes de la plataforma de hardware en comunicación de datos entre sí. Por ejemplo, uno o más procesadores 24 son colocados en comunicación de datos con una memoria 26 utilizando enlaces de sistema 28. La memoria 26 puede comprender un sistema de memorias incluyendo memoria de sólo lectura (ROM) , memoria
de acceso aleatorio (RAM) ,' memorias caché y diversas memorias de registro. El almacenamiento de datos no volátil 30 puede incluir una o más unidades de disco u otros medios legibles por máquina o sistemas de almacenamiento de datos en masa para almacenar software o datos. La memoria 26 y/o almacenamiento de datos no volátil 30 puede almacenar software de virtualización 80 y software del sistema huésped 72 que corre en la máquina virtual 70. La interfaz de usuario 40 puede ser proporcionada incluyendo un controlador de teclado (que no se muestra) , un controlador de ratón (que no se muestra), un controlador de video (que no se muestra), y un controlador de audio (que no se muestra), cada uno de los cuales puede estar conectado a dispositivos de usuario correspondientes (que no se muestran) . Tal como resulta típico para sistemas de computadora de servidor, para el sistema de servidor VDI 11 (figura 1) las interfaces de usuario y dispositivos pueden o no estar incluidos o conectados a la plataforma de hardware 22. Por el contrario, una interacción del usuario puede ocurrir remotamente tal como se conoce por lo general en el campo de la administración de centros de datos. La interfaz de red 50 permite la comunicación de datos sobre una red tal como la red 13 (figura 1) . La interfaz de red 50 puede facilitar la comunicación utilizando un protocolo
de red, tal como TCP/IP.
El software de virtuali zación 80 es muy conocido en el campo de la virtualización de computadoras. El software de virtualización 80 ejecuta administración de recursos del sistema y emulación de máquinas virtuales. La emulación de máquinas virtuales puede ser ejecutada mediante un componente de monitor de máquina virtual (VMM) . En implementaciones típicas, cada máquina virtual 70 (únicamente se muestra una) tiene una instancia de VMM correspondiente. Dependiendo de la implementación, el software de virtualización 80 puede no estar alojado o puede estar alojado. El software de virtualización no alojado generalmente retransmite en un núcleo de virtualización especializado para administrar recursos del sistema, mientras que el software de virtualización alojado retransmite en un sistema operativo básico, el "sistema operativo huésped", tal como Windows o Linux para administrar recursos del sistema. En un sistema de virtualización alojado, el sistema operativo huésped puede ser considerado como parte del software de virtualización 80.
La máquina virtual 70 conceptualmente comprende el estado de los dispositivos de hardware virtuales (tal como son emulados por el software de virtualización 80) y el
contenido del software del sistema huésped 72. Tal como se muestra en la figura 2, el software del sistema huésped 72 incluye un sistema operativo huésped 74 y aplicaciones huésped 78. El sistema operativo huésped 74 puede ser un sistema operativo básico tal como Windows o GNU/Linux. El software de virtualización 80 es responsable de la administración de entradas y salidas hacia y desde la máquina virtual 70, incluyendo la dirección de salidas de interfaz de usuario a la interfaz de usuario local 40' o un cliente de escritorio remoto.
Las figuras 3A y 3B muestran un diagrama en bloques simplificado que muestra un sistema VDI extensible 100 que tiene acceso remoto (o centralizado) a escritorios del usuario y acceso local, permitiendo a un solo usuario tener acceso a su escritorio ya sea de manera remota o local. El sistema VDI extensible 100 incluye un sistema de servidor 110 y sistema de cliente 120. La VM 118 se ejecuta en el sistema de servidor 110 y un usuario puede tener acceso a ésta a través del sistema de cliente 120. La VM 118 contiene todas las aplicaciones y datos del usuario tal como se describió anteriormente con referencia a la figura 2, y es ejecutada utilizando software de virtualización 117. En una modalidad, el software de virtualización 117 comprende software de virtualización no alojado. Además,
aunque únicamente se muestra una VM 118 ejecutando en el servidor 110, cualquier número de VM puede estar en ejecución, cada una asociada con uno o más usuarios correspondientes .
El software de virtualización 117 dirige la I/O de usuario al huésped de escritorio remoto 115. El huésped de escritorio remoto 115 transmite gráficos y sonidos del usuario al cliente de escritorio remoto 125. De igual forma, el cliente de escritorio remoto 125 envía la entrada del usuario, por ejemplo, entradas de teclado y ratón, al huésped de escritorio remoto 115. El cliente de escritorio remoto 125 presenta el escritorio del usuario al usuario a través de la interfaz de usuario 124, la cual puede comprender diversos dispositivos I/O de usuario.
El sistema de cliente 120 incluye, además del cliente de escritorio remoto 125, una máquina virtual 128 junto con el software de virtualización 127. La máquina virtual 128 puede tener acceso al disco virtual 132, el cual es una imagen de disco que reside como uno o más archivos en el disco físico 130 conectado al sistema de cliente 120. El disco virtual 132 es mantenido por el software de virtualización 127. En una modalidad, el software de virtualización 127 comprende software de virtualización alojado, el cual corre en conjunto con el
sistema operativo huésped del cliente tal como se describió previamente. El disco virtual 132 puede ser copiado inicialmente del disco virtual 142 (o viceversa) de manera que, en un estado particular, los discos virtuales 132 y 142 son idénticos o lógicamente equivalentes pero no idénticos. Por lógicamente equivalente, se pretende decir que cada disco virtual contiene el mismo sistema de archivo y archivos de datos, los cuales están lógicamente relacionados en estructuras idénticas del sistema de archivos, aunque los sectores del disco real pueden no estar ordenados de igual forma. Dos discos idénticos también son lógicamente equivalentes.
El sistema de servidor 110 incluye o está en comunicación con un disco físico 140 accesible al sistema de servidor 110. El disco físico 40, el cual es utilizado por el software de virtuali zación 117 para almacenar discos virtuales de usuario, son archivos de imágenes del disco para máquinas virtuales correspondientes. A medida que el usuario trabaja en la VM 118, ésta puede emitir escritos al disco virtual 142, el cual reside como uno o más archivos en el disco físico 140. Sin embargo, en lugar de escribir los cambios directamente en el disco virtual 142, el software de virtualización 117 se puede configurar para redirigir los escritos al disco delta 144. El disco delta
144 puede comprender un registro redo u otro archivo de "diferencias". En esencia, el disco delta 144 mantiene una lista de modificaciones al disco virtual 142 sin realizar realmente cambio alguno al disco virtual 142. Los discos delta son conocidos en la técnica de la virtualización y se describen con mayor detalle, por ejemplo, en la Patente E.U.A. 7,356,679. Cuando la máquina virtual 118 emite una lectura, el software de virtualización 117 tiene acceso al disco delta 144 para determinar si los datos están ahí, y en caso de no estar, éste tiene acceso al disco virtual 142, la imagen de disco origen para el disco delta 144. El software de virtualización 117 entonces entrega los datos a la máquina virtual 118 tal como si ocurriera una lectura de disco simple de un dispositivo físico.
Cuando un usuario quisiera realizar una
"comprobación de salida" de su máquina virtual, de manera que pueda tener acceso fuera de línea, es decir, sin tener acceso al sistema de servidor 110, él o ella pueden indicar este deseo al software de administración (que no se muestra, descrito con mayor detalle a continuación) . En ese momento, la máquina virtual 118 es "apagada" y el disco delta 144 es copiado al disco físico 130 del usuario para crear el disco delta 134 en el disco físico 130 del usuario. Una vez que se completa y verifica esta descarga,
los escritos que forman el disco delta 144 son fusionados en el disco virtual 142 y el disco delta 134 es fusionado de manera similar en el disco virtual 132 de manera que el disco virtual 132 y el disco virtual 142 son mantenidos en un estado lógicamente equivalente, pero ahora están actualizados para reflejar el estado más actual dejado por el usuario.
En una modalidad, en lugar de apagar la máquina virtual 118, el usuario simplemente puede suspender, en cuyo caso el estado VM 136 también es descargado del software de virtualización 117, lo cual mantiene el estado de la máquina virtual 118.
La figura 3B muestra el sistema VDI extensible 100 en donde el usuario está teniendo acceso a su escritorio fuera de linea corriendo localmente la máquina virtual 128. En este caso, el software de virtualización 127 corre la máquina virtual 128 en el sistema de cliente 120 mientras que el cliente de escritorio remoto 125 no es utilizado. Por lo tanto, el usuario puede estar desconectado de cualquier red y trabajar fuera de linea. El software de virtualización 127 no modifica directamente el disco virtual 132. Mas bien, éste crea un disco delta 134 que contiene todos los cambios que el usuario emitió al disco virtual 132 tal como se describió previamente al respecto
al disco delta 144 en la figura 3A.
En cierto punto, el usuario puede desear o se puede requerir que éste realice una "comprobación de entrada" de su escritorio para el sistema de servidor 110. En este momento, la máquina virtual 128 es "apagada" y el software de virtualización 127 se conecta al servidor 110 y copia el disco delta 134 al almacenamiento de datos 140 del servidor para crear el disco delta 144. En una modalidad, la máquina virtual puede ser suspendida en lugar de apagada, y el estado VM 146 es cargado al sistema de servidor 10. Después de copiar el disco delta 134 o el disco delta 134 más el estado 146, los discos delta 134, 144 son fusionados en discos virtuales 132, 142, respectivamente. Por "fusionado" se entiende que los escritos del disco contenidos en cada uno de los discos delta son escritos en archivos de los discos virtuales 132, 142, respectivamente. Después de este procedimiento de revisión, cada uno de los discos virtuales 132, 142 son idénticos o al menos lógicamente equivalentes de manera que el usuario puede comenzar las actividades de computación utilizando la máquina virtual 118 en el lugar en donde la dejó con la máquina virtual 128.
Tal como se describirá ahora con mayor detalle, se pueden realizar diversas mejoras y optimizaciones a la
operación básica de la funcionalidad de comprobación de entrada, comprobación de salida antes descritas.
La figura 3C muestra una vista más detallada del sistema VDI extensible 100. Un escritorio del usuario es definido por uno o más archivos 141 que residen en el disco físico 140 conectado al sistema de servidor 110. Los archivos 141 incluyen archivos para políticas 149, disco virtual 142, disco delta 144 y estado VM 146. Las políticas pueden ser almacenadas utilizando una base de datos y/o mediante un archivo de configuración asociado o incorporado como metadatos en el disco virtual 142. Los archivos de escritorio adicionales 148 se pueden proporcionar para definir escritorios adicionales accesibles por un usuario o grupos de usuarios correspondientes.
Tal como se muestra en la figura 3C, el sistema de cliente 120 incluye un cliente VDI 122 que se comunica con el servidor de administración 112 en el sistema de servidor 110. El servidor de administración 112 autentica al usuario de cliente 120, procesa solicitudes de acceso a escritorios de usuario, y hace valer las políticas 149. Las políticas 149 pueden definir para quién y bajo qué circunstancias puede estar a disposición un escritorio particular. Por ejemplo, las políticas 149 pueden ser particulares para el usuario que realiza la solicitud, aunque también puede
haber políticas globales, políticas basadas en la ubicación del usuario, o grupo o servicios solicitados.
En una modalidad, el servidor de administración 112 es una aplicación de servidor instalada en un sistema de computadora físico separado que se comunica sobre la red 13 con el sistema de cliente 120 y otros componentes del sistema de servidor 110, que, tal como se explicó anteriormente, pueden comprender múltiples máquinas de servidor. En el presente ejemplo, cuando un usuario interactúa con el cliente VDI 125 en el sistema de cliente 120, una solicitud es enviada a través de la red 13 al servidor 110 para un escritorio asociado con el usuario. Tal como se describió anteriormente, el sistema de servidor 110 puede incluir una pluralidad de VM (únicamente se muestra una) cada una correspondiente a uno o más usuarios. El servidor de administración 112 recibe la solicitud del usuario, autentica el usuario y/o la solicitud, inicia o reanuda la VM 118 según sea necesario, y conecta al cliente VDI 125 con el servidor de escritorio remoto 115.
El cliente VDI 122 incluye una capa de presentación 124 que proporciona una interfaz de usuario gráfica que permite al usuario interactuar con el cliente VDI 122 y, por lo tanto, el sistema de servidor 110. En una modalidad, el cliente VDI 122 se ejecuta dentro de o en
conjunto con un navegador de Internet.
En cierto punto, el usuario puede desear la ejecución de una "comprobación de entrada" o "comprobación de salida" de su escritorio tal como se describió anteriormente con referencia a las figuras 3A y 3B. En este caso, el disco virtual o disco delta es copiado ya sea desde el sistema de cliente 120 al sistema de servidor 110 o viceversa (dependiendo si el usuario está realizando una "comprobación de entrada" o "comprobación de salida" del escritorio) . Si el usuario está realizando una comprobación de salida del escritorio para una computadora que no tiene una copia local del disco virtual, entonces el disco delta 144 puede ser fusionado con el disco virtual 142 en el sistema de servidor 110 y todo el disco virtual es copiado al sistema de cliente local 120 del usuario. Debido a que el disco virtual puede ser bastante grande, esta comprobación de salida inicial puede consumir mucho tiempo debido a la gran cantidad de datos y ancho de banda potencialmente limitado. Incluso los discos delta transmitidos durante los procedimientos de comprobación de entrada y comprobación de salida posteriores se pueden volver bastante grandes dependiendo de la actividad del usuario, por ejemplo, una nueva aplicación puede ser instalada o una aplicación existente o componente de
sistema operativo puede ser actualizado o parchado de manera extensa.
En una modalidad, el tiempo requerido para la comprobación de entrada y comprobación de salida de los escritorios de usuario se puede reducir transmitiendo datos entre el sistema de cliente 120 y el sistema de servidor 110 en el fondo, es decir, mientras un usuario está interactuando con una máquina virtual pero sin interferir con la actividad del usuario o la operación de la máquina virtual. Esto se puede referir como sincronización de fondo o transferencia de datos de fondo. La transferencia de datos de fondo puede ocurrir automáticamente en respuesta a un usuario del sistema de cliente 120 a quien simplemente se le otorga acceso a la VM 118. De esta forma, una representación precisa y actualizada del disco virtual 142 puede ser transferida hacia y desde el sistema de cliente 120 sin detractarse de manera notable de una experiencia de computación de usuario. Cuando un usuario comienza a trabajar remotamente desde un sistema de cliente nuevo 110, el disco virtual 142 puede ser transferido en el fondo hasta que una copia completa queda disponible como el disco virtual 132 en el sistema de cliente 120. Posteriormente, los cambios al disco virtual 142 son transmitidos en el fondo al sistema de cliente 120 para comenzar a construir
el disco delta 132. Cuando un usuario decide realizar una comprobación de salida de su escritorio, al menos una gran mayoría de los cambios al disco virtual 142 ya habrán sido transferidos al sistema de cliente 120. De igual forma, cuando un usuario decide realizar una comprobación de entrada de su escritorio, al menos una mayoría de los cambios al disco virtual 132 ya habrán sido transferidos al sistema de servidor 110.
Cuando un usuario decide salirse de su sesión con su escritorio, cualesquiera diferencias que permanezcan entre el disco delta 144 y el disco delta 134 son resueltas mediante la transferencia de los cambios finales. Después de completar la comunicación entre el sistema de cliente 120 y el sistema de servidor 110, los cambios representados en el disco delta 144 pueden ser escritos al disco virtual 142. En una modalidad, esto ocurriría después que la operación de la VM 118 es finalizada para asegurar un estado constante de la VM 118 mientras se actualiza el disco virtual 142. La terminación de la operación de VM 118 puede incluir el apagado de la VM 118, o la suspensión de la operación de la VM 118. El apagado de una VM por lo regular involucra ejecutar un procedimiento de apagado del sistema operativo huésped que corre en la VM. En este procedimiento, los procesos son finalizados y cualesquiera
datos transitorios o que queden en la memoria caché y que actualmente residen en la memoria, se escriben en el disco. Poca o ninguna información de estado está presente cuando una VM es apagada, mientras que una operación de suspensión involucra detener la ejecución y conservar el estado de la máquina virtual escribiendo en el archivo de estado VM 146.
Una vez que el disco delta 144 se fusiona con el disco virtual 142, el disco delta 144 puede ser borrado, marcado para eliminación, o identificado de otra forma como ya no válido. El hecho de hacer que el disco virtual 132 sea consistente con el disco virtual 142 y cualesquiera cambios hechos al disco virtual se refiere como sincronización. Las máquinas virtuales del usuario pueden ser sincronizadas de esta forma después que la ejecución local de la VM 128 ha terminado en la misma manera que se describió anteriormente con referencia a la operación de terminación de la máquina virtual 118 antes descrita.
El servidor de administración 112 puede establecer o ejecutar una política que prohiba la operación de la máquina virtual 118 hasta que se pudiera aseverar que no hay máquinas virtuales 128 que correspondan a la máquina virtual 118 que no estén sincronizadas con la máquina virtual 118. Es decir, si el usuario ha interactuado fuera de línea con su escritorio, ocasionando así la creación de
un disco delta 134, entonces el servidor de administración 112 puede evitar el uso de la VM 118 hasta que los cambios representados por el disco delta 134 son transmitidos al sistema de servidor 110 y fusionados con el disco virtual 142.
Mantener la sincronización de la información correspondiente al escritorio del usuario puede incluir que se implemente la administración de políticas sobre el escritorio del usuario. Ejemplos de políticas 149 incluyen información referente a si o bajo qué condiciones una copia del escritorio del usuario puede ser transferida a un sistema de cliente 120, durante cuánto tiempo el escritorio puede experimentar una comprobación de salida antes de ser experimentar una comprobación de entrada nuevamente en el sistema de servidor 110, restricciones en el uso de la máquina virtual 128/118, y similares. El software de virtualización 127 y/o cliente VDI 122 se pueden configurar para hacer valer las políticas establecidas, por ejemplo, utilizando la codificación para evitar el acceso no autorizado a datos almacenados en el disco virtual 132, y discos delta asociados.
En una modalidad, cuando un usuario inicia el cliente VDI 122, a él o a ella se le -puede presentar una pantalla de registro solicitando información de
autenticación. El cliente VDI entonces comunica la información de autenticación del sistema de servidor 110, por ejemplo, al servidor de escritorio remoto 112. El servidor de escritorio remoto 115 valida la autenticación del usuario y envía una solicitud al servidor de administración 112 para un escritorio existente que corresponde a la información de autenticación del usuario. El servidor de administración 112 recibe la solicitud del servidor de escritorio remoto 115 y compara el identificador de usuario proporcionado con la tabla de mapeo 114, la cual asocia el identificador de usuario con una o más máquinas virtuales en el sistema de servidor 110. Al momento de identificar las máquinas virtuales asociadas con el identificador de usuario, el servidor de administración 112 proporciona información de conexión o de otra forma facilita la conexión entre el cliente VDI 110 y el servidor de escritorio remoto 115 para acceso de usuario remoto al escritorio correspondiente.
En otra modalidad, una solicitud de usuario transmitida al sistema de servidor 110 puede incluir información de estado de escritorio local. La información de estado local también puede ser proporcionada separadamente de la solicitud en respuesta a una consulta del servidor de escritorio remoto 115. La información de
estado local puede incluir información que ayude a identificar diferencias entre el estado del sistema de cliente local del usuario 120 y el sistema de servidor 110. Por ejemplo, la información de estado local puede incluir si el usuario ha tenido o no acceso a su escritorio fuera de linea, ocasionando la creación del disco delta 134. Si un disco delta 134 está presente, entonces el servidor de administración 112 comenzaría la transmisión de la diferencia en el fondo antes de permitir el acceso a la máquina virtual 118. Si se proyecta que el tiempo de transmisión va a ser prolongado, entonces el usuario inmediatamente se puede conectar a la VM local 128 durante la sincronización de fondo. Si no hay disco delta 134, pero está presente un disco delta 144, entonces la conexión a la VM 118 puede ser permitida con sincronización de fondo automática concomitante.
En una modalidad, la transferencia de datos de fondo puede ocurrir en respuesta a una consulta periódica que ocurre automáticamente mientras el sistema de cliente 120 está teniendo acceso al sistema de servidor 110. En otra modalidad, la transferencia de datos de fondo puede ocurrir únicamente al momento de una solicitud por parte del usuario del sistema de cliente 120. Por ejemplo, el usuario puede solicitar que el sistema de cliente local 110
esté sincronizado con el sistema de servidor 110 ya que contempla estar fuera de linea. Para usuarios que raramente están fuera de linea, el uso de esta característica puede reducir significativamente la carga en los recursos de la red. Las políticas 149 pueden requerir, permitir (es decir, permitir que el usuario decida) , o evitar la sincronización continua, periódica o iniciada por el usuario.
En una modalidad representada por medio del ejemplo en la figura 3D, los datos de usuario y datos del sistema son mantenidos en unidades virtuales separadas. En esta modalidad, la cantidad de datos que van a ser transferidos puede ser reducida adicionalmente escribiendo únicamente los datos de usuario en el disco de datos de usuario delta 135 o 145 (dependiendo si el usuario está teniendo acceso a su escritorio de manera local o remota) . Por ejemplo, la información para un escritorio de usuario en el sistema de servidor 110 se puede clasificar como información de sistema almacenada en el disco de sistema 152, el cual puede existir como un archivo de imagen de disco en el disco físico 150, y datos de usuario pueden ser almacenados en el disco de datos de usuario virtual (UDD) 143. De igual forma, los cambios a estos dos discos pueden ser almacenados en dos discos delta separados: disco del sistema delta 144 y disco UDD delta 145".
En una modalidad, la información del sistema incluye la información de aplicación 78 y software del sistema huésped 72 (figura 2) mientras que los datos de usuario incluyen documentos, configuraciones, propiedades especificas del usuario, etc. La mayoría de los sistemas operativos tales como Windows, OSX® y Gnu-Linux incluyen una instalación para mantener los datos de usuario y del sistema en discos separados. Al utilizar la virtualización para producir imágenes delta separadas tanto para datos del sistema como para datos de usuario, el servidor de administración 112 se puede configurar para limitar la transferencia de datos únicamente a información del usuario almacenada en el UDD virtual 143. En este caso, cualesquiera cambios hechos al sistema (y, por lo tanto, escritos en el disco del sistema delta 144) serán descartados y el disco del sistema 152 entonces regresará a un buen estado conocido con cada comprobación de entrada o comprobación de salida del escritorio de usuario, debido a que esa información no es transferida. Además, la cantidad de información que es transferida entre el sistema de cliente 112 y sistema de servidor 110 puede ser reducida únicamente a datos de usuario.
En una modalidad, los cambios al disco del sistema 152, mantenidos en un disco del sistema delta separado 144
durante la operación de la máquina virtual, pueden estar sujetos a cualesquiera políticas que estén vigentes para ese usuario. Es decir, éstos pueden ser descartados o fusionados nuevamente en el disco virtual que contiene los datos del sistema, el sistema operativo, y las aplicaciones. Si el disco del sistema delta 144 es descartado, entonces el disco de sistema 152 puede ser considerado un "disco de sistema persistente" ya que persiste en un buen estado conocido a pesar de cualesquiera cambios que el usuario realiza al sistema durante cualquier sesión de usuario particular.
Modificaciones al disco de sistema pueden ser empaquetadas en el archivo de parche 154, por ejemplo, cuando el sistema operativo o las aplicaciones son actualizados o una nueva versión es emitida por el fabricante. Estos cambios se pueden aplicar al disco del sistema 152 creando un archivo de parche 154 el cual define diferencias entre un disco de sistema actual y un disco de sistema actualizado. El archivo de parche puede ser aplicado a un disco de sistema 152 para crear un disco de sistema parchado, y también puede ser transmitido al sistema de cliente 120, para parchado eficiente del disco del sistema 132 en el sistema del cliente.
En otra modalidad que puede coexistir con otras
modalidades aquí descritas, la información del sistema de archivo es analizada para identificar sectores que están asociados con archivos eliminados. Estos sectores entonces son omitidos cuando se transfiere la imagen del disco delta para reducir adicionalmente la cantidad de datos que están siendo transferidos. El análisis y omisión pueden ocurrir al momento de la transferencia del disco delta, o pueden ser ejecutados como un paso separado en donde el disco delta es previamente procesado antes de la transmisión. En este caso, las copias del disco virtual pueden no ser idénticas, no obstante, son lógicamente equivalentes.
La figura 4 muestra el gráfico de flujo 200 que muestra un procedimiento ejemplar para conectar un usuario a un escritorio remoto con sincronización de fondo automática. El procedimiento comienza tal como lo indica el bloque de inicio 202 y fluye a la operación 204 en donde una solicitud es recibida por el sistema de servidor 120 (figuras 3A-3D) para tener acceso a un escritorio correspondiente a la información de autenticación del usuario del sistema de cliente 120. En respuesta a la recepción de esta solicitud, el procedimiento fluye a la operación 206, en donde el sistema de servidor 110 valida la autenticación del usuario. Si la autenticación es inválida, entonces el procedimiento fluye a la operación
208 en donde el acceso es rechazado y el procedimiento finaliza. Si la autenticación es válida, entonces el procedimiento fluye a la operación 210, en donde el usuario es conectado a un escritorio correspondiente al identificador de usuario. Después de conectar el usuario a su escritorio en la máquina virtual ejecutando en el sistema de servidor, el procedimiento fluye a la operación 212, en donde el sistema de servidor 110 determina si el sistema de cliente 120 tiene una copia correcta del disco virtual correspondiente al escritorio del usuario. En caso de no ser asi, entonces el procedimiento fluye a la operación 214, en donde el disco virtual 142 es transmitido al sistema de cliente 120 en el fondo, es decir, mientras el usuario está teniendo acceso y está interactuando con la máquina virtual 118 en el sistema del servidor. Esta operación continúa hasta que el sistema de cliente 120 ha sido aprovisionado con una copia correcta completa del disco virtual para el escritorio correspondiente.
Si en la operación 212 se determina que el sistema de cliente tiene una copia correcta del disco virtual, entonces el procedimiento fluye a la operación 216. Tal como se mencionó previamente, durante la interacción de usuario con la máquina virtual en el sistema de servidor, los cambios al disco virtual se escriben en el disco delta.
En la operación 216, el sistema de servidor 110 determina si el sistema de cliente tiene una copia actualizada de la imagen del disco delta. En caso de no ser asi, entonces, el procedimiento fluye a la operación 218 en donde el disco delta, en el sistema de servidor es copiado al sistema de cliente del usuario. Este procedimiento ocurre siempre y cuando el usuario está interactuando con la máquina virtual y, por lo tanto, genere cambios al disco virtual. En cierto punto, el usuario puede salirse, apagar o suspender la máquina virtual que se ejecuta en el sistema de servidor, en cuyo punto cualesquiera cambios restantes se copian en el sistema de cliente. Después, el procedimiento finaliza tal como lo indica el bloque realizado 220.
En una modalidad, la sincronización de fondo puede ser iniciada en cualquier momento durante una sesión de comunicación entre el sistema de cliente 120 y el sistema de servidor 110. La sincronización de fondo puede ocurrir automáticamente (por ejemplo, de acuerdo con una política establecida por un administrador) o a petición del usuario.
Por ejemplo, la petición o política puede especificar que el sistema de cliente del usuario sea actualizado periódicamente. En este caso, el sistema de servidor 110 determina si ha transcurrido una cantidad de tiempo especificada desde la actualización más reciente. En
lugar de una medición de tiempo estricta, se pueden implementar otros medios para identificar un tiempo de actualización, por ejemplo, un reloj puede medir la cantidad de tiempo transcurrido, o el sistema puede esperar hasta que el usuario esté inactivo, es decir, no haya interactuado con el sistema durante cierto tiempo. Si el sistema de cliente no es actualizado, y dependiendo del estado actual de los discos virtuales en el sistema de servidor 110, es decir, si un disco delta 144 (figuras 3A-3D) está presente, el sistema 110, en coordinación con el sistema de cliente 120, comienza a transmitir el disco virtual 142 y/o disco delta 144 que contiene modificaciones al disco virtual 142.
En una modalidad, nuevos cambios al disco delta 144 se anexan al disco delta 144 conforme la VM 118 se está ejecutando, y son transmitidos periódicamente al sistema de usuario 120. El sistema de servidor 110 mantiene registro de cuánto del disco delta ha sido transferido al sistema de cliente 120, de manera que solamente la porción anexada es transmitida en cada intervalo de actualización.
En otra modalidad, se cierra el disco delta actual y se crea un nuevo disco delta en cada intervalo de actualización. El disco delta actual, el cual contiene modificaciones a la información contenida en discos delta
previos, es transmitido mientras nuevos cambios son escritos en el nuevo disco delta. De esta forma, una serie de instantáneas encadenadas se van a crear y transmitir al sistema de cliente 120, las cuales después se pueden reensamblar o fusionar en un solo disco delta o directamente en el disco virtual. En una modalidad, cada disco delta es explorado y/o limpiado de malware (códigos maliciosos) tal como virus antes de la transmisión al sistema de cliente 110. La exploración puede ser ejecutada en el fondo en una manera no invasiva.
La figura 5 muestra un gráfico de flujo 250 que representa, a manera de ejemplo, un método para implementar un procedimiento de comprobación de salida del escritorio. El procedimiento comienza en el bloque de inicio 252 y avanza a la operación 254 en donde el sistema de servidor autentica a un usuario que solicita acceso. Dependiendo de la implementación , el usuario puede o no ser conectado inmediatamente a su escritorio remoto en este momento. El procedimiento entonces fluye a la operación 256 en donde el sistema de servidor recibe una petición por parte del usuario para una comprobación de salida del escritorio. El procedimiento entonces fluye a la operación 258 en donde el sistema de servidor determina si la política y los permisos de usuario permiten la comprobación de salida del
escritorio de usuario para el usuario. En caso de no ser asi, el procedimiento fluye a la operación 260 en donde un mensaje es transmitido al sistema de cliente indicando que él o ella no tiene privileqios para la comprobación de salida de su escritorio en un tiempo presente. El procedimiento entonces finaliza tal como lo indica el bloque realizado 274.
Si en la operación 258 se determina que el usuario tiene permiso para realizar una comprobación de salida del escritorio, entonces el procedimiento fluye a la operación 262 para determinar si el escritorio del usuario ya ha experimentado la comprobación de salida, por ejemplo, para un sistema de cliente diferente, y como si no lo fuese desde que experimentó una comprobación de entrada nuevamente. El estado de escritorio de usuario puede ser mantenido, por ejemplo, en una base de datos de usuario o en un campo de estado, campo de metadatos o subdirección en o del archivo que contiene la imagen de disco virtual. Si el escritorio del usuario actualmente experimenta la comprobación de salida, entonces el procedimiento fluye a la operación 260 y el sistema de servidor 120 transmite un mensaje de acceso de comprobación de salida negado al sistema de cliente 12. Esto asegura que únicamente una copia del escritorio del usuario puede experimentar
comprobación de salida en un momento determinado. En una modalidad, se evita que el usuario tenga acceso remotamente a su escritorio cuando el escritorio está en un estado de "comprobación de salida", lo cual tendría como resultado una "ramificación" de la máquina virtual y pérdida de sincronización. Si en. la operación 262 se determina que el escritorio no ha experimentado comprobación de salida actualmente, entonces el procedimiento fluye a la operación 264 en donde, en caso de estar corriendo, la máquina virtual del usuario es finalizada. La finalización de la máquina virtual puede incluir apagarla o suspender la máquina virtual y guardar el estado en el disco.
El procedimiento entonces fluye a la operación 266 en donde el sistema de cliente es consultado para determinar si tiene una .copia actual del disco del sistema y cualesquiera discos delta que pudieran estar presentes en el sistema de servidor. En caso de no ser así, entonces el procedimiento fluye a la operación 268 en donde el disco virtual y las imágenes delta son copiados o actualizados según sea necesario, y entonces el procedimiento fluye a la operación 270. Si en la operación 266 se determina que el sistema de cliente ya tiene copias actuales del disco virtual y cualesquiera discos delta, entonces el procedimiento fluye directamente a la operación 270.
En la operación 270, el usuario o los metadatos son actualizados para reflejar el nuevo estado de "comprobación de salida" del escritorio del usuario. El procedimiento entonces fluye a la operación 272 en donde el usuario tiene permitido el acceso a su escritorio corriendo la máquina virtual local en el sistema de cliente local. El procedimiento entonces finaliza tal como lo indica el bloque realizado 274.
En una modalidad, a un usuario se le puede permitir el acceso a su escritorio remotamente, incluso si experimenta comprobación de salida para un sistema de cliente. Aunque el escritorio puede estar en un estado de comprobación de salida, esto no prohibe que un usuario del sistema de cliente 120 utilice recursos del sistema de servidor 110 para tener acceso remotamente a su escritorio. Por ejemplo, el sistema de cliente 120 puede experimentar una falla de sistema, tal como un mal funcionamiento del disco duro o puede estar infectado por un virus /malware . En este caso, el usuario puede elegir descartar el acceso a la máquina virtual local de la máquina virtual correspondiente en el sistema de servidor 110 a pesar de no haber realizado una comprobación de entrada del escritorio para el sistema de servidor. Alternativamente, el usuario puede tener acceso al escritorio en el sistema de servidor con el
entendimiento de que cualesquiera cambios hechos al sistema de servidor se perderán. Por ejemplo, si un usuario no puede tener acceso a su sistema de cliente, es decir, está lejos de su computadora pero necesita acceso a su escritorio, por ejemplo, para leer un archivo o tener acceso al correo electrónico o un sitio de intranet corporativo, el usuario podría seguir teniendo acceso a su escritorio de manera remota, aunque en una versión no actualizada, y sin alguna persistencia de datos recientemente guardados.
En otra mejora, el sistema automáticamente puede, o al momento de la petición del usuario, ejecutar una exploración de virus/malware en la información contenida en el almacenamiento de datos 140, es decir, los discos delta 144 o 145 (figuras 3A-3D) . Los resultados de la exploración de virus/malware se pueden registrar en el sistema y/o proporcionar al sistema de cliente 120 o almacenar en un archivo de resultados (que no se muestra) . De manera similar, un usuario del sistema de cliente 120 puede utilizar el sistema de servidor 110 para ejecutar una exploración de virus/malware del disco delta local 134 produciendo una copia del disco delta local en el almacenamiento de datos 140. Después que se ha completado la exploración de virus/malware, la copia del disco delta
local puede ser eliminada, o fusionada en el disco virtual 142.
Las diversas modalidades aquí descritas pueden emplear diversas operaciones implementadas por computadora que involucren datos almacenados en sistemas de computadora. Por ejemplo, estas operaciones pueden requerir la manipulación física de cantidades físicas, generalmente, aunque de manera no necesaria, estas cantidades pueden asumir la forma de señales eléctricas o magnéticas, en donde éstas o representaciones de las mismas tienen la capacidad para ser almacenadas, transferidas, combinadas, comparadas o de otra forma manipuladas. Además, dichas manipulaciones con frecuencia se refieren en términos, tales como, producir, identificar, determinar o comparar. Cualesquiera operaciones aquí descritas que formen parte de una o más modalidades de la invención pueden ser operaciones de máquina útiles. Además, una o más modalidades de la invención también se refieren a un dispositivo o un aparato para ejecutar estas operaciones. El aparato puede ser especialmente construido para propósitos específicos requeridos, o puede ser una computadora de propósito general selectivamente activada o configurada por un programa de computadora almacenado en la computadora. En particular, se pueden utilizar diversas
máquinas de propósito general con programas de computadora descritos de acuerdo con las presentes enseñanzas, o puede ser más conveniente construir un aparato más especializado para ejecutar las operaciones requeridas.
Las diversas modalidades aquí descritas se pueden practicar con otras configuraciones de sistema de computadora, incluyendo dispositivos manuales, sistemas de microprocesador, circuitos electrónicos del consumidor programables o basados en microprocesador, minicomputadoras , computadoras principales, y similares.
Una o más modalidades de la presente invención se pueden implementar como uno o más programas de computadora o como uno o más módulos de programa de computadora incorporados en uno o más medios legibles por computadora. El término medio legible por computadora se refiere a cualquier sistema de almacenamiento de datos que puede almacenar datos los cuales entonces puedan ser ingresados en un sistema de computadora, el medio legible por computadora se puede basar en cualquier tecnología existente o posteriormente desarrollada para incorporar programas de computadora en una manera que les permita ser leídos por una computadora. Ejemplos de un medio legible por computadora incluyen un disco duro, almacenamiento anexado por red (NA'S), memoria de sólo lectura, memoria de
acceso aleatorio (por ejemplo, un dispositivo de memoria rápida), un CD (Discos Compactos) -CD-ROM, un CD-R, o un CD-RW, un DVD (Disco Versátil Digital), una cinta magnética y otros sistemas de almacenamiento de datos ópticos y no ópticos. El medio legible por computadora también se puede distribuir sobre un sistema de computadora acoplado a la red de manera que el código legible por computadora es almacenado y ejecutado en una forma distribuida.
Aunque una o más modalidades de la presente invención se han descrito con cierto detalle por claridad de entendimiento, resultará aparente que se pueden realizar algunos cambios y modificaciones dentro del alcance de las reivindicaciones. Por consiguiente, las modalidades descritas se considerarán como ilustrativas y no restrictivas, y el alcance de las reivindicaciones no queda limitado a los detalles aquí proporcionados, sino que puede ser modificado dentro del alcance y equivalentes de las reivindicaciones. En las reivindicaciones, los elementos y/o pasos no implican algún orden de operación particular, a menos que explícitamente se establezca en las reivindicaciones .
Además, aunque los métodos de virtualización descritos generalmente han asumido que las máquinas virtuales presentan interfaces consistentes con un sistema
de hardware particular, aquellos expertos en la técnica reconocerán que los métodos descritos pueden ser utilizados en conjunto con virtuali zaciones que no corresponden directamente con algún sistema de hardware particular. Los sistemas de virtualización de acuerdo con las diversas modalidades, implementadas como modalidades alojadas, modalidades no alojadas o como modalidades que tienden a confundir distinciones entre los dos, están todas contempladas. Además, diversas operaciones de virtualización pueden ser total o parcialmente implementadas en hardware. Por ejemplo, una implementación de hardware puede emplear una tabla de búsqueda para modificación de las solicitudes de acceso de almacenamiento a datos que no son del disco seguros.
Son posibles muchas variaciones, modificaciones, adiciones y mejoras sin importar el grado de virtualización. El software de virtualización entonces puede incluir componentes de un huésped, consola o sistema operativo huésped que ejecute funciones de virtualización. Se pueden proporcionar varios casos para componentes, operaciones o estructuras aquí descritas como una sola instancia. Finalmente, los limites entre diversos componentes, operaciones y almacenamientos de datos son de cierta forma arbitrarios, y operaciones particulares se
ilustran en el contexto de configuraciones ilustrativas especificas. Se tienen contempladas otras asignaciones de funcionalidad y pueden caer dentro del alcance de la invención. En general, estructuras y funcionalidad presentada como componentes separados en configuraciones ejemplares se pueden implementar como una estructura o componente combinado. De manera similar, las estructuras y funcionalidad presentadas como un solo componente se pueden implementar como componentes separados. Éstas y otras variaciones, modificaciones, adiciones y mejoras pueden caer dentro del alcance de las reivindicaciones anexas.
Claims (26)
1.- Un método para extender la arquitectura de máquinas virtuales con escritorio basado en servidor a una máquina de cliente, dicho método comprende: tener acceso de forma remota a un escritorio de usuario a través de una red de comunicaciones, el acceso remoto comprende transmitir y recibir entrada/salida de usuario entre un sistema de cliente y un sistema de servidor, el sistema de servidor corre una instancia de servidor de una máquina virtual que proporciona el escritorio de usuario, una instancia de servidor de la máquina virtual se ejecuta por medio de software de virtualización en un sistema de computadora físico que está en comunicación con un sistema de almacenamiento de datos; el software de virtualización dirige las solicitudes de lectura de disco desde la instancia de servidor de la máquina virtual a un disco virtual que comprende una imagen de disco virtual contenida en uno o más archivos en el sistema de almacenamiento de datos, el software de virtuali zación dirige las solicitudes de escritura del disco desde la instancia de servidor de la máquina virtual a un disco delta, el disco delta comprende modificaciones al disco virtual, el sistema de cliente tiene un cliente de escritorio remoto para recibir la entrada/salida de usuario y enviar la entrada/salida de usuario a una interfaz de usuario en el sistema de cliente; crear una copia local del disco virtual en el sistema de cliente; enviar una solicitud de comprobación de salida desde el sistema de cliente al sistema de servidor para tener acceso localmente al escritorio de usuario; terminar la instancia de servidor de la máquina virtual en caso que la instancia de servidor de la máquina virtual se esté ejecutando actualmente; crear una copia del disco delta en el sistema de cliente; y ejecutar una instancia de cliente de la máquina virtual en el sistema de cliente utilizando el software de virtuali zación en el sistema de cliente para dirigir las solicitudes de lectura de disco desde la instancia de cliente de la máquina virtual al menos a la copia local del disco virtual y dirigir la entrada/salida del usuario desdé la instancia de cliente de la máquina virtual a la interfaz de usuario en el sistema de cliente.
2. - El método de conformidad con la reivindicación 1, caracterizado porque la creación de la copia local del disco virtual es ejecutada mientras la instancia de servidor de la máquina virtual está corriendo.
3. - El método de conformidad con la reivindicación 1, que además comprende, recibir en el sistema de cliente modificaciones al disco virtual almacenadas en el disco delta en el sistema de servidor mientras la instancia de servidor de la máquina virtual está corriendo.
4. - El método de conformidad con la reivindicación 1, que además comprende fusionar la copia del disco delta con la copia local del disco virtual antes de ejecutar la instancia de cliente de la máquina virtual.
5. - El método de conformidad con la reivindicación 1, que además comprende: dirigir los escritos del disco desde la instancia de cliente de la máquina virtual a un disco delta local; enviar una solicitud de comprobación de entrada desde el sistema de cliente al sistema de servidor para tener acceso remotamente al escritorio de usuario; terminar la instancia de cliente de la máquina virtual en caso que la instancia de cliente de la máquina virtual esté corriendo; transmitir una copia del disco delta local al sistema de servidor; y tener acceso remotamente a la instancia de servidor de la máquina virtual.
6. - El método de conformidad con la reivindicación 5, que además comprende, en el sistema de servidor, fusionar el disco delta y el disco delta local con la máquina virtual antes de encender la instancia de servidor de la máquina virtual después de transmitir la copia del disco delta local al sistema de servidor.
7. - El método de conformidad con la reivindicación 5, que además comprende, evitar el acceso a la instancia de servidor de la máquina virtual después que la ejecución de la instancia de cliente de la máquina virtual es iniciada y antes de transmitir la copia del disco delta local al sistema de servidor.
8. - El método de conformidad con la reivindicación 1, que además comprende, durante la ejecución de la instancia de servidor de la máquina virtual, crear periódicamente un disco delta adicional y transmitir el disco delta adicional al sistema de cliente, cada uno de los discos delta adicionales es una parte de una cadena de discos delta.
9. - El método de conformidad con la reivindicación 1, que además comprende, en el sistema de servidor, mantener un estado de escritorio del escritorio de usuario como habiendo experimentado la comprobación de entrada o comprobación de salida, en donde el estado del escritorio experimenta comprobación de entrada cuando el escritorio de usuario fue accesado por última vez remotamente utilizando la instancia de servidor de la máquina virtual, y el estado del escritorio experimenta comprobación de salida cuando el escritorio de usuario fue accesado por última vez localmente utilizando la instancia de cliente de la máquina virtual; el sistema de servidor asume que el estado del escritorio experimenta comprobación de salida después de crear la copia del disco delta en el sistema de cliente.
10.- El método de conformidad con la reivindicación 1, caracterizado porque: el software de virtualización emula un disco de datos de usuario y un disco del sistema, el disco de datos de usuario y el disco de sistema son accesibles a software del sistema huésped que se ejecuta en la máquina virtual, el software del sistema huésped almacena datos de usuario en el disco de datos de usuario y el sistema operativo y archivos de aplicaciones en el disco del sistema, los datos de usuario incluyen documentos del usuario y configuraciones; el disco virtual en el sistema de almacenamiento de datos es un disco de datos de usuario virtual y el disco delta es un disco de datos de usuario delta; y el acceso remoto del escritorio de usuario además comprende : dirigir las solicitudes de lectura de disco de datos de usuario al disco de datos de usuario virtual y las solicitudes de lectura del disco del sistema a un disco de sistema virtual, el disco de sistema virtual es una imagen del disco almacenada en uno o más archivos en el sistema de almacenamiento de datos u otro sistema de almacenamiento de datos; y dirigir las solicitudes de escritura del disco del sistema a un disco del sistema delta y dirigir las solicitudes de escritura del disco de datos de usuario, al disco de datos de usuario delta, el disco del sistema delta contiene modificaciones al disco de sistema virtual y el disco de datos de usuario delta contiene modificaciones al disco de datos de usuario virtual.
11. - El método de conformidad con la reivindicación 10, que además comprende desechar el disco del sistema delta cuando se crea la copia del disco delta.
12. - El método de conformidad con la reivindicación 10, que además comprende crear una copia del disco del sistema delta en el sistema de cliente cuando se realiza la creación de la copia del disco delta.
13. - El método de conformidad con la reivindicación 1 que además comprende explorar el disco delta en busca de malware en el sistema de servidor antes de ejecutar el tipo de cliente de la máquina virtual.
14. - Un medio legible por máquina tangible para extender la arquitectura de máquinas virtuales con escritorio basado en servidor a una máquina de cliente, el medio legible por máquina tangible incorpora instrucciones de programas de computadora que implementan un método en un sistema de cliente, dicho método comprende: tener acceso de forma remota a un escritorio de usuario a travos de una red de comunicaciones, el acceso remoto comprende transmitir y recibir entrada/salida de usuario entre un sistema de cliente y un sistema de servidor, el sistema de servidor corre una instancia de servidor de una máquina virtual que proporciona el escritorio de usuario, una instancia de servidor de la máquina virtual se ejecuta por medio de software de virtualización en un sistema de computadora físico que está en comunicación con un sistema de almacenamiento de datos; el software de virtualización dirige las solicitudes de lectura de disco desde la instancia de servidor de la máquina virtual a un disco virtual que comprende una imagen de disco virtual contenida en uno o más archivos en el sistema de almacenamiento de datos, el software de virtualización dirige las solicitudes de escritura del disco desde la instancia de servidor de la máquina virtual a un disco delta, el disco delta comprende modificaciones al disco virtual, el sistema de cliente tiene un cliente de escritorio remoto para recibir la entrada/salida de usuario y enviar la entrada/salida de usuario a una interfaz de usuario en el sistema de cliente; crear una copia local del disco virtual en el sistema de cliente; enviar una solicitud de comprobación de salida desde el sistema de cliente al sistema de servidor para tener acceso localmente al escritorio de usuario, la. solicitud de comprobación de salida ocasiona que la instancia de servidor de la máquina virtual sea terminada en caso que la instancia de servidor de la máquina virtual se esté ejecutando actualmente; terminar la instancia de servidor de la máquina virtual en caso que la instancia de servidor de la máquina virtual se esté ejecutando actualmente; crear una copia del disco delta en el sistema de cliente; y ejecutar una instancia de cliente de la máquina virtual en el sistema de cliente utilizando el software de virtualización en el sistema de cliente para dirigir las solicitudes de lectura de disco desde la instancia de cliente de la máquina virtual al menos a la copia local del disco virtual y dirigir la entrada/salida del usuario desde la instancia de cliente de la máquina virtual a la interfaz de usuario en el sistema de cliente.
15. - El medio de conformidad con la reivindicación 14, caracterizado porque la creación de la copia local del disco virtual es ejecutada mientras la instancia de servidor de la máquina virtual está corriendo.
16. - El medio de conformidad con la reivindicación 14, caracterizado porque el método además comprende recibir en el sistema de cliente modificaciones al disco virtual almacenadas en el disco delta en el sistema de servidor mientras la instancia de servidor de la máquina virtual está corriendo.
17. - El medio de conformidad con la reivindicación 14, caracterizado porque el método además comprende fusionar la copia del disco delta con la copia local del disco virtual antes de ejecutar la instancia de cliente de la máquina virtual.
18. - El medio de conformidad con la reivindicación 14, caracterizado porque el método además comprende: dirigir los escritos del disco desde la instancia de cliente de la máquina virtual a un disco delta local; enviar una solicitud de comprobación de entrada desde el sistema de cliente al sistema de servidor para tener acceso remotamente al escritorio de usuario; terminar la instancia de cliente de la máquina virtual en caso que la instancia de cliente de la máquina virtual esté corriendo; transmitir una copia del disco delta local al sistema de servidor; y tener acceso remotamente a la instancia de servidor de la máquina virtual después de la transmisión de la copia del disco delta local al sistema de servidor.
19. - El medio de conformidad con la reivindicación 18, caracterizado porque el disco delta y el disco delta local son fusionados con el disco virtual en el sistema de servidor antes de encender la instancia de servidor de la máquina virtual después de transmitir la copia del disco delta local al sistema de servidor.
20. - El medio de conformidad con la reivindicación 18, caracterizado porque el método además comprende evitar el acceso a la instancia de servidor de la máquina virtual después que la ejecución de la instancia de cliente de la máquina virtual es iniciada y antes de transmitir la copia del disco delta local al sistema de servidor.
21. - El medio de conformidad con la reivindicación 14, caracterizado porque el método además comprende: durante la ejecución de la instancia de servidor de la máquina virtual, crear periódicamente un disco delta adicional y transmitir el disco delta adicional al sistema de cliente, cada uno de los discos delta adicionales es una parte de una cadena de discos delta.
22. - El medio de conformidad con la reivindicación 14, caracterizado porque: el software de virtualización emula una unidad de disco de datos de usuario y una unidad de disco del sistema, la unidad de disco de datos de usuario y la unidad de disco de sistema son accesibles a software del sistema huésped que se ejecuta en la máquina virtual, el software del sistema huésped almacena datos de usuario en la unidad de disco de datos de usuario y el sistema operativo y archivos de aplicaciones en la unidad de disco del sistema, los datos de usuario incluyen documentos específicos del usuario y configuraciones; el disco virtual en el sistema de almacenamiento de datos es un disco de datos de usuario virtual y el disco delta es un disco de datos de usuario delta; y el acceso remoto del escritorio de usuario además comprende : dirigir las solicitudes de lectura de disco de datos de usuario al disco de datos de usuario virtual y las solicitudes de lectura del disco del sistema a un disco de sistema virtual, el disco de sistema virtual es una imagen del disco almacenada en uno o más archivos en el sistema de almacenamiento de datos u otro sistema de almacenamiento de datos; y dirigir las solicitudes de escritura del disco del sistema a un disco del sistema delta y dirigir las solicitudes de escritura del disco de datos de usuario, al disco de datos de usuario delta, el disco del sistema delta contiene modificaciones al disco de sistema virtual y el disco de datos de usuario delta contiene modificaciones al disco de datos de usuario virtual; y en donde la creación de la copia del disco delta en el sistema de cliente comprende descargar desde el sistema de servidor cambios a la unidad de disco de datos de usuario y no descargar cambios a la unidad de disco del sistema .
23.- El medio de conformidad con la reivindicación 22, caracterizado porque el sistema de servidor desecha el disco del sistema delta cuando se crea la copia del disco delta .
24. - El medio de conformidad con la reivindicación 22, caracterizado porque el método además comprende crear una copia del disco del sistema delta en el sistema de cliente cuando se realiza la creación de la copia del disco delta .
25. - El medio de conformidad con la reivindicación 14 caracterizado porque el sistema de servidor explora el disco delta en busca de malware en el sistema de servidor antes de ejecutar el tipo de cliente de la máquina virtual.
26. - Un medio legible por máquina tangible para extender la arquitectura de máquinas virtuales con escritorio basado en servidor a una máquina de cliente, el medio legible por máquina tangible incorpora instrucciones de programas de computadora que implementan un método en un sistema de servidor, dicho método comprende: correr una instancia de servidor de una máquina virtual que proporciona un escritorio de usuario, la instancia de servidor de la máquina virtual se ejecuta por medio de software de virtualización en una computadora física del sistema de servidor, la computadora física está en comunicación con un sistema de almacenamiento de datos; el software de vitualización dirige las solicitudes de lectura de disco desde la instancia de servidor de la máquina virtual a un disco virtual que comprende una imagen de disco virtual contenida en uno o más archivos en el sistema de almacenamiento de datos, el software de virtualización dirige las solicitudes de escritura del disco desde la instancia de servidor de la máquina virtual a un disco delta, el disco delta comprende un archivo que contiene modificaciones al disco virtual, el sistema de cliente tiene un cliente de escritorio remoto para recibir la entrada/salida de usuario y enviar la entrada/salida de usuario a una interfaz de usuario en el sistema de cliente; transmitir y recibir entrada/salida de usuario entre un sistema de cliente y un sistema de servidor; enviar una copia del disco virtual al sistema de cliente ; recibir una solicitud de comprobación de salida desde el sistema de cliente; en respuesta a la solicitud de comprobación de salida, terminar la instancia de servidor de la máquina virtual en caso que la instancia de servidor de la máquina virtual actualmente se esté ejecutando, enviar una copia del disco delta al sistema de cliente, de forma que el usuario pueda tener acceso al escritorio utilizando una instancia de cliente de la máquina virtual ejecutando en el sistema de cliente; y mantener un registro de un estado del escritorio en el escritorio del usuario como habiendo experimentado comprobación de entrada o comprobación de salida, en donde el estado del escritorio experimenta comprobación de entrada cuando el escritorio del usuario fue accesado por última vez remotamente utilizando la instancia de servidor de la máquina virtual, y el estado del escritorio experimenta comprobación de salida cuando el escritorio del usuario fue accesado por última vez localmente utilizando la instancia de cliente de la máquina virtual; el sistema de servidor que asume el estado del escritorio experimenta comprobación de salida después de enviar la copia del disco delta al sistema de cliente.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US3161308P | 2008-02-26 | 2008-02-26 | |
| PCT/US2009/034731 WO2009108579A2 (en) | 2008-02-26 | 2009-02-20 | Extending server-based desktop virtual machine architecture to client machines |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| MX2010009362A true MX2010009362A (es) | 2010-12-06 |
Family
ID=40999459
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| MX2010009362A MX2010009362A (es) | 2008-02-26 | 2009-02-20 | Extension de arquitectura de maquina virtual de escritorio basada en servidor para maquinas de cliente. |
Country Status (10)
| Country | Link |
|---|---|
| US (6) | US8640126B2 (es) |
| EP (1) | EP2248041B1 (es) |
| JP (1) | JP5198584B2 (es) |
| KR (1) | KR101178752B1 (es) |
| CN (1) | CN101971162B (es) |
| AU (1) | AU2009219470B2 (es) |
| CA (1) | CA2713876C (es) |
| MX (1) | MX2010009362A (es) |
| RU (1) | RU2432605C1 (es) |
| WO (1) | WO2009108579A2 (es) |
Families Citing this family (218)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7617501B2 (en) | 2004-07-09 | 2009-11-10 | Quest Software, Inc. | Apparatus, system, and method for managing policies on a computer having a foreign operating system |
| US7904949B2 (en) | 2005-12-19 | 2011-03-08 | Quest Software, Inc. | Apparatus, systems and methods to provide authentication services to a legacy application |
| US8087075B2 (en) | 2006-02-13 | 2011-12-27 | Quest Software, Inc. | Disconnected credential validation using pre-fetched service tickets |
| US8429712B2 (en) | 2006-06-08 | 2013-04-23 | Quest Software, Inc. | Centralized user authentication system apparatus and method |
| US8086710B2 (en) | 2006-10-30 | 2011-12-27 | Quest Software, Inc. | Identity migration apparatus and method |
| WO2009085977A2 (en) * | 2007-12-20 | 2009-07-09 | Virtual Computer, Inc. | Virtual computing management systems and methods |
| JP5198584B2 (ja) | 2008-02-26 | 2013-05-15 | ヴイエムウェア インク | 拡張されたサーバーベースのクライアント用デスクトップ仮想マシン構成 |
| US8560593B2 (en) | 2008-03-27 | 2013-10-15 | Dell Software Inc. | System for provisioning, allocating, and managing virtual and physical desktop computers in a network computing environment |
| US8572607B2 (en) * | 2008-05-19 | 2013-10-29 | Novell, Inc. | System and method for performing designated service image processing functions in a service image warehouse |
| WO2009143124A1 (en) * | 2008-05-20 | 2009-11-26 | Citrix Systems, Inc. | Methods and systems for patching multiple disk images derived from a common base disk image |
| US8255806B2 (en) | 2008-09-15 | 2012-08-28 | Vmware, Inc. | Unified secure virtual machine player and remote desktop client |
| CN101727331B (zh) * | 2008-10-24 | 2013-03-20 | 国际商业机器公司 | 升级活动虚拟机的客户操作系统的方法和设备 |
| EP2356563B1 (en) * | 2008-10-24 | 2018-06-27 | Citrix Systems, Inc. | Methods and systems for providing a modifiable machine base image with a personalized desktop environment in a combined computing environment |
| US8707299B1 (en) * | 2008-11-14 | 2014-04-22 | Symantec Corporation | Method and apparatus for preserving virtual desktops for e-discovery through an agent-less solution |
| US9674562B1 (en) | 2008-12-18 | 2017-06-06 | Vmware, Inc. | Quality evaluation of multimedia delivery in cloud environments |
| US9214004B2 (en) | 2008-12-18 | 2015-12-15 | Vmware, Inc. | Watermarking and scalability techniques for a virtual desktop planning tool |
| US8788079B2 (en) | 2010-11-09 | 2014-07-22 | Vmware, Inc. | Monitoring audio fidelity and audio-video synchronization |
| US9286088B2 (en) * | 2009-03-09 | 2016-03-15 | Microsoft Technology Licensing, Llc | User interface for interaction with virtual machine |
| US9177145B2 (en) * | 2009-03-24 | 2015-11-03 | Sophos Limited | Modified file tracking on virtual machines |
| JP5360199B2 (ja) * | 2009-03-31 | 2013-12-04 | 富士通株式会社 | 仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法 |
| EP2425606B1 (en) * | 2009-05-02 | 2017-11-15 | Citrix Systems, Inc. | Methods and systems for providing a consistent profile to overlapping user sessions |
| US8738781B2 (en) * | 2009-06-22 | 2014-05-27 | Red Hat Israel, Ltd. | Launching a virtual machine associated with a client during startup |
| US8281018B2 (en) * | 2009-06-22 | 2012-10-02 | Red Hat Israel, Ltd. | Method for automatically providing a client with access to an associated virtual machine |
| US8341213B2 (en) * | 2009-06-22 | 2012-12-25 | Red Hat Israel, Ltd. | Method for improving boot time of a client having a virtualized operating environment |
| US8135818B2 (en) * | 2009-06-22 | 2012-03-13 | Red Hat Israel, Ltd. | Automatic virtual machine migration in mixed SBC/CBC environment |
| US8255984B1 (en) | 2009-07-01 | 2012-08-28 | Quest Software, Inc. | Single sign-on system for shared resource environments |
| WO2011034548A1 (en) * | 2009-09-21 | 2011-03-24 | Hewlett-Packard Development Company, L.P. | System including a virtual disk |
| US9529689B2 (en) * | 2009-11-30 | 2016-12-27 | Red Hat, Inc. | Monitoring cloud computing environments |
| US20110131330A1 (en) * | 2009-12-02 | 2011-06-02 | International Business Machines Corporation | Collocating desktop virtual machines to proximity of the user |
| WO2011072142A2 (en) * | 2009-12-09 | 2011-06-16 | Citrix Systems, Inc. | Methods and systems for displaying, on a first machine, data associated with a drive of a second machine, without mapping the drive |
| US10146566B2 (en) * | 2009-12-21 | 2018-12-04 | Microsoft Technology Licensing, Llc | Enabling virtual desktop connections to remote clients |
| JP5499688B2 (ja) * | 2009-12-23 | 2014-05-21 | 富士通株式会社 | 計算機システム、情報処理装置、仮想計算機運用方法及びプログラム |
| US8887172B2 (en) * | 2009-12-31 | 2014-11-11 | Microsoft Corporation | Virtualized management of remote presentation sessions using virtual machines having load above or below thresholds |
| US9009219B2 (en) | 2010-01-27 | 2015-04-14 | Vmware, Inc. | Native viewer use for service results from a remote desktop |
| US8392838B2 (en) * | 2010-01-27 | 2013-03-05 | Vmware, Inc. | Accessing virtual disk content of a virtual machine using a control virtual machine |
| US9274821B2 (en) | 2010-01-27 | 2016-03-01 | Vmware, Inc. | Independent access to virtual machine desktop content |
| US9477531B2 (en) * | 2010-01-27 | 2016-10-25 | Vmware, Inc. | Accessing virtual disk content of a virtual machine without running a virtual desktop |
| CN101741866B (zh) * | 2010-02-01 | 2012-12-12 | 浪潮(北京)电子信息产业有限公司 | 一种在线存储系统及方法 |
| US8316120B2 (en) * | 2010-02-02 | 2012-11-20 | Microsoft Corporation | Applicability detection using third party target state |
| US8549272B2 (en) * | 2010-02-10 | 2013-10-01 | Dell Products L.P. | Information handling system image management deployment of virtual machine images to physical information handling systems |
| US9703586B2 (en) | 2010-02-17 | 2017-07-11 | Microsoft Technology Licensing, Llc | Distribution control and tracking mechanism of virtual machine appliances |
| JP5533005B2 (ja) * | 2010-02-17 | 2014-06-25 | 富士通株式会社 | 情報処理装置、計算機システム及びプログラム |
| JP5493976B2 (ja) * | 2010-02-18 | 2014-05-14 | 富士通株式会社 | 情報処理装置、計算機システム及びプログラム |
| US20110225513A1 (en) * | 2010-03-09 | 2011-09-15 | Avistar Communications Corporation | Scalable high-performance interactive real-time media architectures for virtual desktop environments |
| CN102196003B (zh) * | 2010-03-12 | 2015-09-23 | 新奥特(北京)视频技术有限公司 | 一种监控系统的远程控制方法及装置 |
| US8898668B1 (en) * | 2010-03-31 | 2014-11-25 | Netapp, Inc. | Redeploying baseline virtual machine to update a child virtual machine by creating and swapping a virtual disk comprising a clone of the baseline virtual machine |
| US8453145B1 (en) | 2010-05-06 | 2013-05-28 | Quest Software, Inc. | Systems and methods for instant provisioning of virtual machine files |
| US9311509B2 (en) * | 2010-05-09 | 2016-04-12 | Citrix Systems, Inc. | Creation and delivery of encrypted virtual disks |
| US8893004B2 (en) | 2010-05-12 | 2014-11-18 | International Business Machines Corporation | User interface proxy method and system |
| US9547562B1 (en) | 2010-08-11 | 2017-01-17 | Dell Software Inc. | Boot restore system for rapidly restoring virtual machine backups |
| JP4922443B2 (ja) * | 2010-08-26 | 2012-04-25 | 株式会社東芝 | コンピュータシステム、情報処理装置およびセキュリティ保護方法 |
| TWI505189B (zh) * | 2010-08-27 | 2015-10-21 | Ibm | 用於虛擬裝置之自動升級之方法、電腦程式及系統 |
| CN102419753B (zh) * | 2010-09-28 | 2014-02-12 | 联想(北京)有限公司 | 信息处理设备、信息处理方法和信息处理系统 |
| CN102447723B (zh) * | 2010-10-12 | 2015-09-09 | 运软网络科技(上海)有限公司 | 客户端虚拟化架构 |
| US8751656B2 (en) * | 2010-10-20 | 2014-06-10 | Microsoft Corporation | Machine manager for deploying and managing machines |
| US8417737B2 (en) | 2010-10-20 | 2013-04-09 | Microsoft Corporation | Online database availability during upgrade |
| US9075661B2 (en) | 2010-10-20 | 2015-07-07 | Microsoft Technology Licensing, Llc | Placing objects on hosts using hard and soft constraints |
| US8799453B2 (en) | 2010-10-20 | 2014-08-05 | Microsoft Corporation | Managing networks and machines for an online service |
| US8386501B2 (en) | 2010-10-20 | 2013-02-26 | Microsoft Corporation | Dynamically splitting multi-tenant databases |
| US8756696B1 (en) | 2010-10-30 | 2014-06-17 | Sra International, Inc. | System and method for providing a virtualized secure data containment service with a networked environment |
| US9336117B2 (en) | 2010-11-09 | 2016-05-10 | Vmware, Inc. | Remote display performance measurement triggered by application display upgrade |
| US8850550B2 (en) | 2010-11-23 | 2014-09-30 | Microsoft Corporation | Using cached security tokens in an online service |
| CN102487380B (zh) * | 2010-12-01 | 2016-09-07 | 中兴通讯股份有限公司 | 桌面虚拟化终端托管方法及系统 |
| US9721030B2 (en) | 2010-12-09 | 2017-08-01 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
| KR20120072241A (ko) * | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 클라우드 컴퓨팅 환경에서의 클라우드 간 개인 가상 머신 이동 시스템 및 그 방법 |
| US20120216052A1 (en) * | 2011-01-11 | 2012-08-23 | Safenet, Inc. | Efficient volume encryption |
| US9967318B2 (en) | 2011-02-09 | 2018-05-08 | Cisco Technology, Inc. | Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment |
| US8862933B2 (en) | 2011-02-09 | 2014-10-14 | Cliqr Technologies, Inc. | Apparatus, systems and methods for deployment and management of distributed computing systems and applications |
| US10003672B2 (en) * | 2011-02-09 | 2018-06-19 | Cisco Technology, Inc. | Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures |
| US10678602B2 (en) | 2011-02-09 | 2020-06-09 | Cisco Technology, Inc. | Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures |
| US10225335B2 (en) | 2011-02-09 | 2019-03-05 | Cisco Technology, Inc. | Apparatus, systems and methods for container based service deployment |
| US8856486B2 (en) * | 2011-02-23 | 2014-10-07 | Citrix Systems, Inc. | Deploying a copy of a disk image from source storage to target storage |
| US9542215B2 (en) * | 2011-09-30 | 2017-01-10 | V3 Systems, Inc. | Migrating virtual machines from a source physical support environment to a target physical support environment using master image and user delta collections |
| US8566899B2 (en) * | 2011-03-16 | 2013-10-22 | Symantec Corporation | Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure |
| US8959569B2 (en) * | 2011-03-18 | 2015-02-17 | Juniper Networks, Inc. | Security enforcement in virtualized systems |
| FR2973185B1 (fr) * | 2011-03-22 | 2013-03-29 | Sagem Defense Securite | Procede et dispositif de connexion a un reseau de haute securite |
| JP5772127B2 (ja) * | 2011-03-25 | 2015-09-02 | 富士通株式会社 | 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム |
| US8990405B2 (en) | 2011-04-01 | 2015-03-24 | Hewlett-Packard Development Company, L.P. | Methods, systems and articles of manufacture to resume a remote desktop session |
| US8966581B1 (en) | 2011-04-07 | 2015-02-24 | Vmware, Inc. | Decrypting an encrypted virtual machine using asymmetric key encryption |
| CN102760081B (zh) * | 2011-04-29 | 2016-01-27 | 国际商业机器公司 | 虚拟机资源分配的方法和装置 |
| US9176744B2 (en) * | 2011-05-20 | 2015-11-03 | Citrix Systems, Inc. | Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot |
| US8719522B1 (en) * | 2011-06-27 | 2014-05-06 | Emc Corporation | Virtual desktop backup and restore |
| KR101507919B1 (ko) | 2011-07-01 | 2015-04-07 | 한국전자통신연구원 | 가상 데스크탑 서비스를 위한 방법 및 장치 |
| US10983747B2 (en) | 2011-07-15 | 2021-04-20 | Vmware, Inc. | Remote desktop mirroring |
| US10976981B2 (en) | 2011-07-15 | 2021-04-13 | Vmware, Inc. | Remote desktop exporting |
| US12418794B2 (en) | 2011-07-15 | 2025-09-16 | Omnissa, Llc | Mobile device authentication |
| RU2486562C2 (ru) * | 2011-08-26 | 2013-06-27 | Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг РФ) | Способ построения автоматизированной системы, реализующей принципы виртуализации рабочих мест и изоморфного масштабирования |
| KR101650424B1 (ko) * | 2011-09-13 | 2016-09-05 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 기점 가상 머신으로부터 목적지 가상 머신으로의 동작 전송 |
| CN102355501B (zh) * | 2011-09-28 | 2017-06-13 | 华为技术有限公司 | 一种数据处理方法、接入审核设备及系统 |
| US20130093776A1 (en) * | 2011-10-14 | 2013-04-18 | Microsoft Corporation | Delivering a Single End User Experience to a Client from Multiple Servers |
| CN102427448B (zh) * | 2011-11-03 | 2017-07-14 | 南京中兴软件有限责任公司 | 在虚拟桌面中使用客户端输入法的方法、终端及服务端 |
| US8769519B2 (en) | 2011-12-08 | 2014-07-01 | Microsoft Corporation | Personal and pooled virtual machine update |
| CN103150204B (zh) * | 2011-12-23 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 操作系统桌面管理方法和装置 |
| CN103188307A (zh) * | 2011-12-30 | 2013-07-03 | 旭智科技(深圳)有限公司 | 新型云应用方法及系统 |
| CN103200215A (zh) * | 2012-01-08 | 2013-07-10 | 佳都新太科技股份有限公司 | 一种在https上实现XenServer虚拟机远程控制的方法 |
| US8839447B2 (en) * | 2012-02-27 | 2014-09-16 | Ca, Inc. | System and method for virtual image security in a cloud environment |
| JP5670369B2 (ja) * | 2012-03-08 | 2015-02-18 | 株式会社東芝 | 情報処理装置、イメージファイル管理方法およびプログラム |
| CN102662741B (zh) | 2012-04-05 | 2014-04-02 | 华为技术有限公司 | 虚拟桌面的实现方法、装置和系统 |
| US9237195B2 (en) * | 2012-04-27 | 2016-01-12 | Netapp, Inc. | Virtual storage appliance gateway |
| KR101239290B1 (ko) * | 2012-07-23 | 2013-03-06 | (주)엔텍 | 제로 클라이언트를 지원하는 가상화 서버의 가상 머신 설정을 위한 시스템 및 방법 |
| US9977698B2 (en) * | 2012-07-31 | 2018-05-22 | V3 Systems Holdings, Inc. | Virtual machine migration into the cloud |
| US9117093B2 (en) * | 2012-09-26 | 2015-08-25 | Ca, Inc. | Centralized, policy-driven maintenance of storage for virtual machine disks (VMDKS) and/or physical disks |
| US10198285B2 (en) | 2012-10-04 | 2019-02-05 | Vertiv It Systems, Inc. | System and method for creating virtual disk images for use with remote computer |
| US9841984B2 (en) | 2012-10-04 | 2017-12-12 | Avocent Huntsville, Llc | System and method for creating virtual disk images for use with remote computer |
| US9372760B1 (en) * | 2012-10-19 | 2016-06-21 | Veritas Technologies Llc | Systems and methods for securely storing backup data while facilitating fast failovers |
| US9921884B1 (en) * | 2012-11-01 | 2018-03-20 | Amazon Technologies, Inc. | Local and remote access to virtual machine image filesystems |
| US9262212B2 (en) * | 2012-11-02 | 2016-02-16 | The Boeing Company | Systems and methods for migrating virtual machines |
| US9992185B1 (en) | 2012-11-02 | 2018-06-05 | Wyse Technology L.L.C. | Virtual desktop accelerator support for network gateway |
| US9485233B1 (en) * | 2012-11-02 | 2016-11-01 | Wyse Technology L.L.C. | Virtual desktop accelerator support for network gateway |
| US9374351B1 (en) | 2012-11-02 | 2016-06-21 | Wyse Technology L.L.C. | Virtual desktop accelerator support for network gateway |
| KR101379835B1 (ko) * | 2012-11-28 | 2014-04-02 | 성균관대학교산학협력단 | 가상 머신에 가상 배터리를 제공하는 가상 머신 모니터, 가상 머신 호스트 시스템 및 가상 배터리 관리 방법 |
| US9092161B2 (en) * | 2012-12-05 | 2015-07-28 | Red Hat Israel, Ltd. | Selection of allocation policy and format for virtual machine disk images |
| US10162873B2 (en) * | 2012-12-21 | 2018-12-25 | Red Hat, Inc. | Synchronization of physical disks |
| US20140188977A1 (en) * | 2012-12-28 | 2014-07-03 | Futurewei Technologies, Inc. | Appratus, method for deploying applications in a virtual desktop interface system |
| US9549019B2 (en) * | 2013-01-09 | 2017-01-17 | Red Hat Israel, Ltd. | Managing a logical client for a virtual machine |
| US10284668B2 (en) | 2013-01-09 | 2019-05-07 | Red Hat Israel, Ltd. | Managing a logical client for an application |
| US8997080B2 (en) | 2013-02-11 | 2015-03-31 | Citrix Systems, Inc. | System updates with personal virtual disks |
| US9201755B2 (en) * | 2013-02-14 | 2015-12-01 | Vmware, Inc. | Real-time, interactive measurement techniques for desktop virtualization |
| US9002982B2 (en) | 2013-03-11 | 2015-04-07 | Amazon Technologies, Inc. | Automated desktop placement |
| US9148350B1 (en) | 2013-03-11 | 2015-09-29 | Amazon Technologies, Inc. | Automated data synchronization |
| US10142406B2 (en) * | 2013-03-11 | 2018-11-27 | Amazon Technologies, Inc. | Automated data center selection |
| US10313345B2 (en) | 2013-03-11 | 2019-06-04 | Amazon Technologies, Inc. | Application marketplace for virtual desktops |
| EP2975523A4 (en) | 2013-03-12 | 2017-02-08 | Toshiba Solutions Corporation | Database system, program, and data processing method |
| EP2984559B1 (en) | 2013-04-09 | 2019-06-12 | Citrix Systems Inc. | Providing a native desktop using cloud-synchronized data |
| CA2852597C (en) * | 2013-05-23 | 2020-02-04 | Ellison Information Manufacturing Inc. | Method and system for input driven process flow management |
| US20140359213A1 (en) * | 2013-05-31 | 2014-12-04 | Microsoft Corporation | Differencing disk improved deployment of virtual machines |
| EP2813945A1 (en) * | 2013-06-14 | 2014-12-17 | Tocario GmbH | Method and system for enabling access of a client device to a remote desktop |
| US10623243B2 (en) * | 2013-06-26 | 2020-04-14 | Amazon Technologies, Inc. | Management of computing sessions |
| US10686646B1 (en) * | 2013-06-26 | 2020-06-16 | Amazon Technologies, Inc. | Management of computing sessions |
| US9264289B2 (en) * | 2013-06-27 | 2016-02-16 | Microsoft Technology Licensing, Llc | Endpoint data centers of different tenancy sets |
| US9639384B2 (en) * | 2013-08-20 | 2017-05-02 | Vmware, Inc. | Method and system for fast provisioning of virtual desktop |
| WO2015025384A1 (ja) * | 2013-08-21 | 2015-02-26 | 株式会社東芝 | データベースシステム、プログラムおよびデータ処理方法 |
| JP6122126B2 (ja) | 2013-08-27 | 2017-04-26 | 株式会社東芝 | データベースシステム、プログラムおよびデータ処理方法 |
| US9851993B2 (en) * | 2013-09-24 | 2017-12-26 | International Business Machines Corporation | Virtual machine template optimization |
| US9537932B2 (en) * | 2013-10-23 | 2017-01-03 | Microsoft Technology Licensing, Llc | Emulating test distributed application on server |
| US9485099B2 (en) | 2013-10-25 | 2016-11-01 | Cliqr Technologies, Inc. | Apparatus, systems and methods for agile enablement of secure communications for cloud based applications |
| CN103593227B (zh) * | 2013-11-08 | 2017-02-22 | 何钦淋 | 在客户端运行桌面虚拟系统的方法及客户端 |
| CN103677840A (zh) * | 2013-12-18 | 2014-03-26 | 浪潮电子信息产业股份有限公司 | 一种在作业调度软件中查看及操作应用图形界面的方法 |
| US10353633B2 (en) * | 2013-12-19 | 2019-07-16 | Sony Interactive Entertainment LLC | Mass storage virtualization for cloud computing |
| WO2015099690A1 (en) * | 2013-12-23 | 2015-07-02 | Citrix Systems, Inc. | Method and system for optimizing virtual disk provisioning |
| US9720719B2 (en) | 2013-12-23 | 2017-08-01 | Citrix Systems, Inc. | Method and system for optimizing virtual disk provisioning |
| US9264517B2 (en) | 2014-02-19 | 2016-02-16 | Vmware, Inc. | Wide area aggregated communications |
| CN104901923B (zh) * | 2014-03-04 | 2018-12-25 | 新华三技术有限公司 | 一种虚拟机访问装置和方法 |
| US9430213B2 (en) | 2014-03-11 | 2016-08-30 | Cliqr Technologies, Inc. | Apparatus, systems and methods for cross-cloud software migration and deployment |
| US9734191B2 (en) * | 2014-03-31 | 2017-08-15 | Dell Products, L.P. | Asynchronous image repository functionality |
| US10542049B2 (en) | 2014-05-09 | 2020-01-21 | Nutanix, Inc. | Mechanism for providing external access to a secured networked virtualization environment |
| US9280376B2 (en) | 2014-05-13 | 2016-03-08 | Dell Products, Lp | System and method for resizing a virtual desktop infrastructure using virtual desktop infrastructure monitoring tools |
| US10318489B2 (en) * | 2014-05-21 | 2019-06-11 | Vmware, Inc. | Avoiding full file replication using sparse files |
| JP2015225632A (ja) * | 2014-05-30 | 2015-12-14 | 日本電気株式会社 | シンクライアント端末装置、サーバ装置、方法、およびプログラム |
| US10884775B2 (en) * | 2014-06-17 | 2021-01-05 | Nokia Solutions And Networks Oy | Methods and apparatus to control a virtual machine |
| US10956041B2 (en) | 2014-06-26 | 2021-03-23 | Vmware, Inc. | Online snapshot consolidation using I/O mirroring |
| US20160026492A1 (en) * | 2014-07-24 | 2016-01-28 | Samsung Electronics Co., Ltd. | Electronic apparatus for executing virtual machine and method for executing virtual machine |
| US20160044139A1 (en) * | 2014-08-07 | 2016-02-11 | Hsiu-Ping Lin | Methods and systems for communications between apps and virtual machines |
| US10073902B2 (en) * | 2014-09-24 | 2018-09-11 | Microsoft Technology Licensing, Llc | Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency |
| TWI608420B (zh) * | 2014-10-20 | 2017-12-11 | 緯創資通股份有限公司 | 虛擬機器監控方法及其系統 |
| US20170054792A1 (en) * | 2014-11-20 | 2017-02-23 | Otoy, Inc. | Systems and methods for deploying applications |
| KR102328193B1 (ko) | 2015-06-24 | 2021-11-18 | 한국전자통신연구원 | 가상 데스크탑 서비스를 위한 장치 및 방법 |
| KR101929048B1 (ko) | 2015-06-24 | 2018-12-13 | 한국전자통신연구원 | 인메모리 기반 가상 데스크탑 서비스를 위한 장치 및 방법 |
| WO2017004269A1 (en) * | 2015-06-30 | 2017-01-05 | Vmware, Inc. | Methods and apparatus for software lifecycle management of a virtual computing environment |
| KR101977726B1 (ko) | 2015-11-17 | 2019-05-14 | 한국전자통신연구원 | 가상 데스크탑 서비스 방법 및 장치 |
| US10133868B2 (en) * | 2016-01-10 | 2018-11-20 | Apple Inc. | Switching users and sync bubble for EDU mode |
| US10192055B2 (en) | 2016-01-10 | 2019-01-29 | Apple Inc. | Log in/log out process for EDU mode |
| US10990690B2 (en) * | 2016-01-29 | 2021-04-27 | British Telecommunications Public Limited Company | Disk encryption |
| CN105653342B (zh) * | 2016-02-01 | 2018-09-28 | 福建升腾资讯有限公司 | 一种Windows池桌面自动入域的方法及系统 |
| US11579861B2 (en) | 2016-02-12 | 2023-02-14 | Nutanix, Inc. | Virtualized file server smart data ingestion |
| CN106020795A (zh) * | 2016-05-09 | 2016-10-12 | 汉柏科技有限公司 | Vdi桌面个人数据盘的实现方法及装置 |
| US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
| KR102568985B1 (ko) * | 2016-06-22 | 2023-08-23 | 한국전자통신연구원 | 오프라인 가상 데스크탑 제공 장치, 오프라인 가상 데스크탑 단말 및 오프라인 가상 데스크탑 제공 방법 |
| US10318330B2 (en) * | 2016-11-30 | 2019-06-11 | Salesforce.Com, Inc. | Data-persisting temporary virtual machine environments |
| US11562034B2 (en) | 2016-12-02 | 2023-01-24 | Nutanix, Inc. | Transparent referrals for distributed file servers |
| US10728090B2 (en) | 2016-12-02 | 2020-07-28 | Nutanix, Inc. | Configuring network segmentation for a virtualization environment |
| US10824455B2 (en) | 2016-12-02 | 2020-11-03 | Nutanix, Inc. | Virtualized server systems and methods including load balancing for virtualized file servers |
| US11568073B2 (en) | 2016-12-02 | 2023-01-31 | Nutanix, Inc. | Handling permissions for virtualized file servers |
| US11294777B2 (en) | 2016-12-05 | 2022-04-05 | Nutanix, Inc. | Disaster recovery for distributed file servers, including metadata fixers |
| US11281484B2 (en) | 2016-12-06 | 2022-03-22 | Nutanix, Inc. | Virtualized server systems and methods including scaling of file system virtual machines |
| US11288239B2 (en) | 2016-12-06 | 2022-03-29 | Nutanix, Inc. | Cloning virtualized file servers |
| US11587196B2 (en) * | 2017-04-10 | 2023-02-21 | Dell Products L.P. | Information handling system remote desktop protocol selection |
| US11144412B2 (en) | 2017-06-05 | 2021-10-12 | Vmware, Inc. | Virtual machine image file synchronization using delta bitmaps and delta files |
| KR101946862B1 (ko) | 2017-06-08 | 2019-04-29 | (주)필라웨어 | 사용자 인사 정보에 기반한 가상 데스크탑/가상 어플리케이션 환경 관리 시스템 |
| CN108667887B (zh) * | 2017-07-03 | 2021-07-23 | 无锡辰云科技股份有限公司 | 基于融合计算的桌面虚拟方法、装置和系统 |
| CN111164570B (zh) * | 2017-10-11 | 2024-05-21 | 维谛信息技术系统有限公司 | 用于创建用于与远程计算机一起使用的虚拟盘映像的系统和方法 |
| KR102492793B1 (ko) * | 2018-01-03 | 2023-01-30 | 주식회사 케이티 | 가상 데스크탑 서비스 제공 시스템 및 가상 데스크탑 서비스 제공 방법 |
| US10430227B2 (en) | 2018-01-09 | 2019-10-01 | Microsoft Technology Licensing, Llc | Fast instantiation of virtual machines in distributed computing systems |
| US10693945B2 (en) * | 2018-01-24 | 2020-06-23 | Vmware, Inc. | File and folder redirection for virtual desktops via image scanning |
| CN108306969B (zh) * | 2018-02-02 | 2021-05-25 | 西安雷风电子科技有限公司 | 一种idv云桌面的智能接入系统及智能接入方法 |
| CN108536515B (zh) * | 2018-03-02 | 2021-10-01 | 武汉噢易云计算股份有限公司 | Vdi的虚拟机播放客户机的音乐cd的方法及系统 |
| US10664323B2 (en) * | 2018-03-07 | 2020-05-26 | Microsoft Technology Licensing, Llc | Live migration of virtual machines in distributed computing systems |
| US11086826B2 (en) | 2018-04-30 | 2021-08-10 | Nutanix, Inc. | Virtualized server systems and methods including domain joining techniques |
| US11194680B2 (en) | 2018-07-20 | 2021-12-07 | Nutanix, Inc. | Two node clusters recovery on a failure |
| PT115089A (pt) * | 2018-10-19 | 2020-04-20 | Eurotux Informatica S A | Sistema e método para comutação gradual de ambiente de computação entre computador local e computador remoto. |
| US11770447B2 (en) | 2018-10-31 | 2023-09-26 | Nutanix, Inc. | Managing high-availability file servers |
| US10809935B2 (en) * | 2018-12-17 | 2020-10-20 | Vmware, Inc. | System and method for migrating tree structures with virtual disks between computing environments |
| CN114761886A (zh) * | 2019-05-10 | 2022-07-15 | 优化能源有限公司 | 使用实时数据控制hvac优化 |
| US20210117208A1 (en) * | 2019-10-18 | 2021-04-22 | Vmware, Inc. | User profile migration to virtual desktop infrastructure |
| US11221784B2 (en) * | 2019-11-01 | 2022-01-11 | Hiveio Inc. | Method and system for user data backup within a virtual desktop environment |
| US11263039B2 (en) * | 2019-11-15 | 2022-03-01 | Vmware, Inc. | High performance attachable writeable volumes in VDI desktops |
| CN110928624A (zh) * | 2019-11-15 | 2020-03-27 | 联思智云(北京)科技有限公司 | 用于用户终端的云桌面调用方法、装置及终端 |
| CN110908756B (zh) * | 2019-11-18 | 2024-02-02 | 西安雷风电子科技有限公司 | 一种云端桌面实时融合切换方法及系统 |
| US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
| US11368726B1 (en) * | 2020-06-11 | 2022-06-21 | Francisco Matías Saez Cerda | Parsing and processing reconstruction of multi-angle videos |
| EP3929740A1 (de) * | 2020-06-26 | 2021-12-29 | Siemens Aktiengesellschaft | Verfahren zur orchestrierung einer container-basierten anwendung auf einem endgerät |
| US12248435B2 (en) | 2021-03-31 | 2025-03-11 | Nutanix, Inc. | File analytics systems and methods |
| US12131192B2 (en) | 2021-03-18 | 2024-10-29 | Nutanix, Inc. | Scope-based distributed lock infrastructure for virtualized file server |
| US12197398B2 (en) | 2021-03-31 | 2025-01-14 | Nutanix, Inc. | Virtualized file servers and methods to persistently store file system event data |
| US12248434B2 (en) | 2021-03-31 | 2025-03-11 | Nutanix, Inc. | File analytics systems including examples providing metrics adjusted for application operation |
| US12242455B2 (en) | 2021-03-31 | 2025-03-04 | Nutanix, Inc. | File analytics systems and methods including receiving and processing file system event data in order |
| US12367108B2 (en) | 2021-03-31 | 2025-07-22 | Nutanix, Inc. | File analytics systems and methods including retrieving metadata from file system snapshots |
| US12072770B2 (en) | 2021-08-19 | 2024-08-27 | Nutanix, Inc. | Share-based file server replication for disaster recovery |
| US12117972B2 (en) | 2021-08-19 | 2024-10-15 | Nutanix, Inc. | File server managers and systems for managing virtualized file servers |
| US12026531B2 (en) * | 2021-10-01 | 2024-07-02 | Pritchard Brian | Methods and systems for emulating application-specific workstations on personal computers |
| CN114116120A (zh) * | 2021-10-20 | 2022-03-01 | 武汉光庭信息技术股份有限公司 | 一种远程数据处理方法、系统、电子设备及存储介质 |
| US12153690B2 (en) | 2022-01-24 | 2024-11-26 | Nutanix, Inc. | Consistent access control lists across file servers for local users in a distributed file server environment |
| US12182264B2 (en) | 2022-03-11 | 2024-12-31 | Nutanix, Inc. | Malicious activity detection, validation, and remediation in virtualized file servers |
| US12189499B2 (en) | 2022-07-29 | 2025-01-07 | Nutanix, Inc. | Self-service restore (SSR) snapshot replication with share-level file system disaster recovery on virtualized file servers |
| US11979454B2 (en) | 2022-08-29 | 2024-05-07 | Vertiv It Systems, Inc. | Writeback to a virtual media mapped image in HTML5 |
| US12517874B2 (en) | 2022-09-30 | 2026-01-06 | Nutanix, Inc. | Data analytics systems for file systems including tiering |
| CN116775223B (zh) * | 2023-08-18 | 2023-11-10 | 西安雷风电子科技有限公司 | 一种idv和vdi虚拟桌面融合使用的方法 |
| US12461832B2 (en) | 2023-09-27 | 2025-11-04 | Nutanix, Inc. | Durable handle management for failover in distributed file servers |
Family Cites Families (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4025475B2 (ja) * | 1999-11-10 | 2007-12-19 | 日本電気株式会社 | データベース交換システム |
| US6941410B1 (en) * | 2000-06-02 | 2005-09-06 | Sun Microsystems, Inc. | Virtual heap for a virtual machine |
| US7313614B2 (en) | 2000-11-02 | 2007-12-25 | Sun Microsystems, Inc. | Switching system |
| US20020156971A1 (en) * | 2001-04-19 | 2002-10-24 | International Business Machines Corporation | Method, apparatus, and program for providing hybrid disk mirroring and striping |
| US7275105B2 (en) * | 2002-01-16 | 2007-09-25 | Laszlo Systems, Inc. | Enabling online and offline operation |
| US7032131B2 (en) * | 2002-03-26 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | System and method for ensuring merge completion in a storage area network |
| US9171049B2 (en) * | 2002-06-13 | 2015-10-27 | Salesforce.Com, Inc. | Offline simulation of online session between client and server |
| US7793060B2 (en) * | 2003-07-15 | 2010-09-07 | International Business Machines Corporation | System method and circuit for differential mirroring of data |
| US7558723B2 (en) * | 2003-12-12 | 2009-07-07 | Microsoft Corporation | Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices |
| US7555531B2 (en) | 2004-04-15 | 2009-06-30 | Microsoft Corporation | Efficient algorithm and protocol for remote differential compression |
| JP4242819B2 (ja) * | 2004-10-06 | 2009-03-25 | 株式会社日立製作所 | オフライン作業可能な端末を有する計算機システム |
| US7536525B2 (en) * | 2004-11-09 | 2009-05-19 | Dell Products L.P. | Virtual machine hot cloning including freezing and unfreezing memory in a distributed network |
| US20060122955A1 (en) * | 2004-12-02 | 2006-06-08 | Alex Bethlehem | System and method for launching a resource in a network |
| US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
| US20060184937A1 (en) * | 2005-02-11 | 2006-08-17 | Timothy Abels | System and method for centralized software management in virtual machines |
| US20070094659A1 (en) * | 2005-07-18 | 2007-04-26 | Dell Products L.P. | System and method for recovering from a failure of a virtual machine |
| US7447854B1 (en) | 2005-12-30 | 2008-11-04 | Vmware, Inc. | Tracking and replicating changes to a virtual disk |
| US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
| US7739738B1 (en) * | 2006-03-15 | 2010-06-15 | Symantec Corporation | Enabling clean file cache persistence using dual-boot detection |
| US20070260702A1 (en) * | 2006-05-03 | 2007-11-08 | University Of Washington | Web browser architecture for virtual machine access |
| US9392078B2 (en) * | 2006-06-23 | 2016-07-12 | Microsoft Technology Licensing, Llc | Remote network access via virtual machine |
| US20080086540A1 (en) * | 2006-10-06 | 2008-04-10 | James Scott | Method and system for executing a normally online application in an offline mode |
| CA2665873A1 (en) | 2006-10-20 | 2008-05-02 | Citrix Systems, Inc. | Methods and systems for accessing remote user files associated with local resources |
| US20100306773A1 (en) | 2006-11-06 | 2010-12-02 | Lee Mark M | Instant on Platform |
| US20080201414A1 (en) * | 2007-02-15 | 2008-08-21 | Amir Husain Syed M | Transferring a Virtual Machine from a Remote Server Computer for Local Execution by a Client Computer |
| US20080235361A1 (en) * | 2007-03-21 | 2008-09-25 | David Crosbie | Management layer method and apparatus for dynamic assignment of users to computer resources |
| US20080301770A1 (en) * | 2007-05-31 | 2008-12-04 | Kinder Nathan G | Identity based virtual machine selector |
| US9069638B2 (en) | 2007-06-11 | 2015-06-30 | Red Hat, Inc. | Update system to synchronize changes from external sources for a java virtual machine |
| US7970903B2 (en) | 2007-08-20 | 2011-06-28 | Hitachi, Ltd. | Storage and server provisioning for virtualized and geographically dispersed data centers |
| JP5198584B2 (ja) | 2008-02-26 | 2013-05-15 | ヴイエムウェア インク | 拡張されたサーバーベースのクライアント用デスクトップ仮想マシン構成 |
| US8255806B2 (en) | 2008-09-15 | 2012-08-28 | Vmware, Inc. | Unified secure virtual machine player and remote desktop client |
| US8581247B2 (en) | 2009-03-31 | 2013-11-12 | Panasonic Corporation | Flexible semiconductor device having gate electrode disposed within an opening of a resin film |
-
2009
- 2009-02-20 JP JP2010547806A patent/JP5198584B2/ja active Active
- 2009-02-20 CA CA2713876A patent/CA2713876C/en active Active
- 2009-02-20 MX MX2010009362A patent/MX2010009362A/es not_active Application Discontinuation
- 2009-02-20 AU AU2009219470A patent/AU2009219470B2/en active Active
- 2009-02-20 RU RU2010131030/08A patent/RU2432605C1/ru active
- 2009-02-20 KR KR1020107018920A patent/KR101178752B1/ko active Active
- 2009-02-20 EP EP09714665.8A patent/EP2248041B1/en active Active
- 2009-02-20 CN CN200980105185XA patent/CN101971162B/zh active Active
- 2009-02-20 WO PCT/US2009/034731 patent/WO2009108579A2/en not_active Ceased
- 2009-02-23 US US12/390,819 patent/US8640126B2/en active Active
-
2014
- 2014-01-27 US US14/165,380 patent/US9444883B2/en active Active
-
2016
- 2016-09-01 US US15/254,860 patent/US10061605B2/en active Active
-
2018
- 2018-08-03 US US16/053,851 patent/US10896054B2/en active Active
-
2020
- 2020-12-09 US US17/117,011 patent/US11669359B2/en active Active
-
2023
- 2023-04-26 US US18/139,892 patent/US12106137B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| AU2009219470B2 (en) | 2012-06-21 |
| US8640126B2 (en) | 2014-01-28 |
| US20180341511A1 (en) | 2018-11-29 |
| US20090216975A1 (en) | 2009-08-27 |
| RU2432605C1 (ru) | 2011-10-27 |
| EP2248041A4 (en) | 2013-01-23 |
| US20210117223A1 (en) | 2021-04-22 |
| US10061605B2 (en) | 2018-08-28 |
| EP2248041A2 (en) | 2010-11-10 |
| US20160371111A1 (en) | 2016-12-22 |
| US10896054B2 (en) | 2021-01-19 |
| WO2009108579A3 (en) | 2009-11-26 |
| WO2009108579A2 (en) | 2009-09-03 |
| US11669359B2 (en) | 2023-06-06 |
| EP2248041B1 (en) | 2015-04-29 |
| US20240078126A1 (en) | 2024-03-07 |
| JP2011513816A (ja) | 2011-04-28 |
| KR20100123847A (ko) | 2010-11-25 |
| CN101971162A (zh) | 2011-02-09 |
| US20140189816A1 (en) | 2014-07-03 |
| CN101971162B (zh) | 2012-11-21 |
| CA2713876C (en) | 2014-11-04 |
| CA2713876A1 (en) | 2009-09-03 |
| KR101178752B1 (ko) | 2012-09-10 |
| JP5198584B2 (ja) | 2013-05-15 |
| US12106137B2 (en) | 2024-10-01 |
| US9444883B2 (en) | 2016-09-13 |
| AU2009219470A1 (en) | 2009-09-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12106137B2 (en) | Extending server-based desktop virtual machine architecture to client machines | |
| US8255806B2 (en) | Unified secure virtual machine player and remote desktop client | |
| US9141412B2 (en) | Terminal services application virtualization for compatibility | |
| US9830430B2 (en) | Inherited product activation for virtual machines | |
| US8560826B2 (en) | Secure virtualization environment bootable from an external media device | |
| CN113544675B (zh) | 安全执行客户机所有者环境控制符 | |
| US20180046479A1 (en) | On-demand disposable virtual work system | |
| US9244705B1 (en) | Intelligent micro-virtual machine scheduling | |
| US20120272236A1 (en) | Mechanism for host machine level template caching in virtualization environments | |
| CN104350466A (zh) | 虚拟机映像写租赁 | |
| US9798561B2 (en) | Guarded virtual machines | |
| US9058196B2 (en) | Host machine level template caching in virtualization environments | |
| US9128743B1 (en) | Graphic visualization of a suspended virtual machine | |
| CN117581205A (zh) | 用于虚拟化系统中虚拟化操作的虚拟化引擎 | |
| KR101434794B1 (ko) | 프로그램 해킹 방어 방법 및 시스템 | |
| KR20110006487A (ko) | 리소스 가상화를 이용한 다중 터미널서비스 제공 장치 및 그 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FA | Abandonment or withdrawal |