用于可并行、可靠的安装的安装引擎和包格式的制作方法

文档序号:6532701阅读:122来源:国知局
用于可并行、可靠的安装的安装引擎和包格式的制作方法
【专利摘要】在一个实施例中,应用更新器可以干净地更新计算机应用而不会导致或者系统或者进程的错误或重新启动。处理器可以执行计算机应用的前任版本。所述处理器可以在用户账户级别上安装所述计算机应用的后继版本。所述处理器可以执行所述计算机应用的所述后继版本。
【专利说明】用于可并行、可靠的安装的安装引擎和包格式
【背景技术】
[0001]软件开发者可以持续地更新用户装置上的计算机程序。该用户装置可以联系由该软件开发者管理的服务器以查看更新是否可用。如果更新可用,则该用户装置可以下载软件的新的部分并将那些部分添加到当前安装在该用户装置上的现有程序。

【发明内容】

[0002]提供本
【发明内容】
来以简化的形式介绍概念的选择,这些概念的选择在下面的【具体实施方式】中被进一步描述。本
【发明内容】
不意图标识要求保护的主题的关键特征或本质特征,也不意图用于限制要求保护的主题的范围。
[0003]下面讨论的实施例涉及干净地更新计算机应用而不会导致或者系统或者进程的错误或重新启动。处理器可以执行计算机应用的前任版本。该处理器可以在用户账户级别上安装该计算机应用的后继版本。该处理器可以执行该计算机应用的后继版本。
【专利附图】

【附图说明】
[0004]为了描述能够获得上面记载的以及其他的优点和特征的方式,阐述了更加具体的描述并且该具体描述将通过参考附图中示出的其特定实施例来呈现。应理解的是,这些附图仅仅描绘典型的实施例,因此不应被认为是对其范围的限制,通过附图的使用,将描述和解释具有附加特性和细节的实现。
[0005]图1在框图中示出了计算机网络的一个实施例。
[0006]图2在框图中示出了计算装置的一个实施例。
[0007]图3在数据流程图中示出了更新服务的一个实施例。
[0008]图4在框图中示出了用于计算机应用的更新的一个实施例。
[0009]图5在框图中示出了数据存储布局的一个实施例。
[0010]图6在流程图中示出了用于更新计算机应用的方法的一个实施例。
【具体实施方式】
[0011]下面详细地讨论各实施例。虽然讨论特定的实现,但是应当理解,这仅仅是为了说明的目的而作。相关领域的技术人员将认识到,可以使用其他部件和配置而不偏离本公开的主题的精神和范围。实现可以是机器实现的方法、其上存储有用于至少一个处理器的详述方法的指令集的有形机器可读介质,或者用于计算装置的应用更新器。
[0012]计算机装置可以为计算机装置的每个用户维护用户账户。该用户账户可以保护某些数据文件免于被该计算机装置的其他用户访问。除了传统的以每台机器为基础之外,应用更新器可以在每个用户的基础上更新计算机应用。以每个用户为基础可以为用户账户而不是该机器上的其他用户账户更新计算机应用。用户账户可以提升该用户账户的用户权限以安装在机器级别上。
[0013]每次应用更新器运行时,应用更新器可以在新的目录和数据存储位置中提取更新,因此消除了导致机器重新启动的任何“文件正在使用”的问题。另外,计算机应用的不同版本可以并排安装而不会干扰先前安装在该机器上的计算机应用的其他版本,从而允许计算机应用可以无声无息地更新,而不会对该计算机应用的平稳性能造成任何问题。应用更新器可以将安装计算机应用的相同版本或更新版本作为计算机应用的安装、重装或修复的一部分而不会干扰当前版本。如果可用版本为更老的版本,则应用更新器可以执行空操作以防止将该计算机应用降级。应用更新器可以并行地安装多个计算机应用。
[0014]因此,在一个实施例中,应用更新器可以干净地更新计算机应用而不会导致或者系统或者进程的错误或重新启动。处理器可以执行计算机应用的前任版本。处理器可以在用户账户级别上安装计算机应用的后继版本。处理器可以执行计算机应用的后继版本。
[0015]图1在框图中示出了计算机网络100的一个实施例。用户装置110可以是台式计算机、膝上型计算机、平板计算机、手持计算机或其他计算装置。用户装置110可以运行计算机应用112。计算机应用112可以是由用户装置110执行的任何软件程序或固件程序。计算机应用112可以具有指示该计算机应用112的迭代的版本。计算机应用112可以具有经由数据网络连接130连接到应用服务器120的更新器模块114。数据网络连接130可以是局域网连接、互联网连接、移动网络连接或其他网络连接。更新器模块114可以查询应用服务器120以查看计算机应用112的新版本是否可用。前任版本是当前正在用户装置上执行的计算机应用112的版本。后继版本是计算机应用112的新版本。更新器模块114可以下载后继版本以替换前任版本。
[0016]图2示出了可以充当应用更新器的示例性计算装置200的框图。计算装置200可以将硬件、软件、固件和片上系统技术中的一个或多个进行组合以实现应用更新器。计算装置200可以包括总线210、处理器220、存储器230、只读存储器(R0M)240、存储装置250、输入装置260、输出装置270和通信接口 280。总线210可以准许计算装置200的部件之间的通信。
[0017]处理器220可以包括解释和执行指令集的至少一个常规处理器或微处理器。存储器230可以是随机存取存储器(RAM)或存储信息和指令以供处理器220执行的另一类型的动态存储装置。存储器230还可以存储由处理器220在指令执行期间使用的临时变量或其他中间信息。ROM 240可以包括常规ROM装置或为处理器220存储静态信息和指令的另一类型的静态存储装置。存储装置250可以包括任何类型的有形的机器可读介质,诸如,例如磁的或光的记录媒体及其相应的驱动。有形的机器可读介质是与瞬态介质或信号相对的、存储机器可读代码或指令的物理介质。存储装置250可以存储详述方法的指令集,当该指令集被一个或多个处理器执行时使得该一个或多个处理器施行该方法。
[0018]输入装置260可以包括准许用户将信息输入到计算装置200的一个或多个常规机制,诸如键盘、鼠标、语音识别装置、麦克风、头戴式耳机等。输出装置270可以包括将信息输出给用户的一个或多个常规机制,包括显不器、打印机、一个或多个扬声器、头戴式耳机,或诸如存储器之类的介质,或磁或光盘及相应的盘驱动。通信接口 280可以包括任何类似收发机的机制,该机制使得计算装置200能够与其他装置或网络进行通信。通信接口 280可以包括网络接口或收发机接口。通信接口 280可以是无线、有线或光接口。
[0019]计算装置200可以响应于处理器220执行包含在计算机可读介质(诸如,例如存储器230、磁盘或光盘)中的指令序列而施行这样的功能。可以将这样的指令从另一计算机可读介质(诸如存储装置250)或者经由通信接口 280从分立的装置读取到存储器230中。
[0020]图3在数据流程图中示出了用于计算机应用112的更新服务300的一个实施例。在初始时,计算机应用112的当前版本302可以引导更新器模块114从应用服务器120请求任何更新。应用服务器120可以将更新包发送到更新器模块114。该更新包可以具有计算机应用112的更新清单304和当前二进制文件306。更新清单304是被安装的文件的列表。更新清单304可以描述针对每个文件的文件路径、文件大小、任何注册表项和任何错误检验机制。更新清单304可以是以可扩展标记语言(XML)的格式。当前二进制文件306是用于计算机应用112的可执行文件或关联文件,例如数字链接库。更新器模块114可以使用该更新包来为安装创建安装器模块308。
[0021]图4在框图中示出了用于计算机应用的更新400的一个实施例。从应用服务器120发送的更新包402可以具有安装器代码404、中立资源集406、可本地化资源集408和有效载荷410。安装器代码404在用户装置110上实例化安装器模块308。该中立资源集406是在安装期间使用的通用资源的集合,诸如在安装期间要显示的图标、非可本地化的字符串和非可本地化的图像。该可本地化资源集408是在安装期间使用的语言特定资源的集合,诸如消息、提示和声音。有效载荷410可以是更新清单304和当前二进制文件306。
[0022]图5在框图中示出了数据存储布局500的一个实施例。用户装置100可以为多个用户支持多个用户账户。用户账户可以被密码保护,以免受其他用户影响。数据存储装置250可以为多个用户存储多个应用简档。第一用户可能更新计算机应用112而第二用户可能放弃该更新。管理员502可以为每个用户账户更新计算机应用112。主用户账户504是正在执行计算机应用的更新的用户账户。副用户账户506是并未在活动地执行计算机应用的更新的用户账户。副用户账户506可以是活动的或睡眠的。
[0023]数据存储250可以在前任位置510中存储计算机应用112的前任版本508。主用户账户504可以在引用该前任版本508的主名称数据存储位置514中存储主文件名512。文件名是到数据文件的硬链接。该主文件名512可以是到该前任版本508的硬链接。该前任版本508可以是不可改变的,除非被管理员账户502修改。主用户账户504可以在用户账户级别上安装计算机应用112的用户后继版本516。用户账户级别安装为主用户账户504安装用户后继版本516但放弃对副用户账户506的任何更新。主用户账户504可以将用户后继版本516放置在干净的用户后继数据存储位置518。干净的数据存储位置当前不具有存储在该位置的计算机应用112的版本。即使计算机应用112的版本以前存在于数据存储位置并随后被常规地擦除(诸如通过撤销登记),该数据存储位置也可以被认为是干净的。用户后继版本516可以是计算机应用112的完整后继版本。完整后继版本是尚未与前任版本进行比较并且尚未移除任何重叠部分的后继版本。主文件名512可以被覆写成到用户后继版本516的硬链接。
[0024]副用户账户506可以将计算机应用112的副文件名520存储在副名称数据存储位置522。副文件名520可以是到前任版本508的硬链接。甚至当主文件名512变成到用户后继版本516的硬链接时,副文件名520也可以保持为到前任版本508的硬链接。
[0025]管理员账户502可以在机器级别上利用计算机应用112的管理员后继版本524来替换前任版本508。管理员账户502可以将该管理员后继版本524放置在干净的管理员后继数据存储位置524。操作系统可以将针对用户账户的用户状态提升至在机器级别进行更新的管理权限。在机器级别上的更新将后继版本安装到用户装置110上的每个用户账户。管理员账户502可以将主文件名512和副文件名520重置为到管理员后继版本524的硬链接。
[0026]图6在流程图中示出了用于更新计算机应用112的方法600的一个实施例。应用更新器可以执行计算机应用112的前任版本508 (块602)。应用更新器可以对用户不可见地执行更新器模块114 (块604)。应用更新器可以使用更新器模块114下载完整后继版本516而无视前任版本508 (块606)。如果安装是在每台机器的基础上进行(块608),则应用更新器可以将用户状态提升至管理权限(块610)。应用更新器可以在机器级别上安装计算机应用112的完整后继版本524(块612)。如果安装是在每个用户的基础上进行(块608),则应用更新器可以在用户账户级别上安装计算机应用的完整后继版本516 (块614)。应用更新器可以在完整后继版本516的安装发生时保持前任版本508的执行(块616)。应用更新器可以将完整后继版本516放置在干净的后继数据存储位置514 (块618)。应用更新器可以同时执行计算机应用112的前任版本508和完整后继版本516 (块620)。应用更新器可以执行从前任版本508到完整后继版本516的切换(块622)。应用更新器在切换期间可以保持计算机应用112的用户接口的呈现(块624)。应用更新器可以为卸载操作而调度该前任版本508 (块626)。如果该卸载操作在系统重新启动期间被调度(块628),则应用更新器可以在系统重新启动期间卸载前任版本508 (块630)。否则,应用更新器可以在执行完整后继版本516时卸载该前任版本508 (块632)。
[0027]尽管已经以特定于结构化特征和/或方法动作的语言描述了本主题,但是应当理解的是,所附权利要求中的主题并不必然限制于前面描述的特定特征或动作。相反,前面描述的特定特征和动作是作为用于实现权利要求的示例形式而公开的。
[0028]在本发明的范围内的实施例也可以包括非瞬态计算机可读存储介质,其用于承载或在其上存储计算机可执行指令或数据结构。这样的非瞬态计算机可读存储媒体可以是能够被通用或专用计算机访问的任何可用媒体。作为示例而非限制,这样的非瞬态计算机可读存储媒体可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储装置,或能够被用于承载或存储以计算机可执行指令或数据结构的形式的期望的程序代码工具的任何其它介质。上述各项的组合也应当被包括在非瞬态计算机可读存储媒体的范围之内。
[0029]实施例还可以在分布式计算环境中实施,其中,任务由通过通信网络链接(或者通过硬连线链路、无线链路,或者通过其组合)的本地和远程处理装置施行。
[0030]计算机可执行指令包括,例如,使得通用计算机、专用计算机或专用处理装置施行某种功能或功能组的指令和数据。计算机可执行指令还包括由单机或网络环境中的计算机执行的程序模块。一般来说,程序模块包括施行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构等。计算机可执行指令、关联的数据结构和程序模块表示用于执行在此公开的方法的步骤的程序代码工具的示例。这样的可执行指令或关联的数据结构的特定序列表示用于实现在这样的步骤中描述的功能的相应动作的示例。
[0031]尽管上面的描述可以包含特定的细节,但是它们不应被解释为以任何方式对权利要求进行限制。所描述的实施例的其他配置是本公开的范围的一部分。举例来说,本公开的原理可以应用于每个单独的用户,其中每个用户可以单独地部署这样的系统。这使得即使大量可能的应用中的任何一个不使用在此描述的功能,每个用户也能够利用本公开的益处。电子装置的多个实例每一个都可以以各种可能的方式处理内容。实现并不必然在由所有最终用户使用的一个系统中。因此,所附的权利要求书及其法律等同物仅应限定本发明,而非给出的任何特定示例。
【权利要求】
1.一种机器实现的方法,包括: 执行计算机应用的前任版本; 在用户账户级别上安装所述计算机应用的后继版本;以及 执行所述计算机应用的所述后继版本。
2.权利要求1的方法,还包括: 使用更新器模块下载完整后继版本;以及 对用户不可见地执行所述更新器模块。
3.权利要求1的方法,还包括: 当所述后继版本的安装发生时保持所述前任版本的执行。
4.权利要求1的方法,还包括: 执行从所述前任版本到所述后继版本的切换;以及 在所述切换期间保持所述计算机应用的用户接口的呈现。
5.权利要求1的方法,还包括: 同时执行所述前任版本和所述后继版本。
6.权利要求1的方法,还包括: 在系统重新启动期间为卸载操作而调度所述前任版本。
7.权利要求1的方法,还包括: 当执行所述后继版本时卸载所述前任版本。
8.一种其上存储有详述一种方法的指令集的有形机器可读介质,所述指令集被一个或多个处理器执行时使得所述一个或多个处理器施行所述方法,所述方法包括: 执行计算机应用的前任版本; 使用更新器模块下载完整后继版本而无视所述前任版本; 将所述计算机应用的所述完整后继版本放置在干净的后继数据存储位置。
9.一种应用更新器,包括: 通信接口,其下载计算机应用的完整后继版本; 数据存储,其将所述计算机应用的前任版本存储在前任数据存储位置并将所述完整后继版本存储在干净的后继数据存储位置;以及 处理器,其执行所述前任版本并且在用户账户级别上安装所述计算机应用的所述完整后继版本。
10.权利要求9的应用更新器,其中所述处理器在所述完整后继版本的安装发生时保持所述前任版本的执行。
【文档编号】G06F21/62GK104040495SQ201380005517
【公开日】2014年9月10日 申请日期:2013年1月7日 优先权日:2012年1月15日
【发明者】J.豪波尔德, C.皮恰里尼 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1