计算环境中的补丁协调的制作方法

文档序号:21411131发布日期:2020-07-07 14:47阅读:175来源:国知局
计算环境中的补丁协调的制作方法



背景技术:

本主题发明涉及计算设备管理,并且更具体地,涉及协调计算环境内的补丁实现方式。



技术实现要素:

以下内容呈现了提供对本发明的一个或多个实施例的基本理解的概述。本概述不旨在标识关键或重要元素,或描绘特定实施例的任何范围或权利要求的任何范围。其唯一的目的是以简化的形式呈现概念,作为稍后呈现的更详细描述的序言。在本文描述的一个或多个实施例中,公开了促进相关补丁协调的系统、计算机实现的方法、设备和/或计算机程序产品。

根据一个实施例,一种计算机实现的方法可以包括:由可操作地耦合到一个处理器的一个设备为与一个计算环境相关联的一个或多个待决补丁创建多个补丁执行计划;由该设备基于与所述多个补丁执行计划中的各自补丁执行计划相关联的依赖性来量化所述多个补丁执行计划中的各自补丁执行计划的影响;以及由该设备基于所述多个补丁执行计划中的各自补丁执行计划的影响从所述多个补丁执行计划优化一个补丁执行计划。

根据另一个实施例,系统可以包括存储计算机可执行组件的存储器和执行存储在存储器中的计算机可执行组件的处理器,其中,所述计算机可执行组件包括规划组件,所述规划组件为与计算环境相关联的一个或多个待决补丁创建多个补丁执行计划,评分组件,所述评分组件基于与所述多个补丁执行计划中的各自补丁执行计划相关联的依赖性来量化所述多个补丁执行计划中的各自补丁执行计划的影响,以及补丁协调组件,所述补丁协调组件基于所述多个补丁执行计划中的各自补丁执行计划的所述影响从所述多个补丁执行计划中选择一个补丁执行计划。

根据进一步的实施例,一种用于在计算环境中的补丁协调的计算机程序产品可以包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令。程序指令可由处理组件执行以使处理组件创建与计算环境相关联的一个或多个待决补丁的多个补丁执行计划,基于与所述多个补丁执行计划中的各自补丁执行计划相关联的依赖性来量化所述多个补丁执行计划中的各自补丁执行计划的影响。基于所述多个补丁执行计划中的各自补丁执行计划的影响,从所述多个补丁执行计划中选择一个补丁执行计划。

根据又一实施例,一种计算机实现的方法可以包括:由可操作地耦合到处理器的设备初始化对应于计算环境中的一组设备和补丁的一个补丁执行计划;由所述设备基于对应于所述各自候选动作的影响评级来分析与所述计算环境中的所述一组设备和补丁相关联的各自候选动作;以及由所述设备基于所述分析的结果优化所述候选动作中的一个或多个以包括在所述补丁执行计划中。

根据另一个实施例,系统可以包括存储计算机可执行组件的存储器和执行存储在存储器中的计算机可执行组件的处理器,其中,所述计算机可执行组件包括发现组件,所述发现组件标识计算环境中的一组设备和补丁并初始化对应的补丁执行计划,影响分析组件,所述影响分析组件基于对应于各自候选动作的影响评级来分析所述补丁执行计划的各自候选动作,以及动作选择组件,所述动作选择组件基于所述影响分析组件的结果来选择所述候选动作中的一个或多个候选动作以包括在所述补丁执行计划中。

附图说明

图1展示了描绘根据在此描述的一个或多个实施例的云计算环境的示例非限制性框图;

图2展示了描绘根据在此描述的一个或多个实施例的抽象模型层的示例非限制性框图;

图3是根据在此描述的一个或多个实施例的促进相关补丁协调的系统的框图;

图4展示了描绘其中可以促进在此描述的一个或多个实施例的计算环境的示例性、非限制性计算一般化过程流的示例非限制性框图;

图5是促进与计算环境相关联的各自补丁相关联的风险分析的系统的框图;

图6和图7是描绘可以由在此描述的一个或多个实施例利用的计算环境的组件之间的示例非限制性关系的图;

图8展示了描绘根据在此描述的一个或多个实施例的促进补丁协调和记录的系统的示例性、非限制性框图;

图9是根据在此描述的一个或多个实施例的促进计算环境中的补丁协调的示例非限制性计算机实施的方法的流程图;

图10是根据在此描述的一个或多个实施例的促进基于图形的补丁协调的示例非限制性计算机实施的方法的流程图;

图11展示了描绘可以由在此描述的一个或多个实施例利用的示例非限制性图形结构的示例非限制性框图;

图12是根据在此描述的一个或多个实施例的促进相关补丁协调的系统的框图;

图13是根据在此描述的一个或多个实施例的促进补丁协调、执行和记录的系统的框图;

图14和图15是根据在此描述的一个或多个实施例的相应示例非限制性的处理组件的框图;

图16是根据在此描述的一个或多个实施例的促进相关补丁协调的示例非限制性计算机实施的方法的流程图;

图17是根据在此描述的一个或多个实施例的促进相关补丁协调的替代性示例、非限制性计算机实现的方法的流程图;

图18是可以实施在此描述的一个或多个实施例的示例非限制性操作环境的框图。

具体实施方式

以下详细说明仅是说明性的并且不旨在限制实施例和/或实施例的应用或用途。此外,不意图受限于在前述背景或概述部分或在具体实施方式部分中呈现的任何表达的或暗示的信息。

现在参考附图来描述一个或多个实施例,其中,贯穿全文,相同的附图标记用于指代相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对一个或多个实施例的更彻底的理解。然而,很明显,在不同情况下,可在没有这些具体细节的情况下实践一个或多个实施例。

现代计算环境可以包括大量计算装置,这些计算装置可以位于单个物理地点或多个物理地点,例如经由通信网络。现代计算环境中的设备可另外经由计算应用和相关库和/或系统的使用来执行宽范围的任务。随着计算设备的通用性增加,此类设备所使用的应用和/或相关资源的数量类似地增加。

可以通过打补丁过程来修复与在市场上已经发布相应基础设施组件之后所发现的计算环境相关联的系统漏洞。补丁可以应用于信息系统的许多不同部分,诸如操作系统、服务器、路由器、桌面、电子邮件客户端、办公室、移动设备、防火墙和存在于网络基础设施内的许多其他组件。然而,在大的和/或另外复杂的计算环境中,以一致为基础将应用于环境中的补丁的数量可以超过在有用或合理的时间帧中可以由人可靠地处理的补丁的数量。

首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。

特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理pda)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。

服务模型如下:

软件即服务(saas):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。

平台即服务(paas):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。

基础架构即服务(iaas):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。

现在参考图1,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(pda)或移动电话54a,台式电脑54b、笔记本电脑54c和/或汽车计算机系统54n。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(iaas)、平台即服务(paas)和/或软件即服务(saas)。应当理解,图1显示的各类计算设备54a-n仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

现在参考图2,其中显示了云计算环境50(图1)提供的一组功能抽象层。首先应当理解,图2所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图2所示,提供下列层和对应功能:

硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机61;基于risc(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。软件组件的例子包括:网络应用服务器软件67以及数据库软件68。

虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟私有网络)、虚拟应用和操作系统74,以及虚拟客户端75。

在一个示例中,管理层80可以提供下述功能:资源供应功能81:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能82:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能83:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(sla)计划和履行功能85:为根据sla预测的对云计算资源未来需求提供预先安排和供应。

工作负载层90提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及区块链管理96。

图3是根据在此描述的一个或多个实施例的促进相关补丁协调的系统300的框图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。如图3中所示,系统300包括规划组件310,其创建与计算环境340相关联的一个或多个待决补丁的补丁执行计划。补丁可被应用于与计算环境340相关联的不同软件组件,诸如操作系统、数据库框架、软件库、应用等。此外或可替代地,补丁可以经由固件、bios(基本输入/输出系统)更新等应用于不同硬件组件,诸如服务器、路由器、防火墙、网络交换机、台式计算机和/或膝上型计算机等。补丁可以被部署用于多种用途,诸如用于修复在相应的基础设施组件已经在市场上发布之后发现的系统漏洞、改进现有基础设施组件的功能和/或添加附加功能等。

在一个方面,规划组件310可以基于多个因素(如计算环境340中的各自计算机所使用的操作系统、计算环境340中所使用的计算平台和/或应用等)来识别适用于计算环境340的补丁。从所识别的补丁,规划组件310可以创建相应的补丁执行计划,所述补丁执行计划包含关于要执行的补丁和要执行补丁的顺序两者的信息。例如,不同的计划可以指示相同或不同的补丁的执行,并且可以指示以相同或不同的顺序执行补丁。

如图3中所示的系统300进一步包括一个评分组件320,该评分组件基于例如与各自的补丁执行计划相关联的依赖性对由规划组件310创建的补丁执行计划中的各自的补丁执行计划的影响进行量化。可由评分组件320在量化补丁影响时考虑的依赖性可包括但不限于与补丁执行计划相关联的相应补丁之间的依赖性、计算环境340中的相应计算机之间的依赖性、计算环境中的相应应用之间的依赖性和/或计算环境340的实体和/或组件之间的任何其他合适关系。

通过具体的、非限制性示例的方式,计算环境340可以包含分别为网络(web)应用提供前端和后端功能的网络(web)服务器和数据库服务器。在这种情况下,网络(web)服务器可以取决于数据库服务器,因为对数据库服务器的修改将影响网络(web)服务器,并且数据库服务器的任何结果故障也可以导致网络(web)服务器的故障。类似的依赖性可存在于计算环境340的其他层级处,例如,在相应的应用、库、服务器和/或其任何合适的组件之间。可以由评分组件320利用的这些和其他关系在以下关于图6-7进一步详细描述。

在一个方面中,评分组件320可以至少基于这些各自计划的所估计的影响的一部分将影响得分和/或其他量化度量分配给这些各自补丁执行计划。例如,在以上给出的web服务器和数据库服务器的示例中,评分组件320可以对在数据库服务器之前修补web服务器的补丁执行计划指派比相反操作的计划更低的影响分数,因为前者在补丁中的一个发生故障的情况下将导致减少的总体系统停机时间。

在另一方面,由评分组件320分配的影响评分可以进一步基于与补丁执行计划和/或计算环境340相关联的不同风险参数,例如,在补丁故障的情况下停机时间或其他性能损失的风险、在补丁未及时应用的情况下计算环境340的安全性风险等。下文结合图5进一步详细地描述风险评估及其在估计补丁执行计划的影响中的作用。

如图3进一步所示,系统300包括补丁协调组件330,所述补丁协调组件330基于补丁执行计划中的相应补丁执行计划的影响,从由规划组件310创建并且由评分组件320评分的补丁执行计划中选择补丁执行计划。

在一个方面中,补丁协调选择由规划组件310创建的具有由评分组件320分配的最低影响得分的补丁执行计划,由此促进对计算环境340具有最小影响的补丁执行计划的执行。也可以使用其他选择标准。例如,补丁协调组件330可以例如经由随机选择和/或基于其他预定义的标准,从具有低于阈值的影响分数的一组补丁执行计划中选择补丁执行计划。其他因素也可以影响如由补丁协调组件330执行的补丁执行计划的选择,例如用户偏好、在计算环境340中执行的先前补丁的历史和其相应的结果等。

在一个方面中,如经由系统300促进的所协调的补丁在以协调的方式给服务器和/或其他计算机打补丁时可以提供最小的影响,从而提高计算环境340及其相应计算机的性能。以本文所述的方式执行的补丁还可防止数据系统故障,这可最终防止收入损失。进一步,对于具有大量机器、应用和/或库的大型数据中心和/或其他计算环境,针对单个计算环境发布的补丁的量可以超过可以由操作人员在合理或有用的时间范围内合理地识别和/或维持的补丁的量。因此,经常会遗漏或延迟针对计算环境发布的补丁,这进而会引起所使用的系统中的漏洞和/或以其他方式降低性能。相比之下,系统300可以使用预测影响评估来协调和自动执行大组补丁,从而使得能够以连续或近似连续的方式维持计算环境,同时还消除了补丁过程中人为错误的可能性。在一方面,用户可被给予机会以在自动打补丁过程中提供反馈和/或方向,从而使用户能够基于例如所分配的索引得分来进行风险感知认知的打补丁。

接着转向图4,所示展示了描绘其中可促进在此描述的一个或多个实施例的计算环境的示例、非限制性一般化过程流程的示例、非限制性框图400。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。如图4所示,可以针对计算环境监视一组供应商补丁。该组供应商补丁可以是例如由具有部署在计算环境中的组件的一个或多个硬件和/或软件供应商发布的一组一般化补丁。

在一方面,从给定供应商处接收的供应商补丁信息可以包括与部署在计算环境中的组件以及与供应商相关联的未部署在计算环境中的组件相关的信息。因此,如图4中进一步所示,可以分析供应商补丁信息以识别在补丁信息中指示的与计算环境相关的补丁。

在一方面,供应商补丁信息可与存储在对应于计算环境的库存历史数据库410处的信息进行比较。库存历史数据库410存储与环境中的不同硬件和/或软件组件相关的信息。此外或可替代地,库存历史数据库410可存储与计算环境的相应组件的操作历史(例如,补丁日志、错误日志等)相关的信息。库存历史数据库410可被自动维护,例如作为数据中心库存管理系统和/或云管理平台的一部分,或替代地,库存历史数据库410的一些或全部可被手动维护。虽然库存历史数据库410被示出为数据库结构,但是应当理解,与计算环境相关的信息可以任何合适的方式存储在任何合适的数据结构(例如,数据库、链表、树等)中。

响应于挖掘可应用的系统和/或补丁,可以分析各自的系统和/或补丁的影响。在一方面中,此分析可基于环境中的相应组件之间的依赖性和将应用的相应补丁来进行。作为示例,图4示出了执行利用库、web应用和web前端的web应用的云数据中心420。云数据中心420的组件之间的箭头表示相应组件之间的依赖性。在该示例中,云数据中心420的组件之间的依赖性和/或其他合适的准则可用于计算要应用的相应补丁的影响分数,如下面的云数据中心420所示。

在一方面,以上分析导致与计算环境相关联的目标影响分数。如果该目标影响分数低于给定阈值,则通过创建具有协调和影响优化的补丁执行计划来启动补丁执行。为了最小化给定补丁执行的补丁影响,可以推荐基于影响分数的动作。然后,可以执行推荐的动作,并且可以监视和存储这些动作的影响,例如,存储在库存历史数据库410中。

现在转向图5,示出了促进与计算环境(例如,计算环境340)相关联的相应补丁相关联的风险分析的系统500的框图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。如系统500中所示,可以向评分组件320提供相应的补丁执行计划,例如由规划组件310创建的补丁执行计划。在一方面,评分组件320包括风险评估组件510,其例如基于提供给评分组件320和/或由风险评估组件510基于补丁执行计划自身、相关联的计算环境的属性和/或其他信息确定的风险因子信息来确定与一个或多个待决补丁中的相应补丁相关联的相应风险因子。

风险评估组件510可以向补丁执行计划中的相应补丁执行计划指派指示与相应补丁执行计划相关联的风险因素的计划影响分数。因此,补丁协调组件330和/或评分组件320可以基于与其相关联的相应风险因素来选择适当的补丁执行计划。

在一个方面中,风险评估组件510可以至少部分地基于受各自的补丁执行计划影响的计算环境的补丁和/或组件之间的关系将影响分数分配给各自的补丁执行计划。在一个示例中,计算环境的元件之间的关系可基于可追溯性分析来确定。在可追溯性分析中,可以找到和分析要求、规格和设计元件之间的链接以确定启动改变的范围。

示范性可追溯性分析由图6中的图600示出。这里,目标应用a可以被追踪到库1-4中的每一个,而补丁b可以被追踪到库2和4。因为补丁b影响由应用a利用的库,所以补丁b可以被指定为影响应用a,即使补丁b不直接修改应用a。

在另一个示例中,计算环境的元素之间的关系可以基于依赖性分析来确定。在依赖性分析中,依赖性可由计算环境的部分、逻辑、模块和/或其他元件之间的链接来定义。然后可以评估这些链接以确定起始改变的结果。以此方式,依赖性可以比可追溯性更宽的等级概念化,其中可追溯性是依赖性的子集。例如,在系统设计内,可以运行网络踪迹以标识依赖性。

图7中的图700示出了示例依赖性分析。这里,第一目标应用a利用库a1-a4,并且可以跟踪到第二目标应用b。目标应用b继而利用库b1-b3,库b1-b3可以与库a1-a4的相应库相同或不同。进一步,可以将补丁c跟踪到库b1和b2。因为补丁c影响由目标应用b利用的库,所以补丁c可被指定为通过如上所述的可追溯性影响目标应用b。此外,因为目标应用a取决于目标应用b,所以目标应用b可以被指定为影响目标应用a。结果,补丁c还可被指定为通过目标应用a和b之间的依赖性来影响目标应用a。

现在参见图8,其展示了描绘根据在此描述的一个或多个实施例的促进补丁协调和记录的系统800的示例性、非限制性框图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。在一个方面中,系统800包括补丁协调组件330,其接收与计算环境340的一个或多个元件相关的补丁执行计划(例如,来自规划组件310)和对应的计划影响得分(例如,来自评分组件320)。如系统800中进一步所示,补丁协调组件330包括机器学习组件810。在一个方面中,机器学习组件810可以基于与计算环境340中的至少一个或一组待决补丁中的相应补丁相关联的历史数据,例如从规划组件310获得的补丁执行计划中选择补丁执行计划。

在一个方面中,由机器学习组件810利用的历史数据可以由历史数据存储820存储和/或以其他方式从历史数据存储820访问。历史数据存储可以是数据库、链表、树结构、和/或维持与先前执行的补丁有关的数据、对应于先前执行的补丁的影响评级、和/或与计算环境340和/或其操作相关联的其他信息的任何其他合适的数据结构。使用来自历史数据存储820的数据,机器学习组件810可以使用对应于相应的先前执行的补丁的由历史数据存储820给出的相应影响评级来估计相应补丁执行计划的影响。

在另一方面,补丁协调组件330可以执行由机器学习组件810为计算环境340选择的补丁执行计划。另外,补丁协调组件可以将关于计算环境340和/或所选补丁执行计划的信息提供给档案组件830。档案组件830可以经由历史数据存储820存储与所选择的补丁执行计划(例如,由补丁协调组件330选择和/或执行的补丁执行计划)相关联的相应补丁的标识。此外或可替代地,档案组件830可以经由历史数据存储820存储与相应补丁相关联的影响评级、执行相应补丁的结果、和/或其他合适的历史信息。

在另一方面,档案组件830和历史数据存储820可以用于促进计算环境的专业影响分析。作为示例,历史数据存储820可以存储与图8所示的计算环境340有关的数据以及可以由系统800维护或不维护的一个或多个附加计算环境。以这种方式,补丁协调组件330可以利用数据中心平台在不同环境中展现的相似性。例如,在一个环境(例如,测试)中的一个补丁可以在另一个环境(例如,生产)中具有类似的结果。同样,不同的数据中心也可以共享体验。例如,信息技术(it)管理系统可以捕获第一数据中心中的补丁执行,并且在不同的数据中心中应用该信息。

如上所述,机器学习组件810可以另外促进主动学习方法,该主动学习方法使得能够在相应升级及其相应影响中捕捉补丁体验(例如,模式)。这可以包括监控和捕获实时或近实时数据。此外或可替代地,这可以使用户能够以结构化方式提供反馈,该反馈然后可以经由自动化被消耗。

在一个方面中,机器学习组件810可以用于基于例如历史、计算环境340和/或其他环境中的类似模式、可用软件更新、可用补丁和/或错误修复、与计算环境340相关联的软件和/或操作系统版本、由计算环境340使用的通信协议等,主动地推荐用于计算环境340的连续补丁。在一个示例中,机器学习组件810可以作为提供连续或接近连续的安全修补的云管理系统的一部分来操作。

图9展示了根据本文所描述的一个或多个实施例的促进计算环境中的补丁协调的示例性、非限制性计算机实现的方法900的流程图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。尽管在图9中未明确示出,但应当理解,在适用的情况下,方法900的每个动作可以由可操作地耦合到处理器的计算设备执行。

在902,可以(例如,由规划组件310)发现具有相关补丁的服务器和应用程序。在一个示例中,发现可通过对具有补丁的计算环境340中的相应服务器、应用和/或其他元素执行相关性检查在902处发生。

在904处,可以基于相应类别(例如,由风险评估组件510)计算弱点(风险、影响等)分数。在一个示例中,可根据数值范围(例如,0-10范围等)将弱点分数分配给相应类别。

在906处,可以基于在902-904处获得的初步信息和历史信息来(例如,由规划组件310)创建补丁执行计划。历史信息可以经由例如图4所示的库存历史数据库410和/或图8所示的历史数据存储820获得。在一个方面中,可以存储所应用的补丁的历史,并且学习组件(例如,机器学习组件810)可以存储模型参数以至少部分地基于该历史来计算影响。

在908,可以针对包括在补丁执行计划中的补丁(例如,由规划组件310和/或评分组件320)找到依赖性和关系。可以基于例如主题专家(sme)输入、类似配置模式、最新软件更新、最新补丁和/或错误(bug)修复和/或任何其他合适的信息源来找到该信息。

在910,可以(例如,由评分组件320)计算对相应补丁执行计划的影响,并且可以记录相应的影响得分。在一个方面中,可以使用如以下关于图10-11所描述的基于图形的影响发现来计算影响。

在912处,可以(例如,通过补丁协调组件330)获得维护窗口(例如,预定义的维护窗口)和针对相应补丁执行计划的先决要求。

在914处,可以(例如,由补丁协调组件330)将动作利用影响分数进行分组。此处,补丁执行动作可以考虑其依赖性而被分组,例如,顺序补丁执行动作可以被对齐。此外或可替代地,可以识别预补丁动作,诸如下载包。

在916处,可以基于影响、时间、资源和/或其他考虑因素来(例如,由补丁协调组件330)设计动作计划。在一方面,可在该阶段为各个动作创建子动作。另外,打补丁时的任何冲突可例如通过检查依赖性来识别和解决。在另一方面,如果对应于动作计划的步骤是新的(例如,先前没有在对应的计算环境中执行该步骤),则可以提示用户确认该动作。

在918,执行计划可以被存储和调度(例如,由补丁协调组件330)。在此,计划可以与其相关联的时间、成本和/或资源参数一起被存储。在被调度时,计划可根据计划执行和/或保存以用于未来重复。

在920处,可以在执行动作计划之后(例如,由档案组件830)检查计算环境的补丁后状态。这些状态可以被记录在例如图4所示的库存历史数据库410和/或图8所示的历史数据存储820中。在920处采取的动作之后,方法900可返回到902用于进一步补丁。

接下来参见图10,示出了根据在此描述的一个或多个实施例的促进基于图形的补丁协调的示例性、非限制性计算机实现方法1000的流程图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。尽管在图10中未明确示出,但应当理解,在适用的情况下,方法1000的每个动作可以由可操作地耦合到处理器的计算设备执行。

在1002处,(例如,由规划组件310)可以发现计算环境中的相应服务器及其相应属性以及这些服务器之间的通信关联,并且可以使用此信息来构建图g。在1004处,基于例如基于类别的分组,(例如,由规划组件310)将图g分割成子图的群组。

在1006处,可以针对在1004处创建的每个子图(例如,由评分组件320)进行图查询。例如,可以应用基于编辑距离的图相似性匹配,可以如上所述计算影响分数,并且可以按照它们的影响分数对匹配进行排名并返回。

在1008处,(例如,由规划组件310和/或评分组件320)可以找到与所发现的类别组中的相应类别组相匹配的库存数据库(例如,如图4中所示的库存历史数据库410)的相应记录。在1010处,可以(例如,由评分组件320)确定在1008处发现的匹配子图是否是最佳匹配,例如,使约束σi∈[0,1]的i(x,t)=||(x–ti)/σi||最小化的子图,其中,i是模板的影响分数,n是模板的数目,并且σ是加权系数。如果在1010分析的子图被确定为不是最佳匹配,则在1012,该子图可被丢弃(例如,通过规划组件310和/或评分组件320)。否则,方法1000可以进行到1014。

在1014,可以(例如,由评分组件320)查询适用于在1010匹配的子图的动作集。在1016处,可以基于这些动作集中的动作的影响得分(例如,由评分组件320和/或补丁协调组件330)对这些动作集中的动作进行排序。

在排序之后在1016处,可以执行(例如,由补丁协调组件330)相应的动作。在1018,可以(例如,由补丁协调组件330)验证所执行的动作。如果验证不成功,则方法1000前进到1020,其中可针对未知动作提供用户输入。在1018处的成功验证之后,或者在1020处接收到用于未验证动作的用户输入之后,在1022处可以应用动作(例如,通过补丁协调组件330)。

图11中的图1100展示了可以结合影响评估和执行(例如,如以上关于图10所描述的)来使用的示例图形结构。最初,可以将图形结构的所有边设置为默认影响评级。接下来,集合a可以被定义为包括来自图形结构的与计算环境的应用/服务器模式相关联的动作边。对于a中的每个动作,可以搜索执行的补丁的历史h及其单独的影响评级。基于该搜索,可以识别具有足够小的影响(例如,故障率低于阈值)的一组相关动作。在由图1100所示的非限制性实例中,可选择对应于具有最高补丁级别和/或最小影响的相应子图的一组动作。

在以上分析之后,可以返回并执行动作结果列表,并且可以监测和记录与相应动作的执行相关联的故障和/或成功。然后,可以将动作结果存储为历史数据,并且可以相应地调整各个动作的影响等级。如果动作和/或结果不确定,则sme可以被参与以对影响进行评级。

接下来参考图12,示出了根据在此描述的一个或多个实施例的促进相关补丁协调的系统1200的框图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。系统1200包括发现组件1210,该发现组件例如在信息的基础上识别计算环境340中的一组设备和补丁,并初始化对应的补丁执行计划,该信息和经由例如图4中所示的库存历史数据库410提供给发现组件1210的计算环境相关。

系统1200进一步包括影响分析组件1220,该影响分析组件可以基于对应于相应候选动作的影响评级来分析由发现组件1210初始化的补丁执行计划的相应候选动作。在一方面,影响分析组件1220可基于计算环境的元素之间的依赖性(例如,如以上关于图6-7所描述的)来确定相应候选动作的影响评级。

此外,系统1200包括动作选择组件,该动作选择组件基于影响分析组件1220的结果(例如,影响分数和/或与影响分析组件1220的相应候选动作相关联的其他度量)选择动作选择组件1230所评估的候选动作中的一个或多个。在一个示例中,动作选择组件1230可以选择具有如由相应影响评级确定的最小组合影响的候选动作集合以供执行。也可以使用其他度量。例如,动作选择组件1230可以选择具有小于阈值的总影响的一组动作。

转到图13,示出了根据在此描述的一个或多个实施例的促进补丁协调、执行和记录的系统1300的框图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。系统1300包括发现组件1210、影响分析组件1220、和动作选择组件1230,其可如以上参见图12所描述的那样起作用。

如系统1300所示,影响分析组件可以基于与计算环境相关联的历史数据1310和/或由发现组件1210标识的计算环境340中的设备和补丁的集合来分析相应的候选动作。

在一个方面,系统1300进一步包括补丁执行组件1320,该补丁执行组件可以执行由动作选择组件1230选择的用于包括在补丁执行计划中的相应动作。所执行的动作和/或它们对应的结果可以由补丁历史组件1330记录,例如作为历史数据1310的一部分。

接着参考图14,根据一个或多个实施例展示了可以用于实现在此描述的一个或多个方面的处理组件1400。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。

如图14所示,处理组件1400可以与至少一个处理器1410(例如,中央处理单元、图形处理单元等)相关联,该至少一个处理器可以用于实现如上所述的规划组件310、评分组件320和/或补丁协调组件330中的一个或多个。处理器1410可经由数据总线1420连接到处理组件1400的一个或多个附加子组件,诸如通信组件1430和/或存储器1440。虽然通信组件1430被示出为与(一个或多个)处理器1410分开地实现,(一个或多个)处理器1410在一些实施例中可以附加地用于实现通信组件1430。在其他实施例中,通信组件1430可以在处理组件1400外部并且经由单独的通信链路与处理组件1400通信。

根据在此描述的一个或多个实施例,可以由处理组件1400利用存储器1440来存储由处理组件1400利用的数据。另外地或可替代地,存储器1440可以具有存储在其上的机器可读指令,所述机器可读指令当由处理组件1400执行时使所述处理组件(和/或其一个或多个处理器1410)实施如上所述的规划组件310、评分组件320、和/或补丁协调组件330。

图15展示了根据一个或多个实施例的可以用于实现在此描述的一个或多个方面的另一个处理组件1500。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。

如图15所示,处理组件1500可以与至少一个处理器1510相关联,该至少一个处理器可以用于实现如上所述的发现组件1210、影响分析组件1220、和/或动作选择组件1230中的一个或多个。处理器1510可经由数据总线1520连接到处理组件1500的一个或多个附加子组件,诸如通信组件1530和/或存储器1540。在一个方面中,通信组件1530能够以与以上关于图14所描述的通信组件1430类似的方式来配置。

类似于以上关于图14所描述的存储器1440,根据在此所描述的一个或多个实施例,可以由处理组件1500利用存储器1540来存储由处理组件1500利用的数据。附加地或可替代地,存储器1540可具有存储在其上的机器可读指令,所述机器可读指令当由处理组件1500执行时使处理组件(和/或其一个或多个处理器1510)实现如上所述的发现组件1210、影响分析组件1220和/或动作选择组件1230。

在不同实施例中,图14-15中所示的处理组件1400、1500可以是或包括硬件、软件(例如,一组线程、一组进程、执行中的软件等)或执行计算任务(例如,与接收到的数据相关联的计算任务)的硬件和软件的组合。例如,处理组件1400、1500可执行无法由人类执行(例如,大于人类思想的能力)的图形分析和/或操作。例如,在某个时间段内由处理组件1400、1500处理的数据的量、数据的处理速度和/或数据类型可以分别大于、更快并且不同于在同一时间段内可以由单个人脑处理的量、速度和数据类型。例如,由处理组件1400、1500处理的数据可以是与一个或多个计算设备相关联的原始数据(例如,原始文本数据、原始数字数据等)和/或压缩数据(例如,压缩文本数据、压缩数字数据等)。此外,处理组件1400、1500可以完全可操作来执行一个或多个其他功能(例如,完全通电、完全执行等),同时还处理上述数据。

图16示出根据在此描述的一个或多个实施例的促进相关补丁协调的示例非限制性计算机实施的方法1600的流程图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。

在1602处,由可操作地耦合到处理器(例如,处理组件1400的(多个)处理器1410)上的设备为与计算环境(例如,计算环境340)相关联的一个或多个待决补丁创建(例如,由规划组件310)补丁执行计划。

在1604处,该装置基于与这些补丁执行计划中的各自补丁执行计划相关联的依赖性来量化(例如,经由评分组件320)在1602处创建的这些补丁执行计划中的各自补丁执行计划的影响。

在1606处,该设备基于如在1604处量化的这些补丁执行计划中的各自的补丁执行计划的影响,从在1602处创建的这些补丁执行计划中优化(例如,经由补丁协调组件330)一个补丁执行计划。

图17展示了根据在此描述的一个或多个实施例的促进相关补丁协调的替代性示例、非限制性计算机实施的方法1700的流程图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。

在1702,可操作地耦合至处理器(例如,处理组件1500的(多个)处理器1510)的设备初始化(例如,经由发现组件1210)与计算环境(例如,计算环境340)中的一组设备和补丁相对应的补丁执行计划。

在1704,设备基于对应于相应候选动作的影响评级来分析(例如,经由影响分析组件1220)与计算环境中的该组设备和补丁相关联的相应候选动作。

在1706处,设备基于在1704处执行的分析的结果来优化(例如,经由动作选择组件1230)候选动作中的一个或多个候选动作以包括在1702处初始化的补丁执行计划中。

为了简化解释,计算机实现的方法被描绘和描述为一系列动作。应当理解和认识到,本发明不受所说明的动作和/或动作的顺序的限制,例如动作可以按不同顺序和/或同时发生,并且与在此未呈现和描述的其他动作一起发生。此外,根据所公开的主题,并非所有示出的动作都是实现计算机实现的方法所必需的。此外,本领域技术人员将理解和领会,计算机实现的方法可替代地经由状态图或事件被表示为一系列互相关联状态。另外,应进一步理解,下文和贯穿本说明书所公开的计算机实现的方法能够被存储在制品上,以促进将这样的计算机实现的方法传送和转移到计算机。如本文中所使用的术语“制品”旨在涵盖可从任何计算机可读设备或存储介质访问的计算机程序。

此外,因为(多个)数据包的配置和/或处理组件和/或分配组件之间的通信是从电气和机械组件和电路的组合建立的,所以人类不能复制或执行主题数据包配置和/或处理组件和/或分配组件之间的主题通信。例如,人类不能生成用于经由有线网络和/或无线网络在处理组件和/或分配组件等之间传输的数据。此外,人不能对可以包括与在空间计算过程期间生成的信息相对应的位序列的数据进行分组化,传输可以包括与在空间计算过程期间生成的信息相对应的位序列的数据等。

为了提供用于所披露主题的各个方面的上下文,图18以及以下讨论旨在提供对其中可以实现所披露主题的各个方面的合适环境的一般描述。图18展示了可以促进在此描述的一个或多个实施例的示例非限制性操作环境的框图。为了简洁起见,省略了对在此描述的其他实施例中采用的类似元件的重复描述。参照图18,用于实现本公开的各个方面的合适操作环境1800还可包括计算机1812。计算机1812还可包括处理单元1814、系统存储器1816和系统总线1818。系统总线1818将包括但不限于系统存储器1816的系统组件耦合到处理单元1814。处理单元1814可以是各种可用处理器中的任何一种。双微处理器和其他多处理器架构也可以被用作处理单元1814。系统总线1818可以是若干类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用任何各种可用总线架构的本地总线,这些总线架构包括但不限于:工业标准架构(isa)、微通道架构(msa)、扩展isa(eisa)、智能驱动电子设备(ide)、vesa本地总线(vlb)、外围组件互连(pci)、卡总线、通用串行总线(usb)、高级图形端口(agp)、火线(ieee1394)、以及小型计算机系统接口(scsi)。系统存储器1816还可以包括易失性存储器1820和非易失性存储器1822。基本输入/输出系统(bios)存储在非易失性存储器1822中,基本输入/输出系统(bios)包含诸如在启动期间在计算机1812内的元件之间传输信息的基本例程。作为说明而非限制,非易失性存储器1822可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存或非易失性随机存取存储器(ram)(例如,铁电ram(feram))。易失性存储器1820还可以包括充当外部高速缓存存储器的随机存取存储器(ram)。作为说明而非限制,ram可以以许多形式获得,例如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、同步链路dram(sldram)、直接rambusram(drram)、直接rambus动态ram(drdram)和rambus动态ram。

计算机1812还可以包括可移除的/不可移除的、易失性/非易失性计算机存储介质。图18示出了例如磁盘存储器1824。磁盘存储器1824还可以包括但不限于像磁盘驱动器、固态驱动器、软盘驱动器、磁带驱动器、jaz驱动器、zip驱动器、ls-100驱动器、闪存卡、或存储棒之类的设备。磁盘存储器1824还可包括分开地或与其他存储媒质组合的存储媒质,所述其他存储媒质包括但不限于:光盘驱动器,诸如致密盘rom设备(cd-rom)、cd可记录驱动器(cd-r驱动器)、cd可重写驱动器(cd-rw驱动器)、数字通用盘rom驱动器(dvd-rom)或蓝光盘驱动器。为了促进磁盘存储器1824与系统总线1818的连接,通常使用可移除或不可移除接口,诸如接口1826。图18还描绘了充当用户和在合适的操作环境1800中所描述的基本计算机资源之间的中介的软件。这种软件还可以包括例如操作系统1828。可以存储在磁盘存储器1824上的操作系统1828用于控制和分配计算机1812的资源。系统应用1830利用操作系统1828通过程序模块1832和例如存储在系统存储器1816中或存储在磁盘存储器1824上的程序数据1834对资源的管理。应当理解,本发明可用不同操作系统或操作系统的组合来实现。用户通过输入设备1836将命令或信息输入到计算机1812中。输入设备1836包括但不限于诸如鼠标、轨迹球、指示笔、触摸板、键盘、话筒、操纵杆、游戏板、圆盘式卫星天线、扫描仪、tv调谐器卡、数码相机、数字视频相机、网络相机等的定点设备。这些和其他输入设备经由接口端口1838通过系统总线1818连接到处理单元1814。接口端口1838包括例如串行端口、并行端口、游戏端口和通用串行总线(usb)。输出设备1840使用与输入设备1836相同类型的端口中的一些。因此,例如,usb端口可以用于向计算机1812提供输入,并且从计算机1812向输出设备1840输出信息。提供输出适配器1842以说明除了需要特殊适配器的其他输出设备1840之外,还存在一些输出设备1840,如监视器、扬声器和打印机。作为说明而非限制,输出适配器1842包括提供输出设备1840和系统总线1818之间的连接装置的视频和声卡。应注意,其他装置和/或装置的系统提供输入和输出能力,例如远程计算机1844。

计算机1812可以使用到一个或多个远程计算机(如远程计算机1844)的逻辑连接在联网环境中操作。远程计算机1844可以是计算机、服务器、路由器、网络pc、工作站、基于微处理器的电器、对等设备或其他公共网络节点等,并且通常还可以包括相对于计算机1812所描述的元件中的许多或全部。出于简洁的目的,仅存储器存储装置1846被图示为具有远程计算机1844。远程计算机1844通过网络接口1848逻辑连接到计算机1812,然后经由通信连接1850物理连接。网络接口1848包含有线和/或无线通信网络,诸如局域网(lan)、广域网(wan)、蜂窝网络等。lan技术包括光纤分布式数据接口(fddi)、铜线分布式数据接口(cddi)、以太网、令牌环等。wan技术包括但不限于点对点链路、电路交换网络(如综合业务数字网(isdn))及其变型、分组交换网络和数字用户线路(dsl)。通信连接1850指代用于将网络接口1848连接到系统总线1818的硬件/软件。虽然为了图示的清楚起见在计算机1812内示出了通信连接1850,但是它也可以在计算机1812的外部。用于连接到网络接口1848的硬件/软件还可包括(仅出于示范性目的)内部和外部技术,诸如包括常规电话级调制解调器、电缆调制解调器和dsl调制解调器、isdn适配器和以太网卡的调制解调器。

在任何可能的技术细节结合层面,本发明可以是系统、方法、装置和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。用于执行本发明一个或多个实施例的操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

虽然上文已经在运行在计算机和/或计算机上的计算机程序产品的计算机可执行指令的一般上下文中描述了主题,但本领域技术人员将认识到,本披露还可以或可以与其他程序模块组合实现。通常,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域的技术人员将理解,本发明的计算机实现的方法可以用其他计算机系统配置来实践,包括单处理器或多处理器计算机系统、迷你计算设备、大型计算机以及计算机、手持式计算设备(例如,pda、电话)、基于微处理器的或可编程的消费或工业电子设备等。所示方面还可在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。然而,本公开的一些方面(如果不是所有方面)可在独立计算机上实践。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。

如在本申请中所使用的,术语“组件”、“系统”、“平台”、“接口”等可以指和/或可以包括计算机相关实体或与具有一个或多个特定功能的操作机器相关的实体。本文公开的实体可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序、和/或计算机。作为说明,运行在服务器上的应用和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。在另一示例中,各个组件可以从具有存储在其上的不同数据结构的不同计算机可读介质执行。组件可以经由本地和/或远程进程通信,诸如根据具有一个或多个数据分组的信号(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一组件交互,和/或跨越诸如互联网的网络经由该信号与其他系统交互)。作为另一示例,组件可以是具有由电气或电子电路操作的机械组件提供的特定功能的设备,其由处理器执行的软件或固件应用操作。在这种情况下,处理器可以在设备的内部或外部,并且可以执行软件或固件应用的至少一部分。作为又一示例,组件可以是通过不具有机械组件的电子组件来提供特定功能的设备,其中,电子组件可以包括用于执行软件或固件的处理器或其他装置,所述软件或固件至少部分地赋予电子组件的功能。在一方面中,组件可经由例如云计算系统内的虚拟机来仿真电子组件。

此外,术语“或”旨在表示包含“或”而不是排他的“或”。也就是说,除非另外指明,或从上下文清楚的是,“x采用a或b”旨在表示任何自然的包含性排列。即,如果x采用a,x采用b,或x采用a和b两者,则在前述实例中的任一个下满足“x采用a或b”。此外,如在主题说明书和附图中所使用的冠词“一个(a)”和“一种(an)”总体上应被解释为意指“一个或多个”,除非另外指明或从上下文中清楚指向单数形式。如在此使用的,术语“示例”和/或“示范性”被用来意指充当示例、实例或说明。为了避免疑问,在此披露的主题不限于此类实例。此外,在此描述为“实例”和/或“示范性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利,也不意味着排除本领域普通技术人员已知的等效的示范性结构和技术。

如在本说明书中所采用的,术语“处理器”可以指代基本上任何计算处理单元或设备,该计算处理单元或设备包括但不限于:单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力的多核处理器;具有硬件多线程技术的多核处理器;并行平台;以及具有分布式共享存储器的并行平台。另外,处理器可指代集成电路、专用集成电路(asic)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑控制器(plc)、复杂可编程逻辑装置(cpld)、离散门或晶体管逻辑、离散硬件组件,或经设计以执行本文中所描述的功能的其任何组合。进一步,处理器可以利用纳米尺度架构,诸如但不限于基于分子和量子点的晶体管、开关和栅极,以便优化空间使用或增强用户设备的性能。处理器还可实现为计算处理单元的组合。在本披露中,术语如“存储”、“存储”、“数据存储”、“数据存储”、“数据库”、以及基本上任何其他与组件的操作和功能相关的信息存储组件用于指“存储器组件”、体现在“存储器”中的实体、或包括存储器的组件。应当理解,本文所述的存储器和/或存储器组件可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为说明而非限制,非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除rom(eeprom)、闪存或非易失性随机存取存储器(ram)(例如,铁电ram(feram))。易失性存储器可以包括ram,该ram例如可以充当外部高速缓存存储器。作为说明而非限制,ram可以以许多形式获得,例如同步ram(sram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、同步链路dram(sldram)、直接rambusram(drram)、直接rambus动态ram(drdram)和rambus动态ram(rdram)。另外,在此的系统或计算机实现的方法的所公开的存储器组件旨在包括但不限于包括这些和任何其他适当类型的存储器。

以上已经描述的内容仅包括系统和计算机实现的方法的示例。当然,出于描述本公开的目的,不可能描述组件或计算机实现方法的每个可想到的组合,但是本领域普通技术人员可以认识到,本公开的许多其他组合和置换是可能的。此外,就术语“包括(includes)”、“具有(having)”、“具有(comprises)”等在详细说明、权利要求书、附录和附图中使用的程度而言,此类术语旨在以类似于术语“包括(comprising)”的方式是包括性的,因为“包括(comprising)”当用作权利要求中的过渡词时被解释。以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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