用于集成计算系统的依存性解决系统和方法与流程

文档序号:15981035发布日期:2018-11-17 00:20阅读:240来源:国知局

本公开的各方面涉及计算设备,具体地涉及用于集成计算系统的依存性解决系统和方法。

背景技术

诸如公司和大学之类的企业所使用的计算环境通常由多个计算设备提供,这些计算设备以协同方式运行以满足企业的计算资源需求。随着云计算的出现和对稳定计算需求的增加,诸如聚合基础设施之类的集成计算环境得到了发展。这样的集成计算环境提供了标准化资源包,这些资源被组合成具有相对较高定制水平的单一、优化计算解决方案。尽管如此,但是这种高定制水平向设计人员提出了挑战,以确保集成计算系统的资源相互兼容并且满足各种可能的需求。



技术实现要素:

根据本公开的一个方面,一种用于解决集成计算系统中的依存性的系统包括可执行指令,其用于获得集成计算系统的第一对象实例,其中根据对象模型生成的第一对象实例包括表示集成计算系统的统一实体。第一对象实例包括表示集成计算系统的多个分级布置的资源的多个分级布置的子对象实例。该指令还根据第一对象实例生成第二对象实例,包括:针对第二对象实例内的每个子对象实例,标识子对象实例相对于至少一个其他子对象实例的一个或多个依存性,以及将与依存性相关联的信息存储在第二对象实例中。指令然后可以通过修改子对象实例或另一子对象实例中的至少一个以彼此兼容来使用第二对象实例来解决依存性。

附图说明

如附图所图示的,根据以下对那些技术的特定实施例的描述,本公开的技术的各种特征和优点将变得明显。应当指出,附图不一定是按比例绘制;然而,重点正在放在说明技术概念的原则上。此外,在附图中,贯穿不同的视图,相似的附图标记可以是指相同的部分。附图仅描绘了本公开的典型实施例,因此不被认为是对范围的限制。

图1a和图1b图示了根据本公开的一个实施例的示例依存性解决系统。

图2a和图2b图示了根据本公开的一个实施例的被体现为聚合基础设施的示例集成计算系统。

图3至图7图示了根据本公开的一个实施例的可以用于创建表示集成计算系统的集成计算系统对象实例的示例集成计算系统对象模型。

图8图示了根据本公开的一个实施例的可以用于由依存性解决系统生成基于依存性解决的对象实例的对象模型的一部分的示例面向对象的类结构。

图9是描绘了根据本公开的一个实施例的在集成计算系统依存性解决计算设备上执行的示例集成计算系统依存性解决工具的框图。

图10图示了根据本公开的一个实施例的由集成计算系统依存性解决工具执行的示例过程。

图11是图示了可以用于实现本发明的实施例的计算设备或计算机系统的示例的框图。

具体实施方式

本公开的实施例提供了一种集成计算系统依存性解决系统和方法,其生成分级的(hierarchal)面向对象的数据库模型,并且使用面向对象的数据库模型来构造表示定制的集成计算系统的定制的集成计算系统对象实例,其可以用于确保定制的集成计算系统的资源彼此兼容并且满足某些性能要求,诸如由定制的集成计算系统的客户所指定的那些性能要求。该对象模型符合面向对象的规则(例如,多态性、继承、封装等)以定义和表示集成计算系统的多个特定定制实例。依存性解决系统包括工具,其接收用于适应(例如,定制)对象模型的实例的用户输入,并且基于那些改变来处理任何依存性,以使得模型的定制实例精确地表示部件彼此兼容并且满足某些性能目标的定制的集成计算系统。

传统的分布式计算环境设计实践经常涉及生成数据库,其包括物料清单(bom)和包括在bom中的部件的特定配置布置。所得数据库是平坦的,因为任何依存性信息都不容易转移到表示其他定制分布式计算环境产品的其他数据库模型。由于用于实现分布式计算环境的部件的特性的相对宽的变化以及可能影响部件如何互相操作的大量个不同依存性,当要开发新的定制分布式计算环境时,设计者经常必须从头开始。通常经由个人经验或通过先前的分布式计算环境设计获得的主题专门知识来处理依存性信息。

图1a和图1b图示了根据本公开的教导的示例集成计算系统依存性解决系统100。除了其他益处或解决方案之外,该系统100还通过传统系统处理了上文所讨论的问题。系统100包括依存性解决工具计算设备102,其具有集成计算系统依存性解决工具104、集成计算系统管理应用106和数据源108。如下文将详细描述的,集成计算系统依存性解决工具104生成表示集成计算系统114的基于依存性解决的对象实例112,其中基于依存性解决的对象实例112包括与集成计算系统114的一个或多个分级布置的资源118相对应的一个或多个子对象实例116。工具104还修改基于依存性解决的对象实例112以包括表示与子对象实例112相关联的资源118的功能特性的特性属性120以及表示该资源118相对于其他资源118的功能特性的依存性的依存性属性122。一旦生成了基于依存性解决的对象实例112,则工具104可以针对依存性属性122处理特性属性120,使得可以解决所有依存性,从而可以创建完全可操作的集成计算系统114。

一般而言,典型的集成计算系统114包括多个个体资源(例如,计算部件),其已经被集成到以协作方式运行的完成产品中,以执行一个或多个分布式服务。例如,典型的集成计算系统可以包括用于执行应用的计算资源、用于持久性存储由计算资源处理的信息的存储资源、以及用于以有组织的且有成本效益的方式将某些计算资源组与某些其他存储资源通信地耦合以执行应用的网络资源。在许多情况下,从商业角度来看,基于各种因素来利用来自多个不同供应商的部件是有利的,这些因素可以包括例如来自某些供应商的各种产品供应提供的特征集合以及提供这些特征集合的有竞争力的价格。例如,典型的集成计算系统可以用具有由一个制造商(例如,delltm)提供的计算资源的子系统、具有由另一制造商(例如,ciscotm)提供的网络资源的另一子系统、以及具有由再一制造商(例如,emccorporationtm)提供的存储资源的再一子系统来实现,这些子系统以协同方式利用其有竞争力的特征来为集成计算系统提供最佳配置。

将多个不同部件集成到可共同操作的集成计算系统中可能会遭遇许多依存性。一个示例依存性可以包括来自可以与某个类型的存储阵列配对的某个计算子系统模型的最大数目的计算刀片。另一示例依存性可以包括要与某个类型的计算子系统一起使用的最小网络交换机大小。考虑到要被集成的大量个不同类型的部件时,依存性的数目可能会变得非常大。例如,典型的中档集成计算系统可能会遇到超过1,000个单独的依存性,这些依存性应当被解决以便形成有效的集成计算系统配置。这个问题可能由于以下事实而变差:最初提出的配置可能无法解决所有依存性,因此需要用新的初始配置来重新启动集成过程,其可能是反复耗时的。

本公开的实施例通过实现分级面向对象的模型来提供该问题的解决方案,该分级面向对象的模型向集成计算系统设计提供了自上而下的途径。例如,设计者可以首先选择期望的计算块(例如,dell刀片阵列)和san块(例如,emc盘阵列)。考虑到这些输入,工具104可以确定与这两个部件的组合使用相关联的任何依存性,并且自动地包括/排除/改变某些部件以确保它们彼此兼容。为了进一步说明该示例,设计者可以选择特定操作系统安装在这些刀片上。基于该输入,该工具可以自动选择能够管理所选择的操作系统的vmware的特定版本(例如,为了使用windows10,必须使用vmware版本6.5)。因为数据库是使用面向对象的原则分级构建的,由于组成资源的特性不断改变,因此随时间的推移很容易管理和控制依存性。也就是说,该工具可以使用面向对象的原则,诸如包含(has-a)关系、依赖(uses-a)关系和/或继承(is-a)关系来生成用于每个子对象实例116的依存性,该依存性随时间的推移而易于维护(例如,随着新资源118的依存性改变而改变)。

一般而言,特性属性120包括关于其各自的子对象实例116的功能方面的信息。工具104可以通过访问存储在数据源108中的资源信息记录132来使用特性属性120填充每个子对象实例116。资源信息记录132通常包括关于可用于在集成计算系统114中所包含的每个资源118的信息。例如,资源信息记录132可以包括从由资源的制造商提供的规范文档所获得的信息、或从与其相应的资源118相关联的其他信息源所获得的信息。在一个实施例中,工具104剔除(例如,移除)与资源的功能无关的信息。例如,工具104可以移除制造商特定信息(例如,牌子、型号、零件号等),而仅用功能信息(例如,吞吐速度、存储容量、功率要求等)来填充子对象实例116。

依存性属性122通常包括与资源118相对于基于依存性解决的对象实例112中的一个或多个其他资源118的一个或多个依存性相关联的信息。例如,计算资源118可能需要来自用于向计算资源118供电的电源资源118的可用功率的最小功率水平要求(例如,至少50瓦特)。在这种情况下,工具104可以在计算资源118中包括依存性属性122,其指示电源资源118将具有至少50瓦的标称额定功率。当电源资源118被用于为多个资源118供电时,工具104还可操作以计算累计额定功率要求。例如,基于依存性解决的对象实例112可以向工具104提供信息,其指示电源资源118被用于向十个不同资源118供电。因此,工具104可以访问与那些资源118中的每个资源相关联的子对象实例116,确定针对每个资源的最小功率水平要求,添加该确定的结果,以及生成用于电源资源118的依存性属性122,其指示电源资源118应当能够提供该最小电力水平。

一般而言,工具104生成基于依存性解决的对象实例112,并且解决子对象实例116之间的依存性,以形成可共同操作的集成计算系统114。可共同操作的集成计算系统配置通常指代组合资源集合118,其当在定制的集成计算系统中实现时,已经被验证为可以彼此共同操作,并且资源共同地在定制的集成计算系统的用户所期望的一个或多个性能水平下运行。基于依存性解决的对象实例112是以面向对象的形式表示集成计算系统114的逻辑构造。也就是说,基于依存性解决的对象实例112使用抽象、封装、合成、继承和/或多态性的面向对象的原则来定义集成计算系统114的资源118之间的关系。

可以以任何合适的方式来获得基于依存性解决的对象实例112。在一个示例中,可以使用发现过程来获得基于依存性解决的对象实例112,以从集成计算系统114的资源118获得配置信息,并且配置信息被处理以创建表示集成计算系统114的配置的基于依存性解决的对象实例112。在另一示例中,工具104可以从集成计算系统依存性解决系统100的另一单独的系统获得对象实例126,该单独的系统独立地解决生成了基于依存性解决的对象实例112。附加地,基于依存性解决的对象实例112可以从尚未被制造的集成计算系统的规范中获得。例如,工具104可以从单独的集成计算系统设计工具接收定义集成计算系统的配置的规范,并且根据所接收的规范生成基于依存性解决的对象实例112。因此,基于依存性解决的对象实例112由工具104有效地定义,而各种资源118(例如,计算资源、存储资源、网络资源等)尚未被物理地集成并且组装到运行的集成计算系统。

一旦创建了基于依存性解决的对象实例112,就可以使用它来确定每个资源118的配置是否满足被存储在基于依存性解决的对象实例112中的依存性属性122,并且生成测试结果报告134以指示所有资源118是否彼此兼容。附加地,无论何时在资源118中发生改变,集成计算系统依存性解决工具104可以生成新的基于依存性解决的对象实例112或修改现有的基于依存性解决的对象实例112以考虑到集成计算系统114的配置中的改变。例如,当新资源118被实例化时,集成计算系统依存性解决工具104可以从集成计算系统管理应用106接收消息,并且使用与新创建或新修改的资源118相关联的依存性属性122来更新基于依存性分辨率的对象实例112,使得后续的依存性解决验证可以考虑到新创建或新修改的资源118。

集成计算系统114的资源118可以指代执行用于集成计算系统114的整体操作的一些功能的计算设备,诸如硬件计算设备(例如,主机)、虚拟计算设备(例如,虚拟对象)或可执行软件(诸如操作系统(os)。这样的计算设备的示例可以包括例如膝上型或笔记本计算机、工作站、平板计算机等、和/或复杂的计算结构,诸如集群、统一计算系统、基于结构的计算系统和动态基础设施。计算设备还可以包括其他通信设备,诸如交换机、路由器、防火墙设备或便于多个其他计算设备之间的通信的其他通信设备。集成计算系统114还可以包括集成计算系统,诸如存储阵列、网络资源、计算设备、和/或其任何组合。例如,集成计算系统114可以包括在云计算环境中配置的一个或多个聚合基础设施(ci)。

集成计算系统114可以包括任何布置和数目的资源118。例如,如果计算资源118包括诸如聚合基础设施之类的集成计算系统的对象,则集成计算系统的资源可以表示硬件资源、软件资源和/或在那些硬件资源上执行的一个或多个虚拟对象,这些虚拟对象可以在虚拟计算环境中实现,该虚拟计算环境或者是物理的、或者使用诸如虚拟化之类的技术来提供虚拟资源的虚拟对象。虚拟计算环境可以体现在提供裸金属计算设备的任何计算系统中,其中应用和操作系统直接在计算资源上执行,或者在一个或多个物理主机上所执行的虚拟化资源(虚拟对象)上执行。在本文中参照图2a和图2b在下文中示出并且描述了被实现为聚合基础设施的一个特定示例集成计算系统114。

集成计算系统管理应用106管理分布式计算环境114的资源112的操作,其可以包括例如供应资源,解除供应资源,在每个资源112上配置一个或多个操作参数等。任何合适类型的集成计算系统管理应用可以用本公开的教导来实现。在一个实施例中,集成计算系统管理应用包括vspheretm软件套件,其可从总部位于加利福尼亚州paloalto的vmware公司获得。

工具104根据存储在数据源108中的定制的集成计算系统对象实例130生成基于依存性解决的对象实例112。定制的集成计算系统对象实例130将集成计算系统114表示为统一实体。定制的集成计算系统对象实例130被创建为集成计算系统对象模型128的特定实例,并且反映从集成计算系统114获得的实际配置信息。虽然集成计算系统对象模型128对于在集成计算系统中所发现的范围宽广的可能配置和资源类型是通用的,但是定制的集成计算系统对象实例130特定于特定集成计算系统114的实际配置和资源类型。

集成计算系统对象模型128可以是根据面向对象的原则实现的类定义(例如,类、子类集合、方法、性质等),而基于依存性解决的对象实例112是软件类及其子类的特定实例化,其被从集成计算系统114中的每个资源118获得的配置信息所填充。集成计算系统对象模型128可以被实现为数据库模式,诸如用于sql数据库的模式,使得基于依存性解决的对象实例112包括按照该模式构建并且反映集成计算系统114中的资源118的配置的特定的表格和关系集合。数据库实现可以是在一些情况下有用,因为它提供了持久性的好处。数据库实现允许将基于依存性解决的对象实例112存储在非易失性存储器(例如,数据源108)中,该非易失性存储器可以在将来任何期望的时间被访问以供进一步处理。

在特定示例中,可以通过实例化用于系统对象的类并且实例化从属于系统对象类的第一子对象类集合中的每个子对象类来生成基于依存性解决的对象实例112。所得的第一子对象实例116的集合可以分别表示不同资源的逻辑类别,诸如在典型的聚合基础设施中可以找到的‘存储’、‘计算’和‘网络’子系统。可以提供任何数目的第一子对象实例116。例如,可以从集成计算系统对象模型128实例化‘连接性’子对象实例116,以提供电缆和其他连接资源的类别。附加地,可以从集成计算系统对象模型128实例化‘图形’子对象实例116以为图形处理单元(gpu)和其他视频流资源提供类别。应当强调,由第一子对象实例集合表示的类别可以被认为是形成用于聚合它们各自的容器的底层物理资源的容器结构的逻辑构造,并且在一些情况下,可以包括逻辑资源或物理资源的逻辑组(例如,raid组、lun、集群等)。在一些示例中,类别本身可以包括有关底层资源的聚合信息,诸如利用、健康状况等,其不能直接从集成计算系统114的资源118获得。

生成基于依存性解决的对象实例112还可以包括:从集成计算系统对象模型128实例化第二子对象类别集合中的每个子对象类别,以按照第二子对象实例116的集合表示集成计算系统114的底层物理资源118。例如,与特定物理资源(例如,盘阵列、服务器刀片、计算机架等)相对应的集成计算系统对象模型128的子类可以被实例化以生成子对象实例116,其提供资源的软件模型。在一些示例中,这些子对象实例116与由资源提供者提供的软件接口相似,但可以包括附加的信息和功能。此外,与可以从提供者获得的软件接口不同,这些第二子对象实例集合116适配在整体的基于依存性解决的对象实例112内并且与其集成。应当理解,第二子对象实例集合116指代相应的物理资源,因此可以被视为物理模型或‘物理’实例的软件实现,其不同于第一子对象实例集合中的逻辑实例。

在一些示例中,第二子对象实例集合116中的软件模型可以是表示相应物理资源类型但不特定于特定供应商牌子或型号的通用模型。例如,用于资源类型(例如,服务器刀片)的软件模型被通用地构建,以便有效地表示该类型的资源的不同供应商牌子和型号的范围。因此,资源的子对象实例由通用对象类生成,但是使用特定属性值进行定制,使得所得的软件模型特定于特定资源。

基于依存性解决的对象实例112和一些、大多数或所有的子对象实例116可以基于针对其相应的资源118所获得的配置数据使用一个或多个属性而被填充。根据本公开的实施例,工具104可以修改每个子对象实例116以包括与依存性解决相关联的一个或多个依存性属性120。工具104可以处理基于依存性解决的对象实例112和每个子对象实例116,并且根据子对象实例与依存性解决的依存性属性120的相关性来使用特定依存性属性120填充每个子对象实例。例如,如果依存性解决指定了为某个类型的资源指定最小的随机存取存储器的量的需求,则工具104可以处理基于依存性解决的对象实例112以确定哪些子对象实例116属于该类型并且使用依存性属性120填充那些子对象实例116,作为稍后可以用于验证其相应资源118对安全性强化策略120的符合性的属性。

基于依存性解决的对象实例112可以包括处于各种(例如,分级)水平的逻辑和物理子对象实例。例如,表示驻留在‘存储’类别(逻辑实体)下的存储阵列(物理实体)的子对象实例可以被包括在逻辑对象实例(诸如逻辑单元号(lun)、虚拟存储区域网络(vsan)和raid组)的对象实例分级结构中。进一步地,任何数目的存储阵列或其部分可以在一个或多个资源池中进行分组,这些资源池可以在基于依存性解决的对象实例112的存储类别下被表示为相应的逻辑对象实例。此外,表示驻留在‘计算’类别(逻辑实体)下的计算机架(物理实体)的对象实例可以包括逻辑对象实例,诸如虚拟计算刀片。进一步地,表示驻留在‘网络’类别(逻辑实体)下的网络机架(物理实体)的对象实例可以包括逻辑对象实例,诸如虚拟网络接口卡(vnic)和虚拟局域网网络(vlan)。

数据源112存储集成计算系统信息126、至少一个定制的集成计算系统对象模型128、至少一个定制的集成计算系统对象实例130、至少一个基于依存性解决的集成计算系统对象实例114、资源信息记录132以及一个或多个依存性解决报告134。集成计算系统信息126存储关于集成计算系统116的原始配置信息,诸如在集成计算系统116中所实现的每个资源118的数目和类型。集成计算系统对象模型128对于在集成计算系统中被找到的范围广泛的可能配置和资源类型是通用的,而定制集成计算系统对象实例130特定于特定集成计算系统116的实际配置。基于依存性解决的集成计算系统对象实例114通常包括定制的集成计算系统对象实例134,该定制的综合计算系统对象实例134已经由依存性解决管理工具104扩充以包括指示对集成计算系统114中的其他资源118的某些依存性的依存性属性122。资源信息记录132包括与可用于在定制的集成计算系统中所包含的资源118相关联的信息。例如,资源信息记录132可以包括关于已经由该资源118的制造商发布的其相应资源118的规范。依存性解决报告134存储关于由工具104进行的特定依存性验证过程的结果的信息。

集成计算系统依存性解决计算设备102和集成计算系统114以任何合适的方式彼此通信,包括但不限于有线(例如,铜)和/或光通信网络。在一个实施例中,集成计算系统依存性解决计算设备102和集成计算系统114使用通信网络彼此通信,诸如内联网、lan、虚拟lan或vlan、广域网或wan或如系统正常运行所需的另一有线和/或潜在的无线通信网络。在另一实施例中,管理计算系统102和集成计算系统114使用任何合适的协议或消息传送方案彼此通信。例如,他们可以使用超文本传输协议(http)、可扩展标记语言(xml)、可扩展超文本标记语言(xhtml)或无线应用协议(wap)协议进行通信。也存在通信协议的其他示例。例如,集成计算系统依存性解决计算设备102和集成计算系统114可以彼此通信而不使用单独的和独立的网络。附加地,其他实施例设想由集成计算系统管理应用106使用的模块由配置在集成计算系统114上的计算设备执行。

图2a图示了根据本公开的教导可以提供要由系统100监视的多个计算资源118的示例聚合基础设施200。聚合基础设施200可以是具有多个主机202的任何类型,每个主机202执行一个或多个虚拟对象(例如,虚拟机204a、虚拟存储对象204b和虚拟交换机对象204c)。聚合基础设施的主机通常被称为计算服务器。然而,‘主机’可以是支持虚拟资源的操作和由那些虚拟资源提供的服务的任何物理设备和/或资源。所示的特定聚合基础设施200包括几个子系统,诸如数据处理子系统206a、数据存储子系统206b和交换子系统206c。然而,应当理解,在不背离本公开的精神和范围的情况下,其他聚合基础设施200可以包括附加的、更少的或不同类型的子系统。

在一个方面中,每个聚合基础设施200包括这些子系统的组合或以标准化方式被封装和被互连以便于维护和使用的其他子系统的组合。诸如这些子系统之类的聚合基础设施通常在需要相对高的可靠性和/或可用性的环境中被实施(诸如在企业环境中)。尽管如此,设想了使用本公开的教导,可以管理其他计算环境和聚合基础设施,诸如计算机集群、计算网格、刀片阵列和/或其他聚合基础设施。例如,诸如所示出的聚合基础设施之类的聚合基础设施200包括在可从总部位于马萨诸塞州hopkinton的dell-emc技术公司获得的vblocktm系统基础设施包中找到的资源。

在一个方面中,数据存储子系统206b包括用于存储由聚合基础设施200所使用的数据的计算机可读存储结构,该聚合基础设施200可以包括由多个虚拟对象(例如,虚拟存储对象204b)所促进的网络附加存储(nas)阵列和/或存储区域网络(san)阵列。交换机子系统206c提供聚合基础设施200的各种子系统之间的通信,并且可以包括资源,诸如结构互连系统、以太网交换机/路由器、多层导向器交换机(mds)等。数据处理子系统206a执行访问、存储和以其他方式操纵由聚合基础设施200所存储的数据的应用。对于特定示例,数据存储子系统206b、交换子系统206c和/或数据处理子系统206a可以包括具有多个主机(例如,刀片计算设备)的刀片计算平台,每个主机执行一个或多个虚拟对象。

每个子系统包括多个主机202,每个主机202执行一个或多个工作负载或一个或多个虚拟对象,在这个特定示例中,这些虚拟对象是虚拟机(vm)204a、虚拟存储对象204b和虚拟交换对象204c。例如,诸如vm204a之类的虚拟对象可以包括在它们相应的主机上所仿真的基于软件的操作系统,这些主机是物理计算设备。对于每个主机,其相应的vm可以由管理程序管理,该管理程序为每个vm的操作提供虚拟环境并且控制其操作的各个方面。合适的管理程序的一个示例包括可从位于加利福尼亚州paloalto的vmware公司获得的vmwareesxtm软件套件。

现在再次参考图1,集成计算系统管理应用106管理计算环境114的各种活动,并且还可以管理主机202和聚合基础结构200的虚拟对象204的操作。例如,集成计算系统管理应用106管理资源的分配和解除分配,诸如由系统使用的主机和虚拟对象。附加地,集成计算系统管理应用106可以通过监视每个资源的健康状况并且执行校正措施来管理系统中故障的修复,诸如在某些资源已经失效或以某种方式发生故障的情况下向不同资源的迁移(例如,失效备援)。

图2b图示了根据集成计算系统依存性解决系统100的一个方面在每个聚合基础设施200上实现的示例主机202。主机202是包括一个或多个处理器210和存储器212的计算或处理设备。例如,主机202可以是个人计算机,诸如膝上型或笔记本计算机、工作站或其他处理设备(诸如个人数字助理或平板计算机)。在特定实施例中,主机202是安装在机架上的主机,诸如刀片主机,其中多个刀片主机共享共同背板以用于彼此通信并且用于从安装在机架上的配电单元接收电力。存储器212存储主机操作系统214以及由处理器210执行的一个或多个工作负载或虚拟对象(例如,vm204a、虚拟存储对象204b和虚拟交换机对象204c)。主机操作系统212控制和管理在主机202上执行的虚拟对象的操作。例如,用于启动、停止和/或改变每个虚拟对象的操作参数的控制信令通过主机操作系统212来管理。

一般而言,工作负载或虚拟对象(例如,vm204a、虚拟存储对象204b和虚拟交换对象204c)可以被实现为集成计算系统114的资源118。每个虚拟对象可以在主机操作系统214的控制下被实例化或者被删除,该主机操作系统214又由集成计算系统管理应用106所控制。也就是说,主机操作系统214可以由集成计算系统管理应用106控制以实例化所需要的新虚拟对象,并且它们为了减轻其相关主机202中的过剩容量而被破坏。尽管本实施例公开了可以被实现为多层计算环境的一种特定类型的计算结构,但是应当理解,可以根据在计算环境上执行的应用程序的需要来调整、增加、和/或删除资源的任何计算环境可以是可行的备选方案。

图3至图7图示了示例集成计算系统对象模型128,该示例集成计算系统对象模型128可以用于创建表示集成计算系统114的基于依存性解决的对象实例112,诸如上文关于图2a和图2b所示出和描述的聚合基础设施200。图3包括指示使用这些图的不同符号的各种含义中的一种含义的图例。用虚线示出各种关系以指示不同对象之间的关系可能不同,并且在某些配置中关系可能不存在。附加地,如图3至图7所示的每个对象可以包括一个或多个属性,每个属性可以使用关于其相应对象的信息(诸如将其相应对象唯一地关联到集成计算系统114的资源118的唯一标识符)而被填充。根据本公开的实施例,属性326还可以包括关于一个或多个依存性属性120的信息,该信息与由属性326的对象创建的其相应的子对象实例116相关联。

如图3所示,系统对象302表示集成计算系统114,其在此特定情况下是可从总部位于马萨诸塞州hopkinton的dell-emc技术公司获得的vblocktm系统。系统对象302(及其子对象)可以被实例化以生成基于依存性解决的对象实例112。第一子对象集合与系统对象302以一对一关系被示出。这些子对象可以提供作为系统对象302的孩子,并且包括存储对象304、计算对象306和网络对象308。对象304,306和308是逻辑对象,因为它们本身不直接表示任何个体物理硬件资源,而是用作聚合对象,其包括直接表示硬件的其他对象。例如,存储对象304可以包括存储阵列对象310的实例,其提供诸如emcsymmetrix或vnx存储阵列之类的物理存储阵列的软件模型。如e-r表示法所指示的,存储对象304可以引用从存储阵列对象310实例化的零个或多个存储阵列实例,也就是说,该对象模型可以支持任意数量的存储阵列。针对计算对象306示出了类似的关系,其可以包括物理计算系统对象312的任何数目的实例,并且针对网络对象308,其可以包括物理交换对象314的任何数目的实例。

在所示的示例中,系统对象302还可以包括任何数目的机架单元对象316。应当指出,机架单元对象不一定属于任何特定类。用于某些资源(诸如电源单元(psu)和传感器)的对象可以类似地在任何类的范围之外被提供。在备选布置中,可以为机架提供另一类对象,其包括任何数目的物理机架单元对象316作为子对象。

在示例中,图3所示的对象是基本模型或超类(未示出)的一部分,图3的对象从该模型或超类继承了各种共同的性质和/或方法。使用基本类可以避免代码的重复,并且提供了用于关联不具有直接约束关系的对象的构造。例如,连接性对象320被提供,其没有任何被标识的父亲。相反,连接性对象320是基本类的成员,因此与其他对象共享共同的软件结构。在此特定示例中,连接性对象320可配置为具有若干个不同的父对象,诸如交换机对象308、计算对象306或若干个其他对象。在所示的示例中,连接性对象320是逻辑对象,其可以包括任何数目的物理链接对象322。一般而言,链接对象322指代电缆。

图3中所示的对象各自可以具有任何数目的方法和/或性质。性质包括属性326,当生成基于依存性解决的对象实例112时,属性326的值被指派给实例。每个对象可能具有用于模型标识符(moid)的属性,其被指派了唯一值,诸如全局唯一id(guid)。尽管在图3中示出了对象属性的少数示例,但是应当理解,对象通常具有数百个或更多个属性。对于表示硬件的通用对象(例如,机架、服务器刀片、盘等),属性用于为对象实例所表示的底层硬件的牌子或型号的特定特性定制从这些对象实例化的相应对象实例。属性326可以指定健康状况、性能和与其他资源的关系(例如,父对象、机架内的包含物等)。属性326还可以存储物理位置信息,诸如gps坐标、被安装的建筑物地址以及数据中心内的位置。在一些示例中,属性指定由工具104生成但在发现期间不直接从资源提供的其他特性。在一些示例中,属性可以存储逻辑信息,诸如raid组、lun或计算集群中的成员资格。

图4示出了与计算子系统118相关联的计算对象的示例布置,该计算子系统118可以形成图2a和图2b的集成计算系统114的资源118的一部分。计算对象306可以包括任何数目的计算系统(物理)对象312。每个计算系统对象312可以包括一个或多个逻辑计算设备402、任何数目的计算机箱对象404以及任何数目的结构互连对象406。每个结构互连对象406可以包括任何数目的结构模块对象408,其可以包括任意数目的端口对象410。结构模块对象408是板对象412的类别。此外,计算机箱对象404和结构互连对象406是机箱对象414的类别。机箱对象414可以包括任意数目的风扇隔间对象416和任意数目的风扇对象418。此外,风扇隔间对象416可以包括任意数目的风扇对象418。机箱对象404还包括任何数目的psu(电源单元)对象424,其又可以包括任何数目的风扇对象418。

图4中的对象的布置显示了集成计算系统对象模型128表示多种系统配置的灵活性。例如,风扇隔间对象416和风扇对象418的可变布置反映以下事实:一些机箱包括个体风扇,而另一些机箱包括具有多个风扇的风扇隔间。图4的布置还示出了对象模型128的对象中的一些对象可以在不同的上下文中重用。例如,相同的风扇对象418可以用于表示机箱的风扇隔间中的风扇、不涉及任何风扇隔间的机箱的风扇、以及电源单元的风扇。在任何特定的集成计算系统对象实例中,可以以与特定配置一致的方式实例化这些对象,其中对象实例形成可以在不同上下文中根据需要使用的构建块。

图5示出了可以形成图2a和图2b的集成计算系统114的资源118的一部分的网络子系统308的网络对象的示例布置。网络对象308可以包括任何数目的交换对象502。交换对象502包括任意数目的机箱对象504。机箱对象504的一个特定类别是c3750机箱对象506。机箱对象506包括任意数目的风扇隔间对象508以及任何数目的风扇对象510。在一些布置中,每个风扇隔间对象508包括任意数目的风扇对象510。此外,机箱对象504可以包括任意数目的psu对象512,其中每个psu对象反过来可以包括任何数目的风扇对象510。psu对象512的一个类别可以包括c3750psu对象514,其是psu的特定类型。风扇对象510的类别还可以包括c3750风扇单元对象516。从

图5中可以看出,形成用于一个分类的构建块的某些对象也可以被用作另一分类中的构建块。因此,形成构建块的这些对象不受任何分类制约,并且可以贯穿对象模型而被使用。

图6示出了可以形成图2a和图2b的集成计算系统114的存储资源118的一部分的存储子系统304的几个存储对象的示例布置。这里,存储对象304可以包括任意数目的存储阵列对象602。存储阵列对象602的类别可以包括vnx存储阵列对象604和vnx存储阵列对象606。每个存储阵列对象602可以包括任何数目的存储机箱对象608,每个机箱对象608可以包括任意数目的电池对象610。机箱对象612被示出为存储机箱对象608的类别。机箱对象612可以包括任意数目的风扇隔间对象614和任意数目的风扇对象616。每个风扇隔间对象614可以包括任意数目的风扇对象616。机箱对象612可以包括任何数目的psu对象618。psu对象616可以包括任意数目的端口对象622,因此反映了存储机箱的电源单元可以包括多个端口的事实。图6的布置进一步强调了即使在不同的系统上下文中的对象作为构建块的可重用性,其中通过排列对象实例并且基于发现来填充其属性来实现通用构建块的定制。

图7示出了可形成图2a和图2b的集成计算系统114的资源118的一部分的物理和逻辑存储对象的示例存储图。这里,存储阵列对象602可以引用任意数目的lun对象702,这些lun对象又可以各自引用任何数目的raid组对象704。此外,存储阵列对象602可以直接引用任何数目的盘对象706和任何数目的raid组对象704。每个盘对象706可以引用任何数目的切片对象708。此外,每个lun对象702和每个raid组对象704可以引用任何数目的切片对象708。因此,存储图示出了物理和逻辑对象如何可以被一起用作集成计算系统对象模型128中的构建块。可以对诸如计算对象(例如,逻辑计算刀片)和网络对象(例如,vnic、vlan等)之类的其他对象进行类似的布置。

使用集成计算系统对象模型122,如通过图3至图7中的示例所示,可以使用从电子系统140的资源获得的实际发现的配置信息来生成和填充特定的基于依存性解决的对象实例112。由于集成计算系统对象模型122的通用性质,可以生成不同的集成计算系统对象实例126以反映电子系统140的不同配置,并且真正地反映不同的电子系统。在一些布置中,单个计算机化装置110可以例如通过网络130与多个电子系统(例如,多个vblocktm系统)连接,其中每个电子系统用相应的集成计算系统对象实例来表示。每个这样的集成计算系统对象实例可以具有不同的对象标识符或oid以及不同的名称属性。在一些示例中,提供更高层的对象,诸如包括多个系统对象的数据中心对象。

图8图示了根据本公开的一个实施例的、可以用于由工具104生成基于依存性解决的对象实例802的对象模型800的一部分的示例面向对象的类结构。对象模型800通常表示用三个类示出的通用集成计算系统配置。尽管对象模型800仅示出了仅具有三个对象类804,但是应当领会,对象模型800可以具有任何合适数量的类,诸如上文关于图3至图7所示出和描述的那些类。

对象模型800包括与存储机箱类608相对应的存储机箱类804a、与电源单元(psu)类618相对应的psu类804b以及与图6的存储阵列类602相对应的存储阵列类804c。存储机箱类804a通常表示被用于容纳由存储阵列类804c表示的一个或多个存储资源(例如,硬盘驱动器、固态驱动器等)的物理机箱。根据面向对象的原则,存储机箱类804a可以被认为与由存储阵列类804c表示的存储资源具有‘包含’关系。对象模型800还包括表示用于为由存储机箱类804a表示的存储机箱供电的物理电源的psu类804b。因此,存储机箱类804a可以被认为与psu类804b具有‘依赖’关系。

对象实例800包括可以由工具104基于对象模型800的类804中的信息来生成的子对象实例806。例如,工具104可以基于存储机箱类804a来生成存储机箱子对象实例806a,基于存储阵列类804c来生成存储阵列子对象实例806c以及基于psu对象类804b来生成psu子对象实例806b。存储机箱子对象实例806a、存储阵列子对象实例806c和psu子对象实例806b中的每个可以被认为与存储机箱类804a、存储阵列类804c和psu类804b具有‘继承’关系。

根据本公开的各方面,工具104使用在对象实例802中形成的‘包含’关系、‘依赖’关系和/或‘继承’关系来确定依存性属性122被包括在每个子对象实例806中。例如,存储机箱子对象实例806a可以包括特性属性120,其指示与存储机箱子对象类804a相关联的物理存储机箱可以被配置为拥有最大值为50个的2.5英寸硬盘驱动器。因此,工具104可以在存储机箱子对象实例806a中包括指示这种约束的依存性属性810a,使得当存储阵列子对象实例806a被修改为包括多于50个硬盘驱动器时,工具104可能会拒绝这样的配置。

作为另一示例,存储机箱子对象实例806a可以包括特性属性810a,其指示从与存储机箱子对象实例806a相关联的存储机箱供电所需的最小功率水平。因此,工具104可以访问该信息并且将其与被包括在psu子对象实例806b中的特性属性812b进行比较,以确保与psu子对象实例806b相关联的物理psu具有足以为与存储机箱子对象实例806a相关联的存储机箱供电的功率水平等级。附加地,在一些实施例中,工具104可以访问资源信息记录132以标识可以用来代替当前所选择的资源的其他备选资源118,使得可以解决依存性。例如,如果psu子对象实例806b不具有足以为存储机箱子对象实例806a供电的功率水平等级,则工具104可以访问存储在数据源108中的资源信息记录132以标识具有足够的功率水平等级的一个或多个其他psu资源118,并且在用户界面上向用户呈现那些备选的psu资源118。在其他实施例中,工具104可以自动地用具有足以解决未解决的依存性的特性属性120的另一子对象实例来替换未解决的子对象实例。

现在更详细地参考图9,根据本公开的一个方面描绘了在管理计算系统102上执行的示例集成计算系统依存性解决工具104的框图。集成计算系统依存性解决工具104被存储在计算机可读介质902(例如,存储器)中并且在依存性解决工具计算系统102的处理系统904上被执行。

例如,集成计算系统依存性解决工具104可以包括可以在诸如microsoftwindowstm操作系统、linux操作系统或unix操作系统环境的操作系统环境中执行的指令。作为另一示例,集成计算系统依存性解决工具104可以是在诸如firefoxtm网络浏览器的网络浏览器内执行的基于javatm或html5的应用。

计算机可读介质902包括易失性介质、非易失性介质、可移除介质、不可移除介质和/或另一可用介质。作为示例而非限制,非暂态计算机可读介质902包括在用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的方法或技术中实现的计算机存储介质,诸如非暂态存储器、易失性介质、非易失性介质、可移除介质和/或不可移除介质。

根据一个实施例,集成计算系统依存性解决计算设备102还包括在显示器908上显示的图形用户界面(gui)906,诸如用于显示数据的计算机监视器。集成计算系统依存性解决计算设备102还包括输入设备910,诸如键盘或指向设备(例如,鼠标、轨迹球、笔或触摸屏)以将数据录入到gui906中或与gui906交互。根据一个方面,集成计算系统依存性解决工具104包括可由处理系统902执行的指令或模块,如将在下文中详细描述的。

用户接口模块912分别促进从用户接收输入数据和/或向用户输出数据。在一个示例中,用户界面906还可以接收用户输入,其用于操纵或以其他方式修改集成计算系统依存性解决工具104的操作。作为另一示例,用户界面906可以接收用户输入,其用于修改和/或审查依存性属性120,其要被工具104使用以验证基于依存性解决的对象实例112。

资源信息收集模块914收集关于集成计算系统114中的资源118的信息。例如,资源信息收集模块316可以与操作管理应用106通信以获得关于资源的信息以及与每个资源118相关联的任何性能信息和/或特性信息。资源118可以包括与已经部署的集成计算系统114相关联的那些资源,或者资源118可以包括与尚未制造的集成计算系统114的规范相关联的那些资源。对于集成计算系统114尚未被制造(例如,被部署)的情况,集成计算系统114可以由对象实例126(诸如已经由系统结构师基于客户所指定的一个或多个要求来创建的对象实例)来表示。对于集成计算系统114已经被制造的情况,资源信息收集模块914可以执行发现过程以从现有集成计算系统114获得关于资源的信息。

经制造的集成计算系统114的资源118可能潜在地包括大量不同的配置设置。典型地,用于资源118的配置信息包括资源的软件接口通常供应的一些或全部信息,如其相应的制造商所提供的。在一些示例中,配置信息可以包括关于资源的某些细节,诸如其相对于其他资源的物理位置、其父资源(例如,安装它的机架)以及它所属的任何逻辑组,例如,raid组、lun(逻辑存储单元)、计算集群等。在一些示例中,细节还可以包括经计算的、描述该资源的概要信息或度量,其可以从多个不同的信息获得,这些信息从该资源和/或相关资源获得,这些信息描述例如资源的利用、资源健康状况(例如,资源是否看起来运行正常)和/或其他信息。在进一步的示例中,配置信息可以包括先前存储在特定资源上或与该特定资源结合的用户指定的元数据。

资源信息收集模块914可以收集关于个体资源的信息和关于资源之间的关系的信息两者。例如,资源信息收集模块916不仅标识容纳集成计算系统114的计算机架的特性,而且标识与机架被配置为在特定网络内操作的事实相关联的信息。作为另一示例,资源信息收集模块914不仅发现计算刀片的特定特性,而且还发现其与其他计算刀片和设备一起位于计算机架内的事实。一旦被收集,资源信息就可以作为资源信息记录130被存储在数据源108中。

定制对象实例生成模块916由对象模型128生成表示集成计算系统114的定制的基于依存性解决的对象实例112。对象实例126通常反映从集成计算系统114发现的实际配置信息。尽管对象模型128对于在集成计算系统114中发现的广大范围的可能配置和资源类型可以是通用的,但是对象实例126特定于集成计算系统114的资源118的实际配置。例如,定制的集成计算系统对象实例生成模块918可以实例化基础对象(例如,根级对象)的实例,并且实例化从属于该基础对象类的第一子对象实例集合中的每个子对象实例,其中所得的第一子对象实例集合可以分别表示不同的逻辑类别(例如,存储、计算和网络等)。对象实例生成模块918还可以访问来自对象模型128的第二子对象类集合以用第二子对象实例集合表示集成计算系统114的底层物理资源。例如,与特定物理资源(例如,盘阵列、服务器刀片、机架等)相对应的对象模型128的子类可以被实例化以生成是它们的资源对应物的表示的对象实例。

基于依存性解决的集成计算系统对象实例生成模块918由定制的集成计算系统对象实例114创建基于依存性解决的集成计算系统对象实例114。一般而言,基于依存性解决的集成计算系统对象实例模块916扩充定制的集成计算系统对象实例134以包括针对在定制的集成计算系统对象实例134中配置的资源118的每个资源的依存性的信息。

基于依存性解决的集成计算系统对象实例生成模块916可以以任何合适的方式确定依存性。例如,基于依存性解决的集成计算系统对象实例生成模块916可以通过处理与子对象实例相关联的资源信息记录132来一个或多个依存性,以标识要由其他子对象实例所提供的任何性能特性。作为另一示例,基于依存性解决的集成计算系统对象实例生成模块916可以基于被存储在子对象实例116中的固有信息来确定一个或多个依存性,诸如关于当生成定制的集成计算系统对象实例130时被存储在子对象实例116中的资源118的任何信息。

在一个实施例中,基于依存性解决的集成计算系统对象实例生成模块916可以标识一个子对象实例与另一子对象实例之间的面向对象的关系,并且基于所标识的面向对象的关系来确定依存性存在。例如,如果第一子对象实例具有到第二子对象实例的‘继承’关系,则基于依存性解决的集成计算系统对象实例生成模块916可以确定第一子对象实例继承第二子对象实例的依存性,并且因此修改第一子对象实例以包括第一子对象实例的依存性。作为另一示例,如果第一子对象实例与第二子对象实例具有‘依赖’关系,则基于依存性解决的集成计算系统对象实例生成模块916可以访问第二子对象实例的特性属性120,以确保第二子对象实例拥有足够的性能能力以供第一子对象实例使用。

依存性解决模块920处理基于依存性解决的集成计算系统对象实例112以解决每个子对象实例116的依存性,以确保所有子对象实例能够彼此共同使用。依存性解决模块920可以处理子对象实例的全部或子集并且产生指示具有未解决的依存性的那些子对象实例的报告,或者,依存性解决模块920可以响应于子对象实例的添加或对子对象实例的修改而报告未解决的依存性。例如,每当对该子对象实例进行配置改变时,诸如当集成计算系统设计者正在改变子对象实例的配置来增强其性能能力时,依存性解决模块920可以处理子对象实例中的依存性属性122。在这种情况下,依存性解决模块920可以在用户界面906上显示未解决的依存性,或者依存性解决模块920可以自动地改变子对象实例或其他子对象实例,使得解决依存性被自动解决。附加地,手动依存性解决或自动解决的选择可以是工具104的可设定参数。

应当领会,本文中所描述的模块仅作为示例被提供,并且工具104可以具有与本文所描述的那些模块不同的模块、附加的模块或更少的模块。例如,如图9中所描述的一个或多个模块可以组合成单个模块。作为另一示例,本文中所描述的某些模块可以被编码在其他计算系统上并且在其上执行,诸如在集成计算系统114的资源118中的一个资源上执行。

图10图示了由集成计算系统依存性解决工具104执行以生成基于依存性解决的对象实例112的示例过程1000,根据本公开的一个实施例,该基于依存性解决的对象实例112然后可以用于确定集成计算系统114的资源118是否彼此兼容。

在步骤1002处,工具104获得与集成计算系统116相关联的定制的集成计算系统对象实例134。集成计算系统116可以是现有(先前制造)的集成计算系统,或集成计算系统116可能已经被设计好但尚未被构造。如果先前已经制造了集成计算系统116,则可以根据发现过程来生成定制的集成计算系统对象实例134,在该发现过程中,关于资源118的信息被采集和组合以形成定制的集成计算系统对象实例134。

一般而言,工具104迭代地检查定制的集成计算系统对象实例134中的每个子系统对象实例118,以生成用于定制的集成计算系统对象实例134中的每个子对象实例118的依存性属性122。在步骤1004处,一旦获得定制的集成计算系统对象实例134,工具104就可以由定制的对象实例创建基于依存性解决的集成计算系统对象实例。例如,工具104可以创建定制对象实例的副本并且重新命名为基于依存性解决的集成计算系统对象实例,其然后被存储在数据源112中。作为另一示例,如果定制的对象实例的原始副本不再被需要或期望时,工具104可以将定制的集成计算系统对象实例134重命名为基于依存性解决的集成计算系统对象实例114。

在步骤1006处,工具104标识与子对象实例118相关联的一个或多个依存性。可以从任何合适的信息源标识依存性。在一个实施例中,工具104可以根据其与另一子对象实例的面向对象的关系来标识依存性,并且基于面向对象的关系来生成与另一子对象实例的依存性。在另一实施例中,工具104可以通过访问资源信息记录132来标识依存性,该资源信息记录132可以包括关于某些其他子对象实例将要提供的某些要求的信息。在又一实施例中,工具104可以通过检查子对象实例116的属性来标识依存性,该子对象实例116是在步骤1002中当定制的集成计算系统对象实例130被创建时生成。例如,工具104标识特定子对象实例116是联网对象,并且使用该信息触发访问关于其相关端口的预期吞吐速率的附加信息,并且将预期吞吐速率标识为联网子对象实例的依存性。此后,在步骤1008处,工具104扩充子对象实例118以包括在步骤1006处生成的依存性124。

在步骤1010处,工具104验证存储在基于依存性解决的对象实例112中的依存性是否被解决。此后,在步骤1012处,如果解决了基于依存性解决的对象实例112中的所有依存性,则处理在步骤1014处继续,其中工具104输出基于依存性解决的对象实例112中的所有依存性已经被解决的指示。例如,工具104可以在用户界面1006上显示文本消息,该文本消息指示基于依存性解决的对象实例112中的依存性已经全部被解决,并且可以从基于依存性解决的对象实例112构建有效的集成计算系统114。尽管如此,如果存在任何未解决的依存性,则处理在步骤1016继续。

在步骤1016处,工具104确定是自动解决还是经由用户干预手动解决未解决的依存性。如果要自动解决依存性,则处理在步骤1018继续;否则,处理在步骤1020处继续以手动解决未满足的依存性。

在步骤1018处,工具104根据未解决的依存性来修改子对象实例116中的一个或多个子对象实例。例如,通过访问子对象实例116的特性属性120,工具104可以从特定依存性中标识特定子对象实例116不具有足以满足该特定依存性要求的性能等级。因此,工具104可以将具有不足的性能等级的子对象实例116替换为具有指示其具有足够的性能等级的特性值的另一子对象实例116以与另一子对象实例116一起使用。当工具104已经修改了子对象实例时,处理在步骤1010处继续,以再次验证是否所有的依存性都已解决。

在步骤1020处,工具104显示与未解决的依存性相关联的信息以供用户查看。例如,工具104可以显示关于彼此不兼容的两个或更多个子对象实例的信息、关于未解决的依存性的信息、以及触发元件,诸如继续按钮或使得工具104重新验证依存性是否被解决的其他用户可选择元件。考虑该信息,在步骤1022处将邀请用户修改与未解决的依存性有关的子对象实例116,并且在修改子对象实例116之后,选择触发元件以使得工具104再次验证是否所有依存性已经被解决。

可以重复执行步骤1010至1022,直到已经确定所有依存性都被解决。尽管如此,当不再需要或期望工具104的使用时,该过程结束。

图10描述了可以由依存性解决管理工具104执行的用于验证集成计算系统的性能的过程的示例,所公开的过程的特征可以以其他具体形式体现而不偏离本公开的精神和范围。例如,依存性解决工具104可以执行与在本示例中被描述的那些操作相比附加的、更少的或不同的操作。作为另一示例,本文中所描述的过程的步骤可以由依存性解决管理计算设备102之外的系统来执行,该系统可以是例如在集成计算系统116中所实现的资源中的一个资源。

以上描述包括体现本公开的技术的示例系统、方法、技术、指令序列和/或计算机程序产品。然而,应当理解,可以在没有这些具体细节的情况下实践所描述的公开内容。

在本公开中,所公开的方法可以被实现为设备可读取的指令集合或软件集合。进一步地,应当理解,所公开的方法中的步骤的具体顺序或层次是示例途径的实例。基于设计偏好,应当理解,该方法中的步骤的具体顺序或层次可以被重新排列,同时保持在所公开的主题内。所附方法权利要求以示例顺序呈现各个步骤的元素,并且不一定意味着局限于所呈现的特定顺序或层级。

所描述的公开可以被提供为计算机程序产品或软件,其可以包括其上存储有指令的机器可读介质,这些指令可以用于对计算机系统(或其他电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机制。机器可读介质可以包括但不限于磁存储介质(例如,硬盘驱动器)、光存储介质(例如,cd-rom)、磁光存储介质、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程存储器(例如,eprom和eeprom)、闪存、或适用于存储电子指令的其他类型的介质。

例如,图11是图示了可以用于实现本公开的实施例的主机或计算机系统1100的示例的框图。计算机系统(系统)包括一个或多个处理器1102至1106。处理器1102至1106可以包括一个或多个内部层次的高速缓存(未示出)以及总线控制器或总线接口单元以引导与处理器总线1112的交互。处理器总线1112(也称为主机总线或前端总线)可以用于将处理器1102至1106与系统接口1114耦合。系统接口1114可以连接到处理器总线1112以将系统1100的其他资源与处理器总线1112对接。例如,系统接口1114可以包括存储器控制器1113,其用于将主存储器1116与处理器总线1112对接。主存储器1116通常包括一个或多个存储卡和控制电路(未示出)。系统接口1114还可以包括用于将一个或多个i/o桥接器或i/o设备与处理器总线1112对接的输入/输出(i/o)接口1120。如所图示的,一个或多个i/o控制器和/或i/o设备可以与i/o总线1126连接,诸如i/o控制器1128和i/o设备1130。

i/o设备1130还可以包括用于向处理器1102至1106传达信息和/或命令选择的输入设备(未示出),诸如字母数字输入设备,其包括字母数字按键和其他按键。另一种类型的用户输入设备包括用于向处理器1102至1106传达方向信息和命令选择并且用于控制显示设备上的光标移动的光标操控装置,诸如鼠标、轨迹球或光标方向键。

系统1100可以包括动态存储设备(被称为主存储器1116)、或耦合到处理器总线1112用于存储要由处理器1102至1106执行的信息和指令的随机存取存储器(ram)或其他计算机可读设备。主存储器1116还可以用于在处理器1102至1106执行指令期间存储临时变量或其他中间信息。系统1100可以包括耦合到处理器总线1112用于存储用于处理器1102至1106的静态信息和指令的只读存储器(rom)和/或其他静态存储设备。图11所阐述的系统仅仅是可以按照本公开的各方面使用或配置的计算机系统的一个可能示例。

根据一个实施例,上述技术可以由计算机系统1100响应于处理器1104执行被包含在主存储器1116中的一个或多个指令的一个或多个序列而被执行。这些指令可以从另一机器可读介质(诸如存储设备)读取到主存储器1116中。包含在主存储器1116中的指令序列的执行可以使得处理器1102至1106执行本文中所描述的过程步骤。在备选实施例中,可以使用电路来代替软件指令或与软件指令组合。因此,本公开的实施例可以包括硬件资源和软件资源两者。

计算机可读介质包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储或传送信息的任何机制。这样的介质可以采取但不限于非易失性介质和易失性介质的形式。非易失性介质包括光盘或磁盘。易失性介质包括动态存储器,诸如主存储器1116。机器可读介质的常见形式可以包括但不限于磁存储介质(例如,硬盘驱动器);光存储介质(例如,cd-rom);磁光存储介质;只读存储器(rom);随机存取存储器(ram);可擦除可编程存储器(例如,eprom和eeprom);闪存;或适用于存储电子指令的其他类型的介质。

本公开的实施例包括在本说明书中描述的各种操作或步骤。这些步骤可以由硬件资源执行或者可以体现在机器可执行指令中,这些机器可执行指令可以用于使用指令编程的通用处理器或专用处理器以执行这些步骤。可替代地,这些步骤可以通过硬件、软件和/或固件的组合而被执行。

应当相信,本公开及其许多伴随的优点将通过前面的描述而被理解,并且显而易见的是,可以对资源的形式、构造和布置进行各种改变而不背离所公开的主题或者不牺牲其全部实质性优点。所描述的形式仅仅是解释性的,并且以下权利要求的意图是涵盖并且包括这种改变。

虽然已经参考各种实施例对本公开进行了描述,但是应当理解,这些实施例是说明性的,并且本公开的范围不限于它们。许多变型、修改、添加和改进都是可能的。更一般地,根据本公开的实施例已经在具体实现方式的上下文中进行了描述。在本公开的各种实施例中,功能可以以不同方式以块为单位分开或组合,或者以不同的术语描述。这些和其他变型、修改、添加和改进可以落入如下面的权利要求中所定义的本公开的范围内。

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