专利名称:利用配置管理器的回滚与安全特性在移动计算设备上安装软件的制作方法
技术领域:
本发明涉及软件安装技术领域,特别是涉及使用一种配置管理器的回滚与安全特性在移动计算设备上安装软件的方法、系统、计算机程序产品和数据结构。
(2)背景技术计算机变革了我们的生活方式。一台通用的计算设备的功能部件可以分为两个总类,即,硬件和软件。举例而言,硬件包括一个或多个处理器、多种的存储器(如RAM、ROM、FLASH、硬盘驱动器、CD-ROM等)、用户接口(如显示器、键盘、鼠标、扬声器、打印机、扫描仪等)和联网设备(如调制解调器、网络接口卡、天线等)。软件则包含在由处理器执行时控制硬件的多种操作,使硬件能以某种方式交互作用,完成某些任务。典型的计算设备包含多种软件,能实现大量的功能。
为了进一步改善计算设备的操作能力,经常希望能在计算设备上添加额外的软件。为安装这样的软件,计算设备要访问某个安装文件。安装文件一般包含存储在计算设备上某个合适目录处的许多最终需要解开的压缩文件。安装文件还包括为了以恰当地安装这些解压文件需循序的一系列指令。举例来说,这样的指令可以引导计算设备解压文件、移动文件、复制文件、删除文件或设定配置信息。
一个典型的安装过程本质上是由计算设备的用户启动的。举例来说,用户可以购买在计算机可读取媒介如硬盘、CDROM等上的软件,或可以通过网络下载软件。可是,在移动计算设备上要采用某种相对新的安装形式。特别是,移动计算设备能接收到新软件可用的通知,然后一般会给用户一个接受该新软件的选项。如果接受,就可以潜在地将该软件下载到要安装的移动计算设备上。
用于常规通用计算机的操作系统一般提供某些安全层次,以确保能适当地将进程和个人所可能执行的操作类型限制在特定的文件上或特定的目录中。但是,由于移动计算设备与膝上或桌面计算机相比相对有限的存储和处理能力,用于移动设备的操作系统可能只具有削弱了的功能。
由于如此的处理和存储限制,这样的操作系统经常可能在安全控制的种类上受限。况且,当响应某个对移动计算设备的异步通知而下载某个安装软件时,软件提供者的可信度就更成问题。因此,当在某个处理和存储能力受限的环境中安装软件时,就希望有能提供安全性的系统、方法、计算机程序产品和数据结构。
而且,安装过程可能由于这样那样的原因而失败。举例来说,计算系统可能会崩溃,或者安装软件可能会试图操作未授权该安装软件操作的文件、目录或配置设定。如果软件安装失败,操作系统可能会存储错误的预示软件安装成功的配置设定。而且,安装的部分文件可能会被存储在计算设备上,即使由于安装失败这些文件已经无用。此外,无用的文件占据大量的存储空间,这在如移动计算设备那样的有限存储器的环境内特别不利。因此,如果在某个移动计算环境中安装失败,就进一步希望有能倒转安装效果的系统、方法、计算机程序产品和数据结构。
(3)发明内容描述了使移动计算设备能使用配置管理器安装软件,从而可以在安装过程中利用配置管理器的回滚与安全特性的系统、方法、计算机程序产品和数据结构。如果安装由于某种原因未成功或需要倒转,回滚特性能完全倒转安装的效果。关于操作中在哪个目录与文件上可以执行什么操作,安全特性能实现适当的访问控制。
在某实例中,已经利用配置管理器在设定配置信息的环境中实现了这些回滚与安全特性。通过不仅在配置设定环境而且在目录和文件操作环境中将这一功能应用于安装,就最大限度地减小了将回滚与安全功能应用于安装过程的存储和处理的负担。这在与膝上或桌面计算机相比一般只有相对有限的存储和处理能力的移动计算设备如蜂窝电话和个人数字助理(PDA)环境中特别重要。
本发明可以在某个驻留了可用于安装软件,如某个新的应用或补丁的安装文件的网络环境中实现。该网络也包括了某种移动计算设备。举例来说,该网络环境可以包括一台服务器,通过一个蜂窝电话网向蜂窝电话下载安装文件,也可以包括一台桌面个人计算机,通过一个坞架(docking cradle)向PDA传送安装文件。
如本发明所述,作为安装的一部分,移动计算设备会访问将要安装在该移动计算设备上的一个或多个文件的至少一个版本。举例而言,这些文件可以是压缩形式的,以保证网络带宽的有效利用,或者也可以是未压缩的。
移动计算设备还访问定义了如何将文件安装到该移动计算设备上的计算机可执行指令。举例而言,这样的指令可以包括对复制、移动或删除文件的指示,以及对设定配置信息的指示。要安装的文件以及安装指令可以作为部分而包含在单个的安装文件中。
这些计算机可执行指令是可直接由一个与该移动计算设备相关的配置管理器来解释的。举例而言,这些计算机可执行指令可以按照某种特定模式,如以可扩展标记语言(XML)规范定义的语言的特定模式来构造。这种特定模式可以是一套规则,在其中,结构内值的意义可从该结构内值的上下文环境获得。
而后配置管理器使这些计算机可执行指令得以执行。举例而言,配置管理器可以直接执行这些指令,或者可能让另一组件(如配置服务供应器)来执行某些指令。举例来说,配置管理器可能会让一个文件配置服务供应器来执行文件操作指令,而让一个注册表服务供应器来执行配置操作指令。
在这些指令的执行中,配置管理器可以实现回滚与安全功能。如果由于某种原因安装失败或不再需要,回滚特性能使安装的效果倒转。
这样,如果安装失败,移动计算设备就能回到其原来的状态。不再有预示成功安装的不希望的配置设定的改变。因此,移动计算设备的处理就不会被错误的配置设定所妨碍。而且,也不再有着眼于成功安装而安装的无用的散乱文件。因此,移动计算设备的存储器就能被节省,而不必存储作为失败安装的结果的无用信息。在处理和存储能力相对有限的移动计算设备环境中,这是特别有益的。
在执行安装指令时,通过检查判定每个安装指令的执行是否被授权,配置管理器还可以用来实现安全性。以这种方式,移动计算设备可以保护其自身,不让无聊或疏忽的新软件提供者执行对该移动计算设备总体上有害的安装指令。
本发明另外的特性与益处将在后面的描述中阐明,其在描述中部分地将是明显的,或可以通过本发明的实践来获悉。本发明的特性与益处可以通过在所附权利要求中所特别指出的设备与组合的手段来认识与获得。本发明的这些与其它特性通过下面的描述和所附的权利要求将更充分地彰显,或可以如下文中所阐明的那样,通过本发明的实践来获悉。
(4)
为了描述可以获得本发明上述及其它益处和特性的方式,将通过参照在附图中例示的详细实施例来呈现对上面已简要描述的本发明更为详细的描述。请理解这些图只是描述了本发明的典型实施例,因此不可认为是对其范围的限制,而本发明可以通过使用附图以另外的特性与细节来加以描述和解释。这些附图包括图1例示了一个可以用于向移动计算设备递送安装文件的示例网络环境;图2例示了一个可按照本发明原则在其上可安装新软件的移动计算设备的操作部件;图3例示了一个可以用于在移动计算设备上安装新软件的各种部件的架构;图4例示了一个使用配置管理器的回滚与安全特性在移动计算设备上安装新软件的方法的流程图;图5例示了一个包括要安装的文件及一个引导安装的指令部分的安装文件的数据结构。
(5)具体实施方式
本发明提供了使用配置管理器安装软件,从而可以在安装过程中利用配置管理器的回滚与安全特性的系统、方法、计算机程序产品和数据结构。如果安装由于某种原因未成功或需要倒转,回滚特性能完全倒转安装的效果。关于安装过程中在哪个目录与文件上可以执行什么操作,安全特性能实现适当的访问控制。
一台移动计算设备访问一个安装文件。该安装文件包含一个或多个要安装在该移动计算设备上的文件(此处也称作“要安装的文件”),以及用于安装这些文件的计算机可执行指令(此处也称作“安装指令”)。安装器将这些安装指令传递给配置管理器并解压要安装的文件。这些安装指令是某种可由配置管理器直接解释的格式。然后配置管理器通过例如解析这些安装指令并将指令传递给适当的配置服务供应器来使这些安装指令得以执行。
为了实现回滚特性,配置管理器构造一个回滚文档。如果安装最终成功,则将这次安装作为一次单独的事务而提交。相反,如果安装失败,则通过执行该回滚文档来倒转安装过程。在一个实施例中,将在持久性的存储器中维护关于事务的状态信息。这样,如果移动计算设备掉电,事务状态在供电恢复时仍可用于继续该事务。如此,该事务就可以挺过供电的中断。
通过检查判定每条安装指令的执行是否已授权,配置管理器还可以用来在执行安装指令时实现安全性。特别是,在接收到一个安装文件后,该安装文件就被根据与安装文件一起提供的信任状而赋予一个角色掩码。角色掩码被用来确定在移动计算设备上的什么文件与设定上可以进行什么安装操作。如果该安装指令表现为任何未经授权的操作,则配置管理器会确保不执行该安装,并使移动计算设备保持在其安装前的状态。通过这样做,移动计算设备就可以保护其自身,不让新软件提供者执行对该移动计算设备有害的安装操作。
如将在下面更详细讨论的那样,本发明的实施例可以包含一台包括了多种计算机硬件的专用或通用的计算设备。本发明范围内的实施例还包括用来在其上承载或存储计算机可执行指令或数据结构的计算机可读取媒介。这样的计算机可读取媒介可以是能由通用或专用计算机访问的任何可用媒介。举例而言,但非限制,这样的计算机可读取媒介可以包括物理存储媒介,如RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备,或可以用来承载或存储所期望的以计算机可执行指令或数据结构形式并可由通用或专用计算机访问的程序代码手段的任何其它媒介。
当通过一个网络或另一通信连接(可以是硬连线的、无线的或硬连线与无线组合的)将信息传送或提供给一台计算机时,该计算机可以恰当地将该连接看作一个计算机可读取媒介。上述的组合也包括在计算机可读取媒介的范围内。因此,任何这样的连接都可被恰当地称为计算机可读取媒介。计算机可执行指令则包括例如让通用计算机、专用计算机或专用处理设备执行某些功能或功能组的指令和数据。
尽管没有要求,仍将在由计算设备执行的计算机可执行指令,如程序模块的一般环境中描述本发明。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例行程序、程序、对象、组件、数据结构等。计算机可执行指令、相关数据结构和程序模块表示了用以执行此处披露的方法步骤的程序代码手段的示例。这些可执行指令或相关数据结构的特定序列则表现了用以实现在这些步骤中所描述功能的相应动作的示例。
相关领域的行家将会理解,本发明可以在具有多种计算机系统配置的网络计算环境中实现,这些计算机系统配置包括个人计算机、手持设备、多处理器系统、基于微处理器的或可编程的消费电子品、网络PC、小型计算机、大型计算机等。本发明也可以在分布式计算环境中实现,其中由本地的或通过一个通信网络而相联接(通过硬连线链路、无线链路或硬连线链路与无线链路的组合)远端处理设备来执行任务。在一个在分布式计算环境中,程序模块可以位于本地和远端者的记忆存储设备上。
图1例示了一个网络环境100,在其中可以将一个安装文件递送给一台移动计算设备。网络环境100主要包括一台通过一个无线链路103与移动计算设备102通信的服务器101。
服务器101可以是移动计算设备102的主要连接点,如公共无线服务提供者(如某个蜂窝运载者)或某个专用无线通信网络(如某个公司通信网络)。服务器101也还可以是一台与主要连接点合作的专用服务器。
移动计算设备102在下面参考图2和3来进一步详细例示与描述。简要地说,移动计算设备102是一台包括了移动电话功能及典型个人数字助理(PDA)功能的手持计算设备。
服务器101和移动计算设备102通过一个无线链路103互相通信,无线链路103可以是任何无线通信的装置,如无线电频率链路等。举例而言,服务器101可以检测到可用于安装到移动计算设备102上的新软件(如新的应用、更新或补丁)。然后服务器101通过无线链路103向移动计算设备102发出一个安装通报104,通知移动计算设备102有新的可用的软件。在图1中以第一个箭头来表示这一通报。这一通报可以通过一个无线电话网络,使用无线应用协议(WAP)推送通报、超文本传输协议(HTTP)推送通报或无论是当前存在还是将要开发的任何其它可能的通报方法来予以实现。
这样的通报方法有很多种。举例来说,用户可以使用移动计算设备102的一个浏览器来导引一个公司网络或互联网,找到某个下载站点。用户通过选择某个与安装文件相应的链接来同意安装。然后浏览器就提交一个对该安装文件的请求(如一个HTTP GET命令),而该安装文件就将会自动下载。
可作替换的是,移动计算设备102也可以插入一个经由通用串行总线(USB)或串行线缆与桌面计算机或膝上计算机连接的坞架。桌面计算机就可以使用同步软件(如ActiveSync)来向移动计算设备下载安装文件。用户通过让安装文件下载到移动计算设备102来允许安装。
在另一个例子中,安装文件作为附件或链接被包含在发往移动计算设备102的电子邮件或文本短消息内。用户可以通过选择该附件或链接来允许安装。
运载者还可以将服务提示(SI)和服务加载(SL)消息通过推送代理网关(PPG)发送给移动计算设备102。移动计算设备102可以配置成将这些专用的文本短消息服务(SMS)的消息放置到一个收件箱中。如果是一个SI消息,用户就通过选择该消息中的一个链接来允许安装。如果是一个SL消息,设备就自已试图下载安装文件。
安装文件可以存储在一块“多媒体卡”(MMC)存储卡上。如果该MMC卡包含一个“自动运行”文件,而“自动运行”在该移动计算设备上可以实现,MMC甚至可以自动启动一个安装脚本。在这种情况下,用户通过插入MMC设备来允许安装。
如果移动计算设备102允许安装,就提交一个对与新软件相关的安装文件的请求。这可以是一个HTTP GET请求的形式,在图1中以第二个箭头表示。而后安装文件105就被下载到移动计算设备102上。举例来说,安装文件105可以在响应HTTP GET请求的同一会话中下载。安装文件105的下载在图1中以第三个箭头表示。而后移动计算设备102如下面与图3至6相关而进一步描述的那样,使用安装文件105来安装新软件。
尽管这里主要描述了通过无线链路103将安装文件105递送给移动计算设备102的环境,可以理解这只是下载安装文件105的一种实施例。上面描述了将安装文件105递送给移动计算设备102的几种方法,某些是面向网络的,某些不是。因此,图1中的第二个和第三个箭头可以表示任何形式的通信,用户在其中允许安装,而安装文件在移动计算设备102上执行。
图2进一步详细例示了移动计算设备102。移动计算设备102包含了一个用户接口201,用以让用户通过一个输入用户接口203输入信息,并经由一个输出用户接口202检查所显示的信息。举例来说,输出用户接口202包括一个用以向用户表现音频信息的扬声器204,及一个用以向用户表现视频信息的显示器。移动计算设备102还有一根用以通过无线链路103与服务器101无线通信的天线209。
输入用户接口203可以包括一个用以将音频信息呈现为电子形式的话筒206。另外,输入用户接口203还包括以12个按键表示的拨号控件207,用户通过它可以拨出电话号码、输入文本消息或指示移动计算设备102发送数据消息。输入用户接口203还包括导引控制按键208,它帮助用户引导在显示器205上可能列出的多个条目与选项。
尽管移动计算设备102具有移动电话的外观,其看不见的特性可以实现复杂与灵活的通用处理能力。举例而言,移动计算设备还包括了一个处理器211和一个存储器212,它们互相连接,并经由一个总线210与用户接口201相连。从历史上看,移动计算设备如蜂窝电话与PDA的处理和存储能力与膝上和桌面个人计算机相比是相对有限的。存储器212一般表现为可以使用的很多种易失和/或不易失的存储器。在移动计算设备102中使用的存储器的特定种类对本发明是不重要的。
由一个或多个程序模块组成的程序代码手段可以存储在存储器212中。多个程序模块之一可以包括一个操作系统213、一个或多个应用程序214、其它程序模块215和程序数据216。在图2中例示的环境只是示例性的,并不代表本发明的原则可在其中得以实现的多种移动计算设备中的即使一小部分。
图3示意性地例示了一个可以由移动计算设备102实现的架构300。详细来说,在图2中例示的组件包括了几个功能性的组件如调度程序301、安装器302、配置管理器303、解析器304、回滚起草器305、反安装器306、安全模块307、文件配置服务供应器(CSP)308和注册表CSP309。这些功能组件可以是如移动计算设备102的应用程序214、程序模块215或操作系统213各部分之一。回滚文档310可以是如移动计算设备102的程序数据216的一部分。
如果安装文件105的递送要通过网络,则调度程序301接收安装通报104,并可选地从服务器101检索安装文件105。然后调度程序301触发安装器302使用安装文件105安装新软件。而后图3的架构300就可以使用图4的方法来利用配置管理器的回滚与安全特性安装新软件。因此,图3架构的余下部分(实质上是除调度程序310外的所有组件)将频繁参照图4来予以描述。
参照图4的方法400,移动计算设备102访问将要安装到该移动计算设备上作为新软件安装的一部分的一个或多个文件的至少一个版本(动作401)。举例来说,为了确保网络带宽的有效利用,这些文件可以是压缩形式的,在这种情况下移动计算设备将访问这些文件的一个压缩版本。但是,一个安装文件也可以包含这些文件自身,不用任何压缩。
移动计算设备102还访问定义了如何将这些文件安装到该移动计算设备上的计算机可执行指令(动作402)。举例来说,这些指令可以包括对复制、移动或删除文件的指示,以及对设定配置信息的指示。
所要安装的文件及安装指令可以包含为安装文件105的一部分。在这种情况下,访问所要安装的文件的动作(动作401)和访问安装指令的动作(动作404)可以由安装器302简单地访问一个单独的安装文件如安装文件105来实现。图5示意性地例示了安装文件105的一个数据结构500。数据结构500包含了所要安装的多个文件,如文件503a至503d。数据结构500还包含了用于指示如何在移动计算设备102上安装文件503的安装指令501。
安装指令501直接由配置管理器303解释。举例而言,安装指令501可以按照某种特定的模式来构造。在图5中以由粗线突出标注的模式502的安装指令501来表示安装指令501遵循这一模式。在下面将进一步描述一个遵循某个使用可扩展标记语言(XML)规范的模式的安装指令示例。在这一描述和权利要求中,“模式”被定义为一套规则,通过其可以组织某种数据结构,在该结构内数值的意义可从该结构内数值的上下文环境获得。
按常规途径,安装指令直接由一个专门化的安装器来执行。然而,按照本发明,安装器302只是辅助安装过程。详细来说,安装器302将所要安装的文件解压(假设它们是压缩形式的),然后将它们存储到存储器212中。安装器302还将安装指令501传递给配置管理器。在某些实施例中,配置管理器302可以直接执行安装指令。然而,在这里描述的实施例中,配置管理器303使用一个解析器304解析安装指令,并将适当的安装指令路由给其它适当的组件。举例来说,配置管理器303可以让一个文件配置服务供应器308来执行文件操作指令(如移动文件、复制文件或删除文件),而让一个注册表配置服务供应器309来执行配置操作指令。
以前,配置管理器303仅仅是利用一个配置服务供应器来负责改变或者说管理配置设定。可是,本发明的原则将监视全部安装操作的责任也分配给了配置管理器303。这样,配置管理器提供给配置信息设定的任何功能就都被应用于文件操作。文件操作和配置设定指令都按照配置管理器303所遵循的某种模式来构造。这样,配置管理器303就可以在对配置管理器303的操作与编码作最小改动下,解析配置设定指令及文件操作指令两者。最低限度,配置管理器303只需要识别出文件操作指令,并将文件操作指令传递给某个能够实现文件操作的组件(如文件CSP 308)。
以这种方式,配置管理器303在设定配置信息环境下的功能就可以被扩展到安装过程。举例而言,在动作405中执行安装指令的过程中,配置管理器可以实现回滚与安全功能。如果由于某种原因安装失败或不再被需要,回滚特性允许安装的效果被倒转。首先将描述安装过程的回滚特性,接着是对安装过程的安全特性的描述。
参照图3,配置管理器303的回滚特性由该配置管理器303可直接或间接访问的回滚起草器305、回滚文档310和反安装器306来予以支持。在名为“用于连续提供移动服务的系统与方法”的一般拥有并且未决的美国专利申请(序列编号09/895471,2001年6月29日归档,在此完整附录以供参考)中,描述了有关配置管理器如何使用回滚特性来在事务基础上设定配置信息的细节。
尽管在上面附作参考的相应申请中已描述了详细的回滚操作,现在这里还是参照图4简要地描述一下回滚操作。图4例示了一个使用配置管理器303以某种事务方式来安装新软件的步骤(步骤402)。该步骤包括了前已描述的相应的动作404和405,以及相应的动作406和407。
详细来说,配置管理器303使回滚文档310得以构造(动作406)。作为安装的一部分,移动计算设备102可以接收一个可能是或包括安装文件105的供应文档。该供应文档包含了关于需要哪些配置服务供应器来完成安装的信息,因此就识别出哪些配置服务供应器需要实例化。配置管理器303根据这些信息实例化文件CSP308和注册表CSP309(以及任何其它所需要的CSP)。
然后配置管理器303识别出可能作为安装结果被改变的文件和/或其它数据项。举例而言,配置管理器303询问文件CSP308要作为安装的一部分而被改变的任何文件的当前状态,并询问注册表CSP309要作为安装的一部分而被改变的任何配置变化的当前状态。而后配置管理器303将这些当前状态编入回滚文档310。这样,回滚文档310就表示了移动计算设备那些很有可能作为安装的结果而改变的数据项在安装前的状态。
然后配置管理器303判定安装是否已经或将要成功(动作407)。举例而言,配置管理器303将相应的指令传递给相应的CSP,并询问每个CSP这是否将得到成功安装。如果CSP中的任何一个提示安装将不成功,配置管理器303就判定该安装将不成功(在判定框407中为NO)。例如,可能有某个CSP检测出一个或多个安装指令对于安装文件的识别并未授权执行。在某种实施例中,这使用赋予安装文件的角色掩码来完成。关于CSP如何使用角色掩码来实现安全性将在后面描述。如果在执行安装指令前就判定安装将不成功,就没有必要在动作410中执行回滚文档。取而代之的是,配置管理器303可以简单地拒绝执行该安装。
如果通过这一询问过程判定安装很有可能成功(在判定框407中为YES),则配置管理器303提交该事务(动作409)。详细来说,配置管理器303指示每个CSP实施它们相应的安装指令。如果由于某种原因,安装尽管有预备询问仍失败了,则配置管理器303判定安装为未成功(在判定框407中为NO)。由于在这一判定的时刻安装指令已经被执行,所以配置管理器303要使用回滚文档310来将移动计算设备102恢复到其安装前的状态(动作410)。这就以某种事务方式完成了安装新软件的步骤。
这样,如果安装失败,移动计算设备102就回到其原来的状态。不再有预示成功安装的不需要的配置设定的变化。因此,移动计算设备的处理就不会被错误的配置设定所妨碍。而且,也不再有着眼于成功安装而安装的无用的散乱文件。因此,移动计算设备102的存储器就能被节省,而不必存储作为失败安装的结果的无用信息。
在图3中所例示的架构300不仅支持在某种事务基础上安装新软件,而且利用配置管理器303所提供的安全特性来有条件地安装新软件。具体来说,安全模块307特别地支持这些安全特性,而安全模块307对于配置管理器303是直接或间接可访问的。在名为“用于经过空中的配置安全的系统与方法”的一般拥有并且未决的美国专利申请(序列编号09/843901,2001年4月27日归档,在此完整附录以供参考)中,描述了配置管理器如何在设定配置信息时提供安全性的细节。
参照图4,例示了一个利用配置管理器303的安全特性来有条件地安装新软件的步骤(步骤403)。该步骤包括了前已描述的相应的动作404和405,以及相应的动作408。详细来说,配置管理器303询问CSP它们是否能够执行它们相应的安装指令。作为响应,CSP检查确定是否每个安装指令是否都已授权(动作408)。CSP可以利用赋予安装文件的某个角色掩码来完成这一任务。角色掩码可以随查询而传递给多个CSP。
角色掩码按现在所描述的这样来赋予和使用。当初始创建一个安装文件时,该安装文件可以是有标记或无标记的。安装文件的标记可以通过使用软件如MicrosoftAuthenticode来将一个证书包含到安装文件中而完成。然后移动计算设备102将该证书与某个相应的角色掩码相匹配。每个角色掩码都可以对应于一个适当的证书。而后移动计算设备102将角色掩码赋予相应的安装文件。如果安装文件是无标记的,或具有一个与角色掩码不匹配的证书,则赋予一个缺省的角色掩码,该角色掩码对应于用于某个未鉴别的安装文件来源的适当的安全权限。在有些情况下,这可能意味着根本没有安全权限。
如果对于给定的角色掩码有任何安装指令没有授权,则配置管理器303可以如上面描述的那样制止安装。以这种方式,移动计算设备102可以保护其自身,不让无聊或疏忽的新软件提供者执行对该移动计算设备102总体上有害的安装操作。
现在描述一个基于XML的安装指令501的实例。下面的XML例示了在一个如下的示例XML文档中的最高层嵌套标记1<?xml version=”1.0”encoding=”UTF-8”?>
2<wap-provisioningdoc>
3-47 [Content]48 </wap-provisioningdoc>
在XML编码中每一行左边的数字表示了在示例XML文档中的顺序行号。请注意在该XML文档中有48行。只有第1、2和48行表示了嵌套XML代码的最高层。因此,在上面只有第1、2和48行是明确地列出的。XML代码的较低层次总的用术语“[Content]”来表示,在这里情况下它对应于该XML文档的第3至第47行。在说明为术语“[Content]”处,这表示在XML文档中相应行的确切内容将在下面进一步描述。
如那些XML文档编写领域的普通行家所周知,第1行表示了该XML文档的XML版本,以及该XML文档的文本编码格式。在这里,第1行表示XML版本是1.0,文本以UTF-8文本编码格式来编码。
第2行和第48行分别是开始和结束标记,表示其间的材料(即标识为“[Content]”的第3-47行)是某种wap提供的文档。配置管理器303将wap提供的文档识别为某种包含了配置指令的文档类型。然而,在软件安装的情况下,wap提供的文档也可以包含文件指令。
以下表现了在对应于该XML文档第3至第7行的wap提供的文档中的一个元素3<characteristic type=”Registry”>
4 <characteristic type=”maindir\subdir\config\app”>
5<para name=”Filename”value=”newgame”/>
6</characteristic>
7</characteristic>
归结起来,这个元素识别了发生在“注册表”上的一个操作(见第3行),因此指出该元素表示了一个配置操作。配置位置是在一个由“maindir\subdir\config\app”所定义的目录结构内(见第4行)。配置设定是“文件名”配置设定,它将接收到值“newgame”(见第5行)。请注意值“newgame”的意义可以通过其在该XML文档内的上下文来确定。
然而,该XML的wap提供文档不仅包含配置设定指令,而且还包含实际的文件操作指令。以下的XML文档定义了该XML文档的一个文件操作元素的代码范围8<characteristic type=”FileOperation”>
9-46[Content]47 </characteristic>
第8行和第47行分别是开始和结束标记,表示从第9行至第46行的内容表现文件操作。以下的XML代码表现了组成这内容一部分的一个元素<pre listing-type="program-listing"> 9 <!--current directory is\Program Files\My Test App\Temp> 10<characteristic type=”%CE1%My Test App\Temp”> 11<!--create this directory--> 12<characteristic type=”MakeDir”> 13</characteristic> 14<!--extract hpopen.txt from CAB 00hpopen.001--> 15<characteristic type=”hopen.txt”> 16<parm name=”Source”value=”00hpopen001”/> 17<parm name=”NoOverwriteIfNewer”/> 18<parm name=”Shared”/> 19</characteristic> 20<!--extract AirSync.txt from CAB 00hpopen.002--> 21<characteristic type=”AirSync.txt”> 22<parm name=”Source”value=”00hpopen002”/> 23<parm name=”NoOverwrite”/> 24</characteristic> 25</characteristic></pre>
第9行是不执行的注释代码。第9行表示文件操作将发生在目录“ProgramFiles\My Test App\Temp”中。第10行是一个开始标记,对应于第25行的结束标记,表示从第11行至第24行的内容将应用于该目录。
如第11注释行所显示,第12和第13行分别是创建目录“Program Files\MyTest App\Temp”的开始和结束标记。请注意文本“%CE1%”是文本“ProgramFiles”的一个已编码形式。如第14注释行所显示,第15至第19行从一个称作“CAB 00hpopen.001”的所要安装文件503的压缩版本中解出一个称作“hpopen.txt”的文件。如第20注释行所显示,第21至第24行从一个称作“CAB00hpopen.002”的所要安装文件503的压缩版本中解出一个称作“AirSync.txt”的文件。这些所解出的每一个文件的目标是目录“Program Files\My TestApp\Temp”。
以下的XML元素表示了一个文件复制操作<pre listing-type="program-listing"> 26<!--Copy email.bmp to Temp directory> 27<characteristic type=”\Temp\email.bmp”> 28<characteristic type=”Copy”/> 29<parm name=”Source”value=”My Test App\email.bmp”/> 30<parm name=”NoOverwriteIfNewer”/> 31<!--If email.bmp is newer,do not overwrite.--> 32</characteristic> 33</characteristic></pre>这一元素将一个称作“email.bmp”的文件从临时目录“Program Files\MyTest App\Temp”复制到目标目录“Program Files\My Test App”。
以下的XML元素表示了一个文件移动操作34<!--Move existing file to target fileprofile_move.bmp-->
35<characteristic type=”\Temp\profile_move.bmp”>
36<characteristic type=”Move”/>
37<parm name=”Source”value=”My Test App\profile.bmp”/>
38</characteristic>
39</characteristic>
这一元素将一个称作“profile_move.bmp”的文件从临时目录“ProgramFiles\My Test App\Temp”以新的文件名“profile.bmp”移动到目标目录“ProgramFiles\My Test App”。
以下的XML元素表示了一个文件删除操作40<!--Delete target file-->
41<characteristic type=”\Temp\email.bmp”>
42<characteristic type=”Delete”/>
43<parm name=”ForceDelete”/>
44</characteristic>
45</characteristic>
这一元素将一个称作“email.bmp”的文件从临时目录“Program Files\MyTest App\Temp”中删除。
请注意安装是通过衡量移动计算设备的已有组件来完成的。配置管理器303只需要识别并解析出文件操作的元素,然后将指令传递给适当的配置服务供应器,无论其是文件CSP 308还是注册表CSP 309。因此,与只提供配置设定相比,安装新软件所要求增加的处理花费是最小的。因此,本发明的原则在安装过程中实现回滚与安全的同时,实现了在移动计算设备上新软件的有效安装。
本发明能以其它特定的形式来实施而不背离本发明的精神和本质特征。已描述的实施例从所有方面讲都只是示例性的和非限制性的。所以,本发明的范围是通过所附的权利要求来显示,而不是通过前面的描述。与这些权利要求等价的意义或范围内的所有改变,都包含在其范围内。
通过美国专利特许所要求并期望被保护的是权利要求。
权利要求
1.在一个包含了一套计算机可执行指令来源和多台移动计算设备的网络环境中,使至少其中一台移动计算设备利用驻留在该移动计算设备上的配置管理器的回滚特性作为一个事务来安装该套计算机可执行指令的一种方法,其特征在于该方法包含该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的一个动作;该移动计算设备访问定义了如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的一个动作,而这些安装指令直接由与该移动计算设备相关的一个配置管理器来解释;该配置管理器使这些安装指令得以执行的一个动作;以及该配置管理器使一个回滚文档得以构造的一个动作。
2.如权利要求1所述的一种方法,其特征在于进一步包含该移动计算设备判定这些安装指令是否会成功的一个动作。
3.如权利要求2所述的一种方法,其特征在于所述移动计算设备判定这些安装指令是否会成功的动作包含询问多个将要执行某些安装指令的配置服务供应器就它们相应的安装指令而言安装是否会成功的一个动作。
4.如权利要求3所述的一种方法,其特征在于进一步包含根据询问的结果判定安装是否会成功的一个动作;以及包括将这些安装指令作为一个整体执行的事务提交的一个动作。
5.如权利要求2所述的一种方法,其特征在于该移动计算设备判定这些安装指令是否会成功的动作包含判定这些安装指令都已成功执行的一个动作。
6.如权利要求2所述的一种方法,其特征在于该移动计算设备判定这些安装指令是否会成功的动作包含判定这些安装指令作为整体已执行失败的一个动作;以及通过执行回滚文档来倒转安装过程的一个动作。
7.如权利要求1所述的一种方法,其特征在于其中的该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的动作包含该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的一个压缩版本的一个动作;以及该移动计算设备解压将要安装在该移动计算设备上的至少一个文件的该压缩版本的一个动作。
8.如权利要求1所述的一种方法,其特征在于其中的该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的动作包含该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的一个未压缩版本的一个动作。
9.如权利要求1所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的动作包含该移动计算设备访问按照由配置管理器解释的一个模式构造安装指令的一个动作。
10.如权利要求1所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的动作包含该移动计算设备访问按照可扩展标记语言(XML)构造安装指令的一个动作。
11.如权利要求1所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的安装指令的动作包含该移动计算设备访问至少一个安装指令以提取一个文件的一个压缩版本的一个动作。
12.如权利要求1所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的安装指令的动作包含该移动计算设备访问至少一个安装指令以将一个文件从一个源目录位置移动到一个目标目录位置的一个动作。
13.如权利要求1所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的安装指令的动作包含该移动计算设备访问至少一个安装指令以将一个文件从一个源目录位置复制到一个目标目录位置的一个动作。
14.如权利要求1所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的安装指令的动作包含该移动计算设备访问至少一个安装指令以删除一个文件的一个动作。
15.如权利要求1所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的安装指令的动作包含该移动计算设备访问至少一个安装指令以改变一个配置设定的一个动作。
16.如权利要求1所述的一种方法,其特征在于其中的该配置管理器使这些安装指令得以执行的动作包含该配置管理器直接执行这些安装指令的一个动作。
17.如权利要求1所述的一种方法,其特征在于其中的该配置管理器使这些安装指令得以执行的动作包含该配置管理器让至少一个其它模块来执行这些安装指令的一个动作。
18.如权利要求17所述的一种方法,其特征在于其中的该配置管理器让至少一个其它模块来执行这些安装指令的动作包含该配置管理器将文件命令传递给一个文件配置服务供应器的一个动作。
19.如权利要求17所述的一种方法,其特征在于其中的该配置管理器让至少一个其它模块来执行这些安装指令的动作包含该配置管理器将配置命令传递给一个注册表配置服务供应器的一个动作。
20.如权利要求1所述的一种方法,其特征在于其中的该配置管理器使一个回滚文档得以构造的动作包含该配置管理器将一个安装前状态包含在该回滚文档中的一个动作。
21.如权利要求20所述的一种方法,其特征在于其中的该配置管理器将一个安装前状态包含在该回滚文档中的动作包含为每个改变一个文件的安装指令备份该文件原始版本的一个动作。
22.如权利要求1所述的一种方法,其特征在于其中的该配置管理器将一个安装前状态包含在该回滚文档中的动作包含为每个将一个配置设定从一个原始值改变为一个改变了值的安装指令备份该配置设定原始值的一个动作。
23.一个在包含一套计算机可执行指令来源和多台移动计算设备的网络环境中使用的一种计算机程序产品,该计算机程序产品实现了使至少其中一台移动计算设备利用驻留在该移动计算设备上的配置管理器的回滚特性作为一个事务来安装该套计算机可执行指令的一种方法,该计算机程序产品包含至少一种计算机可读取媒介,其特征在于在其上存储了用于访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的计算机可执行指令;用于访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的计算机可执行指令,而这些安装指令直接由与该移动计算设备相关的一个配置管理器来解释;用于使这些安装指令得以执行的计算机可执行指令;用于使一个回滚文档得以构造的计算机可执行指令;以及用于判定这些安装指令是否会成功的计算机可执行指令。
24.如权利要求23所述的一种计算机程序产品,其特征在于其中的至少一种计算机可读取媒介是物理存储媒介。
25.如权利要求23所述的一种计算机程序产品,其特征在于其中的用于使这些回滚文档得以构造的计算机可执行指令包含用于将计算机可执行指令包含在由配置管理器直接解释的回滚文档中的计算机可执行指令。
26.如权利要求23所述的一种计算机程序产品,其特征在于其中的用于判定这些安装指令是否会成功的计算机可执行指令包含用于判定这些安装指令作为整体已成功执行的计算机可执行指令。
27.如权利要求23所述的一种计算机程序产品,其特征在于其中的用于判定这些安装指令是否会成功的计算机可执行指令包含用于判定这些安装指令作为整体已执行失败的计算机可执行指令;以及用于通过执行回滚文档来倒转安装过程的计算机可执行指令。
28.在一个包含了一套计算机可执行指令来源和多台移动计算设备的网络环境中,使至少其中一台移动计算设备利用驻留在该移动计算设备上的配置管理器的回滚特性作为一个事务来安装该套计算机可执行指令的一种方法,其特征在于该方法包含该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的一个动作;以及用于利用配置服务器以一个事务化方式安装该至少一个文件的一个步骤。
29.如权利要求28所述的一种方法,其特征在于其中的用于利用配置服务器以一个事务化方式安装该至少一个文件的步骤包含该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的一个动作,而这些安装指令直接由与该移动计算设备相关的一个配置管理器来解释;该配置管理器使这些安装指令得以执行的一个动作;该配置管理器使一个回滚文档得以构造的一个动作;以及该配置管理器判定这些计算机可执行指令作为整体是否已成功执行的一个动作。
30.在一个包含了一套计算机可执行指令来源和多台移动计算设备的网络环境中,使至少其中一台移动计算设备利用驻留在该移动计算设备上的配置管理器的安全特性来安装该套计算机可执行指令的一种方法,其特征在于该方法包含该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的一个动作;该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的一个动作,而这些安装指令直接由与该移动计算设备相关的一个配置管理器来解释;该配置管理器使这些计算机可执行指令得以执行的一个动作;以及对这些计算机可执行指令中的至少一个,该配置管理器判定这些计算机可执行指令的执行是否已授权的一个动作。
31.如权利要求30所述的一种方法,其特征在于其中的该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的动作包含该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的一个压缩版本的一个动作;以及该移动计算设备解压将要安装在该移动计算设备上的至少一个文件的该压缩版本的一个动作。
32.如权利要求30所述的一种方法,其特征在于其中的该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的动作包含该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的一个未压缩版本的一个动作。
33.如权利要求30所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的动作包含该移动计算设备访问按照由配置管理器可解释的一个模式构造的安装指令的一个动作。
34.如权利要求30所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的动作包含该移动计算设备访问按照可扩展标记语言(XML)规定构造的安装指令的一个动作。
35.如权利要求30所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的动作包含该移动计算设备访问至少一个安装指令以提取析一个文件的一个压缩版本的一个动作。
36.如权利要求30所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的动作包含该移动计算设备访问至少一个安装指令以将一个文件从一个源目录位置移动到一个目标目录位置的一个动作。
37.如权利要求30所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的动作包含该移动计算设备访问至少一个安装指令以将一个文件从一个源目录位置复制到一个目标目录位置的一个动作。
38.如权利要求30所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的动作包含该移动计算设备访问至少一个安装指令以删除一个文件的一个动作。
39.如权利要求30所述的一种方法,其特征在于其中的该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的动作包含该移动计算设备访问至少一个安装指令以改变一个配置设定的一个动作。
40.如权利要求30所述的一种方法,其特征在于其中的该配置管理器使这些安装指令得以执行的动作包含该配置管理器直接执行这些安装指令的一个动作。
41.如权利要求30所述的一种方法,其特征在于其中的该配置管理器使这些安装指令得以执行的动作包含该配置管理器让至少一个其它模块来执行这些安装指令的一个动作。
42.如权利要求41所述的一种方法,其特征在于其中的该配置管理器让至少一个其它模块来执行这些安装指令的动作包含该配置管理器将文件命令传递给一个文件配置服务供应器的一个动作。
43.如权利要求41所述的一种方法,其特征在于其中的该配置管理器让至少一个其它模块来执行这些安装指令的动作包含该配置管理器将配置命令传递给一个注册表配置服务供应器的一个动作。
44.如权利要求30所述的一种方法,其特征在于其中的该配置管理器判定这些计算机可执行指令的执行是否已授权的动作包含该配置管理器访问与该套计算机可执行指令相应的一个角色掩码的一个动作;以及使用该角色掩码来判定这些计算机可执行指令的执行是否已授权的一个动作。
45.如权利要求30所述的一种方法,其特征在于其中的该配置管理器判定这些计算机可执行指令的执行是否已授权的动作包含该配置管理器判定这些计算机可执行指令中的至少一个未授权的一个动作。
46.如权利要求45所述的一种方法,其特征在于进一步包含在该配置管理器判定这些计算机可执行指令中的至少一个未授权的动作后,停止或放弃该配置管理器使这些安装指令得以执行的动作的一个动作。
47.在一个包含了一套计算机可执行指令来源和多台移动计算设备的网络环境中使用的一种计算机程序产品,该计算机程序产品实现了使至少其中一台移动计算设备利用驻留在该移动计算设备上的配置管理器的安全特性来安装该套计算机可执行指令的一种方法,该计算机程序产品包含至少一种计算机可读取媒介,其特征在于在其上存储了用于访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的计算机可执行指令;用于访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的计算机可执行指令,而这些安装指令直接由与该移动计算设备相关的一个配置管理器来解释;用于使这些安装指令得以执行的计算机可执行指令;以及用于为这些安装指令中的至少一个判定这些安装指令的执行是否已授权的计算机可执行指令。
48.如权利要求47所述的一种计算机程序产品,其特征在于其中的至少一种计算机可读取媒介是物理存储媒介。
49.如权利要求47所述的一种计算机程序产品,其特征在于其中的用于判定这些安装指令的执行是否已授权的计算机可执行指令包含用于访问与该套计算机可执行指令相应的一个角色掩码的计算机可执行指令;以及用于使用该角色掩码来判定这些计算机可执行指令的执行是否已授权的计算机可执行指令。
50.如权利要求47所述的一种计算机程序产品,其特征在于其中的用于判定这些计算机可执行指令的执行是否已授权的计算机可执行指令包含用于判定这些计算机可执行指令中的至少一个未授权的计算机可执行指令。
51.如权利要求50所述的一种计算机程序产品,其特征在于在其的至少一种计算机可读取媒介上进一步存储了用于在该配置管理器判定这些计算机可执行指令中的至少一个未授权的动作后,停止该配置管理器使这些安装指令得以执行的动作的计算机可执行指令。
52.在一个包含了一套计算机可执行指令来源和多台移动计算设备的网络环境中,使至少其中一台移动计算设备利用驻留在该移动计算设备上的配置管理器的安全特性来安装该套计算机可执行指令的一种方法,其特征在于该方法包含该移动计算设备访问将要安装在该移动计算设备上的至少一个文件的至少一个版本的一个动作;以及用于利用配置服务器的安全特性有条件地安装该至少一个文件的一个步骤。
53.如权利要求52所述的一种方法,其特征在于用于利用配置服务器的安全特性有条件地安装该至少一个文件的步骤包含该移动计算设备访问确定如何将该至少一个文件安装到该移动计算设备上的计算机可执行安装指令的一个动作,而这些安装指令直接由与该移动计算设备相关的一个配置管理器来解释;该配置管理器使这些安装指令得以执行的一个动作;以及对这些安装指令中的至少一个,该配置管理器判定这些安装指令的执行是否已授权的一个动作。
54.用于一个包含了一套计算机可执行指令来源和多台移动计算设备的网络环境中的至少一种计算机可读取媒介,在该至少一种计算机可读取媒介上存储了用于实现使至少其中一台移动计算设备利用驻留在该移动计算设备上的配置管理器来安装该套计算机可执行指令的一种方法的一种数据结构,该数据结构包含表示至少一个文件的至少一个版本将要被安装的一个字段;以及指示如何将该至少一个文件安装到该移动计算设备上的安装指令,而这些安装指令被结构化成可由配置管理器直接解释。
55.如权利要求54所述的至少一种计算机可读取媒介,其特征在于其中的字段包含至少一个文件的一个压缩版本将要被安装。
56.如权利要求54所述的至少一种计算机可读取媒介,其特征在于其中的安装指令是按照某种可扩展标记语言(XML)规范而构造的。
57.如权利要求54所述的至少一种计算机可读取媒介,其特征在于其中的该至少一种计算机可读取媒介是物理存储媒介。
58.用于一个包含了一套计算机可执行指令来源和多台移动计算设备的网络环境中的一个系统,该系统用于在一台移动计算设备上利用驻留在该移动计算设备上的配置管理器的安全特性来安装该套计算机可执行指令,该系统包含配置来将该套计算机可执行指令解析成将要安装的一个或多个文件和安装指令的一个安装模块;配置来从该安装模块接收安装指令的一个配置管理器;配置来从该配置管理器接收表示文件或目录操作的任何安装指令,并配置来执行所接收到的安装指令的一个文件配置服务供应器;以及配置来从该配置管理器接收表示配置设定操作的任何安装指令,并配置来执行所接收到的安装指令的一个注册表配置服务供应器。
全文摘要
使用配置管理器安装软件,从而可以在安装过程中利用配置管理器的回滚与安全特性。一台移动计算设备访问将要安装在该移动计算设备上的文件,以及定义了如何将这些文件安装到该移动计算设备上的计算机可执行指令。然后配置管理器使这些计算机可执行指令得以执行(如使用配置服务供应器),并使一个镜像回滚文档得以构造。如果安装失败,就通过执行该回滚文档倒转安装过程。通过检查判定每个安装指令的执行是否已授权,配置管理器还可以用来在执行安装指令时实现安全性。
文档编号G06F9/445GK1423192SQ0215577
公开日2003年6月11日 申请日期2002年12月4日 优先权日2001年12月5日
发明者I·B·皮夫, H·M·丹格, K·J·萨瓦吉, S·R·谢尔, N·M·霍夫梅斯特 申请人:微软公司