RU2612579C2 - Автономная сетевая потоковая передача - Google Patents

Автономная сетевая потоковая передача Download PDF

Info

Publication number
RU2612579C2
RU2612579C2 RU2014123714A RU2014123714A RU2612579C2 RU 2612579 C2 RU2612579 C2 RU 2612579C2 RU 2014123714 A RU2014123714 A RU 2014123714A RU 2014123714 A RU2014123714 A RU 2014123714A RU 2612579 C2 RU2612579 C2 RU 2612579C2
Authority
RU
Russia
Prior art keywords
data
file
network
application
data file
Prior art date
Application number
RU2014123714A
Other languages
English (en)
Other versions
RU2014123714A (ru
Inventor
Питер Азиз МОРГАН
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
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 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2014123714A publication Critical patent/RU2014123714A/ru
Application granted granted Critical
Publication of RU2612579C2 publication Critical patent/RU2612579C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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
    • 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/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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (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

Изобретение относится к области компьютерных и сетевых технологий. Технический результат заключается в обеспечении динамической доставки виртуальных программных приложений и распределении данных приложения между локальным и сетевым хранилищами данных. Технический результат достигается за счет установки фильтра ввода/вывода (I/O) данных, выполненного с возможностью перехватывать запросы файла данных, отправляемых из виртуального программного приложения файловой системе операционной системы, извлекать требуемый файл данных из файловой системы, направлять перехваченный запрос на считывание в хранилище данных, доступное по сети, которое выполнено с возможностью возвращать требуемый файл данных, отправлять требуемый файл данных виртуальному программному приложению, а также за счет генерирования метаданных, описывающих, какие требуемые части виртуального приложения сохранены в локальном хранилище. 3 н. и 12 з.п. ф-лы, 4 ил.

Description

УРОВЕНЬ ТЕХНИКИ
Компьютеры сильно интегрировались в рабочие, домашние, мобильные устройства и многие другие места. Компьютеры могут обрабатывать огромное количество информации быстро и эффективно. Программные приложения, спроектированные так, чтобы запускаться на компьютерных системах, позволяют пользователям выполнять широкий круг функций, включающих в себя бизнес-приложения, школьную работу, развлечение и больше. Программные приложения часто спроектированы так, чтобы выполнять специфичные задачи, такие как приложения текстового процессора, для составления документов или почтовые программы для отправки, приема и организации электронной почты.
В каждом случае программные приложения взаимодействуют с разными аппаратными компонентами хостирующей компьютерной системы и используют их. Например, программное приложение может взаимодействовать с локальным хранилищем данных, таким как жесткий диск, DVD-накопитель или флэш-накопитель. Как правило, приложение составляет запросы ввода/вывода (I/O), которые отправляются из приложения в файловую систему операционной системы. Файловая система предоставляет доступ к необходимым данным на диске и возвращает их приложению. В случаях когда используются виртуальные приложения, вместо извлечения данных только из локального жесткого диска, по меньшей мере, часть данных запрашивается из удаленного хранилища данных (обычно сетевого файлового сервера). Эти данные затем принимаются в компьютерной системе и сохраняются на ее локальном жестком диске. Компьютерная файловая система затем отправляет данные приложению, как это и может быть с локально сохраненными данными.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Описанные здесь варианты осуществления направлены на динамическую доставку виртуальных программных приложений и на распределение данных приложения между локальным и сетевым хранилищами данных. В одном варианте осуществления компьютерная система устанавливает фильтр ввода/вывода (I/O) данных, выполненный с возможностью перехватывать запросы файла данных, отправляемые из виртуального программного приложения файловой системе операционной системы. Фильтр I/O данных перехватывает запрос на считывание файла данных, который выполнен с возможностью извлекать требуемый файл данных из файловой системы. Фильтр I/O данных направляет перехваченный запрос на считывание в хранилище данных, доступное по сети, которое выполнено с возможностью возвращать специфичный файл данных. Затем, после приема требуемого файла данных из сетевого хранилища данных, фильтр I/O отправляет требуемый файл данных виртуальному программному приложению. Таким образом, требуемый файл данных является пригодным для использования виртуальным приложением.
В другом варианте осуществления компьютерная система распределяет данные приложения между локальным и сетевым хранилищами данных. Компьютерная система принимает от администрирующего пользователя указание того, какие требуемые части виртуального приложения должны быть сохранены в локальном хранилище данных, а какие части должны быть сохранены в сетевом хранилище данных. Компьютерная система генерирует разные части метаданных, описывающих, какие требуемые части виртуального приложения сохранены в локальном хранилище данных. Затем она принимает запрос файла данных из виртуального приложения, запрашивающего данные требуемого файла данных, и определяет, исходя из сгенерированных метаданных, сохранен ли требуемый файл данных в локальном хранилище данных или удаленном хранилище данных. Далее, исходя из результата определения, компьютерная система отправляет запрос файла данных либо в локальное хранилище данных, либо в удаленное хранилище данных.
Этот раздел сущности изобретения представлен так, чтобы ознакомить с выбором понятий в упрощенной форме, которые дополнительно описываются ниже в «Детальном описании». Этот раздел сущности изобретения не предназначен для идентификации ключевых признаков или существенных признаков заявленного объекта изобретения, а также не предназначен для использования с целью определения объема заявленного объекта изобретения.
Дополнительные признаки и преимущества будут приведены в описании, которое следует ниже, и частично будут очевидны специалисту в данной области техники из описания или могут быть изучены применением идей, которые описаны здесь. Признаки и преимущества вариантов осуществления изобретения могут быть реализованы и получены посредством инструментов и комбинаций, подробно указанных в приложенной формуле изобретения. Признаки вариантов осуществления настоящего изобретения станут более полно очевидны из последующего описания и приложенной формулы изобретения или могут быть изучены применением изобретения, как изложено в нижеследующем описании.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Чтобы дополнительно разъяснить вышеупомянутые и другие преимущества и признаки вариантов осуществления настоящего изобретения, более подробное описание вариантов осуществления настоящего изобретения будет представлено со ссылкой на приложенные чертежи. Понятно, что эти чертежи изображают только типовые варианты осуществления изобретения и поэтому не должны рассматриваться как ограничивающие его объем. Варианты осуществления изобретения будут описаны и объяснены с дополнительной спецификой и в деталях посредством использования сопроводительных чертежей, на которых:
Фиг. 1 иллюстрирует компьютерную архитектуру, в которой варианты осуществления настоящего изобретения могут функционировать вместе с динамической доставкой виртуальных программных приложений.
Фиг. 2 иллюстрирует блок-схему примерного способа динамической доставки виртуальных программных приложений.
Фиг. 3 иллюстрирует блок-схему примерного способа распределения данных приложения между локальным и сетевым хранилищами данных.
Фиг. 4 иллюстрирует вариант осуществления настоящего изобретения, в котором данные распределяются между локальным и сетевым хранилищами данных.
ПОДРОБНОЕ ОПИСАНИЕ
Описанные здесь варианты осуществления направлены на динамическую доставку виртуальных программных приложений и распределение данных приложения между локальным и сетевым хранилищами данных. В одном варианте осуществления компьютерная система устанавливает фильтр ввода/вывода (I/O) данных, выполненный с возможностью перехватывать запросы файла данных, отправляемых из виртуального программного приложения файловой системе операционной системы. Фильтр I/O данных перехватывает запрос на считывание файла данных, который выполнен с возможностью извлекать требуемый файл данных из файловой системы. Фильтр I/O данных направляет перехваченный запрос на считывание в хранилище данных, доступное по сети, которое выполнено с возможностью возвращать конкретный файл данных. Затем, после приема требуемого файла данных из сетевого хранилища данных, фильтр I/O отправляет требуемый файл данных виртуальному программному приложению. Таким образом, требуемый файл данных является пригодным для чтения виртуальным приложением.
В другом варианте осуществления компьютерная система распределяет данные приложения между локальным и сетевым хранилищами данных. Компьютерная система принимает от администрирующего пользователя указание того, какие требуемые части виртуального приложения должны быть сохранены в локальном хранилище данных, а какие части должны быть сохранены в сетевом хранилище данных. Компьютерная система генерирует разные части метаданных, описывающих, какие требуемые части виртуального приложения сохранены в локальном хранилище данных. Затем она принимает запрос файла данных из виртуального приложения, запрашивающего данные требуемого файла данных, и определяет, исходя из сгенерированных метаданных, сохранен ли требуемый файл данных в локальном хранилище данных или удаленном хранилище данных. Затем, исходя из результата определения, компьютерная система отправляет запрос файла данных либо в локальное хранилище данных, либо в удаленное хранилище данных.
Последующее обсуждение ссылается на ряд способов и этапов способов, которые могут выполняться. Следует отметить, что хотя этапы способов могут быть описаны в некотором порядке или иллюстрироваться в блок-схеме, как встречающиеся в определенном порядке, никакого определенного порядка не требуется до тех пор, пока это специально не оговорено, или требуется, поскольку этап зависит от другого этапа, завершаемого до выполняемого этапа.
Варианты осуществления настоящего изобретения могут содержать или задействовать компьютер специализированный или общего назначения, включающий в себя компьютерное аппаратное обеспечение, такое как, например, один или более процессоров и системную память, как описано подробнее ниже. Варианты осуществления в пределах объема настоящего изобретения также включают в себя физические и другие машиночитаемые носители для переноса или хранения машиноисполняемых инструкций и/или структур данных. Такие машиночитаемые носители могут быть любыми доступными носителями, доступ к которым можно осуществлять посредством компьютерной системы общего назначения или специализированной. Машиночитаемые носители, которые хранят машиноисполняемые инструкции в форме данных, представляют собой компьютерные запоминающие носители. Машиночитаемые носители, которые переносят машиноисполняемые инструкции, представляют собой среду передачи. Таким образом, в качестве примера, но не ограничения, варианты осуществления изобретения могут содержать по меньшей мере две совершенно разные разновидности машиночитаемых носителей: компьютерные запоминающие носители и среду (носители) передачи.
Компьютерные запоминающие носители включают в себя RAM, ROM, EEPROM, CD-ROM, твердотельные накопители (SSDs), которые основаны на RAM, флэш-памяти, памяти на фазовых переходах (PCM) или других типах памяти, или другие оптические дисковые накопители, магнитные дисковые накопители или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован для того, чтобы хранить желаемые средства программного кода в форме машиноисполняемых инструкций, данных или структур данных, доступ к которым можно осуществлять посредством компьютера общего назначения или специализированного.
«Сеть» определяется как один или более линий передачи данных и/или коммутаторов данных, которые делают возможным транспорт электронных данных между компьютерными системами, и/или модулями, и/или другими электронными устройствами. Когда информация передается или предоставляется через сеть (либо проводную, беспроводную, либо комбинацией проводной или беспроводной) на компьютер, компьютер должным образом рассматривает соединение как среда передачи. Среда передачи может включать в себя сеть, которая может использоваться для передачи данных или желаемых средств программного кода в форме машиноисполняемых инструкций или в форме структур данных и доступ к которой можно осуществлять посредством компьютера общего назначения или специализированного. Комбинации вышеупомянутые также следует включать в понятие машиночитаемых носителей.
Дополнительно, по достижении различных компонентов компьютерной системы средства программного кода в форме машиноисполняемых инструкций или структур данных могут быть переданы автоматически из среды передачи компьютерным запоминающим носителям (или наоборот). Например, машиноисполняемые инструкции или структуры данных, принятые по сети или линиям передачи данных, могут быть буферизированы в RAM внутри модуля сетевого интерфейсного (например, карты с сетевым интерфейсом или «NIC»), а затем впоследствии переданы в RAM компьютерной системы и/или менее энергозависимому компьютерному запоминающему носителю в компьютерной системе. Таким образом должно быть понятно, что компьютерные запоминающие носители могут быть включены в компоненты компьютерной системы, которые также (или даже главным образом) задействуют среду передачи.
Машиноисполняемые (или машиноинтерпретируемые) инструкции содержат, например, инструкции, которые побуждают компьютер общего назначения, специализированный компьютер или специализированное устройство обработки выполнять некоторую функцию или группу функций. Машиноисполняемые инструкции могут быть, например, инструкциями двоичного, промежуточного формата, такими как на языке ассемблера, или даже в виде исходного кода. Хотя объект изобретения был описан на языке, свойственном структурным признакам и/или методологическим действиям, должно быть понятно, что объект изобретения, определенный в приложенной формуле изобретения, необязательно ограничен описанными признаками или вышеописанными этапами. Напротив, описанные признаки и этапы раскрыты в качестве примерных форм реализации формулы изобретения.
Специалистам в данной области техники будет понятно, что изобретение может быть применено в сетевых вычислительных средах со многими типами конфигураций компьютерной системы, включающими в себя персональные компьютеры, стационарные компьютеры, портативные компьютеры, процессоры обработки сообщений, переносные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые ПК, мини-компьютеры, мейнфрейм-компьютеры, мобильные телефоны, КПК, пейджеры, маршрутизаторы, коммутаторы и т.п. Изобретение может также быть применено в распределенных системных средах, где каждая из локальной и удаленной компьютерных систем, которые соединены (либо посредством проводных линий передачи данных, беспроводных линий передачи данных, либо посредством комбинации проводных линий передачи данных и беспроводных) через сеть, выполняет задачи (например, облачное вычисление, облачные службы и подобные). В распределенной системной среде программные модули могут быть расположены как в локальных, так и в удаленных запоминающих устройствах.
Фиг. 1 иллюстрирует компьютерную архитектуру 100, в которой могут быть применены принципы настоящего изобретения. Компьютерная архитектура 100 включает в себя компьютерную систему, которая функционирует, по меньшей мере, в пользовательском режиме 140 и режиме 141 ядра. Компьютерная система может быть компьютерной системой любого типа, локальной или распределенной, включая облачную вычислительную систему. Каждый режим функционирования включает в себя разные модули, выполненные с возможностью выполнять конкретные типы операций. Эти режимы функционирования и модули компьютерной системы могут использоваться для развертывания виртуальных приложений незаметным и эффективным образом.
Виртуальные программные приложения, упоминаемые в данном документе, являются приложениями, которые, как кажется, выполняются локально, но на самом деле выполняются на сетевом сервере приложений. Сетевой сервер приложений предоставляет данные для приложения пользователю через сеть. В описанных здесь вариантах осуществления пользователь может начать процесс открытием приложения, которое он или она обычно сделал бы нажатием на пиктограмму приложения (или на файл данных, который должен быть открыт виртуальным приложением). После приема инициирующего сигнала от пользователя операционная система инициализирует адресное пространство процесса для исполняемого(ых) файла(ов) приложения путем считывания исполняемого(ых) файла(ов) в память. Следует отметить, что используемый в данном документе термин «файл данных» может относиться как файлу данных, который содержит файлы настроек (которые, как правило, не являются частью исполняемого кода), так и/или на изображение, которое вмещает в себя исполняемые двоичные файлы приложения. Так как и файлы настроек, и исполняемые файлы используются и поддерживаются в данном документе, то термин «файлы данных» будет использоваться, чтобы описывать их в данном документе.
Операционная система далее устанавливает указатель инструкций в точку входа для приложения и запускает процесс. Уровень виртуализации в пределах операционной системы обнаруживает и инициализирует себя в течение этой фазы запуска. Виртуальное приложение затем запускается в пользовательской компьютерной системе.
В некоторых случаях файлы данных виртуальных приложений передаются посредством потоковой передачи динамически, если они необходимы. Когда виртуальное приложение опубликовано на целевой компьютерной системе, создаются только разреженные файлы данных. Разреженные файлы данных «выглядят» как нормальные файлы данных, но только метка-заполнитель существует для файла. Метка-заполнитель включает в себя имя и размер файла. Содержимое для файла данных, соответствующего разреженному файлу, еще не было передано посредством потоковой передачи. Потоковая передача выполняется, как только запрошены фактические данные для файла. На этом этапе данные для файла передаются посредством потоковой передачи из хранилища 130 данных, доступного по сети. Как правило, фактические данные файла данных не необходимы до тех пор, пока операционная система не считает исполняемый(ые) файл(ы) в память. В других реализациях данные файла могут передаваться посредством потоковой передачи и копироваться, и запрос на считывание операционной системы может быть удовлетворен на основании данных, которые были переданы посредством потоковой передачи и скопированы на локальный жесткий диск компьютерной системы (или другое хранилище данных).
Тем не менее, описанные здесь варианты осуществления не копируют содержимое файла на локальный жесткий диск. Передаваемое посредством потоковой передачи содержимое перехватывается фильтром ввода/вывода (I/O) данных до того, как оно может быть сохранено на диске. Фильтр I/O данных пропускает передаваемые посредством потоковой передачи данные в приложение, чтобы удовлетворить запрос на считывание. Приложение затем использует передаваемые посредством потоковой передачи данные для функционирования, как оно обычно это и делало бы, без записи каких-либо передаваемых посредством потоковой передачи данных на диск. На самом деле, виртуальное приложение даже не знает (или не должно знать), что его запрос на считывание был удовлетворен не локальным жестким диском, а вместо этого динамически передаваемыми посредством потоковой передачи данными. Никаких изменений не требуется выполнять в виртуальном приложении или файловой системе компьютерной системы. Вместо этого фильтр I/O данных функционирует незаметно между ними так, чтобы предоставить динамически передаваемое посредством потоковой передачи виртуальное приложение. Это же самое виртуальное программное приложение (сохраненное в сетевом хранилище данных) может быть предоставлено, по существу, любому количеству других компьютерных систем и/или виртуальных машин. Кроме того, когда одно и то же приложение используется на множестве разных компьютерных систем, дисковое пространство не будет дублировано, так как единственная копия приложения на сервере может быть передана посредством потоковой передачи каждой из разных компьютерных систем. Эти концепции будут объяснены далее с учетом способов 200 и 300 на Фиг. 2 и 3 соответственно.
С учетом описанных выше систем и архитектур, методологии, которые могут быть реализованы в соответствии с раскрытым объектом изобретения, будут лучше поняты со ссылкой на блок-схемы на Фиг. 2 и 3. В целях упрощения объяснения эти методологии показаны и описаны как последовательность этапов. Однако должно быть понятно и очевидно, что заявленный объект изобретения не ограничен порядком этапов, так как некоторые этапы могут встречаться в разных порядках и/или совместно с другими этапами из тех, что изображены и описаны в данном документе. Более того, не все проиллюстрированные этапы могут быть востребованы для того, чтобы реализовать методологии, описанные в дальнейшем.
Фиг. 2 иллюстрирует блок-схему способа 200 динамической доставки виртуальных программных приложений. Способ 200 будет теперь описан с постоянной ссылкой на компоненты и данные среды 100.
Способ 200 включает в себя этап установления фильтра ввода/вывода (I/O) данных, выполненного с возможностью перехватывать запросы файла данных, отправляемые из виртуального программного приложения файловой системе операционной системы (этап 210). Например, фильтр 120 I/O данных может быть установлен в режиме 141 ядра операционной системы клиентской компьютерной системы. Фильтр I/O данных может перехватывать запрос 111 на считывание, отправленный из виртуального приложения 110. Запрос данных является обычным запросом приложения на считывание, как правило, отправляемый из виртуального приложения файловой системе 125. В этом случае фильтр I/O данных перехватывает запрос на считывание, который иначе был бы отправлен файловой системе (и затем на диск 126). Фильтр I/O данных реализован без выполнения изменений в том, как программное приложение запрашивает файлы данных. Традиционный программный стек, как таковой, остается неизмененным. В некоторых случаях фильтр I/O может быть драйвером, работающим как часть процесса операционной системы.
Способ 200 далее включает в себя этап перехвата фильтром I/O данных запроса на считывание файла данных, который выполнен с возможностью извлекать требуемый файл данных из файловой системы (этап 220). Например, фильтр 120 I/O данных может перехватить запрос 111 на считывание до того, как он будет отправлен файловой системе 125. Запрос на считывание представляет собой запрос файла данных, доступ к которому пытается получить виртуальное приложение 110. Файл данных вместо сохранения на локальном диске, сохраняется в хранилище 130 данных доступном по сети. Для каждого запрашиваемого файла на диске 126 динамически создается разреженный файл 127. Как пояснено выше, разреженный файл представляет собой файл-заполнитель, который включает в себя только имя и размер файла, но не фактические данные файла. Этот заполнитель удовлетворяет изначальный запрос виртуальных приложений, чтобы определить, существует ли файл. Когда виртуальное приложение удовлетворено тем, что файл существует (после того, как оно считает разреженный файл), приложение запрашивает фактические данные файла в запросе 111 на считывание.
Этот процесс перехвата запросов на считывание может иметь место в отношении каждого файла приложения. Соответственно, каждый файл может передаваться динамически посредством потоковой передачи виртуальному приложению, когда он необходим. Файлы могут передаваться посредством потоковой передачи по отдельности или во множестве. В некоторых случаях множественные файлы данных могут запрашиваться и передаваться посредством потоковой передачи параллельно. После приема запроса на считывание в фильтре I/O данных запрос конвертируется в запрос I/O режима ядра, который перехватывается фильтром I/O. Фильтр I/O данных затем направляет перехваченный запрос на считывание в хранилище 130 данных, доступное по сети, которое выполнено с возможностью возвращать конкретный файл 131 данных (этап 230). В некоторых случаях перехваченный запрос может быть направлен службе 115 пользовательского режима, которая находится между хранилищем данных, доступным по сети, и фильтром I/O данных. Служба пользовательского режима может запускаться в пользовательской компьютерной системе или в другой подключенной к сети компьютерной системе. Система принимает запросы 111 данных из фильтра I/O данных и направляет запросы в сетевое хранилище данных. Служба может также использоваться для того, чтобы принимать запрашиваемые данные из сетевого хранилища и пропускать их в фильтр I/O данных. В некоторых случаях сетевое хранилище данных может содержать облако (или Интернет), и требуемые файлы данных, как таковые, могут быть извлечены из облака/Интернета с использованием протокола передачи гипертекста (HTTP).
Далее после приема требуемого файла данных из хранилища данных, доступного по сети, фильтр I/O отправляет требуемый файл данных виртуальному программному приложению так, чтобы требуемый файл данных являлся пригодным для использования виртуальным приложением в ответ на его запрос на считывание (этап 240). Таким образом, запрос 111 данных может быть перехвачен до отправки на диск и направлен службе, которая извлекает данные из локального или удаленного хранилища 130 данных. Служба направляет извлеченные данные 131 назад фильтру I/O, и фильтр I/O направляет данные виртуальному приложению 110. Соответственно, файлы приложения могут передаваться посредством динамической потоковой передачи пользовательской компьютерной системе (в частности, виртуальному приложению) без сохранения в локальной файловой системе компьютерной системы. Каждый файл данных, динамически извлеченный из сетевого хранилища данных, предоставляется виртуальному программному приложению, как если бы файлы данных были приняты из файловой системы компьютерной системы.
В качестве дополнения или альтернативы служба приложений в локальной компьютерной системе или фильтр I/O могут предоставлять службы, чтобы преобразовывать или модифицировать иным образом принятые данные, чтобы быть уверенным, что они являются пригодными для чтения локальной компьютерной системой. Поскольку данные приложения могут сохраняться в любом формате, любом типе шифрования и любом типе сжатия в сетевом хранилище данных, служба приложений или фильтр I/O могут быть выполнены с возможностью распаковывать, дешифровать и/или переформатировать принятые данные, чтобы изменять данные в пригодную для чтения форму. Другие операции также могут выполняться этой службой, если необходимо. Таким образом, система может быть реализована без выполнения каких-либо изменений в родном стеке приложения.
Фиг. 3 иллюстрирует блок-схему способа 300 для распределения данных приложения между локальным и сетевым хранилищами данных. Способ 300 будет теперь описан с постоянной ссылкой на компоненты и данные среды 400 (Фиг. 4).
Способ 300 включает в себя этап приема от администрирующего пользователя указания того, какие требуемые части виртуального приложения должны быть сохранены в локальном хранилище данных, а какие части должны быть сохранены в сетевом хранилище данных (этап 310). Например, фильтр 420 I/O данных может принимать указание 423 от администрирующего пользователя 425, указывающее, какие требуемые части виртуального приложения 410 должны быть сохранены в локальном хранилище 426 данных, а какие части должны быть сохранены в хранилище 430 данных, доступном по сети. Таким образом, по меньшей мере, в некоторых случаях может быть желательным для компьютерного администратора указывать, что некоторые файлы должны быть сохранены локально в пользовательской локальной компьютерной системе, в то время как другие файлы должны быть сохранены в удаленном хранилище данных. Администратор может указать, какие файлы где сохранены, и может обновить результат определения, пока пользователь использует виртуальное приложение 410. Соответственно, файлы 431, которые были сохранены в локальном хранилище 426 данных, могут удаляться, если так указано администратором. В противном случае файлы данных можно перемещать из хранилища данных, доступного по сети, в локальное хранилище данных, если так указано администратором. Следует отметить, что при ссылке на файлы данных, сохраняемые локально, файлы сохраняются локально и существуют на диске, но в качестве пустых разреженных файлов, которые вмещают в себя только информацию об имени и размере файла.
Администратор может также обновить пакеты прикладных программ в сетевом хранилище 430 данных. Затем, в следующий раз, когда обновленные файлы запрашиваются виртуальным приложением, обновленные файлы предоставляются вместо старых версий. Виртуальное приложение, как таковое, может быть обновлено переключением на новый пакет прикладных программ. Эти обновленные файлы могут предоставляться всем пользователям, которые позднее осуществляют доступ к этим файлам. Новые файлы создаются в локальной файловой системе для замены любых локальных файлов, которые требуют обновления.
Способ 300 также включает в себя этап генерирования одной или более частей метаданных, описывающих, какие требуемые части виртуального приложения сохранены в локальном хранилище данных (этап 320). Локальная компьютерная система может генерировать метаданные 421, которые используются фильтром I/O данных для того, чтобы определять, куда направлять запросы 411 данных, принятые из виртуального приложения 410. Метаданные указывают для каждого файла, где файл данных сохранен (либо локально 426, либо удаленно 430). Таким образом, когда фильтр I/O данных принимает запрос данных из виртуального приложения, вместо автоматического направления запроса службе 115 пользовательского режима (или напрямую в сетевое хранилище данных) фильтр I/O данных осуществляет доступ к метаданным 421, чтобы определить, сохранены ли данные локально или в удаленном хранилище. Если данные сохранены локально, запрос данных отправляется локальной файловой системе. Если данные сохранены удаленно, запрос данных отправляется в сетевое хранилище данных. Таким образом, как пояснено выше, администратор 425 может указывать, где должен быть сохранен каждый файл, и данные I/O могут быть извещены о выборах администратора, как только они совершены (через индикацию 423). Соответственно, метаданные могут непрерывно обновляться по мере распределения файлов данных администратором, и фильтр I/O данных может корректно направлять запрос данных на основании обновленных метаданных.
Таким образом, как описано выше, запрос 411 файла данных может приниматься из виртуального приложения, запрашивающего данные требуемого файла данных (этап 330). Фильтр 420 I/O данных может затем определять, исходя из сгенерированных метаданных 421, сохранен ли требуемый файл данных в локальном хранилище 426 данных или удаленном хранилище 430 данных (этап 340). Исходя из результата определения, фильтр I/O данных отправляет запрос файла данных либо в локальное хранилище данных, либо в удаленное хранилище данных (этап 350). Запросы файла данных могут приниматься по отдельности или во множестве и могут направляться в соответствующее хранилище данных по отдельности или во множестве. Аналогичным образом данные 431 могут приниматься как отдельные файлы или как группа файлов. В некоторых случаях разные запросы данных могут отправляться как в локальное хранилище данных, так и в удаленное хранилище данных одновременно. Когда запросы данных удовлетворены соответствующими хранилищами данных, данные могут быть отравлены назад в фильтр I/O данных, а затем в виртуальное приложение как отдельные файлы или группа файлов. В некоторых случаях данные могут передаваться посредством потоковой передачи из любого или обоих локального хранилища данных и удаленного хранилища данных, доступного по сети. После приема данных из удаленного хранилища данных они пропускаются в виртуальное приложение без сохранения каких-либо данных в локальном хранилище данных.
Соответственно, предложены способы, системы и компьютерные программные продукты, которые динамически доставляют виртуальные программные приложения. При использовании виртуального приложения пользователем файлы данных динамически и автоматически передаются посредством потоковой передачи из сетевого хранилища данных, как необходимо для виртуального приложения. Более того, предложены способы, системы и компьютерные программные продукты, которые обеспечивают динамическое распределение данных между локальным хранилищем данных и хранилищем данных с сетевым доступом.
Настоящее изобретение может быть воплощено в других конкретных формах без отступления от его сущности и существенных характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях только как иллюстративные и неограничительные. Объем изобретения поэтому указывается приложенной формулой изобретения, а не предоставленным выше описанием. Все изменения, которые подпадают под значение и диапазон эквивалентности формулы изобретения, должны быть включены в объем изобретения.

Claims (34)

1. Реализуемый на компьютере способ для динамической доставки виртуальных программных приложений в компьютерной системе, включающей в себя по меньшей мере один процессор и память, в компьютерной сетевой среде, включающей в себя множество вычислительных систем, причем способ содержит:
этап установления фильтра ввода/вывода (I/O) данных, выполненного с возможностью перехватывать запросы файла данных, отправляемых из виртуального программного приложения файловой системе операционной системы;
этап перехвата фильтром I/O данных запроса на считывание файла данных, который выполнен с возможностью извлекать требуемый файл данных из файловой системы;
этап направления фильтром I/O данных перехваченного запроса на считывание в хранилище данных, доступное по сети, сконфигурированное так, чтобы возвращать требуемый файл данных; и
после приема требуемого файла данных из сетевого хранилища данных этап отправки фильтром I/O требуемого файла данных виртуальному программному приложению, так что требуемый файл данных является пригодным для использования виртуальным приложением в ответ на его запрос на считывание.
2. Способ по п. 1, в котором множество файлов данных перехватывается и передается посредством потоковой передачи так, чтобы динамически обеспечить каждый файл, требуемый виртуальным программным приложением.
3. Способ по п. 1, в котором файлы данных, принятые из сетевого хранилища данных, не сохраняются в файловой системе компьютерной системы.
4. Способ по п. 1, в котором каждый файл данных, динамически извлеченный из сетевого хранилища данных, представляется виртуальному программному приложению так, как если бы файлы данных были приняты из файловой системы компьютерной системы.
5. Способ по п. 1, в котором фильтр I/O данных реализован без выполнения изменений в том, как программное приложение запрашивает файлы данных.
6. Способ по п. 1, в котором запрашиваемые файлы данных передаются посредством потоковой передачи из сетевого хранилища данных компьютерной системе.
7. Способ по п. 1, в котором перехваченный запрос отправляется службе пользовательского режима, которая сконфигурирована так, чтобы направлять запрос в сетевое хранилище данных и принимать запрашиваемые данные из сетевого хранилища.
8. Способ по п. 7, в котором служба пользовательского режима направляет принятые данные фильтру I/O, который направляет данные виртуальному приложению.
9. Способ по п. 1, в котором сетевое хранилище данных представляет собой облако, при этом требуемый файл данных извлекается из облака, используя протокол передачи гипертекста.
10. Реализуемый на компьютере способ распределения данных приложения между локальным и сетевым хранилищами данных в клиентской компьютерной системе, включающей в себя по меньшей мере один процессор и память, в компьютерной сетевой среде, включающей в себя множество вычислительных систем, причем способ содержит:
этап приема от администрирующего пользователя указания того, какие требуемые части виртуального приложения должны быть сохранены в локальном хранилище данных, а какие части должны быть сохранены в сетевом хранилище данных;
этап генерирования одной или более частей метаданных, описывающих, какие требуемые части виртуального приложения сохранены в локальном хранилище данных;
этап приема запроса файла данных от виртуального приложения, запрашивающего данные требуемого файла данных;
этап определения, исходя из сгенерированных метаданных, хранится ли требуемый файл данных в локальном хранилище данных или удаленном хранилище данных; и
исходя из результата определения, этап отправки запроса файла данных к по меньшей мере одному из локального хранилища данных и удаленного хранилища данных.
11. Способ по п. 10, в котором администрирующий пользователь обновляет приложение в сетевом хранилище данных посредством замены пакета прикладных программ.
12. Способ по п. 11, в котором локальная служба в локальной компьютерной системе сконфигурирована так, чтобы осуществлять по меньшей мере одно из следующего, чтобы обеспечить то, что данные являются считываемыми локальной компьютерной системой: дешифровать файлы данных, переформатировать файлы данных и распаковывать файлы данных.
13. Компьютерная система для динамической доставки виртуальных программных приложений, содержащая следующее:
один или более процессоров;
системную память;
один или более машиночитаемых запоминающих носителей, на которых хранятся машиноисполняемые инструкции, которые когда исполняются одним или более процессорами, побуждают вычислительную систему выполнять способ динамической доставки виртуальных программных приложений, способ содержит:
этап установления фильтра ввода/вывода (I/O) данных, выполненного с возможностью перехватывать запросы 111 файла данных, отправляемых из виртуального программного приложения 110 файловой системе;
этап перехвата фильтром I/O запроса на считывание файла данных, который выполнен с возможностью извлекать требуемый файл данных из файловой системы;
этап создания разреженного файла в файловой системе для запрашиваемого файла данных, причем разреженный файл включает в себя информацию-заполнитель для запрашиваемого файла данных, включающую в себя имя и размер файла;
этап указания виртуальному программному приложению, что файл существует, причем указание включает в себя имя и размер запрашиваемого файла данных;
этап приема запроса от виртуального программного приложения о фактическом содержании данных запрашиваемого файла данных;
этап направления перехваченного запроса на считывание службе пользовательского режима, которая направляет запрос данных в хранилище данных, доступное по сети, сконфигурированное так, чтобы возвращать требуемый файл данных; и
после приема требуемого файла данных из сетевого хранилища данных службой пользовательского режима этап направления службой пользовательского режима содержимого файла данных фильтру I/O, который отправляет содержимое файла данных виртуальному программному приложению так, что требуемый файл данных является пригодным для использования виртуальным приложением в ответ на его запрос на считывание.
14. Компьютерная система по п. 13, в которой запрашиваемый файл данных передается посредством потоковой передачи виртуальному программному приложению без сохранения какого-либо содержимого файла данных в файловой системе.
15. Компьютерная система по п. 14, в которой по мере того, как виртуальное программное приложение используется пользователем, файлы данных динамически и автоматически передаются посредством потоковой передачи из сетевого хранилища данных по мере необходимости виртуальным приложением.
RU2014123714A 2011-12-15 2012-12-06 Автономная сетевая потоковая передача RU2612579C2 (ru)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
RU2014123714A RU2014123714A (ru) 2015-12-20
RU2612579C2 true RU2612579C2 (ru) 2017-03-09

Family

ID=47968839

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014123714A RU2612579C2 (ru) 2011-12-15 2012-12-06 Автономная сетевая потоковая передача

Country Status (12)

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

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832296B2 (en) 2011-12-15 2014-09-09 Microsoft Corporation Fast application streaming using on-demand staging
US20130159382A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Generically presenting virtualized data
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
US10404520B2 (en) * 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster
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
US11818210B2 (en) * 2019-10-07 2023-11-14 Advanced Measurement Technology, Inc. Systems and methods of direct data storage for measurement instrumentation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034736A1 (en) * 1998-07-22 2001-10-25 Dan Eylon Method and system for executing network streamed application
US20040111250A1 (en) * 2002-12-10 2004-06-10 Hensley John Alan Emulated read-write disk drive using a protected medium
RU2007111490A (ru) * 2004-09-30 2008-11-10 Ситрикс Системз, Инк. (US) Способ и устройство для виртуализации оконной информации
US20090293054A1 (en) * 2008-05-21 2009-11-26 Microsoft Corporation Streaming Virtual Disk for Virtual Applications
US7987335B1 (en) * 2008-03-28 2011-07-26 Symantec Corporation Techniques for virtualizing data

Family Cites Families (40)

* 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
AU2001243502A1 (en) * 2000-03-09 2001-09-17 Exent Technologies, Inc. Registry emulation
US7693992B2 (en) * 2000-06-14 2010-04-06 Disney Enterprises, Inc. Technique for providing access to data
AU2001268696A1 (en) * 2000-06-26 2002-01-08 Streamix Ltd. A system and method for enabling rapid launching and execution of streamed applications-on-demand
EP1364510B1 (en) * 2000-10-26 2007-12-12 Prismedia Networks, Inc. Method and system for managing distributed content and related metadata
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
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
US8024523B2 (en) * 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
CA2543941A1 (en) * 2005-04-18 2006-10-18 Diskstream Inc. 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
US20090164994A1 (en) * 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
US8078649B2 (en) * 2008-04-07 2011-12-13 Installfree, Inc. Method and system for centrally deploying and managing virtual software 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 中国电子科技集团公司第二十八研究所 一种基于虚拟视图的网络化数据共享系统及方法
SG183950A1 (en) * 2010-03-09 2012-10-30 Happy Cloud Inc 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
WO2012146985A2 (en) * 2011-04-28 2012-11-01 Approxy Inc. Ltd. Adaptive cloud-based application streaming
US8676938B2 (en) * 2011-06-28 2014-03-18 Numecent Holdings, Inc. Local streaming proxy server

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034736A1 (en) * 1998-07-22 2001-10-25 Dan Eylon Method and system for executing network streamed application
US20040111250A1 (en) * 2002-12-10 2004-06-10 Hensley John Alan Emulated read-write disk drive using a protected medium
RU2007111490A (ru) * 2004-09-30 2008-11-10 Ситрикс Системз, Инк. (US) Способ и устройство для виртуализации оконной информации
US7987335B1 (en) * 2008-03-28 2011-07-26 Symantec Corporation Techniques for virtualizing data
US20090293054A1 (en) * 2008-05-21 2009-11-26 Microsoft Corporation Streaming Virtual Disk for Virtual Applications

Also Published As

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

Similar Documents

Publication Publication Date Title
RU2612579C2 (ru) Автономная сетевая потоковая передача
JP6621543B2 (ja) ハイブリッドアプリケーションの自動更新
JP6285870B2 (ja) オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング
US11394659B2 (en) Tracking costs for a deployable instance
US10521447B2 (en) Container application execution using image metadata
US20140052840A1 (en) Versatile application configuration for deployable computing environments
US10210172B1 (en) File system integration and synchronization between client and server
JP2016529599A (ja) コンテンツクリップボードの同期
US11586672B2 (en) Remote virtualized asset delivery and local provisioning
US10747458B2 (en) Methods and systems for improving efficiency in cloud-as-backup tier
US11263297B2 (en) Dynamic insertion of variablized secrets in a pipeline integration system
US20170223078A1 (en) Asset streaming and delivery
US10015248B1 (en) Syncronizing changes to stored data among multiple client devices
US10013430B2 (en) Remotely stored application files