CN103064703A - 使用按需分阶段的快速应用流传输 - Google Patents

使用按需分阶段的快速应用流传输 Download PDF

Info

Publication number
CN103064703A
CN103064703A CN2012105446170A CN201210544617A CN103064703A CN 103064703 A CN103064703 A CN 103064703A CN 2012105446170 A CN2012105446170 A CN 2012105446170A CN 201210544617 A CN201210544617 A CN 201210544617A CN 103064703 A CN103064703 A CN 103064703A
Authority
CN
China
Prior art keywords
file
computer system
data
virtual
application
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.)
Granted
Application number
CN2012105446170A
Other languages
English (en)
Other versions
CN103064703B (zh
Inventor
M·R·扬德克
G·S·布拉尔
H·李
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN103064703A publication Critical patent/CN103064703A/zh
Application granted granted Critical
Publication of CN103064703B publication Critical patent/CN103064703B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several 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/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
    • 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
    • G06F8/65Updates
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • 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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet

Landscapes

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

Abstract

本发明涉及使用按需分阶段的快速应用流传输。实施例涉及使用按需文件分阶段来快速启动虚拟软件应用、使用按需注册表分阶段来快速启动虚拟软件应用以及涉及使用按需分阶段来快速发布虚拟软件应用。在一个场景中,计算机系统创建高级文件列表,该高级文件列表包括属于虚拟应用包的部分的指定的高级数据文件和目录的列表。计算机系统接收来自应用用户的将访问虚拟应用的指示,并基于接收到的指示为将被访问的那些数据文件创建稀疏数据文件。然后,一旦确定虚拟应用试图访问稀疏数据文件,计算机系统按需从远程数据存储动态地流传输对应于稀疏数据文件的数据。

Description

使用按需分阶段的快速应用流传输
技术领域
本发明涉及使用按需分阶段的快速应用流传输。
背景技术
计算机已变得高度集成于工作、家庭、移动设备以及许多其他地方中。计算机可快速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用允许用户执行包括商业应用、学校作业、娱乐等等在内的各种各样的功能。软件应用通常被设计成执行特定的任务,诸如用于草拟文档的文字处理器应用或者用于发送、接收和组织电子邮件的电子邮件程序。
在某些情况下,软件应用可通过应用服务器提供。这些应用可被提供给瘦客户机计算机系统或其他联网的计算机系统。这些应用可在应用服务器上运行,并且仅经由用户的计算机系统上的用户界面呈现给用户。同样地,这些类型的应用被称为虚拟应用。应用服务器可主控大量的这些虚拟应用,每个应用由不同的用户访问。虚拟应用在用户的计算机系统上被分阶段(staged),计算机系统将虚拟应用的大部分加载(至少暂时地)到用户的本地硬驱动器或其他数据存储上。
发明内容
本文中所描述的实施例涉及使用按需文件分阶段来快速启动虚拟软件应用、使用按需注册表分阶段来快速启动虚拟软件应用,以及使用按需分阶段来快速发布虚拟软件应用。在一个实施例中,计算机系统创建高级文件列表,该高级文件列表包括属于虚拟应用包的部分的指定的高级数据文件和目录的列表。计算机系统接收来自应用用户的将访问虚拟应用的指示,并基于接收到的指示为将被访问的那些数据文件动态地创建稀疏数据文件。稀疏文件包括这些将被访问的数据文件的文件名称和文件大小。对应于稀疏数据文件的数据被存储在远程数据存储中。然后,一旦确定虚拟应用试图访问稀疏数据文件,计算机系统按需动态地流传输(stream)来自远程数据存储的对应于稀疏数据文件的数据。
在另一实施例中,计算机系统创建高级注册表文件列表,该高级注册表文件列表包括将被虚拟软件应用使用的指定的高级注册表文件的列表。计算机系统接收来自应用用户的即将访问虚拟应用的指示,并基于接收到的指示动态地创建将被访问的高级列表中所列出的那些注册表文件。通过这种方式,所创建的注册表文件被写入客户机计算机系统注册表中。然后,一旦确定应用试图访问附加的注册表文件,计算机系统按需在客户机计算机系统注册表中动态地创建附加注册表文件。
在又一实施例中,管理计算机系统接收来自计算机管理员的输入,该输入指示在管理员的控制下多个虚拟软件应用将在客户机计算机系统上被发布。然后,响应于接收到的输入,管理计算机系统向多个不同客户机计算机系统发布虚拟软件应用。发布包括在客户机计算机系统中的至少一个上创建高级文件列表,该高级文件列表包括属于虚拟应用包的部分的指定的高级数据文件和目录的列表,以及还按需为虚拟软件应用所请求的那些数据文件创建稀疏数据文件。
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附加的特征和优点将在以下的描述中被阐述,并且部分地可通过该描述而对本领域技术人员显而易见,或者可通过对本文中的教示的实践来习得。本发明的实施例的特征和优点可以通过在所附权利要求中特别指出的手段和组合来被实现并获得。本发明的实施例的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而习得。
附图说明
为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。本发明的实施例将通过使用附图用附加特征和细节来描述和说明,附图中:
图1示出本发明的实施例可在其中运行的计算机体系结构,实施例包括使用按需文件分阶段来快速启动虚拟软件应用。
图2示出用于使用按需文件分阶段来快速启动虚拟软件应用的示例方法的流程图。
图3示出用于使用按需注册表分阶段来快速启动虚拟软件应用的示例方法的流程图。
图4示出了用于使用按需分阶段来快速发布虚拟软件应用的示例方法的流程图。
图5示出了其中使用按需注册表分阶段来快速启动虚拟软件应用的计算机体系结构。
具体实施方式
本文中所描述的实施例涉及使用按需文件分阶段来快速启动虚拟软件应用、使用按需注册表分阶段来快速启动虚拟软件应用,以及使用按需分阶段来快速发布虚拟软件应用。在一个实施例中,计算机系统创建高级文件列表,该高级文件列表包括属于虚拟应用包的部分的指定的高级数据文件和目录的列表。计算机系统接收来自应用用户的即将访问虚拟应用的指示,并基于接收到的指示为那些即将被访问的数据文件动态地创建稀疏数据文件。稀疏文件包括这些将被访问的数据文件的文件名称和文件大小。对应于稀疏数据文件的数据被存储远程数据存储中。然后,一旦确定虚拟应用试图访问稀疏数据文件,计算机系统就按需动态地流传输来自远程数据存储的对应于稀疏数据文件的数据。
在另一实施例中,计算机系统创建高级注册表文件列表,该高级注册表文件列表包括将被虚拟软件应用使用的指定的高级注册表文件的列表。计算机系统接收来自应用用户的即将访问虚拟应用的指示,并基于接收到的指示动态地创建将被访问的高级列表中列出的那些注册表文件。通过这种方式,所创建的注册表文件被写入客户机计算机系统注册表。然后,一旦确定该应用试图访问附加的注册表文件,计算机系统按需在客户机计算机系统注册表中动态地创建附加注册表文件。
在又一实施例中,管理计算机系统接收来自计算机管理员的输入,该输入指示在管理员的控制下多个虚拟软件应用将在客户机计算机系统上被发布。然后,响应于接收到的输入,管理计算机系统向多个不同客户机计算机系统发布虚拟软件应用。发布包括在客户机计算机系统中的至少一个上创建高级文件列表,该高级文件列表包括属于虚拟应用包的部分的指定的高级数据文件和目录的列表,以及还按需为虚拟软件应用所请求的那些数据文件创建稀疏数据文件。
以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些方法动作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并非必然需要特定的次序,除非特别声明,或者是在一个动作被执行之前因为该动作依赖于另一动作的完成而需要的情况。
本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。以数据形式存储有计算机可执行指令的计算机可读介质是计算机存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM、基于RAM、闪存、相变存储器(PCM)、或其它类型的存储器的固态驱动器(SSD)、或者其他光盘存储、磁盘存储或其他磁存储设备、或可用于以计算机可执行指令、数据或数据结构形式存储所期望的程序代码装置且可被通用或专用计算机访问的任何其他介质。
“网络”被定义成允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路和/或数据交换机。当信息通过网络(硬连线、无线、或者硬连线或无线的组合)被传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括如下的网络:所述网络可以用于运送计算机可执行指令形式或数据结构形式的数据或所期望的程序代码装置,并且可以被通用或专用计算机访问。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓冲在网络接口模块(例如,网络接口卡或“NIC”)内的RAM中,然后最终被传输给计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行(或计算机可说明)指令例如包括致使通用计算机、专用计算机、或专用处理设备执行某个功能或某组功能的指令。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明还可在分布式系统环境中实践,在该环境中本地和远程计算机系统通过网络(经由硬连线数据链路、无线数据链路、或者经由硬连线和无线数据链路的组合)链接起来,每个计算机系统都执行任务(例如,云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图1示出了可在其中采用本发明的原理的计算机体系结构100。计算机体系结构100包括客户机计算机系统101。客户机计算机系统101可以是任何类型的本地或分布式计算机系统,包括云计算机系统。客户机计算机系统包括用于执行特定任务的多个模块和其他元件。例如,稀疏文件创建模块115可创建稀疏文件,将如以下进一步所说明的。客户机计算机系统包括一个或多个虚拟应用110。每个虚拟应用可从应用服务器运行或从远程数据存储运行。应用可看起来是本地安装的应用,即使应用不是本地安装的。可按需流传输来自远程数据存储130的应用的文件131。
最开始,当已向客户机计算机系统(例如,101)发布虚拟应用时,虚拟应用包含文件列表111。文件列表包括高级数据文件和目录的列表112。因此,在文件列表中列出该应用的对应文件的一些但不是全部。实际文件不存储在本地数据存储120(例如,硬盘)上;而是存储文件列表。当虚拟应用请求文件时,为每个所请求的文件创建稀疏文件。本文中所使用的术语“稀疏文件”指包括文件的名称122和大小123的占位符。因此,因为存在稀疏文件,本地文件系统调用该文件将返回肯定(positive),表明文件存在于本地盘上。然而,文件的实际数据不存储在盘上。文件的实际数据131存储在远程数据存储130上,直到被虚拟应用请求。当数据被请求,数据被流传输到本地数据存储,并且至少在某些实施例中被存储以供后续使用。
当应用需要新文件时(例如,用户访问应用的新特征),稀疏文件创建模块115将为每个所请求的文件创建稀疏文件。这些稀疏文件可按照树/目录结构来创建。最后,(如果已访问该应用的所有特征)所有应用的文件和目录将被存储在本地数据存储120上。应当注意,不在盘上(本地)创建从未被访问的文件和目录,因此不占用磁盘空间资源。在某些情况下,管理员(例如,管理用户145)可越过上述按需分阶段并选择将所有文件预加载到磁盘上。在此情况下,应用的数据文件被穷尽地流传输并被存储在本地。
以下将描述各个实施例,包括如下:1)快速发布,其中发布操作基本上立即完成。后续数据请求导致生成稀疏文件和目录。2)快速启动虚拟应用。在应用被启动之前,虚拟应用的文件不需要存在于本地。按需创建稀疏文件并按需填充数据(流传输)。3)第一次访问损失仅是:一旦数据文件被创建并被流传输,数据文件不再稀疏并且不需要进一步更新或访问。低级流式过滤器不再拦截和处理文件系统访问。后续使用可包括数据文件系统混合,因为虚拟化软件堆栈的其余部分将虚拟应用的命名空间与本地文件系统的命名空间混合。4)仅在需要时占用磁盘空间资源。如果文件或目录未被访问,则不在盘上(即使稀疏地)创建数据文件。如果通过枚举访问数据文件但未读取任何内容,则文件仅稀疏地存在(即,没有占用盘空间资源)。仅当读取文件内容时,才占用任何有效的盘空间。
类似于数据文件,可使用稀疏文件和数据流传输动态地填充操作系统的注册表。应用的注册表内容的轻量列表被下载至客户机计算机系统。列表一被下载,应用发布操作就完成。客户机计算机系统上的后台程序将注册表内容加载至系统的注册表中。注意,注册表和文件之间存在差异。尽管文件和目录是按需创建的,但它们的内容不被流传输到目标机器,除非被访问(或除非管理员越过分阶段,并预加载包内容)。注册表可被预加载到客户机计算机系统上,但按照相对于发布操作异步的方式。
当在目标机器上发布应用包时,多个注册表文件在其第一次被访问时在本地被复制。注册表文件是格式良好的标准格式的注册表单元文件。由于注册表文件是文件,因此首先使用上述按需分阶段方法来创建注册表文件。一旦被创建,注册表文件被装载(并因此其内容被流传输)到客户机计算机系统的本机注册表中,以便其内容可被读取并且被复制到客户机计算机系统101的预定义的位置。
应用虚拟化软件可被用于使操作系统的本机注册表与虚拟应用的注册表混合,以使它对于虚拟应用110看起来统一。在第一次访问时,创建用于初始化虚拟应用的多个注册表密钥。最终,包注册表内容将被加载到目标机器的注册表中(但按照与发布操作和虚拟应用使用异步的方式)。
本文中所描述的实施例包含以下元素中的一个或多个:1)继承客户机计算机系统的安全性。例如,一个计算机系统可具有与另一注册表项不同的注册表密钥。使用每个计算机系统的本地密钥,而不是采用单个应用包越过所有客户机计算机系统密钥。2)对客户机计算机系统的注册表的访问权如常。存在任何现有的注册表保护,每个现有的注册表保护具有每台机器的粒度。3)快速发布操作。发布操作立刻完成,甚至不等待在磁盘上创建稀疏注册表单元文件。4)快速注册表内容的可用性。在虚拟应用第一次启动时,装载注册表文件。由于这是第一次访问,注册表文件在磁盘上被稀疏地创建并在此时被流传输。5)快速第一次启动虚拟应用。仅涉及的同步操作是到磁盘的流传输和应用包注册表单元文件的加载。随后监测注册表访问。对还未复制到目标机器的注册表中的目的地的内容的任何访问的优先级提升。6)一旦每个注册表文件被复制到它的目标目的地(在客户机计算机系统的注册表中),附加的复制是不必要的。一旦已经复制应用包注册表单元文件,就通过虚拟化软件来混合需要混合的命名空间。以下将分别参照图2、3和4的方法200、300和400来进一步描述这些方面。
鉴于上述系统和体系结构,参照图2、3和4的流程图将更好地理解可根据所公开的主题实现的方法。为了说明简明起见,这些方法被示出和描述为一系列框。然而,应该理解和了解,所要求保护的主题不受框的次序的限制,因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示的框都是实现下面所述的方法所必需的。
图2示出了用于使用按需文件分阶段来快速启动虚拟软件应用的方法200的流程图。现在将频繁参考环境100的组件和数据来描述方法200。
方法200包括在客户机计算机系统上创建高级文件列表的动作(动作210),该高级文件列表包括属于虚拟应用包的部分的指定的高级数据文件和目录的列表。例如,可在计算机系统101上创建文件列表111。该文件列表包括属于给定虚拟应用110的部分的高级数据文件和目录的列表。列表112中的文件可包括属于应用的用户界面(UI)的部分的列表文件、属于应用的启动过程的一部分、主要功能的部分或应用的任何其他部分的文件的列表。因此,根据应用或根据管理员设置,高级数据文件和目录的列表112的范围可从很短的列表到很长的列表。每个应用可具有属于那个包的一组文件。同样,文件列表111可简单地包括那个应用包的文件或包的文件的子集。
方法200还包括接收来自应用用户的将访问虚拟应用的指示的动作(动作220)。例如,客户机计算机系统101可接收来自用户105的指示将访问虚拟应用110的指示106。在一些情况下,可在应用已经在运行时接收该指示。在其他情况下,该指示可指示将启动应用,或更具体地指示将启动应用的用户界面。在此类情况下,为那些将被用于初始化虚拟应用的文件动态地创建稀疏文件。
如上所述,稀疏文件是仅包括对应文件的文件名称122和文件大小123的占位符。稀疏文件创建模块115可基于接收到的指示(不论是用于初始化程序还是用于在程序已经在运行时访问程序的特征)为那些将被访问的数据文件创建稀疏数据文件121。响应于用户的指示106,为每个将被访问的数据文件动态地生成稀疏文件。在客户机计算机系统上在本地数据存储120中本地地创建稀疏文件(动作230)。每个稀疏文件具有对应的本地存储的或在远程数据存储130上的数据文件。在某些实施例中,当第一次访问文件时,在本地数据存储上创建那个文件的稀疏文件。然后,通过文件系统的任何初始请求将读取稀疏文件并认为文件是在本地存储的。当在文件系统处接收数据读请求以实际读取该文件的数据时,请求被发送至远程数据存储(例如,云),适当的应用文件131被检索并被流传输到客户机计算机系统的本地数据存储。然后,针对该请求和任何后续数据请求,文件系统读取来自本地数据存储的数据。
在某些情况下,客户机计算机系统可确定来自用户1-5的指示将访问特定的目录的指示106。在此类情况下,稀疏文件创建模块115可动态地创建指定目录及其当前内容的稀疏文件。同样,稀疏文件将包括指定目录中的任何数据文件以及任何子文件夹的名称。然而,将不为指定目录的子文件夹下的数据文件或子文件夹创建稀疏文件。以此方式,仅为已被访问的(或已请求访问的)数据文件创建稀疏文件。如果用户请求将被访问的指定文件并且该文件位于子目录中,则稀疏文件创建模块可为指定数据文件的根目录和每个插入子目录动态地创建稀疏文件。
然后,如上所述,当客户机计算机系统的文件系统确定虚拟应用110试图访问稀疏文件121中的一个或多个时,客户机计算机系统请求对应于被访问稀疏文件的数据文件按需从远程数据存储动态地流传输(动作240)。可单独地或多个地、串行或并行地流传输这些数据文件。文件可被本地存储或访问,或可直接流传输至虚拟应用。在文件存储在本地数据存储上的情况下,可通过本地访问数据文件来满足任何后续访问请求。还可以类似的方式创建虚拟应用注册表文件。可为那些由虚拟应用访问的注册表文件动态地创建稀疏注册表文件。这将参照图3在下文中更详细地说明。
应当注意,管理用户145可指示为一个或多个指定数据文件或虚拟应用越过按需分阶段。例如,如果应用非常小,管理员可指定将越过按需分阶段并且将指定数据文件在本地预加载到本地数据存储上。管理员已越过按需分阶段的这些文件或应用可被文件系统正常地访问,就如同该应用是在本地安装的。此外,当虚拟应用文件被存储在本地数据存储上(或者在被流传输后或由于越过),本地文件系统命名空间可与虚拟应用使用的那些文件系统命名空间混合以供虚拟应用直接使用。
图3示出了用于使用按需注册表分阶段来快速启动虚拟软件应用的方法300的流程图。现在将频繁参照图4的环境400的组件和数据来描述方法300。
方法300包括在客户机计算机系统上创建高级注册表文件列表的动作(动作310),该高级注册表文件列表包括将被虚拟软件应用使用的指定的高级注册表文件的列表。例如,可在客户机计算机系统450上创建注册表文件列表461。该文件列表包括将被虚拟应用460使用的高级注册表文件462的列表。与文件列表111一样,注册表文件列表可包括那些将被虚拟应用使用的注册表文件中的所有或一部分。客户机计算机系统可接收来自应用用户455的将访问虚拟应用的指示456(动作320)。当接收到该指示时,应用可能还没有运行,在此情况下,该指示请求启动应用。如果接到指示时虚拟应用已在运行,则该指示可请求由该应用所提供的还未被使用的功能。
响应于接收到的指示456,注册表文件创建模块465可基于接收到的指示动态地创建那些在将被访问的高级列表462中列出的注册表文件(动作330)。通过这种方式,动态创建的注册表文件被写入客户机计算机系统注册表470中。因此,针对将被访问的每个注册表文件471,可创建对应的稀疏文件。然后,由于将要访问来自注册表文件476的数据、值或密钥,所以从远程数据存储475流传输数据、值或密钥。至少在某些情况下,可结合用于多个不同虚拟软件应用的注册表分阶段。同样,多个虚拟应用的注册表文件可同时从远程数据存储动态地流传输。还应当注意,注册表文件的动态创建可作为客户机计算机系统上的后台程序被执行。
响应于确定应用460试图访问附加的注册表文件,注册表文件创建模块可按需在客户机计算机系统注册表470中动态地创建附加注册表文件(动作340)。在应用第一次被启动的情况下,为那些将用于初始化应用的文件动态地创建注册表文件。在应用已在运行的情况下,动态地创建注册表文件471以用于新访问的特征。如果动态创建的注册表文件不再可访问(无论出于什么原因),包含应用程序请求的密钥所需数据的注册表文件被按需流传输至客户机计算机系统。此外,来自虚拟应用的任何请求可在注册表密钥层次被拦截。然后,可利用来自动态创建的注册表文件的数据为每个数据请求按需创建注册表密钥。随着时间推移,用于应用的每个注册表文件将被动态地创建并存储在本地系统注册表470中。这些注册表文件中的每一个可按照异步方式动态地被创建(或在一些情况下被预加载,如果管理员如此指定的话)。
图4示出了用于使用按需分阶段来快速发布虚拟软件应用的方法400的流程图。现在将频繁参考环境100的组件和数据来描述方法400。
方法400包括接收来自计算机管理员的输入的动作(动作410),该输入指示将在一个或多个客户机计算机系统上发布一个或多个虚拟软件应用。例如,管理计算机系统140可接收来自管理用户145的输入146。该输入可指示将在客户机计算机系统101(和任何数量的其他客户机计算机系统)上发布多个指定的虚拟应用110。响应于接收到的输入,虚拟应用发布模块141可向客户机计算机系统发布该虚拟软件应用(动作420)。发布包括在至少客户机计算机系统101上创建高级文件列表111的动作(动作420A),该高级文件列表111包括属于虚拟应用包的部分的指定的高级数据文件和目录的列表112。发布还包括稀疏文件创建模块115为虚拟软件应用110所请求的那些数据文件131按需创建一个或多个稀疏数据文件121的动作(动作420B)。
以此方式,管理用户可向多个不同的计算机系统发布应用。管理用户仅需要发送指示,从而应用的图标可出现在应用被发布到的每个计算机系统上。一旦用户点击图标来启动应用,则如上所述开始按需分阶段。用于初始化应用的每个文件具有对应的所创建的稀疏文件。当实际数据被请求时,数据将从远程数据存储被流传输并在本地被存储或直接流传输至虚拟应用。然后,一旦应用在运行,被访问的任何后续虚拟应用文件将具有对应的所创建的稀疏文件并将从远程数据存储被流传输。此外,当应用第一次被发布时,可创建高级注册表文件列表,该高级注册表文件列表包括将在应用初始化时被使用的指定的高级注册表文件的列表。然后,在高级列表中列出的将被访问以用于初始化程序或用于访问应用的新部分的那些注册表文件被动态地创建并被写入客户机计算机系统注册表。以此方式,应用可基本上被即时地发布,并且对应用的更新可在管理用户的指示下动态地发布。
因此,提供了使用按需文件分阶段来快速启动虚拟软件应用的方法、系统和计算机程序产品。而且,提供了使用按需注册表分阶段来快速启动应用和使用按需分阶段来快速发布虚拟软件应用的方法、系统和计算机程序产品。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

Claims (15)

1.在包括至少一个处理器和存储器的客户机计算机系统处,在包括多个计算系统的计算机联网环境中,一种用于使用按需文件分阶段来快速启动虚拟软件应用的计算机实现的方法,所述方法包括:
在客户机计算机系统上创建高级文件列表的动作,所述高级文件列表包括属于虚拟应用包的部分的指定的高级数据文件和目录的列表;
接收来自应用用户的将访问虚拟应用的指示的动作;
基于接收到的指示为那些将被访问的数据文件动态地创建稀疏数据文件的动作,所述稀疏文件包括那些将被访问的数据文件的文件名称和文件大小,对应于所述稀疏数据文件的数据被存储在远程数据存储中;以及
一旦确定所述虚拟应用试图访问一个或多个稀疏数据文件,按需动态地流传输来自远程数据存储的对应于所述稀疏数据文件的数据的动作。
2.如权利要求1所述的方法,其特征在于,来自用户的指示指示将初始化所述虚拟应用。
3.如权利要求2所述的方法,其特征在于,为那些将被用于初始化所述虚拟应用的文件动态地创建稀疏文件。
4.如权利要求1所述的方法,其特征在于,还包括:
确定来自用户的指示指出将访问指定的目录的动作;以及
为指定的目录及其当前内容动态地创建稀疏文件的动作。
5.如权利要求1所述的方法,其特征在于,还包括:
确定来自用户的指示指出将访问指定的文件的动作,其中指定的文件位于子目录中;以及
为指定的数据文件的根目录和每个插入子目录动态地创建稀疏文件的动作。
6.如权利要求1所述的方法,其特征在于,管理用户指示为一个或多个指定的数据文件越过按需分阶段,以使得指定的数据文件被预加载到盘上。
7.如权利要求1所述的方法,其特征在于,那些被流传输至计算机系统的数据文件被存储在本地数据存储上。
8.如权利要求7所述的方法,其特征在于,对以前流传输的数据文件的后续应用请求被拦截并被发送至本地数据存储以供履行。
9.在包括至少一个处理器和存储器的客户机计算机系统处,在包括多个计算系统的计算机联网环境中,一种用于使用按需注册表分阶段来快速启动虚拟软件应用的计算机实现的方法,所述方法包括:
在客户机计算机系统上创建高级注册表文件列表的动作,所述高级注册表文件列表包括将被虚拟软件应用使用的指定的高级注册表文件的列表;
接收来自应用用户的将访问虚拟应用的指示的动作;
基于接收到的指示动态地创建那些在高级列表中列出的将被访问的注册表文件的动作,使得所创建的注册表文件被写入客户机计算机系统注册表;以及
一旦确定所述应用试图访问一个或多个附加的注册表文件,在客户机计算机系统注册表中按需动态地创建所述附加的注册表文件的动作。
10.如权利要求9所述的方法,其特征在于,还包括:
在注册表密钥层次拦截来自所述虚拟软件应用的数据请求;以及
使用来自所述动态创建的注册表文件的数据为每个数据请求按需创建注册表密钥。
11.如权利要求10所述的方法,其特征在于,如果动态创建的注册表文件不再可访问,则包含应用程序请求的密钥所需数据的注册表文件被按需流传输至客户机计算机系统。
12.如权利要求9所述的方法,其特征在于,为那些将被用于初始化所述虚拟软件应用的文件动态地创建注册表文件。
13.如权利要求9所述的方法,其特征在于,注册表以异步的方式被预加载到客户机计算机系统中。
14.在包括至少一个处理器和存储器的管理计算机系统处,在包括多个客户机计算系统的计算机联网环境中,一种用于使用按需分阶段来快速发布虚拟软件应用的计算机实现的方法,所述方法包括:
接收来自计算机管理员的输入的动作,所述输入指示将在一个或多个客户机计算机系统上发布一个或多个虚拟软件应用;
响应于接收到的输入,向一个或多个客户机计算机系统发布虚拟软件应用的动作,其中发布包括:
在多个客户机计算机系统中的至少一个上创建高级文件列表的动作,所述高级文件列表包括属于虚拟应用包的部分的指定的高级数据文件和目录的列表;以及
为所述虚拟软件应用所请求的那些数据文件按需创建一个或多个稀疏数据文件的动作。
15.如权利要求14所述的方法,其特征在于,向一个或多个客户机计算机系统发布虚拟软件应用进一步包括:
在客户机计算机系统上创建高级注册表文件列表的动作,所述高级注册表文件列表包括在所述虚拟软件应用初始化时将被使用的指定的高级注册表文件的列表;以及
基于接收到的指示动态地创建那些在所述高级列表中所列出的将被访问的注册表文件的动作,以使得所创建的注册表文件被写入客户机计算机系统注册表中。
CN201210544617.0A 2011-12-15 2012-12-14 使用按需分阶段的快速应用流传输 Active CN103064703B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/327,699 2011-12-15
US13/327,699 US8832296B2 (en) 2011-12-15 2011-12-15 Fast application streaming using on-demand staging

Publications (2)

Publication Number Publication Date
CN103064703A true CN103064703A (zh) 2013-04-24
CN103064703B CN103064703B (zh) 2016-05-18

Family

ID=48107340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210544617.0A Active CN103064703B (zh) 2011-12-15 2012-12-14 使用按需分阶段的快速应用流传输

Country Status (6)

Country Link
US (2) US8832296B2 (zh)
EP (1) EP2791792B1 (zh)
JP (1) JP6285870B2 (zh)
KR (1) KR102020077B1 (zh)
CN (1) CN103064703B (zh)
WO (1) WO2013090865A1 (zh)

Families Citing this family (13)

* 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
US9086937B2 (en) * 2012-05-16 2015-07-21 Apple Inc. Cloud-based application resource files
KR102367882B1 (ko) * 2015-03-31 2022-02-25 엘지전자 주식회사 디지털 디바이스 및 상기 디지털 디바이스에서 애플리케이션 데이터 처리 방법
US9900386B2 (en) 2015-04-09 2018-02-20 International Business Machines Corporation Provisioning data to distributed computing systems
US9817648B2 (en) 2016-01-15 2017-11-14 Google Inc. Application containers with dynamic sub-package loading
CN113110848B (zh) 2016-01-15 2024-06-18 谷歌有限责任公司 跨应用实例的标识符
US10592470B2 (en) * 2016-08-10 2020-03-17 Microsoft Technology Licensing, Llc Discovery of calling application for control of file hydration behavior
US10055212B2 (en) 2016-08-26 2018-08-21 Microsoft Technology Licensing, Llc Evolving streaming installation of software applications
US11507534B2 (en) 2017-05-11 2022-11-22 Microsoft Technology Licensing, Llc Metadata storage for placeholders in a storage virtualization system
US10721323B2 (en) * 2018-06-19 2020-07-21 Salesforce.Com, Inc. High-performance data streaming
CN111049870B (zh) 2018-10-15 2022-07-22 华为技术有限公司 应用下载和发送的方法、装置及系统
US11048491B1 (en) 2020-05-11 2021-06-29 Microsoft Technology Licensing, Llc Cloud on-demand staging environments

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097400A1 (en) * 2001-10-31 2003-05-22 Seiko Epson Corporation Dynamic java class loading for application execution
CN1467631A (zh) * 2002-07-08 2004-01-14 华为技术有限公司 一种程序动态加载方法
CN102236554A (zh) * 2011-07-18 2011-11-09 国家电网公司 在线应用软件的构建平台、系统和方法

Family Cites Families (52)

* 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
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
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
US6757894B2 (en) 2000-09-26 2004-06-29 Appstream, Inc. Preprocessed applications suitable for network streaming applications and method for producing same
DE60131900T2 (de) * 2000-10-26 2008-12-04 Flood, James C. jun., Portland Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US6918113B2 (en) 2000-11-06 2005-07-12 Endeavors Technology, Inc. Client installation and execution system for streamed applications
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
RU2007111482A (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
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 한국전자통신연구원 부하 분산 방법 및 장치, 그리고 이를 이용한 소프트웨어스트리밍 시스템
US8131825B2 (en) * 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
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
US20080034408A1 (en) 2007-04-23 2008-02-07 Sachin Duggal Network-Based Computing Service On A Streamed Virtual Computer
KR100893601B1 (ko) 2007-06-28 2009-04-20 한국전자통신연구원 가상화 어플라이언스를 활용한 소프트웨어 벤딩머신에서의서비스 프로비저닝 시스템 및 방법
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
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 한국전자통신연구원 스케일러블 비디오 코딩 기반의 포괄적 비디오 접근을 위한스트리밍 서비스 장치 및 방법
US8954960B2 (en) * 2009-01-07 2015-02-10 Nec Corporation Thin client system and method of implementing thin client system
US8566427B2 (en) 2009-01-30 2013-10-22 Dell Products L.P. Desktop environment solutions methods and systems
US8726269B2 (en) * 2009-04-14 2014-05-13 Dell Products L.P. Method to enable application sharing on embedded hypervisors by installing only application context
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
US8886762B2 (en) 2009-09-17 2014-11-11 Adobe Systems Incorporated Stream duration management
US8301874B1 (en) * 2009-10-20 2012-10-30 Wanova Technologies, Ltd. Atomic switching of images in desktop streaming over wide area networks
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 中国电子科技集团公司第二十八研究所 一种基于虚拟视图的网络化数据共享系统及方法
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
US9358460B2 (en) * 2011-04-28 2016-06-07 Numecent Holdings, Inc. Adaptive cloud-based application streaming
US8676938B2 (en) * 2011-06-28 2014-03-18 Numecent Holdings, Inc. Local streaming proxy server
US8938550B2 (en) 2011-12-15 2015-01-20 Microsoft Corporation Autonomous network streaming
US8832296B2 (en) 2011-12-15 2014-09-09 Microsoft Corporation Fast application streaming using on-demand staging

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097400A1 (en) * 2001-10-31 2003-05-22 Seiko Epson Corporation Dynamic java class loading for application execution
CN1467631A (zh) * 2002-07-08 2004-01-14 华为技术有限公司 一种程序动态加载方法
CN102236554A (zh) * 2011-07-18 2011-11-09 国家电网公司 在线应用软件的构建平台、系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
崔亚兵 等: "一种面向虚拟化软件的流式加载虚拟文件系统", 《小型微型计算机系统》 *

Also Published As

Publication number Publication date
CN103064703B (zh) 2016-05-18
KR20140103950A (ko) 2014-08-27
EP2791792B1 (en) 2022-08-10
US20130159543A1 (en) 2013-06-20
US20140351301A1 (en) 2014-11-27
US8832296B2 (en) 2014-09-09
WO2013090865A1 (en) 2013-06-20
EP2791792A1 (en) 2014-10-22
JP6285870B2 (ja) 2018-02-28
KR102020077B1 (ko) 2019-11-04
EP2791792A4 (en) 2016-03-30
US9870372B2 (en) 2018-01-16
JP2015506044A (ja) 2015-02-26

Similar Documents

Publication Publication Date Title
CN103064703A (zh) 使用按需分阶段的快速应用流传输
JP6774499B2 (ja) オフラインでのハイブリッドアプリケーションへのアクセスの提供
US8627310B2 (en) Capturing multi-disk virtual machine images automatically
US20180307524A1 (en) Executing code referenced from a microservice registry
US10521447B2 (en) Container application execution using image metadata
KR101793306B1 (ko) 가상 애플리케이션 확장 포인트
CN101650660B (zh) 从中央存储装置引导计算机系统
US10671377B2 (en) Method to deploy new version of executable in node based environments
US9124653B2 (en) Method and apparatus for allowing sharing of streamable applications
US10241813B2 (en) Method and apparatus for patching
US11055112B2 (en) Inserting executions of owner-specified code into input/output path of object storage service
TW201229807A (en) Satisfying application dependencies
CN104160374A (zh) 云突发以及对云突发应用的管理
CN103020235A (zh) 自治网络流传输
US11360948B2 (en) Inserting owner-specified data processing pipelines into input/output path of object storage service
US11113075B2 (en) Launching a middleware-based application
US11029932B2 (en) Hydration of applications
US20130104146A1 (en) Automatically performing operations on applications based on dependencies on other applications
US20140109089A1 (en) System to rebuild difference virtual hard disk for updating operation system and method thereof
CN111124598B (zh) 一种虚拟桌面软件管理方法及系统
US11526286B1 (en) Adaptive snapshot chunk sizing for snapshots of block storage volumes
EP4363969A1 (en) Virtualization engine for virtualization operations in a virtualization system
EP2414937A2 (en) In-process intermediary to create virtual processes
WO2014201660A1 (zh) 下载程序的方法
Nadon et al. Static and Dynamic Storage Options in AWS

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150805

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150805

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant