专利名称:用于计算公共设施的层级式资源管理的制作方法
技术领域:
本发明涉及计算公共设施(computing utility)中资源的供应和管理,该计算公共设施使用资源来向用户提供计算服务。本发明更具体地涉及用于计算公共设施的层级式资源管理。
背景技术:
托管(hosted)中心为多个用户提供计算服务。每一位用户被分配服务提供者的基础设施资源例如服务器的一个子集来满足其需求。用户的需求随时间改变,而且特别是,高峰期的资源需求可能超过资源的平均需求达好几个量级。简单的资源静态分配来满足高峰期需求会使得资源无法得到充分利用。根据用户的需求动态地重新配置基础设施资源,则需要来自管理人员的快速关注,并可能需要移动硬件,从而提高了运营成本和无法提供适当服务的风险。托管中心的问题就是如何对所需服务的改变实现快速反应。托管中心的问题就是如何对用户需求的改变实现快速反应,从而使得基础设施资源和员工以一种高效率的和成本高效的方式被使用或。计算公共设施试图通过自动化在共享的、动态可分配的基础设施上的多个计算服务的创建和管理来解决这一问题。
先前的计算公共设施中的工作在被提供服务的类型上、被使用的资源上和操作被自动化的程度上各有不同。可进行自动化的操作的范围很宽,并包括创建服务,为用户部署服务,修改用于提供服务的资源集,以及将新的资源实例和类型合并到托管中心和它的服务中去。
先前的系统基于诸如服务器负荷和响应时间等度量来自动化网站中的前端服务器的供应。它包括一个自动发现服务器和网络拓扑的组件。另一种系统则提供了多种多层的网站,其中预先配置的服务器可以根据诸如服务器负荷等度量被自动分配到不同的层。另外一种系统也依据服务器负荷分配服务器资源,但是建模了向每位用户分配资源的价值以及使用这些资源的成本这两者,并强调了能量的成本。更近期的工作包括其他资源类型例如存储器和存储设备的分配,以及用于通用目的的服务器的分配。
在应用层,有些系统具有一个用以部署和管理分布式应用的框架。一个应用被描述成相关的、可重用的组件的一个汇集,这些组件可代表一些资源或子系统。这种描述包含了依赖信息,以确保例如组件以正确的顺序被启动。一旦被部署,应用就可以被监视,并且可以指定当组件或资源发出故障时采取的动作,例如自动故障转移(failover)或重启。这样的系统不会被用于低级的资源配置任务,例如在服务器上安装操作系统,而是用于更高级的特定于应用的配置。
越来越多的工业产品瞄准了在包含各种资源的物理基础设施上提供多层的应用,所述多种资源例如来自Hewlett Packard,ThinkDynamics,SunMicrosystems以及Jareva的产品。它们在很多方面各不相同,例如所提供资源的类型(例如,服务器和存储设备);所支持的特定操作系统和中间件;网络基础设施的假定和特征(例如,是否通过VLAN提供网络的隔离);监视支持的水平(例如,资源利用、故障检测、SLA、基于阈值的警报);对资源发现的支持;对一旦被部署后修改服务资源的支持;修改是否可以自动发生(例如由SLA触发);以及产品可以或者必须被定制以适合已有托管中心基础设施的程度。
发明内容
本发明提供了用于计算基础设施的层级式供应和管理的方法、装置、系统和体系结构,用以提供面向服务的、或公共设施计算。它对于托管环境来说是有用的。它经常被提供给拥有基础设施的服务提供者的用户。它允许向计算环境动态供应和分配资源。
本发明的一个方面是提供了在具有下述特征的环境中操作的计算公共设施的一个元素。这些特征共同概括了在先前的工作中研究的环境。
本发明的另一个方面是提供用于计算公共设施的资源的自动供应和管理。计算公共设施可以被公司、服务提供者或个人使用。本发明允许在多个用户集中共享资源,并允许将资源限制于特定用户。它允许用户将由被管理资源组成的一个或多个服务提供给其客户。被管理的资源可以随需被分配给用户或域。它还允许资源的层级式管理。
在根据本发明的方法的示例性实施例中,该方法包含了为实体提供至少一个域的层级式管理的步骤。该提供层级式管理的步骤包括获得至少一个域的层级式表示,该表示包括将被管理的计算环境的列表,控制为所述至少一个域从资源库获取至少一个资源的至少一个策略,和所述至少一个域内的任何子域;以及实例化该表示。
在根据本发明体系结构的示例性实施例中,用于计算公共设施的体系结构包括用来为多个客户提供至少一个服务的装置。该装置包括基资源分布服务,用来将资源分配给所述至少一个服务;该基资源分布服务有至少一个收集器;至少一个与该基资源分布服务连接的供应和管理资源服务,用来为该至少一个服务供应和管理资源;以及至少一个与该基资源分布服务连接的基资源库服务,用来提供资源的保留和分配。
本发明的这些以及进一步的方面、优点和特征将通过下面对一优选实施例的详细描述以及附图更加明显,在附图中图1示出了一个托管环境的组件;图1A示出了一个公司示例性结构;图2示出了根据本发明的一个计算公共设施管理系统中的组件;图3示出了根据本发明的一个计算公共设施管理系统中的库组件的操作;图4示出了根据本发明的一个计算公共设施内的收集器的层级结构;图4A示出了根据本发明分配给一个公司的一个单元的应用;图4B示出了根据本发明图4A中的应用如何被结构化以便供应;图5示出了根据本发明的具有多个根收集器的计算公共设施;图6示出了根据本发明将资源池与汇集相关联;图7示出了根据本发明如何在一个计算公共设施内检验获取策略;图8示出了如何在一个计算公共设施内定位可用资源;图9示出了根据本发明在一个计算公共设施内供应和管理资源服务(PMRS)与基资源分配服务(BRDS)之间的交互;图10示出了根据本发明在一个计算公共设施的操作期间收集器如何工作;图11示出了根据本发明一个新的服务如何被添加到计算公共设施中;图12示出了根据本发明一个公司内的应用分配;图13示出了根据本发明与图12的分配相关联的收集器层级结构。
具体实施例方式
本发明提供了用于计算基础设施的层级式供应和管理方法、装置、系统和体系结构,该计算基础设施被用来向拥有该基础设施的服务提供者的用户提供面向服务的或公共设施计算。以这种方式,托管环境可以从其他托管环境中获取资源等等。本发明提供了用于计算基础设施的层级式管理的体系结构,其包括仲裁、供应和管理。它允许向计算环境动态供应和分配资源。用户可以在他们的域内拥有多个计算环境。该计算公共设施在多个用户域之间共享它的资源,并在域之间和域内对资源的使用进行仲裁。本发明使得资源能够专用于特定的用户域或专用于特定的计算环境。用户可以指定获取和分布策略,所述策略控制他们在其域内对来自公共设施的资源的使用。
本发明是计算公共设施的一个元素,该计算公共设施一般来说,但并不一定,在具有以下一个或多个特征的环境中操作。这些特征共同概括了在先前的工作中研究的环境。
第一,资源可以在异构的组合中被分配给用户,它们可以相互依赖,并且随时间改变。
第二,提供给每个用户的服务可以不同。例如,一个用户可能被提供用于网站的资源,而另外一个用户则被提供用于科学计算群集的资源。因此,资源的类型、数量、依赖、以及分配模式将在用户之间各不相同。
第三,提供给每个用户的服务的级别可能不同。这意味着评估给一用户的资源分配的质量要考虑服务的类型和水平这两者。
第四,资源基础设施在服务提供者之间各不相同。进一步地,对于一个给定的服务提供者,基础设施随时间而改变。这些改变可以是由于对物理基础设施的升级或添加、使用另一个提供者的服务、或在空闲时或者在一天中的某些时间纳入另外的资源、或删除不再需要的资源。
第五,资源可能被预先分配或保留。即使在基础设施中当前没有足够可用的资源来满足保留时,但基于将及时地获取用于分配的另外的资源这一预期,保留仍可被接受。
第六,用户可能希望通过细分他们的分配并且使服务提供者管理这些子部分例如管理子部分到部门来在一个组织内共享资源。
第七,用户可能希望提供一些他们当前拥有的资源以由服务提供者进行管理(即,用户将其资源的管理外包给了服务提供者),这些资源只能用于他们的目的。这样的要求对资源可向哪里分配强加了约束。
第八,用户可能希望指定一些策略来支配他们的资源的管理和操作。这些策略将由计算公共设施所执行。
最后,不同的服务提供者在向用户分配资源时心目中可能有不同的目标,例如最大化利润、可用性、或性能。
本发明作为用于为计算公共设施自动供应和管理资源的装置的一部分也是有用的。计算公共设施可以由公司、服务提供者或个人使用。本发明允许在用户组之间共享资源,并允许将资源限制到特定用户。它允许用户向其客户提供由被管理资源组成的一个或多个服务。被管理的资源可以随需被分配给用户或域。它还允许资源的层级式管理。
图1示出了本发明所运行的一个托管环境。该环境由处理器101、存储设备103、防火墙105、以及软件107所构成。软件107可以是操作系统、中间件或者应用。在图1中软件107被表示为业务过程、业务应用或服务。所有的可用软件都已经被预先配置到这些元素中。事实上,本发明的目的是使得能够按需要将硬件和软件组件动态地重新配置到新的或已有的服务中。这种环境可以存在于大公司中,或者由ISP或ASP提供而作为服务的基础。回到详细描述中来,硬件资源由网络连接,该网络由将所有这些资源互连起来的线109的网格所表示。这个网络可被配置到一个或多个层,其中每一层由路由器105或者防火墙105分开。网络内部的层的配置可以是静态的或动态的。当网络被静态地配置,没有人的(或机械的)干预便无法在网络中的各层间移动资源。使用动态配置,资源可在如本发明中正在描述的基础设施或者在控制台前工作的操作者的控制下在不同层之间移动。在每一层,资源可以被任意分组为单元,这可以通过使用例如虚拟LAN等机制完成。软件资源由控制基础设施被分配给物理资源。
在这个环境中资源的一个子集被分配给管理基础设施111、113和115。在图1中,这些资源被环绕它们的点线指示出来。这些被分配给管理基础设施的资源运行本发明中描述的资源管理软件。该软件管理其余的资源。用于管理基础设施的资源不会被分配给托管环境的客户117。被管理的资源根据需要被分配给客户117。可以预期客户117将主要通过经由因特网119连接到托管环境而接收服务。但是,客户117可以在其经由任何方式连接到托管环境的情况下接收服务。例如,他们可以具有和被管理资源的直接连接,他们可以被连接到与被管理的资源相同的网络上,他们可以具有与被管理资源的VPN连接,或者他们可以具有与包含被管理资源的网络的VPN连接。客户117观察不到基础设施;他们只看到其从托管环境接收的应用或服务。
管理基础设施根据需要向每个支持的服务分配资源。这种需要由根据已授权该服务在托管环境中操作的SLA、合同或者其他协议的、对该服务的需求确定。希望提供服务的个人或组织将与托管环境的提供者达成协议。回到图1中来,处理器101可拥有直接的附加存储设备,该存储设备将被管理,作为管理该处理器的一部分。该图中的存储设备103指任何形式的可以网络附加的存储服务器。处理器也可以代表某种复杂的功能例如数据库服务器或视频服务器。资源被划分为更小的功能来进行管理的程度取决于基础设施的拥有者。即使是像数据库服务器这样的复杂资源也可以被分解成更小的组件,资源的拥有者将确定它在管理基础设施中被如何表示。这一特征允许本发明使用托管环境的非本地资源。本发明假定资源被安全地互连并具有足够的性能。但是,连接资源的网络代表一逻辑连接。可使用任何允许足够程度的安全性、性能和对资源的控制的基础设施,例如VPN,来将资源连接到托管环境中。因此,如图1所表示的托管环境本身可以在全世界分布。该图中的因特网代表一种逻辑布置,其中因特网可以被用来动态地向托管环境添加资源。
域是用户内的、为其供应服务的组织单元。一个组织可能在内部有多个也利用服务提供者的子域、部、单元或部门。子域也是域,并且一个组织的域构成树。一个组织可拥有多个彼此并不相连接的域树。为了本发明的目的,认为它们是多个组织。根域是最高的域,或者说是组织的域树的基。图1A示出了其中服务可以被提供的一个用户内的各域。在图1A中,主公司或者根域为Smith紧固件公司120,所有该公司的其他部分均为Smith紧固件的子部分或子域。Smith紧固件有四个主要的部,研究121、财务122、硬件123、以及市场124。硬件部和市场部在其每个的内部具有另外的单元或子域。硬件被划分为螺栓127、螺钉128和铰链129。市场则有两个地区,地区1 125和地区2 126。地区2被进一步划分为北130和南131。本发明的一个目标是使得服务提供者能够向任何公司例如Smith紧固件公司的各域、单元和/或部提供计算服务。然后,任何域或子域可预订(subscribe to)所提供的计算服务。本发明假定为了实现供应目的,公司可以被结构化为一个域树。进一步地,任何任意树都可以被支持。正如在本说明书后面要描述的那样,域树控制资源的共享,以便在被一个公司使用的各种应用之间进行供应。本发明并不要求资源共享树精确地映射到公司结构。可以使用任何任意的资源共享树。为了说明的目的,我们将使用映射到一个组织即Smith紧固件公司120的结构的资源共享树。
在一个组织内部,每一个域、部或单元都有着自己的雇员。本发明不限制公司中的什么人(该公司的哪些雇员)可以使用计算服务。使用计算环境的资格通过该公司内部的管理策略进行控制。用户名、密码、以及授权由公司所控制。例如,所有的应用可以使用共同的认证和授权机制,或者每一个应用可以有各自的认证和授权机制,或者两者之间的任何组合。访问控制的供应是PMRS的一部分。计算服务的使用(被允许访问或使用应用的用户)与被用来向应用供应资源的结构无关。
在这种环境中有多种方式来划分利用本发明的角色和责任。在一种这样的划分中,存在着一个拥有图1中所描述的托管环境的基础设施提供者;一个或多个提供使用托管环境的某种服务的服务提供者;以及服务提供者的一个或多个客户。应注意到服务提供者也是基础设施提供者的用户。在另外一种这样的划分中,公司(或实体)可能为了服务与基础设施提供者签订合同,从而外包其基础设施的管理。在这种情况下,该公司便利用本发明来管理在其自身内部提供的服务。在另外一种这样的划分中,基础设施提供者和服务提供者可以是同一个。进一步地,有些实体开发所提供的服务。它们可以是独立的,例如独立软件开发商(ISV),或者是一个或多个上面提及的实体的一部分。希望提供某种基础设施上的由本发明所管理的服务的实体向该基础设施提供该服务的描述。这种描述可以是抽象的或具体的,并且包括该服务的组织、将要被提供的该服务的指示、以及控制该服务的操作的策略。
图2示出了一个计算公共设施的高层视图。存在三层组件。顶层代表被供应的服务,被称作计算环境。一个计算环境包括硬件和软件资源,例如服务器、操作系统、应用和中间件。每一个计算环境都有一个被调用来供应和管理其资源的服务,这个服务称为供应和管理资源服务(PMRS)。该PMRS在一个单独的发明中被详细描述,该发明标题为“用于计算公共设施的计算环境的组件化自动供应和管理”,案卷号为YOR920030588PCT1。底层代表托管中心的对其用户可用的资源。基资源是原子的资源;它不会被分解成其他资源。每一个基资源类型都有一个服务来提供该资源类型的实例的保留和分配,这个服务称为基资源库服务(BRLS)。基资源的定义由服务提供者所决定。因此,BRLS可以提供简单的资源例如软件许可证,或者提供复杂的资源例如安装并运行在硬件平台上的操作系统。添加、删除或者修改基资源将改变系统的总的能力。本发明假定基资源的数量和类型随时间改变。基资源由基资源库服务(BRLS)201集表示。图2示出了四种类型的基资源DB2许可证203、zSeries LPAR 205,xSeries服务器207、以及AIX许可证209。BRLS提供了诸如目录操作(cataloging)、签出(分配)、签入(解除分配)、以及保留等操作。BRLS 203、205、207、209的接口在图3中被更加详细地描述。
复合资源从一个或多个其他资源(包括其他复合资源)被构建,来执行指定的功能。一个复合资源可以具有一组与其关联的依赖。复合资源的一示例是网站。它可能由一定数量的前端服务器、后端服务器、一个负荷平衡器、用于服务器的一组IP地址、web服务器软件、数据库软件、以及与软件联系的许可证所构成。被用来实现一个复合资源的功能的基资源集可以随时间改变,尽管并不是所有的复合资源都具有这种能力。计算环境是一种复合资源。
与每一个计算环境关联的是供应和管理被用来提供服务的资源的软件,称为供应和管理资源服务(PMRS)211。每一个资源类型,包括复合资源,都有一个PMRS来封装如何创建该类型的资源、以及如何管理该资源的实例的知识。供应是指将资源分配到一个计算环境并配置它以便在服务内使用的动作。供应动作可包括将基资源组装成复合资源,配置网络设备,安装操作系统、应用软件、监视器、以及用户帐户。资源管理可包括如请求向资源实例中添加或者从其删除能力等动作。图2示出了一些PRMS,即DB2 213、Linux 215、以及网站217。PMRS在标题为“用于计算公共设施的计算环境的组件化自动供应和管理”、案卷号为YOR920030588PCT1的发明中有详细的描述。
图2中的中间层是基资源分布服务(BRDS)219。它的任务是基于服务提供者具有的用于其每一个域的有效的协议,以一种有效的方式将服务提供者的资源分配到它的域内。域被层级式地组织,一些域是其他域的子域。BRDS指定了哪些资源集可用于哪些域,并且当资源受到约束时基于业务策略自动重新分配这些资源。它既与计算环境211(PMRS)也与资源201(BRLS)相交互。一个资源可以或者立即或者未来被分配到一个计算环境。未来资源分配的允诺是保留。本发明假定分配到一个计算环境的资源在其分配期间是为该计算环境所专用的。
基资源库服务资源驻留在池内,其可根据类型进行排列。资源池可以是公有的或私有的。公有资源池是任何域都可以从中分配资源的资源池。私有资源池局限于用户域的子集。私有池被用来将一些资源专用于用户域的子集。例如,一个私有池可以为了单个用户保持用于多个域的资源。这样的池可以用于用户拥有但却希望服务提供者为它进行管理的资源。每一个资源都有它从中起源的起始(home)池,这个起始池既可以是公有的,也可以是私有的。当一个资源被分配或被保留时,起始池不会发生改变。一组没有被分配的资源被称作自由池。
图3示出了一个基资源库服务(BRLS)的操作的示例。系统中的每一个基资源都由一个库或BRLS 310表示,它提供了例如目录操作、签出(分配)、签入(解除分配)和预先保留等信息。一个BRLS用作一个资源类型的实例的起始池,并且它可以是公有的或是私有的(代表示公有资源池或私有资源池)。每一个BRLS 310都与一个收集器相关联。每一个BRLS 310都有两类接口,即被系统用来获取、保留以及返回资源的资源操作330,以及被用来管理可用于BRDS 219的资源的目录操作340。提供的资源操作330是保留(Reserve)、取消保留(CancelReservation)、签入(CheckIn)、签出(CheckOut)、延长保留(ExtendReservation)和查询(Query)。
Reserve(num-instances,selection-spec,start time,duration)->reservation-ids该请求由BDRS 219代表用户计算环境发出来保留资源。
输入num-instances是希望的实例的数目selection-spec是由BRLS 310所支持的希望的属性的规格说明start time,如果没有被指定的话,任何实例都可被用来满足该请求。
start time可以是立即的,也可以用于预先保留输出reservation-ids[]。其元素是资源保留票据(ticket),每个资源实例一个,直到num-instances。在保留时无需将这些映射到实例。换句话说,库可超额订出(overbook)其资源。
CheckOut(reservation-id)->resource-handle该请求由BDRS 219代表用户计算环境发出来分配资源。
输入由Reserve发出的reservation-id输出resource-handle。资源实例的标识符。如果资源的实例无法被提供,那么被设置为一特殊值。
CheckIn(resource-handle)该请求由BDRS 219代表用户计算环境发出来返回资源。
输入由CheckOut发出的resource-handle。
ExtendReservation(resource-handle,end time)该请求由BRDS 219代表用户计算环境发出,来延长一个当前被保持的资源的保留。
输入由CheckOut发出的resource-handle。
end time资源将被返回的时刻。
输出Accept资源保留可以被延长。
Reject资源被返回。
Query(selection-spec)->availability-data该请求由BDRS 219代表用户计算环境发出来返回资源。
输入selection-spec是由BRLS 310所支持的希望的属性的规格说明。
它被用来限制查询的范围。
它可包括资源句柄来引用特定的实例。
输出availability-data[]。其元素是指示什么时候实例可用于被保留的一些结构。
CancelReservation(reservation-id)该请求由BDRS 219代表用户计算环境发出来取消一个保留。接收到取消之后,资源便可用于分配和由另外一个计算环境签出。
输入由Reserve发出的reservation-id目录操作为管理员320或其他管理机制提供目录操作340,来修改由BRLS 310管理的资源池。资源发现机制也可以使用这些操作来将该过程自动化。提供的操作包括添加(Add)、删除(Remove)、更新(Update)、查询(Query)以及这些操作的任何组合。
Add(resource-identifier,instance-data)该请求被发出以向BRLS 310添加一个资源实例。
输入resource-identifier是一个资源标识符,可以与上面的句柄相同,也可以与其不同。
instance-data是一些属性值的汇集,这些属性值可以被用来通过一个selection-spec来选择资源。
Remove(resource-identifier)该请求被发出以从BRLS 310删除一个资源实例。
输入resource-identifier是资源标识符Query(selection-spec)->resource-identifier[]该请求被用来查询已经注册到BRLS 310的资源实例。
输入selection-spec是由BRLS 310所支持的希望的属性的规格说明。
它被用来限制查询的范围。
它可包括资源标识符。
输出resource-identifier[],满足selection-spec的资源标识符的列表。
Query(resource-identifier)->instance-data该请求被用来查询已经注册到BRLS 310的资源实例。
输入resource-identifier是资源标识符输出instance-data是为该实例(如果有的话)注册的属性值的汇集Update(resource-identifier,update-data)->instance-data该请求被用来修改已经注册到BRLS 310的资源实例。
输入resource-identifier是资源标识符update-data将被应用到该资源、或者为该资源注册的新信息输出instance-data是为该实例注册的属性值(如果有的话)的汇集基资源分布服务图4示出了一个基资源分布服务(BRDS)219的各组件的一个示例。BRDS 219确定了如何在各计算环境中分布基资源。BRDS 219包括两种组件,收集器420、422、424、426、428和一个仲裁器430。一个域至少与一个收集器相关联。对于每个计算环境都有一个包括先前提到的策略的收集器,以及为该计算环境所保留的资源列表。
仲裁器仲裁器确定资源如何在各计算环境之间被划分。它在当前的分配和将来的分配(保留)这两者上操作。资源可以反应性地被分配到计算环境中,也可以前瞻性地被分配。当没有足够的自由资源来满足来自用户计算环境的需求时,可以询问仲裁器。它也可以被用来周期性地优化资源分配。如果资源受限制,仲裁器可从计算环境回收资源。仲裁器操作的详细内容在一个单独的标题为“计算公共设施系统中的仲裁装置”、案卷号为YOR920030589US1的发明中。
收集器收集器代表被分配到一个或多个计算环境的资源集。每一个计算环境的根域都有一个关联的收集器。收集器可以是嵌套的,例如以表示组织内的各部门。这一结构使得能够在计算环境的子集间共享资源,从而实质上为这些域复制了计算公共设施。一个计算公共设施可以为多个组织供应资源,连接到多个组织(每个组织的根域)的收集器称为根收集器。图4示出了一个有两个域的根收集器420,其中一个域有两个子域。两个主要的域是表示公司A和公司B的Col-A 424和Col-B 422。Col-A 424有两个子域,表示部门X和部门Y的Col-X 426和Col-Y 428。在图4中有三个PMRS,即PMRS-X 496、PMRS-Y 498和PMRS-B 495。一个收集器与这些计算环境的每一个相关联。另外BRDS 219也有一个收集器420。
图4还示出了公有的和私有资源池。一个公有BRLS与BRDS 219中的一个根收集器相关联。一个私有BRLS与BRDS 219的非根收集器的一个收集器相关联。在图4中,BRLS 486、488和482是公有的,因为它们与根收集器420相关联。而BRLS 484是私有的,因为它与不是根收集器420的收集器424相关联。
收集器执行用户的获取策略,这种策略确定了在什么情况下向它的汇集添加资源,或者从中删除资源,或者改变汇集的组成。收集器的层级式结构允许指定控制资源的本地(特定于组织的)策略。最简单的获取策略(即,没有获取策略)是完全请求驱动的。也就是说,资源根据每一个请求和返回在BRLS 482(486、488)和PMRS 495之间通过收集器层级结构移动。一个更加复杂的获取策略可以指定在每一个收集器处的服务器的最小和最大数目。这些获取策略过滤请求流。这样一个获取策略允许收集器为其域维护多种自由池(被分配的或被保留的资源的缓存),从而实际上为预测的请求预先分配了资源。获取策略将会在图7和图8的描述中进行讨论。
每一个BRLS 482、484、486、488都与一个收集器相关联。这种关联定义了用于由BRLS代表的资源池的共享范围。例如,如果一个组织希望具有用于它的部门一个私有资源池,那么它将会使一个BRLS 484与该组织的收集器424相关联,如图4所示。这些资源将可用于仅由与该组织相关联的用户计算环境(即,与有该组织的收集器作为祖先的收集器相关联)进行的分配。图4A示出了来自图1A的Smith紧固件公司的一个子域,即硬件123。为了供应的目的,硬件123已经被分配到了三个应用,即App1 440、App2 450和App3 460。在这种情况下,所有三个应用被允许共享相同的资源集。图4B示出了这一供应决策如何映射到一个收集器层级结构。Col 1470与硬件123相关联。另外,每一个应用都具有与之关联的一个PMRS和一个收集器。App1 440具有Col 1 441和PMRS 1 442,App2具有Col 2 451和PMRS 2 452,而App3具有Col 3 461和PMRS 3 462。在本发明中,一个PMRS最多与一个收集器相关联。
图5示出了一个具有多个根收集器510和520的计算公共设施的示例。本发明描述了一个具有单个根收集器的BRDS 219。本领域的技术人员可以通过逻辑地分区资源池并将用于每一个分区的BRLS与不同的根收集器相关联,而将本发明扩展到多个根。用于根收集器的各BRLS可以管理相同的资源类型。图5通过示出一个具有两个根收集器510和520的BRDS图示说明了这一概念。根收集器520具有BRLS 530和535。根收集器520具有BRLS540和545。在这种情况下,BRLS 530可以管理与BRLS 540相同类型的资源。应注意到在其他可选择的实现中,类型相同但是关联不同的BRLS可以被表示为单个BRLS,并带有对于它们的资源实例可被分配到何处的约束。
图6图示说明了汇集和库的一个示例。每一个计算环境都有被分配给它的一个资源集。这些只被显示在它们相应的PMRS 660、680和690中,而未显示在收集器或它们的祖先中。收集器Col-Y 632有一个额外的类型为“三角形”的资源,它被分配以由计算环境Y使用。三角形的起始汇集是私有库BRLS-1690。三角形只能被分配到PMRS X 660和PMRS Y 680。收集器Col-A 630也有一些额外的类型为“正方形”、“星形”和“圆”的资源,它们由计算环境Col-X 633和Col-Y 632使用。它们各分别来自相应类型692、694和696的公有BRLS。这些资源实例可以被收集器Col-B620回收以便使用。图6中的BRLS 690是私有的。它的资源被收集器630、632和633共享。在图6中,BRLS 692、694和696是公有的。
当一个资源被一个计算环境所请求,BRDS 219要经历一个三阶段的过程。第一个阶段是确定如果请求被同意的话,用于该计算环境的收集器以及它的中间祖先节点(如果有的话)的获取策略是否将被满足。如果例如被请求的资源将超出用户与服务提供者的协议中指定的资源,BRDS 219可拒绝请求。因此,获取策略是在该决策过程中被纳入考虑的一组约束。如果BRDS 219确定一个资源可以被同意,则过程的第二个阶段是要定位那些将满足请求的实例。可用的实例可在一个公有的或私有的BRLS中找到,也可能是在收集器中。如果没有可用的实例,那么可根据分布策略从另外一个计算环境重新分配实例。如果请求是针对一个资源集,则BRDS 219相应地协调它们的分配。如果请求成功,则一组保留票据就会被返回到PMRS。
BRDS 219将尝试满足收集器的获取策略,即使是在没有来自PMRS的资源请求的情况下,从而在必要时生成向BRLS的请求。正是BRDS 219代表收集器进行保留,不管它是由获取策略还是由显式的资源请求引发的。
返回到对收集器和BRDS 219的描述,当保留的起始时间到来时,BRDS219将票据转换成资源句柄。如果保留向资源句柄的转换失败,则保留无法被承认(honored)。如果持有票据的收集器与一个PMRS相关联,则BRDS219将句柄传递给该收集器,该收集器然后将其呈现给PMRS。在图6中,如果收集器632正持有一个到期的保留票据,那么BRDS将把它转换成一个资源句柄。这个资源句柄将被返回给收集器632,随后收集器632将把该资源句柄传递给PMRS 680。然后PMRS 680可将该资源配置到计算环境中。否则持有保留的收集器不与一个PMRS相关联,因此BRDS 219将资源句柄传递到该收集器。在图6中,如果保留由收集器630所持有,那么这样的情况便会发生。
当一个保留期满,BRDS 219回收与之相关联的资源句柄,并将其返回到其出借者(起始池或中间收集器)。维持不变的是,当且仅当有对资源的保留(并可推测,一个用户正为其被计费)时,资源才能从一个起始池中被签出,或者被中间收集器借出。
为了延长保留,PMRS 660向BRDS 219发出请求,并带有它已经在使用的资源的选择规格说明。如果获取策略和其他承诺(commi tment)允许,则BRDS 219将与BRLS(692、694、696或690)交互以延长该保留。也就是说,PMRS 60不与BRLS直接通信。
当一个资源被PMRS 660返回时,它的相关联的收集器的获取策略确定是否将它返回到其父。如果收集器保持该资源,那么客户可继续因该资源而被计费。保持资源的好处是请求时更快的部署。(例如,用于该资源的计量已经被部署。)如果它返回了资源,则它的父的获取策略也会被进行类似的检验。资源不被保持在与它们的起始池(BRLS)相关联的收集器中;这种情况下,它们被签入到它们的起始池中。例如,如果一个与BRLS 690相关联的资源被返回到收集器Col-A 630,则它将被返回到BRLS 690,而不是由收集器所持有。
应注意到,如图6中630的、担当一组计算环境的资源池的收集器(即,收集器层级结构中的一个中间节点)需要与BRLS相同的功能来分布它的资源。基本上它是一个把从外面借来的资源再借出的库。这样,它的资源汇集也可以被表示成与它相关联的BRLS。收集器与私有的BRLS之间的差别是,资源可被从收集器回收,以便由它的父或收集器层级结构中的其他部分使用(只要该资源的起始BRLS允许)。相反,私有的BRLS中的资源只能被它的相关联的收集器和它的后代使用。收集器潜在地可以具有为系统所知的每个资源类型的、其自己的汇集。与私有的BRLS类似,收集器的汇集的一个实现可以在单个BRLS集内获得,并带有关于它们的资源实例可被分配在何处的约束,以及另外,持有用于来自其起始池中的资源的保留票据的收集器的身份。一旦资源已经被分配到收集器或PMRS,它在层级结构中的位置便成为该资源的一个属性。
图7图示说明了检验资源请求上的获取策略的过程的示例,不管请求是由PMRS产生,还是收集器的获取策略的结果。该过程从方框710开始。首先检验720来看请求是否由一个PMRS发起。如果是,那么在730设置当前汇集是PMRS,从而获取策略检验从与该PMRS相关联的收集器开始。否则,在740设置当前汇集为请求收集器的父。这是因为请求是由一个其获取策略需要更多的资源的收集器发起的。接下来检验750来看是否到了根收集器。如果策略一直到根收集器都被满足,那么资源则可以被获取,并且流程转到780一个尝试定位可用资源的过程。否则检验760来看请求是否将违反当前汇集的获取策略。如果策略将被违反,那么检验765来看请求者是否是PMRS。如果是,那么请求被拒绝795。否则,有可能使用已经被分配给其获取策略会被违反的收集器及其后代的资源来满足该请求,并且在这样的子树方面调用仲裁790,该子树的根为其获取策略会已经被违反的收集器。回到760处的检验,如果策略将不会在当前汇集中被违反,那么在770将当前汇集设置为刚刚被检验的汇集的父并在750继续检验。
图8图示说明了定位可用资源的过程的一个示例。该过程从810开始。首先确定搜索的起点。如果请求源于PMRS 820,则搜索的起始汇集是与该PMRS 827相关联的收集器。否则,它就是该请求从中发起的收集器的父825。由于一个资源请求可指定不同类型的资源集,所以在830构造希望的资源的描述列表,每一个资源类型每一个实例有一个元素。本领域的技术人员认识到有多种方法来构造该列表,例如每个资源类型一个元素,而在该元素中相同类型的多个元素被跟踪。对于列表中的每一个元素,为资源检验三个可选项与收集器相关联的私有的BRLS,收集器的汇集,或者公有的BRLS(当搜索到达了根时)。这些检验在从起始收集器到根的每个收集器处被重复。这是通过从要求的资源列表中删除840第一个被请求的资源RR来完成的。在步骤850从起始汇集开始,检验860来看是否有一个具有类型为RR的可用资源的BRLS。如果没有,那么检验863来看是否收集器有类型为RR的资源。如果没有,检验865来看是否到了根汇集。如果不在根,那么转到867当前汇集的父并继续在860检验。如果已经在根,那么不是所有的被要求的资源都可用,因而将使用仲裁870来确定是否可使资源可用。如果检验860或者检验863找到了资源,那么资源的信息在步骤880被添加到保留列表。接下来检验890来看是否所有被请求的资源都已经被定位。如果它们还没有被定位,那么将列表840中最上面的元素去除,并继续寻找资源。如果所有的资源都已被定位,那么作出对被定位的资源的保留请求895,并且保留请求的结果在定位可用资源过程的最后被返回。
如果保留失败,将会以根收集器为范围而调用仲裁。仲裁是标题为“计算公共设施系统中的仲裁装置”、案卷号为YOR920030589US1的交叉引用的申请的主题。本发明将仲裁当作“黑箱”处理。如果仲裁成功,则资源被保留,并且票据被返回给请求者。否则请求被拒绝。成功的仲裁可能要求从其他的域中回收资源。由汇集管理器、相关联的库以及获取策略所强加的约束被输入到仲裁器。
BRDS提供了下面列出的资源管理操作。
资源管理操作图9图示说明了BRDS 219和PMRS 920之间的交互的一个示例。有一个用于由BRDS向PMRS作出请求的操作集930,以及另一个用于由PMRS向BRDS作出请求的操作集940。资源的分配涉及五种操作PMRS可以请求、保持或者返回资源940,而BRDS可以回收或提供资源930。当PMRS需要额外的资源或者有剩余可以返回时,它就使用RequestResource(请求资源)和ReturnResource(返回资源)接口940。当PMRS希望在超出初始请求中指定的期限之外保持资源时,它就使用RetainResource(保持资源)940。当先前保留的资源变得可用时,BRDS 219就使用DeliverResource(交付资源)接口930来将资源交给PMRS 920。每当BRDS需要从一个PMRS中删除资源时,它就使用ReclaimResource(回收资源)接口930。例如,一种情况将是撤销先前分配的资源,从而使它们可以重新分配到其他地方。OfferResource(提供资源)接口930被用来使这样的额外资源可用,这些资源未被PMRS 920显式请求,但却是它的计算环境的策略所允许的。
RequestResource(R,start-time,duration)该请求由PMRS 920代表用户计算环境向BRDS 219发出,来请求额外的资源。BRDS 219可以拒绝该请求。
输入R[],一个结构矢量,每个资源类型有一个元素。每个结构包含该类型的实例的数目以及可选的选择准则。选择准则可包括资源句柄来指定特定的实例。
start-time可以是立即的,或者用于预先保留输出
返回指示成功或失败的代码R’[],可选的返回。失败时,可被设置以指示可用资源。R’的元素是资源保留票据,每个资源实例一个,而PMRS 920可将其收回以获得额外的资源。
start-time’,可选的返回。失败时,可被设置以指示资源何时可用。如果被设置则应用于R’,否则应用于R。
ReturnResource(R)该请求由PMRS 920代表用户计算环境向BRDS 219发出以返回资源。BRDS 219接受资源。
输入R[],正在被返回的资源的资源标识符(句柄或保留票据)列表。这些资源可以是当前被分配的资源或是保留。
输出指示成功或失败的返回码RetainResource(R,end time)该请求由PMRS 920代表用户计算环境向BRDS 219发出,以将资源保留与先前承诺不同的时间量(延长或修改资源的保留)。BRDS 219可以接受或拒绝该请求。
输入R[],正在被保留的资源的资源标识符(句柄或保留票据)列表。这些资源可以是当前被分配的资源或是保留。
end time是所请求的用于列表中资源的新的中止时间。如果该中止时间不是在未来,那么请求被拒绝。
输出指示成功或失败的返回码
ReclaimResource(R)该请求由BRDS 219向PMRS 920发出,来撤销一个资源集的分配或保留。PMRS 920放弃资源。
输入R[],一个结构矢量,每个资源类型一个元素。每个结构包含该类型的实例的数目以及可选的选择准则。选择准则可包括资源句柄或保留票据来指定特定的实例。计算环境可根据准则来选择要回收的资源实例。
输出R’[],正在被返回的资源标识符(资源句柄或保留票据)的列表。R’可以是R的超集,其包括一些因为对被回收资源的依赖而变得无用的资源。
OfferResource(R,start-time,duration)该请求由BRDS 219向PMRS 920发出,以通知可用于该计算环境的额外资源的可用性。PMRS 920可以接受也可以拒绝提供的资源。为接受资源,PMRS 920发出RequestResource请求。
输入R[],一个包含可用的每一种资源类型的实例的数目的矢量start-time可以是立即的,也可以用于预先保留输出无DeliverResource(R)该请求由BRDS 219向PMRS 920发出,以指示先前被保留的资源已经被分配用于该计算环境。
输入R[],一个元组列表,每一个元组包含一个保留标识和对应的资源句柄。
输出无为获取资源并将其分布到用户计算环境中,BRDS 219调用上述BRLS910、912、914和916的操作。
图10图示说明了在正常操作期间PMRS 1010和BRDS 219之间的交互的一个示例。图10中的PMRS代表一组可能具有可变大小的Linux服务器。某事件使得代表Linux服务器PMRS 1010认识到了它需要额外的资源,例如一个xSeries Linux服务器或一个额外的IP地址。它使用RequestResource 1011来向BRDS 219请求资源。BRDS 219使用在图7和图8中描述的方法来分配和保留资源。作为对RequestResource 1011的响应,保留票据被返回到PMRS 1010。当资源变得可用时,将使用DeliverResource1012通知PMRS 1010。PMRS 1010内部的详细交互在标题为“用于计算公共设施的计算环境的组件化自动供应和管理”、案卷号为YOR920030588PCT1的申请中被描述。
图11图示说明了向现存的托管基础设施中添加新的用户(或服务)的过程的一个示例。这个过程与向现存的服务添加新的资源类似。本发明假定有一个操作集,其允许组织预订服务提供者的服务,并进一步成组添加计算环境以用于组织内的资源共享。至少,提供了向组织添加来自该组织与服务提供者之间的协议的某种信息例如协议的起始时间和期限,以及获取或其他策略。对于特定的计算环境,还提供计算环境的类型和设置。在正常操作期间,控制计算环境的策略可以通过添加新的策略、删除已有的策略、或更新已有的策略来修改。另外,本发明假定存在当其协议终止时删除域和组织的操作。要添加新的域,客户指定该域(包括子域)的表示、策略和将为该域供应的计算环境列表。
在图11中计算环境类型是网站。BRDS 219有单个根收集器。有一些用于网络调度器许可证1130、Linux服务器(硬件和软件)1132、和WebSphere许可证1134的BRLS。当新的用户请求1105到达时,BRDS 219的新用户(NC)1160组件便为其创建一个新的收集器1150,(由点线指示)以及用于用户的信息的占位符,直到用于新汇集的PMRS 1180完全可操作。新用户请求1105指定将被实例化的确切的复合资源。创建新的收集器之后,NC 1160向正确类型的PMRS 1180发送一个Realize(实现)1111请求。Realize被BRDS 219用来在新的计算环境被请求时获取用来在已有的基础设施上构造资源的一组可能计划。Realize在一个标题为“用于计算公共设施的计算环境的组件化自动供应和管理”、案卷号为YOR920030588PCT1的单独的发明中被详细地定义。在Realize 1111请求的最后,BRDS 219具有了可以被用来构建指定类型的计算环境的可能资源集的列表。所有这些选项都被返回到NC 1160对象,该对象实例化一个收集器1150来管理新的实例,并请求收集器1150为资源进行协商。这个刚刚被实例化的收集器1150(BRDS)对照可用资源和策略来分析选项,并为资源而与库BRLS 1130、1132和1134进行协商。然后它计划安排在被请求的时间构造服务,并假定所有的资源都可以在策略内被获得。(如果资源无法被获得,则新用户请求1105失败。)当资源保留的起始时间到来时,BRDS 219获得资源并将资源句柄交付给NC 1160,NC 1160向PRS 1110发送Build(构建)1112请求。Build请求包括所有需要的策略。一种类型的被提供的策略是获取策略,其他需要的策略可以是特定于资源类型的,并将在此时被提供。应该注意到,PMRS 1180是PRS 1110和MRS 1170之间的逻辑关联。PMRS的细节在一个标题为“用于计算公共设施的计算环境的组件化自动供应和管理”、案卷号为YOR920030588PCT1的申请中被描述。作为Build 1112请求的结果,PRS 1110创建MRS 1170,而后者将与该计算环境相关联。当这个过程完成,PRS 1110将新的MRS 1170的标识符返回到NC 1160,NC 1160以用于该计算环境的根MRS 1170的身份更新收集器1150。
一旦收集器有了句柄,收集器现在便与这个由它管理的、刚刚被实例化的服务相关联起来,如图11中的虚线所示。在另一个可选择的实施例中,NC不是向PRS发送Build 1112请求,而是NC可以发送DeliverResource请求,并且PMRS可以认识到第一个交付资源请求意味着构建。
在另一个可选择的实施例中,NC的功能可以被结合到收集器,从而在新用户请求到达时BRDS可以实例化新的收集器。新的收集器将作为它的初始化的一部分,经历分配给NC的所有步骤。在这些步骤完成之时,NC将被完成,并且服务变得可操作。也有可能托管环境可能没有满足请求的能力,在这种情况下对新用户的请求将被拒绝。如前面指示的那样,该托管环境具有获取并利用可能存在于其他某个托管环境中的资源的能力。因此,如果这个托管环境没有所有所要求的资源,而它能够从具备可接受的条件集的其他某个托管环境获取资源,那么对新用户的请求就可以被接受,而不被拒绝。从另外一个托管环境中获取的资源仍将被表示成这个环境中的一个BRLS。当一个托管环境包含来自多个托管环境的一些BRLS时,这些BRLS是有类型的(typed),从而可以提供获取策略,来管理外部资源对内部资源的使用。
图12示出了为了供应目的将一组计算环境向Smith紧固件公司120分布的一个示例。Smith紧固件公司不得不决定他们希望在其组织内利用哪些服务,以及组织的哪个部分将持有(或者预订)每一个服务。Smith还不得不决定如何将资源分配给他们的域,以及用于每一个域的分配和分布策略将是什么。这些供应决策与Smith紧固件公司的哪些雇员要去使用被供应的服务不相关。生成域和计算环境树的指导原则是域只有在至少有一个计算环境要被供应、至少两个子域要被建立、或者至少有一个计算环境和一个子域的时候才能被插入。这一原则防止长串的、不过仅有一个子域的域。Smith紧固件公司120已经决定了它希望供应和控制在公司级别上的两个应用,即应用1和应用5。一个会计应用即应用12将被公司以及每一个部即研究121、财务122、硬件123、和市场124所使用。硬件部已经决定每个产品单元即螺栓127、螺钉128和铰链129应该使用相同的工程设计应用9的、他们自己的实例。铰链单元129还试验两个额外的应用即应用10和应用11。市场部已经决定了它的每一个地区即地区1 125和地区2 126应该使用相同的应用即应用3的、它们自己的实例来管理市场活动。市场部的地区2 126被划分为两个分开的区域,即南130和北131。这些地区中的每一个在地区水平上使用它们自己的、应用4的实例来收集信息以供给应用3。Smith紧固件公司120的资源获取和分布策略确保了它的每一个主要的域即研究121、财务122、硬件123和市场124都有它完成其任务所需要的资源。另外,市场124和财务122还可以在其每个季度或者每个年度末的高峰期享有从其他部门中而不是彼此之间重新分配给它们的资源。但是不允许它们占据如此多的资源而使得其他部门丧失能力。
当所有这些决策被映射到具有计算环境一个域结构时,它看起来如下根域120,有三个应用,即App01 150、App12 151以及App05 152。根域120还有四个子域,即研究121、财务122、硬件123和市场124。每个研究121和财务122的子域使用单个应用。在这种情况下,它们每一个都有相同的应用的单独的实例App12 155和App12 156。本发明并不禁止从使用者的角度在域之间共享应用的单个实例。例如在图12中,App01既可以被研究和财务使用,也可以被根域使用。但是,从供应(和供应的管理)的角度,应用的每一个实例都具有在组织内的单个供应点。回到该图的详细描述。硬件域123有三个子域以及单个与之相关联的应用。硬件123的子域是螺栓单元127、螺钉单元128和铰链单元129。与硬件相关联的应用是App12 157。市场域124有与之关联的两个应用和两个子域。两个应用是App12 153和App03 154,而两个域是地区1 125和地区2 126。这些地区中的每一个都有其自己的、App03的实例。地区1 125使用App03 161,而地区2 126使用App03 158。地区2 126进一步被划分为北130和南131,并且地区2 126的每一个子域都有自己的App04的副本。北使用App04 163,而南使用App04 162。
图13示出了从计算环境和图12的域结构产生的收集器层级结构。为产生这样的收集器层级结构,从根域开始,并插入一个收集器。接下来检查域树的根域来看是否只有一个计算环境。如果是,那么插入用于该计算环境的PMRS,并且完成。否则,根域有多于一个计算环境或子域。对于根域的每一个计算环境,插入一个收集器和PMRS。剩余的子域则被放在域处理列表中。这一算法被应用到域处理列表中的每一个域,直到列表为空。基本上这个算法使用宽度优先搜索,其从该域的根域开始并计算环境树。当这一算法被应用到图12,便产生了图13中示出了收集器层级结构。PMRS是有类型的,在图13中PMRS名称的最后两位数字是它的类型,因此PMRS01是一个管理来自图12的App01的实例的PMRS。回到图13的更加详细的描述,收集器SFC 1320被插入,因为图12中的Smith紧固件公司120有多于一个的应用。在图12中Smith紧固件公司120有三个应用。因此对应用1、12和5,一个收集器PMRS结构被插入。对于应用1,这是收集器1352和PMRS01 1374,对于应用12,这是收集器1351和PMRS12 1373,对于应用5这是收集器1350和PMRS05 1371。接下来将这种算法应用到Smith公司的子域中。注意到在图12中的两个子域即研究121和财务122都仅有一个应用即应用12。因此,对于这些子域中的每一个,一个收集器和PMRS结构被插入到层级结构中。对于图12中的研究121,插入了收集器1321和PMRS12 1370,对于图12中的财务122,插入了收集器1322和PMRS121372。在图12中,硬件123和市场124具有多个子域和应用。接下来把该算法应用到硬件和市场的子域中。对于硬件,收集器1323被插入,而对于市场,收集器1324被插入。在图12中硬件有三个子域,即螺栓127、螺钉128和铰链129以及与之关联的一个应用即应用12。所以将一个PMRS收集器层级结构添加到用于该应用的收集器1323。在图12中,有两个硬件子域只有单个应用与之关联,即螺栓127和螺钉128。在图13中,一个收集器PMRS结构与这些子域中的每一个相关联。对于螺栓它是收集器1327和PMRS09 1376,而对于螺钉它是收集器1328和PMRS09 1377。在图12中,硬件123的第三个单元即铰链129有三个与之关联的应用,所以在图13中收集器1329被插入。在图12中市场有两个应用和两个子域。这些应用是App12 153和App03 154,而子域是地区1 125和地区2 126。在图13中,已经为每一个应用插入了一个收集器PMRS层级结构。它们是用于应用12的收集器1354和PMRS12 1378,以及用于应用3的收集器1355和PMRS03 1379。在图12中,一个子域北130只有单个应用与之关联,即App04163。在图13中,一个收集器PMRS层级结构被插入。这是收集器1330和PMRS04 1384。在图12中市场的另一个子域即地区2 126具有一个应用和两个子域。因此在图13中一个收集器即收集器1326被插入。回到图12中的铰链129,它有三个应用与之关联,即App11 164、App09 165和App10166。在图13中,一个收集器PMRS层级结构为这些应用的每一个而被插入。它们是用于应用11的收集器1356和PMRS11 1381;用于应用9的收集器1357和PMRS09 1382;和用于应用10的收集器1358和PMRS10 1383。最后检查图12中的地区2 126。它有一个应用App03 158和两个子域。在图12中,它的每一个子域北130和南131都有应用4的一个实例。在图13中为应用3插入一个PMRS收集器层级结构,即收集器1359和PMRS03 1386。对于子域也为其每一个插入一个收集器PMRS层级结构,因为它们只有一个应用。这是用于北的收集器1330和PMRS04 1384,和用于南的收集器1331和PMRS04 1385。这样就完成了收集器计算环境层级结构的构造,而这个层级结构将被本发明用来提供资源的层级式管理。
收集器树被设计为允许在向用户供应服务时具有最大的灵活性。它允许私有的BRLS与树中的每一个收集器相关联。每一个收集器可以具有其自己的获取和分布策略。这允许公司,在该例中即为Smith紧固件公司,有能力更精细地控制其计算资源分布。如果所有的获取和分布策略相同,而且所有的资源都保持在公有的BRLS中,那么该树就是不必要的,一个平的树(flat tree)就足够了。通过使用层级结构,获得了对组织内资源的分布和使用的更精细的控制水平。
本发明可与上面交叉引用的标题为“用于计算公共设施的计算环境的组件化自动供应和管理”和标题为“计算公共设施系统中的仲裁装置”的申请中描述的发明一起使用。使用的一个示例是将这些发明结合起来以向一组用户提供随需服务。
为本发明所描述的一些变型可以在用于每一种特殊应用的任何希望的结合中实现。因此特定的限制,和/或者这里描述的实施例增强,尽管可能对一特定的应用有着特定的优势,但并不需要在所有的应用中都被使用。而且,并不是所有的限制都需要在包括本发明的一个或多个概念的方法、系统和/或装置中被实现。
本发明可以在硬件、软件或者硬件与软件的结合中实现。根据本发明的可视化工具可以以集中的方式在一个计算机系统中实现,或者以分布的方式实现,在这种分布方式中,不同的元件被散布在几个互连的计算机系统中。任何类型的计算机系统一或者其他适用于执行这里描述的方法和/或功能的装置一都是适合的。一种典型的硬件和软件的结合可以是带有计算机程序的通用计算机系统,该计算机程序当被加载和执行时,控制该计算机系统以使其执行这里所描述的方法。本发明也可以嵌入到计算机程序产品中,该计算机程序产品包含了使能实现这里所描述的方法的所有特征,并且,当其被加载到计算机系统时,能够执行这些方法。
本文中的计算机程序装置或者计算机程序包括一组指令的以任何语言、代码或符号表示的任何表达,该组指令旨在使得具有信息处理能力的系统或者直接地、或者在转化成另外一种语言、代码或符号和/或以不同的材料形式的再现之后执行特定的功能。
因此本发明包括一种包含了计算机可用介质的制造物品,其中,该介质具有体现在其中的用于产生上述功能的计算机可读程序代码装置。该制造物品中的计算机可读程序代码装置包含了用于使得计算机实现本发明的方法的步骤的计算机可读程序代码装置。类似地,本发明可实现为一种包含计算机可用介质的计算机程序产品,该计算机可用介质具有体现在其中的用于引起上述功能的计算机可读程序代码装置实施例。该计算机程序产品中的计算机可读程序代码装置包含了用于使得计算机实现本发明的一个或多个功能的计算机可读程序代码装置。此外,本发明还可以实现为机器可读的程序存储设备,该程序存储设备有形地体现了机器可执行以完成用于产生本发明的一个或多个功能的方法步骤的指令程序。
值得注意的是,前述内容已经概述了本发明的一些更相关的目标和实施例。本发明可以使用在很多应用中。因此,虽然这里的描述是对一些特定的安排和方法作出的,但是本发明的目的和概念对于其他的安排和应用也是适合的和可应用的。本领域的技术人员们应很清楚,可以对上述所公开的实施例进行修改而不脱离本发明的精神和范围。所描述的实施例应该被理解为仅说明了本发明的一些更突出的特征和应用。通过以一种不同的方式应用所公开的发明或者以本领域的技术人员所了解的方式修改本发明,可实现其他有益的结果。
权利要求
1.一种包括为实体提供至少一个域的层级式管理的方法,所述提供层级式管理的步骤包括获取所述至少一个域的层级式表示,所述表示包括要被管理的计算环境的列表,控制为所述至少一个域从资源库获取至少一个资源的至少一个策略,和所述至少一个域内的任何子域;以及实例化该表示。
2.如权利要求1中所述的方法,进一步包括在构造所述层级式管理时,获得用于所述计算环境列表的所需要的资源集;以及将用于所述资源集的资源提供给所述至少一个域。
3.如权利要求1中所述的方法,进一步包括更新所述表示的至少一个策略。
4.如权利要求1中所述的方法,进一步包括利用库服务。
5.如权利要求1中所述的方法,进一步包括将每一个计算环境与特定的子域相关联。
6.如权利要求4中所述的方法,其中所述利用步骤包括保留为所述计算环境列表所需要的资源集。
7.如权利要求6中所述的方法,进一步包括获取所述资源集并且使用来自所述资源集的至少一个资源。
8.如权利要求1中所述的方法,其中所述至少一个域是多个域。
9.如权利要求8中所述的方法,其中来自所述至少一个域的至少一个域是另外一个域的子域。
10.如权利要求9中所述的方法,其中所述至少一个域中的至少一个域是根域。
11.如权利要求4中所述的方法,进一步包括将来自所述库服务的至少一个库服务与至少一个收集器相关联。
12.如权利要求4中所述的方法,其中基资源的数量和类型都随时间而改变。
13.一种包含这样的计算机可用介质的制造物品,该计算机可用介质具有体现在其中的、用于使得为计算公共设施提供至少一个域的层级式管理的计算机可读程序代码装置,所述制造物品中的计算机可读程序代码装置包括用于使得计算机完成权利要求1中的步骤的计算机可读程序代码装置。
14.一种机器可读的程序存储设备,其有形地体现了机器可执行以完成用于为计算公共设施提供至少一个域的层级式管理的方法步骤的指令程序,所述方法步骤包括权利要求1中的步骤。
15.一种包括用于为计算公共设施提供至少一个域的层级式管理的装置的装置,所述用于提供层级式管理的装置包括用于获得所述至少一个域的层级式表示的装置,所述表示包括要被管理的计算环境的列表,控制为所述至少一个域从复合资源获取至少一个资源的至少一个策略,和所述至少一个域内的任何子域;以及用于实例化该表示的装置。
16.一种包含这样的计算机可用介质的计算机程序产品,该计算机可用介质具有体现在其中的、用于使得为计算公共设施提供至少一个域的层级式管理的计算机可读程序代码装置,所述计算机程序产品中的计算机可读程序代码装置包括用于使得计算机实现权利要求15中的功能的计算机可读程序代码装置。
17.一种方法,包括创建实体的层级式的表示,包括将该实体组织到域的域树中,其中每个域代表该实体内的组织,所述每个域从计算公共设施获得计算环境和资源。
18.如权利要求17中所述的方法,进一步包括确定将与每个域关联的计算环境;为每个域确定获取策略和分布策略;将所述域树转换为收集器层级结构;以及将所述收集器层级结构连接到托管环境的托管根收集器中。
19.如权利要求18中所述的方法,进一步包括使用所述托管环境来供应至少一个计算环境和至少一个资源给所述实体。
20.如权利要求18中所述的方法,其中所述连接步骤由服务提供者执行。
21.如权利要求18中所述的方法,其中所述连接步骤包括将用于所述托管环境的多个用户的收集器层级结构连接到托管根收集器中。
22.如权利要求18中所述的方法,其中所述转换步骤包括插入收集器作为收集器层级结构的层级结构根收集器,确定所述域树的根域的若干计算环境,以及该域树的根域的子域是否存在,如果只有一个计算环境,而且该域树的根域没有子域,则在所述收集器层级结构中插入PMRS,并终止该转换步骤,否则,对于该域树的所述根域的每个计算环境,向所述收集器层级结构的根收集器添加收集器和PMRS;确定该域树的所述根域的、只有一个计算环境的子域对于该域树的所述根域的、只有一个计算环境而没有其他子域的每个子域,将PMRS插入到该收集器层级结构,对于该域树的所述根域的、有多于一个计算环境或者其他子域的每个子域,将所述每个子域放在域处理列表中;以及重复所述插入收集器的步骤,为域处理列表中的每个域确定若干计算环境就如同它是根域一样的步骤,以及确定该域树的所述根域的、只有一个计算环境的子域的步骤,直到所述域处理列表为空。
23.如权利要求18中所述的方法,其中所述连接步骤由服务提供者执行。
24.如权利要求1中所述的方法,其中所述方法被用于随需提供服务。
25.一种包含这样的计算机可用介质的制造物品,该计算机可用介质具有体现在其中的用于使得创建实体的层级式表示的计算机可读程序代码装置,所述制造物品中的计算机可读程序代码装置包括用于使得计算机完成权利要求17中的步骤的计算机可读程序代码装置。
26.一种机器可读的程序存储设备,其有形地体现了机器可执行以完成用于创建实体的分层表示的方法步骤的指令程序,所述方法步骤包括权利要求17中的步骤。
27.一种装置,包括用于创建实体的层级式的表示的装置,其包括用于将该实体组织到域的域树中的装置,其中每个域都代表该实体内的组织,所述每个域从计算公共设施中获得计算环境和资源。
28.一种包含这样的计算机可用介质的计算机程序产品,该计算机可用介质具有体现在其中的、用于使得创建实体的层级式表示的计算机可读程序代码装置,所述计算机程序产品中的计算机可读程序代码装置包括用于使得计算机实现权利要求27中的功能的计算机可读程序代码装置。
29.一种装置,包括多个收集器来代表计算公共设施中的多个域,每一个所述收集器都被连接到至少一个其他收集器,每个收集器具有控制器,用来为每个域控制被保留资源;策略顾问,用来解释任何策略;以及资源管理器,用来为计算环境管理资源获取。
30.如权利要求29中所述的装置,所述装置进一步包括至少一个基资源库服务,至少一个收集器与所述至少一个基资源库服务的至少一个相关联,所述基资源库服务具有资源操作接口和目录接口。
31.如权利要求30中所述的装置,其中所述至少一个基资源库服务包括至少一个公有的基资源库服务来向至少一个域提供库服务,所述公有的基资源库服务具有资源操作接口和目录接口。
32.如权利要求29中所述的装置,其中所述资源操作接口提供了取自这样的一组操作的操作,该组操作包括保留,取消保留,签入,签出,查询,更新,以及这些操作的任何组合。
33.如权利要求29中所述的装置,其中所述目录操作接口提供了取自这样的一组操作的操作,该组操作包括保留,添加,删除,更新,查询,以及这些操作的任何组合。
34.如权利要求10中所述的方法,进一步包括请求计算环境作出对资源的特定组合的请求;检验所述请求计算环境的获取策略的所述表示,来验证对该资源的特定组合的请求的满足是在所述请求计算环境的获取策略内;以及对所述请求收集器的所有父收集器重复该检验步骤,直到到达任何根收集器。
35.如权利要求34中所述的方法,进一步包括确定获取策略是否在到达任何根收集器的过程中一直都被满足。
36.如权利要求10中所述的方法,进一步包括作出对资源的特定组合的请求;确定开始为该资源组合进行搜索的起始收集器;检验该起始收集器是否有至少一个来自所述资源组合的资源,所述至少一个资源是已经被定位的资源;检验是否存在至少一个库包括至少一个来自所述资源组合的资源,所述至少一个资源是已经被定位的资源;在从起始收集器到任何根收集器的每个收集器处重复所述检验步骤;如果所述组合的所有资源都是被定位的资源,则保留所有被定位的资源,否则拒绝该请求。
37.如权利要求36中所述的方法,进一步包括调用仲裁来继续定位来自所述资源组合的所有资源。
38.如权利要求1中所述的方法,其中所述至少一个资源是基资源或复合资源。
39.如权利要求1中所述的方法,进一步包括将所述至少一个资源组织到被提供给多个用户的服务中。
40.如权利要求1中所述的方法,进一步包括将基资源分配给库服务。
41.如权利要求40中所述的方法,进一步包括从满足服务描述的基资源编制复合资源。
42.如权利要求1中所述的方法,进一步包括将复合资源分配给库服务。
43.如权利要求1中所述的方法,进一步包括将服务分配给库服务。
44.一种用于计算公共设施的体系结构,包括用来为多个客户提供至少一个服务的装置,所述装置包括基资源分布服务,用来将资源分配给所述至少一个服务;所述基资源分布服务有至少一个收集器;至少一个与所述基资源分布服务连接的供应和管理资源服务,用来为所述至少一个服务供应和管理所述资源;以及至少一个与所述基资源分布服务连接的基资源库服务,用来提供资源的保留和分配。
45.一种如权利要求44中所述的体系结构,其中所述基资源分布服务包括至少一个收集器,每个收集器保持了特定域的表示,并且持有所述特定域的策略以及持有为所述特定域保留的资源;以及与所述基资源分布服务连接并对所述每个收集器都可用的仲裁器,所述仲裁器向所述计算公共设施的每个收集器提供动态的资源分配。
46.一种如权利要求44中所述的体系结构,其中该体系结构由随需服务所使用。
47.一种包含这样的计算机可用介质的计算机程序产品,该计算机可用介质具有体现在其中的、用于控制和管理资源的计算机可读程序代码装置,所述计算机程序产品中的计算机可读程序代码装置包括用于使得计算机实现权利要求29中的功能的计算机可读程序代码装置。
全文摘要
本发明提供了计算基础设施的层级式供应和管理,该计算基础设施用于向操作该基础设施的服务提供者的用户提供计算服务。本发明提供了用于计算环境的层级式管理的体系结构。用户(120)可以在其域内具有多个计算环境。本发明使得资源(121、122、123)能够被专用于特定的用户域或专用于特定的计算环境。用户(120)可指定控制他们在其域内对资源的使用的获取和分布策略。
文档编号G06F17/30GK1914608SQ200480041190
公开日2007年2月14日 申请日期2004年1月30日 优先权日2004年1月30日
发明者T·埃兰, G·D·胡特, S·D·米勒, L·B·穆默特 申请人:国际商业机器公司