使用部署配置文件自动更新客户端设备上的应用或者驱动的制作方法

文档序号:6498056阅读:323来源:国知局
使用部署配置文件自动更新客户端设备上的应用或者驱动的制作方法
【专利摘要】说明了在客户端设备上自动更新应用或者驱动。在所述客户端设备从配置储存库获得至少一个部署配置文件,包括对应于用于更新应用或者驱动的文件包的部署记录。所述部署配置文件存储于所述客户端设备的存储器中免除写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续。执行检验以判断所述部署记录是否标识了所述客户端设备上安装的应用或者驱动,以及标识了应用或者驱动的版本比所述客户端设备上安装的应用或者驱动的版本更高。然后使用所述文件包在所述客户端设备上更新所述部署记录对应的应用或者驱动,同时停用所述写入过滤器。
【专利说明】使用部署配置文件自动更新客户端设备上的应用或者驱动

【技术领域】
[0001] 本技术主题一般涉及配置管理,更具体地涉及使用部署配置文件自动更新客户端 设备上的应用或者驱动。

【背景技术】
[0002] 对于网络管理者或者系统集成者,为了安装、更新或者维护大量精简型客户端设 备上的软件应用和/或驱动,管理者面临两种选择。管理者可以在一个设备上安装或者更 新软件和/或驱动,创建设备镜像,并将镜像复制到所有类似设备上。然而在这种方法中, 创建的镜像被配置为仅用于单个硬件平台上,如果安装在具有不同硬件平台的设备上将不 能正确运行。作为结果,需要创建不同镜像用于管理者维护的每个不同的硬件平台,其可以 导致需要创建大量的镜像。另外,磁盘镜像可以是非常大的文件,在多个客户端设备上安装 磁盘镜像可以能导致潜在的非常大的镜像文件到所有设备的传输。为了不创建用于每个不 同硬件平台的磁盘镜像,以及为了不向每个客户端设备传输大量磁盘镜像文件,管理者可 以替换地单独安装或更新设备上的软件应用和/或驱动。然而单独安装方法消耗大量时 间,尤其是考虑当大量设备或频繁更新/安装时。


【发明内容】

[0003] 提供了用于配置管理的方法和装置示例。例如,提供了使用部署配置文件自动更 新客户端设备上的应用或者驱动等等的方法和装置示例。
[0004] 在一个方面,装置可以包括客户端设备的更新代理模块,被配置为从配置储存库 获得部署配置文件。部署配置文件可以包括对应于更新应用或者驱动的文件包的部署记 录,部署记录可以包括文件包和文件包版本的标识符。更新代理模块可以在客户端设备的 存储器的免除写入过滤器限制的一个位置存储部署配置文件,其中写入过滤器限制可以阻 止存储在启用写入过滤器功能的客户端设备上的文件跨客户端设备重启持续运行。更新代 理模块可以检验部署配置文件的部署记录对应于更新安装在客户端设备上的应用或者驱 动的文件包,以及部署记录标识具有比安装在客户端设备上的应用或者驱动的版本更高的 文件包版本。更新代理模块然后可以在客户端设备上使用文件包更新对应于部署配置文件 的部署记录的应用或者驱动,同时禁用写入过滤器。

【专利附图】

【附图说明】
[0005] 图1显示了将应用和/或驱动部署到运行于不同硬件平台的多个客户端设备上的 系统示例。
[0006] 图2是根据技术主题的不同方面显示系统示例的概念结构图。
[0007] 图3A和3B显示了创建用于将磁盘镜像安装到具有多种客户端平台中任一种的客 户端设备上,以及将磁盘镜像安装到具有一种客户端平台的客户端设备上的过程示例。
[0008] 图4A和4B显示了创建用于将磁盘镜像安装到运行于多种客户端平台中任一种的 客户端设备上的过程示例。
[0009] 图5A,5B和5C显示了将磁盘镜像安装到具有多种客户端平台中的一种的客户端 设备上的过程示例。
[0010] 图6A和6B显示了安装和验证客户端上驱动的安装的过程示例。
[0011] 图7A和7B显示了分别用于存储设备驱动配置文件和相关数据,和用于存储磁盘 镜像和相关数据的数据结构示例。
[0012] 图8A根据技术主题的不同方面显示了操作系统和用于执行操作的相关组件的示 例。
[0013] 图8B根据技术主题的不同方面显示了客户端设备的简化结构图。
[0014] 图9A根据技术主题的不同方面显示了驱动管理应用的功能结构图示例。
[0015] 图9B-9J显示了用于执行与技术主题相关的不同功能的过程示例。
[0016] 图10显示了使用部署配置文件在客户端设备上自动部署一个或者多个驱动的过 程不例。
[0017] 图11显示了使用部署配置文件在客户端设备上自动部署一个或者多个应用的过 程不例。
[0018] 图12A、12B和12C显示了使用部署配置文件在客户端设备上自动部署驱动和/或 应用的过程示例。
[0019] 图13A和13B显示了用于存储部署配置文件和相关数据的数据结构示例。
[0020] 图14A、14B和14C显示了使用自动更新文件夹在客户端设备上自动更新一个或者 多个驱动和/或应用的过程示例。
[0021] 图15显示了用于存储自动更新文件夹和相关数据的数据结构示例。
[0022] 图16A和16B显示了在客户端设备上自动更新和部署驱动和应用的过程示例。
[0023] 图17A、17B和17C是根据本公开的一个方面表示用于将磁盘镜像安装到具有特殊 类型硬件平台的客户端设备上的方法、具有指令编码的计算机可读存储介质、和装置示例 的结构图。
[0024] 图18A、18B和18C是根据本公开的一个方面表示用于将驱动或应用部署到具有写 入过滤器的客户端设备上的方法、具有指令编码的计算机可读存储介质、和装置示例的结 构图。
[0025] 图19A、19B和19C是根据本公开的一个方面表示用于在具有写入过滤器的客户端 设备上部署和更新应用和驱动的方法、具有指令编码的计算机可读存储介质、和装置示例 的结构图。
[0026] 图20A、20B和20C是根据本公开的一个方面表示用于在客户端设备上自动更新应 用或驱动的方法、具有指令编码的计算机可读存储介质、和装置示例的结构图。

【具体实施方式】
[0027] 下面提出的详细说明意图为技术主题的不同配置的描述,并不表示技术主题可以 实现的唯一配置。附图在此合并并作为详细说明的一部分。为了提供对本技术主题的透彻 理解详细说明包括特定细节。然而,本领域技术人员容易理解本技术主题可以无需这些特 定细节而实现。在一些实例中,公知的结构和组件以结构图的形式显示,以避免混淆本技术 主题的概念。为了便于理解类似组件标记为相同组件编号。
[0028] 一般结构
[0029] -般来讲,本公开描述了用于创建在多个硬件平台上配置部署的主磁盘镜像,和 用于在多个硬件平台中任一个上智能地部署和安装主磁盘镜像的方法和系统的不同实例。 主磁盘镜像包括用于多个硬件平台的每一个的设备驱动和应用,并且能够自动地配置为在 多个硬件平台中的任一个上使用。本公开还描述了用于有效地向,例如,运行于企业网络环 境的嵌入客户端中的客户端设备部署软件应用、驱动、更新(例如,QFE)、和特征组件(例 如,微软特征组件)的不同实例。本公开一般围绕用于执行部署的方法(和相关系统)的 四个实例来组织。
[0030] 第一实例:根据主要关于流程图3A和3B显示和说明的第一实例,说明了磁盘镜像 的创建和安装,包括多个硬件平台的应用和/或驱动。
[0031] 第二实例:根据用于在具有多种硬件平台中任一种的客户端设备上安装一个或者 多个应用和/或驱动的第二实例,镜像建立设备被配置用于创建包括多种硬件平台中的每 一个的应用和/或驱动的磁盘镜像。在第二实例中,磁盘镜像包括设备驱动配置文件。当 将磁盘镜像复制到目标客户端设备上和确定目标设备的特定硬件平台之后,包括在镜像中 用于特定硬件平台的那些驱动被安装在设备上。根据第二实例,主要关于图4A和4B显示 和说明磁盘镜像的创建,而创建的磁盘镜像在客户端设备上的安装和配置主要关于流程图 5A、5B和5C来说明。图6A和6B显示了第二实例的其他方面。图7A和7B显示了用于第一 和第二实例的示意性数据结构。
[0032] 第三实例:根据第三实例,一个或者多个应用和/或驱动被直接安装在具有多种 硬件平台中任一种的客户端设备上。主要关于流程图10、11和12A-12C显示和说明第三实 例。图12A提供了发起应用和/或驱动的部署过程的一般流程图,而图10和12B更具体地 涉及驱动的部署,图11和12C更具体地涉及应用的部署。每个设备提取包括用于在设备上 部署新的或者更新的驱动或应用的信息的部署配置文件。设备确定设备上是否有足够的存 储空间可用。然后设备从部署配置文件中提取安装变量,并处理应用和/或驱动的安装或 者升级。
[0033] 第四实例:最后,根据第四实例,可以在具有多种硬件平台中任一种的客户端设备 上更新一个或者多个应用和/或驱动。主要关于流程图14A和14B显示和说明第四实例。 每个设备可以定位设备上或者储存库服务器上的自动更新文件夹,从文件夹提取部署配置 文件,并根据部署配置文件自动地更新或者安装驱动或者应用。
[0034] 虽然第一、第二、第三和第四实例如上所示通常是关于各自的流程图来说明的,但 是实例不排除关于那些流程来说明。每个实例的不同步骤、操作、组件或者特征可以在如上 所示之外的流程图中说明,一个实例的不同步骤、操作、组件或者特征可以有利地用于不同 实例的上下文中。通过实例,图16A和16B显示了结合第三和/或第四实例的教导的示意 性过程。
[0035] 本公开还包括显示实现方法的常用系统单元(参见图1和2)、用于不同实例的 数据结构(参见图7A、7B、13A、13B和15)、和用于不同实例的实现的组件(参见8A、8B和 9A-9I)的附图。
[0036] 附录:除了附图和伴随的详细说明,本公开还包括五个附录,其讲一步详细列出了 本发明的不同方面。附录A包括设备驱动配置文件和部署配置文件的示意性模式;附录B 包括示意性设备驱动配置文件和部署配置文件;附录C包括示意性产品需求规范;附录D 包括视窗嵌入标准7版本2的示意性需求规范;以及附录E包括用于根据硬件平台处理驱 动存储和智能第三方驱动安装的驱动管理应用(例如,命名为"〇1^!^ 1^.6狀"的应用)的 示意性详细设计规范。
[0037] 整体系统
[0038] 在一个方面,磁盘镜像的创建包括驱动和应用和配置用于在多个硬件平台中任一 个上部署,在特定目标硬件平台上部署磁盘镜像,使用设备驱动配置文件和部署配置文件 部署应用或者驱动,通常都可以通过如图1所示的企业系统来实现。
[0039] 图1根据本技术主题的不同方面显示了将应用、驱动和/或磁盘镜像(例如,包括 应用和/或驱动的磁盘镜像)部署到运行于不同硬件平台的多个客户端设备上的系统1〇〇 的示例。系统100可以包括通过公用网118或者公司网络114与服务器计算设备112 (服 务器)通信的一个或者多个客户端设备1〇2(例如,102a、102b、102c、102d、102e)。在一些 方面,服务器112被配置为允许远程会话(例如,远程桌面会话),其中用户可以通过从客户 端设备102登录到服务器112访问服务器112上的应用和文件。这个连接可以使用一些已 知的技术中的任一种来建立,例如基于视窗的服务器上的远程桌面协议(RDP)。在一些方 面,客户端设备102可以使用文件传输协议(FTP)、超文本传输协议(HTTP)、超文本传输协 议安全(HTTPS)、或者其它合适的协议与服务器112通信。
[0040] 通过实例而非限制,客户端设备102可以表示计算机、移动电话、膝上型电脑、精 简型客户端设备、个人数字助理(PDA)、便携计算设备、或者具有处理器的合适设备。在一个 示例中,客户端设备102是智能电话(例如,苹果电话、安卓电话、黑莓等等)。在某些配置 中,客户端设备102可以表示收银设备、音频播放器、游戏控制台、照像机、可携式摄像机、 音频设备、视频设备、多媒体设备、或者能够支持到远程服务器的连接的设备。在一个示例 中,客户端设备102可以是移动电话。在另一个示例中,客户端设备102可以是固定的。根 据本公开的一个方面,客户端设备102可以是具有至少一个处理器和存储器的设备,其中 客户端102的总体存储容量应当小于服务器112的总体存储容量。在一个示例中,客户端 设备102没有硬盘。在一个方面,客户端设备102可以包括闪存来替代硬盘。在一个方面, 客户端设备可以是一个或者多个服务器。在一个方面,客户端设备可以包括一个或者多个 客户端设备。
[0041] 在一个方面,客户端设备具有由硬件和构成为客户端设备的一部分的其它组件确 定的相关硬件平台。客户端设备的硬件平台可以根据形成为客户端设备的一部分或者安装 于其上的处理器、存储器、和/或接口设备(例如,显示器设备、图形或音频卡、键盘或其它 输入设备、有线或无线网络接口和卡、读卡器、USB端口、条形码扫描器等等)的特定模式来 确定。硬件平台通常被命名(例如,命名为"SATURN"的平台),并与一个或者多个与该平台 相关的所有客户端设备都具有的硬件组件相关。在一个示例中,具有命名为"SATURN"的硬 件平台的所有客户端设备可以具有Realtek高清音频卡和AM Radeon HD6310图形接口卡, 例如。硬件平台可以组织为类,以使得共同具有一个或者多个组件的多个硬件平台可以划 分为一个类。例如,命名为"R"的硬件平台类可以包括命名为"MERCURY"和"PLUTO"的平 台,以使得具有命名为"MERCURY"或"PLUTO"的硬件平台的所有客户端设备形成为类"R" 的一部分。在一些实例中,每个客户端设备存储客户端设备硬件平台和/或硬件平台类的 标识符。然而在其它实例中,客户端设备硬件平台和/或类是通过执行清点安装于客户端 上的硬件组件来确定的,并根据清点结果确定客户端设备的硬件平台和类。
[0042] 在优选方面,客户端设备102是设计用于特定目的(而非通用目的)的特定目的 客户端设备。在优选方面,客户端设备102不是传统个人计算机(PC)。在一个方面,特定 目的客户端设备可以设计为执行一个或者较少预定义的、专用功能。例如,特定目的客户端 设备可以被设计用于执行少于10个专门功能、少于5个专门功能、少于3个专门功能、或者 1个专门功能。例如特定目的客户端设备可以是设计为位于商场的收银机的客户端设备、 设计为执行特定测试或测量的客户端设备、设计为执行用于诊断和/或病人治疗的特定医 疗应用的客户端设备等等。特定目的客户端设备优选地包括写入过滤器,其在正常运行期 间启用以使得如果用户(例如,收音员,非管理者)改变客户端设备的嵌入式镜像的任何配 置,这个改变不会跨重启持续。
[0043] 在一个方面,服务器112可以表示计算机、膝上型电脑、计算设备、数据库、室内服 务器、储存库服务器、配置应用服务器、域名系统(DNS)服务器、动态主机配置协议(HDCP) 服务器、虚拟机(例如,VMware?虚拟机)、桌面会话(例如,微软终端服务器)、出版的应 用(例如,微软终端服务器)或者具有处理器的适当的设备。在优选方面,服务器112是固 定的。在另一个方面,服务器112可以是移动的。仍然在另一个方面,服务器112可以是嵌 入式的。在某些配置中,服务器112可以是可以表示客户端设备的任何设备。在优选方面, 服务器112不是客户端。在一个方面,服务器112可以包括一个或者多个服务器、或者一个 或者多个服务器的功能。
[0044] 在一个示例中,当第一设备没有直接连接到第二设备时,第一设备是第二设备的 远程。在一个示例中,第一远程设备可以通过通信网络,例如本地局域网(LAN)、广域网 (WAN)、和/或用于远程操作的其它网络连接到第二设备。
[0045] 当客户端设备102和服务器112相互之间是远程时,客户端设备102可以通过公 用网118和/或公司网络114连接到服务器112,例如通过调制解调器连接、包括以太网的 LAN连接、或者包括DSL、电缆、T1、T3、光纤、Wi-Fi的宽带WAN连接、或者包括GSM、GPRS、3G、 WiMax的移动网连接或其它远程网络连接。公用网118或联合网114可以是LAN网络、WAN 网络、无线网、互联网、内联网或者其它远程网络。网络上的远程设备(例如,客户端设备、 服务器)可以通过对应的网络地址,例如但不局限于互联网协议(IP)地址、互联网名、视窗 互联网名业务(WINS)名、域名或者其它系统名来寻址。这些说明作为一个设备如何与另一 个设备远程的一些示例。但是技术主题不局限于这些示例。
[0046] 在本公开的一个方面,"客户端设备"可以有时指客户端、目标客户端设备、目标设 备、或者反之亦然。类似的,"服务器"可以有时指服务器设备或反之亦然。
[0047] 在一个方面,术语"本地"和"远程"是相对术语,客户端设备可以被称为本地客户 端设备或者远程客户端设备,根据客户端设备分必是从客户端侧说明的还是从服务器侧说 明的。在一个方面,位于客户端侧的设备(例如,直接连接到客户端设备或者使用有线或无 线连接到另一个(例如,使用具有短距离例如35英尺的蓝牙或者红外)的设备)可以相对 于客户端设备被称为本地设备,以及相对于服务器被称为远程设备。类似的,位于服务器侧 的设备(例如,直接连接到服务器或者使用有线或无线连接到另一个(例如,使用具有短距 离例如35英尺的蓝牙或者红外)的设备)可以相对于服务器被称为本地设备,以及相对于 客户端设备被称为远程设备。
[0048] 在一些方面,服务器112可以包括配置储存库服务器104。虽然服务器112显示为 只包括一个服务器104,但是一个或者多个其他服务器,例如DHCP服务器、DNS服务器、应用 服务器等等可以位于服务器112内部或外部。在一些方面,这些服务器中的一个或多个可 以合并起来作为单个服务器。在一些方面,服务器112还可以被称为室内服务器,因为服务 器112可以主要通过私有网络例如公司网络114与客户端102a、102b、102c和102d通信。
[0049] 在一些方面,服务器112的至少一部分可以从公共网118访问。例如,如图1所示, 配置储存库服务器104可从公共网118访问。因此,客户端设备102e可以通过公共网118 与服务器112 (例如,配置储存库服务器104)通信。
[0050] 在其它方面,连接到公共网118的一个或者多个公共服务器(未显示)可以通过 公共网118使客户端设备102e,和/或通过公共网118、服务器112、和公司网络114使客户 端设备102a、102b、102c和102d可访问。一个或者多个公共服务器可以执行基本上类似于 在此所述的由服务器112和/或配置储存器服务器104执行的任意功能的功能。
[0051] 根据本技术主题的不同方面,客户端102可以每个运行于基于视窗的嵌入式镜 像,例如视窗嵌入式操作系统家族(例如,Windows Embedded Compact、Windows Embedded Standard (WES) > Windows Embedded Enterprise、Windows Embedded P0SReady> Windows Embedded NAVReady、Windows Embedded Server等等)或者其它合适的嵌入式镜像中任意 一种。
[0052] 通常,嵌入式镜像可以包括写入过滤器,其阻止一个或者多个改变跨运行嵌入式 镜像的客户端设备的重启持续应用到嵌入式镜像。例如,嵌入式镜像可以包括写入过滤器 以允许应用于启用写入过滤器的嵌入式镜像的一个或者多个改变,当客户端设备关机时丢 弃。在一些实施方式中,术语"关机"可以指关闭机器。在另一个方面,可以包括从机器退 出。在一些实施方式中,如在此所使用的,术语"重启"或者"重新启动"可以包括用户退出 并重新登录进客户端设备的情况,或者客户端设备关机然后开机的情况。在一个示例中,如 果用户将新的墙纸应用于运行于特定客户端设备的嵌入式镜像,在特定客户端设备重启之 后新的墙纸不会保留在嵌入式镜像上。
[0053] 可以启用写入过滤器以保证用户不会对客户端设备的嵌入式镜像作出任何永久 改变(例如,跨重启持续的改变)。启用写入过滤器是有利的,因为其允许管理者保持特定 系统中客户端设备的所有嵌入式镜像的统一配置。如果用户对客户端设备中的一个的嵌入 式镜像做出改变,那么只有那个特定客户端设备需要重启以将那个嵌入式镜像重置回与其 它客户端设备的其它嵌入式镜像一致的初始配置。启用写入过滤器的另一个好处是可以阻 止有害改变永久地(例如,跨重启应用)应用于客户端设备的嵌入式镜像。例如,如果客户 端设备的用户偶然地下载了病毒导致了对客户端设备的嵌入式镜像的有害改变,那么只有 那个客户端设备需要重启,以将嵌入式镜像重置回未被病毒损害的初始配置。
[0054] 对客户端设备做出期望的改变,例如安装或更新应用或驱动,通常要求停用写入 过滤器并跟随客户端设备的重启。重启之后,停用(或者不启用)写入过滤器,可以对客户 端设备的配置进行改变。为了恢复写入过滤器保护,启用写入过滤器然后重启客户端设备。
[0055] -个或者多个文件、文件夹、或者客户端设备上的其它存储位置可以免除写入过 滤器限制或者写入过滤器功能(即,可以通过写入过滤器),以使得存储于这些位置的数据 跨客户端设备的重启而保持,即使在客户端设备上启用了写入过滤器。这个文件夹或者文 件在此可以作为可以通过写入过滤器的位置。可以使用免除写入过滤器限制或功能的文件 和文件夹,例如,以存储应当在设备的下一次重启时在客户端设备上安装的安装文件或文 件包。在一个示例中,安装文件或文件包存储于免除存储位置,停用写入过滤器,客户端设 备重启,以使得一旦客户端设备启动了,客户端设备可以在停用写入过滤器时安装文件或 者文件包。
[0056] 根据一些方法,为了应用于嵌入式镜像,执行跨重启持续的改变、人工安装软件驱 动、应用、和/或嵌入式镜像的固件更新以创建具有期望的改变的客户化嵌入式镜像。客户 化可以在单个客户端设备上执行,客户化客户端设备可以用于创建磁盘镜像。磁盘镜像然 后被提取到服务器(例如,服务器112)上,然后将完整客户化嵌入式镜像部署到所有要求 的客户端设备(例如,客户端设备102)。因此,嵌入式镜像的客户化可以包括创建客户化嵌 入式镜像、从源客户端设备提取客户化嵌入式镜像到服务器112、将完整客户化嵌入式镜像 从服务器112传输到客户端设备102和/或在客户端设备102上安装完整客户化嵌入式镜 像。然而,嵌入式镜像可能很大。另外,嵌入式镜像可能配置为不可用于特定客户端设备的 硬件平台或者硬件配置。因此,传输和安装镜像可能是不实际的,尤其是客户端设备具有不 同的硬件平台或配置时。
[0057] 例如,在包括超过100个收银机作为客户端设备的大收银系统中,如果管理者希 望在每个收银机的每个嵌入式镜像上安装新的收银程序,那么管理者需要在一个源客户端 设备上创建具有新的收银程序的客户化嵌入式镜像,将客户化嵌入式镜像提取到服务器, 然后将客户化嵌入式镜像从服务器传输到每个收银机用于安装。然而,如果一些收银机包 括不同于源客户端设备和其嵌入式镜像的硬件平台或者组件(例如,具有不同芯片组、不 同LAN接口卡、不同显示器或图形卡的设备),需要创建不同的嵌入式镜像并将其传输至具 有不同硬件的客户端设备。如果管理者期望频繁作出改变,那么每次作出改变,每个硬件平 台或配置的新的客户化嵌入式镜像就需要传输至每个收银机。
[0058] 根据本技术主题的不同方面,创建配置用于在运行于不同硬件平台中任一种的客 户端设备上安装的嵌入式镜像。嵌入式镜像包括每个硬件平台所需要的驱动,被配置为在 目标客户端设备上自动安装目标设备的应急那平台所需要的那些驱动,并删除目标设备的 硬件不需要的驱动。
[0059] 根据本技术主题的其它方面,在客户端设备102的启动开始后,改变将自动应用 于客户端设备102的嵌入式镜像,而无需客户端设备102的用户的干预,由此作出对用户看 来跨客户端设备102重启永久持续的改变。因此,本技术主题的方面用对客户端设备102 的改变排除了整个嵌入式镜像的重新安装,下载和/或安装大的镜像到客户端设备102的 问题可以避免。根据某些方面,配置文件(例如,设备驱动配置文件或者部署配置文件)可 以用于将这个改变应用于嵌入式镜像。
[0060] 系统结构图
[0061] 图2是根据本技术主题的不同方面显示系统示例的概念结构图。系统201可以 是,例如客户端设备(例如,客户端设备102)或者服务器(例如,服务器112、104、106、108、 110)。系统201可以包括处理系统202。处理系统202能够通过总线204或者其它结构或 设备与接收器206和发送器209通信。应当理解除了总线之外的通信装置可以用于公开的 配置。处理系统202能够产生将要提供给发送器209用于通信的音频、视频、多媒体、和/ 或其它类型的数据。另外,音频、视频、多媒体、和/或其它类型的数据可以在接收器206接 收,并由处理系统202处理。
[0062] 处理系统202可以包括执行指令的处理器,可以进一步包括存储器或者机器可读 介质219,例如非永久性或者永久性存储器,用于存储软件程序的数据和/或指令。指令可 以存储在机器可读介质210和/或219中,可以由处理系统202执行来控制和管理到不同 网络的接入,以及提供其它通信和处理功能。指令还可以包括由处理系统202为不同用户 接口设备执行的指令,例如显示器212和键盘214。处理系统202可以包括输入端口 222和 输出端口 224。输入端口 222和输出端口 224中的每一个可以包括一个或者多个端口。输 入端口 222和输出端口 224可以是相同端口(例如,双向端口)或者是不同端口。
[0063] 处理系统202可以使用软件、硬件或者其结合来实现。作为示例,处理系统202可 以是用一个或者多个处理器实现的。处理器可以是通用目的微处理器、微控制器、数字信号 处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制 器、状态机、门控逻辑、分离的硬件组件、或者可以执行计算或者其它信息操作的任意其它 合适的设备。
[0064] 存储器或者机器可读介质可以是一个或者多个机器可读介质。软件应当被宽泛地 解释为指令、数据、或者其任意组合,无论是否被称为软件、固件、中间件、微代码、硬件描述 语言等等。指令可以包括代码(例如,以源代码形式、二进制代码形式、可执行代码形式、或 者任意其它合适的代码形式)。
[0065] 机器可读介质(例如,219)可以包括集成到处理系统中的存储器,例如可以是 ASIC中。机器可读介质(例如,210)还可以包括处理系统外部的存储器,例如随机访问存 储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PR0M)、可擦写PROM (EPROM)、寄存 器、硬盘、可插入盘、CD-R0M、DVD、或者任意其它合适的存储设备。本领域技术人员将理解如 何最好地实现处理系统202的所述功能。根据本公开的一个方面,机器可读介质是编码或 者存储有指令的计算机可读介质,并且是计算组件,其限定了指令和允许实现指令功能的 系统其余部分之间的结构和功能的相互关系。在一个方面,机器可读介质是永久机器可读 介质、机器可读存储介质、或者永久机器可读存储介质。在一个方面,计算机可读介质是永 久计算机可读介质、计算机可读存储介质、或者永久计算机可读存储介质。指令可以是可执 行的,例如由客户端设备或者服务器或者由客户端设备或者服务器的处理系统。指令可以 是,例如包括代码的计算机程序。
[0066] 接口 216可以是任意类型的接口,可以位于图2所示的任意组件之间。接口 216 还可以是例如到外部世界(例如,互联网接口)的接口。收发器块207可以表示一个或者 多个收发器,每个收发器可以包括接收器206和发送器209。处理系统202中实现的功能可 以在接收器206的一部分、发送器209的一部分、机器可读介质210的一部分、显示器212 的一部分、键盘214的一部分、或者接口 216的一部分中实现,反之亦然。在一个方面,系统 201可以只包括图2所示组件中的一些或者多个图2所示的一个或者多个组件。
[0067] 为多个硬件平台创律和部署镜像的方法
[0068] 用于将应用和/或驱动部署到大量目标客户端设备上的一种方法包括创建磁盘 镜像,其包括镜像建立的客户端设备上的所有应用和驱动,并将磁盘镜像复制到所有其它 目标客户端设备上,以在目标客户端设备上部署应用和/或驱动。然而这个方法被证实在 目标客户端设备具有不同硬件平台,因此要求不同的磁盘镜像驱动组来正确地安装到每个 客户端设备各自的硬件平台上,的情况下是有局限性的。
[0069] 为了解决这些局限,开发了一种方法来创建用于将应用和/或驱动部署到多个具 有不同硬件平台的目标客户端设备上的磁盘镜像。图3A是示意性地显示创建用于将磁盘 镜像部署到具有不同硬件平台的目标客户端设备上的操作流程图。图3A的示例是关于支 持具有Windows Embedded Standard(WES)7精简型客户端镜像的多个硬件平台。然而,图 3A的交到可以更普遍地应用于运行其它操作系统的客户端设备。支持具有WES 7精简型客 户端镜像的多个硬件平台的方法是通过安装客户端设备的不同硬件平台所需要的所有第 三方驱动来创建通用主镜像,如下面标准镜像创建过程中所述的。
[0070] 根据图3A的流程图,过程开始于操作301,创建通用配置响应文件(也被称之为通 用配置文件或者"common, xml")。通用配置响应文件是可扩展标记语言(XML)配置文件。 通用配置响应文件是使用镜像配置编辑器(ICE)来创建的。通用配置响应文件包括磁盘镜 像中应当包括的所有组件(例如,微软组件)上的信息,并且可以特别地包括磁盘镜像的视 窗嵌入式特征组。通常,通用配置响应文件标识磁盘镜像的创建中应当包括的大部分或者 所有组件(例如微软组件,在基于视窗的嵌入式操作系统的情况下),作为磁盘镜像的视窗 嵌入式特征组的一部分。
[0071] 在操作303,将通用配置响应文件部署到目标硬件上,例如通过使用镜像建立向 导。通常,将通用配置响应文件发送给被选择用于创建磁盘镜像的客户端设备,在此将其称 之为镜像建立设备。然而在一些示例中,通用配置响应文件可以配置到其它目标设备或硬 件上。
[0072] 在操作305,对于磁盘镜像所支持的多个硬件平台(例如,从1到η的硬件平台) 中的每一个,磁盘镜像创建过程通过识别与每个平台相关的驱动和驱动应用来开始。一旦 识别了驱动和驱动应用,它们可以被复制到和/或安装到镜像建立设备上,以包括创建的 磁盘镜像上的每个硬件平台的所有驱动和驱动应用。驱动和驱动应用可以是由第三方实体 创建的驱动和应用,例如设备和每个硬件平台的其它硬件组件的制造商,通过硬件组件的 驱动和应用的开发者、或者其它实体。对于磁盘镜像将支持的每个硬件平台,操作305还包 括从镜像建立设备提取磁盘镜像并将磁盘镜像推送到下一个支持的硬件平台。
[0073] 磁盘镜像的创建继续到操作307,将应用安装到镜像建立设备,例如第三方实体应 用(例如,citrix "ICA"应用、桌面虚拟化应用例如"VMView"、远程支持软件或虚拟网络计 算"VNC"软件)。在操作309,将其它私有应用安装到镜像建立设备上,例如初始设备制造 商(OEM)应用(例如,HAgent、Client Information、Winlog、Ramdisk)。OEM 应用可以是由 目标客户端设备制造商、目标客户端设备零售商、加载驱动计费的实体、应用、和客户端设 备上的软件、或者提高和支持目标客户端设备中包括的任意其它实体提供的应用。应用可 以另外地或者可选地包括一个或者多个脚本,例如用于在磁盘镜像部署于其上的每个目标 客户端设备上实现或者应用客户化的脚本。
[0074] -旦磁盘镜像支持的每个硬件平台的驱动和磁盘镜像中包括的应用已经安装或 者复制到镜像建立设备上,磁盘镜像创建过程完成。因此在操作311磁盘镜像准备部署和 从镜像建立设备提取。磁盘镜像的准备可以由应用或者工具,在此可以称之为"Syspr印" 来完成。准备可以包括识别存储在镜像建立设备上的应当包括在磁盘镜像中的文件和文件 夹,以及用识别的文件和文件夹创建磁盘镜像。磁盘镜像可以使用任意远程管理软件机制 部署到目标客户端设备上。准备还可以包括存档磁盘镜像。
[0075] 在准备和提取镜像(操作311)之后,镜像可以部署到每个目标客户端设备上。一 旦将镜像部署到或者可以从目标客户端设备访问,客户化可以应用到目标客户端设备(操 作315),例如用户特定策略、磁盘重整、Aero主题等的私有客户化。客户化可以根据磁盘镜 像中包括的信息(例如,根据作为磁盘镜像的一部分加载的一个或者多个脚本),或者根据 来自其它源的信息来执行。客户化之后,在操作317镜像准备好了使用。
[0076] 图3B显示了创建用于将磁盘镜像部署到具有不同硬件平台的目标客户端设备上 的第二示意性过程。图3B的流程图包括基本上类似于图3A中相同标号操作的操作。
[0077] 然而在图3B的示意图中,图3A的操作305替换为新操作306。在操作306,对于 磁盘镜像所支持的多个硬件平台(例如,从1到η的硬件平台)中的每一个,磁盘镜像创建 过程通过识别与每个平台相关的驱动和驱动应用来开始。一旦识别了驱动和驱动应用,它 们可以被复制到和/或输入到镜像建立设备上,以包括创建的磁盘镜像上的每个硬件平台 的所有驱动和驱动应用。驱动和驱动应用可以被复制到或输入到专用文件夹、存储位置、或 者镜像建立设备的存储设备,其可以被称为驱动存储器。驱动和驱动应用可以是由第三方 实体创建的驱动和应用,例如设备和每个硬件平台的其它硬件组件的制造商,通过硬件组 件的驱动和应用的开发者、或者其它实体。一旦输入第三方驱动和驱动应用到每个硬件平 台的镜像建立设备,过程继续到操作307。
[0078] 图3Β的流程图进一步包括在图3Α的操作311和315之间的附加操作313。在操 作313,镜像被推送到或者提取到具有相关的硬件平台的每个目标客户端设备上(从1到 m的目标设备)。可以在每个目标客户端设备从镜像建立设备(其可以是服务器)接收镜 像,例如一旦确定镜像存储在镜像建立设备中。镜像可以可选地复制到每个目标客户端设 备上,或者否则传输到目标客户端设备上(例如,通过到服务器112的网络连接,通过连接 到客户端设备的USB闪存驱动等等)。一旦将镜像复制到或者可以从目标客户端设备访问, 磁盘镜像可以配置为用于目标客户端设备的特定硬件平台,例如,通过安装客户端设备的 硬件组件的驱动。客户化可以应用到目标客户端设备(操作315),例如用户特定策略、磁盘 重整、Aero主题等的私有客户化。客户化之后,在操作317镜像准备好了使用。
[0079] 关于图3A和3B所述的安装所有支持的平台的所有第三方设备驱动可以导致,在 一个示例中,创建嵌入式标准7精简型客户端主通用镜像。然而通过包括所有支持的平台 的驱动,图3A所述的方法可能对固态硬盘(SSD)或者目标客户端设备上的其他存储驱动的 存储空间产生负面影响,还可能产生与驱动重叠和驱动冲突相关的问题,因此负面影响目 标客户端设备的镜像性能和负面影响镜像建立处理时间。为了克服这些问题中的一些,下 面关于图4-6说明创建用于在多个硬件平台上部署的磁盘镜像的改进方法。改进方法根据 使用驱动存储的硬件平台提供智能第三方设备驱动安装。
[0080] 图3A和3B所示的方法通过开发客户化镜像支持第三方驱动和/或应用,其中在 标准建立之上所有驱动和应用都被安装在精简型客户端上,从设备提取精简型客户端镜 像,并将镜像推送到所有其它目标精简型客户端设备。然而,该方法具有它们不能有效地用 于维护,例如为了更新精简型客户端设备上的应用或者驱动的缺点。另外,该方法不能够用 于客户化客户端设备或者在已经处于使用中的精简型客户端上安装设备驱动。当在客户的 场所部署精简型客户端时,如果客户需要增加客户应用或者设备驱动,客户化是一个冗长 的过程。
[0081] 客户化可以以三种示例方式来完成。在第一种方法中,个人可以在每个精简型客 户端上手工安装应用或者设备驱动。如果客户具有好几百个精简型客户端,这第一个方法 表示非常冗长的过程。在第二种方法中,客户化可以安装在一个精简型客户端上,从那个设 备取下固件并部署剩余的其它设备。然而,这第二种方法非常消耗时间,因为固件部署可能 随着镜像增长得越来越大(通常镜像大小可以从2GB到4GB甚至更多)而占用大量时间。 另外,在更新应用或者驱动的情况下,第二种方法要求重复具有最新的应用或驱动版本的 完整镜像创建和安装过程。第三种方法提供由现场工程师准备的客户固件,其中客户化固 件包括预安装的客户应用和驱动。将客户固件发布给客户,和工厂,其中精简型客户端编程 具有在制造精简型客户端时特定客户装载量的客户固件。这第三种方法要求额外努力,因 为不同的人象现场工程师和质量工程师必须包括在准备和验证固件的过程中。另外,如果 应用或者驱动的任意新版本在以后需要部署,就需要重复完整过程。三种方法的每一种中, 如果有任意更新的组件版本可用,例如固件的标准组件或者私有特定组件,都需要私有化 管理软件或者更新设备上组件的人工处理。
[0082] 为了克服上述方法的这些问题和限制,引入了三种新的方法。根据新方法中的两 种,客户创建一个具有关于客户希望在该精简型客户端上部署的不同应用和设备驱动的适 当信息的配置文件(例如,"DeviceDeploymentConfig. xml"文件(其可以被称为部署配置 文件或者设备部署配置文件)等等),配置文件标识安装应用和设备的适当的文件包,其保 留在配置储存库例如储存库服务器(例如,服务器112,或者配置储存库服务器104)中。当 精简型客户端设备启动时,设备自动地提取设备部署配置文件,并在精简型客户端设备上 执行部署。
[0083] 根据新方法中的第三种,客户可以简单地将存储在配置存储库中的组件或者应用 文件包更新至私有提供商发布的组件或者应用最新的版本。精简型客户端设备从配置储存 库自动地提取或者获取更新的组件或者应用文件包,并在设备启动过程期间处理更新的组 件或应用。
[0084] 三种新方法克服了其它方法带来的各种限制。在一个方面,新方法可以克服以下 限制。第一,在其它方法中,如果对驱动或者应用的任意更新可用,那么驱动、应用或者其它 组件的升级在一个客户端设备上执行,提取客户端设备的镜像,以及再次将镜像部署到所 有其它客户端设备上。提取镜像或者镜像设备占用大量时间,时间依赖于闪存或者镜像的 大小。在客户端设备或者位于客户环境中的单元上部署镜像将依赖于(或者由其执行)私 有设备管理者或者简单的USB镜像工具。私有设备管理者是管理软件,其可以用于远程部 署大量镜像工作。精简型客户端上的组件更新高度依赖于设备管理软件来调度增加到设备 上的更新。如果客户不使用设备管理软件,那么客户可能需要更新完整镜像,其使用一些其 它镜像工具象USB镜像工具包括最新的组件。简单USB镜像工具可以直接使用,但是它的 使用将是耗时的,如果需要更新镜像的客户端设备的数量很大。新方法是有帮助的,因为在 基于精简型客户端的WES 7中并没有一直支持自动更新组件。作为结果,有时仅使用远程 管理软件来更新基于精简型客户端的WES 7上的组件。
[0085] 在一个方面,新方法中的一种通过将设备驱动预加载到镜像的驱动存储储存库, 例如WES 7精简型客户端主镜像的驱动存储储存库中使得主镜像,例如视窗精简型客户端 主镜像既便携又智能。当主镜像被部署到目标或者目的客户端设备上时,新方法通过从驱 动存储器安装所有需要的设备驱动来适当地配置目标设备镜像,并删除剩余的其它驱动 (即包括在主镜像中但没有安装在目标客户端设备上的驱动),以使得更有效和更高效地 使用目标客户端设备上的存储器空间(例如,闪存空间)。因为只安装目标客户端设备需要 的驱动,所以目标精简型客户端设备上的驱动冲突的发生和性能问题减少了。
[0086] 新方法可以进一步使用基于可扩展标记语言(XML)的部署支持第三方应用和用 于管理客户端上的设备驱动,例如以部署WES 7精简型客户端运行镜像。基于XML的部署 支持可以减少对客户镜像的需求,其是之前当客户希望在基于精简型客户端的WES 7的精 简型客户端镜像上集成任何第三方设备驱动或应用时所需要的。基于XML的部署进一步减 少了准备客户镜像和执行客户镜像维护的支持工程师或者现场工程师负担。基于XML的部 署因此有助于最小化精简型客户端带来的管理开销。
[0087] 最后,新方法可以执行精简型客户端组件和应用的自动更新。自动更新最小化对 管理软件没有任何依赖的基于精简型客户端的WES 7所需的管理来管理基于精简型客户 端的WES 7。
[0088] 嵌入式镜像创律和安裝z
[0089] 为了解决上述问题,提出了创建用于客户端设备(例如,精简型客户端)部署的 主镜像的改进的方法。方法创建主磁盘镜像,也被称为视窗精简型客户端主镜像,其通过 将多种硬件平台所需的所有设备驱动预加载到磁盘镜像的驱动存储储存库而是便携的和 智能的。当主镜像部署到目标或者目的设备时,目标设备通过从驱动存储安装目标设备的 硬件平台需要的设备驱动适当地配置设备镜像。在部署期间执行应用(例如,在此被称为 "drvmgmt.exe"的应用)以删除目标客户端设备上不需要的其它驱动。应用根据设备驱动 配置文件(例如,命名为"DriverConfig. xml"的文件,并规定哪个驱动应当安装在每个硬件 平台上)执行其它驱动的删除。应用还支持其它功能,例如驱动安装、驱动计数、驱动删除 等等,以使得应用可以用于所有的驱动部署功能。
[0090] 图4A显示了创建用于安装到具有多种客户端硬件平台中任一种的目标客户端设 备上的磁盘镜像(或者主镜像)示意性过程。一旦创建,磁盘镜像被配置为自动在运行于 多种硬件平台中任一种的目标设备上安装应用和驱动。为此,创建的磁盘镜像包括用于多 种硬件平台中每一种的驱动和应用。
[0091] 磁盘镜像创建过程可以由镜像建立设备的镜像建立模块执行,过程开始于镜像建 立设备上的操作401。一般,镜像建立设备是客户端设备,例如客户端设备102,其具有或者 运行镜像建立模块。然而,镜像建立设备还可以是服务器,例如服务器112,或者具有存储器 用于创建主磁盘镜像的另一个合适的设备。
[0092] 在操作403,在镜像建立设备上提取通用配置响应文件。通用配置响应文件包括关 于应当包括在磁盘镜像中的所有组件(例如,微软组件)的信息,可以特别地包括磁盘镜像 的视窗嵌入特征组。通用配置响应文件基本上类似于上面关于图3A的操作301和303所 述的内容。
[0093] 在操作405和407,将第三方应用和私有(或者初始设备制造商)应用安装在镜像 建立设备上。特别地,应用可以安装在镜像建立设备的存储器上,例如机器可读介质210例 如其中镜像建立设备是如图2所示的系统。安装应用之后,在操作409先前存在的设备从 镜像建立设备卸载。先前存在的设备是包括在镜像建立设备上的驱动,以及之前例如作为 操作系统、应用(例如,在操作405和407安装的应用)、硬件组件等等安装的一部分安装在 镜像建立设备上。在建立设备运行WES 7精简型客户端的示例中,先前存在的驱动可以包 括作为操作系统安装的一部分预安装在设备上的微软兼容的驱动。
[0094] 镜像建立过程进行到操作411,其中将驱动输入到镜像建立设备的驱动存储中。通 常,将任意目标客户端设备的硬件平台上安装主磁盘镜像所需的所有驱动都输入到驱动存 储中。在一个方面,操作411可以依赖于设备驱动配置文件,其存储了驱动与每个目标客 户端设备的硬件平台的关联,来识别驱动并将其输入以包括在驱动存储中。与设备驱动配 置文件中标识的一个或者多个硬件平台类别相关的驱动,以及与设备驱动配置文件中标识 的两个或者多个硬件平台相关的通用驱动都可以输入到驱动存储中。驱动存储可以是,例 如镜像建立设备的存储器中的文件夹,其被用于存储与驱动相关的建立信息文件(例如, ".inf" 文件)。
[0095] 一旦所有驱动输入到驱动存储中,磁盘镜像在操作413创建。磁盘镜像通常是根 据镜像建立设备的存储器的内容创建的,例如存储在操作405和407安装的应用和在操 作411输入驱动存储的驱动的镜像建立设备的机器可读介质。在操作413,镜像可以准备 好用于部署,从镜像建立设备提取出来用于以后传输或者部署到目标客户端设备。提取的 磁盘镜像可以存储在服务器(例如,服务器112)中,例如用于以后部署到目标客户端设备 102a-102e中的任一个。磁盘镜像创建过程然后结束于操作415。图4A显示的所有操作可 以自动地执行而无需人工干预。
[0096] 在一个方面,图4A的示意性过程可以包括输入设备驱动配置文件到镜像建立设 备的额外操作。设备驱动配置文件可以例如在完成操作411之后输入到镜像建立设备的存 储器中。设备驱动配置文件规定了驱动和硬件平台之间的关联,尤其用于根据客户端设备 的硬件平台识别安装在目标客户端设备上的驱动。设备驱动配置文件可以在将磁盘镜像安 装到特定目标客户端设备上(参见,例如下面关于图5A-5C的说明)的操作期间使用。 [0097] 在一些实例中,设备驱动配置文件包括多个类别硬件平台的配置数据,每个类别 由类别名标识。对于每个类别,配置文件列出了与类别关联的一个或者多个平台,以及与类 别关联的一个或者多个驱动。每个平台可以由平台标识符(例如,平台ID),例如唯一序号 标识符,和平台名来识别,而每个驱动可以由驱动标识符(驱动ID),例如唯一序号标识符, 驱动类型、驱动说明、和与驱动关联的安装信息文件的文件名和/或路径。驱动类型可以包 括音频驱动的"AUDIO"、图形驱动的"VGA"、有线或无线网络适配器驱动的"LAN"或"WLAN"、 不同类型的控制器或接口的驱动的" CARDREADER"或"USB3. 0 "等等。
[0098] 设备驱动配置文件还可以包括所有硬件平台的配置数据,例如应当安装在所有硬 件平台上的一个或者多个驱动的列表。设备驱动配置文件进一步可以包括在多个平台之间 共享的通用驱动(但是不是必须由一个类的所有平台共享)列表。每个通用驱动由驱动 ID、驱动类型、驱动说明、和文件名和/或路径来标识。对于每个通用驱动,配置文件列出了 与驱动关联的两个或者多个平台。这样,配置文件包括在每个硬件平台上安装特定驱动的 信息、和硬件平台的每个类别的标识符、与类别关联的驱动,以及对于每个通用驱动,与通 用驱动关联的平台。设备驱动配置文件可以是可扩展标记语言(XML)配置文件。
[0099] 图4B显示了由镜像建立模块创建磁盘镜像的过程的特殊示例。流程图显示了包 括在WES 7镜像创建中的示意性过程,图4B中显示的所有操作可以自动执行,而无需人工 干预。图4B的某些操作类似于图3的操作,描述这些操作时可以参考图3的说明。
[0100] WES 7镜像的创建开始于操作451,使用镜像配置编辑器(ICE)创建通用配置响应 文件,通用配置响应文件在此不同的称之为文件名为"common, xml"的文件(也可以称之为 通用配置文件)。在操作453,使用镜像建立向导(IBW)将通用配置响应文件部署在目标 硬件上,例如镜像建立设备。在操作455和457,将第三方应用(例如,ICA、VMView、VNC等 等)和私有应用(例如,HAgent、ClientInformation、Ramdisk等等)安装在镜像建立设备 上。另外,在操作457-个或者多个脚本可以输入到镜像建立设备上,例如用于在将在其之 上部署磁盘镜像的目标客户端设备上实现或者应用客户化的脚本。应用安装之后,在操作 459使用应用例如drvmgmt. exe应用的卸载模块将基本微软兼容的驱动从镜像卸载。在操 作461,使用例如drvmgmt. exe应用的增加模块将支持的硬件平台的所有设备驱动输入到 驱动存储。在一个方面,输入的驱动对应于设备驱动配置文件中识别的所有驱动。最后,在 操作463,磁盘镜像准备好用于配置,例如通过使用"Syspr印"应用,以及提取准备好的镜 像。
[0101] 通常,在准备WES 7通用主镜像的过程中,多种硬件平台所需的所有设备驱动被 预加载到通用主镜像中。然而,设备驱动的副本可以增加到主镜像的驱动存储中,例如在某 些硬件平台具有通用硬件组件的情况下。例如,如果多个硬件平台(或者多个硬件平台类 另IJ)具有Realtek高清音频卡、Realtek-PCI GBF族控制器、和AMD Radeon HD6310图形卡, 具有这些通用组件的每个平台(或者类别)的驱动的独立副本应当被包括在驱动存储中。 为了避免在驱动存储中不必要的存储相同设备驱动文件的(多个)副本,以及由此减少可 部署的磁盘镜像的大小,设备驱动配置文件可以包括在多个平台(或者平台类别)之间共 享的通用驱动的一个部分。
[0102] A显示了将磁盘镜像安装到目标客户端设备上的示意性过程,例如由图4A或4B的 过程所产生的和包括几个硬件平台的应用和驱动的磁盘镜像。目标客户端设备具有几个硬 件平台中的一个,目标客户端设备的硬件平台可以是设备驱动配置文件中标识的平台类别 的一部分。图5A的过程在其上将部署磁盘镜像的每个目标客户端设备上重复。
[0103] 过程开始于操作501,将磁盘镜像部署到目标客户端设备。图5A的过程可以由镜 像配置模块执行,例如由目标客户端设备的或者在其上运行的镜像配置模块。目标客户端 设备可以使用任意远程管理软件机制接收或者提取磁盘镜像。在一个方面,目标客户端设 备从服务器(例如,服务器112)、镜像建立设备、或者存储或者已经访问到磁盘镜像的另一 个设备接收或者提取磁盘镜像。可选地,磁盘镜像可以被推送到目标客户端设备、被预加 载到安装于或者连接到目标客户端设备的存储器上、或者否则可以被提供给目标客户端设 备。在操作503,目标客户端设备将磁盘镜像存储于目标客户端设备的存储器或者其它机器 可读介质,或者否则与存储磁盘镜像的机器可读介质进行通信。在操作505,目标客户端设 备重启,或者否则执行启动过程来开始磁盘镜像安装。
[0104] 在启动过程期间或者之后,在其中存储有磁盘镜像的目标客户端设备自动安装硬 件和形成为目标客户端设备的一部分的其它组件的驱动(操作507)。根据客户端设备的特 定硬件平台,并使用存储在磁盘镜像的驱动存储中的建立信息文件将驱动安装在客户端设 备上。如果客户端设备是运行WES7的精简型客户端,驱动安装操作可以作为用于配置和安 装目标客户端设备的特定硬件的驱动的视窗即插即用过程的一部分来执行。视窗即插即用 安装过程通常是在WES 7精简型客户端启动过程期间自动发起的,并自动检测硬件组件, 搜索驱动或者相关驱动建立信息文件,并在精简型客户端上安装驱动。可以包括作为操作 507执行的驱动安装的一部分的操作的更详细的说明包括在下面关于图6A的说明中。
[0105] 在操作509,提取设备驱动配置文件。通常,设备驱动配置文件是从客户端设备存 储的磁盘镜像提取的,然而,设备驱动配置文件可以从另一个存储位置提取,例如从本地或 者远程存储位置。设备驱动配置文件基本上类似于上面关于图4A所述的设备驱动配置文 件。随着提取设备驱动配置文件,客户端设备可以对客户端设备应用某些客户化,例如对客 户端设备应用特定策略或喜好(例如,磁盘重整、飞行方案)。客户化可以是用户特定的,可 以根据在磁盘镜像包括的,或者在镜像建立设备可访问的其它合适存储位置包括的一个或 者多个脚本中包括的客户化信息来执行。
[0106] 在操作511,识别目标客户端设备的硬件平台和相关的类别。根据识别的硬件平台 和类别,以及根据设备驱动配置文件中包括的信息,识别与硬件平台和类别相关的驱动用 于安装在客户端设备上。操作511可以因此包括将设备驱动配置文件中标识的所有驱动识 别为与客户端设备硬件平台的类别相关,并将设备驱动配置文件中标识的所有通用驱动识 别为与客户端设备的硬件平台相关。作为操作511的一部分,驱动和与识别的驱动相关的 驱动应用可以安装在客户端设备上。驱动应用可以在设备驱动配置文件中标识,例如与应 用对应的驱动关联的设备驱动配置文件中的一部分。根据客户端设备的硬件平台选择驱动 应用安装在客户端设备上。
[0107] 在操作513,验证在操作511识别的所有驱动的安装状态,以保证与目标客户端设 备的硬件平台和类别相关的所有驱动已经被安装在目标客户端设备上。验证可以包括列举 (或者确定)安装在目标客户端设备上的所有驱动,并将列举出来的驱动与在操作511识别 的驱动进行比较。如果确定所有驱动安装在目标客户端设备上,操作进行到操作515。然 而,如果发现在操作511识别的任何驱动没有安装在客户端设备上,检测到错误。响应于检 测到错误,客户端设备可以尝试重新安装发现没有安装的任意驱动,和/或可以提出驱动 安装故障告警指示没有安装一个或者多个驱动。
[0108] 如果所有驱动确定为安装在目标客户端设备上,在操作515识别设备驱动配置文 件中列出的不与目标客户端设备的硬件平台相关也不与类别相关的其它驱动。在操作517, 将其它驱动,对应于包括在磁盘镜像的驱动存储中但在磁盘镜像安装过程中还没有使用的 驱动,从客户端设备的驱动存储中删除。一旦清除了其它未使用的驱动,安装过程结束于操 作519。图5A所示的所有操作可以自动执行无需人工干预。
[0109] 图5B和5C显示了在目标客户端设备上部署镜像期间包括的操作的示意性流程 图,例如由目标客户端设备的镜像配置模块执行的操作。
[0110] 在图5B中,在将WES 7镜像(包括驱动存储)部署到目标客户端设备上之后,以及 在目标客户端设备的第一次启动过程期间,例如微软即插即用自动驱动安装过程的过程将 根据目标硬件从驱动存储配置和安装所有需要的驱动(操作541)。在操作543,客户化脚 本将运行,其负责建立类似于用户特定策略、磁盘重整、飞行方案等事情。在操作545根据 目标客户端设备的硬件平台加入需求的驱动应用,例如使用drvmgmt. exe的CheckDriver 模块。在操作547,使用drvmgmt. exe应用的列举、验证和清除模块将任意未使用的设备驱 动从驱动存储中清除。操作547之后,WES 7精简型客户端在操作549准备好使用了。
[0111] 在图5C中提供了更详细的流程图。在操作571,创建驱动储存库以存储磁盘镜像 支持的所有硬件平台的厂商驱动。在操作573,将驱动和设备驱动配置文件(可以称之为 "DriverConfig. xml"文件)预加载到主通用磁盘镜像驱动存储中,以及在操作575将磁盘镜 像部署到目标客户端设备硬件上。在操作577,将驱动安装在使用磁盘镜像的驱动存储中存 储的驱动的目标客户端设备。安装可以由即插即用(PNP)应用和/或drvmgmt. exe应用的 安装模块执行。目标客户端设备的硬件平台类别在操作579识别。在操作581,列举安装在 目标客户端设备上的设备驱动,在操作583,识别与设备驱动配置文件中的目标客户端设备 的硬件平台和/或类别关联的驱动。根据在操作581和583识别的驱动,确定与目标客户 端设备平台和类别关联的所有驱动是否已经安装(操作585)。如果任意驱动还未安装(操 作587),执行结束(操作593)。然而,如果所有驱动都已经安装,就读取设备驱动配置文件 来识别与硬件平台而不是与目标客户端设备平台关联的其它驱动(操作589)。在操作591 将其它驱动从驱动存储中清除,过程结束于操作593。图5B和5C所示的所有操作可以自动 执行无需人工干预。
[0112] 图6A显示了验证目标客户端设备上驱动的安装,例如图5A的操作507中执行的 安装是否成功的示意性过程。在部署磁盘镜像的过程中,例如UWES7通用主镜像,在目标客 户端设备上,使用驱动存储中存储的驱动建立信息文件根据硬件平台安装设备驱动。设备 驱动安装过程通常是自动执行的,例如通过即插即用型安装过程。然而设备驱动安装过程 可能由于多种原因,包括存储器或者存储设备(例如,目标SSD闪存)的空间不够、对应于 非即插即用设备的驱动不能够自动安装在目标客户端设备上、和/或在安装期间设备初始 化故障而失败。为了解决设备驱动安装过程期间的这些问题,图6A提供了实现多层次驱动 安装和验证过程的方法。
[0113] 在操作601,将一个或者多个驱动安装在客户端设备上。安装之后,在操作603验 证驱动安装状态。通常,验证包括校验设备上的任意驱动是否指示为未成功安装。在运行 基于视窗的操作系统的设备中,例如,操作系统可以指示设备安装状态失败或者未成功。在 其它类型设备中,标记或者其它标识可以指示驱动安装未完成。如果所有驱动的安装都成 功,没有安装失败(操作605- "否"),可以报告驱动安装成功(操作607),验证过程结束 于操作617。然而,如果一个或者多个驱动的安装失败了、不成功或者否则没有正确地完成 (操作605- "是"),就在操作609尝试重新安装驱动。驱动重新安装通常是与驱动安装基 本上相同的方式执行,例如操作507和/或601执行的。驱动重新安装还可以包括驱动卸 载操作,以在执行驱动重新安装之前删除未成功或者未完成的驱动安装。驱动重新安装之 后,在操作611验证驱动重新安装状态。如果所有驱动的重新安装都成功,没有重新安装失 败(操作613- "否"),可以包括驱动安装成功(操作607)和驱动安装验证过程终止于操 作617。然而如果一个或者多个驱动的重新安装失败了(操作613-"是"),就报告驱动安 装失败(操作615)以及过程终止于操作617。
[0114] 图6B根据关于图6A所述的过程显示了驱动安装验证过程的特殊示例。图6A和 6B所示的所有操作可以自动执行无需人工干预。
[0115] 图7A示意性地显示了用于存储例如图4A-4B、5A-5C、图6A-6B的过程中所使用的 设备驱动配置文件701的数据结构700。设备驱动配置文件701包括一个或者多个平台类别 结构703,每个平台类别结构存储与特定平台类别相关的信息。特别地,平台类别结构703 可以包括类别标识符707, 一个或者多个平台709和驱动711的列表。类别标识符707可以 是类别编号、类别ID、类别名和/或与结构关联的类别的其它标识符。一个或者多个平台 709的列表标识了与类别关联的所有硬件平台,可以是例如平台编号、平台ID、平台名的列 表。驱动711的列表标识了与类别关联的所有驱动,可以是例如驱动编号、驱动ID、驱动名、 和/或驱动建立信息文件的文件名和/或路径的列表。设备驱动配置文件701进一步包括 一个或者多个通用驱动结构705,每个通用驱动结构存储与特定通用驱动相关的信息。通用 驱动结构通常存储对应于结构的驱动713的信息,驱动信息713包括驱动编号、驱动ID、驱 动名、和/或驱动建立信息文件的文件名和/或路径。通用驱动结构还包括与通用驱动关 联的平台715的列表。
[0116] 图7B示意性地显示了用于存储例如图4A-4B、5A-5C、图6A-6B的过程中所使用的 磁盘镜像的磁盘镜像801的数据结构800。磁盘镜像801通常是硬盘、闪存、存储器、其它存 储介质、或者存储介质的一部分,其存储文件、文件夹、和用于部署到目标客户端设备的其 它数据,的副本。在图4A-4B、5A-5C、图6A-6B的示例中,磁盘镜像可以基本上存储在镜像 建立设备的机器可读介质(例如硬盘、闪存等等)上存储的所有数据,当镜像准备好和从镜 像建立设备提取时。在一些示例中,磁盘镜像801可以包括操作系统、应用和在存储器镜像 准备好部署时存储在镜像建立客户端设备的存储器中的数据文件。在图7B所示示例中,磁 盘镜像801包括设备驱动配置文件803、在磁盘镜像创建之前安装在镜像建立客户端设备 上的一个或者多个应用805、以及存储多个驱动的驱动文件807a、807b的驱动存储807。驱 动文件807a、807b可以是驱动文件、建立信息文件(例如,".inf"文件)或者用于驱动安 装的其它类型的文件(例如,".msi"安装包文件、cab"存档包文件、exe"可执行文件 等)等等°
[0117] 图8A是显示示意性WES 7操作系统的组件、以及操作系统组件与客户端设备上 不同存储结构之间的交互的结构图。在图8A示例中,操作系统包括即插即用特征用于在 客户端设备上自动配置驱动。即插即用特征(例如,视窗操作系统的微软即插即用特征) 可以确定一个或者多个驱动丢失了,例如通过识别客户端设备的一个或者多个组件没有安 装相关的驱动,并自动尝试安装识别的组件的驱动。驱动可以根据驱动建立信息文件或者 存储在例如客户端设备的驱动存储中的其它安装或者数据文件来安装。一旦安装了,驱动 形成为客户端设备上激活驱动组的一部分,例如位于运行基于视窗的操作系统的客户端设 备的windows/system32/drivers文件夹中的Win_32激活驱动。操作系统可以依赖于提 供设备管理控制台的Devmgmt. msc应用、提供建立应用为执行安装操作调用的一组功能的 SetupAPI应用程序接口、和/或提供设备处理所需功能的DIFxAPI设备安装器。客户端设 备或者操作系统进一步使用私有应用,例如在此被称为Drvmgmt. exe的应用,根据客户端 设备的硬件平台和使用客户端设备的驱动存储来处理和执行第三方驱动的智能安装。
[0118] 图8B根据本技术主题的不同方面显示了客户端设备的简化结构图。客户端设备 102可以包括以下中的一些或者所有:镜像建立模块808、镜像配置模块809、驱动管理模块 810、更新代理模块812、应用模块822、驱动模块824、操作系统模块826、硬件组件830。更 新代理模块812可以包括以下中的一个或两者:自动更新模块814和部署模块816。部署模 块816可以包括以下中的一个或两者:驱动部署模块818和应用部署模块820。操作系统模 块826优选地包括写入过滤器。其可以包括排除列表。在一些方面,驱动管理模块可以部 分地作为例如"drivermgmt. exe"的驱动管理应用来实现。客户端设备102的模块和/或 组件可以相互通信。在一些方面,硬件组件830可以包括不同接口设备,客户端设备102的 模块进一步通过人机接口设备(HID)连接与不同用户接口设备通信。用户接口设备可以包 括一个或者多个输出设备(例如,一个或者多个显示器、扬声器、或者其它音频、图像、或视 频输出设备)和一个或者多个输入设备(例如,一个或者多个键盘、鼠标、跟踪球、麦克风、 触针、触摸屏、触摸板、笔、平板、或者其它音频、图像或视频输入设备)。模块还可以通过网 络连接与公共网118或公司网络114通信。
[0119] 在优选实施方式中,模块(例如,通过828的808)在软件中实现(例如,包括例程 或代码的机器可读介质)。在另一个实施方式中,一些或者所有模块可以以硬件(例如,专 用集成电路(ASIC)、场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、状态机、门控 逻辑、分离的硬件组件、或者任意其它合适的设备)和/或其组合实现。根据本公开的不同 方面的这些模块的其它特征和功能将进一步说明。
[0120] 在一个示例中,客户端设备102的嵌入式镜像可以包括操作系统模块826和以下 中的一些或所有:模块822、824、和808。在另一个示例中,客户端设备102的嵌入式镜像 可以包括操作系统模块826和以下中的一些或所有:模块822、824、和809。在另一个示例 中,客户端设备102的嵌入式镜像可以包括操作系统模块826和以下中的一些或所有:模块 822、824、和810。在另一个示例中,客户端设备102的嵌入式镜像可以包括操作系统模块 826和以下中的一些或所有:模块822、824、812和814。在另一个示例中,客户端设备102 的嵌入式镜像可以包括操作系统模块826和以下中的一些或所有:模块822、824、812、816、 818和820。在另一个示例中,客户端设备102的嵌入式镜像可以包括操作系统模块826和 以下中的一些或所有:模块808、809、810、812、814、816、820和824。在另一个示例中,客户 端设备102可以包括操作系统模块和模块808。
[0121] 根据一些方法,为了通过管理软件大量部署精简型客户端固件,客户化固件镜像 需要作为文件包来创建。镜像的写入过滤器可能需要停用,软件/驱动需要安装,合适的配 置需要设置,以及然后写入过滤器可能需要启用。在这个过程之后,客户端上的固件可能需 要从远程服务器提取。这个固件镜像可以是大尺寸和可能需要推送到使用客户化固件改变 的所有合适的客户端。
[0122] 为了阻止大固件通过网络推送给多个客户端的这个过程,将要安装的驱动/应用 可以在配置文件中规定。在一些方面,应用还可以与配置文件一起存储。只要客户端启动 了,运行于每个客户端设备的自动更新业务可以检验配置文件,以确定客户端设备上的任 意驱动或者应用的更新是否可用,并且然后自动更新业务能够下载和安装对应驱动或应用 的可用更新。
[0123] 图9A显示了用于安装、卸载、和在客户端设备的驱动上执行其它处理和操作的驱 动管理模块的简化结构图。驱动管理模块,在此称之为Drvmgmt. exe和/或驱动管理应用, 包括用于执行处理的单独模块,包括用于增加、安装、检验、再次扫描、列举、验证、卸载、和 从客户端设备清除驱动的模块。驱动管理模块可以位于或者安装于客户端设备上,例如目 标客户端设备或者镜像建立设备、或者服务器,并用于在模块所位于的客户端设备或者服 务器上执行过程。
[0124] 图9B-9J显示了驱动管理模块(例如,drvmgmt. exe)的不同子模块执行的过程 的详细流程图。驱动管理模块用于,例如在上述关于图4A_4B、5A_5C、图6A-6B所不的和 说明的镜像建立过程的多个阶段。在上述示例中,驱动管理模块用于执行创建Windows Embedded Standard 7精简型客户端主镜像中包括的多个操作。
[0125] 驱动管理模块可以作为命令行应用来实现,其被开发以处理Windows Embedded Standard 7精简型客户端主镜像上的不同设备驱动管理行为。模块可以支持不同功能,象 增加一个或者多个设备驱动到驱动存储中、安装和卸载驱动、从驱动存储中删除驱动等等。
[0126] 在驱动管理模块是命令行应用的实现中,可以如下所示来使用。应用可以用如下 所不的命令行来调用:Drvmgmt. exe/〈function name>[function arguments]
[0127] 下面包括驱动管理模块支持的功能列表,以及功能相关的说明。驱动管理模块的 功能被调用之后(对应于图9J示意性显示的过程),驱动管理模块提取提供给功能的命令 行参数,验证所有命令行参数都存在并且具有正确的语法,并根据提供的命令行选项和参 数执行各自模块。例如,Install模块(对应于图9C示意性显示的过程)执行安装功能,以 从特定路径(例如,存储了 ".inf"驱动建立信息文件的路径)安装驱动文件包。Add模块 (参见如图9B)执行增加功能,以预加载驱动存储中的即插即用(PNP)功能驱动的驱动文件 包,并使用DIFXAPI功能安装系统INF文件目录中的驱动文件包的INF文件。CheckDriver 模块(参见例如图9D)执行检验驱动功能,来验证请求的驱动是否已经安装,并象主程序 返回状态。Rescan模块(参见例如图9E)执行再次扫描功能,用于从驱动存储重配置设备 驱动。Enumerate模块(参见例如图9F)执行列举功能,用于从安装的目标平台捕获设备 驱动信息(设备驱动描述)。列举模块因此可以被用于获得安装在客户端设备上的驱动列 表。Verify模块(参见例如图9G)执行验证功能,用于验证当前安装在目标硬件上的驱 动列表,用基于客户端设备的硬件模型的设备驱动配置文件或者部署配置文件(例如命名 为 "DriverConfig. xml" 或"DeviceDeploymentConfig. xml" 的文件)中给出的参考驱动列 表。Uninstall模块(参见例如图9H)执行卸载功能,用于根据驱动说明删除当前配置用 于设备的驱动。Clear模块(参见例如图91)执行清除功能,用于验证驱动完整性,并从驱 动存储中清除设备驱动配置文件或者部署配置文件(例如命名为"DriverConfig. xml"或 "DeviceDeploymentConfig. xml"的文件)中规定的其它硬件模型的驱动。示意性地显示于 图9B-9J中的每一个的过程可以自动执行,无需人工干预。
[0128] 驱动管理模块的每个模块、以及相关过程可以使用全命令行用法来调用,例如:
[0129]

【权利要求】
1. 一种方法,用于在客户端设备上自动更新应用或者驱动,所述方法包括: 便于在所述客户端设备从配置储存库获得至少一个部署配置文件, 其中所述至少一个部署配置文件包括对应于用于更新应用或者驱动的文件包的部署 记录,以及所述部署记录包括所述文件包的标识符和所述文件包的版本; 便于将所述至少一个部署配置文件存储于所述客户端设备的存储器中免除写入过滤 器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器 有效的文件跨所述客户端设备的重启而持续; 对于所述至少一个部署配置文件中的每一个,便于进行: 检验所述至少一个部署配置文件的部署记录对应于更新所述客户端设备上安装的应 用或者驱动的文件包,以及所述部署记录标识具有的所述文件包的版本比所述客户端设备 上安装的应用或者驱动的版本更高;以及 使用所述文件包在所述客户端设备上更新所述至少一个部署配置文件的所述部署记 录对应的所述应用或者所述驱动,同时停用所述写入过滤器。
2. 根据权利要求1所述的方法,其中在所述客户端设备上更新所述应用或者所述驱动 之前,所述方法包括: 便于判断所述写入过滤器在所述客户端设备上有效; 便于在所述客户端设备上停用所述写入过滤器;以及 便于所述客户端设备的重启。
3. 根据权利要求2所述的方法,其中在所述客户端设备的所述重启之后,所述方法包 括: 判断至少一个部署配置文件是否存储在所述客户端设备的所述存储器中;以及 一旦确定至少一个部署配置文件存储在所述客户端设备的所述存储器中,提取存储在 所述客户端设备的所述存储器中的所述至少一个部署配置文件,并使用所述提取的至少一 个部署配置文件便于检验和更新操作。
4. 根据权利要求2所述的方法,其中在所述客户端设备上更新所述应用或者所述驱动 之后,所述方法包括: 便于在所述客户端设备上启用所述写入过滤器;以及 便于所述客户端设备的重启。
5. 根据权利要求1所述的方法,其中便于在所述客户端设备获得至少一个部署配置文 件包括: 便于定位所述配置储存库; 便于判断自动更新文件夹是否存在于所述配置储存库上;以及 便于在所述客户端设备从所述配置储存库的所述自动更新文件夹获得所述至少一个 部署配置文件。
6. 根据权利要求1所述的方法,进一步包括: 判断所述客户端设备上是否设置了自动更新标签,在便于获得所述至少一个部署配置 文件之前。
7. 根据权利要求1所述的方法,其中: 所述至少一个部署配置文件中的每一个存储在所述客户端设备的所述存储器中各自 子文件夹中;以及 在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应 用或者所述驱动之后,所述方法包括便于删除所述至少一个部署配置文件的所述各自子文 件夹。
8. 根据权利要求1所述的方法,其中在所述客户端设备上更新所述至少一个部署配置 文件的所述部署记录对应的所述应用或者所述驱动包括如下操作: 便于提取所述至少一个部署配置文件的所述部署记录中标识的用于更新所述应用或 者所述驱动所需存储空间量的指示符; 便于判断所述客户端设备的所述存储器中可用的存储空间量是否大于所述提取的用 于更新所述应用或者所述驱动所需存储空间量的指示符; 便于提取所述至少一个部署配置文件的所述部署记录中包括的参数值列表;以及 便于使用从所述至少一个部署配置文件的所述部署记录中提取的所述参数值列表更 新所述应用或者所述驱动。
9. 根据权利要求8所述的方法,所述方法进一步包括如下操作: 便于判断至少一个部署配置文件是否存在于所述配置储存库中; 从所述配置储存库中提取所述至少一个部署配置文件,一旦确定至少一个部署配置文 件存在于所述配置储存库中。
10. -种具有指令编码的机器可读存储介质,该指令可由一个或者多个处理器执行以 完成一个或者多个操作,用于在客户端设备上自动更新应用或者驱动,所述一个或者多个 操作包括: 便于在所述客户端设备从配置储存库获得至少一个部署配置文件, 其中所述至少一个部署配置文件包括对应于用于更新应用或者驱动的文件包的部署 记录,以及所述部署记录包括所述文件包的标识符和所述文件包的版本; 便于将所述至少一个部署配置文件存储于所述客户端设备的存储器中免除写入过滤 器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器 有效的文件跨所述客户端设备的重启而持续; 对于所述至少一个部署配置文件中的每一个,便于进行: 检验所述至少一个部署配置文件的部署记录对应于更新所述客户端设备上安装的应 用或者驱动的文件包,以及所述部署记录标识具有的所述文件包的版本比所述客户端设备 上安装的应用或者驱动的版本更高;以及 使用所述文件包在所述客户端设备上更新所述至少一个部署配置文件的所述部署记 录对应的所述应用或者所述驱动,同时停用所述写入过滤器。
11. 根据权利要求10所述的机器可读存储介质,其中在所述客户端设备上更新所述应 用或者所述驱动之前,所述一个或者多个操作包括: 便于判断所述写入过滤器在所述客户端设备上有效; 便于在所述客户端设备上停用所述写入过滤器;以及 便于所述客户端设备的重启。
12. 根据权利要求11所述的机器可读存储介质,其中在所述客户端设备的所述重启之 后,所述一个或者多个操作包括: 判断至少一个部署配置文件是否存储在所述客户端设备的所述存储器中;以及 一旦确定至少一个部署配置文件存储在所述客户端设备的所述存储器中,提取存储在 所述客户端设备的所述存储器中的所述至少一个部署配置文件,并使用所述提取的至少一 个部署配置文件便于检验和更新操作。
13. 根据权利要求11所述的机器可读存储介质,其中在所述客户端设备上更新所述应 用或者所述驱动之后,所述一个或者多个操作包括: 便于在所述客户端设备上启用所述写入过滤器;以及 便于所述客户端设备的重启。
14. 根据权利要求10所述的机器可读存储介质,其中便于在所述客户端设备获得至少 一个部署配置文件包括: 便于定位所述配置储存库; 便于判断自动更新文件夹是否存在于所述配置储存库上;以及 便于在所述客户端设备从所述配置储存库的所述自动更新文件夹获得所述至少一个 部署配置文件。
15. 根据权利要求10所述的机器可读存储介质,其中所述一个或者多个操作包括: 判断所述客户端设备上是否设置了自动更新标签,在便于获得所述至少一个部署配置 文件之前。
16. 根据权利要求10所述的机器可读存储介质,其中: 所述至少一个部署配置文件中的每一个存储在所述客户端设备的所述存储器中各自 子文件夹中;以及 在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应 用或者所述驱动之后,所述一个或者多个操作包括便于删除所述至少一个部署配置文件的 所述各自子文件夹。
17. 根据权利要求10所述的机器可读存储介质,其中在所述客户端设备上更新所述至 少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动包括如下操作: 便于提取所述至少一个部署配置文件的所述部署记录中标识的用于更新所述应用或 者所述驱动所需存储空间量的指示符; 便于判断所述客户端设备的所述存储器中可用的存储空间量是否大于所述提取的用 于更新所述应用或者所述驱动所需存储空间量的指示符; 便于提取所述至少一个部署配置文件的所述部署记录中包括的参数值列表;以及 便于使用从所述至少一个部署配置文件的所述部署记录中提取的所述参数值列表更 新所述应用或者所述驱动。
18. 根据权利要求17所述的机器可读存储介质,其中所述一个或者多个操作包括: 便于判断至少一个部署配置文件是否存在于所述配置储存库中; 从所述配置储存库中提取所述至少一个部署配置文件,一旦确定至少一个部署配置文 件存在于所述配置储存库中。
19. 一种硬件设备,用于在客户端设备上自动更新应用或者驱动,所述硬件设备包括: 一个或者多个模块,被配置用于执行一个或者多个操作,包括: 便于在所述客户端设备从配置储存库获得至少一个部署配置文件, 其中所述至少一个部署配置文件包括对应于用于更新应用或者驱动的文件包的部署 记录,以及所述部署记录包括所述文件包的标识符和所述文件包的版本; 便于将所述至少一个部署配置文件存储于所述客户端设备的存储器中免除写入过滤 器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器 有效的文件跨所述客户端设备的重启而持续; 对于所述至少一个部署配置文件中的每一个,便于进行: 检验所述至少一个部署配置文件的部署记录对应于更新所述客户端设备上安装的应 用或者驱动的文件包,以及所述部署记录标识具有的所述文件包的版本比所述客户端设备 上安装的应用或者驱动的版本更高;以及 使用所述文件包在所述客户端设备上更新所述至少一个部署配置文件的所述部署记 录对应的所述应用或者所述驱动,同时停用所述写入过滤器。
20. 根据权利要求19所述的硬件设备,其中在所述客户端设备上更新所述应用或者所 述驱动之前,所述一个或者多个操作包括: 便于判断所述写入过滤器在所述客户端设备上有效; 便于在所述客户端设备上停用所述写入过滤器;以及 便于所述客户端设备的重启。
21. 根据权利要求20所述的硬件设备,其中在所述客户端设备的所述重启之后,所述 一个或者多个操作进一步包括: 判断至少一个部署配置文件是否存储在所述客户端设备的所述存储器中;以及 一旦确定至少一个部署配置文件存储在所述客户端设备的所述存储器中,提取存储在 所述客户端设备的所述存储器中的所述至少一个部署配置文件,并使用所述提取的至少一 个部署配置文件便于检验和更新操作。
22. 根据权利要求20所述的硬件设备,其中在所述客户端设备上更新所述应用或者所 述驱动之后,所述一个或者多个操作进一步包括: 便于在所述客户端设备上启用所述写入过滤器;以及 便于所述客户端设备的重启。
23. 根据权利要求19所述的硬件设备,其中便于在所述客户端设备获得至少一个部署 配置文件包括: 便于定位所述配置储存库; 便于判断自动更新文件夹是否存在于所述配置储存库上;以及 便于在所述客户端设备从所述配置储存库的所述自动更新文件夹获得所述至少一个 部署配置文件。
24. 根据权利要求19所述的硬件设备,其中所述一个或者多个操作进一步包括: 判断所述客户端设备上是否设置了自动更新标签,在便于获得所述至少一个部署配置 文件之前。
25. 根据权利要求19所述的硬件设备,其中: 所述至少一个部署配置文件中的每一个存储在所述客户端设备的所述存储器中各自 子文件夹中;以及 在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应 用或者所述驱动之后,所述一个或者多个操作进一步包括便于删除所述至少一个部署配置 文件的所述各自子文件夹。
26. 根据权利要求19所述的硬件设备,其中在所述客户端设备上更新所述至少一个部 署配置文件的所述部署记录对应的所述应用或者所述驱动包括如下操作: 便于提取所述至少一个部署配置文件的所述部署记录中标识的用于更新所述应用或 者所述驱动所需存储空间量的指示符; 便于判断所述客户端设备的所述存储器中可用的存储空间量是否大于所述提取的用 于更新所述应用或者所述驱动所需存储空间量的指示符; 便于提取所述至少一个部署配置文件的所述部署记录中包括的参数值列表;以及 便于使用从所述至少一个部署配置文件的所述部署记录中提取的所述参数值列表更 新所述应用或者所述驱动。
27. 根据权利要求26所述的硬件设备,其中所述一个或者多个操作进一步包括: 便于判断至少一个部署配置文件是否存在于所述配置储存库中; 从所述配置储存库中提取所述至少一个部署配置文件,一旦确定至少一个部署配置文 件存在于所述配置储存库中。
28. -种设备,用于在客户端设备上自动更新应用或者驱动,所述设备包括: 装置用于便于在所述客户端设备从配置储存库获得至少一个部署配置文件, 其中所述至少一个部署配置文件包括对应于用于更新应用或者驱动的文件包的部署 记录,以及所述部署记录包括所述文件包的标识符和所述文件包的版本; 装置用于便于将所述至少一个部署配置文件存储于所述客户端设备的存储器中免除 写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写 入过滤器有效的文件跨所述客户端设备的重启而持续; 装置用于,对于所述至少一个部署配置文件中的每一个,便于进行: 检验所述至少一个部署配置文件的部署记录对应于更新所述客户端设备上安装的应 用或者驱动的文件包,以及所述部署记录标识具有的所述文件包的版本比所述客户端设备 上安装的应用或者驱动的版本更高;以及 使用所述文件包在所述客户端设备上更新所述至少一个部署配置文件的所述部署记 录对应的所述应用或者所述驱动,同时停用所述写入过滤器。
29. 根据权利要求28所述的设备,进一步包括: 装置用于,在所述客户端设备上更新所述应用或者所述驱动之前,便于判断所述写入 过滤器在所述客户端设备上有效; 装置用于便于在所述客户端设备上停用所述写入过滤器;以及 装置用于便于所述客户端设备的重启。
30. 根据权利要求29所述的设备,进一步包括: 装置用于,在所述客户端设备的所述重启之后,判断至少一个部署配置文件是否存储 在所述客户端设备的所述存储器中;以及 装置用于一旦确定至少一个部署配置文件存储在所述客户端设备的所述存储器中,提 取存储在所述客户端设备的所述存储器中的所述至少一个部署配置文件,并使用所述提取 的至少一个部署配置文件便于检验和更新操作。
31. 根据权利要求29所述的设备,进一步包括: 装置用于,在所述客户端设备上更新所述应用或者所述驱动之后,便于在所述客户端 设备上启用所述写入过滤器;以及 装置用于便于所述客户端设备的重启。
32. 根据权利要求28所述的设备,其中所述装置用于便于在所述客户端设备获得至少 一个部署配置文件进一步包括: 装置用于便于定位所述配置储存库; 装置用于便于判断自动更新文件夹是否存在于所述配置储存库上;以及 装置用于便于在所述客户端设备从所述配置储存库的所述自动更新文件夹获得所述 至少一个部署配置文件。
33. 根据权利要求28所述的设备,进一步包括: 装置用于判断所述客户端设备上是否设置了自动更新标签,在便于获得所述至少一个 部署配置文件之前。
34. 根据权利要求28所述的设备,其中: 所述至少一个部署配置文件中的每一个存储在所述客户端设备的所述存储器中各自 子文件夹中;以及 所述设备进一步包括装置用于,在所述客户端设备上更新所述至少一个部署配置文件 的所述部署记录对应的所述应用或者所述驱动之后,便于删除所述至少一个部署配置文件 的所述各自子文件夹。
35. 根据权利要求28所述的设备,其中所述装置用于在所述客户端设备上更新所述至 少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动包括: 装置用于便于提取所述至少一个部署配置文件的所述部署记录中标识的用于更新所 述应用或者所述驱动所需存储空间量的指示符; 装置用于便于判断所述客户端设备的所述存储器中可用的存储空间量是否大于所述 提取的用于更新所述应用或者所述驱动所需存储空间量的指示符; 装置用于便于提取所述至少一个部署配置文件的所述部署记录中包括的参数值列表; 以及 装置用于便于使用从所述至少一个部署配置文件的所述部署记录中提取的所述参数 值列表更新所述应用或者所述驱动。
36. 根据权利要求35所述的设备,进一步包括: 装置用于便于判断至少一个部署配置文件是否存在于所述配置储存库中;以及 装置用于从所述配置储存库中提取所述至少一个部署配置文件,一旦确定至少一个部 署配置文件存在于所述配置储存库中。
【文档编号】G06F9/445GK104094226SQ201280068315
【公开日】2014年10月8日 申请日期:2012年8月14日 优先权日:2011年11月28日
【发明者】M·马卢尔, J·班达卡, S·图科尔 申请人:韦斯技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1