ES2623299T3 - Transmisión por secuencias de red autónoma - Google Patents

Transmisión por secuencias de red autónoma Download PDF

Info

Publication number
ES2623299T3
ES2623299T3 ES12857657.6T ES12857657T ES2623299T3 ES 2623299 T3 ES2623299 T3 ES 2623299T3 ES 12857657 T ES12857657 T ES 12857657T ES 2623299 T3 ES2623299 T3 ES 2623299T3
Authority
ES
Spain
Prior art keywords
data
file
network
application
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12857657.6T
Other languages
English (en)
Inventor
Peter Aziz MORGAN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2623299T3 publication Critical patent/ES2623299T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

Un procedimiento (200) implementado por ordenador para suministrar de forma dinámica aplicaciones de software virtuales, en el que las aplicaciones de software virtuales son aplicaciones que se ejecutan en un sistema de cliente que se proporcionan a partir de un servidor de aplicaciones de red en tiempo de ejecución, comprendiendo el procedimiento: un acto de establecer (210) un filtro (120) de entrada/salida, E/S, de datos configurado para interceptar solicitudes (111) de archivo de datos que se envían desde una aplicación (110) de software virtual a un sistema (125) de archivos del sistema operativo; un acto de interceptar (220), con el filtro de E/S de datos, una solicitud de lectura de archivo de datos que está configurada para recuperar un archivo de datos especificado a partir del sistema de archivos; un acto de reenviar (230), con el filtro de E/S de datos, la solicitud de lectura interceptada a un almacenamiento (130) de datos accesible por red configurado para devolver el archivo (131) de datos específico; y tras recibir (240) el archivo de datos especificado desde el almacenamiento de datos de red, un acto de enviar, el filtro de E/S, el archivo de datos especificado a la aplicación de software virtual, de tal modo que el archivo de datos especificado pueda ser usado por la aplicación virtual en respuesta a su solicitud de lectura, en el que una pluralidad de archivos de datos se interceptan y se transmiten por secuencias para proporcionar de forma dinámica cada archivo que necesite la aplicación de software virtual, y en el que los archivos de datos recibidos desde el almacenamiento de datos de red no se almacenan en el sistema de archivos del sistema informático.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Transmision por secuencias de red autonoma Antecedentes
Los ordenadores se han integrado fuertemente en la fuerza laboral, en el hogar, en dispositivos moviles, y en muchos otros lugares. Los ordenadores pueden procesar cantidades masivas de informacion de forma rapida y eficiente. Las aplicaciones de software disenadas para ejecutarse en sistemas informaticos permiten a los usuarios realizar una gran variedad de funciones incluyendo aplicaciones de negocio, tareas escolares, de ocio y mas. Las aplicaciones de software se disenan con frecuencia para realizar tareas espedficas, tales como aplicaciones de procesamiento de textos para elaborar documentos, o programas de correo electronico para enviar, recibir y organizar correo electronico.
En cada caso, las aplicaciones de software interaction con, y usan, diferentes componentes de hardware del sistema informatico anfitrion. Por ejemplo, una aplicacion de software puede interactuar con un almacenamiento de datos local tal como un disco duro, una unidad de DVD o una unidad flash. Por lo general, una aplicacion realiza solicitudes de entrada/salida (E/S) que se envfan desde la aplicacion al sistema de archivos del sistema operativo. El sistema de archivos accede a los datos necesarios desde el disco, y los devuelve a la aplicacion. En los casos en los que se usan aplicaciones virtuales, en lugar de recuperar los datos unicamente del disco duro local, se solicita al menos una porcion de los datos a partir de un almacenamiento de datos remoto (habitualmente un servidor de archivos de red). Entonces, esos datos se reciben en el sistema informatico y se almacenan en su disco duro local. El sistema de archivos del ordenador envfa entonces los datos a la aplicacion como lo hana normalmente con datos almacenados de forma local.
El documento US 2011/0029968 A1 desvela un sistema y procedimiento para transmitir por secuencias un paquete de instalacion en un entorno virtual. El sistema incluye un servidor y un cliente. El servidor transmite por secuencias un paquete de instalacion al cliente como una serie de unidades de transmision por secuencias. El cliente inicia un componente de instalador en un estado suspendido fuera del entorno virtual. El cliente registra el componente de instalador en el entorno virtual e inicia la ejecucion del componente de instalador en el entorno virtual para recibir porciones del paquete de instalacion e instalar las porciones recibidas del paquete de instalacion en el entorno virtual. Durante la instalacion del paquete, un gestor de virtualizacion detecta un intento de ejecutar una llamada a un sistema de archivos y confina los cambios en el sistema de archivos que resultan de la llamada en el entorno virtual en respuesta a la determinacion de que el intento fue realizado por el componente de instalador y el componente de instalador esta registrado en el entorno virtual.
El objeto de la presente invencion es proporcionar un sistema y procedimiento mejorado para aplicaciones de software de transmision por secuencias.
Este objeto se soluciona mediante la materia objeto de las reivindicaciones independientes.
Algunas realizaciones se definen por medio de las reivindicaciones dependientes.
Breve sumario
Las realizaciones que se describen en el presente documento estan dirigidas a suministrar de forma dinamica aplicaciones de software virtuales y a atribuir datos de aplicacion entre almacenamientos de datos locales y de red. En una realizacion, un sistema informatico establece un filtro de entrada/salida (E/S) de datos configurado para interceptar solicitudes de archivo de datos que se envfan desde una aplicacion de software virtual a un sistema de archivos del sistema operativo. El filtro de E/S de datos intercepta una solicitud de lectura de archivo de datos que esta configurada para recuperar un archivo de datos especificado a partir del sistema de archivos. El filtro de E/S de datos reenvfa la solicitud de lectura interceptada a un almacenamiento de datos accesible por red que esta configurado para devolver el archivo de datos espedfico. Entonces, tras recibir el archivo de datos especificado desde el almacenamiento datos de red, el filtro de E/S envfa el archivo de datos especificado a la aplicacion de software virtual. Por lo tanto, el archivo de datos especificado puede ser usado por la aplicacion virtual.
En otra realizacion, un sistema informatico atribuye datos de aplicacion entre almacenamientos de datos locales y de red. El sistema informatico recibe de un usuario administrativo una indicacion de que porciones especificadas de una aplicacion virtual se van almacenar en un almacenamiento de datos local y que porciones se van a almacenar en un almacenamiento de datos de red. El sistema informatico genera diferentes porciones de metadatos que describen que porciones especificadas de la aplicacion virtual se van a almacenar en el almacenamiento de datos local. Entonces, recibe una solicitud de archivo de datos a partir de una aplicacion virtual que solicita los datos de un archivo de datos especificado y determina, basandose en los metadatos generados, si el archivo de datos especificado se almacena en el almacenamiento de datos local o el almacenamiento de datos remoto. Entonces, basandose en la determinacion, el sistema informatico envfa a la solicitud de archivo de datos a cualquiera del almacenamiento de datos local o el almacenamiento de datos remoto.
5
10
15
20
25
30
35
40
45
50
55
El presente sumario se proporciona para introducir una seleccion de conceptos de una forma simplificada que se describen adicionalmente a continuacion en la descripcion detallada. El presente sumario no tiene por objeto identificar caractensticas clave o caractensticas esenciales de la materia objeto reivindicada, ni tiene por objeto su uso como ayuda para determinar el alcance de la materia objeto reivindicada.
Caractensticas y ventajas adicionales se estableceran en la descripcion a continuacion, y en parte seran evidentes para un experto en la materia a partir de la descripcion, o pueden aprenderse por la practica de las ensenanzas en el presente documento. Caractensticas y ventajas de las realizaciones de la invencion se pueden realizar y obtener por medio de los instrumentos y combinaciones particularmente senaladas en las reivindicaciones adjuntas. Las caractensticas de las realizaciones de la presente invencion se haran mas completamente evidentes a partir de la siguiente descripcion y reivindicaciones adjuntas, o pueden aprenderse por la practica de la invencion tal como se describe en lo sucesivo en el presente documento.
Breve descripcion de los dibujos
Para aclarar adicionalmente las ventajas y caractensticas anteriores y otras de las realizaciones de la presente invencion, se presentara una descripcion mas particular de realizaciones de la presente invencion por referencia a los dibujos adjuntos. Se aprecia que estos dibujos ilustran unicamente realizaciones tfpicas de la invencion y, por lo tanto, no se han de considerar limitantes de su alcance. Las realizaciones de la invencion se describiran y explicaran con detalle y particularidad adicional a traves del uso de los dibujos adjuntos, en los que:
La figura 1 ilustra una arquitectura informatica en la cual realizaciones de la presente invencion pueden operar incluyendo suministrar de forma dinamica aplicaciones de software virtuales.
La figura 2 ilustra un diagrama de flujo de un procedimiento ilustrativo para suministrar de forma dinamica aplicaciones de software virtuales.
La figura 3 ilustra un diagrama de flujo de un procedimiento ilustrativo para atribuir datos de aplicacion entre almacenamientos de datos locales y de red.
La figura 4 ilustra una realizacion de la presente invencion en la que se atribuyen datos entre almacenamientos de datos locales y de red.
Descripcion detallada
Las realizaciones que se describen en el presente documento estan dirigidas a suministrar de forma dinamica aplicaciones de software virtuales y a atribuir datos de aplicacion entre almacenamientos de datos locales y de red. En una realizacion, un sistema informatico establece un filtro de entrada/salida (E/S) de datos configurado para interceptar solicitudes de archivo de datos que se envfan desde una aplicacion de software virtual a un sistema de archivos del sistema operativo. El filtro de E/S de datos intercepta una solicitud de lectura de archivo de datos que esta configurada para recuperar un archivo de datos especificado a partir del sistema de archivos. El filtro de E/S de datos reenvfa la solicitud de lectura interceptada a un almacenamiento de datos accesible por red que esta configurado para devolver el archivo de datos espedfico. Entonces, tras recibir el archivo de datos especificado desde el almacenamiento de datos de red, el filtro de E/S envfa el archivo de datos especificado a la aplicacion de software virtual. Por lo tanto, el archivo de datos especificado puede ser usado por la aplicacion virtual.
En otra realizacion, un sistema informatico atribuye datos de aplicacion entre almacenamientos de datos locales y de red. El sistema informatico recibe de un usuario administrativo una indicacion de que porciones especificadas de una aplicacion virtual se van a almacenar en un almacenamiento de datos local y que porciones se van a almacenar en un almacenamiento de datos de red. El sistema informatico genera diferentes porciones de metadatos que describen que porciones especificadas de la aplicacion virtual se van almacenar en el almacenamiento de datos local. Entonces, el mismo recibe una solicitud de archivo de datos a partir de una aplicacion virtual que solicita los datos de un archivo de datos especificado y determina, basandose en los metadatos generados, si el archivo de datos especificado esta almacenado en el almacenamiento de datos local o el almacenamiento de datos remoto. Entonces, basandose en la determinacion, el sistema informatico envfa la solicitud de archivo de datos al almacenamiento de datos local o al almacenamiento de datos remoto.
El siguiente analisis hace referencia a continuacion a un numero de procedimientos y actos de procedimiento que se pueden realizar. Se ha de hacer notar que, a pesar de que los actos de procedimiento pueden analizarse en cierto orden o ilustrarse en un diagrama de flujo como si tuvieran lugar en un orden particular, no se requiere necesariamente ningun orden particular a menos que se mencione espedficamente, o se requiera debido a que un acto sea dependiente de otro acto que se complete antes que se realice el acto.
Las realizaciones de la presente invencion pueden comprender o usar un ordenador de proposito especial o de proposito general que incluye hardware informatico, tal como, por ejemplo, uno o mas procesadores y memoria de sistema, tal como se analiza con mayor detalle a continuacion. Las realizaciones dentro del alcance de la presente invencion tambien incluyen medios legibles por ordenador, ffsicos y de otro tipo, para transportar o almacenar instrucciones ejecutables por ordenador y/o estructuras de datos. Tales medios legibles por ordenador pueden ser cualquier medio disponible al que pueda acceder un sistema informatico de proposito general o de proposito especial. Los medios legibles por ordenador que almacenan instrucciones ejecutables por ordenador en forma de
5
10
15
20
25
30
35
40
45
50
55
60
datos son medios de almacenamiento por ordenador. Los medios legibles por ordenador que transportan instrucciones ejecutables por ordenador son medios de transmision. Por lo tanto, a modo de ejemplo y no de limitacion, las realizaciones de la invencion pueden comprender al menos dos clases marcadamente diferentes de medios legibles por ordenador: medios de almacenamiento por ordenador y medios de transmision.
Los medios almacenamiento por ordenador incluyen RAM, ROM, EEPROM, CD-ROM, unidades de estado solido (SSD, solid state drive) que estan basados en RAM, memoria flash, memoria de cambio de fase (PCM, phase- change memory), u otros tipos de memoria, otro almacenamiento de disco optico, almacenamiento de disco magnetico, u otros dispositivos de almacenamiento magnetico, o cualquier otro medio que pueda usarse para almacenar medios de codigo de programa deseados en forma de instrucciones ejecutables por ordenador, datos o estructuras de datos y a los que pueda acceder un ordenador de proposito general o de proposito especial.
Una “red” se define como uno o mas enlaces de datos y/o conmutadores de datos que permiten el transporte de datos electronicos entre modulos y/o sistemas informaticos y/u otros dispositivos electronicos. Cuando se transfiere informacion o se proporciona a traves de una red (o bien por cable, o bien inalambrica, o bien una combinacion de por cable o inalambrica) a un ordenador, el ordenador contempla apropiadamente la conexion como un medio de transmision. Los medios de transicion pueden incluir una red que se puede usar para transportar datos o medios de codigo de programa deseados en forma de instrucciones ejecutables por ordenador o en forma de estructuras de datos y a los que pueda acceder un ordenador de proposito general o de proposito especial. Tambien se debenan incluir combinaciones de los anteriores dentro del alcance de los medios legibles por ordenador.
Ademas, tras alcanzar varios componentes de sistema informatico, los medios de codigo de programa en forma de instrucciones ejecutables por ordenador o estructuras de datos se pueden transferir de forma automatica de medios de transmision a medios de almacenamiento por ordenador (o viceversa). Por ejemplo, las instrucciones ejecutables por ordenador o estructuras de datos recibidas a traves de una red o enlace de datos se pueden guardar en memoria intermedia en la RAM dentro de un modulo de interfaz de red (por ejemplo, una tarjeta de interfaz de red o “NIC”, network interface card) y, entonces, transferirse con el tiempo a una rAm de sistema informatico y/o a medios de almacenamiento por ordenador menos volatiles en un sistema informatico. Por lo tanto, se ha de entender que los medios de almacenamiento por ordenador pueden estar incluidos en componentes de sistema informatico que tambien (o incluso principalmente) usan medios de transmision.
Las instrucciones ejecutables por ordenador (o interpretables por ordenador), comprenden, por ejemplo, instrucciones que dan lugar a que un ordenador de proposito general, un ordenador de proposito especial u otro dispositivo de procesamiento de proposito especial realice cierta funcion o grupo de funciones. Las instrucciones ejecutables por ordenador pueden ser, por ejemplo, codigos binarios, instrucciones de formato intermedio tales como lenguaje de ensamblador o incluso codigo fuente. A pesar de que la materia objeto se ha descrito en lenguaje espedfico de caractensticas estructurales y/o actos metodologicos, se ha de entender que la materia objeto definida en las reivindicaciones adjuntas no necesariamente esta limitada a las caractensticas o actos descritos que se han descrito en lo que antecede. Mas bien, las caractensticas y actos descritos se describen como formas a modo de ejemplo de implementacion de las reivindicaciones.
Los expertos en la materia apreciaran que la invencion se puede poner en practica en entornos informaticos de red con muchos tipos de configuraciones de sistema informatico, incluyendo ordenadores personales, ordenadores de escritorio, ordenadores portatiles, procesadores de mensajes, dispositivos portatiles, sistemas de multiprocesador, electronica de consumo programable o basada en microprocesador, PC de red, miniordenadores, macroordenadores, telefonos moviles, PDA, buscadores, encaminadores, conmutadores, y similares. La invencion tambien se puede poner en practica en entornos de sistema distribuidos en los que sistemas informaticos locales y remotos que estan enlazados (o bien por enlaces de datos por cable, o bien enlaces de datos inalambricos, o bien por una combinacion de enlaces de datos por cable e inalambrico) a traves una red, cada uno realiza tareas (por ejemplo, computacion de nube, servicios de nube y similares). En un entorno de sistema distribuido, los modulos de programa pueden estar localizados en dispositivos de almacenamiento de memoria tanto locales como remotos.
La figura 1 ilustra una arquitectura informatica 100 en la cual pueden emplearse los principios de la presente invencion. La arquitectura informatica 100 incluye un sistema informatico que opera al menos en un modo de usuario 140 y un modo de nucleo 141. El sistema informatico puede ser cualquier tipo de sistema informatico local o distribuido, incluyendo un sistema informatico de nube. Cada modo de operacion incluye diferentes modulos configurados para realizar tipos espedficos de operaciones. Estos modos de operacion y modelos de sistema informatico se pueden usar para desplegar aplicaciones virtuales de una forma uniforme y eficiente.
El servidor de aplicaciones de red proporciona los datos para la aplicacion al usuario a traves de la red. En algunas realizaciones en el presente documento, un usuario puede comenzar el procedimiento mediante la apertura de una aplicacion tal como lo hana normalmente al hacer clic en un icono de aplicacion (o en un archivo de datos que va a ser abierto por una aplicacion virtual). Tras recibir la senal de inicio por parte del usuario, el sistema operativo inicializa un espacio de direcciones de procedimiento para el archivo o archivos ejecutables de la aplicacion al leer el archivo o archivos ejecutables dentro de la memoria. Se ha de hacer notar que, tal como se usa la expresion en el presente documento, “archivo de datos” puede hacer referencia tanto a un archivo de datos que comprende archivos de configuracion (que, por lo general, no son parte del codigo ejecutable) como a una imagen que contiene los
5
10
15
20
25
30
35
40
45
50
55
60
archivos binarios ejecutables de la aplicacion. Debido a que en el presente documento se anticipan y soportan tanto archivos de configuracion como archivos ejecutables, en el presente documento se usara la expresion archivos de datos para describir los mismos.
Entonces, el sistema operativo establece el indicador de instruccion en el punto de entrada para la aplicacion, y ejecuta el procedimiento. Una capa de visualizacion dentro del sistema operativo detecta y se inicia a sf misma durante esta fase de arranque. Entonces, la aplicacion virtual se esta ejecutando en el sistema informatico del usuario.
En algunos casos, se transmiten por secuencias los archivos de datos de aplicaciones virtuales de forma dinamica segun sea necesario. Cuando se publica la aplicacion virtual en un sistema informatico objetivo, unicamente se crean archivos de datos dispersos. Los archivos de datos dispersos “parecen” archivos de datos normales similares, pero solamente existe un marcador de posicion para el archivo. El marcador de posicion incluye el nombre y el tamano del archivo. El contenido para el archivo de datos correspondiente al archivo disperso aun no se ha transmitido por secuencias. La transmision por secuencias se realiza una vez que se solicitan los datos reales para el archivo. En este punto, los datos para ese archivo se transmiten por secuencias desde el almacenamiento de datos accesible por red 130. Por lo general, los datos reales del archivo de datos no son necesarios hasta que el sistema operativo lee el archivo o archivos ejecutables en memoria. En otras implementaciones, los datos de archivo se transmitinan por secuencias y se copianan, y la solicitud de lectura del sistema operativo se satisfana a partir de los datos que se han transmitido por secuencias y se han copiado en la unidad de disco duro local del sistema informatico (u otro almacenamiento de datos).
Las realizaciones que se describen en el presente documento, no obstante, no copian los contenidos del archivo en el disco duro local. El contenido transmitido por secuencias es interceptado por un filtro de entrada/salida (E/S) de datos antes que se pueda almacenar en el disco. El filtro de E/S de datos pasa los datos transmitidos por secuencias a la aplicacion para satisfacer la solicitud de lectura. Entonces, la aplicacion usa los datos transmitidos por secuencias para operar tal como lo hana normalmente, sin que se escriba en el disco ninguno de los datos transmitidos por secuencias. De hecho, la aplicacion virtual ni siquiera sabe (o no es necesario que sepa) que no se satisfizo su solicitud de lectura por parte de la unidad de disco duro local, sino mas bien por datos transmitidos por secuencias de forma dinamica. No es necesario hacer cambios en la aplicacion virtual o en el sistema de archivos del sistema informatico. Mas bien, el filtro de E/S de datos opera uniformemente entremedias para proporcionar una aplicacion virtual que se transmite por secuencias de forma dinamica. Esta misma aplicacion de software virtual (almacenada en el almacenamiento de datos de red) se puede proporcionar sustancialmente a cualquier numero de otros sistemas informaticos y/o maquinas virtuales. Ademas, cuando se usa la misma aplicacion a traves de multiples sistemas informaticos diferentes, no se duplicara el espacio de disco, debido a que una copia individual de la aplicacion en un servidor se puede transmitir por secuencias a cada uno de los diferentes sistemas informaticos. Estos conceptos se explicaran a continuacion adicionalmente con respecto a los procedimientos 200 y 300 de las figuras 2 y 3, respectivamente.
En vista de los sistemas y arquitecturas que se han descrito en lo que antecede, las metodologfas que se pueden implementar de acuerdo con la materia objeto que se describe se apreciaran mejor con referencia a los diagramas de flujo de las figuras 2 y 3. Por razones de simplicidad de explicacion, las metodologfas se muestran y se describen como una serie de bloques. No obstante, se ha de entender y apreciar que la materia objeto reivindicada no esta limitada por el orden de los bloques, debido a que algunos bloques pueden tener lugar en diferentes ordenes y/o de forma concurrente a partir de lo que se ha ilustrado y descrito en el presente documento. Ademas, puede que no todos los bloques ilustrados sean requeridos para implementar las metodologfas que se describen en lo sucesivo en el presente documento.
La figura 2 ilustra un diagrama de flujo de un procedimiento 200 para suministrar de forma dinamica aplicaciones de software virtuales. El procedimiento 200 se describira a continuacion con referencia frecuente a los componentes y datos del entorno 100.
El procedimiento 200 incluye un acto de establecer un filtro de entrada/salida (E/S) de datos configurado para interceptar solicitudes de archivo de datos que se envfan desde una aplicacion de software virtual a un sistema de archivos del sistema operativo (el acto 210). Por ejemplo, el filtro de E/S de datos 120 se puede establecer en un modo de nucleo de sistema operativo 141 de un sistema informatico de cliente. El filtro de E/S de datos puede interceptar una solicitud de lectura 111 enviada desde la aplicacion virtual 110. La solicitud de datos es una solicitud de lectura de aplicacion normal, que se envfa por lo general desde la aplicacion virtual al sistema de archivos 125. En este caso, el filtro de E/S de datos intercepta la solicitud de lectura que se enviana de lo contrario al sistema de archivos (y, a continuacion, al disco 126). El filtro de datos de E/S se implementa sin hacer cambios en como la aplicacion de software solicita los archivos de datos. En ese sentido, la pila de software tradicional permanece sin modificaciones. En algunas realizaciones, el filtro de E/S puede ser un controlador que se ejecuta como parte de un procedimiento de sistema operativo.
Entonces, el procedimiento 200 incluye un acto de interceptar, el filtro de E/S de datos, una solicitud de lectura de archivo de datos que esta configurada para recuperar un archivo de datos especificado a partir del sistema de archivos (el acto 220). Por ejemplo, un filtro de E/S de datos 120 puede interceptar la solicitud de lectura 111 antes
5
10
15
20
25
30
35
40
45
50
55
60
de enviar la misma al sistema de archivos 125. La solicitud de lectura es una solicitud de un archivo de datos al que esta intentando acceder la aplicacion virtual 110. El archivo de datos, en lugar de estar almacenado en el disco local, esta almacenado en el almacenamiento de datos accesible por red 130. Para cada archivo que se solicita, se crea de forma dinamica un archivo disperso 127 en el disco 126. Tal como se ha explicado en lo que antecede, el archivo disperso es un archivo de marcador de posicion que incluye unicamente el nombre y el tamano del archivo, pero no datos de archivo reales. El marcador de posicion satisface la solicitud inicial de las aplicaciones virtuales para determinar si existe el archivo. Cuando se satisface la aplicacion virtual de que existe un archivo (despues de que lee el archivo disperso), la aplicacion solicita los datos reales del archivo en la solicitud de lectura 111.
Este procedimiento de interceptar solicitudes de lectura puede tener lugar para cada archivo de la aplicacion. Por consiguiente, cada archivo se puede transmitir por secuencias de forma dinamica a la aplicacion virtual a medida que se necesite cada archivo. Los archivos se pueden transmitir por secuencias de forma singular o de forma plural. En algunos casos, se pueden solicitar multiples archivos de datos y transmitirse por secuencias en paralelo. A medida que se recibe la solicitud de lectura del filtro de E/S de datos, la solicitud se convierte a una solicitud de E/S de modo de nucleo que es interceptada por el filtro de E/S. Entonces, el filtro de E/S de datos reenvfa la solicitud de lectura interceptada al almacenamiento de datos accesible por red 130, que esta configurado para devolver el archivo de datos espedfico 131 (el acto 230). En algunos casos, la solicitud interceptada se puede reenviar a un servicio de modo de usuario 115 que se encuentra entre el almacenamiento de datos accesible por red y el filtro de E/S de datos. El servicio de modo de usuario se puede ejecutar en el sistema informatico del usuario o en otro sistema informatico enlazado por red. El sistema recibe unas solicitudes de datos 111 desde el filtro de E/S de datos y reenvfa las solicitudes al almacenamiento de datos de red. El servicio tambien se puede usar para recibir los datos solicitados a partir del almacenamiento de red y pasar los mismos al filtro de E/S de datos. En algunos casos, el almacenamiento de datos de red puede comprender la nube (o Internet), y, en ese sentido, en los archivos de datos especificados se pueden recuperar de la nube / lnternet usando el protocolo de transferencia de hipertexto (HTTP, hypertext transfer protocol).
Entonces, tras recibir el archivo de datos especificado del almacenamiento datos accesibles por red, el filtro de E/S envfa el archivo de datos especificado a la aplicacion de software virtual, para que el archivo de datos especificado pueda ser usado por la aplicacion virtual en respuesta a su solicitud de lectura (el acto 240). Por lo tanto, se puede interceptar una solicitud de datos 111 antes de enviarse al disco, y reenviarse a un servicio que busca los datos a partir de un almacenamiento de datos local o remoto 130. El servicio reenvfa los datos buscados 131 de vuelta al filtro de E/S y el filtro de E/S reenvfa los datos a la aplicacion virtual 110. Por consiguiente, los archivos de la aplicacion se pueden transmitir por secuencias de forma dinamica al sistema informatico del usuario (en concreto, a la aplicacion virtual) sin almacenarse en el sistema de archivos del sistema informatico local. Cada archivo de datos recuperado de forma dinamica del almacenamiento de datos de red aparece ante la aplicacion de software virtual como si los archivos de datos se estuvieran recibiendo del sistema de archivos del sistema informatico.
Adicionalmente, o como alternativa, un servicio de aplicacion en el sistema informatico local del filtro de E/S puede proporcionar servicios para producir o modificar de otro modo los datos recibidos para asegurar que se puedan leer por el sistema informatico local. Debido a que los datos de aplicacion pueden estar almacenados en cualquier formato, cualquier tipo de codificacion criptografica o cualquier tipo de compresion en el almacenamiento de datos de red, el servicio de aplicacion o filtro de E/S puede estar configurado para descomprimir, descodificar criptograficamente y/o volver a dar formato a los datos recibidos para cambiar los datos a una forma legible. Tambien se pueden realizar otras operaciones por medio de este servicio, segun sea necesario. Por lo tanto, el sistema se puede implementar sin hacer cambio alguno en la pila nativa de la aplicacion.
La figura 3 ilustra un diagrama de flujo de un procedimiento 300 para atribuir datos de aplicacion entre almacenamientos de datos locales y de red. El procedimiento 300 se describira a continuacion con referencia frecuente a los componentes y datos del entorno 400 de la figura 4.
El procedimiento 300 incluye un acto de recibir de un usuario administrativo una indicacion de que porciones especificadas de una aplicacion virtual se van a almacenar en un almacenamiento de datos local y que porciones se van a almacenar en un almacenamiento de datos de red (el acto 310). Por ejemplo, el filtro de e/s de datos 420 puede recibir una indicacion 423 desde el usuario administrativo 425 que indica que porciones especificadas de la aplicacion virtual 410 se van a almacenar en el almacenamiento de datos local 426 y que porciones se van a almacenar en el almacenamiento de datos accesible por red 430. Por lo tanto, al menos en algunos casos, puede ser deseable que un administrador informatico especifique que algunos archivos se pueden almacenar de forma local, en el sistema informatico local del usuario, mientras otros archivos de datos estan almacenados en el almacenamiento de datos remoto. El administrador puede especificar en donde estan almacenados que archivos, y puede actualizar esa determinacion mientras el usuario esta usando la aplicacion virtual 410. Por consiguiente, los archivos 431 que estaban almacenados en el almacenamiento de datos local 426 se pueden eliminar si el administrador asf lo especifica. A la inversa, se pueden mover archivos de datos del almacenamiento de datos accesible por red al almacenamiento datos local si el administrador asf lo especifica. Se ha de hacer notar que, cuando se hace referencia a archivos de datos que estan almacenados de forma local, los archivos estan almacenados de forma local y existen en el disco, pero como archivos dispersos vados que contienen unicamente informacion de nombre y de tamano de archivo.
5
10
15
20
25
30
35
40
45
El administrador tambien puede actualizar paquetes de aplicacion en el almacenamiento de datos de red 430. Entonces, la siguiente vez que los archivos actualizados son solicitados por la aplicacion virtual, se proporcionan los archivos actualizados en lugar de las versiones antiguas. En ese sentido, la aplicacion virtual se puede actualizar al cambiar a un nuevo paquete de aplicacion. Estos archivos actualizados se pueden proporcionar a todos los usuarios que acceden posteriormente a esos archivos. Se crean nuevos archivos en el sistema de archivos local para sustituir cualquiera de los archivos locales que necesitan actualizacion.
El procedimiento 300 tambien incluye un acto de generar una o mas porciones de metadatas que describen que porciones especificadas de la aplicacion virtual se van a almacenar en el almacenamiento datos local (el acto 320). El sistema informatico local puede generar metadatos 421 que son usados por el filtro de E/S de datos para determinar a donde reenviar las solicitudes de datos 411 que se reciben de la aplicacion virtual 410. Los metadatos indican, para cada archivo, en donde se almacena el archivo de datos (o bien de forma local 426 o bien de forma remota 430). Por lo tanto, cuando el filtro de E/S de datos recibe una solicitud de datos a partir de la aplicacion virtual, en lugar de reenviar de forma automatica la solicitud al servicio de modo de usuario 115 (o directamente al almacenamiento de datos de red), el filtro de E/S de datos accede a los metadatos 421 para determinar si los datos estan almacenados de forma local o en el almacenamiento remoto. Si los datos estan almacenados de forma local, la solicitud de datos se envfa al sistema de archivos local. Si los datos estan almacenados de forma remota, la solicitud de datos se envfa al almacenamiento de datos de red. Por lo tanto, tal como se ha explicado en lo que antecede, un administrador 425 puede indicar en donde se va almacenar cada archivo, y puede informarse a la E/S de datos acerca de las elecciones del administrador a medida que se realizan las mismas (a traves de la indicacion 423). Por consiguiente, los metadatos se pueden actualizar de forma continua a medida que el administrador atribuye archivos de datos, y el filtro de E/S de datos puede reenviar correctamente la solicitud de datos basandose en los metadatos actualizados.
Por lo tanto, tal como se ha descrito en lo que antecede, se puede recibir una solicitud de archivo de datos 411 desde una aplicacion virtual que solicita los datos de un archivo de datos especificado (el acto 330). Entonces, el filtro de E/S de datos 420 puede determinar, basandose en los metadatos generados 421, si el archivo de datos especificado esta almacenado en el almacenamiento de datos local 426 o el almacenamiento de datos remoto 430 (el acto 340). Basandose en esa determinacion, el filtro de E/S de datos envfa a la solicitud de archivo de datos al almacenamiento datos local o al almacenamiento de datos remoto (el acto 350). Las solicitudes de archivo de datos se pueden recibir de forma singular o de forma plural, y se pueden reenviar al almacenamiento de datos apropiado de forma singular o de forma plural. De forma similar, los datos 431 se pueden recibir como archivos individuales o como grupos de archivos. En algunos casos, diferentes solicitudes de datos se pueden enviar al almacenamiento de datos local y al almacenamiento de datos remoto de forma simultanea. Cuando las solicitudes de datos son satisfechas por los almacenamientos de datos respectivos, los datos se pueden enviar de vuelta al filtro de E/S de datos y, entonces, a la aplicacion virtual como archivos individuales o en grupos de archivos. En algunos casos, los datos se pueden transmitir por secuencias desde cualquiera o ambos del almacenamiento de datos local y el almacenamiento de datos accesible por red remoto. A medida que se reciben los datos a partir del almacenamiento de datos remoto, pasan a la aplicacion virtual sin almacenar ninguno de los datos en el almacenamiento de datos local.
Por consiguiente, se proporcionan procedimientos, sistemas y productos de programa informatico que suministran de forma dinamica aplicaciones de software virtuales. Debido a que la aplicacion virtual es usada por el usuario, los archivos de datos se transmiten por secuencias de forma dinamica y automatica desde el almacenamiento de datos de red segun necesite la aplicacion virtual. Ademas, se proporcionan procedimientos, sistemas y productos de programa informatico que permiten la atribucion de datos dinamica entre almacenamientos de datos locales y accesibles por red.
Las realizaciones que se describen se han de considerar en todos los aspectos unicamente como ilustrativas y no restrictivas. El alcance de la invencion, por lo tanto, se indica por las reivindicaciones adjuntas en lugar de por la descripcion anterior. Todos los cambios que entren dentro del significado de las reivindicaciones se han de considerar englobados dentro de su alcance.

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Un procedimiento (200) implementado por ordenador para suministrar de forma dinamica aplicaciones de software virtuales, en el que las aplicaciones de software virtuales son aplicaciones que se ejecutan en un sistema de cliente que se proporcionan a partir de un servidor de aplicaciones de red en tiempo de ejecucion, comprendiendo el procedimiento:
    un acto de establecer (210) un filtro (120) de entrada/salida, E/S, de datos configurado para interceptar solicitudes (111) de archivo de datos que se envfan desde una aplicacion (110) de software virtual a un sistema (125) de archivos del sistema operativo;
    un acto de interceptar (220), con el filtro de E/S de datos, una solicitud de lectura de archivo de datos que esta
    configurada para recuperar un archivo de datos especificado a partir del sistema de archivos;
    un acto de reenviar (230), con el filtro de E/S de datos, la solicitud de lectura interceptada a un almacenamiento
    (130) de datos accesible por red configurado para devolver el archivo (131) de datos espedfico; y
    tras recibir (240) el archivo de datos especificado desde el almacenamiento de datos de red, un acto de enviar, el
    filtro de E/S, el archivo de datos especificado a la aplicacion de software virtual, de tal modo que el archivo de
    datos especificado pueda ser usado por la aplicacion virtual en respuesta a su solicitud de lectura,
    en el que una pluralidad de archivos de datos se interceptan y se transmiten por secuencias para proporcionar de forma dinamica cada archivo que necesite la aplicacion de software virtual, y
    en el que los archivos de datos recibidos desde el almacenamiento de datos de red no se almacenan en el sistema de archivos del sistema informatico.
  2. 2. El procedimiento de la reivindicacion 1, en el que cada archivo de datos recuperado de forma dinamica del almacenamiento de datos de red aparece ante la aplicacion de software virtual como si los archivos de datos se estuvieran recibiendo del sistema de archivos del sistema informatico.
  3. 3. El procedimiento de la reivindicacion 1, en el que el filtro de datos de E/S se implementa sin hacer cambios en como la aplicacion de software solicita archivos de datos.
  4. 4. El procedimiento de la reivindicacion 1, en el que los archivos de datos solicitados se transmiten por secuencias desde el almacenamiento de datos de red al sistema informatico.
  5. 5. El procedimiento de la reivindicacion 1, en el que la solicitud interceptada se envfa a un servicio (115) de modo de usuario que esta configurado para reenviar la solicitud al almacenamiento de datos de red y recibir los datos solicitados a partir del almacenamiento de red.
  6. 6. El procedimiento de la reivindicacion 5, en el que el dispositivo de modo de usuario reenvfa los datos recibidos al filtro de E/S, que reenvfa los datos a la aplicacion virtual.
  7. 7. El procedimiento de la reivindicacion 1, en el que el almacenamiento de datos de red comprende la nube, y en el que el archivo de datos especificado se recupera de la nube usando el protocolo de transferencia de hipertexto.
  8. 8. Un sistema informatico que comprende lo siguiente:
    uno o mas procesadores; memoria de sistema;
    uno o mas medios de almacenamiento legibles por ordenador que tienen, almacenados en los mismos, unas instrucciones ejecutables por ordenador que, cuando son ejecutadas por los uno o mas procesadores, dan lugar a que el sistema informatico realice un procedimiento para suministrar de forma dinamica aplicaciones de software virtuales, en el que las aplicaciones de software virtuales son aplicaciones que se ejecutan en un sistema de cliente que se proporcionan a partir de un servidor de aplicaciones de red en tiempo de ejecucion, comprendiendo el procedimiento:
    un acto de establecer (210) un filtro (120) de entrada/salida, E/S, de datos configurado para interceptar solicitudes (111) de archivo de datos que se envfan desde una aplicacion (110) de software virtual a un sistema (125) de archivos;
    un acto de interceptar (220), el filtro de E/S, una solicitud (111) de lectura de archivo de datos que esta configurada para recuperar un archivo (131) de datos especificado a partir del sistema de archivos; un acto de recibir una solicitud de la aplicacion de software virtual para el contenido de datos real del archivo de datos solicitado; y
    tras recibir (240) el archivo de datos especificado desde el almacenamiento de datos de red, un acto de enviar, el filtro de E/S, el contenido de archivo de datos a la aplicacion de software virtual, de tal modo que el archivo de datos especificado pueda ser usado por la aplicacion virtual en respuesta a su solicitud de lectura,
    en el que el archivo de datos solicitado se transmite por secuencias a la aplicacion de software virtual sin guardar ninguno de los contenidos del archivo de datos en el sistema de archivos, y en el que, a medida que la aplicacion
    de software virtual es usada por el usuario, unos archivos de datos se transmiten por secuencias de forma dinamica y automatica desde el almacenamiento de datos de red segun necesite la aplicacion virtual.
  9. 9. El sistema informatico de la reivindicacion 8, en el que el procedimiento comprende adicionalmente:
    un acto de crear un archivo (127) disperso en el sistema de archivos para el archivo de datos solicitado, 5 incluyendo el archivo disperso una informacion de marcador de posicion para el archivo de datos solicitado que
    incluye el nombre y tamano del archivo; y
    un acto de indicar a la aplicacion de software virtual que el archivo existe, incluyendo la indicacion el nombre y tamano de archivo del archivo de datos solicitado.
  10. 10. El sistema informatico de la reivindicacion 8 o 9, en el que la solicitud interceptada se envfa a un servicio (115) 10 de modo de usuario que esta configurado para reenviar la solicitud al almacenamiento de datos de red y recibir los
    datos solicitados de la red, y en el que el servicio de modo de usuario reenvfa los datos recibidos al filtro de E/S, que reenvfa los datos a la aplicacion virtual.
ES12857657.6T 2011-12-15 2012-12-06 Transmisión por secuencias de red autónoma Active ES2623299T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201113327695 2011-12-15
US13/327,695 US8938550B2 (en) 2011-12-15 2011-12-15 Autonomous network streaming
PCT/US2012/068055 WO2013090101A1 (en) 2011-12-15 2012-12-06 Autonomous network streaming

Publications (1)

Publication Number Publication Date
ES2623299T3 true ES2623299T3 (es) 2017-07-10

Family

ID=47968839

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12857657.6T Active ES2623299T3 (es) 2011-12-15 2012-12-06 Transmisión por secuencias de red autónoma

Country Status (12)

Country Link
US (2) US8938550B2 (es)
EP (1) EP2791787B1 (es)
JP (1) JP6188713B2 (es)
KR (1) KR101991537B1 (es)
CN (1) CN103020235B (es)
AU (1) AU2012352719B2 (es)
BR (1) BR112014014336B1 (es)
CA (1) CA2858081A1 (es)
ES (1) ES2623299T3 (es)
MX (1) MX347985B (es)
RU (1) RU2612579C2 (es)
WO (1) WO2013090101A1 (es)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130159382A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Generically presenting virtualized data
US8832296B2 (en) 2011-12-15 2014-09-09 Microsoft Corporation Fast application streaming using on-demand staging
US9166866B2 (en) * 2013-04-30 2015-10-20 Microsoft Technology Licensing, Llc Hydration and dehydration with placeholders
US9405767B2 (en) 2013-05-01 2016-08-02 Microsoft Technology Licensing, Llc Streaming content and placeholders
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster
US10404520B2 (en) * 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
US20160085765A1 (en) * 2014-09-22 2016-03-24 Amazon Technologies, Inc. Computing environment selection techniques
JP6619708B2 (ja) * 2016-08-08 2019-12-11 日本電信電話株式会社 データ分離評価装置、データ分離評価方法およびデータ分離評価プログラム
US20180059990A1 (en) 2016-08-25 2018-03-01 Microsoft Technology Licensing, Llc Storage Virtualization For Files
US11507534B2 (en) 2017-05-11 2022-11-22 Microsoft Technology Licensing, Llc Metadata storage for placeholders in a storage virtualization system

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453334B1 (en) * 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US5953729A (en) * 1997-12-23 1999-09-14 Microsoft Corporation Using sparse file technology to stage data that will then be stored in remote storage
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US6574618B2 (en) * 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
WO2001067379A2 (en) * 2000-03-09 2001-09-13 Exent Technologies, Inc. Registry emulation
US7693992B2 (en) * 2000-06-14 2010-04-06 Disney Enterprises, Inc. Technique for providing access to data
JP2004502236A (ja) * 2000-06-26 2004-01-22 ピクセル ソフトウェア テクノロジーズ リミテッド ストリーム型アプリケーションオンデマンドの高速起動および実行を可能にするためのシステムおよび方法
ATE381191T1 (de) * 2000-10-26 2007-12-15 Prismedia Networks Inc Verfahren und system zur verwaltung von verteilten inhalten und entsprechenden metadaten
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7451196B1 (en) * 2000-12-15 2008-11-11 Stream Theory, Inc. Method and system for executing a software application in a virtual environment
US6735601B1 (en) * 2000-12-29 2004-05-11 Vmware, Inc. System and method for remote file access by computer
US7047377B2 (en) * 2002-08-20 2006-05-16 Gruintine Pueche, Inc. System and method for conducting an auction-based ranking of search results on a computer network
US6999913B2 (en) * 2002-12-10 2006-02-14 John Alan Hensley Emulated read-write disk drive using a protected medium
US7769794B2 (en) * 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US8230095B2 (en) * 2004-05-07 2012-07-24 Wyse Technology, Inc. System and method for integrated on-demand delivery of operating system and applications
RU2007111490A (ru) * 2004-09-30 2008-11-10 Ситрикс Системз, Инк. (US) Способ и устройство для виртуализации оконной информации
US8024523B2 (en) * 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US20060235871A1 (en) * 2005-04-18 2006-10-19 James Trainor Method and system for managing metadata information
KR100715674B1 (ko) 2005-09-15 2007-05-09 한국전자통신연구원 부하 분산 방법 및 장치, 그리고 이를 이용한 소프트웨어스트리밍 시스템
US8903916B2 (en) 2006-07-05 2014-12-02 International Business Machines Corporation Method, system, and computer-readable medium to render repeatable data objects streamed over a network
US7788394B2 (en) 2006-08-31 2010-08-31 General Instrument Corporation Streaming content over an internet protocol network
US8756293B2 (en) * 2007-04-23 2014-06-17 Nholdings Sa Providing a user with virtual computing services
US8892738B2 (en) * 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
WO2009085977A2 (en) * 2007-12-20 2009-07-09 Virtual Computer, Inc. Virtual computing management systems and methods
US7987335B1 (en) * 2008-03-28 2011-07-26 Symantec Corporation Techniques for virtualizing data
US8078577B2 (en) * 2008-04-07 2011-12-13 Installfree, Inc. Method of bi-directional synchronization of user data
US8005851B2 (en) * 2008-05-21 2011-08-23 Microsoft Corporation Streaming virtual disk for virtual applications
KR20100071688A (ko) 2008-12-19 2010-06-29 한국전자통신연구원 스케일러블 비디오 코딩 기반의 포괄적 비디오 접근을 위한스트리밍 서비스 장치 및 방법
US8533151B2 (en) * 2009-05-26 2013-09-10 Microsoft Corporation Generating a local copy of a virtualized application package from a local installation
US8341620B2 (en) * 2009-06-25 2012-12-25 Microsoft Corporation Streaming optimized virtual application images
US8352937B2 (en) * 2009-08-03 2013-01-08 Symantec Corporation Streaming an application install package into a virtual environment
US8060560B2 (en) * 2009-08-27 2011-11-15 Net Power And Light, Inc. System and method for pervasive computing
US8886762B2 (en) * 2009-09-17 2014-11-11 Adobe Systems Incorporated Stream duration management
US20110106937A1 (en) 2009-10-29 2011-05-05 Fluke Corporation Mixed-mode analysis
US8643856B2 (en) * 2010-02-02 2014-02-04 Ricoh Company, Ltd. Methods and systems for network printing with user selectable settings
CN101799826B (zh) * 2010-03-04 2011-09-14 中国电子科技集团公司第二十八研究所 一种基于虚拟视图的网络化数据共享***及方法
US20110225576A1 (en) * 2010-03-09 2011-09-15 Jacob Guedalia Data streaming for interactive decision-oriented software applications
US8489708B2 (en) * 2010-04-06 2013-07-16 Microsoft Corporation Virtual application extension points
US8560825B2 (en) * 2010-06-30 2013-10-15 International Business Machines Corporation Streaming virtual machine boot services over a network
US8495625B1 (en) * 2010-07-27 2013-07-23 Symantec Corporation Method and system for creation of streamed files on-demand
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
CN102014158B (zh) * 2010-11-29 2013-07-10 北京兴宇中科科技开发股份有限公司 一种云存储服务客户端高效细粒度数据缓存***与方法
US20120158819A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Policy-based application delivery
US9072972B2 (en) * 2011-04-28 2015-07-07 Numecent Holdings Ltd Application distribution network
US8676938B2 (en) * 2011-06-28 2014-03-18 Numecent Holdings, Inc. Local streaming proxy server

Also Published As

Publication number Publication date
CA2858081A1 (en) 2013-06-20
US20130159381A1 (en) 2013-06-20
US8938550B2 (en) 2015-01-20
AU2012352719B2 (en) 2017-09-28
RU2612579C2 (ru) 2017-03-09
CN103020235B (zh) 2017-04-12
KR20140101370A (ko) 2014-08-19
JP2015507787A (ja) 2015-03-12
CN103020235A (zh) 2013-04-03
BR112014014336A2 (pt) 2017-06-13
AU2012352719A1 (en) 2014-07-03
EP2791787A4 (en) 2015-11-04
EP2791787A1 (en) 2014-10-22
WO2013090101A1 (en) 2013-06-20
BR112014014336B1 (pt) 2021-08-17
RU2014123714A (ru) 2015-12-20
EP2791787B1 (en) 2017-02-01
KR101991537B1 (ko) 2019-09-30
US20150106440A1 (en) 2015-04-16
MX347985B (es) 2017-05-22
MX2014007166A (es) 2014-08-21
JP6188713B2 (ja) 2017-08-30

Similar Documents

Publication Publication Date Title
ES2623299T3 (es) Transmisión por secuencias de red autónoma
US10055216B2 (en) Minimizing image copying during partition updates
US11693908B2 (en) System and methods for dynamic generation of object storage datasets from existing file datasets
KR102020077B1 (ko) 온 디맨드 스테이징을 사용하는 고속 애플리케이션 스트리밍 기법
JP5682996B2 (ja) クライアントプログラム、端末、サーバ装置、サーバプログラム、システムおよび方法
US9600486B2 (en) File system directory attribute correction
US10635715B2 (en) Remote virtualized asset delivery and local provisioning
US11210134B2 (en) Atomic execution unit for object storage
US20190005031A1 (en) Accessing cloud based document libraries over unreliable networks
US20120150886A1 (en) Placeholders returned for data representation items
US9953093B1 (en) Mapping system for a browser history stack and a browser page state
US8805901B1 (en) Geographically distributed file system
US11514127B2 (en) Missing web page relocation
US9838494B1 (en) Reducing retrieval times for compressed objects
KR102216173B1 (ko) 컨텐츠 이용 방법 및 이를 위한 장치
CN107453950B (zh) 一种信息处理方法及监控***
US11366613B2 (en) Method and apparatus for writing data
Choi et al. Sdm: A scientific dataset delivery platform
US11017032B1 (en) Document recovery utilizing serialized data
US20170208108A1 (en) Streaming media with a server identified at runtime
KR101620782B1 (ko) 사전 데이터를 활용한 데이터 저장 방법 및 시스템
US20200026716A1 (en) System and method for operating a digital storage system
JP2011076139A (ja) 文書管理装置、情報処理装置、文書管理システムおよび文書管理プログラム