CN104137065A - 在客户端设备上使用可扩展标记语言(xml)配置文件部署和更新应用和驱动 - Google Patents

在客户端设备上使用可扩展标记语言(xml)配置文件部署和更新应用和驱动 Download PDF

Info

Publication number
CN104137065A
CN104137065A CN201280068337.5A CN201280068337A CN104137065A CN 104137065 A CN104137065 A CN 104137065A CN 201280068337 A CN201280068337 A CN 201280068337A CN 104137065 A CN104137065 A CN 104137065A
Authority
CN
China
Prior art keywords
client device
configuration file
deployment
driving
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
CN201280068337.5A
Other languages
English (en)
Other versions
CN104137065B (zh
Inventor
M·马卢尔
J·班达卡
S·图科尔
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.)
Dell Marketing
Original Assignee
Wyse Technology LLC
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 Wyse Technology LLC filed Critical Wyse Technology LLC
Publication of CN104137065A publication Critical patent/CN104137065A/zh
Application granted granted Critical
Publication of CN104137065B publication Critical patent/CN104137065B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

说明了在具有写入过滤器的客户端设备上部署和更新应用和驱动。获得第一部署可扩展标记语言(XML)配置文件用于在客户端设备上部署第一个应用或者驱动。根据第一个部署XML配置文件在客户端设备上部署第一个应用或驱动,同时停用写入过滤器。启用写入过滤器以阻止存储于客户端设备上具有写入过滤器有效的文件跨客户端设备的重启而持续。在部署之后,通过判断自动更新是否有效、获取第二部署XML配置文件用于更新第一应用或驱动、以及根据第二部署XML配置文件更新第一应用或驱动,同时停用所述写入过滤器来执行自动更新。自动更新可以重复。

Description

在客户端设备上使用可扩展标记语言(XML)配置文件部署和更新应用和驱动
技术领域
本技术主题一般涉及配置管理,更具体地涉及在客户端设备上使用可扩展标记语言(XML)配置文件部署和更新应用和驱动。
背景技术
对于网络管理者或者系统集成者,为了安装、更新或者维护大量精简型客户端设备上的软件应用和/或驱动,管理者面临两种选择。管理者可以在一个设备上安装或者更新软件和/或驱动,创建设备镜像,并将镜像复制到所有类似设备上。然而在这种方法中,创建的镜像被配置为仅用于单个硬件平台上,如果安装在具有不同硬件平台的设备上将不能正确运行。作为结果,需要创建不同镜像用于管理者维护的每个不同的硬件平台,其可以导致需要创建大量的镜像。另外,磁盘镜像可以是非常大的文件,在多个客户端设备上安装磁盘镜像可以能导致潜在的非常大的镜像文件到所有设备的传输。为了不创建用于每个不同硬件平台的磁盘镜像,以及为了不向每个客户端设备传输大量磁盘镜像文件,管理者可以替换地单独安装或更新设备上的软件应用和/或驱动。然而单独安装方法消耗大量时间,尤其是考虑当大量设备或频繁更新/安装时。
发明内容
提供了用于配置管理的方法和装置示例。例如,提供了在客户端设备上使用可扩展标记语言(XML)配置文件部署和更新应用和驱动等等的方法和装置示例。
在一个方面,装置可以包括目标客户端设备的更新代理模块,配置用于获得用于在客户端设备上部署第一应用或驱动的第一部署可扩展标记语言(XML)配置文件,从具有用于在客户端设备上部署应用或驱动的部署XML配置文件的配置储存库,以及用于在客户端设备上更新应用或驱动的部署XML配置文件。更新代理模块可以根据第一部署XML配置文件在客户端设备上自动地部署第一应用或者驱动,同时停用写入过滤器。启用写入过滤器以阻止存储于客户端设备上具有写入过滤器有效的文件跨客户端设备的重启而持续。在自动部署之后,更新代理模块可以执行自动更新,通过判断自动更新是否有效、从配置储存库获取第二部署XML配置文件用于更新之前在客户端设备上部署的应用或驱动、以及根据第二部署XML配置文件在客户端设备上更新之前部署的应用或驱动,同时停用写入过滤器。更新代理模块可以重复自动更新。
附图说明
图1显示了将应用和/或驱动部署到运行于不同硬件平台的多个客户端设备上的系统示例。
图2是根据技术主题的不同方面显示系统示例的概念结构图。
图3A和3B显示了创建用于将磁盘镜像安装到具有多种客户端平台中任一种的客户端设备上,以及将磁盘镜像安装到具有一种客户端平台的客户端设备上的过程示例。
图4A和4B显示了创建用于将磁盘镜像安装到运行于多种客户端平台中任一种的客户端设备上的过程示例。
图5A和5B显示了将磁盘镜像安装到具有多种客户端平台中的一种的客户端设备上的过程示例。
图6A和6B显示了安装和验证客户端上驱动的安装的过程示例。
图7A和7B显示了分别用于存储设备驱动配置文件和相关数据,和用于存储磁盘镜像和相关数据的数据结构示例。
图8A根据技术主题的不同方面显示了操作系统和用于执行操作的相关组件的示例。
图8B根据技术主题的不同方面显示了客户端设备的简化结构图。
图9A根据技术主题的不同方面显示了驱动管理应用的功能结构图示例。
图9B-9J显示了用于执行与技术主题相关的不同功能的过程示例。
图10显示了使用部署配置文件在客户端设备上自动部署一个或者多个驱动的过程示例。
图11显示了使用部署配置文件在客户端设备上自动部署一个或者多个应用的过程示例。
图12A、12B和12C显示了使用部署配置文件在客户端设备上自动部署驱动和/或应用的过程示例。
图13A和13B显示了用于存储部署配置文件和相关数据的数据结构示例。
图14A、14B和14C显示了使用自动更新文件夹在客户端设备上自动更新一个或者多个驱动和/或应用的过程示例。
图15显示了用于存储自动更新文件夹和相关数据的数据结构示例。
图16A和16B显示了在客户端设备上自动更新和部署驱动和应用的过程示例。
图17A、17B和17C是根据本公开的一个方面表示用于将磁盘镜像安装到具有特殊类型硬件平台的客户端设备上的方法、具有编码指令的计算机可读存储介质、和装置示例的结构图。
图18A、18B和18C是根据本公开的一个方面表示用于将驱动或应用部署到具有写入过滤器的客户端设备上的方法、具有编码指令的计算机可读存储介质、和装置示例的结构图。
图19A、19B和19C是根据本公开的一个方面表示用于在具有写入过滤器的客户端设备上部署和更新应用和驱动的方法、具有编码指令的计算机可读存储介质、和装置示例的结构图。
图20A、20B和20C是根据本公开的一个方面表示用于在客户端设备上自动更新应用或驱动的方法、具有编码指令的计算机可读存储介质、和装置示例的结构图。
具体实施方式
下面提出的详细说明意图为技术主题的不同配置的描述,并不表示技术主题可以实现的唯一配置。附图在此合并并作为详细说明的一部分。为了提供对本技术主题的透彻理解详细说明包括特定细节。然而,本领域技术人员容易理解本技术主题可以无需这些特定细节而实现。在一些实例中,公知的结构和组件以结构图的形式显示,以避免混淆本技术主题的概念。为了便于理解类似组件标记为相同组件编号。
一般结构
一般来讲,本公开描述了用于创建在多个硬件平台上配置部署的主磁盘镜像,和用于在多个硬件平台中任一个上智能地部署和安装主磁盘镜像的方法和系统的不同实例。主磁盘镜像包括用于多个硬件平台的每一个的设备驱动和应用,并且能够自动地配置为在多个硬件平台中的任一个上使用。本公开还描述了用于有效地向,例如,运行于企业网络环境的嵌入客户端中的客户端设备部署软件应用、驱动、更新(例如,QFE)、和特征组件(例如,微软特征组件)的不同实例。本公开一般围绕用于执行部署的方法(和相关系统)的四个实例来组织。
第一实例:根据主要关于流程图3A和3B显示和说明的第一实例,说明了磁盘镜像的创建和安装,包括多个硬件平台的应用和/或驱动。
第二实例:根据用于在具有多种硬件平台中任一种的客户端设备上安装一个或者多个应用和/或驱动的第二实例,镜像建立设备被配置用于创建包括多种硬件平台中的每一个的应用和/或驱动的磁盘镜像。在第二实例中,磁盘镜像包括设备驱动配置文件。当将磁盘镜像复制到目标客户端设备上和确定目标设备的特定硬件平台之后,包括在镜像中用于特定硬件平台的那些驱动被安装在设备上。根据第二实例,主要关于图4A和4B显示和说明磁盘镜像的创建,而创建的磁盘镜像在客户端设备上的安装和配置主要关于流程图5A、5B和5C来说明。图6A和6B显示了第二实例的其他方面。图7A和7B显示了用于第一和第二实例的示意性数据结构。
第三实例:根据第三实例,一个或者多个应用和/或驱动被直接安装在具有多种硬件平台中任一种的客户端设备上。主要关于流程图10、11和12A-12C显示和说明第三实例。图12A提供了发起应用和/或驱动的部署过程的一般流程图,而图10和12B更具体地涉及驱动的部署,图11和12C更具体地涉及应用的部署。每个设备提取包括用于在设备上部署新的或者更新的驱动或应用的信息的部署配置文件。设备确定设备上是否有足够的存储空间可用。然后设备从部署配置文件中提取安装变量,并处理应用和/或驱动的安装或者升级。
第四实例:最后,根据第四实例,可以在具有多种硬件平台中任一种的客户端设备上更新一个或者多个应用和/或驱动。主要关于流程图14A和14B显示和说明第四实例。每个设备可以定位设备上或者储存库服务器上的自动更新文件夹,从文件夹提取部署配置文件,并根据部署配置文件自动地更新或者安装驱动或者应用。
虽然第一、第二、第三和第四实例如上所示通常是关于各自的流程图来说明的,但是实例不排除关于那些流程来说明。每个实例的不同步骤、操作、组件或者特征可以在如上所示之外的流程图中说明,一个实例的不同步骤、操作、组件或者特征可以有利地用于不同实例的上下文中。通过实例,图16A和16B显示了结合第三和/或第四实例的教导的示意性过程。
本公开还包括显示实现方法的常用系统单元(参见图1和2)、用于不同实例的数据结构(参见图7A、7B、13A、13B和15)、和用于不同实例的实现的组件(参见8A、8B和9A-9I)的附图。
附录:除了附图和伴随的详细说明,本公开还包括五个附录,其进一步详细列出了本发明的不同方面。附录A包括设备驱动配置文件和部署配置文件的示意性模式;附录B包括示意性设备驱动配置文件和部署配置文件;附录C包括示意性产品需求规范;附录D包括视窗嵌入标准7版本2的示意性需求规范;以及附录E包括用于根据硬件平台处理驱动存储和智能第三方驱动安装的驱动管理应用(例如,命名为“Drvmgmt.exe”的应用)的示意性详细设计规范。
整体系统
在一个方面,磁盘镜像的创建包括驱动和应用和配置用于在多个硬件平台中任一个上部署,在特定目标硬件平台上部署磁盘镜像,使用设备驱动配置文件和部署配置文件部署应用或者驱动,通常都可以通过如图1所示的企业系统来实现。
图1根据本技术主题的不同方面显示了将应用、驱动和/或磁盘镜像(例如,包括应用和/或驱动的磁盘镜像)部署到运行于不同硬件平台的多个客户端设备上的系统100的示例。系统100可以包括通过公用网118或者公司网络114与服务器计算设备112(服务器)通信的一个或者多个客户端设备102(例如,102a、102b、102c、102d、102e)。在一些方面,服务器112被配置为允许远程会话(例如,远程桌面会话),其中用户可以通过从客户端设备102登录到服务器112访问服务器112上的应用和文件。这个连接可以使用一些已知的技术中的任一种来建立,例如基于视窗的服务器上的远程桌面协议(RDP)。在一些方面,客户端设备102可以使用文件传输协议(FTP)、超文本传输协议(HTTP)、超文本传输协议安全(HTTPS)、或者其它合适的协议与服务器112通信。
通过实例而非限制,客户端设备102可以表示计算机、移动电话、膝上型电脑、精简型客户端设备、个人数字助理(PDA)、便携计算设备、或者具有处理器的合适设备。在一个示例中,客户端设备102是智能电话(例如,苹果电话、安卓电话、黑莓等等)。在某些配置中,客户端设备102可以表示收银设备、音频播放器、游戏控制台、照像机、可携式摄像机、音频设备、视频设备、多媒体设备、或者能够支持到远程服务器的连接的设备。在一个示例中,客户端设备102可以是移动电话。在另一个示例中,客户端设备102可以是固定的。根据本公开的一个方面,客户端设备102可以是具有至少一个处理器和存储器的设备,其中客户端102的总体存储容量应当小于服务器112的总体存储容量。在一个示例中,客户端设备102没有硬盘。在一个方面,客户端设备102可以包括闪存来替代硬盘。在一个方面,客户端设备可以是一个或者多个服务器。在一个方面,客户端设备可以包括一个或者多个客户端设备。
在一个方面,客户端设备具有由硬件和构成为客户端设备的一部分的其它组件确定的相关硬件平台。客户端设备的硬件平台可以根据形成为客户端设备的一部分或者安装于其上的处理器、存储器、和/或接口设备(例如,显示器设备、图形或音频卡、键盘或其它输入设备、有线或无线网络接口和卡、读卡器、USB端口、条形码扫描器等等)的特定模式来确定。硬件平台通常被命名(例如,命名为“SATURN”的平台),并与一个或者多个与该平台相关的所有客户端设备都具有的硬件组件相关。在一个示例中,具有命名为“SATURN”的硬件平台的所有客户端设备可以具有Realtek高清音频卡和AM Radeon HD6310图形接口卡,例如。硬件平台可以组织为类,以使得共同具有一个或者多个组件的多个硬件平台可以划分为一个类。例如,命名为“R”的硬件平台类可以包括命名为“MERCURY”和“PLUTO”的平台,以使得具有命名为“MERCURY”或“PLUTO”的硬件平台的所有客户端设备形成为类“R”的一部分。在一些实例中,每个客户端设备存储客户端设备硬件平台和/或硬件平台类的标识符。然而在其它实例中,客户端设备硬件平台和/或类是通过执行清点安装于客户端上的硬件组件来确定的,并根据清点结果确定客户端设备的硬件平台和类。
在优选方面,客户端设备102是设计用于特定目的(而非通用目的)的特定目的客户端设备。在优选方面,客户端设备102不是传统个人计算机(PC)。在一个方面,特定目的客户端设备可以设计为执行一个或者较少预定义的、专用功能。例如,特定目的客户端设备可以被设计用于执行少于10个专门功能、少于5个专门功能、少于3个专门功能、或者1个专门功能。例如特定目的客户端设备可以是设计为位于商场的收银机的客户端设备、设计为执行特定测试或测量的客户端设备、设计为执行用于诊断和/或病人治疗的特定医疗应用的客户端设备等等。特定目的客户端设备优选地包括写入过滤器,其在正常运行期间启用以使得如果用户(例如,收音员,非管理者)改变客户端设备的嵌入式镜像的任何配置,这个改变不会跨重启持续。
在一个方面,服务器112可以表示计算机、膝上型电脑、计算设备、数据库、室内服务器、储存库服务器、配置应用服务器、域名系统(DNS)服务器、动态主机配置协议(HDCP)服务器、虚拟机(例如,虚拟机)、桌面会话(例如,微软终端服务器)、出版的应用(例如,微软终端服务器)或者具有处理器的适当的设备。在优选方面,服务器112是固定的。在另一个方面,服务器112可以是移动的。仍然在另一个方面,服务器112可以是嵌入式的。在某些配置中,服务器112可以是可以表示客户端设备的任何设备。在优选方面,服务器112不是客户端。在一个方面,服务器112可以包括一个或者多个服务器、或者一个或者多个服务器的功能。
在一个示例中,当第一设备没有直接连接到第二设备时,第一设备是第二设备的远程。在一个示例中,第一远程设备可以通过通信网络,例如本地局域网(LAN)、广域网(WAN)、和/或用于远程操作的其它网络连接到第二设备。
当客户端设备102和服务器112相互之间是远程时,客户端设备102可以通过公用网118和/或公司网络114连接到服务器112,例如通过调制解调器连接、包括以太网的LAN连接、或者包括DSL、电缆、T1、T3、光纤、Wi-Fi的宽带WAN连接、或者包括GSM、GPRS、3G、WiMax的移动网连接或其它远程网络连接。公用网118或联合网114可以是LAN网络、WAN网络、无线网、互联网、内联网或者其它远程网络。网络上的远程设备(例如,客户端设备、服务器)可以通过对应的网络地址,例如但不局限于互联网协议(IP)地址、互联网名、视窗互联网名业务(WINS)名、域名或者其它系统名来寻址。这些说明作为一个设备如何与另一个设备远程的一些示例。但是技术主题不局限于这些示例。
在本公开的一个方面,“客户端设备”可以有时指客户端、目标客户端设备、目标设备、或者反之亦然。类似的,“服务器”可以有时指服务器设备或反之亦然。
在一个方面,术语“本地”和“远程”是相对术语,客户端设备可以被称为本地客户端设备或者远程客户端设备,根据客户端设备分必是从客户端侧说明的还是从服务器侧说明的。在一个方面,位于客户端侧的设备(例如,直接连接到客户端设备或者使用有线或无线连接到另一个(例如,使用具有短距离例如35英尺的蓝牙或者红外)的设备)可以相对于客户端设备被称为本地设备,以及相对于服务器被称为远程设备。类似的,位于服务器侧的设备(例如,直接连接到服务器或者使用有线或无线连接到另一个(例如,使用具有短距离例如35英尺的蓝牙或者红外)的设备)可以相对于服务器被称为本地设备,以及相对于客户端设备被称为远程设备。
在一些方面,服务器112可以包括配置储存库服务器104。虽然服务器112显示为只包括一个服务器104,但是一个或者多个其他服务器,例如DHCP服务器、DNS服务器、应用服务器等等可以位于服务器112内部或外部。在一些方面,这些服务器中的一个或多个可以合并起来作为单个服务器。在一些方面,服务器112还可以被称为室内服务器,因为服务器112可以主要通过私有网络例如公司网络114与客户端102a、102b、102c和102d通信。
在一些方面,服务器112的至少一部分可以从公共网118访问。例如,如图1所示,配置储存库服务器104可从公共网118访问。因此,客户端设备102e可以通过公共网118与服务器112(例如,配置储存库服务器104)通信。
在其它方面,连接到公共网118的一个或者多个公共服务器(未显示)可以通过公共网118使客户端设备102e,和/或通过公共网118、服务器112、和公司网络114使客户端设备102a、102b、102c和102d可访问。一个或者多个公共服务器可以执行基本上类似于在此所述的由服务器112和/或配置储存器服务器104执行的任意功能的功能。
根据本技术主题的不同方面,客户端102可以每个运行于基于视窗的嵌入式镜像,例如视窗嵌入式操作系统家族(例如,Windows EmbeddedCompact、Windows Embedded Standard(WES)、Windows Embedded Enterprise、Windows Embedded POSReady、Windows Embedded NAVReady、WindowsEmbedded Server等等)或者其它合适的嵌入式镜像中任意一种。
通常,嵌入式镜像可以包括写入过滤器,其阻止一个或者多个改变跨运行嵌入式镜像的客户端设备的重启持续应用到嵌入式镜像。例如,嵌入式镜像可以包括写入过滤器以允许应用于启用写入过滤器的嵌入式镜像的一个或者多个改变,当客户端设备关机时丢弃。在一些实施方式中,术语“关机”可以指关闭机器。在另一个方面,可以包括从机器退出。在一些实施方式中,如在此所使用的,术语“重启”或者“重新启动”可以包括用户退出并重新登录进客户端设备的情况,或者客户端设备关机然后开机的情况。在一个示例中,如果用户将新的墙纸应用于运行于特定客户端设备的嵌入式镜像,在特定客户端设备重启之后新的墙纸不会保留在嵌入式镜像上。
可以启用写入过滤器以保证用户不会对客户端设备的嵌入式镜像作出任何永久改变(例如,跨重启持续的改变)。启用写入过滤器是有利的,因为其允许管理者保持特定系统中客户端设备的所有嵌入式镜像的统一配置。如果用户对客户端设备中的一个的嵌入式镜像做出改变,那么只有那个特定客户端设备需要重启以将那个嵌入式镜像重置回与其它客户端设备的其它嵌入式镜像一致的初始配置。启用写入过滤器的另一个好处是可以阻止有害改变永久地(例如,跨重启应用)应用于客户端设备的嵌入式镜像。例如,如果客户端设备的用户偶然地下载了病毒导致了对客户端设备的嵌入式镜像的有害改变,那么只有那个客户端设备需要重启,以将嵌入式镜像重置回未被病毒损害的初始配置。
对客户端设备做出期望的改变,例如安装或更新应用或驱动,通常要求停用写入过滤器并跟随客户端设备的重启。重启之后,停用(或者不启用)写入过滤器,可以对客户端设备的配置进行改变。为了恢复写入过滤器保护,启用写入过滤器然后重启客户端设备。
一个或者多个文件、文件夹、或者客户端设备上的其它存储位置可以免除写入过滤器限制或者写入过滤器功能(即,可以通过写入过滤器),以使得存储于这些位置的数据跨客户端设备的重启而保持,即使在客户端设备上启用了写入过滤器。这个文件夹或者文件在此可以作为可以通过写入过滤器的位置。可以使用免除写入过滤器限制或功能的文件和文件夹,例如,以存储应当在设备的下一次重启时在客户端设备上安装的安装文件或文件包。在一个示例中,安装文件或文件包存储于免除存储位置,停用写入过滤器,客户端设备重启,以使得一旦客户端设备启动了,客户端设备可以在停用写入过滤器时安装文件或者文件包。
根据一些方法,为了应用于嵌入式镜像,执行跨重启持续的改变、人工安装软件驱动、应用、和/或嵌入式镜像的固件更新以创建具有期望的改变的客户化嵌入式镜像。客户化可以在单个客户端设备上执行,客户化客户端设备可以用于创建磁盘镜像。磁盘镜像然后被提取到服务器(例如,服务器112)上,然后将完整客户化嵌入式镜像部署到所有要求的客户端设备(例如,客户端设备102)。因此,嵌入式镜像的客户化可以包括创建客户化嵌入式镜像、从源客户端设备提取客户化嵌入式镜像到服务器112、将完整客户化嵌入式镜像从服务器112传输到客户端设备102和/或在客户端设备102上安装完整客户化嵌入式镜像。然而,嵌入式镜像可能很大。另外,嵌入式镜像可能配置为不可用于特定客户端设备的硬件平台或者硬件配置。因此,传输和安装镜像可能是不实际的,尤其是客户端设备具有不同的硬件平台或配置时。
例如,在包括超过100个收银机作为客户端设备的大收银系统中,如果管理者希望在每个收银机的每个嵌入式镜像上安装新的收银程序,那么管理者需要在一个源客户端设备上创建具有新的收银程序的客户化嵌入式镜像,将客户化嵌入式镜像提取到服务器,然后将客户化嵌入式镜像从服务器传输到每个收银机用于安装。然而,如果一些收银机包括不同于源客户端设备和其嵌入式镜像的硬件平台或者组件(例如,具有不同芯片组、不同LAN接口卡、不同显示器或图形卡的设备),需要创建不同的嵌入式镜像并将其传输至具有不同硬件的客户端设备。如果管理者期望频繁作出改变,那么每次作出改变,每个硬件平台或配置的新的客户化嵌入式镜像就需要传输至每个收银机。
根据本技术主题的不同方面,创建配置用于在运行于不同硬件平台中任一种的客户端设备上安装的嵌入式镜像。嵌入式镜像包括每个硬件平台所需要的驱动,被配置为在目标客户端设备上自动安装目标设备的应急那平台所需要的那些驱动,并删除目标设备的硬件不需要的驱动。
根据本技术主题的其它方面,在客户端设备102的启动开始后,改变将自动应用于客户端设备102的嵌入式镜像,而无需客户端设备102的用户的干预,由此作出对用户看来跨客户端设备102重启永久持续的改变。因此,本技术主题的方面用对客户端设备102的改变排除了整个嵌入式镜像的重新安装,下载和/或安装大的镜像到客户端设备102的问题可以避免。根据某些方面,配置文件(例如,设备驱动配置文件或者部署配置文件)可以用于将这个改变应用于嵌入式镜像。
系统结构图
图2是根据本技术主题的不同方面显示系统示例的概念结构图。系统201可以是,例如客户端设备(例如,客户端设备102)或者服务器(例如,服务器112、104、106、108、110)。系统201可以包括处理系统202。处理系统202能够通过总线204或者其它结构或设备与接收器206和发送器209通信。应当理解除了总线之外的通信装置可以用于公开的配置。处理系统202能够产生将要提供给发送器209用于通信的音频、视频、多媒体、和/或其它类型的数据。另外,音频、视频、多媒体、和/或其它类型的数据可以在接收器206接收,并由处理系统202处理。
处理系统202可以包括执行指令的处理器,可以进一步包括存储器或者机器可读介质219,例如非永久性或者永久性存储器,用于存储软件程序的数据和/或指令。指令可以存储在机器可读介质210和/或219中,可以由处理系统202执行来控制和管理到不同网络的接入,以及提供其它通信和处理功能。指令还可以包括由处理系统202为不同用户接口设备执行的指令,例如显示器212和键盘214。处理系统202可以包括输入端口222和输出端口224。输入端口222和输出端口224中的每一个可以包括一个或者多个端口。输入端口222和输出端口224可以是相同端口(例如,双向端口)或者是不同端口。
处理系统202可以使用软件、硬件或者其结合来实现。作为示例,处理系统202可以是用一个或者多个处理器实现的。处理器可以是通用目的微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、状态机、门控逻辑、分离的硬件组件、或者可以执行计算或者其它信息操作的任意其它合适的设备。
存储器或者机器可读介质可以是一个或者多个机器可读介质。软件应当被宽泛地解释为指令、数据、或者其任意组合,无论是否被称为软件、固件、中间件、微代码、硬件描述语言等等。指令可以包括代码(例如,以源代码形式、二进制代码形式、可执行代码形式、或者任意其它合适的代码形式)。
机器可读介质(例如,219)可以包括集成到处理系统中的存储器,例如可以是ASIC中。机器可读介质(例如,210)还可以包括处理系统外部的存储器,例如随机访问存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PROM)、可擦写PROM(EPROM)、寄存器、硬盘、可插入盘、CD-ROM、DVD、或者任意其它合适的存储设备。本领域技术人员将理解如何最好地实现处理系统202的所述功能。根据本公开的一个方面,机器可读介质是编码或者存储有指令的计算机可读介质,并且是计算组件,其限定了指令和允许实现指令功能的系统其余部分之间的结构和功能的相互关系。在一个方面,机器可读介质是永久机器可读介质、机器可读存储介质、或者永久机器可读存储介质。在一个方面,计算机可读介质是永久计算机可读介质、计算机可读存储介质、或者永久计算机可读存储介质。指令可以是可执行的,例如由客户端设备或者服务器或者由客户端设备或者服务器的处理系统。指令可以是,例如包括代码的计算机程序。
接口216可以是任意类型的接口,可以位于图2所示的任意组件之间。接口216还可以是例如到外部世界(例如,互联网接口)的接口。收发器块207可以表示一个或者多个收发器,每个收发器可以包括接收器206和发送器209。处理系统202中实现的功能可以在接收器206的一部分、发送器209的一部分、机器可读介质210的一部分、显示器212的一部分、键盘214的一部分、或者接口216的一部分中实现,反之亦然。在一个方面,系统201可以只包括图2所示组件中的一些或者多个图2所示的一个或者多个组件。
为多个硬件平台创建和部署镜像的方法
用于将应用和/或驱动部署到大量目标客户端设备上的一种方法包括创建磁盘镜像,其包括镜像建立的客户端设备上的所有应用和驱动,并将磁盘镜像复制到所有其它目标客户端设备上,以在目标客户端设备上部署应用和/或驱动。然而这个方法被证实在目标客户端设备具有不同硬件平台,因此要求不同的磁盘镜像驱动组来正确地安装到每个客户端设备各自的硬件平台上,的情况下是有局限性的。
为了解决这些局限,开发了一种方法来创建用于将应用和/或驱动部署到多个具有不同硬件平台的目标客户端设备上的磁盘镜像。图3A是示意性地显示创建用于将磁盘镜像部署到具有不同硬件平台的目标客户端设备上的操作流程图。图3A的示例是关于支持具有Windows Embedded Standard(WES)7精简型客户端镜像的多个硬件平台。然而,图3A的交到可以更普遍地应用于运行其它操作系统的客户端设备。支持具有WES 7精简型客户端镜像的多个硬件平台的方法是通过安装客户端设备的不同硬件平台所需要的所有第三方驱动来创建通用主镜像,如下面标准镜像创建过程中所述的。
根据图3A的流程图,过程开始于操作301,创建通用配置响应文件(也被称之为通用配置文件或者“common.xml”)。通用配置响应文件是可扩展标记语言(XML)配置文件。通用配置响应文件是使用镜像配置编辑器(ICE)来创建的。通用配置响应文件包括磁盘镜像中应当包括的所有组件(例如,微软组件)上的信息,并且可以特别地包括磁盘镜像的视窗嵌入式特征组。通常,通用配置响应文件标识磁盘镜像的创建中应当包括的大部分或者所有组件(例如微软组件,在基于视窗的嵌入式操作系统的情况下),作为磁盘镜像的视窗嵌入式特征组的一部分。
在操作303,将通用配置响应文件部署到目标硬件上,例如通过使用镜像建立向导。通常,将通用配置响应文件发送给被选择用于创建磁盘镜像的客户端设备,在此将其称之为镜像建立设备。然而在一些示例中,通用配置响应文件可以配置到其它目标设备或硬件上。
在操作305,对于磁盘镜像所支持的多个硬件平台(例如,从1到n的硬件平台)中的每一个,磁盘镜像创建过程通过识别与每个平台相关的驱动和驱动应用来开始。一旦识别了驱动和驱动应用,它们可以被复制到和/或安装到镜像建立设备上,以包括创建的磁盘镜像上的每个硬件平台的所有驱动和驱动应用。驱动和驱动应用可以是由第三方实体创建的驱动和应用,例如设备和每个硬件平台的其它硬件组件的制造商,通过硬件组件的驱动和应用的开发者、或者其它实体。对于磁盘镜像将支持的每个硬件平台,操作305还包括从镜像建立设备提取磁盘镜像并将磁盘镜像推送到下一个支持的硬件平台。
磁盘镜像的创建继续到操作307,将应用安装到镜像建立设备,例如第三方实体应用(例如,citrix“ICA”应用、桌面虚拟化应用例如“VMView”、远程支持软件或虚拟网络计算“VNC”软件)。在操作309,将其它私有应用安装到镜像建立设备上,例如初始设备制造商(OEM)应用(例如,HAgent、Client Information、Winlog、Ramdisk)。OEM应用可以是由目标客户端设备制造商、目标客户端设备零售商、加载驱动计费的实体、应用、和客户端设备上的软件、或者提高和支持目标客户端设备中包括的任意其它实体提供的应用。应用可以另外地或者可选地包括一个或者多个脚本,例如用于在磁盘镜像部署于其上的每个目标客户端设备上实现或者应用客户化的脚本。
一旦磁盘镜像支持的每个硬件平台的驱动和磁盘镜像中包括的应用已经安装或者复制到镜像建立设备上,磁盘镜像创建过程完成。因此在操作311磁盘镜像准备部署和从镜像建立设备提取。磁盘镜像的准备可以由应用或者工具,在此可以称之为“Sysprep”来完成。准备可以包括识别存储在镜像建立设备上的应当包括在磁盘镜像中的文件和文件夹,以及用识别的文件和文件夹创建磁盘镜像。磁盘镜像可以使用任意远程管理软件机制部署到目标客户端设备上。准备还可以包括存档磁盘镜像。
在准备和提取镜像(操作311)之后,镜像可以部署到每个目标客户端设备上。一旦将镜像部署到或者可以从目标客户端设备访问,客户化可以应用到目标客户端设备(操作315),例如用户特定策略、磁盘重整、飞行主题等的私有客户化。客户化可以根据磁盘镜像中包括的信息(例如,根据作为磁盘镜像的一部分加载的一个或者多个脚本),或者根据来自其它源的信息来执行。客户化之后,在操作317镜像准备好了使用。
图3B显示了创建用于将磁盘镜像部署到具有不同硬件平台的目标客户端设备上的第二示意性过程。图3B的流程图包括基本上类似于图3A中相同标号操作的操作。
然而在图3B的示意图中,图3A的操作305替换为新操作306。在操作306,对于磁盘镜像所支持的多个硬件平台(例如,从1到n的硬件平台)中的每一个,磁盘镜像创建过程通过识别与每个平台相关的驱动和驱动应用来开始。一旦识别了驱动和驱动应用,它们可以被复制到和/或输入到镜像建立设备上,以包括创建的磁盘镜像上的每个硬件平台的所有驱动和驱动应用。驱动和驱动应用可以被复制到或输入到专用文件夹、存储位置、或者镜像建立设备的存储设备,其可以被称为驱动存储器。驱动和驱动应用可以是由第三方实体创建的驱动和应用,例如设备和每个硬件平台的其它硬件组件的制造商,通过硬件组件的驱动和应用的开发者、或者其它实体。一旦输入第三方驱动和驱动应用到每个硬件平台的镜像建立设备,过程继续到操作307。
图3B的流程图进一步包括在图3A的操作311和315之间的附加操作313。在操作313,镜像被推送到或者提取到具有相关的硬件平台的每个目标客户端设备上(从1到m的目标设备)。可以在每个目标客户端设备从镜像建立设备(其可以是服务器)接收镜像,例如一旦确定镜像存储在镜像建立设备中。镜像可以可选地复制到每个目标客户端设备上,或者否则传输到目标客户端设备上(例如,通过到服务器112的网络连接,通过连接到客户端设备的USB闪存驱动等等)。一旦将镜像复制到或者可以从目标客户端设备访问,磁盘镜像可以配置为用于目标客户端设备的特定硬件平台,例如,通过安装客户端设备的硬件组件的驱动。客户化可以应用到目标客户端设备(操作315),例如用户特定策略、磁盘重整、飞行主题等的私有客户化。客户化之后,在操作317镜像准备好了使用。
关于图3A和3B所述的安装所有支持的平台的所有第三方设备驱动可以导致,在一个示例中,创建嵌入式标准7精简型客户端主通用镜像。然而通过包括所有支持的平台的驱动,图3A所述的方法可能对固态驱动(SSD)闪存或者目标客户端设备上的其他存储驱动的存储空间产生负面影响,还可能产生与驱动重叠和驱动冲突相关的问题,因此负面影响目标客户端设备的镜像性能和负面影响镜像建立处理时间。为了克服这些问题中的一些,下面关于图4-6说明创建用于在多个硬件平台上部署的磁盘镜像的改进方法。改进方法根据使用驱动存储的硬件平台提供智能第三方设备驱动安装。
图3A和3B所示的方法通过开发客户化镜像支持第三方驱动和/或应用,其中在标准建立之上所有驱动和应用都被安装在精简型客户端上,从设备提取精简型客户端镜像,并将镜像推送到所有其它目标精简型客户端设备。然而,该方法具有它们不能有效地用于维护,例如为了更新精简型客户端设备上的应用或者驱动的缺点。另外,该方法不能够用于客户化客户端设备或者在已经处于使用中的精简型客户端上安装设备驱动。当在客户的场所部署精简型客户端时,如果客户需要增加客户应用或者设备驱动,客户化是一个冗长的过程。
客户化可以以三种示例方式来完成。在第一种方法中,个人可以在每个精简型客户端上手工安装应用或者设备驱动。如果客户具有好几百个精简型客户端,这第一个方法表示非常冗长的过程。在第二种方法中,客户化可以安装在一个精简型客户端上,从那个设备取下固件并部署剩余的其它设备。然而,这第二种方法非常消耗时间,因为固件部署可能随着镜像增长得越来越大(通常镜像大小可以从2GB到4GB甚至更多)而占用大量时间。另外,在更新应用或者驱动的情况下,第二种方法要求重复具有最新的应用或驱动版本的完整镜像创建和安装过程。第三种方法提供由现场工程师准备的客户固件,其中客户化固件包括预安装的客户应用和驱动。将客户固件发布给客户,和工厂,其中精简型客户端编程具有在制造精简型客户端时特定客户装载量的客户固件。这第三种方法要求额外努力,因为不同的人象现场工程师和质量工程师必须包括在准备和验证固件的过程中。另外,如果应用或者驱动的任意新版本在以后需要部署,就需要重复完整过程。三种方法的每一种中,如果有任意更新的组件版本可用,例如固件的标准组件或者私有特定组件,都需要私有化管理软件或者更新设备上组件的人工处理。
为了克服上述方法的这些问题和限制,引入了三种新的方法。根据新方法中的两种,客户创建一个具有关于客户希望在该精简型客户端上部署的不同应用和设备驱动的适当信息的配置文件(例如,“DeviceDeploymentConfig.xml”文件(其可以被称为部署配置文件或者设备部署配置文件)等等),配置文件标识安装应用和设备的适当的文件包,其保留在配置储存库例如储存库服务器(例如,服务器112,或者配置储存库服务器104)中。当精简型客户端设备启动时,设备自动地提取设备部署配置文件,并在精简型客户端设备上执行部署。
根据新方法中的第三种,客户可以简单地将存储在配置存储库中的组件或者应用文件包更新至私有提供商发布的组件或者应用最新的版本。精简型客户端设备从配置储存库自动地提取或者获取更新的组件或者应用文件包,并在设备启动过程期间处理更新的组件或应用。
三种新方法克服了其它方法带来的各种限制。在一个方面,新方法可以克服以下限制。第一,在其它方法中,如果对驱动或者应用的任意更新可用,那么驱动、应用或者其它组件的升级在一个客户端设备上执行,提取客户端设备的镜像,以及再次将镜像部署到所有其它客户端设备上。提取镜像或者镜像设备占用大量时间,时间依赖于闪存或者镜像的大小。在客户端设备或者位于客户环境中的单元上部署镜像将依赖于(或者由其执行)私有设备管理者或者简单的USB镜像工具。私有设备管理者是管理软件,其可以用于远程部署大量镜像工作。精简型客户端上的组件更新高度依赖于设备管理软件来调度增加到设备上的更新。如果客户不使用设备管理软件,那么客户可能需要更新完整镜像,其使用一些其它镜像工具象USB镜像工具包括最新的组件。简单USB镜像工具可以直接使用,但是它的使用将是耗时的,如果需要更新镜像的客户端设备的数量很大。新方法是有帮助的,因为在基于精简型客户端的WES 7中并没有一直支持自动更新组件。作为结果,有时仅使用远程管理软件来更新基于精简型客户端的WES 7上的组件。
在一个方面,新方法中的一种通过将设备驱动预加载到镜像的驱动存储储存库,例如WES 7精简型客户端主镜像的驱动存储储存库中使得主镜像,例如视窗精简型客户端主镜像既便携又智能。当主镜像被部署到目标或者目的客户端设备上时,新方法通过从驱动存储器安装所有需要的设备驱动来适当地配置目标设备镜像,并删除剩余的其它驱动(即包括在主镜像中但没有安装在目标客户端设备上的驱动),以使得更有效和更高效地使用目标客户端设备上的存储器空间(例如,闪存空间)。因为只安装目标客户端设备需要的驱动,所以目标精简型客户端设备上的驱动冲突的发生和性能问题减少了。
新方法可以进一步使用基于可扩展标记语言(XML)的部署支持第三方应用和用于管理客户端上的设备驱动,例如以部署WES 7精简型客户端运行镜像。基于XML的部署支持可以减少对客户镜像的需求,其是之前当客户希望在基于精简型客户端的WES 7的精简型客户端镜像上集成任何第三方设备驱动或应用时所需要的。基于XML的部署进一步减少了准备客户镜像和执行客户镜像维护的支持工程师或者现场工程师负担。基于XML的部署因此有助于最小化精简型客户端带来的管理开销。
最后,新方法可以执行精简型客户端组件和应用的自动更新。自动更新最小化对管理软件没有任何依赖的基于精简型客户端的WES 7所需的管理来管理基于精简型客户端的WES 7。
嵌入式镜像创建和安装
为了解决上述问题,提出了创建用于客户端设备(例如,精简型客户端)部署的主镜像的改进的方法。方法创建主磁盘镜像,也被称为视窗精简型客户端主镜像,其通过将多种硬件平台所需的所有设备驱动预加载到磁盘镜像的驱动存储储存库而是便携的和智能的。当主镜像部署到目标或者目的设备时,目标设备通过从驱动存储安装目标设备的硬件平台需要的设备驱动适当地配置设备镜像。在部署期间执行应用(例如,在此被称为“drvmgmt.exe”的应用)以删除目标客户端设备上不需要的其它驱动。应用根据设备驱动配置文件(例如,命名为“DriverConfig.xml”的文件,并规定哪个驱动应当安装在每个硬件平台上)执行其它驱动的删除。应用还支持其它功能,例如驱动安装、驱动计数、驱动删除等等,以使得应用可以用于所有的驱动部署功能。
图4A显示了创建用于安装到具有多种客户端硬件平台中任一种的目标客户端设备上的磁盘镜像(或者主镜像)示意性过程。一旦创建,磁盘镜像被配置为自动在运行于多种硬件平台中任一种的目标设备上安装应用和驱动。为此,创建的磁盘镜像包括用于多种硬件平台中每一种的驱动和应用。
磁盘镜像创建过程可以由镜像建立设备的镜像建立模块执行,过程开始于镜像建立设备上的操作401。一般,镜像建立设备是客户端设备,例如客户端设备102,其具有或者运行镜像建立模块。然而,镜像建立设备还可以是服务器,例如服务器112,或者具有存储器用于创建主磁盘镜像的另一个合适的设备。
在操作403,在镜像建立设备上提取通用配置响应文件。通用配置响应文件包括关于应当包括在磁盘镜像中的所有组件(例如,微软组件)的信息,可以特别地包括磁盘镜像的视窗嵌入特征组。通用配置响应文件基本上类似于上面关于图3A的操作301和303所述的内容。
在操作405和407,将第三方应用和私有(或者初始设备制造商)应用安装在镜像建立设备上。特别地,应用可以安装在镜像建立设备的存储器上,例如机器可读介质210例如其中镜像建立设备是如图2所示的系统。安装应用之后,在操作409先前存在的设备从镜像建立设备卸载。先前存在的设备是包括在镜像建立设备上的驱动,以及之前例如作为操作系统、应用(例如,在操作405和407安装的应用)、硬件组件等等安装的一部分安装在镜像建立设备上。在建立设备运行WES 7精简型客户端的示例中,先前存在的驱动可以包括作为操作系统安装的一部分预安装在设备上的微软兼容的驱动。
镜像建立过程进行到操作411,其中将驱动输入到镜像建立设备的驱动存储中。通常,将任意目标客户端设备的硬件平台上安装主磁盘镜像所需的所有驱动都输入到驱动存储中。在一个方面,操作411可以依赖于设备驱动配置文件,其存储了驱动与每个目标客户端设备的硬件平台的关联,来识别驱动并将其输入以包括在驱动存储中。与设备驱动配置文件中标识的一个或者多个硬件平台类别相关的驱动,以及与设备驱动配置文件中标识的两个或者多个硬件平台相关的通用驱动都可以输入到驱动存储中。驱动存储可以是,例如镜像建立设备的存储器中的文件夹,其被用于存储与驱动相关的建立信息文件(例如,“.inf”文件)。
一旦所有驱动输入到驱动存储中,磁盘镜像在操作413创建。磁盘镜像通常是根据镜像建立设备的存储器的内容创建的,例如存储在操作405和407安装的应用和在操作411输入驱动存储的驱动的镜像建立设备的机器可读介质。在操作413,镜像可以准备好用于部署,从镜像建立设备提取出来用于以后传输或者部署到目标客户端设备。提取的磁盘镜像可以存储在服务器(例如,服务器112)中,例如用于以后部署到目标客户端设备102a-102e中的任一个。磁盘镜像创建过程然后结束于操作415。图4A显示的所有操作可以自动地执行而无需人工干预。
在一个方面,图4A的示意性过程可以包括输入设备驱动配置文件到镜像建立设备的额外操作。设备驱动配置文件可以例如在完成操作411之后输入到镜像建立设备的存储器中。设备驱动配置文件规定了驱动和硬件平台之间的关联,尤其用于根据客户端设备的硬件平台识别安装在目标客户端设备上的驱动。设备驱动配置文件可以在将磁盘镜像安装到特定目标客户端设备上(参见,例如下面关于图5A-5C的说明)的操作期间使用。
在一些实例中,设备驱动配置文件包括多个类别硬件平台的配置数据,每个类别由类别名标识。对于每个类别,配置文件列出了与类别关联的一个或者多个平台,以及与类别关联的一个或者多个驱动。每个平台可以由平台标识符(例如,平台ID),例如唯一序号标识符,和平台名来识别,而每个驱动可以由驱动标识符(驱动ID),例如唯一序号标识符,驱动类型、驱动说明、和与驱动关联的安装信息文件的文件名和/或路径。驱动类型可以包括音频驱动的“AUDIO”、图形驱动的“VGA”、有线或无线网络适配器驱动的“LAN”或“WLAN”、不同类型的控制器或接口的驱动的“CARDREADER”或“USB3.0”等等。
设备驱动配置文件还可以包括所有硬件平台的配置数据,例如应当安装在所有硬件平台上的一个或者多个驱动的列表。设备驱动配置文件进一步可以包括在多个平台之间共享的通用驱动(但是不是必须由一个类的所有平台共享)列表。每个通用驱动由驱动ID、驱动类型、驱动说明、和文件名和/或路径来标识。对于每个通用驱动,配置文件列出了与驱动关联的两个或者多个平台。这样,配置文件包括在每个硬件平台上安装特定驱动的信息、和硬件平台的每个类别的标识符、与类别关联的驱动,以及对于每个通用驱动,与通用驱动关联的平台。设备驱动配置文件可以是可扩展标记语言(XML)配置文件。
图4B显示了由镜像建立模块创建磁盘镜像的过程的特殊示例。流程图显示了包括在WES 7镜像创建中的示意性过程,图4B中显示的所有操作可以自动执行,而无需人工干预。图4B的某些操作类似于图3的操作,描述这些操作时可以参考图3的说明。
WES 7镜像的创建开始于操作451,使用镜像配置编辑器(ICE)创建通用配置响应文件,通用配置响应文件在此不同的称之为文件名为“common.xml”的文件(也可以称之为通用配置文件)。在操作453,使用镜像建立向导(IBW)将通用配置响应文件部署在目标硬件上,例如镜像建立设备。在操作455和457,将第三方应用(例如,ICA、VMView、VNC等等)和私有应用(例如,HAgent、ClientInformation、Ramdisk等等)安装在镜像建立设备上。另外,在操作457一个或者多个脚本可以输入到镜像建立设备上,例如用于在将在其之上部署磁盘镜像的目标客户端设备上实现或者应用客户化的脚本。应用安装之后,在操作459使用应用例如drvmgmt.exe应用的卸载模块将基本微软兼容的驱动从镜像卸载。在操作461,使用例如drvmgmt.exe应用的增加模块将支持的硬件平台的所有设备驱动输入到驱动存储。在一个方面,输入的驱动对应于设备驱动配置文件中识别的所有驱动。最后,在操作463,磁盘镜像准备好用于配置,例如通过使用“Sysprep”应用,以及提取准备好的镜像。
通常,在准备WES 7通用主镜像的过程中,多种硬件平台所需的所有设备驱动被预加载到通用主镜像中。然而,设备驱动的副本可以增加到主镜像的驱动存储中,例如在某些硬件平台具有通用硬件组件的情况下。例如,如果多个硬件平台(或者多个硬件平台类别)具有Realtek高清音频卡、Realtek-PCI GBF族控制器、和AMD Radeon HD6310图形卡,具有这些通用组件的每个平台(或者类别)的驱动的独立副本应当被包括在驱动存储中。为了避免在驱动存储中不必要的存储相同设备驱动文件的(多个)副本,以及由此减少可部署的磁盘镜像的大小,设备驱动配置文件可以包括在多个平台(或者平台类别)之间共享的通用驱动的一个部分。
图5A显示了将磁盘镜像安装到目标客户端设备上的示意性过程,例如由图4A或4B的过程所产生的和包括几个硬件平台的应用和驱动的磁盘镜像。目标客户端设备具有几个硬件平台中的一个,目标客户端设备的硬件平台可以是设备驱动配置文件中标识的平台类别的一部分。图5A的过程在其上将部署磁盘镜像的每个目标客户端设备上重复。
安装过程开始于操作501,将磁盘镜像部署到目标客户端设备。图5A的过程可以由镜像配置模块执行,例如由目标客户端设备的或者在其上运行的镜像配置模块。目标客户端设备可以使用任意远程管理软件机制接收或者提取磁盘镜像。在一个方面,目标客户端设备从服务器(例如,服务器112)、镜像建立设备、或者存储或者已经访问到磁盘镜像的另一个设备接收或者提取磁盘镜像。可选地,磁盘镜像可以被推送到目标客户端设备、被预加载到安装于或者连接到目标客户端设备的存储器上、或者否则可以被提供给目标客户端设备。在操作503,目标客户端设备将磁盘镜像存储于目标客户端设备的存储器或者其它机器可读介质,或者否则与存储磁盘镜像的机器可读介质进行通信。在操作505,目标客户端设备重启,或者否则执行启动过程来开始磁盘镜像安装。
在启动过程期间或者之后,在其中存储有磁盘镜像的目标客户端设备自动安装硬件和形成为目标客户端设备的一部分的其它组件的驱动(操作507)。根据客户端设备的特定硬件平台,并使用存储在磁盘镜像的驱动存储中的建立信息文件将驱动安装在客户端设备上。如果客户端设备是运行WES7的精简型客户端,驱动安装操作可以作为用于配置和安装目标客户端设备的特定硬件的驱动的视窗即插即用过程的一部分来执行。视窗即插即用安装过程通常是在WES 7精简型客户端启动过程期间自动发起的,并自动检测硬件组件,搜索驱动或者相关驱动建立信息文件,并在精简型客户端上安装驱动。可以包括作为操作507执行的驱动安装的一部分的操作的更详细的说明包括在下面关于图6A的说明中。
在操作509,提取设备驱动配置文件。通常,设备驱动配置文件是从客户端设备存储的磁盘镜像提取的,然而,设备驱动配置文件可以从另一个存储位置提取,例如从本地或者远程存储位置。设备驱动配置文件基本上类似于上面关于图4A所述的设备驱动配置文件。随着提取设备驱动配置文件,客户端设备可以对客户端设备应用某些客户化,例如对客户端设备应用特定策略或喜好(例如,磁盘重整、飞行方案)。客户化可以是用户特定的,可以根据在磁盘镜像包括的,或者在镜像建立设备可访问的其它合适存储位置包括的一个或者多个脚本中包括的客户化信息来执行。
在操作511,识别目标客户端设备的硬件平台和相关的类别。根据识别的硬件平台和类别,以及根据设备驱动配置文件中包括的信息,识别与硬件平台和类别相关的驱动用于安装在客户端设备上。操作511可以因此包括将设备驱动配置文件中标识的所有驱动识别为与客户端设备硬件平台的类别相关,并将设备驱动配置文件中标识的所有通用驱动识别为与客户端设备的硬件平台相关。作为操作511的一部分,驱动和与识别的驱动相关的驱动应用可以安装在客户端设备上。驱动应用可以在设备驱动配置文件中标识,例如与应用对应的驱动关联的设备驱动配置文件中的一部分。根据客户端设备的硬件平台选择驱动应用安装在客户端设备上。
在操作513,验证在操作511识别的所有驱动的安装状态,以保证与目标客户端设备的硬件平台和类别相关的所有驱动已经被安装在目标客户端设备上。验证可以包括列举(或者确定)安装在目标客户端设备上的所有驱动,并将列举出来的驱动与在操作511识别的驱动进行比较。如果确定所有驱动安装在目标客户端设备上,操作进行到操作515。然而,如果发现在操作511识别的任何驱动没有安装在客户端设备上,检测到错误。响应于检测到错误,客户端设备可以尝试重新安装发现没有安装的任意驱动,和/或可以提出驱动安装故障告警指示没有安装一个或者多个驱动。
如果所有驱动确定为安装在目标客户端设备上,在操作515识别设备驱动配置文件中列出的不与目标客户端设备的硬件平台相关也不与类别相关的其它驱动。在操作517,将其它驱动,对应于包括在磁盘镜像的驱动存储中但在磁盘镜像安装过程中还没有使用的驱动,从客户端设备的驱动存储中删除。一旦清除了其它未使用的驱动,安装过程结束于操作519。图5A所示的所有操作可以自动执行无需人工干预。
图5B和5C显示了在目标客户端设备上部署镜像期间包括的操作的示意性流程图,例如由目标客户端设备的镜像配置模块执行的操作。
在图5B中,在将WES 7镜像(包括驱动存储)部署到目标客户端设备上之后,以及在目标客户端设备的第一次启动过程期间,例如微软即插即用自动驱动安装过程的过程将根据目标硬件从驱动存储配置和安装所有需要的驱动(操作541)。在操作543,客户化脚本将运行,其负责建立类似于用户特定策略、磁盘重整、飞行方案等事情。在操作545根据目标客户端设备的硬件平台加入需求的驱动应用,例如使用drvmgmt.exe的CheckDriver模块。在操作547,使用drvmgmt.exe应用的列举、验证和清除模块将任意未使用的设备驱动从驱动存储中清除。操作547之后,WES 7精简型客户端在操作549准备好使用了。
在图5C中提供了更详细的流程图。在操作571,创建驱动储存库以存储磁盘镜像支持的所有硬件平台的厂商驱动。在操作573,将驱动和设备驱动配置文件(可以称之为“DriverConfig.xml”文件)预加载到主通用磁盘镜像驱动存储中,以及在操作575将磁盘镜像部署到目标客户端设备硬件上。在操作577,将驱动安装在使用磁盘镜像的驱动存储中存储的驱动的目标客户端设备。安装可以由即插即用(PNP)应用和/或drvmgmt.exe应用的安装模块执行。目标客户端设备的硬件平台类别在操作579识别。在操作581,列举安装在目标客户端设备上的设备驱动,在操作583,识别与设备驱动配置文件中的目标客户端设备的硬件平台和/或类别关联的驱动。根据在操作581和583识别的驱动,确定与目标客户端设备平台和类别关联的所有驱动是否已经安装(操作585)。如果任意驱动还未安装(操作587),执行结束(操作593)。然而,如果所有驱动都已经安装,就读取设备驱动配置文件来识别与硬件平台而不是与目标客户端设备平台关联的其它驱动(操作589)。在操作591将其它驱动从驱动存储中清除,过程结束于操作593。图5B和5C所示的所有操作可以自动执行无需人工干预。
图6A显示了验证目标客户端设备上驱动的安装,例如图5A的操作507中执行的安装是否成功的示意性过程。在部署磁盘镜像的过程中,例如uWES7通用主镜像,在目标客户端设备上,使用驱动存储中存储的驱动建立信息文件根据硬件平台安装设备驱动。设备驱动安装过程通常是自动执行的,例如通过即插即用型安装过程。然而设备驱动安装过程可能由于多种原因,包括存储器或者存储设备(例如,目标SSD闪存)的空间不够、对应于非即插即用设备的驱动不能够自动安装在目标客户端设备上、和/或在安装期间设备初始化故障而失败。为了解决设备驱动安装过程期间的这些问题,图6A提供了实现多层次驱动安装和验证过程的方法。
在操作601,将一个或者多个驱动安装在客户端设备上。安装之后,在操作603验证驱动安装状态。通常,验证包括校验设备上的任意驱动是否指示为未成功安装。在运行基于视窗的操作系统的设备中,例如,操作系统可以指示设备安装状态失败或者未成功。在其它类型设备中,标记或者其它标识可以指示驱动安装未完成。如果所有驱动的安装都成功,没有安装失败(操作605-“否”),可以报告驱动安装成功(操作607),验证过程结束于操作617。然而,如果一个或者多个驱动的安装失败了、不成功或者否则没有正确地完成(操作605-“是”),就在操作609尝试重新安装驱动。驱动重新安装通常是与驱动安装基本上相同的方式执行,例如操作507和/或601执行的。驱动重新安装还可以包括驱动卸载操作,以在执行驱动重新安装之前删除未成功或者未完成的驱动安装。驱动重新安装之后,在操作611验证驱动重新安装状态。如果所有驱动的重新安装都成功,没有重新安装失败(操作613-“否”),可以包括驱动安装成功(操作607)和驱动安装验证过程终止于操作617。然而如果一个或者多个驱动的重新安装失败了(操作613-“是”),就报告驱动安装失败(操作615)以及过程终止于操作617。
图6B根据关于图6A所述的过程显示了驱动安装验证过程的特殊示例。图6A和6B所示的所有操作可以自动执行无需人工干预。
图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的列表。
图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”可执行文件等)等等。
图8A是显示示意性WES 7操作系统的组件、以及操作系统组件与客户端设备上不同存储结构之间的交互的结构图。在图8A示例中,操作系统包括即插即用特征用于在客户端设备上自动配置驱动。即插即用特征(例如,视窗操作系统的微软即插即用特征)可以确定一个或者多个驱动丢失了,例如通过识别客户端设备的一个或者多个组件没有安装相关的驱动,并自动尝试安装识别的组件的驱动。驱动可以根据驱动建立信息文件或者存储在例如客户端设备的驱动存储中的其它安装或者数据文件来安装。一旦安装了,驱动形成为客户端设备上激活驱动组的一部分,例如位于运行基于视窗的操作系统的客户端设备的windows/system32/drivers文件夹中的Win_32激活驱动。操作系统可以依赖于提供设备管理控制台的Devmgmt.msc应用、提供建立应用为执行安装操作调用的一组功能的SetupAPI应用程序接口、和/或提供设备处理所需功能的DIFxAPI设备安装器。客户端设备或者操作系统进一步使用私有应用,例如在此被称为Drvmgmt.exe的应用,根据客户端设备的硬件平台和使用客户端设备的驱动存储来处理和执行第三方驱动的智能安装。
图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通信。
在优选实施方式中,模块(例如,通过828的808)在软件中实现(例如,包括例程或代码的机器可读介质)。在另一个实施方式中,一些或者所有模块可以以硬件(例如,专用集成电路(ASIC)、场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、状态机、门控逻辑、分离的硬件组件、或者任意其它合适的设备)和/或其组合实现。根据本公开的不同方面的这些模块的其它特征和功能将进一步说明。
在一个示例中,客户端设备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。
根据一些方法,为了通过管理软件大量部署精简型客户端固件,客户化固件镜像需要作为文件包来创建。镜像的写入过滤器可能需要停用,软件/驱动需要安装,合适的配置需要设置,以及然后写入过滤器可能需要启用。在这个过程之后,客户端上的固件可能需要从远程服务器提取。这个固件镜像可以是大尺寸和可能需要推送到使用客户化固件改变的所有合适的客户端。
为了阻止大固件通过网络推送给多个客户端的这个过程,将要安装的驱动/应用可以在配置文件中规定。在一些方面,应用还可以与配置文件一起存储。只要客户端启动了,运行于每个客户端设备的自动更新业务可以检验配置文件,以确定客户端设备上的任意驱动或者应用的更新是否可用,并且然后自动更新业务能够下载和安装对应驱动或应用的可用更新。
图9A显示了用于安装、卸载、和在客户端设备的驱动上执行其它处理和操作的驱动管理模块的简化结构图。驱动管理模块,在此称之为Drvmgmt.exe和/或驱动管理应用,包括用于执行处理的单独模块,包括用于增加、安装、检验、再次扫描、列举、验证、卸载、和从客户端设备清除驱动的模块。驱动管理模块可以位于或者安装于客户端设备上,例如目标客户端设备或者镜像建立设备、或者服务器,并用于在模块所位于的客户端设备或者服务器上执行过程。
图9B-9J显示了驱动管理模块(例如,drvmgmt.exe)的不同子模块执行的过程的详细流程图。驱动管理模块用于,例如在上述关于图4A-4B、5A-5C、图6A-6B所示的和说明的镜像建立过程的多个阶段。在上述示例中,驱动管理模块用于执行创建Windows Embedded Standard 7精简型客户端主镜像中包括的多个操作。
驱动管理模块可以作为命令行应用来实现,其被开发以处理WindowsEmbedded Standard 7精简型客户端主镜像上的不同设备驱动管理行为。模块可以支持不同功能,象增加一个或者多个设备驱动到驱动存储中、安装和卸载驱动、从驱动存储中删除驱动等等。
在驱动管理模块是命令行应用的实现中,可以如下所示来使用。应用可以用如下所示的命令行来调用:Drvmgmt.exe/<function name>[functionarguments]
下面包括驱动管理模块支持的功能列表,以及功能相关的说明。驱动管理模块的功能被调用之后(对应于图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模块(参见例如图9I)执行清除功能,用于验证驱动完整性,并从驱动存储中清除设备驱动配置文件或者部署配置文件(例如命名为“DriverConfig.xml”或“DeviceDeploymentConfig.xml”的文件)中规定的其它硬件模型的驱动。示意性地显示于图9B-9J中的每一个的过程可以自动执行,无需人工干预。
驱动管理模块的每个模块、以及相关过程可以使用全命令行用法来调用,例如:
驱动或应用的自动部署
为了解决上述提出的一些问题,特别是不能在没有部署磁盘镜像的客户端设备上向每个客户端设备更新特定组件(驱动和/或应用,包括安全补丁和特征更新),提出了一些方法。这些方法包括管理客户端设备上的设备驱动,例如具有WES 7精简型客户端运行时镜像的设备,在客户端设备上增加第三方设备驱动和应用(包括安全补丁和特征更新)的基于部署配置文件的部署支持,以及提供精简型客户端组件/应用的自动更新。
图10显示了使用部署配置文件在客户端设备上自动部署驱动的过程示例。图10所示的过程可以由客户端设备的更新代理模块812执行,尤其是由客户端设备的部署模块816和/或驱动部署模块818执行。部署配置文件包括部署记录,至少一个部署记录包括了在客户端设备上部署驱动的信息。图10的过程通常在多个客户端设备上执行,过程在应当在其上部署驱动的每个客户端设备上重复。例如,过程可以在具有与部署配置文件中标识的驱动关联的硬件平台的每个客户端设备上重复。
操作1001在客户端设备上自动部署驱动的过程通常在客户端设备开启时开始。在操作1003,部署配置文件提取到客户端设备上。下面参考图13A和13B将详细说明部署配置文件,其通常包括一个或者多个部署记录,每一个提供关于在客户端设备上部署或安装驱动的信息。部署配置文件可以在操作1003从客户端设备的存储器提取,或者从部署配置储存库(例如,图1中的配置储存库服务器104)提取。在一些示例中,部署配置文件从客户端设备的存储器中免除写入过滤器限制的位置提取。
不同类型的部署配置文件可以从客户端设备的存储器提取,包括“CurrentDeploy.xml”文件,可以称之为当前部署配置文件,或者“DeltaDeploy.xml”文件,可以称之为增量部署配置文件。“CurrentDeploy.xml”文件是之前存储在客户端设备的存储器中的配置文件,以及还未被在此提及的部署驱动处理过。“DeltaDeploy.xml”文件也是之前存储在客户端设备的存储器中的配置文件,以及已经部分地被处理过以部署“CurrentDeploy.xml”文件中提及的一些驱动。当特定部署文件包括多个部署记录时,例如,以及在已经处理了一些应用或驱动的部署之后要求客户端设备的重启时,“DeltaDeploy.xml”文件可以存储在重启时还未处理的部署记录。“CurrentDeploy.xml”文件可以是部署过程开始时最初从配置储存库提取的部署配置文件的副本,以及可以标识和说明安装的多个驱动。“DeltaDeploy.xml”文件可以是根据“CurrentDeploy.xml”文件在部署过程期间产生的部署配置文件,以及可以标识和说明多个驱动中还没有部署在客户端设备上的那一部分(或者子集)。
在优选示例中,如果“DeltaDeploy.xml”文件在客户端设备的存储器中存在,在操作1003提取“DeltaDeploy.xml”,执行直接进行到操作1013。如果“DeltaDeploy.xml”文件不存在,客户端设备检验“CurrentDeploy.xml”文件是否存在,如果存在,执行进行到操作1005。最后,如果“DeltaDeploy.xml”和“CurrentDeploy.xml”文件都不存在,客户端设备尝试从远程位置提取部署配置文件,例如从配置储存库(例如,配置储存库服务器104)。在配置储存库是服务器的实施方式中,客户端设备可以检验确定部署配置文件(例如“DeviceDeploymentConfiguration.xml”)是否存储在配置储存库(例如,服务器104)中,以及如果确定存储在储存库中就提取部署配置文件。可选地,配置储存库服务器104可以将部署配置文件推送到客户端设备,以使得客户端设备能够在自己下次重启时提取部署配置文件。部署配置文件通常存储在客户端设备的存储器中免除写入过滤器限制的位置。
一旦提取了部署配置文件,在操作1005客户端设备判断提取的部署配置文件是否对应于新的部署。判断可以例如通过将提取的部署配置文件与存储之前处理的部署配置文件(例如,其可以被称为“LastSuccessDeploy.xml”文件)的存储的文件进行比较来执行。比较可以在部署配置文件的单个记录上进行,以判断提取的部署配置文件中的部署记录中的一些或者所有之前是否已经处理和部署过。如果确定部署配置文件不对应于新的部署(或者如果部署配置文件中的所有部署记录都确定之前已经在客户端设备上处理和部署过),过程终止于操作1007。然而,如果确定部署配置文件对应于新的部署(或者如果确定至少一个部署记录之前没有部署在客户端设备上),过程进行到操作1009。
在操作1009,判断客户端设备上写入过滤器的状态,以保证停用了写文件。写入过滤器或者阻止对客户端设备或者客户端设备的配置进行改变,或者阻止客户端设备或者自己的配置的任意改变跨设备重启而持续。为了保证驱动或应用的部署跨重启持续,判断写入过滤器的状态。如果启用了写入过滤器,就在操作1011停用写入过滤器并重启客户端设备,一旦设备重启了执行就进行到操作1001。然而,如果判断停用了写入过滤器,执行进行到操作1013用于部署驱动。
操作1013-1029形成循环,重复用于部署配置文件(其最初是,例如在操作1003提取的“CurrentDeploy.xml”文件和然后是“DeltaDeploy.xml”文件)中的每个部署记录。在操作1013,解析部署配置文件,并提取第一个部署记录。一旦确定第一个部署记录对应于驱动的部署,执行进行到操作1015。
在操作1015-1021,验证部署中的驱动和客户端设备的不同参数以确保在客户端设备上正确地部署和安装驱动。在操作1015,驱动/部署支持的硬件平台标识符从部署记录中提取出来,并与客户端设备的硬件平台标识符相比较。如果确定设备的平台与部署记录中标识的平台中的一个匹配,操作进行到操作1017;可选地,执行进行到操作1027。在操作1017中,从部署记录中提取驱动部署需要的存储空间量的指示符,以及确定客户端设备存储器中可用的存储空间量。如果确定具有足够空间用于部署,执行继续到操作1019;可选地,执行继续到操作1027。在操作1019,从部署记录中提取驱动的版本指示符。如果在客户端设备上没有安装驱动版本,执行继续到操作1023。然而,如果客户端设备上已经安装了驱动版本,只有在部署记录中标识的驱动版本比客户端设备上安装的版本更新(或者具有更高版本号)时,执行才继续到操作1021。在操作1021,将客户端设备上安装的驱动版本(具有比配置文件中标识的驱动版本更低的版本号)卸载。
在操作1023,提取包括在部署记录中的任意参数值,在操作1025,使用从部署记录中提取的参数值来执行驱动部署。驱动部署可以包括在客户端设备上安装驱动,例如使用部署记录中标识的建立信息文件。建立信息文件(或者其它部署/安装文件)可以从客户端设备的驱动存储中提取、配置储存库(例如,配置储存库服务器)或者其它服务器中提取、或者从客户端设备可访问的另一个存储介质中提取。在一些示例中,部署记录包括重启指示符,这种情况下客户端设备的重启有利于后续的驱动部署。
在驱动部署之后,在操作1027判断当前部署配置文件中是否包括任何更多的部署记录。如果所有部署记录都已经处理,执行结束于操作1031。然而,如果至少一个部署记录仍然要处理,执行通过(可选的)操作1029然后到操作1013,根据下一个部署记录进行部署。在操作1029,修改部署配置文件以从部署配置文件中删除在操作1025部署的驱动的部署记录。
在部署的可选方法中,可以修改部署配置文件以从部署配置文件中删除被提取用于驱动部署的部署记录(即,在执行部署操作1015-1027之前修改部署配置文件)。例如,操作1029可以在操作1013之后执行或者在操作1013和1027之间任意点执行。
图10所示的所有操作可以自动执行而无需人工干预。虽然在客户端设备上部署驱动是在图10的上下文中说明的,非常简化的过程也可以用于在客户端上部署应用。
图11显示了使用部署配置文件在客户端设备上自动部署应用的过程示例。部署配置文件包括应用部署记录,以及在图11所示示例中,至少一个部署记录包括用于在客户端设备上部署应用的信息。虽然部署在此可以称之为与应用相关,但是可以理解部署可以更普遍地涉及应用、应用升级、特征更新、安全补丁等等。图11所示的过程包括基本上类似于关于图10所示和说明的操作。解释图11时,因此应当参考图10中的类似操作的说明,只是将“驱动”替换为“应用”。图11所示的过程可以由客户端设备的更新代理模块812执行,特别地由客户端设备的部署模块816和/或应用部署模块820执行。
在图11中,然而,在部署应用的较新版本之前应用的旧版本无需从客户端设备卸载。代替在安装应用的较新版本之前卸载应用的旧版本,部署可以根据部署记录简单地将应用升级到新版本。作为结果,在执行作为客户端设备上的应用升级的操作1123-1125以部署应用之前,可以不包括卸载应用的旧版本的步骤。而且,在图11中,包括了图10中没有等同操作的额外操作1124。操作1124在提取部署记录中包括的任意参数值的操作1123之后,以及使用从部署记录中提取的任意参数值执行的应用部署操作1125之前执行。应用的部署记录通常包括应用安装文件包的标识符,例如可执行或存档文件(例如,“.exe”、“.msi”、“.msu”、或“.cab”文件),用于执行应用安装和部署。在操作1124,根据标识符或者从部署记录提取的其它指示符确定应用安装文件包的类型。在操作1125,然后根据提取的安装文件包的类型执行应用的部署。应用安装/部署文件包(或者其它部署/安装文件)可以从客户端设备的存储器、从配置储存库、或者从客户端设备可访问的另一个其它服务器或者存储介质中提取。图11所示的所有操作可以自动执行而无需人工干预。
在可选方法中,图10和11中所述的操作可以以部署驱动、应用、特征更新、和/或安全补丁的方式合并或者修改,以及部署配置文件可以标识驱动、应用、特征更新、和/或安全补丁。在图10中,术语“驱动”可以替换为术语“驱动、应用、特征更新、和/或安全补丁”,在图11中,术语“应用”可以替换为术语“驱动、应用、特征更新、和/或安全补丁”。
图12A、12B和12C显示了关于图10和11所述的特殊过程示例。在图12A-12C所示示例中,单个部署配置文件可以包括部署驱动的部署记录和部署应用、特征更新、和/或安全补丁等的部署记录。图12A-12C的过程可以由客户端设备的更新代理模块812执行,尤其是客户端设备的部署模块816、驱动部署模块818、和/或应用部署模块820。在图12A的流程图过程中,根据部署记录中标识了“DeviceDriver”还是“Application”标签(例如,设备驱动标签或者应用标签),驱动和应用部署相继执行。图12A-12C所示的所有操作可以自动执行而无需人工干预。
图12A-12C的流程图过程可以用于管理Windows Embedded Standard 7精简型客户端运行时镜像的设备驱动,通过在镜像上自动部署驱动。过程可以进一步被用于增加对第三方设备驱动和应用的基于XML的部署支持。在客户端设备启动期间,过程可以用更新代理(例如,更新代理模块812)的后台业务调用开始于操作1201。更新代理可以检验是否有增量部署(例如,“DeltaDeploy.xml”)配置文件或者当前部署(例如“CurrentDeploy.xml”)配置文件位于客户端设备的存储器中(操作1203和1205)。如果增量或者当前部署配置文件都没有找到,更新代理的后台业务调用导致更新代理发现配置业务储存库,例如在配置储存库服务器104上。更新代理检验储存库中是否存在部署配置文件(例如,“DeviceDeploymentConfig.xml”文件)。如果部署配置文件不存在,那么更新代理下载部署配置文件并将文件作为当前部署配置文件(例如“CurrentDeploy.xml”)存储在客户端设备的存储器中免除写入过滤器的位置中(操作1027)。更新代理还可以将当前部署配置文件复制到存档文件(例如,“PreserveForHistory.xml”)。然后更新代理检验部署配置文件是否已经应用于设备上(操作1209)。检验可以例如通过判断对应于客户端设备上处理的最近部署配置文件的“LastSuccessDeploy.xml”(其可以被称为最后成功部署文件或者最后成功部署配置文件)是否与从储存库提取的当前部署配置(例如“CurrentDeploy.xml”)文件相同来执行。如果发现文件相同,过程终止于操作1210。如果发现文件不同,那么更新代理继续到操作1211,在此更新代理停用写入过滤器,如果客户端设备上启用了,以及便于客户端设备的重启(操作1213)。
在一个可选示例中,在操作207更新代理可以将当前部署配置文件存储于客户端设备的存储器中免除写入过滤器的位置。更新代理然后可以一旦在操作1209确定最后成功部署文件和当前部署配置文件不同,就将当前部署配置文件本地保持或者存储于客户端设备的存储器中免除写入过滤器的位置。
在客户端设备的下一次启动时,发起相同设备部署过程(操作1201)。然而,现在当前部署配置文件(“DeviceDeploymentConfig.xml”)是本地存储的,以及写入过滤器状态是停用的。一旦在操作1205定位了当前部署配置文件,更新代理可以继续操作1209和1211。在确定写入过滤器现在停用之后,更新代理继续到操作1215。在这时,更新代理可以开始执行部署配置文件中提及的部署工作。
示意性部署配置文件可以包括两个不同的部署任务,一个应用部署任务和一个设备驱动部署任务。在解析当前部署配置文件(操作1215)之后,更新代理从具有设备驱动标签的当前部署配置文件中提取部署记录(操作1217)。更新代理从当前部署配置文件中删除提取的部署记录,并将当前部署配置文件中剩余的部署记录保存在增量部署配置文件中(操作1219)。然后处理进行到操作1221,用于执行驱动部署处理。类似的,如果提取了具有应用标签的部署记录(操作1225),更新代理从当前部署配置文件中删除提取的部署记录,并将当前部署配置文件中剩余的部署记录保存在增量部署配置文件中(操作1227),并进行到操作1229用于执行应用部署处理。
在操作1221或1229执行的部署任务中的任一种在完成之前(以及在移动到下一步部署处理之前)需要重启的情况下,完成以下过程。一旦从部署配置文件中读取特定部署任务(操作1215、1217、1225),剩余的部署配置文件就存储为增量部署配置文件“DeltaDeploy.xml”(其可以被称为增量部署文件或者中间部署配置文件)(操作1219、1227)。如果特定部署任务触发了重启,更新代理在操作1203检验增量部署配置文件(例如,“DeltaDeploy.xml”)是否存在于设备的下一次启动中,在操作1205检验完整部署配置文件(例如,“CurrentDeploy.xml”)之前。如果存在增量部署配置文件,更新代理将增量部署配置文件复制为当前部署配置文件(操作1235),部署根据增量文件进行到操作1215。否则,在操作1205部署根据完整部署配置文件来进行。
如果部署任务在操作1221或1229不要求重启,一旦部署任务完成,更新代理将增量部署配置文件复制为当前部署配置文件(操作1223),部署根据增量文件进行到操作1215。一旦所有部署记录都处理完毕,找不到设备驱动或应用标签(操作1217、1225),更新代理继续到操作1231。在操作1231,更新代理将存档文件(例如,“PreserveForHistory.xml”)重命名为最后成功部署文件(例如,“LastSuccessDeploy.xml”)。在重启客户端设备之前启用写入过滤器(操作1233)。
图12B示意性地显示了在操作1221执行的更详细的驱动部署过程。一旦发起驱动部署过程(操作1241),对应于驱动部署任务的部署记录在操作1243解析,并从部署记录中提取不同指示符。客户端设备的硬件平台类型(和/或硬件平台类别)在操作1245确定。在操作1247,更新代理判断客户端设备的硬件平台(或类别)是否包括在部署记录中包含的支持的平台中。在执行每个部署任务之前,检查设备上磁盘可用空间的可用性以考虑部署活动是否能够执行(操作1249)。如果足够的磁盘空间可用于安装部署配置文件中提及的特定应用或设备驱动,部署活动的执行将继续。否则,更新代理将移动到下一个部署任务。在操作1251,更新代理检查对应于部署记录的驱动是否已经存在或者安装于客户端设备上。如果存在,检查安装的驱动的版本,以判断部署记录的驱动是否比安装的驱动更新(或者是更高序号的版本)(操作1253)。如果发现必要,卸载安装的驱动(操作1255)。然后从部署记录提取参数标记值(操作1257),安装驱动(操作1259)。通常,使用驱动管理应用的安装模块来安装,例如关于图9A-9I所述的。驱动部署过程结束于操作1261。
图12C示意性地显示了在操作1229执行的更详细的应用部署过程。一旦发起应用部署过程(操作1265),对应于应用部署任务的部署记录在操作1267解析,并从部署记录中提取不同子标签、指示符、标识符等等。在操作1269,更新代理检查对应于部署记录的应用是否已经存在或者安装于客户端设备上。如果存在,检查安装的应用的版本,以判断部署记录的应用是否比安装的应用更新(或者是更高序号的版本)(操作1271)。如果应用没有安装在设备上,或者部署记录对应于安装于设备上的应用的更高版本,更新代理进行到操作1273,以判断客户端设备上是否有足够的存储空间可用。如果足够存储可用,更新代理判断部署记录是否标识了用于应用部署的安装文件包的类型(操作1275)。部署过程根据部署配置文件中指示的部署文件包类型执行每个特定的部署任务。部署文件包可以是不同类型,例如“.cab”(例如用于特征更新)、“.msi”、“.msu”(例如,用于安全补丁)、“setup.exe”等等。每个文件包类型需要不同的安装处理方法。如果标识为cab(操作1277)、msi(操作1279)、或msu(操作1281)文件包,就从部署记录读取参数标签值(操作1283),以及用参数标签值调用各自的安装文件包部署应用(操作1285、1287、1289)。例如,msi文件包可以使用msiexec.exe来安装。对于这些过程中的每一个,将从对应于部署任务的参数标签读取命令行参数,并将参数传送到安装过程。如果在部署记录中没有指定已知的安装文件包类型,从部署记录读取参数标签值(操作1291),并在操作1293执行处理用参数标签值安装应用文件包。应用部署过程结束于操作1295。
图13A和13B示意性地显示了用于存储部署配置文件1301、1351,例如图10、11和12A-12C的过程中使用的部署配置文件的数据结构1300、1350。每个部署配置文件1301、1351包括一个或者多个部署记录1303、1353。部署配置文件1301是包括只对应于驱动部署的记录1303的配置文件,而部署配置文件1351是包括只对应于应用部署的记录1353的配置文件。然而更一般的,配置文件可以包括对应于驱动和应用部署的部署记录。对应于驱动部署的每个部署记录1303包括驱动的标识符1305(例如,驱动名、驱动类型、驱动说明和/或等等)、驱动版本1307(例如数字标识符)、用于安装/部署驱动的建立信息文件的文件名或者路径1309、支持的平台或类别1311、参数1313、存储需求1315等等。参数1313可以包括用于指示在驱动安装之后重启应当是有利的、用于建立信息文件的类型、以及用于在哪里安装驱动的存储位置的路径标识符。对应于应用部署的每个部署记录1353包括应用的标识符1355(例如,应用名、应用说明等等)、应用版本1357(例如数字标识符)、用于应用安装文件包或者文件的文件名或者路径1359、文件包或者文件的类型1361(例如,特征更新、安全补丁或者其它类型的标识符)、支持的平台或类别、参数1363、存储需求1365等等。参数1363可以包括用于指示在应用安装之后重启应当是有利的、以及用于在哪里安装应用的存储位置的路径。
应用和驱动的自动更新
在一个方面,关于图14A、14B和14C说明在客户端设备上自动更新应用或驱动的方法。图14A-14C所示的过程可以由客户端设备的更新代理模块812执行,尤其是自动更新模块814。可以另外使用其它模块,例如部署模块816、驱动部署模块818、和/或应用部署模块820。图14A显示了对应于再客户端设备上自动更新应用或驱动的过程的流程图示例。
过程开始于操作1401,通常在客户端设备的启动时发起。在操作1403,检验客户端设备上自动更新标签的状态,以判断自动更新标签是否设置用于允许自动更新。如果设置了自动更新标签,操作进行到操作1405。在操作1405,做出关于自动更新文件夹是否存在于客户端设备存储器中的决定。通常,本地自动更新文件夹时在客户端设备上具有多个子文件夹的文件夹,每个子文件夹包括具有在客户端设备上安装或部署驱动、应用、或者驱动或应用的更新的信息的部署配置文件。通常,应用还可以指特征更新和安全补丁,如在此所用的。在一个方面,部署配置文件包括对应于更新应用或驱动的文件包的部署记录,部署记录包括文件包标识符和文件包版本。如果定位了本地自动更新文件夹,操作进行到操作1421。否在,操作进行到操作1407,其中判断配置储存库,例如配置储存库服务器104上是否具有自动更新文件夹或者其它自动更新数据。在操作1407,客户端设备检验以判断是否自动更新文件夹或者其它自动更新数据存在于服务器(例如,服务器104)上。在一个方面,检验包括使用ftp或者其它传输协议来建立到服务器的连接,以验证在服务器(例如,服务器104)上是否存储有自动更新文件夹或者其它自动更新数据,并在客户端设备接收自动更新文件夹和其包括的文件,和/或其它自动更新数据并将其存储于本地存储器。自动更新文件夹可以包括一个或者多个子文件夹。通常,不同子文件夹提供用于每个不同更新。这样,不同子文件夹可以提供用于每个需要更新的不同驱动或者应用,以及每个子文件夹可以包括对应于更新的部署配置文件。在一些方面,每个子文件夹另外包括对应于更新的文件包或者其它建立或安装文件。如果一个驱动或应用要求多个更新,可以提供对应于每个更新的多个子文件夹。服务器上自动更新文件夹的每个子文件夹被发送给客户端设备,客户端设备接收子文件夹中的每个部署配置文件,并将自动更新文件夹中的部署配置文件存储在客户端设备的存储器中。通常,自动更新文件夹不受写入过滤器限制。如果服务器上没有更新文件夹或者子文件夹可用,客户端设备可以从服务器接收指示没有自动更新数据或者文件夹可用的响应。如果接收了文件夹或数据,操作进行到操作1409。
操作1409-1415形成循环,其为接收的自动更新文件夹中标识的每个子文件夹而重复。对于自动更新文件夹中的每个子文件夹,在操作1411执行验证以判断对应于子文件夹的特殊更新是否已经部署或者安装于客户端设备上。判断可以通过提取存储在子文件夹中的部署配置文件来执行,以及判断提取的文件是否对应于已经部署或者安装的更新。通常,自动更新的部署配置文件包括用于执行单个驱动或者应用的更新的单个部署记录。如果判断出更新已经安装了,或者如果更新具有比安装于客户端设备上的驱动或者应用更低的版本号,包含更新的子文件夹在操作1413被删除,并考虑下一个子文件夹。如果更新没有安装,操作进行到操作1415。从操作1415,如果任意子文件夹仍然要求处理,操作返回到操作1409。一旦所有子文件夹已经都被处理,操作进行到操作1417。
在操作1417,确定客户端设备上写入过滤器的操作状态。如果写入过滤器启用并且有效,执行操作1419来停用写入过滤器,重启客户端设备,并重新开始过程。然而,如果写入过滤器停用,自动更新操作继续到操作1421。
操作1421-1425形成第二个循环,其为本地自动更新文件夹中的每个子文件夹执行。对于本地更新文件夹中的每个子文件夹,应用、驱动、或者应用或驱动的更新在操作1422中部署或者安装。部署通常是根据存储在子文件夹中的一个或者多个文件,例如存储在子文件夹以及从中提取的部署配置文件来执行。部署可以基本上如图10的操作1013-1029或者图11的操作1113-1129来执行,例如。通常,部署是根据存储在子文件夹中的部署配置文件来执行。部署可以包括从本地或者远程存储器提取一个或者多个建立信息文件和/或部署配置文件中标识的安装文件包或者文件。在一个示例中,安装文件从远程服务器(例如,服务器112)提取。在另一个示例中,安装文件从本地存储器,例如从客户端设备存储对应于安装文件的部署配置文件的子文件夹中提取。一旦完成部署,在操作1423子文件夹和其内容(包括任意部署配置文件、建立信息文件、和/或安装文件包)从存储器消除和/或删除。循环结束于操作1425,其中或者如果任意其它子文件夹存在操作返回操作1421,或者如果所有子文件夹都被处理结束于操作1427。
图14B根据关于图14A所述的过程的原理显示了自动更新过程的示意性流程图。图14B的流程图显示了精简型客户端组件(应用或者驱动)自动更新的过程。
在客户端设备启动过程期间,发起更新代理业务的业务调用。如果在寄存器中设置了自动更新标签,更新代理连接到或者发现配置储存库(例如,配置储存库服务器),并检验储存库中是否存在自动更新文件夹。如果自动更新文件夹存在,从每个子文件夹(或者每个文件包文件夹)提取部署配置文件,下载到客户端设备,并存储或者保留在客户端设备的自动更新文件夹和/或子文件夹中。自动更新文件夹和自己的子文件夹通常不受写入过滤器限制,以使得存储于那里的文件夹和文件可以通过写入过滤器。
一旦部署配置文件存储于客户端设备上,客户端设备检验部署配置文件(即,更新、建立信息文件、安装文件包或文件)中标识的文件包中的任一个是否已经安装于客户端设备上,或者是否任一个文件包具有比安装于客户端设备上的对应应用、驱动、或者更新更高的版本号或者更新。客户端设备进一步检验设备的写入过滤器状态,如果写入过滤器处于有效状态,客户端设备停用写入过滤器以便于客户端设备的重启。
如果便于重启,在设备的下一次启动时,相同过程出现。然而,现在部署配置文件是本地存储的,写入过滤器状态是停用的,客户端设备将根据每个部署配置文件中提及的信息开始执行部署过程,并将在执行于部署配置文件关联的特定部署任务之后删除每个部署配置文件。
一旦执行了所有部署任务,客户端设备将启用写入过滤器以便于客户端设备的重启。
这个更新代理业务可以保持每10分钟,例如或者任意其它配置的时间延迟、时间阶段或者时间间隔检验任意组件(应用和/或驱动)的任意更新的本地自动更新文件夹和配置储存库的自动更新文件夹中的一个或者二者。
图14C根据关于图14A和14B所述的过程的原理显示了自动更新过程的示意性流程图。图14C的流程图显示了基本上类似于图14B所示的精简型客户端组件(应用或者驱动)自动更新的过程。然而在图14C所示过程中,“.xml”文件(例如,部署配置文件)从配置储存库(例如,配置储存库服务器)的自动更新文件夹下载并存储到客户端设备上。客户端设备然后验证下载的部署配置文件是否对应于客户端设备上安装的文件包,如果是,判断下载的部署配置文件是否对应于比设备上安装的文件包更高的版本。如果判断部署配置文件中任一个对应于客户端设备上已经安装的文件包,以及具有比设备上安装的更高的版本,确定的文件包的部署配置文件存储在客户端设备上的自动更新文件夹中,其中存储于那里的自动更新文件夹和文件和子文件夹被配置为通过写入过滤器。结果,在客户端设备的下一次重启时,客户端设备可以从自动更新文件夹提取部署配置文件,并处理与部署配置文件关联的部署任务。图14A-14C所示的过程和操作可以自动执行而无需人工干预。
图15是显示自动更新文件夹数据结构1501的示意性内容的示意性结构图1500。自动更新文件夹1501,例如存储于配置储存库(例如,服务器104)、其它服务器、或者本地存储于客户端设备的存储器中的自动更新文件夹,包括一个或者多个子文件夹1503。每个子文件夹1503自己存储部署配置文件1505,例如图13A和13B的部署配置文件1301和/或1351。在一些示例中,单个部署配置文件存储于每个子文件夹中,部署配置文件1503与单个驱动或者应用关联,部署配置文件1503因此只包括单个部署记录。然而,在其它示例中,多个部署配置文件可以存储于子文件夹中,每个部署配置文件1503可以包括多个部署记录。可选地,每个子文件夹1503还可以存储一个或者多个安装或者部署文件或者文件包1507,例如用于安装或者部署驱动的建立信息文件、用于安装或者部署应用的安装文件包。通常,客户端设备上的自动更新文件夹(或者子文件夹)不存储安装或者部署文件或者文件包1507,以较少地使用客户端设备上的存储空间,而服务器上的自动更新文件夹(或者子文件夹)存储安装或者部署文件或者文件包1507。当客户端设备上的自动更新文件夹(或者子文件夹)不存储安装或者部署文件或者文件包1507时,安装或者部署文件或者文件包1507是在部署时(例如,图14A的操作1422)从远程存储位置(例如,配置储存库)提取的。
在一个方面,自动更新文件夹可以存在于配置服务器储存库中。自动更新文件夹可以根据设备可用的更新数量包括多个文件夹。在一个示例中,可以有三个更新可用,应用名例如为ATIDriver、Mozilla和VMview。每个文件夹可以包括一组文件,其包括安装器组件和xml文件(即,部署配置文件)。在示例中,Mozilla文件夹可以包括“Firefox-4.0.1.2-en-US.msi”应用安装器,和包含关于Firefox应用的应用更新细节的“Firefox4.0.1.2.xml”xml文件。类似的,VMview文件夹可以包括“VMware-viewclient-5.0.0-459783.exe”安装器建立可执行的,和包含关于VMview客户端应用的更新细节的“VMviewclient-5.0.0-459783.xml”应用更新xml。
通常,自动更新xml(即,用于自动更新的部署配置文件,例如关于图14A-14C所述的那些)可以根据文件夹中组件的类型包含或者仅一个应用标签或者仅一个设备驱动标签。然而,在用于部署的部署配置文件不是更新的一部分(例如,那些关于图10-12C的流程图所述的)的情况下,“DeviceDeploymentConfig.xml”可以根据希望用于精简型客户端的组件部署的不同类型的数量包含多个应用标签和/或设备驱动标签。
在自动更新文件包的情况下,文件包可以在之前段落中所述的文件夹格式(包括包含安装器文件和那个组件对应的xml文件的文件夹)中释放。具有配置服务器的企业用户可以简单地将整个文件夹复制到用户的配置储存库的自动更新文件夹中,以用于安装在企业用户的收客户端设备上的文件夹相关的更新。当更新代理业务在精简型客户端上执行自动更新处理时,已经复制到储存库的新更新文件包将被部署到精简型客户端上。“DeviceDeploymentConfig.xml”配置文件可以或者由厂商提供,或者可以由系统管理者根据系统管理者希望在精简型客户端上部署/更新的组件来准备。
关于图10、11、12A-12C和14A-B所提出的方法可以结合到在客户端设备上更新和部署驱动和应用的单个过程中。图16A显示了用于此目的的示意性流程图。
过程开始于操作1601,通常在客户端设备的启动时开始。特别地,过程可以由更新代理的自动执行在客户端设备启动后来发起。在操作1603,定位或者识别配置储存库,例如根据存储于与更新代理关联的存储器位置中的服务器地址。如果定位了储存库,例如配置储存库服务器104或者另一个合适的储存库,在操作1605执行自动更新过程,例如关于图14A和14B所述的自动更新过程。自动更新过程完成之后,在操作1607执行部署过程以在客户端设备上部署驱动和/或应用。部署过程可以根据关于图10、11和12A-12C所述的部署过程来执行,自动更新过程可以周期性地执行(例如,每10分钟)以检验在配置储存库上是否有任意新的更新可用,如果有,在操作1609和1611执行自动更新。自动更新循环(操作1609和1611)可以无限地持续,或者过程可以在某个时刻结束。图16A所示的过程可以自动执行而无需人工干预。
图16B显示了另一个关于图16A所述过程的示例。图16B的过程可以使用例如运行于客户端设备上的更新代理来实现。更新代理可以是视窗业务,其在网络业务开启之后很快开始,例如基于Windows Embedded Standard7的精简型客户端。更新代理查找配置储存库(例如,服务器104)并检验配置储存库中是否有客户端设备上任意组件(驱动和/或应用)的任意更新。如果找到更新,更新代理下载组件并安装组件。在自动更新过程完成之后,更新代理在配置储存库中查找部署配置文件(例如,“DeviceDeploymentConfig.xml”)。如果找到部署配置文件,那么更新代理将根据部署配置文件中提及的部署类型执行设备驱动部署或者应用部署行为。
关于图16B所述过程的至少一部分可以使用运行于客户端设备上的更新代理应用来执行。更新代理应用可以是视窗业务,其在基于WES 7的精简型客户端中网络业务开启之后很快开始。更新代理查找配置管理者储存库(例如,配置储存库服务器104的储存库),以及在检验自动更新标签有效后,检查是否有客户端设备的驱动、应用、或其它组件的任意更新可用。如果找到更新,更新代理应用下载更新组件并安装组件。在自动更新过程完成之后,将在相同储存库中查找部署配置文件(例如,“DeviceDeploymentConfig.xml”)。如果找到部署配置文件,那么更新代理将根据部署配置文件中提及的部署类型执行设备驱动部署或者应用部署行为。一旦更新代理结束部署配置文件中提及的所有部署任务,更新代理保持每10分钟或者预定义的和可配置的间隔运行自动更新流程。
图16A和16B的流程图可以保证精简型客户端在可配置时间间隔(例如,10分钟)保持更新。通常,设备部署过程可以仅在每次启动时在设备启动过程期间(参见,例如图12A-12C)执行一次。结果,如果在储存库中有关于设备部署文件包或者文件的任意更新,更新只能在设备的下一个启动循环中安装。在自动更新(参见,例如图16A和16B)的情况下,然而,自动更新过程可以每几分钟重复一次。结果,在图16A和16B的自动更新流程图中组件更新可以更及时地安装。
对于所有设备驱动部署任务,更新代理可以利用具有适当功能的驱动管理应用(上面关于图9A-9I所述的)。对于应用部署,更新代理可以使用调用和部署文件包类型(例如,msiexec.exem或sus.exe)导致执行的标准机制,或者更新代理可以使用部署配置文件中提及的可执行的自己(例如,在建立安装器的情况下,更新代理可以调用作为安装器文件包本身的一部分的setup.exe或者另一个合适的“.exe”文件)。
说明技术主题的条款
用于将磁盘镜像安装到具有特定类别的硬件平台的客户端设备上的设 备/方法/机器可读存储介质的说明,其中磁盘镜像包括用于多个硬件平台的 多个驱动(作为条款说明)
说明技术主题,例如根据下面所述的不同方面。技术主题的不同方面示例为了方便作为编号条款(1、10、19等)来说明。这些作为示例来提供,而不是限制技术主题。
1.一种用于将磁盘镜像安装到具有特定类别的硬件平台的客户端设备上的方法,其中所述磁盘镜像包括用于多个硬件平台的多个驱动,所述方法包括:
便于存储,在所述客户端设备的存储器上,所述磁盘镜像(参见,例如图17A的1702-A);
便于根据所述客户端设备的硬件平台和利用具有所述多个硬件平台的所述多个驱动的所述磁盘镜像的驱动存储在所述客户端设备上安装至少一个驱动(参见,例如图17A的1704-A);
便于提取设备驱动配置文件,其中对于所述多个硬件平台的类别,所述设备驱动配置文件标识与各自类别关联的一个或者多个驱动,以及对于由所述多个硬件平台中的两个或者多个共享的一个或者多个通用驱动,标识与所述一个或者多个通用驱动各自分别关联的所述多个硬件平台中的所述两个或者多个(参见,例如图17A的1706-A);
便于识别,根据所述客户端设备的所述硬件平台的所述特定类别,在所述设备驱动配置文件中标识的与所述硬件平台的所述特定类别关联的一个或者多个驱动(参见,例如图17A的1708-A);
便于识别,根据所述客户端设备的所述硬件平台,在所述设备驱动配置文件中标识的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动(参见,例如图17A的1710-A);
便于识别在所述设备驱动配置文件中标识的以及不包括在识别的与所述客户端设备的所述硬件平台的所述特定类别关联的一个或者多个驱动或者识别的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动中的其它驱动(参见,例如图17A的1712-A);以及
便于从所述驱动存储中删除所述识别的其它驱动(参见,例如图17A的1714-A)。
2.根据条款1所述的方法,进一步包括:
便于验证所述识别的与所述客户端设备的所述硬件平台的所述特定类别关联的一个或者多个驱动或者所述识别的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动安装于所述客户端设备上。
3.根据条款1所述的方法,进一步包括:
在所述客户端设备上安装所述至少一个驱动之后,便于验证所述客户端设备上所述至少一个驱动的安装状态;
便于判断,根据所述安装状态的验证,所述客户端设备上特定驱动的安装失败了;
便于在所述客户端设备上重新安装所述特定驱动;
在所述特定驱动的重新安装之后,便于验证所述特定驱动的所述重新安装状态;
便于判断,根据所述重新安装状态的验证,所述客户端设备上所述特定驱动的重新安装失败了;以及
便于报告驱动安装失败。
4.根据条款1所述的方法,进一步包括:
便于对所述客户端设备的客户化应用,根据用户特定的客户化信息;以及
便于根据所述客户端设备的所述硬件平台在所述客户端设备上安装一个或者多个驱动应用。
5.根据条款1所述的方法,进一步包括:
在便于识别一个或者多个驱动和便于识别一个或者多个通用驱动之前,便于识别所述客户端设备的所述硬件平台和识别所述客户端设备的所述硬件平台的所述类别。
6.根据条款1所述的方法,其中所述设备驱动配置文件是可扩展标记语言(XML)文件。
7.根据条款1所述的方法,其中所述设备驱动配置文件是从所述存储的磁盘镜像提取的。
8.根据条款1所述的方法,其中所述磁盘镜像进一步包括多个应用,以及其中在便于存储所述磁盘镜像之前,所述方法包括:
便于在镜像建立设备的存储器上安装所述多个应用,其中所述镜像建立设备包括之前存在的驱动;
便于从所述镜像建立设备卸载所述之前存在的驱动;
便于将所述多个硬件平台的所述多个驱动输入到所述镜像建立设备的存储器的;以及
在所述多个应用的所述安装、所述之前存在的驱动的所述卸载、以及所述多个驱动的所述输入之后,便于根据具有所述多个安装的应用和所述多个输入的驱动的所述镜像建立设备的所述存储器创建所述磁盘镜像。
9.根据条款8所述的方法,其中所述安装所述多个应用包括安装至少一个第三方应用和安装至少一个初始设备制造商(OEM)应用。
10.一种具有编码指令的机器可读存储介质(参见,例如图17B的1700-B),该指令可由一个或者多个处理器执行以完成一个或者多个操作,用于将磁盘镜像安装到具有特定类别的硬件平台的客户端设备上,其中所述磁盘镜像包括用于多个硬件平台的多个驱动,所述一个或者多个操作包括:
便于存储,在所述客户端设备的存储器上,所述磁盘镜像(参见,例如图17B的1702-B);
便于根据所述客户端设备的所述硬件平台和利用具有所述多个硬件平台的所述多个驱动的所述磁盘镜像的驱动存储在所述客户端设备上安装至少一个驱动(参见,例如图17B的1704-B);
便于提取设备驱动配置文件,其中对于所述多个硬件平台的类别,所述设备驱动配置文件标识与各自类别关联的一个或者多个驱动,以及对于由所述多个硬件平台中的两个或者多个共享的一个或者多个通用驱动,标识与所述一个或者多个通用驱动各自分别关联的所述多个硬件平台中的所述两个或者多个(参见,例如图17B的1706-B);
便于识别,根据所述客户端设备的所述硬件平台的所述特定类别,在所述设备驱动配置文件中标识的与所述硬件平台的所述特定类别关联的一个或者多个驱动(参见,例如图17B的1708-B);
便于识别,根据所述客户端设备的所述硬件平台,在所述设备驱动配置文件中标识的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动(参见,例如图17B的1710-B);
便于识别在所述设备驱动配置文件中标识的以及不包括在所述识别的与所述客户端设备的所述硬件平台的所述特定类别关联的一个或者多个驱动或者所述识别的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动中的其它驱动(参见,例如图17B的1712-B);以及
便于从所述驱动存储中删除所述识别的其它驱动(参见,例如图17B的1714-B)。
11.根据条款10所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
便于验证所述识别的与所述客户端设备的所述硬件平台的所述特定类别关联的一个或者多个驱动或者所述识别的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动安装于所述客户端设备上。
12.根据条款10所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
在所述客户端设备上安装所述至少一个驱动之后,便于验证所述客户端设备上所述至少一个驱动的安装状态;
便于判断,根据所述安装状态的验证,所述客户端设备上特定驱动的安装失败了;
便于在所述客户端设备上重新安装所述特定驱动;
在所述特定驱动的重新安装之后,便于验证所述特定驱动的所述重新安装状态;
便于判断,根据所述重新安装状态的验证,所述客户端设备上所述特定驱动的重新安装失败了;以及
便于报告驱动安装失败。
13.根据条款10所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
便于对所述客户端设备的客户化应用,根据用户特定的客户化信息;以及
便于根据所述客户端设备的所述硬件平台在所述客户端设备上安装一个或者多个驱动应用。
14.根据条款10所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
在便于识别一个或者多个驱动和便于识别一个或者多个通用驱动之前,便于识别所述客户端设备的所述硬件平台和识别所述客户端设备的所述硬件平台的所述类别。
15.根据条款10所述的机器可读存储介质,其中所述设备驱动配置文件是可扩展标记语言(XML)文件。
16.根据条款10所述的机器可读存储介质,其中所述设备驱动配置文件是从所述存储的磁盘镜像提取的。
17.根据条款10所述的机器可读存储介质,其中所述磁盘镜像进一步包括多个应用,以及其中在便于存储所述磁盘镜像之前,所述一个或者多个操作进一步包括:
便于在镜像建立设备的存储器上安装所述多个应用,其中所述镜像建立设备包括之前存在的驱动;
便于从所述镜像建立设备卸载所述之前存在的驱动;
便于将所述多个硬件平台的所述多个驱动输入到所述镜像建立设备的存储器的;以及
在所述多个应用的所述安装、所述之前存在的驱动的所述卸载、以及所述多个驱动的所述输入之后,便于根据具有所述多个安装的应用和所述多个输入的驱动的所述镜像建立设备的所述存储器创建所述磁盘镜像。
18.根据条款17所述的机器可读存储介质,其中所述安装所述多个应用包括安装至少一个第三方应用和安装至少一个初始设备制造商(OEM)应用。
19.一种硬件设备(参见,例如图17C的1700-C),用于将磁盘镜像安装到具有特定类别的硬件平台的客户端设备上,其中所述磁盘镜像包括用于多个硬件平台的多个驱动,所述设备包括:
一个或者多个模块,被配置用于执行一个或者多个操作,包括:
便于存储,在所述客户端设备的存储器上,所述磁盘镜像(参见,例如图17C的1702-C);
便于根据所述客户端设备的所述硬件平台和利用具有所述多个硬件平台的所述多个驱动的所述磁盘镜像的驱动存储在所述客户端设备上安装至少一个驱动(参见,例如图17C的1704-C);
便于提取设备驱动配置文件,其中对于所述多个硬件平台的类别,所述设备驱动配置文件标识与各自类别关联的一个或者多个驱动,以及对于由所述多个硬件平台中的两个或者多个共享的一个或者多个通用驱动,标识与所述一个或者多个通用驱动各自分别关联的所述多个硬件平台中的所述两个或者多个(参见,例如图17C的1706-C);
便于识别,根据所述客户端设备的所述硬件平台的所述特定类别,在所述设备驱动配置文件中标识的与所述硬件平台的所述特定类别关联的一个或者多个驱动(参见,例如图17C的1708-C);
便于识别,根据所述客户端设备的所述硬件平台,在所述设备驱动配置文件中标识的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动(参见,例如图17C的1710-C);
便于识别在所述设备驱动配置文件中标识的以及不包括在所述识别的与所述客户端设备的所述硬件平台的所述特定类别关联的一个或者多个驱动或者所述识别的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动中的其它驱动(参见,例如图17C的1712-C);以及
便于从所述驱动存储中删除所述识别的其它驱动(参见,例如图17C的1714-C)。
20.根据条款19所述的硬件设备,其中所述一个或者多个操作进一步包括:
便于验证所述识别的与所述客户端设备的所述硬件平台的所述特定类别关联的一个或者多个驱动或者所述识别的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动安装于所述客户端设备上。
21.根据条款19所述的硬件设备,其中所述一个或者多个操作进一步包括:
在所述客户端设备上安装所述至少一个驱动之后,便于验证所述客户端设备上所述至少一个驱动的安装状态;
便于判断,根据所述安装状态的验证,所述客户端设备上特定驱动的安装失败了;
便于在所述客户端设备上重新安装所述特定驱动;
在所述特定驱动的重新安装之后,便于验证所述特定驱动的所述重新安装状态;
便于判断,根据所述重新安装状态的验证,所述客户端设备上所述特定驱动的重新安装失败了;以及
便于报告驱动安装失败。
22.根据条款19所述的硬件设备,其中所述一个或者多个操作进一步包括:
便于对所述客户端设备的客户化应用,根据用户特定的客户化信息;以及
便于根据所述客户端设备的所述硬件平台在所述客户端设备上安装一个或者多个驱动应用。
23.根据条款19所述的硬件设备,其中所述一个或者多个操作进一步包括:
在便于识别一个或者多个驱动和便于识别一个或者多个通用驱动之前,便于识别所述客户端设备的所述硬件平台和识别所述客户端设备的所述硬件平台的所述类别。
24.根据条款19所述的硬件设备,其中所述设备驱动配置文件是可扩展标记语言(XML)文件。
25.根据条款19所述的硬件设备,其中所述设备驱动配置文件是从所述存储的磁盘镜像提取的。
26.根据条款19所述的硬件设备,其中所述磁盘镜像进一步包括多个应用,以及其中在便于存储所述磁盘镜像之前,所述一个或者多个操作进一步包括:
便于在镜像建立设备的存储器上安装所述多个应用,其中所述镜像建立设备包括之前存在的驱动;
便于从所述镜像建立设备卸载所述之前存在的驱动;
便于将所述多个硬件平台的所述多个驱动输入到所述镜像建立设备的存储器的;以及
在所述多个应用的所述安装、所述之前存在的驱动的所述卸载、以及所述多个驱动的所述输入之后,便于根据具有所述多个安装的应用和所述多个输入的驱动的所述镜像建立设备的所述存储器创建所述磁盘镜像。
27.根据条款26所述的硬件设备,其中所述安装所述多个应用包括安装至少一个第三方应用和安装至少一个初始设备制造商(OEM)应用。
28.一种设备(参见,例如图17C的1700-C),用于将磁盘镜像安装到具有特定类别的硬件平台的客户端设备上,其中所述磁盘镜像包括用于多个硬件平台的多个驱动,所述设备包括:
装置用于便于存储,在所述客户端设备的存储器上,所述磁盘镜像(参见,例如图17C的1702-C);
装置用于便于根据所述客户端设备的所述硬件平台和利用具有所述多个硬件平台的所述多个驱动的所述磁盘镜像的驱动存储在所述客户端设备上安装至少一个驱动(参见,例如图17C的1704-C);
装置用于便于提取设备驱动配置文件,其中对于所述多个硬件平台的类别,所述设备驱动配置文件标识与各自类别关联的一个或者多个驱动,以及对于由所述多个硬件平台中的两个或者多个共享的一个或者多个通用驱动,标识与所述一个或者多个通用驱动各自分别关联的所述多个硬件平台中的所述两个或者多个(参见,例如图17C的1706-C);
装置用于便于识别,根据所述客户端设备的所述硬件平台的所述特定类别,在所述设备驱动配置文件中标识的与所述硬件平台的所述特定类别关联的一个或者多个驱动(参见,例如图17C的1708-C);
装置用于便于识别,根据所述客户端设备的所述硬件平台,在所述设备驱动配置文件中标识的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动(参见,例如图17C的1710-C);
装置用于便于识别在所述设备驱动配置文件中标识的以及不包括在所述识别的与所述客户端设备的所述硬件平台的所述特定类别关联的一个或者多个驱动或者所述识别的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动中的其它驱动(参见,例如图17C的1712-C);以及
装置用于便于从所述驱动存储中删除所述识别的其它驱动(参见,例如图17C的1714-C)。
29.根据条款28所述的设备,进一步包括:
装置用于便于验证所述识别的与所述客户端设备的所述硬件平台的所述特定类别关联的一个或者多个驱动或者所述识别的与所述客户端设备的所述硬件平台关联的一个或者多个通用驱动安装于所述客户端设备上。
30.根据条款28所述的设备,进一步包括:
装置用于在所述客户端设备上安装所述至少一个驱动之后,便于验证所述客户端设备上所述至少一个驱动的安装状态;
装置用于便于判断,根据所述安装状态的验证,所述客户端设备上特定驱动的安装失败了;
装置用于便于在所述客户端设备上重新安装所述特定驱动;
装置用于在所述特定驱动的重新安装之后,便于验证所述特定驱动的所述重新安装状态;
装置用于便于判断,根据所述重新安装状态的验证,所述客户端设备上所述特定驱动的重新安装失败了;以及
装置用于便于报告驱动安装失败。
31.根据条款28所述的设备,进一步包括:
装置用于便于对所述客户端设备的客户化应用,根据用户特定的客户化信息;以及
装置用于便于根据所述客户端设备的所述硬件平台在所述客户端设备上安装一个或者多个驱动应用。
32.根据条款28所述的设备,进一步包括:
装置用于在便于识别一个或者多个驱动和便于识别一个或者多个通用驱动之前,便于识别所述客户端设备的所述硬件平台和识别所述客户端设备的所述硬件平台的所述类别。
33.根据条款28所述的设备,其中所述设备驱动配置文件是可扩展标记语言(XML)文件。
34.根据条款28所述的设备,其中所述设备驱动配置文件是从所述存储的磁盘镜像提取的。
35.根据条款28所述的设备,其中所述磁盘镜像进一步包括多个应用,以及其中在便于存储所述磁盘镜像之前,其中所述设备进一步包括:
装置用于,在便于存储所述磁盘镜像之前,便于在镜像建立设备的存储器上安装所述多个应用,其中所述镜像建立设备包括之前存在的驱动;
装置用于便于从所述镜像建立设备卸载所述之前存在的驱动;
装置用于便于将所述多个硬件平台的所述多个驱动输入到所述镜像建立设备的存储器的;以及
装置用于在所述多个应用的所述安装、所述之前存在的驱动的所述卸载、以及所述多个驱动的所述输入之后,便于根据具有所述多个安装的应用和所述多个输入的驱动的所述镜像建立设备的所述存储器创建所述磁盘镜像。
36.根据条款35所述的设备,其中所述安装所述多个应用包括安装至少一个第三方应用和安装至少一个初始设备制造商(OEM)应用。
用于将驱动或者应用部署到具有写入过滤器的客户端设备上的设备/方 法/机器可读存储介质的说明(作为条款说明)
说明技术主题,例如根据下面所述的不同方面。技术主题的不同方面示例为了方便作为编号条款(37、48、59等)来说明。这些作为示例来提供,而不是限制技术主题。
37.一种方法(参见,例如图18A的1800-A),用于将驱动或者应用部署到具有写入过滤器的客户端设备上,所述方法包括:
便于获得部署配置文件,其中所述部署配置文件包括多个部署记录,每一个具有用于部署驱动和应用中的一个的信息(参见,例如图18A的1802-A);
从所述部署配置文件提取第一个部署记录(参见,例如图18A的1804-A);
修改所述部署配置文件以从所述部署配置文件中删除所述第一个部署记录(参见,例如图18A的1806-A);
便于将所述修改的部署配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图18A的1808-A);以及
便于在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个同时所述写入过滤器停用(参见,例如图18A的1810-A)。
38.根据条款37所述的方法,其中在便于存储所述修改的部署配置文件之前,所述方法包括:
便于将所述部署配置文件存储在所述客户端设备的存储器中免除所述写入过滤器限制的位置;
便于停用所述客户端设备上的所述写入过滤器;以及
在停用所述写入过滤器之后,便于重启所述客户端设备。
39.根据条款38所述的方法,其中在所述重启所述客户端设备之后,所述方法包括:
便于判断修改的部署配置文件是否存储在所述客户端设备的所述存储器中;
一旦判断出没有修改的部署配置文件是否存储在所述客户端设备的所述存储器中,便于判断部署配置文件是否存储在所述客户端设备的所述存储器中;以及
一旦判断出所述部署配置文件存储在所述客户端设备的存储器中,便于从所述客户端设备的所述存储器中提取所述部署配置文件。
40.根据条款38所述的方法,其中在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个之后,所述方法包括:
便于在所述客户端设备上启用所述写入过滤器;以及
在所述启用所述写入过滤器之后,便于重启所述客户端设备。
41.根据条款37所述的方法,其中在所述客户端设备上部署所述驱动和应用中的所述一个之后,所述方法包括:
便于将所述修改的部署配置文件存储为所述客户端设备的所述存储器中的部署配置文件,以使得所述存储的部署配置文件包括所述多个部署记录中除了所述第一个部署记录之外的所有部署记录;
在将所述修改的部署配置文件存储为部署配置文件之后,便于将所述客户端设备的所述存储器中的所述修改的部署配置文件存储为包括所述多个部署记录中除了所述第一个部署记录和第二个部署记录之外的所有部署记录的配置文件;以及
便于在所述客户端设备上部署所述第二个部署记录的所述驱动和应用中的所述一个同时所述写入过滤器停用。
42.根据条款37所述的方法,其中在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个包括:
确定所述第一个部署记录中标识的一个或者多个支持的平台;
判断与所述客户端设备关联的硬件平台是否包括在所述第一个部署记录中标识的所述一个或者多个支持的平台中;
确定所述第一个部署记录中标识的存储空间量;
判断所述客户端设备上所述存储器中可用的存储空间量是否大于所述第一个部署记录中标识的所述存储空间量;
确定所述第一个部署记录的所述驱动和应用中的所述一个的版本;
判断所述驱动和应用中的所述一个的版本是否已经安装于所述客户端设备上;
如果所述第一个部署记录具有用于部署驱动的信息,如果安装于所述客户端设备上版本低于所述第一个部署记录中标识的的所述版本,就卸载安装于所述客户端设备上的所述驱动的所述版本;
提取所述第一个部署记录中包括的参数值列表;以及
便于使用从所述第一个部署记录提取的所述参数值列表在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个。
43.根据条款42所述的方法,其中所述第一个部署记录的所述驱动和应用中的所述一个是应用,所述方法进一步包括:
便于判断所述部署配置文件是否对应于新部署;以及
从所述第一个部署记录提取用于所述应用的所述部署的安装文件包类型的标识符,
其中所述便于部署所述驱动和应用中的所述一个包括便于使用从所述第一个部署记录的所述参数值列表和所述安装文件包类型的所述标识符在客户端设备上部署所述应用。
44.根据条款37所述的方法,其中所述便于获得部署配置文件包括:
便于判断部署配置文件是否存在于配置存储库服务器中;
从所述配置存储库服务器提取所述部署配置文件,一旦判断出所述部署配置文件存在于配置存储库服务器中;以及
将所述提取的部署配置文件存储于所述客户端设备的所述存储器中。
45.根据条款44所述的方法,进一步包括:
一旦将所述接收的部署配置文件存储于所述客户端设备的所述存储器中,便于将所述接收的部署配置文件复制到所述客户端设备的所述存储器中的存档文件中;
在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个之后,将存档文件重命名为所述客户端设备的所述存储器中的最后成功部署文件。
46.根据条款37所述的方法,进一步包括:
便于判断所述部署配置文件是否对应于新部署;以及
如果判断出所述部署配置文件对应于新部署,便于将所述部署配置文件存储在所述客户端设备的所述存储器中免除所述写入过滤器限制的位置。
47.根据条款37所述的方法,其中所述部署配置文件是可扩展标记语言(XML)配置文件。
48.一种具有编码指令的机器可读存储介质(参见,例如图18B的1800-B),该指令可由一个或者多个处理器执行以完成一个或者多个操作,用于将驱动或者应用部署到具有写入过滤器的客户端设备上,所述一个或者多个操作包括:
便于获得部署配置文件,其中所述部署配置文件包括多个部署记录,每一个具有用于部署驱动和应用中的一个的信息(参见,例如图18B的1802-B);
从所述部署配置文件提取第一个部署记录(参见,例如图18B的1804-B);
修改所述部署配置文件以从所述部署配置文件中删除所述第一个部署记录(参见,例如图18B的1806-B);
便于将所述修改的部署配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图18B的1808-B);以及
便于在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个同时所述写入过滤器停用(参见,例如图18B的1810-B)。
49.根据条款48所述的机器可读存储介质,其中在便于存储所述修改的部署配置文件之前,所述一个或者多个操作进一步包括:
便于将所述部署配置文件存储在所述客户端设备的存储器中免除所述写入过滤器限制的位置;
便于停用所述客户端设备上的所述写入过滤器;以及
在停用所述写入过滤器之后,便于重启所述客户端设备。
50.根据条款49所述的机器可读存储介质,其中在所述重启所述客户端设备之后,所述一个或者多个操作进一步包括:
便于判断修改的部署配置文件是否存储在所述客户端设备的所述存储器中;
一旦判断出没有修改的部署配置文件是否存储在所述客户端设备的所述存储器中,便于判断部署配置文件是否存储在所述客户端设备的所述存储器中;以及
一旦判断出所述部署配置文件存储在所述客户端设备的存储器中,便于从所述客户端设备的所述存储器中提取所述部署配置文件。
51.根据条款49所述的机器可读存储介质,其中在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个之后,所述一个或者多个操作进一步包括:
便于在所述客户端设备上启用所述写入过滤器;以及
在所述启用所述写入过滤器之后,便于重启所述客户端设备。
52.根据条款48所述的机器可读存储介质,其中在所述客户端设备上部署所述驱动和应用中的所述一个之后,所述一个或者多个操作进一步包括:
便于将所述修改的部署配置文件存储为所述客户端设备的所述存储器中的部署配置文件,以使得所述存储的部署配置文件包括所述多个部署记录中除了所述第一个部署记录之外的所有部署记录;
在将所述修改的部署配置文件存储为部署配置文件之后,便于将所述客户端设备的所述存储器中的所述修改的部署配置文件存储为包括所述多个部署记录中除了所述第一个部署记录和第二个部署记录之外的所有部署记录的配置文件;以及
便于在所述客户端设备上部署所述第二个部署记录的所述驱动和应用中的所述一个同时所述写入过滤器停用。
53.根据条款48所述的机器可读存储介质,其中在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个包括:
确定所述第一个部署记录中标识的一个或者多个支持的平台;
判断与所述客户端设备关联的硬件平台是否包括在所述第一个部署记录中标识的所述一个或者多个支持的平台中;
确定所述第一个部署记录中标识的存储空间量;
判断所述客户端设备上所述存储器中可用的存储空间量是否大于所述第一个部署记录中标识的所述存储空间量;
确定所述第一个部署记录的所述驱动和应用中的所述一个的版本;
判断所述驱动和应用中的所述一个的版本是否已经安装于所述客户端设备上;
如果所述第一个部署记录具有用于部署驱动的信息,如果安装于所述客户端设备上版本低于所述第一个部署记录中标识的的所述版本,就卸载安装于所述客户端设备上的所述驱动的所述版本;
提取所述第一个部署记录中包括的参数值列表;以及
便于使用从所述第一个部署记录提取的所述参数值列表在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个。
54.根据条款53所述的机器可读存储介质,其中所述第一个部署记录的所述驱动和应用中的所述一个是应用,以及其中所述一个或者多个操作进一步包括:
便于判断所述部署配置文件是否对应于新部署;以及
从所述第一个部署记录提取用于所述应用的所述部署的安装文件包类型的标识符,
其中所述便于部署所述驱动和应用中的所述一个包括便于使用从所述第一个部署记录的所述参数值列表和所述安装文件包类型的所述标识符在客户端设备上部署所述应用。
55.根据条款48所述的机器可读存储介质,其中所述便于获得部署配置文件包括:
便于判断部署配置文件是否存在于配置存储库服务器中;
从所述配置存储库服务器提取所述部署配置文件,一旦判断出所述部署配置文件存在于配置存储库服务器中;以及
将所述提取的部署配置文件存储于所述客户端设备的所述存储器中。
56.根据条款55所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
一旦将所述接收的部署配置文件存储于所述客户端设备的所述存储器中,便于将所述接收的部署配置文件复制到所述客户端设备的所述存储器中的存档文件中;
在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个之后,将存档文件重命名为所述客户端设备的所述存储器中的最后成功部署文件。
57.根据条款48所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
便于判断所述部署配置文件是否对应于新部署;以及
如果判断出所述部署配置文件对应于新部署,便于将所述部署配置文件存储在所述客户端设备的所述存储器中免除所述写入过滤器限制的位置。
58.根据条款48所述的机器可读存储介质,其中所述部署配置文件是可扩展标记语言(XML)配置文件。
59.一种硬件设备(参见,例如图18C的1800-C),用于将驱动或者应用部署到具有写入过滤器的客户端设备上,所述硬件设备包括:
一个或者多个模块,被配置用于执行一个或者多个操作,包括:
便于获得部署配置文件,其中所述部署配置文件包括多个部署记录,每一个具有用于部署驱动和应用中的一个的信息(参见,例如图18C的1802-C);
从所述部署配置文件提取第一个部署记录(参见,例如图18C的1804-C);
修改所述部署配置文件以从所述部署配置文件中删除所述第一个部署记录(参见,例如图18C的1806-C);
便于将所述修改的部署配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图18C的1808-C);以及
便于在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个同时所述写入过滤器停用(参见,例如图18C的1810-C)。
60.根据条款59所述的硬件设备,其中在便于存储所述修改的部署配置文件之前,所述一个或者多个操作进一步包括:
便于将所述部署配置文件存储在所述客户端设备的存储器中免除所述写入过滤器限制的位置;
便于停用所述客户端设备上的所述写入过滤器;以及
在停用所述写入过滤器之后,便于重启所述客户端设备。
61.根据条款60所述的硬件设备,其中在所述重启所述客户端设备之后,所述一个或者多个操作进一步包括:
便于判断修改的部署配置文件是否存储在所述客户端设备的所述存储器中;
一旦判断出没有修改的部署配置文件是否存储在所述客户端设备的所述存储器中,便于判断部署配置文件是否存储在所述客户端设备的所述存储器中;以及
一旦判断出所述部署配置文件存储在所述客户端设备的存储器中,便于从所述客户端设备的所述存储器中提取所述部署配置文件。
62.根据条款60所述的硬件设备,其中在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个之后,所述一个或者多个操作进一步包括:
便于在所述客户端设备上启用所述写入过滤器;以及
在所述启用所述写入过滤器之后,便于重启所述客户端设备。
63.根据条款59所述的硬件设备,其中在所述客户端设备上部署所述驱动和应用中的所述一个之后,所述一个或者多个操作进一步包括:
便于将所述修改的部署配置文件存储为所述客户端设备的所述存储器中的部署配置文件,以使得所述存储的部署配置文件包括所述多个部署记录中除了所述第一个部署记录之外的所有部署记录;
在将所述修改的部署配置文件存储为部署配置文件之后,便于将所述客户端设备的所述存储器中的所述修改的部署配置文件存储为包括所述多个部署记录中除了所述第一个部署记录和第二个部署记录之外的所有部署记录的配置文件;以及
便于在所述客户端设备上部署所述第二个部署记录的所述驱动和应用中的所述一个同时所述写入过滤器停用。
64.根据条款59所述的硬件设备,其中在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个包括:
确定所述第一个部署记录中标识的一个或者多个支持的平台;
判断与所述客户端设备关联的硬件平台是否包括在所述第一个部署记录中标识的所述一个或者多个支持的平台中;
确定所述第一个部署记录中标识的存储空间量;
判断所述客户端设备上所述存储器中可用的存储空间量是否大于所述第一个部署记录中标识的所述存储空间量;
确定所述第一个部署记录的所述驱动和应用中的所述一个的版本;
判断所述驱动和应用中的所述一个的版本是否已经安装于所述客户端设备上;
如果所述第一个部署记录具有用于部署驱动的信息,如果安装于所述客户端设备上版本低于所述第一个部署记录中标识的的所述版本,就卸载安装于所述客户端设备上的所述驱动的所述版本;
提取所述第一个部署记录中包括的参数值列表;以及
便于使用从所述第一个部署记录提取的所述参数值列表在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个。
65.根据条款64所述的硬件设备,其中所述第一个部署记录的所述驱动和应用中的所述一个是应用,以及其中所述一个或者多个操作进一步包括:
便于判断所述部署配置文件是否对应于新部署;以及
从所述第一个部署记录提取用于所述应用的所述部署的安装文件包类型的标识符,
其中所述便于部署所述驱动和应用中的所述一个包括便于使用从所述第一个部署记录的所述参数值列表和所述安装文件包类型的所述标识符在客户端设备上部署所述应用。
66.根据条款59所述的硬件设备,其中所述便于获得部署配置文件包括:
便于判断部署配置文件是否存在于配置存储库服务器中;
从所述配置存储库服务器提取所述部署配置文件,一旦判断出所述部署配置文件存在于配置存储库服务器中;以及
将所述提取的部署配置文件存储于所述客户端设备的所述存储器中。
67.根据条款66所述的硬件设备,其中所述一个或者多个操作进一步包括:
一旦将所述接收的部署配置文件存储于所述客户端设备的所述存储器中,便于将所述接收的部署配置文件复制到所述客户端设备的所述存储器中的存档文件中;
在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个之后,将存档文件重命名为所述客户端设备的所述存储器中的最后成功部署文件。
68.根据条款59所述的硬件设备,其中所述一个或者多个操作进一步包括:
便于判断所述部署配置文件是否对应于新部署;以及
如果判断出所述部署配置文件对应于新部署,便于将所述部署配置文件存储在所述客户端设备的所述存储器中免除所述写入过滤器限制的位置。
69.根据条款59所述的硬件设备,其中所述部署配置文件是可扩展标记语言(XML)配置文件。
70.一种设备(参见,例如图18C的1800-C),用于将驱动或者应用部署到具有写入过滤器的客户端设备上,所述设备包括:
装置用于便于获得部署配置文件,其中所述部署配置文件包括多个部署记录,每一个具有用于部署驱动和应用中的一个的信息(参见,例如图18C的1802-C);
装置用于从所述部署配置文件提取第一个部署记录(参见,例如图18C的1804-C);
装置用于修改所述部署配置文件以从所述部署配置文件中删除所述第一个部署记录(参见,例如图18C的1806-C);
装置用于便于将所述修改的部署配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图18C的1808-C);以及
装置用于便于在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个同时所述写入过滤器停用(参见,例如图18C的1810-C)。
71.根据条款70所述的设备,进一步包括:
装置用于,在便于存储所述修改的部署配置文件之前,便于将所述部署配置文件存储在所述客户端设备的存储器中免除所述写入过滤器限制的位置;
装置用于便于停用所述客户端设备上的所述写入过滤器;以及
装置用于在停用所述写入过滤器之后,便于重启所述客户端设备。
72.根据条款71所述的设备,进一步包括:
装置用于,在所述客户端设备的所述重启之后,便于判断修改的部署配置文件是否存储在所述客户端设备的所述存储器中;
装置用于一旦判断出没有修改的部署配置文件是否存储在所述客户端设备的所述存储器中,便于判断部署配置文件是否存储在所述客户端设备的所述存储器中;以及
装置用于一旦判断出所述部署配置文件存储在所述客户端设备的存储器中,便于从所述客户端设备的所述存储器中提取所述部署配置文件。
73.根据条款71所述的设备,进一步包括:
装置用于,在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个之后,便于在所述客户端设备上启用所述写入过滤器;以及
装置用于在所述启用所述写入过滤器之后,便于重启所述客户端设备。
74.根据条款70所述的设备,进一步包括:
装置用于,在所述客户端设备上部署所述驱动和应用中的所述一个之后,便于将所述修改的部署配置文件存储为所述客户端设备的所述存储器中的部署配置文件,以使得所述存储的部署配置文件包括所述多个部署记录中除了所述第一个部署记录之外的所有部署记录;
装置用于在将所述修改的部署配置文件存储为部署配置文件之后,便于将所述客户端设备的所述存储器中的所述修改的部署配置文件存储为包括所述多个部署记录中除了所述第一个部署记录和第二个部署记录之外的所有部署记录的配置文件;以及
装置用于便于在所述客户端设备上部署所述第二个部署记录的所述驱动和应用中的所述一个同时所述写入过滤器停用。
75.根据条款70所述的设备,其中在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个包括:
装置用于确定所述第一个部署记录中标识的一个或者多个支持的平台;
装置用于判断与所述客户端设备关联的硬件平台是否包括在所述第一个部署记录中标识的所述一个或者多个支持的平台中;
装置用于确定所述第一个部署记录中标识的存储空间量;
装置用于判断所述客户端设备上所述存储器中可用的存储空间量是否大于所述第一个部署记录中标识的所述存储空间量;
装置用于确定所述第一个部署记录的所述驱动和应用中的所述一个的版本;
装置用于判断所述驱动和应用中的所述一个的版本是否已经安装于所述客户端设备上;
装置用于如果所述第一个部署记录具有用于部署驱动的信息,如果安装于所述客户端设备上版本低于所述第一个部署记录中标识的的所述版本,就卸载安装于所述客户端设备上的所述驱动的所述版本;
装置用于提取所述第一个部署记录中包括的参数值列表;以及
装置用于便于使用从所述第一个部署记录提取的所述参数值列表在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个。
76.根据条款75所述的设备,其中所述第一个部署记录的所述驱动和应用中的所述一个是应用,以及其中所述设备进一步包括:
装置用于便于判断所述部署配置文件是否对应于新部署;以及
装置用于从所述第一个部署记录提取用于所述应用的所述部署的安装文件包类型的标识符,
其中所述装置用于便于部署所述驱动和应用中的所述一个包括装置用于便于使用从所述第一个部署记录的所述参数值列表和所述安装文件包类型的所述标识符在客户端设备上部署所述应用。
77.根据条款70所述的设备,其中所述装置用于便于获得部署配置文件包括:
装置用于便于判断部署配置文件是否存在于配置存储库服务器中;
装置用于从所述配置存储库服务器提取所述部署配置文件,一旦判断出所述部署配置文件存在于配置存储库服务器中;以及
装置用于将所述提取的部署配置文件存储于所述客户端设备的所述存储器中。
78.根据条款77所述的设备,进一步包括:
装置用于一旦将所述接收的部署配置文件存储于所述客户端设备的所述存储器中,便于将所述接收的部署配置文件复制到所述客户端设备的所述存储器中的存档文件中;
装置用于在所述客户端设备上部署所述第一个部署记录的所述驱动和应用中的所述一个之后,将存档文件重命名为所述客户端设备的所述存储器中的最后成功部署文件。
79.根据条款70所述的设备,进一步包括:
装置用于便于判断所述部署配置文件是否对应于新部署;以及
装置用于如果判断出所述部署配置文件对应于新部署,便于将所述部署配置文件存储在所述客户端设备的所述存储器中免除所述写入过滤器限制的位置。
80.根据条款70所述的设备,其中所述部署配置文件是可扩展标记语言(XML)配置文件。
用于将驱动或者应用部署和更新到使用XML配置文件的客户端设备上 的设备/方法/机器可读存储介质的说明(作为条款说明)
说明技术主题,例如根据下面所述的不同方面。技术主题的不同方面示例为了方便作为编号条款(81、87、93等)来说明。这些作为示例来提供,而不是限制技术主题。
81.一种方法(参见,例如图19A的1900-A),用于将应用和驱动部署和更新到具有写入过滤器的客户端设备上,所述方法包括:
便于获得第一部署可扩展标记语言(XML)配置文件用于在所述客户端设备上部署第一个应用或者驱动,从具有用于在客户端设备上部署应用和驱动的部署XML配置文件和用于在客户端设备上更新应用和驱动的部署XML配置文件的配置储存库(参见,例如图19A的1902-A);
便于根据所述第一个部署XML配置文件在所述客户端设备上自动部署所述第一个应用或驱动,同时停用所述写入过滤器,其中启用所述写入过滤器以阻止存储于所述客户端设备上具有所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图19A的1904-A);
在所述自动部署之后,便于自动更新(参见,例如图19A的1906-A),包括:
判断自动更新是否有效(参见,例如图19A的1908-A);
便于从配置储存库获取第二部署XML配置文件用于在所述客户端设备上更新所述第一应用或驱动(参见,例如图19A的1910-A);以及
根据所述第二部署XML配置文件在所述客户端设备上更新所述第一应用或驱动,同时停用所述写入过滤器(参见,例如图19A的1912-A);以及
重复所述便于自动更新(参见,例如图19A的1914-A)。
82.根据条款81所述的方法,其中在获得第一部署XML配置文件和在所述客户端设备上自动部署所述第一个应用或者驱动之前,所述方法包括:
便于从所述配置储存库获得第三部署XML配置文件用于在所述客户端设备上更新第三个应用或者驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述第三应用或驱动,同时停用所述写入过滤器。
83.根据条款81所述的方法,其中所述判断自动更新是否有效包括:
便于建立到所述配置储存库的连接,以判断所述配置储存库是否存储了用于更新应用或者驱动的部署XML配置文件;以及
一旦确定了所述配置服务器存储了部署XML配置文件,便于从所述配置储存库接收所述部署XML配置文件。
84.根据条款81所述的方法,其中所述重复所述便于自动更新包括:
判断自动更新是否有效;
便于从所述配置储存库获取第三部署XML配置文件用于在所述客户端设备上更新应用或驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述应用或驱动,同时停用所述写入过滤器。
85.根据条款81所述的方法,进一步包括:
便于将所述第一部署XML配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,
其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续。
86.根据条款81所述的方法,进一步包括:
在所述客户端设备上根据所述第二部署XML配置文件更新所述第一应用或驱动之后,从所述客户端设备的存储器上删除所述第二部署XML配置文件。
87.一种具有编码指令的机器可读存储介质(参见,例如图19B的1900-B),该指令可由一个或者多个处理器执行以完成一个或者多个操作,用于将应用和驱动部署和更新到具有写入过滤器的客户端设备上,所述一个或者多个操作包括:
便于获得第一部署可扩展标记语言(XML)配置文件用于在所述客户端设备上部署第一个应用或者驱动,从具有用于在客户端设备上部署应用和驱动的部署XML配置文件和用于在客户端设备上更新应用和驱动的部署XML配置文件的配置储存库(参见,例如图19B的1902-B);
便于根据所述第一个部署XML配置文件在所述客户端设备上自动部署所述第一个应用或驱动,同时停用所述写入过滤器,其中启用所述写入过滤器以阻止存储于所述客户端设备上具有所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图19B的1904-B);
在所述自动部署之后,便于自动更新(参见,例如图19B的1906-B),包括:
判断自动更新是否有效(参见,例如图19B的1908-B);
便于从配置储存库获取第二部署XML配置文件用于在所述客户端设备上更新所述第一应用或驱动(参见,例如图19B的1910-B);以及
根据所述第二部署XML配置文件在所述客户端设备上更新所述第一应用或驱动,同时停用所述写入过滤器(参见,例如图19B的1912-B);以及
重复所述便于自动更新(参见,例如图19B的1914-B)。
88.根据条款87所述的机器可读存储介质,其中在获得第一部署XML配置文件和在所述客户端设备上自动部署所述第一个应用或者驱动之前,所述一个或者多个操作进一步包括:
便于从所述配置储存库获得第三部署XML配置文件用于在所述客户端设备上更新第三个应用或者驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述第三应用或驱动,同时停用所述写入过滤器。
89.根据条款87所述的机器可读存储介质,其中所述判断自动更新是否有效包括:
便于建立到所述配置储存库的连接,以判断所述配置储存库是否存储了用于更新应用或者驱动的部署XML配置文件;以及
一旦确定了所述配置服务器存储了部署XML配置文件,便于从所述配置储存库接收所述部署XML配置文件。
90.根据条款87所述的机器可读存储介质,其中所述重复所述便于自动更新包括:
判断自动更新是否有效;
便于从所述配置储存库获取第三部署XML配置文件用于在所述客户端设备上更新应用或驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述应用或驱动,同时停用所述写入过滤器。
91.根据条款87所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
便于将所述第一部署XML配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,
其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续。
92.根据条款87所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
在所述客户端设备上根据所述第二部署XML配置文件更新所述第一应用或驱动之后,从所述客户端设备的存储器上删除所述第二部署XML配置文件。
93.一种硬件设备(参见,例如图19C的1900-C),用于将应用和驱动部署和更新到具有写入过滤器的客户端设备上,所述硬件设备包括:
一个或者多个模块,被配置用于执行一个或者多个操作,包括:
便于获得第一部署可扩展标记语言(XML)配置文件用于在所述客户端设备上部署第一个应用或者驱动,从具有用于在客户端设备上部署应用和驱动的部署XML配置文件和用于在客户端设备上更新应用和驱动的部署XML配置文件的配置储存库(参见,例如图19C的1902-C);
便于根据所述第一个部署XML配置文件在所述客户端设备上自动部署所述第一个应用或驱动,同时停用所述写入过滤器,其中启用所述写入过滤器以阻止存储于所述客户端设备上具有所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图19C的1904-C);
在所述自动部署之后,便于自动更新(参见,例如图19C的1906-C),包括:
判断自动更新是否有效(参见,例如图19C的1908-C);
便于从配置储存库获取第二部署XML配置文件用于在所述客户端设备上更新所述第一应用或驱动(参见,例如图19C的1910-C);以及
根据所述第二部署XML配置文件在所述客户端设备上更新所述第一应用或驱动,同时停用所述写入过滤器(参见,例如图19C的1912-C);以及
重复所述便于自动更新(参见,例如图19C的1914-C)。
94.根据条款93所述的硬件设备,其中在获得第一部署XML配置文件和在所述客户端设备上自动部署所述第一个应用或者驱动之前,所述一个或者多个操作进一步包括:
便于从所述配置储存库获得第三部署XML配置文件用于在所述客户端设备上更新第三个应用或者驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述第三应用或驱动,同时停用所述写入过滤器。
95.根据条款93所述的硬件设备,其中所述判断自动更新是否有效包括:
便于建立到所述配置储存库的连接,以判断所述配置储存库是否存储了用于更新应用或者驱动的部署XML配置文件;以及
一旦确定了所述配置服务器存储了部署XML配置文件,便于从所述配置储存库接收所述部署XML配置文件。
96.根据条款93所述的硬件设备,其中所述重复所述便于自动更新包括:
判断自动更新是否有效;
便于从所述配置储存库获取第三部署XML配置文件用于在所述客户端设备上更新应用或驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述应用或驱动,同时停用所述写入过滤器。
97.根据条款93所述的硬件设备,其中所述一个或者多个操作进一步包括:
便于将所述第一部署XML配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,
其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续。
98.根据条款93所述的硬件设备,其中所述一个或者多个操作进一步包括:
在所述客户端设备上根据所述第二部署XML配置文件更新所述第一应用或驱动之后,从所述客户端设备的存储器上删除所述第二部署XML配置文件。
99.一种设备(参见,例如图19C的1900-C),用于将应用和驱动部署和更新到具有写入过滤器的客户端设备上,所述设备包括:
装置用于便于获得第一部署可扩展标记语言(XML)配置文件用于在所述客户端设备上部署第一个应用或者驱动,从具有用于在客户端设备上部署应用和驱动的部署XML配置文件和用于在客户端设备上更新应用和驱动的部署XML配置文件的配置储存库(参见,例如图19C的1902-C);
装置用于便于根据所述第一个部署XML配置文件在所述客户端设备上自动部署所述第一个应用或驱动,同时停用所述写入过滤器,其中启用所述写入过滤器以阻止存储于所述客户端设备上具有所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图19C的1904-C);
装置用于在所述自动部署之后,便于自动更新(参见,例如图19C的1906-C),包括:
装置用于判断自动更新是否有效(参见,例如图19C的1908-C);
装置用于便于从配置储存库获取第二部署XML配置文件用于在所述客户端设备上更新所述第一应用或驱动(参见,例如图19C的1910-C);以及
装置用于根据所述第二部署XML配置文件在所述客户端设备上更新所述第一应用或驱动,同时停用所述写入过滤器(参见,例如图19C的1912-C);以及
装置用于重复所述便于自动更新(参见,例如图19C的1914-C)。
100.根据条款99所述的设备,进一步包括:
装置用于,在获得第一部署XML配置文件和在所述客户端设备上自动部署所述第一个应用或者驱动之前,便于从所述配置储存库获得第三部署XML配置文件用于在所述客户端设备上更新第三个应用或者驱动;以及
装置用于根据所述第三部署XML配置文件在所述客户端设备上更新所述第三应用或驱动,同时停用所述写入过滤器。
101.根据条款99所述的设备,其中所述装置用于判断自动更新是否有效包括:
装置用于便于建立到所述配置储存库的连接,以判断所述配置储存库是否存储了用于更新应用或者驱动的部署XML配置文件;以及
装置用于一旦确定了所述配置服务器存储了部署XML配置文件,便于从所述配置储存库接收所述部署XML配置文件。
102.根据条款99所述的设备,其中所述装置用于重复所述便于自动更新包括:
装置用于判断自动更新是否有效;
装置用于便于从所述配置储存库获取第三部署XML配置文件用于在所述客户端设备上更新应用或驱动;以及
装置用于根据所述第三部署XML配置文件在所述客户端设备上更新所述应用或驱动,同时停用所述写入过滤器。
103.根据条款99所述的设备,进一步包括:
装置用于便于将所述第一部署XML配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,
其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续。
104.根据条款99所述的设备,其进一步包括:
装置用于在所述客户端设备上根据所述第二部署XML配置文件更新所述第一应用或驱动之后,从所述客户端设备的存储器上删除所述第二部署XML配置文件。
用于在客户端设备上自动更新应用或者驱动的设备/方法/机器可读存储 介质的说明(作为条款说明)
说明技术主题,例如根据下面所述的不同方面。技术主题的不同方面示例为了方便作为编号条款(105、114、123等)来说明。这些作为示例来提供,而不是限制技术主题。
105.一种方法(参见,例如图20A的2000-A),用于在客户端设备上自动更新应用或者驱动,所述方法包括:
便于在所述客户端设备从配置储存库获得至少一个部署配置文件(参见,例如图20A的2002-A),
其中所述至少一个部署配置文件包括对应于用于更新应用或者驱动的文件包的部署记录,以及所述部署记录包括所述文件包的标识符和所述文件包的版本;
便于将所述至少一个部署配置文件存储于所述客户端设备的存储器中免除写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图20A的2004-A);
对于所述至少一个部署配置文件中的每一个,便于进行(参见,例如图20A的2006-A):
检验所述至少一个部署配置文件的部署记录对应于更新所述客户端设备上安装的应用或者驱动的文件包,以及所述部署记录标识具有的所述文件包的版本比所述客户端设备上安装的应用或者驱动的版本更高(参见,例如图20A的2008-A);以及
使用所述文件包在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动,同时停用所述写入过滤器(参见,例如图20A的2010-A)。
106.根据条款105所述的方法,其中在所述客户端设备上更新所述应用或者所述驱动之前,所述方法包括:
便于判断所述写入过滤器在所述客户端设备上有效;
便于在所述客户端设备上停用所述写入过滤器;以及
便于所述客户端设备的重启。
107.根据条款106所述的方法,其中在所述客户端设备的所述重启之后,所述方法包括:
判断至少一个部署配置文件是否存储在所述客户端设备的所述存储器中;以及
一旦确定至少一个部署配置文件存储在所述客户端设备的所述存储器中,提取存储在所述客户端设备的所述存储器中的所述至少一个部署配置文件,并使用所述提取的至少一个部署配置文件便于检验和更新操作。
108.根据条款106所述的方法,其中在所述客户端设备上更新所述应用或者所述驱动之后,所述方法包括:
便于在所述客户端设备上启用所述写入过滤器;以及
便于所述客户端设备的重启。
109.根据条款105所述的方法,其中便于在所述客户端设备获得至少一个部署配置文件包括:
便于定位所述配置储存库;
便于判断自动更新文件夹是否存在于所述配置储存库上;以及
便于在所述客户端设备从所述配置储存库的所述自动更新文件夹获得所述至少一个部署配置文件。
110.根据条款105所述的方法,进一步包括:
判断所述客户端设备上是否设置了自动更新标签,在便于获得所述至少一个部署配置文件之前。
111.根据条款105所述的方法,进一步包括:
所述至少一个部署配置文件中的每一个存储在所述客户端设备的所述存储器中各自子文件夹中;以及
在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动之后,所述方法包括便于删除所述至少一个部署配置文件的所述各自子文件夹。
112.根据条款105所述的方法,其中在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动包括如下操作:
便于提取所述至少一个部署配置文件的所述部署记录中标识的用于更新所述应用或者所述驱动所需存储空间量的指示符;
便于判断所述客户端设备的所述存储器中可用的存储空间量是否大于所述提取的用于更新所述应用或者所述驱动所需存储空间量的指示符;
便于提取所述至少一个部署配置文件的所述部署记录中包括的参数值列表;以及
便于使用从所述至少一个部署配置文件的所述部署记录中提取的所述参数值列表更新所述应用或者所述驱动。
113.根据条款112所述的方法,所述方法进一步包括如下操作:
便于判断至少一个部署配置文件是否存在于所述配置储存库中;
从所述配置储存库中提取所述至少一个部署配置文件,一旦确定至少一个部署配置文件存在于所述配置储存库中。
114.一种具有编码指令的机器可读存储介质(参见,例如图20B的2000-B),该指令可由一个或者多个处理器执行以完成一个或者多个操作,用于在客户端设备上自动更新应用或者驱动,所述一个或者多个操作包括:
便于在所述客户端设备从配置储存库获得至少一个部署配置文件(参见,例如图20B的2002-B),
其中所述至少一个部署配置文件包括对应于用于更新应用或者驱动的文件包的部署记录,以及所述部署记录包括所述文件包的标识符和所述文件包的版本;
便于将所述至少一个部署配置文件存储于所述客户端设备的存储器中免除写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图20B的2004-B);
对于所述至少一个部署配置文件中的每一个,便于进行(参见,例如图20B的2006-B):
检验所述至少一个部署配置文件的部署记录对应于更新所述客户端设备上安装的应用或者驱动的文件包,以及所述部署记录标识具有的所述文件包的版本比所述客户端设备上安装的应用或者驱动的版本更高(参见,例如图20B的2008-B);以及
使用所述文件包在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动,同时停用所述写入过滤器(参见,例如图20B的2010-B)。
115.根据条款114所述的机器可读存储介质,其中在所述客户端设备上更新所述应用或者所述驱动之前,所述一个或者多个操作包括:
便于判断所述写入过滤器在所述客户端设备上有效;
便于在所述客户端设备上停用所述写入过滤器;以及
便于所述客户端设备的重启。
116.根据条款115所述的机器可读存储介质,其中在所述客户端设备的所述重启之后,所述一个或者多个操作包括:
判断至少一个部署配置文件是否存储在所述客户端设备的所述存储器中;以及
一旦确定至少一个部署配置文件存储在所述客户端设备的所述存储器中,提取存储在所述客户端设备的所述存储器中的所述至少一个部署配置文件,并使用所述提取的至少一个部署配置文件便于检验和更新操作。
117.根据条款115所述的机器可读存储介质,其中在所述客户端设备上更新所述应用或者所述驱动之后,所述一个或者多个操作包括:
便于在所述客户端设备上启用所述写入过滤器;以及
便于所述客户端设备的重启。
118.根据条款114所述的机器可读存储介质,其中便于在所述客户端设备获得至少一个部署配置文件包括:
便于定位所述配置储存库;
便于判断自动更新文件夹是否存在于所述配置储存库上;以及
便于在所述客户端设备从所述配置储存库的所述自动更新文件夹获得所述至少一个部署配置文件。
119.根据条款114所述的机器可读存储介质,其中所述一个或者多个操作包括:
判断所述客户端设备上是否设置了自动更新标签,在便于获得所述至少一个部署配置文件之前。
120.根据条款114所述的机器可读存储介质,其中:
所述至少一个部署配置文件中的每一个存储在所述客户端设备的所述存储器中各自子文件夹中;以及
在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动之后,所述一个或者多个操作包括便于删除所述至少一个部署配置文件的所述各自子文件夹。
121.根据条款114所述的机器可读存储介质,其中在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动包括如下操作:
便于提取所述至少一个部署配置文件的所述部署记录中标识的用于更新所述应用或者所述驱动所需存储空间量的指示符;
便于判断所述客户端设备的所述存储器中可用的存储空间量是否大于所述提取的用于更新所述应用或者所述驱动所需存储空间量的指示符;
便于提取所述至少一个部署配置文件的所述部署记录中包括的参数值列表;以及
便于使用从所述至少一个部署配置文件的所述部署记录中提取的所述参数值列表更新所述应用或者所述驱动。
122.根据条款121所述的机器可读存储介质,其中所述一个或者多个操作包括:
便于判断至少一个部署配置文件是否存在于所述配置储存库中;
从所述配置储存库中提取所述至少一个部署配置文件,一旦确定至少一个部署配置文件存在于所述配置储存库中。
123.一种硬件设备(参见,例如图20C的2000-C),用于在客户端设备上自动更新应用或者驱动,所述硬件设备包括:
一个或者多个模块,被配置用于执行一个或者多个操作,包括:
便于在所述客户端设备从配置储存库获得至少一个部署配置文件(参见,例如图20C的2002-C),
其中所述至少一个部署配置文件包括对应于用于更新应用或者驱动的文件包的部署记录,以及所述部署记录包括所述文件包的标识符和所述文件包的版本;
便于将所述至少一个部署配置文件存储于所述客户端设备的存储器中免除写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图20C的2004-C);
对于所述至少一个部署配置文件中的每一个,便于进行(参见,例如图20C的2006-C):
检验所述至少一个部署配置文件的部署记录对应于更新所述客户端设备上安装的应用或者驱动的文件包,以及所述部署记录标识具有的所述文件包的版本比所述客户端设备上安装的应用或者驱动的版本更高(参见,例如图20C的2008-C);以及
使用所述文件包在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动,同时停用所述写入过滤器(参见,例如图20C的2010-C)。
124.根据条款123所述的硬件设备,其中在所述客户端设备上更新所述应用或者所述驱动之前,所述一个或者多个操作包括:
便于判断所述写入过滤器在所述客户端设备上有效;
便于在所述客户端设备上停用所述写入过滤器;以及
便于所述客户端设备的重启。
125.根据条款124所述的硬件设备,其中在所述客户端设备的所述重启之后,所述一个或者多个操作进一步包括:
判断至少一个部署配置文件是否存储在所述客户端设备的所述存储器中;以及
一旦确定至少一个部署配置文件存储在所述客户端设备的所述存储器中,提取存储在所述客户端设备的所述存储器中的所述至少一个部署配置文件,并使用所述提取的至少一个部署配置文件便于检验和更新操作。
126.根据条款124所述的硬件设备,其中在所述客户端设备上更新所述应用或者所述驱动之后,所述一个或者多个操作进一步包括:
便于在所述客户端设备上启用所述写入过滤器;以及
便于所述客户端设备的重启。
127.根据条款123所述的硬件设备,其中便于在所述客户端设备获得至少一个部署配置文件包括:
便于定位所述配置储存库;
便于判断自动更新文件夹是否存在于所述配置储存库上;以及
便于在所述客户端设备从所述配置储存库的所述自动更新文件夹获得所述至少一个部署配置文件。
128.根据条款123所述的硬件设备,其中所述一个或者多个操作进一步包括:
判断所述客户端设备上是否设置了自动更新标签,在便于获得所述至少一个部署配置文件之前。
129.根据条款123所述的硬件设备,其中:
所述至少一个部署配置文件中的每一个存储在所述客户端设备的所述存储器中各自子文件夹中;以及
在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动之后,所述一个或者多个操作进一步包括便于删除所述至少一个部署配置文件的所述各自子文件夹。
130.根据条款123所述的硬件设备,其中在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动包括如下操作:
便于提取所述至少一个部署配置文件的所述部署记录中标识的用于更新所述应用或者所述驱动所需存储空间量的指示符;
便于判断所述客户端设备的所述存储器中可用的存储空间量是否大于所述提取的用于更新所述应用或者所述驱动所需存储空间量的指示符;
便于提取所述至少一个部署配置文件的所述部署记录中包括的参数值列表;以及
便于使用从所述至少一个部署配置文件的所述部署记录中提取的所述参数值列表更新所述应用或者所述驱动。
131.根据条款130所述的硬件设备,其中所述一个或者多个操作进一步包括:
便于判断至少一个部署配置文件是否存在于所述配置储存库中;
从所述配置储存库中提取所述至少一个部署配置文件,一旦确定至少一个部署配置文件存在于所述配置储存库中。
132.一种设备(参见,例如图20C的2000-C),用于在客户端设备上自动更新应用或者驱动,所述设备包括:
装置用于便于在所述客户端设备从配置储存库获得至少一个部署配置文件(参见,例如图20C的2002-C),
其中所述至少一个部署配置文件包括对应于用于更新应用或者驱动的文件包的部署记录,以及所述部署记录包括所述文件包的标识符和所述文件包的版本;
装置用于便于将所述至少一个部署配置文件存储于所述客户端设备的存储器中免除写入过滤器限制的位置,其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续(参见,例如图20C的2004-C);
装置用于,对于所述至少一个部署配置文件中的每一个,便于进行(参见,例如图20C的2006-C):
检验所述至少一个部署配置文件的部署记录对应于更新所述客户端设备上安装的应用或者驱动的文件包,以及所述部署记录标识具有的所述文件包的版本比所述客户端设备上安装的应用或者驱动的版本更高(参见,例如图20C的2008-C);以及
使用所述文件包在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动,同时停用所述写入过滤器(参见,例如图20C的2010-C)。
133.根据条款132所述的设备,进一步包括:
装置用于,在所述客户端设备上更新所述应用或者所述驱动之前,便于判断所述写入过滤器在所述客户端设备上有效;
装置用于便于在所述客户端设备上停用所述写入过滤器;以及
装置用于便于所述客户端设备的重启。
134.根据条款133所述的设备,进一步包括:
装置用于,在所述客户端设备的所述重启之后,判断至少一个部署配置文件是否存储在所述客户端设备的所述存储器中;以及
装置用于一旦确定至少一个部署配置文件存储在所述客户端设备的所述存储器中,提取存储在所述客户端设备的所述存储器中的所述至少一个部署配置文件,并使用所述提取的至少一个部署配置文件便于检验和更新操作。
135.根据条款133所述的设备,进一步包括:
装置用于,在所述客户端设备上更新所述应用或者所述驱动之后,便于在所述客户端设备上启用所述写入过滤器;以及
装置用于便于所述客户端设备的重启。
136.根据条款132所述的设备,其中所述装置用于便于在所述客户端设备获得至少一个部署配置文件进一步包括:
装置用于便于定位所述配置储存库;
装置用于便于判断自动更新文件夹是否存在于所述配置储存库上;以及
装置用于便于在所述客户端设备从所述配置储存库的所述自动更新文件夹获得所述至少一个部署配置文件。
137.根据条款132所述的设备,进一步包括:
装置用于判断所述客户端设备上是否设置了自动更新标签,在便于获得所述至少一个部署配置文件之前。
138.根据条款132所述的设备,其中:
所述至少一个部署配置文件中的每一个存储在所述客户端设备的所述存储器中各自子文件夹中;以及
所述设备进一步包括装置用于,在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动之后,便于删除所述至少一个部署配置文件的所述各自子文件夹。
139.根据条款132所述的设备,其中所述装置用于在所述客户端设备上更新所述至少一个部署配置文件的所述部署记录对应的所述应用或者所述驱动包括:
装置用于便于提取所述至少一个部署配置文件的所述部署记录中标识的用于更新所述应用或者所述驱动所需存储空间量的指示符;
装置用于便于判断所述客户端设备的所述存储器中可用的存储空间量是否大于所述提取的用于更新所述应用或者所述驱动所需存储空间量的指示符;
装置用于便于提取所述至少一个部署配置文件的所述部署记录中包括的参数值列表;以及
装置用于便于使用从所述至少一个部署配置文件的所述部署记录中提取的所述参数值列表更新所述应用或者所述驱动。
140.根据条款139所述的设备,进一步包括:
装置用于便于判断至少一个部署配置文件是否存在于所述配置储存库中;以及
装置用于从所述配置储存库中提取所述至少一个部署配置文件,一旦确定至少一个部署配置文件存在于所述配置储存库中。
其它注释
在一个方面,之前条款的任一项可以从属于之前独立条款中任一项或者之前从属条款中任一项。在一个方面,任意条款(例如,从属或者独立条款)可以于任意其它条款(例如,从属或者独立条款)合并。在一个方面,权利要求可以包括条款中提及的单元(例如,步骤、操作、装置或者组件)中的一些或者所有。在一个方面,权利要求可以包括在一个或者多个条款、句子或者短语中提及的单元中的一些或者所有。在一个方面,每个条款、句子或者段落中单元中的一些可以删除。在一个方面,其它单元可以增加到条款、句子或者段落中项中。在一个方面,上述任意方法、指令、代码、装置、逻辑、组件、模块(例如,软件或硬件)可以在附图(例如,流程图、结构图)中表示。虽然为了简洁在附图中只表示了独立条款,任意从属条款可以以类似方式在附图中表示。例如,可以画出流程图用于方法的任意条款,以使得每个操作由箭头连接至下一操作。另一个示例中,可以画出结构图用于具有单元的装置的任意条款,以使得每个用于单元的装置可以表示为用于单元的模块。在一个方面,技术主题可以无需利用在此所述的组件、单元、功能或者操作中的一些而实现。在一个方面,技术主题可以利用附加组件、单元、功能或者操作而实现。在一个方面,权利要求可以书写为仅具有在此所述的给定句子中的单词或者不同句子中的单词中的一些或者所有。
本领域技术人员将理解项目,例如在此所述的不同示意性块、模块、单元、组件、方法和算法(例如,配置储存库服务器104、服务器112、客户端设备102a-102e、操作系统(图8A)、驱动管理过程(图9A-9I)、和其中包括的组件)可以实现为电子硬件、计算机软件、或者二者结合。
为了说明硬件和软件的可交换性,项目,例如不同示意性块、模块、单元、组件、方法和算法已经在上面一般性地根据它们的功能进行了说明。这个功能是实现为硬件还是软件依赖于特定应用和施加于整体系统的设计限制。熟练技术人员可以对于每个特定应用以不同方式实现所述功能。
在一个方面,“装置”、块、模块、单元、组件或者处理器可以是用于执行一个或者多个功能或者操作的项目(例如,一个或者多个块、模块、单元、组件或者处理器)。在一个方面,这个项目可以是装置、硬件、或者其一部分。在一个示例中,项目可以具有例如,用于执行功能或者操作的指令的形式的结构,其中指令编码或者存储在机器可读介质、或者另一个设备上,或者其一部分上,其中一个指令可以是软件、应用、例程或者其一部分。在示例中,项目可以实现为配置用于执行功能或者操作的一个或者多个电路。电路可以包括一个或者多个电路和/或逻辑。电路可以是模拟的和/或数字的。电路可以是电的和/或光的。电路可以包括晶体管。在示例中,一个或者多个项目可以实现为处理系统(例如,DSP、ASIC、FPGA等等)。本领域技术人员将认识到如何实现指令、电路和处理系统。
在本公开一个方面,当说明行为或者功能由项目执行时(例如,接收、判断、提供、产生、转换、显示、通知、接受、选择、控制、提出、发送、报告、或者任意其它行为或功能),应当理解为这个行为或功能可以由项目直接或者间接执行。作为示例,当模块说明为执行行为时,模块可以直接执行行为或者可以间接执行行为,例如通过便于、启用或者导致这个行为。
不同项目可以不同地设置(例如,以不用顺序设置,或者以不同方式划分),都不脱离本技术主题的范围。在一个示例中,配置储存库服务器104,或者服务器104的一些组件,可以设置为独立服务器而不是服务器112的一部分。在本公开的一个方面,附加的权利要求中提及的单元可以由一个或者多个模块或者子模块执行。
应当理解公开的步骤、操作或者过程的特定顺序或者层次是示意性方法的说明。根据设计优选,应当理解步骤、操作或者过程的特定顺序或者层次可以重新排列。步骤、操作或者过程中的一些可以同时执行。步骤、操作或者过程中的一些或者所有可以自动执行,无需人工干预。附加的方法权利要求,如果有的话,以示例顺序提出不同的步骤、操作或者过程的单元,并不意味着限制于提出的特定顺序或层次。
提供之前的说明使得本领域技术人员能够实现在此所述的不同方面。之前的说明提供了技术主题的不同示例,技术主题并不局限于这些示例。这些方面的不同修改对本领域技术人员是显而易见的,在此定义的通用原则可以用于其它方面。提及的单数单元并不意味着“一个且只有一个”,除非另外特别说明,而是“一个或多个”。除非另外特别说明,术语“一些”指一个或者多个。男性代名词(例如,他的)包括女性和中性性别(例如,她的和它的),反之亦然。标题和子标题,如果有,仅用于方便而不限制本发明。
短语例如“方面”并不意味着这个方面是本技术主题必要的,或者这个方面可应用于本技术主题的所有配置。关于一个方面的公开可以应用于所有配置,或者一个或者多个配置。一个方面可以提供一个或者多个示例。短语例如一个方面可以指一个或者多个方面,反之亦然。短语例如“实施方式”不意味着这个实施方式是本技术主题必要的,或者这个实施方式可应用于本技术主题的所有配置。关于一个实施方式的公开可以应用于所有实施方式,或者一个或者多个实施方式。一个实施方式可以提供一个或者多个示例。短语例如一个实施方式可以指一个或者多个方面,反之亦然。短语例如“配置”不意味着这个配置是本技术主题必要的,或者这个配置可应用于本技术主题的所有配置。关于一个配置的公开可以应用于所有配置,或者一个或者多个配置。一个配置可以提供一个或者多个示例。短语例如一个配置可以指一个或者多个配置,反之亦然。
词语“示意性”在此用于表示“作为一个示例或者说明”。在此作为“示意性”说明的任意方面或设计并不必然地解释为比其它方面或者设计优选的或者有利的。在一个方面,在此所述的不同可选配置和操作可以认为是至少同等的。
除非另外说明,在本说明书中提出的所有测量、值、比率、位置、幅度、大小、和其它规格,包括后面的权利要求中的,都是大约的,而不是准确的。它们意图具有与它们相关的功能一致的以及具有它们所属的本领域常见的合理范围。
与本公开全文中所述的不同方面的单元同等的本领域技术人员已知的或者将知道的所有结构和功能在此表示为通过参考结合于此,意图由权利要求来覆盖。而且,在此公开的没有什么内容意图专用于公开而无论这个公开是否在权利要求中明确地提及。没有权利要求单元将按照35 U.S.C.§112,第六段的规定来解释,除非该单元明确用术语“装置用于”来表示,或者在方法权利要求中,该单元使用术语“步骤用于”来表示。而且,说明书中使用的术语“包括”、“具有”等的范围,这种术语意图以与术语“包含”类似的方式包含当在权利要求中作为过渡词语使用时“包含”所解释的含义。
提供本公开的摘要以允许读者快速地了解本技术公开的实质。提供它应当理解其不被用于解释或者限制权利要求的范围或者含义。另外,在前面详细说明和后面附录中,可以看到不同特征在不同实施方式中组合在一起以简化本公开。这个公开的方法不应当被解释为反映了请求保护的主题名称需要比每个权利要求中提及的更多特征的意图。相反,如后面权利要求所反映的,发明的主题名称在于比单个公开的配置或者操作的所有特征更少。后面的权利要求由此结合到详细说明中,每个权利要求自已作为独立的请求保护的主题名称。
保护的范围仅仅有后面的权利要求来限制。权利要求意图不是限制在此所述的方面,而是使全部范围与权利要求的语言一致,并包括所有合法的同等物。虽然,没有权利要求意图包含不满足35 U.S.C.§101、102或103的需求的主题名称,也没有权利要求以这种方式来解释。这个主题名称的任意非故意地包括由此在此放弃。
附录A:设备驱动配置文件和部署配置文件的示意性方案
以下是设备驱动配置文件的示意性方案,例如被称为“DriverConfig.xml”的设备驱动配置文件:
以下是例如用于设备部署配置和自动更新文件包部署的部署配置文件的示意性方案:
附录B:示意性设备驱动配置文件和部署配置文件
以下是示意性设备驱动配置文件,例如文件“DriverConfig.xml”:
以下是示意性部署配置文件,例如用于设备部署配置任务和自动更新文件包的部署XML配置文件:
附录C:示意性规范
以下是与视窗嵌入式标准版本结合使用的示意性规范。
1.0 后台
这个产品需求文档涉及Windows Embedded Standard 7(WES7)WFR1,包括以下特征:
·支持RemoteFX(RDP 7.1)
·支持SCCM
·智能驱动安装(基于硬件检测)
·支持Wyse配置管理(项目升级)
·支持View 4.5/ICA 12.0
·支持微软Windows Embedded Standard 7 SP1
○SKU差异化特征
2.0 业务驱动
以下是WES 7版本的业务驱动。这些业务驱动(特征桶)将在版本内设置特定特征的基准。
1)最佳用户体验-具有达到相当好默认体验的WES 7的版本,现在是时候超过它,使得在精简型客户端上得到最佳可能的用户体验。用WES 7WFR1中支持的微软RemoteFX技术,当使用Wyse的WES 7 WFR1时,用户将能够达到本地可能的、全保真度虚拟桌面体验。另外,由于微软计划称之为“SKU差异化”的特征-其避开了基于购买的WES 7 SKU(E、P、C)的类型的镜像中的特征-将在要呈现和工作的Wyse WES选择(WES 7 E)中向客户保证那些特征。
2)可管理性-基于精简型客户端的WES 7优选地能够由IT管理者容易管理。引入对Wyse配置管理器的支持,IT管理者将能够在无缝地与他们的活动目录环境结合的他们的环境中部署WES 7 WFR1精简型客户端,并能够在启动后提取每个特定用户或者用户组的配置并应用这些设置。这允许Wyse只从工厂传送一个镜像,所有将来的客户化可以通过用户/用户组特定的配置来应用。另外通用的SCCM支持(非Wyse配置管理相关的)使得更容易通过当今用于PC的管理工具来管理客户端。最后,Wyse配置管理支持与WDM和SCCM(通过插入)的结合使得管理和客户化WES 7 WFR1精简型客户端更有价值,而无论精简型客户端的管理系统IT管理者的用途。
3)个性化-一旦用户登录他们的IT环境,WES 7精简型客户端优选地能够收集用户特定的配置喜好,或者本地的和/或从IT网络。用户体验优选地完全是个人化的,对于用户应当没有中断时间来得到应用的和运行的他们的本地/网络优选。
3.0 需求
1)最佳用户体验
a.微软的RemoteFX客户端(RDP 7.1)优选地有资格位于支持的WES 7硬件镜像上,并具有合适的微软后端。RemoteFX的用户体验增值优选地明确规定客户,当使用不同的微软后端时(终端业务、远程桌面业务、使用Srv 2003的虚拟桌面、和Srv 2008 R2和Srv 2008 R2 SP1)。
b.当使用微软的最新的后端支持RemoteFX时,用户优选地能够达到本地PC级体验,例如使用媒体播放器12播放全屏高清视频、通过浏览器的闪存视频、以及运行几个产品应用例如outlook、adobe reader、和消息应用。
c.优选地保证具有最通用资源密集应用的体验。这种应用例如GoogleEarth、CAD应用、视频/多媒体编辑应用、内容创建应用等。
d.当使用具有不同WES 7硬件(R、C、Xc)的RemoteFX时,优选地也保证体验增值。
e.WES 7 WFR1优选地支持WES 7的微软SP1版本。
2)可管理性
a.当使用1)ftp服务器、2)WDM服务器和3)SCCM服务器时WES 7WFR1精简型客户端优选地能够应用配置。
b.配置可以1)全局地、2)基于MAC、或者3)基于用于证书(或者域/非域)来应用。WES 7 WFR1优选地获得和使用从FTP/WDM/SCCM管理工具获得的全局的、基于MAC的和基于用户的配置文件。
c.应用于任意精简型客户端的最后5个快照优选地总是存储于精简型客户端上。当使用WDM/SCCM作为管理工具时-应用于特定用户的最后5个快照优选地也存储(或者在精简型客户端或者在后端)。
d.一旦镜像精简型客户端并第一次启动它(生产线场景),WES 7 WFR1精简型客户端优选地检测镜像所运行的硬件,并只安装硬件特定的那些设备驱动。镜像上所有其它设备驱动有选选被删除。
e.优选地用SCCM 2007支持和保证WES 7 WFR1精简型客户端的检测、补丁、镜像。另外,WES 7 WFR1镜像优选地支持所有SCCM特权(从WES 7转发携带的)。
3)个性化
a.所有基于用户的、基于MAC的或者全局的设置优选地应当不超过10秒钟(超过常规OS启动时间)来应用。
i.在WES 7 WFR1精简型客户端上应用任意设置之前,优选地执行检验以确定是有具有相同值的设置之前已经应用过。
b.当在特定设备上第一次应用用户特定的设置时,终端用户优选地只在所有用户化/设置已经应用之后查看自己的桌面。
i.当WES 7设备是域加入以及非域加入时,优选地能够应用用户相关的设置。
c.基于设备的设置优选地是永久的,基于用户的设置优选地是非永久的。非永久的暗示着对那些设置不使用写入过滤器排除。
4)杂项
a.命令行工具优选地不提供给默认用户。÷
b.Prep-4-man(试用版)优选地在WES 7 WFR1镜像中提供
c.文件夹系统优选地是压缩的(已有的和新的)
d.WES 7镜像优选地根据微软提供给Wyse的指南在OS层压缩-同时导致跨R、C、Xc、Miranda和Mobile3平台的不可见的性能下降。
e.当使用USB键盘时绕开自动登录的换档键方法的问题优选地是固定的。
i.潜在的固定应当向用户给出可见指示以在启动大约3秒时(在OS启动过程期间)敲击换挡;或者
ii.建立小的应用,以允许用户告诉OS绕开自动登录1)下次重启时或者2)用户退出登录时
f.镜像或者加载Wyse WES 7优选地用于Wyse硬件
g.非Wyse WES 7镜像优选地不允许安装于Wyse硬件上
4.0 支持的硬件
优选地在以下硬件平台上支持WES 7镜像:
R90LE7
R90L7
C90LE7
X90C7
以及
Miranda
Mobile 3
这个版本优选的将支持所有设备的以下最小存储配置:
·2/4GB闪存
·1/2GB Ram用于客户镜像
附录D:Windows Embedded Standard 7(WES 7)-WFR2的示意性 规范
1 介绍
1.1 执行概要
WES 7 WFR2是基于微软的Windows Embedded Standard 7(WES7)业务补丁1(SP1)的,这是具有Wyse客户组件的Windows Embedded OS的最新版本。
WES 7 SP1是基于Windows 7 SP1并具有几个新特征,例如:
·RDP 7.1
·Remote FX
·Remote FX USB
2 支持的硬件平台
以下硬件平台可以由WES 7 WFR1支持:R90LE7、R90L7、C90LE7、X90C7、Z90S7、Z90D7、X90M7。
最小RAM配置:1GB
建议RAM 2GB
附录E:Drvmgmt.exe(用于处理驱动存储和驱动管理应用和基于硬件 平台的智能第三方实体驱动安装)的示意性规范
1 概述
随着Windows Embedded Standard 7精简型客户端镜像对多硬件平台支持需求的增加,引入了“基于硬件平台使用驱动存储的智能第三方实体设备驱动安装”。
Drvmgmt.exe应用被设计用于基于硬件平台使用驱动存储用智能第三方实体设备驱动安装来自动进行镜像建立过程。
1.1 范围
本附录提出将“基于硬件平台使用驱动存储的智能第三方实体设备驱动安装”特征加入镜像建立过程。
2 具有Windows Embedded Standard 7的驱动存储
Windows Embedded Standard 7引入了驱动存储、收件箱的信任缓存、和存储于本地硬盘的第三方驱动。当第三方驱动安装于Windows EmbeddedStandard 7上时,建立自动地将驱动文件包复制到驱动存储,然后从驱动存储中的驱动文件包安装驱动。复制到驱动存储的驱动文件包被称为将上演的。
驱动可以上演而无需马上安装于系统上,以使得可以以后用于安装。增加驱动文件包到驱动存储中,或者在安装期间或者单独地,要求管理者授权。然而,在驱动文件包位于驱动存储之后,标准用户可以安装驱动。
2.1 何处寻找更多信息
http://msdn.microsoft.con/en-us/library/ff544868(VS.85).aspx
3 为什么是drvmgmt
因为在建立过程中结合“基于硬件平台使用驱动存储的智能第三方实体设备驱动安装”概念,所以执行以下操作:
□卸载与第三方厂商驱动冲突的基本微软驱动
□将所有第三方驱动增加到驱动存储中
□安装驱动
□检查驱动存在
□从驱动存储重配置设备(可选)
□从驱动存储清除不存在的硬件设备驱动
为了使镜像建立过程更容易和减少镜像建立过程中的用户干预,驱动管理应用drvmgmt.exe是有用的
具有WES 7的drvmgmt.exe的功能结构图:参见例如图8A
4 drvmgmt.exe模块(参见例如图9J)
□卸载:根据命令行中给出的驱动说明从驱动存储中卸载微软兼容驱动
□重新扫描:模拟devmgmt.msc的操作->选择根节点->按程序扫描硬件改变
□安装:安装功能安装来自指定的inf路径的驱动文件包
□检查驱动:检查驱动功能验证请求的驱动是否已经安装,并向主程序返回状态
□增加:根据命令行中指定的INF文件将驱动增加到驱动存储中
□列举:列出当前安装于目标硬件上的所有驱动
□检验:根据硬件模型用WyseDrivers.ini文件中给出的参考驱动列表检验当前安装于目标硬件上的驱动列表
□清除:检验驱动完整性并从驱动存储中清除不存在的硬件驱动
Drvmgmt.exe可以是基于应用的控制台,其执行用户给出的和如下所述的详细设计中给出的各自的基于模块的命令行选项:
·4.1 卸载(参见,例如图9H)
使用:drvmgmt.exe/uninstall“driver description”
根据命令行中给出的驱动说明从驱动存储中卸载微软兼容驱动
·4.2 重新扫描(参见,例如图9E)
使用:drvmgmt.exe/rescan
模拟Devmgmt.msc的操作->选择根节点->按程序扫描硬件改变
·4.3 列举(参见,例如图9F)
列出当前安装于目标硬件上的所有驱动以及将驱动加载到InsDevDrvDevice列表
·4.4 检验(参见,例如图9G)
根据硬件模型用WyseDrivers.ini文件中给出的参考驱动列表检验当前安装于目标硬件上的驱动列表
·4.5 清除(参见,例如图9I)
检验驱动完整性并从驱动存储中清除不存在的硬件驱动
·4.6 增加(参见,例如图9B)
根据命令行中指定的INF文件将驱动增加到驱动存储中
·4.7 安装(参见,例如图9C)
安装功能安装来自指定的inf路径的驱动文件包
·4.8 检查驱动(参见,例如图9D)
检查驱动功能验证请求的驱动是否已经安装,并向主程序返回状态
注意上述过程优先支持Windows Embedded Standard 7建立

Claims (24)

1.一种方法,用于将应用和驱动部署和更新到具有写入过滤器的客户端设备上,所述方法包括:
便于获得第一部署可扩展标记语言(XML)配置文件用于在所述客户端设备上部署第一个应用或者驱动,从具有用于在客户端设备上部署应用和驱动的部署XML配置文件和用于在客户端设备上更新应用和驱动的部署XML配置文件的配置储存库;
便于根据所述第一个部署XML配置文件在所述客户端设备上自动部署所述第一个应用或驱动,同时停用所述写入过滤器,其中启用所述写入过滤器以阻止存储于所述客户端设备上具有所述写入过滤器有效的文件跨所述客户端设备的重启而持续;
在所述自动部署之后,便于自动更新,包括:
判断自动更新是否有效;
便于从配置储存库获取第二部署XML配置文件用于在所述客户端设备上更新所述第一应用或驱动;以及
根据所述第二部署XML配置文件在所述客户端设备上更新所述第一应用或驱动,同时停用所述写入过滤器;以及
重复所述便于自动更新。
2.根据权利要求1所述的方法,其中在获得第一部署XML配置文件和在所述客户端设备上自动部署所述第一个应用或者驱动之前,所述方法包括:
便于从所述配置储存库获得第三部署XML配置文件用于在所述客户端设备上更新第三个应用或者驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述第三应用或驱动,同时停用所述写入过滤器。
3.根据权利要求1所述的方法,其中所述判断自动更新是否有效包括:
便于建立到所述配置储存库的连接,以判断所述配置储存库是否存储了用于更新应用或者驱动的部署XML配置文件;以及
一旦确定了所述配置服务器存储了部署XML配置文件,便于从所述配置储存库接收所述部署XML配置文件。
4.根据权利要求1所述的方法,其中所述重复所述便于自动更新包括:
判断自动更新是否有效;
便于从所述配置储存库获取第三部署XML配置文件用于在所述客户端设备上更新应用或驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述应用或驱动,同时停用所述写入过滤器。
5.根据权利要求1所述的方法,进一步包括:
便于将所述第一部署XML配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,
其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续。
6.根据权利要求1所述的方法,进一步包括:
在所述客户端设备上根据所述第二部署XML配置文件更新所述第一应用或驱动之后,从所述客户端设备的存储器上删除所述第二部署XML配置文件。
7.一种具有编码指令的机器可读存储介质,该指令可由一个或者多个处理器执行以完成一个或者多个操作,用于将应用和驱动部署和更新到具有写入过滤器的客户端设备上,所述一个或者多个操作包括:
便于获得第一部署可扩展标记语言(XML)配置文件用于在所述客户端设备上部署第一个应用或者驱动,从具有用于在客户端设备上部署应用和驱动的部署XML配置文件和用于在客户端设备上更新应用和驱动的部署XML配置文件的配置储存库;
便于根据所述第一个部署XML配置文件在所述客户端设备上自动部署所述第一个应用或驱动,同时停用所述写入过滤器,其中启用所述写入过滤器以阻止存储于所述客户端设备上具有所述写入过滤器有效的文件跨所述客户端设备的重启而持续;
在所述自动部署之后,便于自动更新,包括:
判断自动更新是否有效;
便于从配置储存库获取第二部署XML配置文件用于在所述客户端设备上更新所述第一应用或驱动;以及
根据所述第二部署XML配置文件在所述客户端设备上更新所述第一应用或驱动,同时停用所述写入过滤器;以及
重复所述便于自动更新。
8.根据权利要求7所述的机器可读存储介质,其中在获得第一部署XML配置文件和在所述客户端设备上自动部署所述第一个应用或者驱动之前,所述一个或者多个操作进一步包括:
便于从所述配置储存库获得第三部署XML配置文件用于在所述客户端设备上更新第三个应用或者驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述第三应用或驱动,同时停用所述写入过滤器。
9.根据权利要求7所述的机器可读存储介质,其中所述判断自动更新是否有效包括:
便于建立到所述配置储存库的连接,以判断所述配置储存库是否存储了用于更新应用或者驱动的部署XML配置文件;以及
一旦确定了所述配置服务器存储了部署XML配置文件,便于从所述配置储存库接收所述部署XML配置文件。
10.根据权利要求7所述的机器可读存储介质,其中所述重复所述便于自动更新包括:
判断自动更新是否有效;
便于从所述配置储存库获取第三部署XML配置文件用于在所述客户端设备上更新应用或驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述应用或驱动,同时停用所述写入过滤器。
11.根据权利要求7所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
便于将所述第一部署XML配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,
其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续。
12.根据权利要求7所述的机器可读存储介质,其中所述一个或者多个操作进一步包括:
在所述客户端设备上根据所述第二部署XML配置文件更新所述第一应用或驱动之后,从所述客户端设备的存储器上删除所述第二部署XML配置文件。
13.一种硬件设备,用于将应用和驱动部署和更新到具有写入过滤器的客户端设备上,所述硬件设备包括:
一个或者多个模块,被配置用于执行一个或者多个操作,包括:
便于获得第一部署可扩展标记语言(XML)配置文件用于在所述客户端设备上部署第一个应用或者驱动,从具有用于在客户端设备上部署应用和驱动的部署XML配置文件和用于在客户端设备上更新应用和驱动的部署XML配置文件的配置储存库;
便于根据所述第一个部署XML配置文件在所述客户端设备上自动部署所述第一个应用或驱动,同时停用所述写入过滤器,其中启用所述写入过滤器以阻止存储于所述客户端设备上具有所述写入过滤器有效的文件跨所述客户端设备的重启而持续;
在所述自动部署之后,便于自动更新,包括:
判断自动更新是否有效;
便于从配置储存库获取第二部署XML配置文件用于在所述客户端设备上更新所述第一应用或驱动;以及
根据所述第二部署XML配置文件在所述客户端设备上更新所述第一应用或驱动,同时停用所述写入过滤器;以及
重复所述便于自动更新。
14.根据权利要求13所述的硬件设备,其中在获得第一部署XML配置文件和在所述客户端设备上自动部署所述第一个应用或者驱动之前,所述一个或者多个操作进一步包括:
便于从所述配置储存库获得第三部署XML配置文件用于在所述客户端设备上更新第三个应用或者驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述第三应用或驱动,同时停用所述写入过滤器。
15.根据权利要求13所述的硬件设备,其中所述判断自动更新是否有效包括:
便于建立到所述配置储存库的连接,以判断所述配置储存库是否存储了用于更新应用或者驱动的部署XML配置文件;以及
一旦确定了所述配置服务器存储了部署XML配置文件,便于从所述配置储存库接收所述部署XML配置文件。
16.根据权利要求13所述的硬件设备,其中所述重复所述便于自动更新包括:
判断自动更新是否有效;
便于从所述配置储存库获取第三部署XML配置文件用于在所述客户端设备上更新应用或驱动;以及
根据所述第三部署XML配置文件在所述客户端设备上更新所述应用或驱动,同时停用所述写入过滤器。
17.根据权利要求13所述的硬件设备,其中所述一个或者多个操作进一步包括:
便于将所述第一部署XML配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,
其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续。
18.根据权利要求13所述的硬件设备,其中所述一个或者多个操作进一步包括:
在所述客户端设备上根据所述第二部署XML配置文件更新所述第一应用或驱动之后,从所述客户端设备的存储器上删除所述第二部署XML配置文件。
19.一种设备,用于将应用和驱动部署和更新到具有写入过滤器的客户端设备上,所述设备包括:
装置用于便于获得第一部署可扩展标记语言(XML)配置文件用于在所述客户端设备上部署第一个应用或者驱动,从具有用于在客户端设备上部署应用和驱动的部署XML配置文件和用于在客户端设备上更新应用和驱动的部署XML配置文件的配置储存库;
装置用于便于根据所述第一个部署XML配置文件在所述客户端设备上自动部署所述第一个应用或驱动,同时停用所述写入过滤器,其中启用所述写入过滤器以阻止存储于所述客户端设备上具有所述写入过滤器有效的文件跨所述客户端设备的重启而持续;
装置用于在所述自动部署之后,便于自动更新,包括:
装置用于判断自动更新是否有效;
装置用于便于从配置储存库获取第二部署XML配置文件用于在所述客户端设备上更新所述第一应用或驱动;以及
装置用于根据所述第二部署XML配置文件在所述客户端设备上更新所述第一应用或驱动,同时停用所述写入过滤器;以及
装置用于重复所述便于自动更新。
20.根据权利要求19所述的设备,进一步包括:
装置用于,在获得第一部署XML配置文件和在所述客户端设备上自动部署所述第一个应用或者驱动之前,便于从所述配置储存库获得第三部署XML配置文件用于在所述客户端设备上更新第三个应用或者驱动;以及
装置用于根据所述第三部署XML配置文件在所述客户端设备上更新所述第三应用或驱动,同时停用所述写入过滤器。
21.根据权利要求19所述的设备,其中所述装置用于判断自动更新是否有效包括:
装置用于便于建立到所述配置储存库的连接,以判断所述配置储存库是否存储了用于更新应用或者驱动的部署XML配置文件;以及
装置用于一旦确定了所述配置服务器存储了部署XML配置文件,便于从所述配置储存库接收所述部署XML配置文件。
22.根据权利要求19所述的设备,其中所述装置用于重复所述便于自动更新包括:
装置用于判断自动更新是否有效;
装置用于便于从所述配置储存库获取第三部署XML配置文件用于在所述客户端设备上更新应用或驱动;以及
装置用于根据所述第三部署XML配置文件在所述客户端设备上更新所述应用或驱动,同时停用所述写入过滤器。
23.根据权利要求19所述的设备,进一步包括:
装置用于便于将所述第一部署XML配置文件存储在所述客户端设备的存储器中免除写入过滤器限制的位置,
其中所述写入过滤器限制阻止存储在所述客户端设备上的所述写入过滤器有效的文件跨所述客户端设备的重启而持续。
24.根据权利要求19所述的设备,其进一步包括:
装置用于在所述客户端设备上根据所述第二部署XML配置文件更新所述第一应用或驱动之后,从所述客户端设备的存储器上删除所述第二部署XML配置文件。
CN201280068337.5A 2011-11-28 2012-05-21 在客户端设备上使用xml配置文件部署和更新应用和驱动程式 Active CN104137065B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/305,653 2011-11-28
US13/305,653 US8606892B2 (en) 2011-11-28 2011-11-28 Deployment and updating of applications and drivers on a client device using an extensible markup language (XML) configuration file
PCT/US2012/038872 WO2013081666A1 (en) 2011-11-28 2012-05-21 Deployment and updating of applications and drivers on a client device using and extensible markup language (xml) configuration file

Publications (2)

Publication Number Publication Date
CN104137065A true CN104137065A (zh) 2014-11-05
CN104137065B CN104137065B (zh) 2018-04-10

Family

ID=48467819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280068337.5A Active CN104137065B (zh) 2011-11-28 2012-05-21 在客户端设备上使用xml配置文件部署和更新应用和驱动程式

Country Status (5)

Country Link
US (2) US8606892B2 (zh)
EP (1) EP2786246B1 (zh)
CN (1) CN104137065B (zh)
IN (1) IN2014CN04653A (zh)
WO (1) WO2013081666A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107278363A (zh) * 2015-03-27 2017-10-20 英特尔公司 用于网络通信的系统和技术
WO2018137373A1 (zh) * 2017-01-26 2018-08-02 华为技术有限公司 一种数据配置方法及数据配置装置
CN109460251A (zh) * 2018-09-03 2019-03-12 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 构件集成框架管理方法和装置

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2959633B1 (fr) * 2010-04-29 2012-08-31 Airbus Operations Sas Procede de mise a niveau d'un aeronef
KR101850817B1 (ko) * 2011-11-17 2018-04-23 삼성전자주식회사 서로 다른 단말에 어플리케이션을 자동으로 설치하는 장치 및 방법
US9772832B2 (en) * 2012-01-20 2017-09-26 S-Printing Solution Co., Ltd. Computing system with support for ecosystem mechanism and method of operation thereof
WO2013126058A1 (en) * 2012-02-23 2013-08-29 Hewlett-Packard Development Company, L.P. Firmware package to modify active firmware
US8683460B2 (en) * 2012-05-11 2014-03-25 International Business Machines Corporation Grandfathering configurations in a distributed environment
JP5959942B2 (ja) * 2012-06-04 2016-08-02 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム、並びにファームウェア更新システム
EP2677719A1 (en) * 2012-06-19 2013-12-25 Alcatel Lucent A method for interfacing a communication terminal with networked objects
GB2506181A (en) * 2012-09-25 2014-03-26 Ibm Generating customised program logic for hardware devices
US9317269B2 (en) 2012-09-28 2016-04-19 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US8949824B2 (en) 2012-09-28 2015-02-03 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9235491B2 (en) 2012-09-28 2016-01-12 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9164746B2 (en) * 2012-10-31 2015-10-20 Wal-Mart Stores, Inc. Automatic topology extraction and plotting with correlation to real time analytic data
US8930936B2 (en) 2012-11-06 2015-01-06 International Business Machines Corporation Loading remote binaries onto a write-protected device
KR102081167B1 (ko) * 2012-11-13 2020-02-26 삼성전자주식회사 메모리 장치를 이용하는 방법 및 그 장치
US9489189B2 (en) * 2013-02-21 2016-11-08 Oracle International Corporation Dynamically generate and execute a context-specific patch installation procedure on a computing system
WO2014197521A1 (en) 2013-06-03 2014-12-11 Seven Networks, Inc. Blocking/unblocking algorithms for signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
CN103530148B (zh) * 2013-09-18 2016-09-07 国云科技股份有限公司 一种大型Linux软件包的发布方法
US10298468B2 (en) * 2014-01-18 2019-05-21 Intel Corporation Provisioning persistent, dynamic and secure cloud services
US20150312102A1 (en) * 2014-02-18 2015-10-29 Seven Networks, Inc. Policy management for signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9513847B2 (en) * 2014-03-03 2016-12-06 Ricoh Company, Ltd. Tools for facilitating printer installation
US9426028B2 (en) * 2014-06-10 2016-08-23 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Configuring a computing system to delay a system update
WO2016056236A1 (ja) * 2014-10-08 2016-04-14 日本電気株式会社 情報処理装置、情報処理方法、及び、記録媒体
JP2016177445A (ja) * 2015-03-19 2016-10-06 株式会社リコー 情報処理装置、プログラムおよび情報処理システム
US10031747B2 (en) * 2015-12-15 2018-07-24 Impetus Technologies, Inc. System and method for registration of a custom component in a distributed computing pipeline
CN105589721A (zh) * 2015-12-22 2016-05-18 国云科技股份有限公司 一种批量更新Linux虚拟机系统补丁的方法
US10313206B1 (en) * 2015-12-23 2019-06-04 Apstra, Inc. Verifying service status
JP6661409B2 (ja) * 2016-03-01 2020-03-11 キヤノン株式会社 自動設置システム、情報処理装置、情報処理装置の制御方法、及びプログラム
US10853089B2 (en) 2016-03-30 2020-12-01 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Dynamically loading firmware based on geographic location
US9921851B2 (en) * 2016-03-30 2018-03-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamically loading firmware based on workloads
US10216510B2 (en) * 2016-06-04 2019-02-26 Airwatch Llc Silent upgrade of software with dependencies
US10534688B2 (en) * 2016-09-30 2020-01-14 Intel Corporation Trace hub logic with automatic event triggering
US10623526B2 (en) * 2016-10-03 2020-04-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamically configuring multi-mode hardware components based on workload requirements
US10761827B2 (en) * 2016-11-30 2020-09-01 Vmware, Inc. WIN32 software distribution architecture
US10411973B2 (en) 2017-03-20 2019-09-10 Red Hat, Inc. Automatic microservice problem detection in enterprise applications
US10560432B1 (en) * 2017-06-09 2020-02-11 Amazon Technologies, Inc. Centralized management of remote endpoint devices
CN109240733A (zh) * 2017-07-03 2019-01-18 Tcl集团股份有限公司 一种基于安卓系统更新广告sdk的方法及终端
US10521218B2 (en) * 2017-10-09 2019-12-31 Microsoft Technology Licensing, Llc Enhanced techniques for updating software
US10956143B2 (en) * 2017-12-06 2021-03-23 Hewlett Packard Enterprise Development Lp Server updates
EP3514679B1 (en) * 2018-01-22 2023-06-07 Top Victory Investments Limited Method and system for updating a software program installed in an electronic device
US10909210B2 (en) 2018-03-22 2021-02-02 Ovh Method and system for defining a web site development strategy
US10789058B2 (en) * 2018-05-30 2020-09-29 Microsoft Technology Licensing, Llc Extensibility of unified platform
US10956136B2 (en) 2018-10-16 2021-03-23 Ebay, Inc. User interface resource file optimization
US11042601B2 (en) 2018-11-15 2021-06-22 Ovh Method for attracting users to a web page and server implementing the method
CN109656577B (zh) * 2018-12-07 2022-02-25 陕西瑞迅电子信息技术有限公司 一种工控机自定义rom的方法及装置
US11137996B2 (en) 2019-02-28 2021-10-05 International Business Machines Corporation Cognitive service updates via container instantiation
US11526565B2 (en) 2019-04-05 2022-12-13 Ovh Method of and system for clustering search queries
US11075805B1 (en) 2019-04-24 2021-07-27 Juniper Networks, Inc. Business policy management for self-driving network
CN110286926B (zh) * 2019-06-20 2021-05-11 西北工业大学 一种工业机器更新方法及装置
US10785106B1 (en) * 2019-07-29 2020-09-22 Microsoft Technology Licensing Llc Configuration change control for computing environments
CN111371885B (zh) * 2020-02-29 2022-02-18 苏州浪潮智能科技有限公司 一种向VMWare虚拟机传输文件的方法、装置、设备和介质
CN111580873B (zh) * 2020-04-01 2023-11-07 北京小米松果电子有限公司 页面更新方法及装置、终端、存储介质
US11269609B2 (en) * 2020-04-02 2022-03-08 Vmware, Inc. Desired state model for managing lifecycle of virtualization software
US11334341B2 (en) 2020-04-02 2022-05-17 Vmware, Inc. Desired state model for managing lifecycle of virtualization software
US11194561B1 (en) * 2020-07-08 2021-12-07 Vmware, Inc. System and method for generating and recommending desired state of virtualization software
US11200069B1 (en) 2020-08-21 2021-12-14 Honeywell International Inc. Systems and methods for generating a software application
US11334334B2 (en) * 2020-08-27 2022-05-17 Red Hat, Inc. Generating a software release based on controller metadata
CN114416109B (zh) * 2021-12-15 2023-01-10 广州市玄武无线科技股份有限公司 程序部署方法及其装置、计算机设备、存储介质
US12086581B2 (en) * 2021-12-30 2024-09-10 Dell Products L.P. Increased resource usage efficiency in providing updates to distributed computing devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1894661A (zh) * 2003-03-20 2007-01-10 派曲林克股份有限公司 非入侵式自动站外补丁指纹识别和更新的系统以及方法
CN1936844A (zh) * 2005-09-23 2007-03-28 三星电子株式会社 用于更新软件的方法和系统

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205527B1 (en) 1998-02-24 2001-03-20 Adaptec, Inc. Intelligent backup and restoring system and method for implementing the same
US6385766B1 (en) 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
TW495675B (en) * 2000-09-14 2002-07-21 Acer Ipull Inc System for updating program executable being running and the method thereof
EP1327191B1 (en) 2000-09-22 2013-10-23 Lumension Security, Inc. Non-invasive automatic offsite patch fingerprinting and updating system and method
US20020062287A1 (en) 2000-09-26 2002-05-23 Katz James S. Peripheral device detection and notification
US20020116497A1 (en) 2000-12-07 2002-08-22 Tung Berkat S. Method for managing PC to PC audio communications
US6898610B2 (en) 2001-02-28 2005-05-24 Technicolor Digital Cinema Llc Apparatus and method for space allocation of image and audio information
US6523103B2 (en) * 2001-07-17 2003-02-18 Agilent Technologies, Inc. Disablement of a write filter stored on a write-protected partition
US7200845B2 (en) 2001-12-03 2007-04-03 Hewlett-Packard Development Company, L.P. System and method for high availability firmware load
US20030120624A1 (en) 2001-12-10 2003-06-26 Poppenga Burton H. System and method for efficiently installing and configuring device drivers in managed environments
US7275105B2 (en) 2002-01-16 2007-09-25 Laszlo Systems, Inc. Enabling online and offline operation
US7036040B2 (en) 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
US8225306B2 (en) 2002-12-12 2012-07-17 Dell Products L.P. Platform independent imaging method and system
US7493376B1 (en) 2002-12-24 2009-02-17 Cisco Technology, Inc. Method and apparatus for monitoring responses of configuration commands using a MIB-based approach
US7185071B2 (en) 2002-12-24 2007-02-27 International Business Machines Corporation Self-healing version and configuration model for an application server
US7584467B2 (en) 2003-03-17 2009-09-01 Microsoft Corporation Software updating system and method
US7308547B2 (en) 2003-07-30 2007-12-11 Agilent Technologies, Inc. Apparatus and method for control of write filter
US7293272B1 (en) 2004-02-26 2007-11-06 Veritas Operating Corporation Device driver processing for automated system restores
US7493511B1 (en) 2004-08-27 2009-02-17 Xilinx, Inc. Network media access controller embedded in a programmable logic device—transmit-side client interface
US7631194B2 (en) 2004-09-09 2009-12-08 Microsoft Corporation Method, system, and apparatus for creating saved searches and auto discovery groups for a data protection system
US20060075001A1 (en) 2004-09-30 2006-04-06 Canning Jeffrey C System, method and program to distribute program updates
US8291045B2 (en) 2005-02-14 2012-10-16 Microsoft Corporation Branded content
US20060265756A1 (en) 2005-05-11 2006-11-23 Microsoft Corporation Disk protection using enhanced write filter
US7861238B2 (en) * 2005-12-19 2010-12-28 Seiko Epson Corporation Configuration tool and method of updating an archive file property relating to at least one point-of-sale peripheral
US8566418B2 (en) 2006-05-04 2013-10-22 Samsung Electronics Co., Ltd Configurable system for using Internet services on CE devices
US8607223B2 (en) 2006-07-28 2013-12-10 International Business Machines Corporation Creating multiplatform customized install packages for software installation
US8249260B2 (en) 2007-04-13 2012-08-21 Qualcomm Incorporated Method and apparatus for audio path filter tuning
US7877360B2 (en) 2008-01-15 2011-01-25 International Business Machines Corporation Recovery point identification in CDP environments
US8204916B2 (en) 2008-03-06 2012-06-19 Microsoft Corporation Hierarchical presentation of search results
US20100250653A1 (en) * 2009-01-29 2010-09-30 Brandon Hudgeons Method and system for providing cross-domain communication
ES2425427T3 (es) * 2009-06-02 2013-10-15 Nokia Siemens Networks Oy Integración de elemento de red
US8966475B2 (en) 2009-08-10 2015-02-24 Novell, Inc. Workload management for heterogeneous hosts in a computing system environment
US20110041124A1 (en) 2009-08-17 2011-02-17 Fishman Neil S Version Management System
US8826268B2 (en) * 2010-03-08 2014-09-02 Microsoft Corporation Virtual software application deployment configurations
CN101834845B (zh) * 2010-03-26 2012-11-28 南京联创科技集团股份有限公司 基于tcp短连接的soap客户端协议封装方法
US20150074561A1 (en) * 2010-05-07 2015-03-12 Google Inc. Customizable themes for browsers and web content
US20110320504A1 (en) * 2010-06-28 2011-12-29 International Business Machines Corporation Modeling for event enabled content management systems
JP5559001B2 (ja) 2010-10-15 2014-07-23 株式会社日立ソリューションズ 組込プログラム更新方法、組込プログラム更新プログラム、電子機器、ネットワークシステム
JP5548825B2 (ja) * 2011-02-28 2014-07-16 株式会社日立製作所 情報処理装置
US9342254B2 (en) 2011-06-04 2016-05-17 Microsoft Technology Licensing, Llc Sector-based write filtering with selective file and registry exclusions
US8612516B2 (en) 2011-11-28 2013-12-17 Wyse Technology Inc. Deployment of a driver or an application on a client device having a write-filter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1894661A (zh) * 2003-03-20 2007-01-10 派曲林克股份有限公司 非入侵式自动站外补丁指纹识别和更新的系统以及方法
CN1936844A (zh) * 2005-09-23 2007-03-28 三星电子株式会社 用于更新软件的方法和系统
EP1770512A2 (en) * 2005-09-23 2007-04-04 Samsung Electronics Co, Ltd Method and system for updating software

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107278363A (zh) * 2015-03-27 2017-10-20 英特尔公司 用于网络通信的系统和技术
WO2018137373A1 (zh) * 2017-01-26 2018-08-02 华为技术有限公司 一种数据配置方法及数据配置装置
CN108363545A (zh) * 2017-01-26 2018-08-03 华为技术有限公司 一种数据配置方法及数据配置装置
US11163553B2 (en) 2017-01-26 2021-11-02 Huawei Technologies Co., Ltd. Data configuration method and data configuration apparatus
CN109460251A (zh) * 2018-09-03 2019-03-12 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 构件集成框架管理方法和装置
CN109460251B (zh) * 2018-09-03 2022-04-01 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 构件集成框架管理方法和装置

Also Published As

Publication number Publication date
EP2786246A1 (en) 2014-10-08
EP2786246B1 (en) 2018-09-26
CN104137065B (zh) 2018-04-10
US9146729B2 (en) 2015-09-29
WO2013081666A1 (en) 2013-06-06
US20140082602A1 (en) 2014-03-20
US20130138783A1 (en) 2013-05-30
IN2014CN04653A (zh) 2015-09-18
EP2786246A4 (en) 2015-05-06
US8606892B2 (en) 2013-12-10

Similar Documents

Publication Publication Date Title
CN104137065A (zh) 在客户端设备上使用可扩展标记语言(xml)配置文件部署和更新应用和驱动
CN104094226A (zh) 使用部署配置文件自动更新客户端设备上的应用或者驱动
CN104094256B (zh) 在具有写入过滤器的客户端设备上部署驱动或者应用
CN104094225A (zh) 创建或安装用于具有多个硬件平台中的一个的目标装置的磁盘映像
US9081747B1 (en) Computer program deployment to one or more target devices
US9928041B2 (en) Managing a software appliance
US8892700B2 (en) Collecting and altering firmware configurations of target machines in a software provisioning environment
US8782204B2 (en) Monitoring hardware resources in a software provisioning environment
US8402123B2 (en) Systems and methods for inventorying un-provisioned systems in a software provisioning environment
US8935687B2 (en) Incrementally updating a software appliance
US20100306337A1 (en) Systems and methods for cloning target machines in a software provisioning environment
US20100058328A1 (en) Systems and methods for differential software provisioning on virtual machines having different configurations
US20090007097A1 (en) Product install and configuration providing choice of new installation and re-use of existing installation
US8589912B2 (en) Loosely coupled product install and configuration
CN103412769A (zh) 外接卡参数配置方法、设备以及系统
KR20170017713A (ko) 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법
US9367302B2 (en) Generating client qualification to execute package update manager
CN103365684B (zh) 更新方法和多域嵌入式系统
WO2010051045A1 (en) Imaging process

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220526

Address after: Texas, USA

Patentee after: DELL marketing

Address before: California, USA

Patentee before: WYSE TECHNOLOGY Inc.