用于云选择的协调引擎转让专利

申请号 : CN201210335506.9

文献号 : CN102915331B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·巴特鲁尼S·N·阿什卡尔

申请人 : 微软技术许可有限责任公司

摘要 :

提供了用于云选择的协调引擎。提供了用于选择并管理公共云计算网络来主控客户机的帐户信息的方法、系统和计算机可读介质。最初,客户机向协调引擎发出对更新驻留在目标云上的帐户信息的请求,该协调引擎理解各个公共云的规则语言。目标云先前按照从各个公共云中动态抽象的特性(例如,定价、安全性和可靠性)来根据由客户机指定的理想的标准被从各个公共云中选择。当处理请求时,协调引擎从请求中提取命令并自动地翻译命令来符合目标云的规则语言。在递送到目标云后,经翻译的命令就影响对帐户信息的读取或写入。因此,客户机避免将指令转换成目标云所期望的格式。

权利要求 :

1.一种用于基于由客户机提供的标准来将工作负载分配给一个或多个候选计算机网络的方法,所述方法包括:经由私有云内的抽象层从所述客户机接收(710)针对计算资源的请求,所述抽象层包括用作中介来提供的各种接口,所述客户机能通过该中介与协调引擎来交互,所述协调引擎用作对所述私有云和公共云之间的数据流进行翻译和管理的中介;

接收与所述请求相关联的标准,其中所述标准指定所述一个或多个候选计算网络的客户机偏好的特性;

采用(720)所述协调引擎来关于度量执行对所述标准的分析,其中所述协调引擎参考反馈机制的建立的规则或修改的规则来优化提供的目标计算机网络,所述建立的规则或所述修改的规则是基于所述反馈机制评估所述协调引擎,其中分析过程包括:(a)访问(740)度量数据库处的度量,其中所述度量是从所述一个或多个候选计算机网络中挖掘的;以及(b)分别将所述标准与所述度量进行比较(750);

部分基于所述比较,从所述一个或多个候选计算机网络中将至少一个展示满足所述标准的度量的计算机网络定为目标(760);以及启动(700)与至少一个被定为目标的计算机网络的交互。

2.如权利要求1所述的方法,其特征在于,所述请求包括指令来运行在所述一个或多个候选计算机网络处可用的虚拟机上的应用,并且其中所述应用与所述客户机的帐户相关联。

3.如权利要求1所述的方法,其特征在于,所述请求包括指令来维护在所述一个或多个候选计算机网络处可用的存储位置上的数据,并且其中所述数据与所述客户机的帐户相关联。

4.如权利要求1所述的方法,其特征在于,所述标准定义所述一个或多个候选计算机网络的针对安全性、可用性、成本、可伸缩性或地理冗余性中的至少之一的特定属性。

5.如权利要求1所述的方法,其特征在于,一个或多个候选计算机网络包括私有企业网络和至少一个公共云计算网络。

6.如权利要求5所述的方法,其特征在于,所述方法进一步包括采用所述协调引擎来跨所述私有企业网络和所述至少一个被定为目标的计算机网络管理客户机的帐户的使用。

7.如权利要求6所述的方法,其特征在于,采用所述协调引擎来跨所述私有企业网络和所述至少一个被定为目标的计算机网络管理客户机的帐户的使用包括监督运行在被提供在所述至少一个被定为目标的计算机网络上的虚拟机上的应用。

8.如权利要求6所述的方法,其特征在于,采用所述协调引擎来跨所述私有企业网络和所述至少一个被定为目标的计算机网络管理客户机的帐户的使用包括跟踪被维护在被提供在所述至少一个被定为目标的网络上的存储位置处的数据。

9.如权利要求6所述的方法,其特征在于,所述方法进一步包括采用所述协调引擎来提供所述至少一个被定为目标的计算机网络上的计算机资源以满足所述请求。

10.如权利要求6所述的方法,其特征在于,采用所述协调引擎来跨所述私有企业网络和所述至少一个被定为目标的计算机网络管理客户机的帐户的使用包括负载平衡所述至少一个被定为目标的计算机网络和另一公共云计算网络之间的使用。

11.如权利要求1所述的方法,其特征在于,所述分析过程还包括:

访问来自规则数据库的规则;以及

应用所述规则来影响所述标准与所述度量的比较的结果。

12.一种用于将工作负载分发到私有企业网络外部的一个或多个公共计算网络的计算机化的方法,所述方法包括:经由私有云内的抽象层接收(810)从所述私有企业网络的用户发出的针对更新被主控在所述一个或多个公共计算网络上的帐户信息的请求,所述抽象层包括用作中介来提供的各种接口,客户机能通过该中介与协调引擎来交互,所述协调引擎用作对所述私有云和公共云之间的数据流进行翻译和管理的中介;

使用所述协调引擎从所述一个或多个公共计算网络中标识(820)负责主控所述帐户信息的目标网络,其中所述协调引擎参考反馈机制的建立的规则或修改的规则来优化提供的目标计算网络,所述建立的规则或所述修改的规则是基于所述反馈机制评估所述协调引擎;

从所述请求中提取(830)一个或多个命令,其中所述一个或多个命令部分表示用于执行所述更新的指令;

当与外部源进行交互时,将所述一个或多个命令翻译(840)成符合由目标网络观察到的规则语言的格式;以及启动(850)所述一个或多个经翻译的命令到与所述目标网络相关联的计算资源的分发,所述计算资源被指定为实现对所述帐户信息的更新。

13.如权利要求12所述的计算机化的方法,其特征在于,进一步包括,在所述目标网络上建立帐户信息后,就向所述管理员释放令牌,所述令牌尤其展示所述帐户信息在所述一个或多个公共计算网络内的至少一个位置。

14.如权利要求13所述的计算机化方法,其特征在于,还包括:

在接收后解析所述请求;

识别被附加到所述请求的令牌;以及

读取所述令牌以了解在主控所述帐户信息的目标网络上的至少一个位置。

15.一种用于执行监控一个或多个公共云的特性并基于这些特性来选择用于主控帐户信息的合适的公共云的方法的计算机系统,所述计算机系统包括耦合到计算机存储介质的处理单元,所述计算机存储介质具有存储在其上的由所述处理单元执行的多个计算机软件组件,所述计算机软件组件包括:规则数据存储(270),所述规则数据存储持久保存由与私有云(210)相关联的管理员(510)提供的条件,其中所述条件展示所述管理员认为对外部云计算网络而言有价值体现的标准;

度量数据存储(280),所述度量数据存储接受并维护描述被指定为用于主控帐户信息的候选的一个或多个公共云(250)的质量的特性;

一个或多个代理(260、265和275),所述一个或多个代理被编程为通过爬行一个或多个候选公共云来动态地收集所述特性并将所收集的特性报告到所述度量数据存储;以及协调引擎(230),所述协调引擎用作对私有云和公共云之间的数据流进行翻译和管理的中介并且所述协调引擎决定所述一个或多个候选公共云中的哪个被选为用于主控帐户信息的目标云,其中所述协调引擎参考反馈机制的建立的规则或修改的规则来优化提供的目标云,所述建立的规则或所述修改的规则是基于所述反馈机制评估所述协调引擎,其中所述决定包括:(a)访问所述规则数据存储(270)来检测所述条件;

(b)访问所述度量数据存储(280)来检测所述特性;

(c)根据按照所述条件对所述特性的分析来选择所述目标云(251、252或253);以及(d)向所述目标云发送分派计算资源以用于主控所述帐户信息的至少一部分的请求(530)。

说明书 :

用于云选择的协调引擎

技术领域

[0001] 本申请涉及协调引擎,尤其涉及用于云选择的协调引擎。

背景技术

[0002] 一般而言,云服务的提供者提供云计算网络来帮助个人或公司管理帐户信息,诸如运行应用和/或存储数据。例如,公共云计算网络(“公共网络”)可被私有企业网络的管理员用于主控他们的帐户信息,其中管理员通常具有选择公共网络的任务。如今,管理员被迫盲目地选择公共网络来持久保存他们的帐户信息,这是因为云服务的特性不能被容易地发现或完全不能访问。因此,管理员一般不能标识所选的公共网络是否提供最符合他们偏好的云服务。
[0003] 一旦选择了公共网络,管理员就必须建立与所选公共网络进行交互的方式。通常,建立交互的方式是费力的过程,其中管理员尝试学习针对所选公共网络的接口语言。一旦被建立,交互的方式被用于基于自组织(ad-hoc)的基础手动地将到所选公共网络的通信转变成该接口语言。由此,管理员被激励扩展他们的私有企业网络以避免到公共网络的溢出所固有的复杂性:该做法对于解决对计算资源的动态变化的需要是低效且不经济的。
[0004] 如在此被详细讨论的,本发明的各实施例介绍了如下技术:该技术自动地选择满足由管理员指定的一组标准的公共云并促进与所选公共云的简单交互。
[0005] 概述
[0006] 提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的概念。本概述并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
[0007] 本发明的各实施例涉及用于抽象一般性地描述私有云计算网络(“私有云”)和至少一个公共云计算网络(“公共云”)之间交互的信息的系统、方法和计算机可读介质。该“抽象”一般表示当作出影响与私有云相关联的帐户信息的决定时所依赖的所挖掘的数据的集合。一般地,提供协调引擎来执行抽象,而不需要私有云的管理员执行诸如跟踪或分析公共云的每日操作的低级细节的任务。即,协调引擎用于将管理员从理解公共云的特性以及基于这些特性来智能地选择最佳的公共云中解放出来。
[0008] 此外,协调引擎被设计为自动地用另一公共云来更新所选公共云。在一例子中,在注意到抽象内的改变后更新就被调用,该改变反映对私有云的特性的底层改变。在另一例子中,在管理员提交对标准的改变后更新就被调用,该标准指定管理员偏好的云服务属性。由此,协调引擎的智能选择可部分基于私有云特性、管理生成的标准或它们的组合。这与迫使管理员基于自组织的基础个别地且频繁地查询公共云的提供者以了解由这些私有云展示的特性并手动地对这些特性作出改变是相反的。
[0009] 本发明的其它实施例介绍了在后台中运行的应用编程接口(API),该应用编程接口监控并促进私有云和所选公共云之间正在进行的事务。通常,该API能够访问由所选公共云利用的规则语言(RL)并当翻译云之间的通信时应用该规则语言。由此,该API使得发送和转换针对所选公共云上的帐户信息的命令的过程对管理员而言是透明的。
[0010] 作为示例,管理员可以是金融机构的银行信息的管理者。在这种情况下,管理员可指定选择私有云的最高重要性的标准是安全性。在将该标准提交给协调引擎后,实施免受黑客攻击的高级别保护的公共云可被选择来用于主控银行信息。一般地,协调引擎在作出选择时可查看一组公共云的抽象以将各个公共云的特性与所提交的标准进行比较。
[0011] 在另一示例中,管理员可以是在线购物论坛的库存信息的管理者。在这种情况下,管理员可指定选择私有云的最高重要性的标准是成本。在将该标准提交给协调引擎后,期望相对最小使用费用的公共云可被选择来用于主控库存信息。一旦公共云被选择,协调引擎就可触发API来自动地开始将来自在线购物论坛的命令打包成符合所选公共云的规则语言的格式。此外,协调引擎被配置成在由在线购物论坛提交的标准指示安全性现在比成本更重要的情况下,将使用从在该第二示例中选择的公共云转移到在第一示例中选择的公共云(上面紧挨着的)。
[0012] 虽然已经描述了可由管理员指定的两种不同类型的标准(成本和安全性),但是应当理解并意识到,用于传达管理员的偏好以及帮助选择公共云的其它类型的合适的标准可被使用,并且本发明的实施例并不限于这些在此描述的标准。例如,以下标准中的一个或多个被完成为用于引导对公共云的选择:具有减少的停机时间的计算资源的可用性;可缩放性(例如,私有云可能不能提供与公共云相同级别的可缩放性);地理冗余性,该地理冗余性提供物理上接近于那些使用被主控在其上的帐户信息的云服务;以及仅在一些公共云中可用的唯一特征。

附图说明

[0013] 以下参考附图详细描述本发明的各实施例,附图中:
[0014] 图1是适用于实现本发明的各实施例的示例性计算环境的框图;
[0015] 图2是示出适用于实现本发明的各实施例的、被配置成选择公共云并管理与所选公共云的通信的分布式计算环境的框图;
[0016] 图3是根据本发明的各实施例的列出从公共和/或私有云抽象的特性的清单的示例性示意图;
[0017] 图4是根据本发明的各实施例的列出由管理员提交的用于指导对公共和/或私有云的选择的条件的清单的示例性示意图;
[0018] 图5是根据本发明的一实施例的示出被用于促进对公共和/或私有云的选择的分布式计算环境的框图;
[0019] 图6是根据本发明的一实施例的示出被用于促进公共和/或私有云之间的交互的分布式计算环境的框图;
[0020] 图7是根据本发明的一实施例的显示用于基于从客户机提供的标准将工作负载分配给一个或多个候选计算机网络的总体方法的流程图;以及
[0021] 图8是根据本发明的一实施例的显示用于将工作负载分发到私有企业网络外部的一个或多个公共计算网络的总体方法的流程图。
[0022] 具体描述
[0023] 此处用细节来描述本发明的各实施例的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的主题还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。并且,应当注意到,本专利文档的公开包括受版权保护的材料,诸如短语“混合云协调器”。版权所有人不反对任何人对该专利文献或专利公开内容按照其在(美国)专利和商标局的专利文件或记录中的形式进行复制,但版权所有人保留其它所有的权利。应对本文献的各部分应用以下通告:版权2011。
[0024] 一般地,本发明的各实施例提供实现跨多个云计算网络(私有和公共两者)来提供和管理服务的技术。例如,该技术可用于基于用户提交的指定目标状态的条件(例如,高安全性、高性能、低成本、高冗余性或稳健备份)来将各种可用云计算网络定为目标。如将在以下更完全描述的,协调引擎或“混合云协调器”可用于针对用户发起的条件来优化对公共云计算网络(“公共云”)的选择,并且同时在帐户信息被置于所选公共云上时就进行负载平衡和数据管理任务。
[0025] 如在此使用的,短语“协调引擎”不旨在限制为在任何单个位置处驻留的软件的任何特定部分,而是一般地指能够以无缝方式管理和平衡两种云提供(公共和私有)的使用的智能软件组件。协调引擎可被提供为来自独立实体的单独服务。或者,协调引擎可被提供为来自云服务提供者的方案的一部分。在一示例性实施例中,协调引擎执行至少三个互补功能(:a)跨云提供帐户,(b)跟踪提供的结果/历史以供将来分析和优化,以及(c)根据从云中抽象的特性来基于由客户机提供的条件管理决定。
[0026] 作为示例,一组织可运行它自己的私有云计算网络(“私有云”),并与此同时,依赖外部云服务(例如,公共云或其它私有云)。在该示例中,协调引擎可用于跨多个云来分发、优化、均质化以及负载平衡使用。即,协调引擎可用作对私有云和公共云之间的数据流进行翻译和管理的中介。
[0027] 一般地,当用作中介时,协调引擎以对私有云的管理员而言透明的方式操作。替代地,当用作选择服务的资源时,协调引擎可将对由各种提供者提供的这些服务的比较变得可见。由此,一旦管理员先前用协调引擎选择了一个或多个服务,协调引擎就能够自动地使用该选择来分发、修改和检索数据,而不需要管理员监督哪个私有云应该被定为目标。因此,对使用私有云上的资源的请求可以抽象方式-缺少对特定外部存储位置的指定-来提供。由此,只要公共云适合客户机的目标,协调引擎就帮助充分利用该公共云的能力,而无需扰乱客户机的正常操作。
[0028] 作为示例,协调引擎可由管理员配置为提供包括客户机的私有云上敏感信息并同时将较不敏感的信息存储在第三方公共云上的服务。因此,协调引擎能解释被标记为用于存储的数据的敏感度并基于对客户机透明的敏感度将该数据发送到适当的位置。通过这种方式,协调引擎提供对跨各种具有不同特征(例如,抗攻击和昂贵对平稳和不贵的)的公共和私有云的服务的访问并能智能地基于这些特征以工作负载为目标和并将其分发到适当的云。
[0029] 因此,在一方面,本发明的各实施例涉及一种或多种其上包含计算机可执行指令的计算机存储介质,这些指令在被执行时执行用于基于从客户机提供的标准来将工作负载分配到一个或多个候选计算机网络的方法。最初,该方法包括接收来自客户机的对计算资源的请求以及接收与该请求相关联的标准。一般地,该标准指定候选计算机网络的客户机偏好的特性。协调引擎被用于针对度量来执行标准的分析。在一示例性实施例中,分析过程包括实现以下步骤:访问度量数据库处的度量,其中度量是从候选计算机网络中挖掘的;以及分别将标准与度量相比较。部分基于该比较,候选计算机网络中的至少一个计算机网络被定为目标。一般地,被定为目标的计算机网络展示出满足标准的度量。在某个稍后时刻,启动与被定为目标的计算机网络的交互。
[0030] 在另一方面,本发明的各实施例涉及用于将工作负载分发到私有企业网络外部的一个或多个公共计算网络的计算机化的方法。该方法包括以下步骤:接收从私有企业网络的用户发出的更新被主控(hosted)在公共计算网络上的帐户信息的请求,以及从公共计算网络中标识负责主控帐户信息的目标网络。在各实例中,可从请求中提取一个或多个命令。作为示例,命令部分表示用于实现更新的指令。当与外部源进行交互时,命令可被翻译成符合由目标网络观察到的规则语言的格式。此外,经翻译的命令可被分发到与目标网络相关联的计算资源,这些计算资源被指定为实现对帐户信息的更新。
[0031] 在另一方面,本发明的各实施例涉及用于执行以下方法的计算机系统,该方法监控一个或多个公共云的特性并基于这些特性来选择用于主控帐户信息的合适的公共云。一般地,该计算机系统包括耦合到计算机存储介质的处理单元,其中该计算机存储介质存储可由该处理单元执行的多个计算机软件组件。最初,计算机软件组件包括规则数据存储、度量数据存储、代理、协调引擎以及反馈机制。规则数据存储被设计为持久保存由与私有云相关联的管理员提供的条件。如以下完整描述的,条件展示以下标准:管理员认为对外部云计算网络而言体现该标准是有价值(例如,成本、安全性、数据的持久保存等)。度量数据存储用于接受并维护描述被指定为用于主控帐户信息的候选的公共云的质量的特性。这些云可由协调引擎自动地指定或由管理员手动地选择。
[0032] 代理被编程为通过爬行候选公共云来动态地收集特性以及将所收集的特性报告给度量数据存储。代理的一个示例包括被编程为从候选公共云中检索期望的使用费用的定价代理。在各实施例中,协调引擎被配置为决定候选公共云中的哪个被选为用于主控帐户信息的目标云。在一个实例中,决定的过程包括多个步骤,该多个步骤包括但不限于以下:访问规则数据存储来检测条件;访问度量数据存储来检测特性;根据按照条件对特性的分析来选择目标云;以及向目标云发送针对分派计算资源以用于主控帐户信息的至少一部分的请求。反馈机制被赋予以下任务:该任务评估协调引擎的决定以评定目标云在运行用户的应用或存储用户的数据的操作期间是否满足易被选择的条件。
[0033] 现在将在以下几个段落描述云计算网络的一般方面。通常,如在此使用的,短语“私有云”意在一般地表示由管理员操作的私有云计算网络,而短语“目标云”表示至少一个由云服务提供者操作的公共云计算网络。通常,云计算网络用于以分布式的方式来存储数据或运行服务应用。例如,云计算网络可包括被分派来运行用户的服务应用的一个或多个部分的节点(例如,计算设备、处理单元或服务器机架中的刀片)。在支持每个服务应用特有的资源和/或操作系统的个别化的计算环境中,当多于一个的分开的服务应用被节点支持时,节点可被划分成各自并发运行所述分开的服务应用的虚拟机。
[0034] 此外,每个服务应用可被划分成功能部分,使得每个功能部分都能在分开的虚拟机上运行。一般地,“角色”提供服务应用的功能部分的模板描述。角色通过指示以下内容来描述:执行该角色的计算机代码、主控环境内该角色所需的条件、被应用到该角色的配置设置、以及角色的用于与其它角色进行通信的端点组、元素等。在一个实例中,角色的配置设置可包括由该角色的所有实例共享的集体设置或为该角色的每一实例所特有的个别设置。在一示例性实施例中,角色各自表示服务应用的组件的特定类。通常,服务模型描绘一个或多个角色中的每个角色有多少实例要放置在数据中心中,其中每个实例是组件的特定类或角色的复制。换言之,每个角色表示组件的每个类的实例集合,其中服务应用可具有用于实现其功能的任意数量的组件类。
[0035] 在各实施例中,服务模型被用于确定哪些属性或哪组属性要被从服务应用的角色的实例中传达。如此处所使用的,短语“服务模型”不旨在限制,其一般指包括与建立和管理数据中心内的服务应用的实例有关的信息的任何通信。一般而言,服务模型是提供用于管理服务应用的组件程序的指令的接口蓝图。在组件程序被部署到遍及分布式操作环境的分布式位置后,服务模型用于在被部署的组件程序之间的协调活动中引导结构控制器。在一个实例中,服务模型包括对要建立服务应用的哪些角色以及如何在数据中心内安装和启动每个角色的实例的描述。即,服务模型用作对应为服务应用运行哪些角色的阐述以及应通过云计算网络在何处安装角色实例的条件。
[0036] 虽然已经描述了云配置的各种不同的类型,但是本领域的技术人员应当理解和了解的是,可使用云计算网络的其它合适的结构,并且本发明的各实施例不被限制于在此描述的跨虚拟机的那些分布式服务应用。在简要描述了本发明的各实施例的概览后,以下描述适于实现本发明的各实施例的示例性操作环境。
[0037] 操作环境
[0038] 首先具体参考图1,示出了用于实现本发明的各实施方式的示例性操作环境,并将其概括地指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该将计算设备100解释为对所示出的任一组件或其组合有任何依赖性或要求。
[0039] 本发明可以在由计算机或诸如个人数据助理或其他手持式设备之类的其他机器执行的计算机代码或机器可使用指令(包括诸如程序模块之类的计算机可执行指令)的一般上下文中描述。一般而言,包括例程、程序、对象、组件、数据结构等等的程序模块是指执行特定任务或实现特定抽象数据类型的代码。本发明的各实施方式本发明可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。
[0040] 参考图1,计算设备100包括直接或间接耦合以下设备的总线110:存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出(I/O)端口118、输入/输出组件120、和说明性电源122。总线110可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。虽然为了清楚起见利用线条示出了图1的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。而且,处理器具有存储器。发明人认识到这是本领域的特性,并重申,图1的图示只是例示可以结合本发明的一个或多个实施方式来使用的示例性计算设备。
诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,它们全部都被认为是在图1的范围之内的并且被称为“计算设备”。
[0041] 计算设备100通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备100访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设备100访问的任何其它介质。通信介质一般将计算机可读指令、数据结构、程序模块或其它数据包含在经调制的数据信号中,诸如载波或其它传输介质并且包括任何信息传递介质。术语已调制数据信号摂是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
[0042] 存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的、不可移动的、或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O组件120等各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。
[0043] I/O端口118允许计算设备100逻辑上耦合至包括I/O组件120的其他设备,其中某些设备可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、打印机、无线设备等等。
[0044] 用于实现的系统
[0045] 本发明的各实施例介绍的技术用于跨多个云(包括私有和公共两者)来提供和管理服务(例如,应用和数据)。该技术还将帮助基于由客户机提供的诸如安全性、性能、成本、冗余性以及备份等标准(例如,配置策略和目标状态)来确定各个可用云的最优确定目标。现在将结合图2来讨论用于实现该技术的一示例性系统。一般地,该技术采用协调引擎230来在客户机205、私有云210和一个或多个公共云250之间进行接口。在一个实例中,进行接口涉及抽象描述跨多个云提供的服务的信息(例如,度量),其中一些云可被配置有冗余性(提供增强的弹性和稳定性)而其它云是较不昂贵的(提供较少的特征)。一旦信息被抽象和分析,协调就可将该信息发布到客户机205,以便作出关于哪些云被定为目标的决定。或者,协调可将由客户机205输入的理想的特征与经抽象的信息进行比较来自动地将最适合的云定为目标。
[0046] 在另一实例中,进行接口涉及(例如,基于经抽象的信息)智能地将工作负载分发到被定为目标的云,而不需要客户机205手动地转换要由被定为目标的云读取的数据。即,协调引擎230促进与被定为目标的云处的服务的简单交互。作为示例,该交互是通过以下来实现的:协调引擎230将来自客户机205或私有云210的通信翻译成由被定为目标的云使用的相应的语言。
[0047] 现在转向图2,示出了显示适于在实现本发明的各实施例时使用的分布式计算环境200的框图。该分布式计算环境200包括与私有云210相关联的客户机205、私有云210内的抽象层220、用于在各个组件之间进行接口的协调引擎230、反馈机制235、用于主控各个组件的主题云、公共云组250、定价代理260、安全性代理265、规则数据库(DB)270、性能代理275以及度量DB 280。本领域普通技术人员将理解和明白,图2所示的云210、240和250仅仅是用于适于容纳工作负载(例如,数据和/或服务应用)的计算网络的一个示例,并且不旨在对本发明的各实施方式的使用范围或功能提出任何限制。云210、240和250不应当被解释为具有对任何单个资源、资源的组合(例如,DB 270和280)或访问资源的API集合(例如,协调引擎230)的任何依赖性或相关的要求。此外,尽管为了清楚起见用线条示出了图2的各个框,但是在实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。
[0048] 主题云240表示任何云计算网络(例如,私有云210的扩展或公共云250的被考虑为定为目标的一个)并可包括被通信地耦合到协调引擎230的各种资源。资源中的一些涉及反馈机制235、定价代理260、安全性代理265以及性能代理275,它们表示通过主题云240相互连接的软件组件、程序或应用。主题云240将这些资源主控在有形计算元素上,诸如节点或节点内的虚拟机。因此,资源可跨各种物理计算元素来分布式地放置,这与各个自包含的项目是相反的。此外,主题云240促进通过将资源连接到其它云计算网络(诸如私有云210和公共云250)上的服务的信道(例如,抽象层220)的通信。举例来说,这些通信信道可包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。因此,网络不在此进一步描述。
[0049] 现在将讨论DB 270和280的示例性配置。最初,DB 270和280表示驻留在主题云240内部或外部的数据存储,并被编程来主存不同类型的数据。例如,规则DB 270可被编程为持久保存由与私有云210相关联的管理员(例如,客户机205)提供的条件,其中“条件”表示管理员认为对于外部云计算网络而言是有价值体现的标准。因此,在操作中,条件帮助管理员标识将最好地支持要被主控的应用或数据的公共云250中的一个或多个的特征。此外,条件帮助协调引擎230在访问规则DB 270后选择最合适的云(公共和/或私有)以将其指定为用于接收工作负载的被定为目标的云。在另一实施例中,度量DB 280被编程为接受并维护描述被指定为用于主控帐户信息的候选的公共云250的质量的特性(例如,经抽象的信息)。
[0050] DB 270和280被一般地配置为存储与分析过程相关联的信息,该分析过程用于将云抽象的度量和客户机提供的标准进行比较,如以下结合图5讨论的。在各个实施例中,这样的信息可包括但不限于,条件、标准、经抽象的信息、度量以及云210、240和250的其它特性。另外,DB270和280可被配置成可被搜索以进行对所存储的信息的合适访问。例如,规则DB 270可被搜索以查找条件、标准以及图4中显示的其它信息,而度量DB 280可被搜索以查找度量、云的特性以及图3中显示的其它信息。本领域普通技术人员可以理解和明白,存储在DB 270和280中的信息可以是可配置的,并可包括与由协调引擎230实现的功能相关的任何信息。这一信息的内容和量决不旨在限制本发明的各实施例的范围。此外,虽然作为单个独立的组件示出,但DB 270和280实际上可以是例如数据库集群等多个数据存储,其各部分可以驻留在主题云240、其它云210和250、另一外部计算设备(未示出)、和/或其任何组合上。
[0051] 现在将结合图3讨论存储在度量DB 280上的示例性信息集合。一般地,图3显示根据本发明的一实施例的列出从公共和/或私有云抽象的特性的清单300的示例性示意图。这些特性可被存储为度量DB 280的清单300内的条目。如所示出的,清单300内的第一条目描述了由涉及存储数据的服务(例如,Amazon)操作的云计算网络内的存储类型资源。该存储服务的可用性分数(99.9%)表示由图2的协调引擎230用于根据规则DB 270中的条件作出决定的一个度量。在一个实例中,可用性分数表示存储服务在没有断开连接或离线的情况下被期望可用的时间百分比。性能分数(123.456)被用于当计算容量(例如,GB/s或CPU)被指定为理想的标准时选择适当的服务。定价方案(每GB$0.02)一般是由存储服务因分配计算容量以远程地维护客户机的数据而收取的价格。
[0052] 此外,清单内的第二条目描述了由涉及主控应用的服务(例如,Windows Azure)操作的云计算网络内的主控类型资源。通常,应用跨在主控服务内的节点上运行的虚拟机来分布。相比于存储服务,主控服务被评估为具有更高的可用性分数,其对应于可由客户机进行的更大的可访问性。并且,第二条目的主控服务具有比存储服务更高的性能分数,其对应于更快的处理。最后,主控服务的定价方案(每小时$0.15)被与存储服务的方案不同地格式化。度量DB 208被配置为将不同的定价方案转换为标准化的方案,以允许存储服务和主控服务之间的比较。
[0053] 应当理解,云服务的其它特性可被抽象和存储在清单300中。例如,由主控服务使用的虚拟机的特征(其通常基于应用和操作系统特性)可在清单内描述,以确保主控服务将正确地适应客户机的应用的功能。从管理员提供的标准被用于通过比较该标准和条目来选择云。
[0054] 现在转向图4,显示了根据本发明的各实施例的列出由管理员提交的用于指导对公共和/或私有云的选择的条件或标准的清单400的示例性示意图。通常,清单400由图2的规则DB 270维护。如示出的,清单400包括两个条目:描述与数据存储有关的标准的第一条目;以及描述与在远程虚拟机上主控应用有关的标准的第二条目。尤其,客户机已经在第一条目内指定了第一重要性标准,其根据价格(例如,价格<=每GB$0.10)来管理对存储服务的选择,并且客户机已经在第二条目内指定了第二重要性标准,其根据停机时间的缺乏(例如,可用性>99.99%)来管理对用于主控应用的虚拟机的选择。因此,客户机被使得能够针对在公共云250处可用的不同类型的资源来选择变化的重要性标准。
[0055] 在操作中,例如,协调引擎230可针对图3的清单300中的度量来执行对图4的清单400中的标准的分析。作为分析的结果,协调引擎可选择适当的云以将其定为目标以用在场外(off-site)资源的使用被调用时。如示出的,当协调引擎寻求私有云数据的附加外部存储时,客户机已经指定定价标准应该低于每GB$0.10的阈值。度量指示Amazon云计算网络收取较高的每GB$0.20的费率,因此,它将不被考虑作为用于支持数据存储的候选。然而,当协调引擎寻求虚拟机的附加外部处理容量时,客户机已经指定可用性标准应该大于99.99%。
度量指示Windows Azure云计算网络提供99.999%的可用性,并且因此,它可能被考虑作为用于主控应用的候选。
[0056] 虽然已经描述了清单的各种不同的配置以及其中条目的类型,但是应当理解并了解,可使用用于维护云身份和它们各自的度量之间的映射的其它类型的合适的格式,并且本发明的各实施例不被限制为在此描述的清单300和400的示例性设计。例如,度量和标准可被存储在单个数据存储内的公共索引中。
[0057] 在各实施例中,协调引擎230可使用定义协调引擎将如何对匹配度量的标准加权的规则语言,其中加权的处理(例如,将变化的重要性附加到各个标准)管理哪个公共云(例如,云I 251、云II 252和/或云II I 253)被定为用于提供图2的私有云210的资源的目标的决定。在一个实例中,规则语言还可帮助定义由协调引擎在关于度量执行对标准的分析时使用的规则。例如,规则可管理哪些标准是绝对的(必须被云的度量满足以认为其是用于主控的候选)以及哪些标准是任选的(对云而言是理想的特性,但不妨碍考虑)。
[0058] 在一些实例中,规则由协调引擎230自动地设置。例如,协调引擎230可建立将任何位于目前正在遭受政治冲突的国家内的云从考虑中移除的规则。这些被自动设置的规则通常本质上是拱形(overarching)的并覆盖由客户机或其他用户输入的规则。作为示例,如果客户机的应用被编写为在联网环境内行动并且客户机手动地设置强调高级别安全性的规则(例如,实施受限访问)而协调引擎230自动地设置允许第三方来监控客户机的应用的状态以确保遵守云协议的规则,那么冲突是通过有利于协调引擎的规则来解决的。
[0059] 在其他实例中,规则可由客户机手动地设置。例如,客户机可建立将一个度量标识为绝对的而将其它指定的度量标识为任选的规则。在一个示例中,如果客户机表示金融机构,那么增强敏感帐户信息的安全性的绝对规则可被手动地设置,从而规定帐户信息仅能由被授权并验证来访问帐户信息的客户查看。在另一示例中,如果客户机表示装置制造者,那么可建立对数据的访问的可靠性的绝对规则可被手动地设置,从而规定数据在各种时刻对各种用户是一致的且容易可用的。由此,规则允许客户机对标准进行加权和/或将标准排序成分层结构(例如,强调安全性或可靠性),同时也允许客户机将规则指定为绝对的或仅仅任选的。因此,规则一旦被设置就根据标准来管理数据和/或应用要如何被管理。
[0060] 虽然已经描述了规则的各种不同的配置以及它们影响标准的方式,但是应当理解并了解,可使用用于将重要性分配给标准的其它类型的合适的用户指定的或系统指定的方案,并且本发明的该各实施例不限于用于排序、加权、设置为绝对以及设置为任选的示例性规则。例如,影响用于选择虚拟机的标准的一组规则可被附加到客户机的应用,而影响选择云内的存储位置的标准的另一组规则可被附加到客户机的数据。
[0061] 返回图2,现在将讨论驻留在私有云210上的抽象层220(例如,软件开发工具包)。如示出的,抽象层220包括一般用作中介来提供的各种接口,客户机205可通过该中介与驻留在主题云240上的协调引擎230来交互,该主题云可与私有云210相关联或不与私有云210相关联。这些各种接口包括但不限于以下:规则接口221、资源管理接口222以及标准接口
223。
[0062] 在一实例中,规则接口221和标准接口223允许顾客分别编程地定义规则和标准,以供协调引擎230在选择候选云时观察,进而导致提供匹配客户机205所规定/希望的条件的所选云上的资源。接口221和223的操作将参考图5中描述的用于促进对云的选择的方法来在以下更完整的讨论。在另一实例中,资源管理接口222如以下机制操作:该机制允许客户机205透明地与从公共云250中选择的目标云进行交互、而不执行命令的详细转换或学习外部数据中心的协议。因此,抽象层220中的资源管理接口222用作由公共云250使用的协议库,并附加地,用作使用该库来自动地将客户机的命令转换成适当的语言和格式的翻译器。因此,资源管理接口222能够接受抽象指令,诸如增加/减少外部文件存储容量,而不需要实际的云实现的任何特定知识。
[0063] 如以上简要描述的,代理260、265和275被赋予以下任务:该任务周期性地贡献被馈送至度量DB 280中的信息以更新协调引擎230可访问的度量(例如,图3的清单300的条目)。在一实例中,度量是从公共云251-253中个别地提取的。在另一实例中,度量可从其它源(诸如主题云240、私有云210等)中挖掘以将这些其它源考虑为用于主控客户机的数据和/或应用的候选。由代理260、265和275爬行的精确源可由客户机205手动地确定或由系统自动地建立。在自动地建立要被爬行的源的一个实施例中,可生成数据库方案以导出从源中收集的信息的位置和身份。
[0064] 一般地,代理被分配分开的角色,这些分开的角色包括要收集并提交给度量DB 280的互斥的信息。例如,定价代理260可被分配从不同的源动态地收集定价信息的角色。在特定示例中,定价代理260可被指向各种在线位置(例如,URL地址)并可被编程地配置为从通过导航到在线位置所到达的云中检索定价信息。如示出的,定价代理260被指向分别与公共云I 251、公共云II 252以及公共云III 253相对应的三个在线位置。定价代理260可用管理如何与公共云251-253进行接口的参数来实例化。此外,定价代理260可用管理何时与公共云251-253联系的参数来实例化。例如,定价代理260可被编程为以预定的间隔来从被指定为候选云的公共云251-253中收集特定信息。在各实施例中,协调引擎230负责实例化和管理定价代理260的参数,而客户机205通常被使得能够更改定价代理260的配置设置,以符合例如规则DB 270内的一个或多个规则。
[0065] 一旦被收集,由定价代理260收集的定价信息就被报告回度量DB 280。该定价信息被用于更新度量DB 280的记录以向协调引擎230提供在作决定时要被考虑的最新的数据。在被最新的数据替换后,过时的定价信息就可从度量DB280中除去。此外,度量DB 280可被配置为对定价信息进行分类和过滤以供协调引擎230更容易的使用。
[0066] 虽然已经详细描述了被编程为从公共云251-253中检索定价信息(例如,期望的使用费用)的定价代理260,但是本发明的各实施例构思了各种与公共云250进行交互(例如,直接交谈或通过API)并收集可被认为对评估云有用的各种其它信息的其它代理。类似于定价代理260,这些其它代理可被编程为通过爬行公共云251-253来从公共云251-253中动态地收集信息(例如,特性、属性、特征等)并将所收集的信息报告给度量DB 280。在一个实例中,代理可包括被编程为分别测量由公共云251-253施加的安全性级别的安全性代理265,和/或被编程为分别测量由公共云251-253支持的可用性级别的性能代理275。
[0067] 虽然已经为代理260、265和275描绘了数据收集的各种特定速率(例如,每分钟10次扫描),但是应当理解并了解,本发明的各实施例考虑用于从代理260、265和275爬行的云中收集信息的任何类型的时间基础。例如,客户机205与抽象层220的某些交互可驱使协调引擎230要求代理260、265和275更新度量DB 280。
[0068] 此外,虽然在主题云240上被描绘(该主题云240是与主控协调引擎230相同的云),但是代理260、265和275可被定位在任何私有或公共云上。例如,如果代理260、265和275开始消耗过多资源,那么它们可被移动到公共云250的一个或多个。
[0069] 反馈机制235通常被配置成评估协调引擎230的决定以访问目标云是否满足由客户机205指定的容易被选择使用的标准。在各实施例中,由反馈机制235执行的评估包括各种步骤,诸如以下:查看协调引擎230过往的决定;自评估这些决定的影响以提升性能;以及将自评估的结果应用到规则DB 270。因此,反馈机制235自动地建立或修改规则以从这些如期望那样可靠的标准中过滤伪造的标准。由此,反馈机制235能改编(adapt)规则来对标准重新加权以及因从公共云251-253中得出的某些信息持久地不准确而不考虑这些信息以真实地实现想要的结果。
[0070] 协调引擎
[0071] 协调引擎230一般表示能够以无缝方式管理和平衡云提供两者(公共和私有)的使用的智能软件组件。在各实施例中,协调引擎230可被提供为私有云方案的一部分(被安装为私有云210处的装置内的特征),或如图2示出的,位于主题云240内的客户机205的远程。此外,协调引擎230可被划分或再现在两个或更多个数据中心上。在操作中,协调引擎230无缝地执行两个互补的功能:根据度量来基于客户机205提供的规则来作出决定;以及跨云
210、240和/或250来提供帐户并同时保持跟踪结果/历史以供将来分析和优化(例如,利用反馈机制235)。
[0072] 关于以上的第一功能,协调引擎230可被设计为决定公共云250中的哪些公共云被认为是候选云以及将候选云中的一个或多个选择为用于主控客户机的帐户信息的目标云。在各实施例中,决定公共云250中的哪些公共云要被认为是候选云的过程包括访问规则DB 
270来根据规则检测标准以及访问度量DB240来检测度量(例如,公共云250特有的特性)。通常,检测包括访问具有根据数据库方案来组织的信息以促进其方便发现的DB 270和280,以及从DB270和280中检索适当的信息。在各实施例中,从公共云250中选择目标云的过程涉及根据所检索的信息与通过规则被加权/修改的标准的比较来选择目标云,其中被定为目标的云展示基本上满足标准的度量。在选择目标云后,协调引擎230就可被进一步配置用于向目标云发送启动与被定为目标的云的交互以及分派计算资源以用于主控客户机的帐户的至少一部分的请求。
[0073] 关于以上第二个功能,协调引擎230能够管理客户机在被定为目标的云上的活动。在一个实例中,这种管理客户机的活动的方式允许客户机205在请求内提供命令,命令是由一般地描述私有云210要与基于云的平台(例如,云240和250)进行的交互的抽象信息组成的。这些请求可被发出和实现,而不需要客户机205跟踪和/或分析系统的每日操作的低级细节。由此,协调引擎230将客户机205从理解每个API的实现中解放出来,其中每个API通过资源管理接口222监控私有云210和云计算平台之间正在进行的事务。换言之,客户机205不必要提前具有关于应当在哪里寻址新的数据以及旧的数据存储在哪里的知识。相反,客户机205仅负责生成针对使用资源的非云特定的请求,其中请求包括以抽象方式形成的命令。
在各实施例中,协调引擎230还协助客户机205只要公共云250满足其目标就充分利用公共云250的能力,而不分发私有云210的正常操作。
[0074] 在调用允许客户机205提供具有抽象格式的命令的过程后,协调引擎230任选地在后台作出当作出影响客户机的帐户的确定时应用命令的智能决定。这些智能决定一般是基于规则的并可基于对规则的手动和/或自动修改来配置。例如,规则可规定协调引擎230在动态地处理进来的客户机请求时迭代地使用不同的度量来确定公共云250中的哪个最好地满足该请求。
[0075] 现在将讨论协调引擎230的一个示例性使用。假定客户机205是具有出售备用方案的业务的公司并假定公司对存储的使用可能是高的且不可预知的,公司将可能受益于充分利用公共云的弹性。最初,该公司可在对私有云210而言本地的应用处设置协调引擎230。或者,公司可获取另一主控协调引擎230的云的服务。
[0076] 一旦获取对协调引擎230的访问,公司就可通过分别经由抽象层220的规则接口221和标准接口223来设定规则和标准来配置协调引擎230。当设定标准时,公司可主要地选择最低价格。协调引擎230将了解被指定为候选云(例如,公司标识的它们可能愿意使用的云)的公共云250的当前价格。此外,公司可提交用于运行私有云210的操作费用(即,维护成本)以将其考虑为候选云之一。
[0077] 在某个稍后时刻,公司可发出对用于新生成的数据的某个GB数量的存储的请求。在请求发出的时刻,协调引擎230将尝试找到最便宜的候选云。一旦最便宜的候选云被发现,其被指定为目标云并被提供对如在请求中传达的公司的数据存储需求进行服务。此外,在各实施例中,协调引擎可返回表示被放置在目标云上的存储帐户的令牌。当发出读取/写入命令来影响存储帐户内的数据时,公司可使用令牌来通过抽象层220调用存储帐户。协调引擎使用令牌来标识目标云并将读取/写入命令翻译成目标云的本机命令。因此,公司的标识请求内的目标云以及翻译内嵌在请求内的命令的职责是由协调引擎230承当的。
[0078] 此分布式计算环境200只是可以被实现以实现本发明的各方面的合适的环境的一个示例,而非旨在对本发明的使用范围或功能提出任何限制。所示的分布式计算系统200的示例性系统体系结构也不应该被解释为具有涉及如图所示的组件220、230、235、260、265、270、275以及280中的任何一个或组合的依赖性或需求。在某些实施例中,组件220、230、
235、260、265、270、275以及280中的一个或多个可被实现为独立设备。在其它实施例中,可将组件220、230、235、260、265、270、275以及280中的一个或多个直接集成到云210、240或
250的一个或多个中。本领域普通技术人员可以理解,图2所示的组件220、230、235、260、
265、270、275以及280在本质和数量上是示例性的,并且不应被解释为限制。
[0079] 因此,可以采用任何数量的组件来实现本发明的各实施例的范围内的所需功能。尽管为了清楚起见用线条示出了图2的各组件,但是在实际上,各组件的轮廓并不是那样清楚,并且按比喻的说法,线条更精确地将是灰色的或模糊的。此外,虽然将图2的某些组件示为单个框,但是这些描述在本质和数量上是示例性的且不应被解释为限制(例如,虽然仅示出一个私有云,多得多的私有云可通信耦合到协调引擎230)。
[0080] 促进对云的选择的方法
[0081] 现在转向图5,显示了根据本发明的一实施例的示出被用于促进对公共和/或私有云的选择的分布式计算环境500的框图。如示出的,计算环境500包括图2的计算环境200的各方面,其中类似的附图标记表示基本上类似的组件。此外,计算环境500将在图7的流程图的上下文中讨论,其中流程图显示用于根据本发明的一实施例的用于根据从管理员510提供的标准将工作负载分配给一个或多个候选计算机网络的总体方法700。尽管术语“步骤”和“框”可在以下用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。
[0082] 最初,管理员510(客户机的IT部门的雇员)可注意到企业的私有云210在应用的使用方面产生了显著的增加,由此,引起对主控提供虚拟机的服务的需要。如在框710中指示的,管理员510可通过抽象层220向协调引擎230发出针对资源的请求530。在一个实例中,该请求530可以针对六个月项目的计算资源的100兆兆字节。
[0083] 如在框720指示的,管理员510可进一步分别通过规则接口221和标准接口223在请求内提供规则520和标准525。在提供标准525的一个实例中,管理员510可访问与抽象层220协作的交互应用,该交互应用呈现GUI,管理员可在该GUI中提交针对计算容量的伴随有标准525的请求。通常,标准525指定最优公共云的客户机偏好的特性。作为示例,伴随标准525可指示低定价是最关键的,而其它标准525(诸如高安全性以及高性能需求)是理想的但是是任选的。
[0084] 在将请求530发送到协调引擎230后,如框730中指示的,协调引擎230就可根据度量DB 280中的度量来执行对标准525的分析。在一示例性实施例中,分析的过程包括实现以下步骤:访问度量DB 280处的度量(参见框740)以及将标准525与度量进行比较(参见框750)。在各实施例中,协调引擎230可通过将来自规则DB 270规则520应用到标准度量525来考虑度量。如框760中指示的,部分基于该比较,候选云中的至少一个公共云被定为目标。一般地,被定为目标的计算机网络展示出满足标准525的度量。
[0085] 在某个稍后时刻,如框770中指示的,启动与被定为目标的计算机网络的交互。该交互可提供满足请求的目标云上的帐户。在提供帐户后,协调引擎230就可向管理员510返回URL、API和/或具有凭证的令牌,该具有凭证的令牌允许对目标云上的帐户进行读取和写入(即,认证访问)而不需要管理员510创建语言转换机制来与帐户进行接口。由此,协调引擎230不必要向管理员510指示目标云的身份。在操作中,令牌表示目标云内被分派给私有云210的那些虚拟机的IP或MAC地址列表以及需要用于访问虚拟机的凭证。通过使用该令牌,管理员被使得能够远程地登录到所分派的虚拟机并通过启用角色的实例和/或安装附加的资源来继续设置它们。此外,当管理员510不再使用目标云上所分派的虚拟机时,令牌可被用于请求取消服务并停止对它们产生收费。
[0086] 从以上讨论的示例性标准525中的多样性可明显的得出,对于每个管理员510而言没有特定的云配置在各个方面都是理想的。也没有一个云配置展示每个管理员510请求的特征,其中不同的云配置在不同的领域中擅长。因此,协调引擎230通常被编程来跟踪多个用于作出哪些云的资源要使用的最优决定的公共云参数。以下是示例优化的情况。
[0087] 协调引擎230可针对边缘情况优化。假定服务提供者操作一组候选云X、Y和Z。如果与候选云X相关联的服务提供者在涉及边缘高速缓存和内容递送时被确定为是类中最好的,那么来自管理员510的请求将被路由到候选云X而非候选云Y或Z。如在此使用的,短语“边缘高速缓存”指在主要用户组的邻近范围内维护内容(例如,日本的顾客想要东京而非洛杉矶附近的媒体的副本,使得它能被更快地播放)。
[0088] 协调引擎230可针对定价情况优化。假定候选云X的服务提供者收取$1/GB而与候选云Y和Z相关联的服务提供者在具有同样可靠性的情况下收取$0.50/GB。在定价情况下,协调引擎230可将针对存储的请求路由到候选云Y或Z而非候选云X。与此同时,图2的定价代理260可作为自动化的服务来将协调引擎230关于候选云X、Y和Z的各种定价方案保持为最新。
[0089] 此外,定价情况可将行为编程进入规则520中,使得当使用候选云Y和Z(例如,图2的公共云250)是更划算时私有云210的部分可不被使用。由此,公共云可被充分利用来在私有云210上分派空间以对被指定为要内部存储的敏感信息的突然增加作出反应。通过这种方式,私有云210与被监控的任何其它云一样多地被协调引擎230考虑为候选
[0090] 协调引擎230可针对备份情况优化。假定管理员510在规则520中指示组织重视可靠地备份重要数据。此外,规则520指定数据要被冗余地存储在候选云X、Y和Z中的两个或更多个候选云上,以提供防止数据丢失的最大保证。在该备份情况中,协调引擎230的决定可针对多个云上的冗余性来优化。
[0091] 协调引擎230可针对可靠性情况优化。在可靠性情况中,协调引擎230可跟踪其作出的各种选择(诸如优于候选云Y挑选了候选云X)的可靠性历史。协调引擎230可接着分析可靠性历史来检测从候选云X和Y中提取的度量(诸如性能、可靠性等)中的改变。通过使用该分析,当处理管理员的数据时,协调引擎230可基于候选云X和Y的实际可靠性和性能来调整它将来的决定以更好地优化可靠性。
[0092] 协调引擎230可针对转售商情况优化。在管理员510被商业模型引导的情况下,其中公司的销售部分来于在私有云210结合其它公共云上主控外界顾客。一般地,公司的第三方顾客不关心他/她的数据被主控在哪里的细节,只要标准525被达到一定级别的安全性和可靠性。所以,在转售商情况中,公司可采用协调引擎230来用作经纪人并借用(piggyback off)其它公共云,同时定价竞争和监控容量来生成可观的收入。通常,这种类型的公司将许可该协调引擎230软件来帮助运行它的业务。
[0093] 用于促进云之间交互的方法
[0094] 参考图6,显示了根据本发明的一实施例的示出被用于促进公共和/或私有云之间的交互的分布式计算环境600的框图。如示出的,计算环境600包括图2的计算环境200的各方面,其中类似的附图标记表示实质上类似的组件。此外,计算环境600将在图8的流程图的上下文中讨论,其中流程图显示用于根据本发明的一实施例的用于将工作负载分发给私有企业网络外部的一个或多个公共计算网络的总体方法800。
[0095] 最初,方法800包括接收从私有企业网络或私有云210的用户610发出的更新被主控(hosted)在公共计算网络上的帐户信息的请求(参见框810),以及从公共计算网络250中标识负责主控帐户信息的目标网络(参见框820)。在各实例中,如框830指示的,可从请求620中提取一个或多个命令。作为示例,命令部分表示用于实现更新的指令。如在框840处指示的,当与外部源进行交互时,命令可被翻译成符合由目标网络观察到的规则语言的格式。
此外,如在框850处指示的,经翻译的命令630可被分发到与目标网络相关联的计算资源,这些计算资源被指定为实现对帐户信息的更新。
[0096] 参考各具体实施例描述了本发明的各实施例,各具体实施例在所有方面都旨在是说明性的而非限制性的。在不背离本发明范围的情况下各替换实施例对本发明的各实施例的所属领域的普通技术人员将变得显而易见。
[0097] 从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该系统和方法是显而易见且固有的其他优点。可以理解,某些特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下使用。这由权利要求所构想的,并在权利要求的范围内。