首页> 中国专利> 高和低值应用状态

高和低值应用状态

摘要

可将软件应用的应用状态中的高值状态集与该应用状态中的低值状态集区分开来。例如,可在应用状态上运行一组试探以在高值状态集和低值状态集之间进行区分。可生成指定集,该指定集将应用状态中的高值状态集指定为高值并将应用状态中的低值状态集指定为低值。在处理应用时,可不同于低值状态地处理高值状态。应用可被打包为虚拟应用。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-01

    未缴年费专利权终止 IPC(主分类):G06F9/44 授权公告日:20161116 终止日期:20180302 申请日:20110302

    专利权的终止

  • 2016-11-16

    授权

    授权

  • 2015-08-26

    专利申请权的转移 IPC(主分类):G06F9/44 变更前: 变更后: 登记生效日:20150803 申请日:20110302

    专利申请权、专利权的转移

  • 2013-01-30

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20110302

    实质审查的生效

  • 2012-12-05

    公开

    公开

说明书

背景

软件应用通常配有应用状态。如此处所使用的,应用状态是可改变的应用 信息。例如,应用状态可包括在非虚拟应用被安装和/或被执行时修订的配置 数据,或当虚拟语言被实例化和/或被执行时修订的配置数据。应用状态可以 各种方式被处理,诸如在应用的正常执行期间被处理,在备份操作期间被处理, 以及在移动或或服务应用时被处理。如此处所使用的,服务指修改应用的一个 或多个不同操作,诸如更新应用、升级应用、回退应用升级或补丁、给应用打 补丁等。

概述

本申请涉及应用的高和低值状态之间的区分。该区分可产生一个或多个不 同的益处和用途,诸如允许高和低值状态被不同地处理。如此处所使用的,高 值应用状态,或高值状态,是被标识为更有价值保留以供后续与应用一起使用 的应用状态。低值应用状态,或低值状态,是被标识为更少价值保留以供后续 与应用一起使用的应用状态。例如,高值状态是这样的状态,其丢失更可能阻 止应用如预期那样运行,而低值状态是这样的状态,其丢失可能不被应用及其 用户注意。例如,高值状态可包括用户数据、用户偏好,和帐户信息。这样的 状态丢失可能导致应用中断,或它可导致应用完全或部分重置到默认状态。低 值状态可包括可执行文件,或可以(例如从金色映像虚拟应用包中)恢复的特 定类型的可执行文件,而应用继续如预期那样运行。如另一示例,低值状态可 包括仅用于调试的日志文件,其中日志文件可丢失而应用可继续如预期那样运 行。高和低值可以一个或多个不同方式被标识和/或区分,包括对应用状态运 行试探和接收用户输入。

在一实施例中,工具和技术可包括,在软件应用的应用状态的高值状态集 和应用状态的低值状态集之间进行区分。应用可被打包为虚拟应用包。如此处 所使用的,包包括信息(文件、元数据等),该信息从对应用进行打包获得并 且可被用于部署以实例化应用。包可被拆分成多个部分,并且一些部分可以不 同的方式和/或在不同的时间被传送。

在工具和技术的另一实施例中,可分析应用的应用状态。可生成将应用状 态中的高值状态集指定为高值的一组指定,以及将应用状态中的低值状态集指 定为低值的一组指定。

在又一工具和技术的实施例中,可在应用状态集上运行一组试探,以在应 用状态集中的高值状态单元集和该应用状态集中的低值状态单元集之间进行 区分。可作出高值状态单元的高值指定,并且可作出低值状态单元的低值指定。

提供本概述是为了以简化的形式介绍一些概念。这些概念将在以下详细描 述中进一步描述。本发明内容并不旨在标识所要求保护主题的关键特征或必要 特征,也不旨在用于限制所要求保护主题的范围。类似地,本发明不限于解决 在背景、详细描述、或附图中讨论的特定技术、工具、环境、缺点、或优点的 实现。

附图说明

图1是其中可实现所描述的各实施例中的一个或多个实施例的合适的计算 环境的框图。

图2是用于实现高和低值应用状态的环境的框图。

图3是高和低值应用状态技术的流程图。

图4是另一高和低值应用状态技术的流程图。

图5是又一高和低值应用状态技术的流程图。

具体实施例

此处描述的实施例涉及用于在高和低值应用状态之间进行区分的技术和 工具。该区分的益处可源于分开或组合地使用各种技术和工具。

这样的技术和工具可包括,在软件应用的应用状态中的高值状态集和该应 用状态中的低值状态集之间进行区分。这高/低区分可通过在应用状态上运行 一个或多个试探来作出。例如,包括特定类型的可执行代码的文件可被指定为 低值状态,而其它文件可被指定为高值状态。使用这些高/低值指定,高值状 态可不同于低值状态地被处理,诸如通过执行一个或多个动作的集合来保留该 高值状态集,但是不执行该一个或多个动作的集合来保留该低值状态集。例如, 在服务或移动应用时可维持高值状态,而低值状态可被丢弃或替代。作为另一 个示例,在备份操作期间高值状态可被备份,而低值状态可不在该操作期间备 份。

由此,从此处描述的高和低值状态区分工具和技术中可以实现一个或多个 实质的益处。所附权利要求中定义的主题不必限于本文描述的益处。本发明的 特定实现可提供本文描述的益处的全部、一些、或未提供本文描述的益处。尽 管本文出于呈现的目的以特定的顺序次序描述了用于各种技术的操作,但应理 解除非要求特定的排序,否则这种描述方式涵盖了操作顺序上的重新安排。例 如,在某些情况下,可以重新安排或并发执行顺序地描述的操作。本文参照流 程图描述的技术可被用于本文描述的一个或多个系统和/或用于一个或多个其 他系统。例如,本文描述的各种过程可用硬件或软件、或两者的组合来实现。 此外,为了简单起见,流程图可能未示出可结合其他技术来使用特定技术的各 种方式。

示例性计算环境

图1示出其中可实现所描述的各实施例中的一个或多个实施例的合适的计 算环境(100)的一般化示例。一般而言,可使用各种不同的通用或专用计算 系统配置。适用于此处所描述的工具和技术的公知计算系统配置的示例包括, 但不限于,服务器场和服务器群集、个人计算机、服务器计算机、手持式或膝 上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、网络 PC、小型机、大型计算机、包括上述系统或设备中的任一个的分布式计算环境 等。

计算环境(100)不旨在对本发明的使用范围或功能提出任何限制,因为 本发明可以在完全不同的通用或专用计算环境中实现。

参考图1,计算环境(100)包括至少一个处理单元(110)和存储器(120)。 在图1中,这一最基本的配置(130)被包括在虚线内。处理单元(110)执行 计算机可执行指令,并且可以是真实或虚拟处理器。在多处理系统中,多个处 理单元执行计算机可执行指令以提高处理能力。存储器(120)可以是易失性 存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、 EEPROM、闪存)、或两者的某种组合。存储器(120)存储软件(180)实现 高和低值应用状态工具和技术。

尽管为了清楚起见用线条示出了图1的各框,但是,实际上,描绘各组件 并不是那样清楚,并且用比喻方法,图1以及下文讨论的其他附图的线条更精 确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O 组件。此外,处理器具有存储器。发明人关于此点认识到,这是本领域的特性, 并且重申,图1的图示只是例示可结合本发明的一个或多个实施例来使用的示 例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等 分类之间没有区别,它们全部都被认为是在图1的范围之内的并且被称为“计算 机”、“计算环境”、或“计算设备”。

计算环境(100)可具有附加特征。在图1中,计算环境(100)包括存储 (140)、一个或多个输入设备(150)、一个或多个输出设备(160)以及一 个或多个通信连接(170)。诸如总线、控制器或网络等互连机制(未示出) 将计算环境(100)的各组件互连。通常,操作系统软件(未示出)为在计算 环境(100)中执行的其它软件提供操作环境,并协调计算环境(100)的各组 件的活动。

存储(140)可以是可移动或不可移动的,并可包括诸如磁盘、磁带或磁 带盒、CD-ROM、CD-RW、DVD之类的非瞬态计算机可读存储介质,或者可 用于储存信息并可在计算环境(100)内访问的任何其它介质。存储(140)储存 用于软件(180)的指令。

输入设备(150)可以是诸如键盘、鼠标、笔或跟踪球等触摸输入设备; 语音输入设备;扫描设备;网络适配器;CD/DVD读取器;或可向计算环境(100) 提供输入的另一设备。输出设备(160)可以是显示器、打印机、扬声器、CD/DVD 刻录机、网络适配器、或从计算环境(100)提供输出的另一设备。

通信连接(170)允许通过通信介质与另一计算实体进行通信。因此,计 算环境(100)可使用通往诸如个人计算机、服务器、路由器、网络PC、对等 设备或另一常见网络节点等一个或多个远程计算设备的逻辑连接而工作在联 网环境中。通信介质以已调制数据信号的形式传达诸如数据或计算机可执行指 令或请求等信息。已调制数据信号是其一个或多个特征以在信号中编码信息的 方式设置或改变的信号。作为示例而非局限,通信介质包括以电、光、RF、红 外、声学或其他载波实现的有线或无线技术。

各种工具和技术可以在计算机可读介质的一般上下文中描述。计算机可读 介质可以是可在计算环境内访问的任何可用介质。作为示例而非局限,对于计 算环境(100),计算机可读介质包括存储器(120)、存储(140)、和以上 的组合。

这些工具和技术可在诸如程序模块中所包括的在目标真实或虚拟处理器 上的计算环境中执行的计算机可执行指令的一般上下文中描述。一般而言,程 序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、 类、组件、数据结构等。程序模块的功能可以如各实施例中所需的组合或在程 序模块之间分离。用于程序模块的计算机可执行指令可以在本地或分布式计算 环境中执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储 介质中。

出于演示的目的,详细描述使用了如“确定”、“选择”、“调整”和“操作”等 术语来描述计算环境中的计算机操作。这些以及其他类似术语是对计算机执行 的操作的高层抽象,并且不应混淆于人类执行的动作,除非明确指出人类(诸 如“用户”)的动作执行。对应于这些术语的实际的计算机操作取决于实现而不 同。

高和低值状态系统和环境

图2是用于实现高和低值应用状态的工具和技术的计算环境(200)的框 图。该高/低值状态环境(200)可包括打包环境(210)。打包环境(210) 可包括打包器(214),打包器是可接收非虚拟应用(212)并可将非虚拟应用 (212)打包为虚拟应用包(220)的模块。例如,打包器(214)可以是诸如 微软的应用虚拟化(App-V)软件之类的应用虚拟化软件的一部分。可替换地, 打包器(214)可以是配置用于服务器应用的虚拟化的应用虚拟化软件的一部 分。这样的服务器应用虚拟化软件可包括可处理常见方式的服务应用的开始、 停止、交互,和维持寿命的特征。

打包器(214)完成的打包可包括确定部署该应用(212)需要什么状态(例 如文件和注册表项),并从该信息中构建包(220)。作为打包以产生虚拟应 用包(220)的部分,打包器(214)可为非虚拟应用在应用状态上运行一个或 多个试探,以在高值状态(222)和低值状态(226)之间进行区分。例如,在 一个实施例中,在这个打包操作期间,打包器(214)可检查每个文件中的元 数据。如果元数据展示文件是可执行代码的特定类型,该文件可被认为低值状 态(226)。所有的其它状态可被认为高值状态(222)。其它类型的试探可单 独地或组合运行。例如,试探可基于包括非虚拟应用(212)的状态的文件存 储在哪里(例如,存储在程序目录中的文件更可能是低值状态)。作为另一示 例,试探可基于非虚拟应用(212)是否被配置为备份文件(例如,要备份的 文件更可能是高值状态)。作为一些其它示例,试探可基于在安装应用(212) 的进程中文件何时被创建(例如,以后创建的文件更可能是高值状态)、基于 哪个进程或进程内的代码模块创建该状态和/或读取该状态、基于使用什么存 储格式(文件、注册表、数据库等)、基于如何限制对状态的访问(例如,加 密或访问控制列表),和/或基于包括状态的文件扩展名、日期,和/或文件 大小。试探可在不同组件(诸如应用虚拟化系统的不同组件)之间展开。例如, 可由虚拟注册表评估注册表项,并且可由虚拟文件系统评估文件。高值状态 (222)和低值状态(226)可被包括在虚拟应用包(220)中,连同将高值状 态(222)指定为高值的高值指定(224),以及将低值状态(226)指定为低 值的低值指定(228)。通过编辑对应的指定(224和228),打包器(214) 可在高值状态(222)和低值状态(226)之间切换应用状态单元。例如,打包 器(214)可响应于从用户(例如,打包工程师)接收到的用户输入来执行这 样的切换。

高和低值指定(224和228)可被包括在虚拟应用包(220)中,如图2所 示,或者它们可以以虚拟应用包(220)之外的某形式被生成和维持。例如, 应用状态(222和226)可包括打包在单个应用虚拟化文件(诸如App-V软件 中常用的“*.sft”文件)中的应用文件。应用虚拟化文件内的每个状态文件可包 括指示状态文件是高值还是低值的属性。对于注册表数据,高或低值的指定可 与虚拟注册表项属性一起存储。因此,高和低值指定(224和228)可以以状 态单元(诸如包括的状态的文件)的属性的形式。

可替换的,指定(224和228)可以以其它形式。例如,指定(224和228) 可在虚拟应用包(220)内的单独文件中,或在虚拟应用包(220)外的单独文 件中。此外,指定可以具有所包括的数据和/或所忽略的数据的形式。例如, 高值状态可包括指示高值的元数据,而低值状态可忽略那个元数据。在这个示 例中,元数据指示高值状态可以是高值状态(222)的高值指定(224),而那 个元数据的忽略可以是低值状态(226)的低值指定(228)。

包(220)可被传递到部署环境(240)。在该部署环境中,编辑组件(242) 可编辑该包(220),包括高和低值指定(224和228)。例如,部署环境的管 理员可提供用户输入,并且作为响应,编辑组件(242)可编辑该高和低值指 定(224和228)。例如,编辑组件可将一个或多个高值指定(224)改变为低 值指定(228),和/或将一个或多个低值指定(228)改变为高值指定(224)。 部署组件(244)可将编辑组件(242)所编辑的包(220)部署到一个或多个 目标环境(260)。

通过被部署为应用包(220)的部分或被部署在该应用包之外,高和低值 指定(224和228)可以和应用包(220)一起被部署。该编辑组件(242)和 部署组件(244)可以是应用虚拟化软件(诸如App-V)中的组件。

在目标环境(260)中,虚拟应用主机(262)(诸如App-V虚拟化软件的 客户机组件)可使用该包(220)来实例化应用,并将该应用当作目标环境(260) 中的“沙箱”(266)中的虚拟应用(264)来运行。沙箱(266)是包括虚拟 应用(264)和虚拟资源的胶囊,虚拟资源运行虚拟应用(264)而无需将该应 用安装成目标环境(260)中的本地应用。目标环境(260)(诸如真实的或虚 拟的机器)可包括多个沙箱(266),每个沙箱封装一虚拟应用(264)。因此, 每个这样的虚拟应用(264)可运行在目标环境(260)中而无需执行应用在目 标环境(260)中的标准安装。虚拟应用主机(262)和/或一些其它组件可运 行一个或多个试探,以在目标环境(260)中的已实例化的应用中区分高和低 值状态。例如,这可为在目标环境(260)中创建的应用状态而作出。当然, 这样的状态不会被先前分类成高或低值状态。在一实施例中,在目标环境(260) 中这个区分可包括将在目标环境中创建的任何文件或其它状态单元指定为高 值状态(222)。除了这个试探之外或作为其替代,可运行其它试探。例如, 上面讨论的许多打包时试探也可被应用在目标环境(260)。其它示例可包括, 基于访问的频率和/或访问模式(一次写入并多次读取对交错读取和写入等) 的试探。此外,高和低值指定(224和228)可响应于接收用户输入,在目标 环境(260)中被编辑。

在目标环境(260)中的虚拟应用(264)的一些进程期间,高值状态(222) 可不同于低值状态(226)地被处理。例如,应用(264)可被服务(例如,更 新、升级、打补丁,具有数据或补丁回退,等)。在服务期间,高和低值指定 (224和228)可被用来确定文件是要被保留的高值状态(222)还是要被丢弃 的低值状态(226)。高值状态(222)可独立于应用(264)而被保留,诸如 被保存到单独的位置,并且服务可被执行在虚拟应用(264)上。在服务被执 行之后,高值状态(222)可被应用到新被服务的虚拟应用(264)。应用高值 状态(222)可包括将高值状态(222)的至少一些转换到新被服务的应用(264) 可使用的格式。例如,在应用(264)已被升级到新应用版本之后,处于高值 状态(222)的文件可能需要被重新格式化以便可用于应用(264)。因此,即 使在虚拟应用(264)已经以可能不同的已丢失高值状态(222)的方式被服务 之后,虚拟应用(264)仍可使用该高值状态(222)及其预期功能。

作为另一个示例,备份操作可备份高值状态(222),而非低值状态(226)。 作为又一个示例,虚拟应用(264)可被移至不同目标环境(260)(例如,到 不同的机器,到同一机器上的不同操作系统版本,等)。如上面的应用服务示 例,初始目标环境(260)中的高值状态(222)可用高值指定(224)来标识。 高值状态(222)可被保留,转换到新目标环境(260),并在虚拟应用(264) 被移动之后重新应用到新目标环境(260)中的虚拟应用(264)。

上面讨论的示例(服务、备份,和移动)中的状态保留可通过将保留技术 应用到高值状态(222)而非低值状态(226)来简化。

高值状态的标识和保留可在不同于上面所讨论的高/低值状态环境(200) 的环境中完成。例如,可将虚拟应用包(220)从打包环境(210)直接部署到 目标环境(260)。实际上,对虚拟应用的打包、部署和执行可全都在相同环 境中完成。此外,此处描述的工具和技术可被应用到被安装并运行为非虚拟应 用的应用。例如,可为已安装的非虚拟应用区分和指定高和低值状态。在处理 状态时,高值状态可被区别对待。例如,在备份操作中,高值状态可被备份但 低值状态不被备份。作为另一示例,在移动应用中,高值状态可被保留以在移 动之后重新应用到该应用,但是低值状态不被保留和重新应用。作为又一示例, 在服务应用中,高值状态可被保留以在服务之后重新应用到该应用,但是低值 状态不被保留和重新应用。

高和低值状态技术

现在将讨论一些高和低值状态技术。可以在计算环境中执行这些技术中的 每一个。例如,每种技术可在包括至少一个处理器和存储器的计算机系统中执 行,该存储器包括存储于其上的、在由该至少一个处理器执行时使该至少一个 处理器执行该技术的指令(存储器存储指令(例如,对象代码),并且当处理 器执行这些指令时,处理器执行该技术)。类似地,一个或多个计算机可读存 储介质可具有收录于其上的计算机可执行指令,该些指令在由至少一个处理器 执行时使该至少一个处理器执行该技术。

转到图3,将讨论高和低值状态技术。在该技术中,软件应用的应用状态 集中的高值状态和应用状态集中的低值状态可被区分(310),且应用可被打 包(320)为虚拟应用包。可生成一个或多个指定的集合,其中该集合将该高 值状态集指定为高值,将该低值状态集指定为低值。例如,区分(310)可包 括运行一个或多个试探。试探可确定应用状态的一个或多个单元是否包括可执 行代码,诸如一个或多个单元是否包括预定类型的可执行代码。区分(310) 可包括,如果单元包括预定类型的可执行代码则将应用状态的单元(诸如文件) 指定为低值,如果单元不包括预定类型的可执行代码则指定为高值。如一个示 例,试探可确定给定的文件是否是便携执行(PE)图像。如果该文件是PE图 像,文件可被认为是低值状态,如果文件不是PE图像,文件可被认为是高值 状态。

应用可在目标环境中被实例化(330)。区分和打包可在打包计算环境中 完成(在那里应用被打包)和/或在目标计算环境中在实例化该应用后完成(在 那里应用被实例化并被执行),而区分可在打包结束之前完成。因此,该高值 状态集可以是虚拟应用包中的高值状态集和/或实例化的应用中的高值状态 集。同样,该低值状态集可以是虚拟应用包中的低值状态集和/或实例化的应 用中的低值状态集。因此,该技术可包括在实例化已经开始之后,在目标环境 中区分(340)实例化的应用中的高值状态集和实例化的应用中的低值状态集。

该技术还可包括处理(350)应用状态的至少一部分,可包括不同于该低 值状态集地处理该高值状态集。例如,可执行一个或多个动作的集合来保留该 高值状态集但不执行以保留该低值状态集。该处理可在目标环境中完成,并且 它可在应用已经被实例化之后完成。例如,处理可包括一动作,该动作是包括 服务应用、执行备份操作,和/或移动应用的组的一部分。

现在转到图4,将讨论另一高和低值状态技术。该技术可包括分析(410) 应用的应用状态。可生成(420)一个或多个指定的集合。这组指定可将应用 状态中的高值状态集指定为高值而将应用状态中的低值状态集指定为低值。例 如,该指定集可包括将高值状态指定为高值的高值指定集以及将低值状态指定 为低值的低值指定集。该技术还可包括将应用打包(440)为虚拟应用包。包 可被传输(450)到目标环境以被实例化。虚拟应用包可包括一个或多个高值 指定的集合和一个或多个低值指定的集合,或那些指定可被单独传输。此外, 至少一部分应用状态可被处理(470),其可包括不同于该低值状态集地处理 该高值状态集。

现在转到图5,将讨论又一高和低值状态技术。该技术可包括在应用状态 集上运行(510)一个或多个试探的集合,以在该应用状态集中的一个或多个 高值状态单元的集合和该应用状态集中的一个或多个低值状态单元的集合之 间进行区分。可作出(520)一个或多个高值指定。高值指定可以是高值状态 单元的指定。也可作出(530)一个或多个低值指定。低值指定可以是低值状 态单元的指定。

响应于用户输入,高值指定之一可被切换(550)到低值指定。同样,响 应于用户输入,低值指定之一可被切换(560)到高值指定。此外,该技术还 可包括处理(570)应用状态的至少一部分,其中处理可包括不同于该低值状 态集地处理该高值状态集。

尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所 附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述 具体特征和动作是作为实现权利要求的示例形式公开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号