用于期望状态配置的非单调最终收敛的制作方法

文档序号:15072168发布日期:2018-08-01 00:04阅读:192来源:国知局

计算和网络资源基本上已经达到了实用性状态,也就是说,互联网以及无线和有线网络已经使基于网络的计算服务可访问、低廉且无处不在。虚拟机技术使简化大规模云计算安装成为可能。并且,期望状态配置(“dsc”)系统使配置和管理诸如部署在云计算和类似设施中的大量计算设备变得相对容易。即便如此,dsc还是相对较新的,并且由于各种缺点而受到损害,这些缺点导致需要手动干预,这是大规模部署中的一个重大问题。



技术实现要素:

本部分中提供的概述总结了本发明的一个或多个部分或完整示例实施例,以便为读者提供基本的概况性理解。本概述不是对本发明的广泛描述,并且其可以不标识本发明的关键元素或方面,也没有界定本发明的范围。其唯一目的是以简化的形式呈现本发明的各个方面,作为以下提供的详细描述的序言。

本发明涵盖为期望状态配置提供非单调最终收敛的技术。dsc中的一类问题是,在一些情况下,如果没有首先从期望状态的进一步移动,则dsc不能朝向期望状态向前移动。例如,提供需要用较新版本替代但是当前正在执行(即,处于期望的“操作”状态)的服务的可执行文件在没有首先停止的情况下不能被较新版本替换。但是停止服务相对于期望状态在错误方向上移动,这是为了使服务操作。为了能够更接近期望状态地移动而进行的远离期望状态的这种移动是传统dsc系统的导致故障的一个问题。这个问题的解决方案在本文中被称为“非单调最终收敛”或“nmec”。这样的nmec使得dsc系统能够通过在需要以便最终达到期望状态的情况下进一步远离期望状态移动来配置目标系统以达到期望状态。

附图说明

当结合附图考虑时,下面提供的详细描述将被更好地理解,在附图中:

图1是示出其中可以实现本文中描述的发明的示例计算环境100的框图。

图2是示出示例期望状态配置图200的图。

图3是示出期望状态配置的示例方法的图。

图4是示出解决结合图3描述的类型的问题的增强型期望状态配置的示例方法的图。

图5是示出被配置用于实现本发明的各方面的示例期望状态配置(“dsc”)系统500的框图。

图6是示出期望状态配置(“dsc”)系统500的示例本地配置管理器(“lcm”)514的框图。

具体实施方式

结合附图在本部分中提供的详细描述描述了这些技术的一个或多个部分或完整示例实施例,但是不旨在描述这些技术的所有可能的实施例。该详细描述阐述了这些技术的至少一些系统和/或方法的各种示例。然而,根据示例也可以实现相同或等同的技术、系统和/或方法。计算环境

尽管本文中提供的示例被描述和示出为在计算环境中可实现,但是所描述的环境仅作为示例而不是限制来提供。如本领域技术人员将认识到的,所公开的示例适合于在各种不同的计算环境中实现。

图1是示出其中可以实现本文中描述的发明的示例计算环境100的框图。合适的计算环境可以用很多通用或专用系统来实现。这样的系统的示例包括但不限于手机、个人数字助理(“pda”)、个人计算机(“pc”)、手持或膝上型设备、基于微处理器的系统、多处理器系统、片上系统(“soc”)、服务器、互联网服务、工作站、消费电子设备、手机、机顶盒等。在所有情况下,这样的系统严格限于制造品等。

计算环境100通常包括耦合到诸如外围设备102、103、101等各种组件的计算设备101形式的通用计算系统。这些可以包括可以经由一个或多个输入/输出(“i/o”)接口112进行操作的组件,诸如输入设备103,包括语音识别技术、触摸板、按钮、键盘和/或指点设备(诸如鼠标或轨迹球)。计算设备101的组件可以包括一个或多个处理器(包括中央处理单元(“cpu”)、图形处理单元(“gpu”)、微处理器(“μp”)等)107、系统存储器109、和通常耦合各种组件的系统总线108。处理器107通常处理或执行各种计算机可执行指令,并且基于那些指令来控制计算设备101的操作。这可以包括计算设备101经由诸如网络连接114等各种通信技术与其他电子和/或计算设备、系统或环境(未示出)的通信。系统总线108表示任何数目的总线结构,包括存储器总线或存储器控制器、外围总线、串行总线、加速图形端口、使用任何各种总线架构的处理器或本地总线等。

系统存储器109可以包括诸如随机存取存储器(“ram”)等易失性存储器和/或诸如只读存储器(“rom”)或闪速存储器(“flash”)等非易失性存储器形式的计算机可读介质。基本输入/输出系统(“bios”)可以以非易失性等方式存储。系统存储器109通常存储数据、计算机可执行指令和/或包括由一个或多个处理器107能够立即访问和/或当前操作的计算机可执行指令的程序模块。

大容量存储设备104和110可以耦合到计算设备101或者经由到系统总线的耦合被包含在计算设备101中。这样的大容量存储设备104和110可以包括非易失性ram、从可移除非易失性磁盘(例如,“软盘”)105读取和/或向其写入的磁盘驱动器、和/或从诸如cdrom、dvdrom106等非易失性光盘读取和/或向其写入的光盘驱动器。备选地,诸如硬盘110等大容量存储设备可以包括不可移除存储介质。其他大容量存储设备可以包括存储卡、记忆棒、闪存驱动器、混合存储设备、磁带存储设备等。

任何数目的计算机程序、文件、数据结构等可以存储在大容量存储器110、其他存储设备104、105、106和系统存储器109(通常受可用空间的限制)中,作为示例而非限制,包括操作系统、应用程序、数据文件、目录结构、计算机可执行指令等。

诸如显示设备102等输出组件或设备可以典型地经由诸如显示器适配器111等接口耦合到计算设备101。输出设备102可以是液晶显示器(“lcd”)。其他示例输出设备可以包括打印机、音频输出、语音输出、阴极射线管(“crt”)显示器、触觉设备或其他感官输出机构等。输出设备可以使得计算设备101能够与人类操作者或其他机器、系统、计算环境等交互。用户可以经由诸如触摸板、按钮、键盘、鼠标、操纵杆、游戏手柄、数据端口等任何数目的不同i/o设备103与计算环境100交互。这些和其他i/o设备可以经由可以耦合到系统总线108的i/o接口112耦合到处理器107,和/或可以通过其他接口和总线结构进行耦合,诸如并行端口、游戏端口、通用串行总线(“usb”)、火线、红外(“ir”)端口等。

计算设备101可以经由通过一个或多个蜂窝网络、无线网络、局域网(“lan”)、广域网(“wan”)、存储区域网络(“san”)、因特网、无线电链路、光学链路等到一个或多个远程计算设备的通信连接在联网环境中操作。计算设备101可以经由网络适配器113等或者备选地经由调制解调器、数字用户线路(“dsl”)链路、综合业务数字网络(“isdn”)链路、因特网链路、无线链接等耦合到网络。

诸如网络连接等通信连接114通常提供到诸如网络等通信介质的耦合。通信介质通常使用诸如载波或其他传输机制等调制数据信号来提供计算机可读和计算机可执行指令、数据结构、文件、程序模块和其他数据。术语“调制数据信号”通常表示具有其一个或多个特性的信号,该特性以使得能够将信息编码在信号中的方式被设置或改变。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接等有线介质以及诸如声学、射频、红外或其他无线通信机制等无线介质。

诸如电池或电源等电源190通常为计算环境100的部分或全部提供电力。在计算环境100是移动设备或便携式设备等的情况下,电源190可以是电池。备选地,在计算环境100是台式计算机或服务器等的情况下,电源190可以是被设计为诸如经由墙上插座连接到交流(“ac”)源的电源。

一些移动设备可以不包括结合图1描述的很多组件。例如,电子徽章可以由导线线圈连同简单的处理单元107等构成,线圈被配置为当接近读卡器设备等时用作电源190。这样的线圈还可以被配置为用作耦合到处理单元107等的天线,线圈天线能够在电子徽章与读卡器设备之间提供一形式的通信。这样的通信可以不涉及网络,但是备选地,可以是经由遥测、点对点、rf、ir、音频或其他方式的通用或专用通信。电子卡可以不包括显示器102、i/o设备103或结合图1描述的很多其他组件。作为示例而非限制,可以不包括结合图1所描述的很多组件的其他移动设备包括电子手镯、电子标签、可植入设备等。

本领域技术人员将认识到,用于提供计算机可读和计算机可执行指令和数据的存储设备可以分布在网络上。例如,远程计算机或存储设备可以以软件应用和数据的形式存储计算机可读指令和计算机可执行指令。本地计算机可以经由网络访问远程计算机或存储设备,并且下载部分或全部软件应用或数据,并且可以执行任何计算机可执行指令。备选地,本地计算机可以根据需要下载软件或数据,或者通过在本地计算机处执行一些指令并且在远程计算机和/或设备处执行一些指令来分布式地处理软件。

本领域技术人员还将认识到,通过利用传统技术,软件的计算机可执行指令的全部或部分可以由诸如数字信号处理器(“dsp”)、可编程逻辑阵列(“pla”)、分立电路等专用电子电路来执行。术语“电子装置”可以包括包含任何软件、固件等的计算设备或消费电子设备,或者不包含软件、固件等的电子设备或电路。

术语“固件”通常是指被保存在诸如嵌入在电子设备中的rom等电子存储器中的可执行指令、代码、数据、应用、程序、程序模块等。术语“软件”通常是指被保存在被配置用于以计算设备可访问的方式存储计算机可执行指令等的任何形式或类型的计算机可读介质中或上的计算机可执行指令、代码、数据、应用、程序、程序模块等。本文中使用的术语“计算机可读介质”等严格限于指代一种或多种硬件装置、硬件制造品或类似的物理硬件,其本质上是法定的并且不是信号或载波本身。权利要求中使用的术语“计算设备”是指诸如示例计算设备101等一个或多个物理硬件设备,并且包括客户端设备、移动设备、一个或多个服务器、诸如因特网服务或公司网络服务等网络服务、以及这些的任何组合。

声明式与命令式编程模式

命令式编程模型要求编程器定义程序要执行的特定命令序列以实现期望结果。相比之下,声明式编程模型允许编程器定义程序要实现的最终结果,而不必描述程序为实现结果而需要采取的具体动作。也就是说,声明式程序描述了期望结果,而没有明确列出为了实现期望结果而要执行的步骤。

用于声明式编程模型的一个应用是期望状态配置(“dsc”)。例如,在执行重复性任务(诸如在分布式或云计算环境中配置大量服务器和/或其他机器)时,使配置任务自动化很有帮助。当使用命令式编程模型(例如,脚本语言)进行这样的配置自动化时,完成配置任务所需要的所有特定步骤都必须被单独包括在配置程序中。必须包括可能遇到的每种不同情况的步骤,以确保配置任务将能够正确执行。因此,使用命令式编程模型来开发配置程序可能非常繁琐并且昂贵,因为编程器必须包括可能发生的每种可能的错误情况和异常的步骤。使用dsc(基于声明式编程模型)可以使这样的配置程序的开发比使用命令式编程模型(诸如脚本语言等)更简单且更便宜。

期望状态配置图

图2是示出示例期望状态配置图200的图。本文中使用的短语“期望状态配置”(“dsc”)是指根据指定的期望状态的资源的声明式配置。本文中使用的短语“声明式配置”是指基于与命令式编程模型相对的一个或多个声明式编程模型的配置。术语“命令式编程”通常是指基于指定要被执行的步骤以便实现期望状态或最终结果而不指定期望状态(也就是说,指定“如何”而不指定“什么”)的编程模型。命令式编程的各种模型以通常称为过程式编程语言的各种编程语言的形式来实施。这些通常包括脚本语言、面向对象的语言和其他过程语言,诸如c#、c++、c、basic、各种汇编语言等。短语“声明式编程”通常是指基于指定期望状态或最终结果而不指定要被执行以便实现期望状态的步骤(也就是说,指定“什么”而不指定“如何”)的程序设计模型。本文中提到的一种这样的声明式编程模型是期望状态配置(“dsc”),即根据指定的期望状态针对资源配置的声明式编程模型。本文中使用的术语“资源”是指可以配置的任何实体。这样的实体的非限制性示例包括硬件(计算机、计算设备等)、软件(程序、虚拟机等)以及前述(计算系统、服务等)的任何组合。术语“资源”和“对象”还可以指代在前面的句子中定义的资源的表示,诸如在配置文件或管理对象格式(“mof”)文件等中提供的表示,诸如如下所述。

回到图2,dsc图200包括经由若干示例边缘不同地连接的若干示例节点。在这个示例中,节点1表示一些资源的期望状态。边缘e1-2、e1-3和e1-5分别表示节点1与节点2、3和5之间的“依赖”关系。也就是说,节点1的期望状态依赖于节点2、3和5的状态。通常,dsc图将是非循环的。此外,依赖关系通常表示节点之间的方向关系。在图200中,这些方向依赖关系由边缘上的箭头指示。在这个示例中,离开依赖节点的箭头指向被依赖的节点。因此,dsc图通常是有向非循环图。注意,箭头的方向仅仅是描述的问题,并不限制本发明的主题。

如节点1和2所示,dsc节点可以依赖于多于一个其他节点。实际上,dsc节点可以依赖于任何数目的其他节点,甚至如在节点3、4和5的情况下为零个其他节点。此外,任何节点可以被一个或多个其他节点依赖。并且,最后的节点(本示例中的节点1)没有其他节点依赖于它,即单个dsc图中仅有这样的节点。

期望状态配置方法

图3是示出期望状态配置的示例方法的图。方法300a是用于初始配置服务的期望状态(例如,提供service1作为操作服务)的示例方法,其经由特定文件(例如,名为service1.dll的文件)的执行来完成。在试图实现服务service1正在操作的期望状态的示例dsc系统中,方法300a通常开始(310a)于测试服务service1所需的文件是否被安装并且被正确配置(312a),诸如经由dsc测试文件操作等。如果如由dsc测试文件操作所确定的,所需要的文件已经被安装并且被正确配置,则方法300a通常在框316a处继续。如果不是(初始配置服务的期望状态时可以是这种情况),根据dsc设置文件操作等安装和/或配置所需要的文件(314a)。在一个示例中,方法300a的前述步骤可以归属于dsc图中的特定节点等,诸如节点1所依赖的图2中的图200的示例节点2。在这个示例中,节点2表示特定文件被安装并且被正确配置的期望状态,即文件servcies1.dll。上述步骤旨在配置期望状态。一般而言,配置期望状态所需要的任何步骤通过方法300a等来进行。一旦文件service1.dll被配置为期望状态,则方法300a通常在框316a处继续。

接下来,一旦文件services1.dll被配置为期望状态,则方法300a通常继续测试服务service1是否处于期望状态,例如操作(316a)。如果是,如经由dsc测试服务操作等所确定的,则方法300a通常完成(320a)。如果不是,则(初始配置服务的期望状态时可以是这种情况),根据dsc设置服务操作等来开始服务service1(318a)。一旦服务service1被配置为期望状态,则方法300a通常完成(320a)。在一个示例中,方法300a的上述步骤316a和318a可以归属于dsc图中的特定节点等,诸如图2中的图200的示例节点1,其在这个特定示例中依赖于节点2。

图3的方法300b是用于配置服务的期望状态的示例方法,例如,如在方法300a中,提供service1作为操作服务,不同之处在于,在这个示例中,service1先前被配置。方法300b基本上与方法300a相同,不同之处在于,由于示例服务先前被配置,所以可能发生特定类型的故障。

为了说明这个示例,考虑如下场景,即其中服务service1的期望状态是可操作的,但是它是服务service1的新版本,其相对于期望状态已经被实现(诸如经由方法300a)的先前版本而言是期望的。在这个示例中,这个新版本由文件service1.dll的新版本来提供。标识文件的新版本以及各种依赖性和相关信息的信息被添加到dsc系统,诸如通过更新dsc对象的各种属性等。

一旦dsc系统被更新为包括描述新版本的服务service1以及所有依赖性的信息(诸如关于文件service1.dll的新版本的信息),则当再次请求期望状态的配置时,方法300b将在步骤312b处诸如经由dsc测试文件操作来确定文件service1.dll的当前安装版本不正确。结果,方法300b将在框314b处继续,其中示例dsc设置文件操作将尝试安装文件的正确版本。但是,在各种目标系统中,因为文件的当前安装版本由于服务service1先前被配置为操作而当前正在执行,所以替换(例如,覆盖或删除)现有文件的尝试将失败,导致dsc系统致力于实现服务service1的新版本的期望状态的努力失败315b。该问题的解决方案在图4中示出。本文中使用的术语“目标系统”是指寻求期望状态的配置的某种系统。

增强型期望状态配置方法

图4是示出解决结合图3描述的类型的问题的增强型期望状态配置的示例方法的图。也就是说,如果没有首先从期望状态进一步移动以便能够朝向期望状态先前移动,则dsc系统不能向前移动以达到期望状态的情况下的问题。例如,考虑关于图3描述的问题,在没有首先停止服务service1以便可以替换该文件的情况下,文件service1.dll不能替换为较新的版本。但是停止服务在相对于期望状态的错误方向上移动,这是为了使服务操作。为了能够更接近期望状态地移动而进行的远离期望状态的这种移动在本文中被称为“非单调最终收敛”或“nmec”。这样的nmec使得dsc系统能够在需要以便最终达到期望状态的情况下通过进一步远离期望状态移动来配置目标系统以达到期望状态。

方法400a是用于初始配置服务的期望状态(例如,提供service1作为操作服务)的示例方法,其经由特定文件(例如,名为service1.dll的文件)的执行来完成。在试图实现服务service1正在操作的期望状态的示例dsc系统中,方法400a通常开始(410a)于测试服务servcie1所需要的文件是否被安装并且被正确配置(412a),诸如经由dsc测试文件操作等。如果如由dsc测试文件操作所确定的,所需要的文件已经被安装并且被正确配置,则方法400a通常在框416a处继续。如果不是(初始配置服务的期望状态时可以是这种情况),则方法400a通常在框413a处继续。

在框413a处,利用dsc测试动作操作等,方法400a相对于方法300a和300b被增强。在由于文件service1.dll是不正确版本而到达的框413a处,检查service1的状态以查看它是否处于不可操作状态(例如,停止),即,文件可以被取代的状态,而且还是进一步远离期望的最终状态的状态,期望的最终状态是服务service1要操作的状态。如果服务service1不可操作(诸如由dsc测试动作操作所确定的),则方法400a通常在框415a处继续。否则,在框414a处实现服务service1的期望的临时状态,诸如通过dsc设置动作操作等(例如,相对于方法300a和300b的另一增强),例如,诸如通过将服务service1配置为不可操作状态(例如,停止)。一旦服务service1被配置为期望的临时状态,则方法400b通常在框415a处继续。在一个示例中,方法400a的前述步骤可以归属于dsc图中的特定节点等,诸如节点1所依赖的图2中的图200的示例节点2。在这个示例中,节点2表示特定文件被安装并且被正确配置的期望状态,即文件services1.dll。上述步骤旨在实现期望状态。一般而言,实现期望状态所需要的任何步骤通过方法400a等来进行。一旦文件service1.dll被配置为期望状态,则方法400a通常在框416a处继续。

接下来,一旦文件services1.dll被配置为期望状态,则方法400a通常继续测试服务service1是否处于期望状态,例如操作(416a)。如果是,如经由dsc测试服务操作等所确定的,则方法400a通常完成(420a)。如果不是,则(为服务的新版本配置期望状态时可以是这种情况),根据dsc设置服务操作等来开始服务service1(418a)。一旦服务service1被配置为期望状态,则方法400a通常完成(420a)。在一个示例中,方法400a的上述步骤416a和418a可以归属于dsc图中的特定节点等,诸如图2中图200的示例节点1,其在这个特定的示例中依赖于节点2。

方法400b基本上与方法400a相同地操作,并且不遭受结合方法300b所描述的故障条件。方法400a和400b经由提供dsc系统的非单调最终收敛的dsc测试动作和dsc设置动作操作来相对于方法300a和300b提供增强。

配置和mof文件

以下是定义dsc配置(配置服务1)的示例说明性代码,其大部分对应于结合图3描述的方法的示例。

在一个示例中,以如上所示的这样的声明式代码格式的这样的dsc配置被转换为管理对象格式(“mof”)文件内容。下面生成与上述dsc配置相对应的这样的mof文件内容的示例。

在一个示例中,诸如经由dsc引擎的dsc系统将在mof文件中声明的dsc配置应用于目标系统,导致目标系统被配置为期望状态。

增强型配置和mof文件

以下是定义dsc配置(配置服务1)的示例增强型声明式代码,其大部分对应于结合图4描述的方法的示例。

注意以上增强型声明式代码中的声明的动作“serviceaction1”,其对应于结合图4描述的示例dsc测试动作。在这个示例中,serviceaction1声明中的beforeset属性指示在框415a的dsc设置文件操作之前,必须实现由serviceaction1声明所声明的临时期望状态。仅在诸如经由dsc设置动作操作实现临时期望状态(414a)之后,才执行dsc设置文件操作(415a)。通过dsc系统提供非单调最终收敛的这样的增强消除了关于方法300b所描述的故障条件。

在一个示例中,以如上所示的这样的增强型声明式代码格式的这样的增强型dsc配置被转换为管理对象格式(“mof”)文件内容。下面示出与上述增强型dsc配置相对应的这样的增强型mof文件内容的示例。

注意上面示出的mof文件内容中具有beforeset属性的$msft_serviceresource1ref,其对应于在上面的增强型声明式代码中具有beforeset属性的声明的动作“serviceaction1”。注意,在其他示例中,beforeset属性可以通过除了beforeset之外的任何名称而知晓,诸如waitfor或任何其他名称。无论属性的名称如何,其功能通常至少部分地支持和/或提供本文中描述的非单调最终收敛,以便减少和/或消除结合方法300b描述的故障条件等。通常,声明的动作的beforeset属性指示,在资源的期望状态(由动作的beforeset属性指定)被实现之前(即,在资源的期望状态被设置之前),必须首先实现该资源的潜在发散状态(由动作的状态属性指定)。

期望状态配置系统

图5是示出被配置用于实现本发明的各方面的示例期望状态配置(“dsc”)系统500的框图。dsc系统500通常包括若干组件,包括创作工具510、分段服务器512和本地配置管理器(“lcm”)514。这些组件(包括任何子组件)中的每个可以被实现为包括硬件逻辑设备(例如,集成电路或包括这样的电路的设备)的系统、基于特定指令的执行而被配置为执行必要的方法的计算设备(诸如结合图1等描述的)、包括一组设备(包括诸如结合图1等描述的一个或多个计算设备)的服务、或者前述的某种组合。每个这样的组件可以在一个设备(诸如硬件逻辑设备或计算设备)上/由这样的一个设备实现,或者跨多个这样的设备来实现。例如,组件可以以分布式方式在多个设备(诸如例如网络服务或网站的服务器或元件等)上/由这样的多个设备实现。此外,每个这样的组件(包括任何子组件)可以包含一个或多个子组件等,并且这些组件可以被实现为单独的组件,或者任何两个或更多个可以全部或部分地组合。除非另有说明,否则本文中描述的组件的划分是非限制性的,并且主要旨在帮助描述本发明的各方面。

创作工具510能够创建dsc配置,包括上述那些配置。这样的工具通常提供编译dsc配置,从而产生编译的dsc配置,诸如上述mof文件。这样的创作工具510可以基本上类似于传统dsc系统的预先存在的组件,不同之处在于,它们被增强以支持上述增强型声明式代码等。这种增强型支持至少是在dsc配置的编辑和编译方面、以及有利于支持增强型声明式代码等的任何其他增强型功能。

分段服务器512提供诸如mof文件等经编译的dsc配置的分段,其中分段后的文件通常经由推送或拉取分发模型可用于目标系统。这样的分段服务器512可以基本上类似于传统dsc系统的预先存在的组件,不同之处在于,它们可以被增强以支持上述增强型声明式代码等。

本地配置管理器(“lcm”)514是在目标系统上运行并且负责解析和实现被提供给目标系统的配置的dsc引擎。每个lcm还负责dsc的很多其他方面,包括确定其目标系统的刷新模式(即,推送或拉取mof等),指定目标系统获取和实现配置的频率,以及将目标系统与分段服务器相关联。

这样的lcm514可以基本上类似于传统dsc系统的预先存在的组件,不同之处在于,它们被增强以支持上述增强型声明式代码等。这种增强型支持至少是在解析和实现dsc配置方面、以及有利于支持增强型声明式代码等的任何其他增强型功能。这样的lcm514结合图6进一步描述。

本地配置管理器引擎

图6是示出期望状态配置(“dsc”)系统500的示例本地配置管理器(“lcm”)514的框图。lcm514通常包括若干组件,包括mof下载器610、对象解析器612、测试处理器614和设置处理器616。这些组件(包括任何子组件)中的每个可以被实现为包括硬件逻辑设备(例如,集成电路或包括这样的电路的设备)的系统、基于特定指令的执行而被配置为执行必要的方法的计算设备(诸如结合图1等描述的)、包括一组设备(包括诸如结合图1等描述的一个或多个计算设备)的服务、或者前述的某种组合。每个这样的组件可以在一个设备(诸如硬件逻辑设备或计算设备)上/由这样的一个设备实现,或者跨多个这样的设备来实现。例如,组件可以以分布式方式在多个设备(诸如例如网络服务或网站的服务器或元件等)上/由这样的多个设备实现。此外,每个这样的组件(包括任何子组件)可以包含一个或多个子组件等,并且这些组件可以被实现为单独的组件,或者任何两个或更多个可以全部或部分地组合。除非另有说明,否则本文中描述的组件的划分是非限制性的,并且主要旨在帮助描述本发明的各方面。

mof下载器610是被配置用于从分段服务器等(诸如分段服务器512)下载诸如上述那些的mof文件等的接收器。mof下载器610可以接收由分段服务器等向目标系统提供(推送)的未经请求的mof文件。备选地或附加地,mof下载器610可以从分段服务器等请求任何可用(例如,新的或已更新的)mof文件,并且然后接收可用的所请求的mof文件。mof下载器610通常将所接收的mof文件提供给对象解析器612。

对象解析器612是被配置用于解析下载的mof文件中的对象和其他mof文件内容等的解析引擎。特别地,对象解析器612与类似的传统对象解析器相比是唯一的,因为它被增强以支持上述编译的增强型声明式代码等,包括beforeset属性和对所声明的动作的编译的引用,诸如上述示例serviceaction1。

测试处理器614是被配置用于执行dsc测试操作(包括结合图3和图4描述的那些操作)的测试处理引擎。特别地,测试处理器614与类似的传统测试处理器相比是唯一的,因为其被增强以支持上述编译的增强型声明式代码等,包括beforeset属性和dsc测试动作操作,诸如结合图4所描述的那些。

设置处理器616是被配置用于实现dsc设置操作(包括结合图3和4描述的那些操作)的设置处理引擎。特别地,设置处理器616与类似的传统设置处理器相比是唯一的,因为其被增强以支持上面描述的编译的增强型声明式代码等,包括dsc设置动作操作,诸如结合图4描述的那些。

结论

在第一示例中,一种方法在包括至少一个处理器和存储器的计算设备上执行,该方法用于在期望状态配置(“dsc”)环境中提供非单调最终收敛,该方法包括:由在计算设备上操作的dsc引擎确定计算设备的目标期望状态所需的资源需要被替换;经由dsc引擎的dsc测试动作操作确定资源处于与目标期望状态相一致的状态,但是由于处于该状态而不能被替换;经由dsc引擎的dsc设置动作操作将资源配置为处于与上述状态相比距目标期望状态更远的临时状态,其中处于临时状态的资源能够被替换;在配置之后由dsc引擎替换处于临时状态的资源;并且由dsc引擎将替换后的资源的状态设置为与目标期望状态相一致。

在第二示例中,存在一种计算设备,其包括:至少一个处理器;耦合到至少一个处理器的存储器;期望状态配置(“dsc”)引擎,计算设备经由该dsc引擎来在dsc环境中提供非单调最终收敛并且计算设备经由该dsc引擎来确定计算设备的目标期望状态所需的资源需要被替换;dsc引擎的dsc测试动作操作,计算设备经由该dsc测试动作操作来确定资源处于与目标期望状态相一致的状态,但是由于处于该状态而不能被替换;dsc引擎的dsc设置动作操作,计算设备经由该dsc设置动作操作将资源配置为处于与上述状态相比距目标期望状态更远的临时状态,其中处于临时状态的资源能够被替换;dsc引擎,计算设备经由该dsc引擎来替换处于临时状态的资源;以及dsc引擎,计算设备经由该dsc引擎来将替换后的资源的状态设置为与目标期望状态相一致。

在第三示例中,存在至少一个计算机可读介质,其包括计算机可执行指令,这些计算机可执行指令基于计算设备的执行将计算设备配置为执行用于在期望状态配置(“dsc”)环境中提供非单调最终收敛的动作,这些动作包括:由在计算设备上操作的dsc引擎确定计算设备的目标期望状态所需的资源需要被替换;经由dsc引擎的dsc测试动作操作确定资源处于与目标期望状态相一致的状态,但是由于处于该状态而不能被替换;经由dsc引擎的dsc设置动作操作来将资源配置为处于与上述状态相比距目标期望状态更远的临时状态,其中处于临时状态的资源能够被替换;由dsc引擎在配置之后替换处于临时状态的资源;并且由dsc引擎将替换后的资源的状态设置为与目标期望状态相一致。

在第一、第二和第三示例中,资源是可执行文件;和/或经由dsc测试动作来确定不能响应于dsc引擎评估beforeset属性来替换资源;和/或beforeset属性是在配置文件中声明的操作对象的属性;和/或beforeset属性是配置文件的编译版本中经编译的资源的属性,其中经编译的资源对应于经声明的操作对象;和/或该状态是可操作状态;和/或处于不可操作状态的临时状态。

鉴于以上提供的详细描述,并且结合可以应用本发明和前述示例的很多可能的实施例,应当认识到,本文中描述的示例只是说明性的,并且不应当被采用作为限制本发明的范围。因此,如本文中描述的本发明考虑了所有可以落入所附权利要求及其任何等同物的范围内的这样的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1