用于大规模媒体云的分布式映射功能的制作方法

文档序号:6497068阅读:146来源:国知局
用于大规模媒体云的分布式映射功能的制作方法
【专利摘要】本文件涉及云计算。特别地,本文件涉及用于云计算的方法和系统,其实现应用组件在云内的有效率的且灵活的放置。描述了一种被适配用于分布式云计算的计算设备(101)。该计算设备定位在第一拓扑区域中;该计算设备(101)包括拓扑列表(602),该拓扑列表(602)指示分别定位在与第一拓扑区域(102)不同的多个拓扑区域(102)中的多个参考计算设备;该计算设备(101)包括本地资源列表(601),该本地资源列表(601)指示该计算设备(101)的可用计算资源以及定位在该计算设备(101)的邻域中的至少一个邻近计算设备(101)的可用计算资源;在接收到针对应用(700)的组件(703)的组件放置请求时,该计算设备(101)被适配为,基于该拓扑列表(602)来确定该组件(703)是将要被放置在第一拓扑区域(102)中还是将要被放置在与第一拓扑区域(102)不同的该多个拓扑区域(102)中的一个拓扑区域中;如果确定该组件(703)将要被放置在与第一拓扑区域不同的该多个拓扑区域中的一个拓扑区域中,则将该组件放置请求传递给与第一拓扑区域不同的该多个拓扑区域中的相应拓扑区域的参考计算设备;如果确定该组件(703)将要被放置在第一拓扑区域(102)中,则从该本地资源列表(601)中识别具有用于执行所述应用的该组件的计算资源的所选择的计算设备。
【专利说明】用于大规模媒体云的分布式映射功能
【技术领域】
[0001]本文件涉及云计算。特别地,本文件涉及用于云计算的方法和系统,其实现应用组件在云内的有效率并且灵活的放置。
【背景技术】
[0002]因特网正在改变用户如何消费媒体的方式。由因特网技术使能,该演进正在快速地朝向如下的点移动:允许用户无论何时想要、无论在何处需要以及在任何偏好的设备上享受媒体服务,如现场3D广播、现场事件的时移观看或者视频点播。甚至更多地,在因特网中,用户将不仅是观看者还是沉浸的参与者。基于web的服务是用于整个类的新个性化以媒体为中心的应用(如实时地对多媒体内容的海量共享或者沉浸式多媒体通信)的催化齐U。这些服务将不被实现为纯内容流,而是被实现为将在适当的时间、位置和格式提供所请求的数据的媒体处理功能的经编排的流。随着高清晰度视频格式的引入,所传送的数据量将超过在数据转换过程中的编码构建的大小。因此,以智能的方式将服务组件放置在分布式服务基础设施上将提供一种方式来增大未来因特网基础设施的缩放。换句话说,随着所传送的数据量的增长,可能变得更有效率的是,将分布式应用的SW组件转移并且放置在云网络内的适当位置。

【发明内容】

[0003]本文件解决提供计算设备(也被称为节点)的云的技术问题,这些计算设备实现了服务/应用组件的有效率并且灵活的放置。
[0004]根据一个方面,描述了一种被适配用于分布式云计算的计算设备(也被称为计算节点或节点)。该计算设备定位在第一拓扑区域中。通常,包括多个这样的计算设备的分布式云(在本文中被称为媒体云)被划分为多个拓扑区域(其可以进一步细分为一个或多个分区)。该计算设备包括拓扑列表,该拓扑列表指示分别定位在与第一拓扑区域不同的多个拓扑区域中的多个参考计算设备。换句话说,该计算设备持有拓扑列表,该拓扑列表提供定位在该分布式云的其他区域(或者分区)中的每个区域内的至少一个参考计算设备的指示(例如,网络标识符)。该拓扑列表可以包括每个其他区域(或者分区)的一个或两个参考计算设备。通常,从分区内的计算设备的可用列表中随机地选择这些参考计算设备,以便确保每个计算设备具有对该分区的不同锚点,由此去除了单点的故障。
[0005]该计算设备包括本地资源列表,该本地资源列表指示该计算设备的可用计算资源以及定位在该计算设备的邻域中的至少一个邻近计算设备的可用计算资源。该计算设备的邻域可以由该至少一个邻近计算设备所需要满足的一个或多个邻域条件来定义。该一个或多个邻域条件可以包括该计算设备与该至少一个邻近计算设备之间的最大往返时间。备选地或者另外地,该一个或多个邻域条件可以包括该至少一个邻近计算设备定位在该第一拓扑区域内(即,在同一拓扑区域内)的条件。
[0006]在接收到针对应用的组件的组件放置请求时,该计算设备被适配为(仅)基于该拓扑列表来确定该组件是将要被放置在第一拓扑区域中还是将要被放置在与第一拓扑区域不同的多个拓扑区域中的一个拓扑区域中。通常,组件放置请求包括与该组件/应用的信宿或信源的优选位置有关的信息。作为示例,与该组件的信宿或信源的优选位置有关的该信息可以从该特定组件以及该特定组件与之相互作用的该应用的其他组件的要求的描述导出。该计算设备可以将该优选的位置与它自己的位置以及媒体云的拓扑区域的位置相比较。
[0007]如果确定该组件将要被放置在与第一拓扑区域不同的多个拓扑区域中的一个拓扑区域中,则该计算设备被适配为将该组件放置请求传递给与第一拓扑区域不同的多个拓扑区域的相应拓扑区域的参考计算设备。换句话说,如果确定另一个拓扑区域更接近于该优选位置,则该放置请求被传递给该另一个拓扑区域的参考计算设备(或者传递给参考计算设备之一),其中该参考计算设备(即,对该参考计算设备的指示)被从该计算设备的拓扑列表中取得。如此,该计算设备被适配为基于它的拓扑列表来执行拓扑管理任务,而不需要咨询另一个计算设备或者更高级别的网络管理实体。换句话说,该拓扑管理任务由该计算设备自主地执行。
[0008]如果确定该组件将要被放置在第一拓扑区域中,则该计算设备被适配为从本地资源列表中识别所选择的计算设备,该所选择的计算设备具有用于执行该应用的该组件的计算资源。换句话说,如果该计算设备确定该组件的优选位置位于第一拓扑区域内(或者该计算设备的分区内),则该计算设备基于它的本地资源列表内可用的资源信息来执行资源管理任务,而不需要咨询另一个计算设备或者更高级别的网络管理实体。这意味着该拓扑管理任务由该计算设备自主地执行。
[0009]该计算设备可以被适配为从该至少一个邻近计算设备接收与该至少一个邻近计算设备的计算资源有关的信息。这个信息可以由(多个)邻近计算设备推送(例如,以定期的方式)。备选地,该计算设备可以从(多个)邻近计算设备拉取这个信息(例如,以定期的方式)。这确保了该本地资源列表被维持为最新,以便执行资源管理任务。应当注意,来自该至少一个邻近计算设备的与一个或多个邻近计算设备的计算资源有关的该信息,可以与关于所存储的信息的可靠性的类别或指示相关联。所存储的信息的可靠性可以随着自该信息已经被接收以来所流逝的时间量而减少。作为示例,第一类别可以指示关于这些计算设备的确切(及时)的信息,第二类别可以指示较不确切(即,部分过时)的信息,等等。
[0010]该计算设备可以被适配为接收被包括在第一拓扑区域内的第一计算设备的列表。第一计算设备的该列表可以是被包括在第一拓扑区域内的所有计算设备的总列表。这个列表可以在由该计算设备请求时被接收(例如,在该计算设备的初始化阶段)。该计算设备可以被适配为针对本地资源列表从第一计算设备的该列表中选择多个邻近计算设备。邻近计算设备的数量可以限制为预定数量。邻近计算设备的数量可以小于被包括在第一计算设备的该列表内的第一计算设备的数量。
[0011]该计算设备可以被适配为,基于这些第一计算设备的计算资源和/或基于该计算设备与这些第一计算设备之间的链路的带宽和/或基于该计算设备与这些第一计算设备之间的往返时间,来选择多个邻近计算设备。作为示例,可以基于所选择的计算设备的链路的链路负荷或链路占用,来选择多个邻近计算设备。如此,该计算设备可以被适配为依据第一计算设备的该列表来构建本地资源列表。这可以在初始化阶段执行。另外,该计算设备可以被适配为用来自第一计算设备的该列表的新的邻近计算设备来替换本地资源列表中的邻近计算设备,由此使本地资源列表(以及资源管理任务)适应媒体云内的改变。
[0012]如上面所指出的,拓扑区域可以被细分为一个或多个分区。在这种情况中,拓扑列表可以指示定位在该多个拓扑区域的一个或多个分区中的多个参考计算设备。此外,该计算设备的本地资源列表可能被限制于来自与该计算设备同一分区的邻近计算设备。
[0013]该计算设备可以包括用于执行应用的组件的执行环境。该执行环境可以提供用于执行该组件的处理器容量和存储器容量。另外,该执行环境可以提供用于接收和发送由该组件处理的数据的发送和接收容量。计算设备的计算资源可以是以下各项中的任何一项或多项:该计算设备的处理器资源、该计算设备的存储器资源、到该计算设备的链路的带宽、以及用于与该计算设备的通信的往返时间。
[0014]根据另一个方面,描述了一种用于云计算的分布式网络。该分布式网络在本文件中被称为媒体云。该网络包括在该媒体云的第一拓扑区域中的第一多个计算设备,以及在该媒体云的第二拓扑区域中的第二多个计算设备。第一和第二多个计算设备可以如在本文件中所概述的而被设计。特别地,第一和第二多个计算设备包括对应的第一和第二多个拓扑列表。换句话说,这些计算设备中的每个计算设备包括对应的拓扑列表。第一多个拓扑列表指示第二多个计算设备中的对应第一多个参考计算设备,并且反之亦然。特别地,第一多个参考计算设备可以是对第二多个计算设备的随机选择,并且反之亦然。作为结果,单点故障的风险被减少。
[0015]该分布式网络可以进一步包括分别在第一和第二拓扑区域中的第一控制器节点和第二控制器节点。第一和第二控制器节点可以分别提供对第一和第二多个计算设备的指示。第一和第二控制器节点可以被集成在该媒体云的相应计算设备内。第一和第二控制器节点可以由这些计算设备中的每个计算设备访问,以便使得这些计算设备能够构建它们的拓扑列表以及它们的本地资源列表。第一和第二控制器节点可以分别具有被包括在第一和第二拓扑区域内的计算设备的完整视图。如此,计算设备可以为它的本地资源列表以及为它的拓扑列表选择适当的邻近计算设备以及代表计算设备。此外,第一控制器节点可以提供对第二控制器节点的指示,并且反之亦然,由此使得第一拓扑区域的计算设备能够访问第二控制器节点。
[0016]通常,第一和第二多个计算设备中的每个计算设备都包括本地资源列表,该本地资源列表指示相应计算设备的邻域中的预定数量的邻近计算设备的计算资源。如此,第一和第二多个计算设备中的每个计算设备被适配为,独立于第一和第二多个计算设备中的其他计算设备,(仅)基于它的本地资源列表并且基于它的拓扑列表来处理组件放置请求。换句话说,该媒体云内的这些计算设备可以独立于该媒体云内的其他计算设备地处理组件放置请求(基于被包括在它的本地资源列表内以及它的拓扑列表内的有限资源和拓扑信息)。
[0017]根据进一步的方面,描述了一种用于在计算设备的分布式网络中放置应用的组件的方法。这些计算设备可以如本文件中所概述的而被设计。该方法包括在第一拓扑区域中的第一计算设备处接收组件放置请求。该方法行进至,基于第一计算设备的拓扑列表来确定该组件是将要被放置在第一拓扑区域中还是将要被放置在与第一拓扑区域不同的多个拓扑区域中的一个拓扑区域中。如果确定该组件将要被放置在与第一拓扑区域不同的多个拓扑区域中的一个拓扑区域中,则该组件放置请求被传递给与第一拓扑区域不同的多个拓扑区域的相应拓扑区域的参考计算设备。如果确定该组件将要被放置在第一拓扑区域中,则从第一计算设备的本地资源列表中识别具有用于执行该应用的该组件的计算资源的所选择的计算设备。
[0018]应当注意,所选择的计算设备可以接收组件放置请求,并且它自己可以从所选择的计算设备的本地资源列表识别具有用于执行该应用的该组件的计算资源的另一个计算设备。为了确保收敛,组件放置请求去往来自本地资源列表的另一个计算设备的传递可以服从于改进条件,例如可以施加:由另一个计算设备所提供的计算资源以预定量(例如,20% )超过本地资源列表的根节点的计算资源。
[0019]如上面所指出的,组件放置请求可以包括与该组件或该应用所处理的数据的信宿或信源的位置有关的信息。用于放置该组件的拓扑区域可以基于该信源的该信宿的位置来确定。
[0020]该方法可以包括:在初始化阶段期间,使用Vivaldi算法来确定该分布式网络的这些计算设备的相对位置,并且使用Meridian算法将这些计算设备聚类成第一拓扑区域以及聚类成与第一拓扑区域不同的多个拓扑区域。
[0021]根据进一步的方面,描述了一种软件程序。该软件程序可以被适配用于在处理器上执行并且用于当在计算设备上被执行时执行在本文件中所概述的方法步骤。
[0022]根据另一个方面,描述了一种存储介质。该存储介质可以包括软件程序,该软件程序被适配用于在处理器上执行并且用于当在计算设备上被执行时执行在本文件中所概述的方法步骤。
[0023]根据进一步的方面,描述了一种计算机程序产品。该计算机程序可以包括用于当在计算设备上被执行时执行在本文件中所概述的方法步骤的可执行指令。
[0024]应当注意,如在本文件中所概述的包括其优选实施例的方法和系统,可以独立地被使用或者与本文件中所公开的其他方法和系统相结合地被使用。此外,在本文件中所概述的方法和系统的所有方面可以任意地组合。特别地,权利要求的特征可以以任意方式相互组合。
【专利附图】

【附图说明】
[0025]下面以示例性的方式参考附图来解释本发明,其中:
[0026]图1示出了云内的计算节点的示例布置;
[0027]图2示出了云内的计算节点的示例分区成组;
[0028]图3图示了多个计算节点的分区成组的示例表示;
[0029]图4示出了计算节点的示例框图;
[0030]图5图示了示例资源和拓扑图形;
[0031]图6图示了作为计算节点的示例存储器表格的图5的图形;
[0032]图7图示了应用的示例组件;以及
[0033]图8图示了资源图形的示例优化过程。
【具体实施方式】[0034]直到现今,网络中增长的输运容量需求主要借助于通过技术突破或者安装新的基础设施元件的网络中的增强安装带宽来实现。但是存在大量的关注在于:受制于增长的容量需求的网络的这种演进不能被期待持久在至少合理的成本。随着未来的网络增强变得越来越具有挑战,存在对于满足增长中的容量需求的备选方法的需要。一种处理对于网络容量的增长中的需求的良好建立的方法是向网络添加“更高层”智能。所添加的“更高层”智能旨在减少总体业务量,因此例如通过使业务量局部化来增强可用的输运容量。“更高层”的这个概念的第一处成功是内容递送网络(CDN)的引入。CDN基本上使得(媒体)服务的海量规模采用能够包括在因特网中的广播递送特性。
[0035]然而,对于个性化媒体流存在一种新兴趋势,其中这些媒体流需要在因特网中(即,在云中)的某处经历处理,由此实现例如朝向个性化“多视图”视频服务的IP-TV(参见例如,Ishfaq AhmadZiMult1-View Video:Get Ready for Next-Generation Television,,,IEEE分布式系统在线,2007年卷8编号3,文章编号0703_ο3006)的演进,或者实现基于如“OnLive” (参见例如OnLive, http://www.0nlive.com/)的游戏服务的云。尽管CDN被构建用于将同一内容有效地递送给多个接收器,对需要在网络内处理的个体化内容流的新趋势正在挑战因特网基础设施。
[0036]现今的应用和对应的云基础设施通常以如下的方式被设计:数据通过网络朝向应用被执行的专用位置(即,数据中心)而移动。将这种云计算范式保留在未来的因特网设计中将导致巨量的业务流需要被输运至用于媒体流的处理功能所在的“任意”数据中心。在本文件中提出了改变在所指定的数据中心处的集中化应用处理的这种范式。特别地,提出了一种智能基础设施,其根据应用要求来促使应用或者应用的部分的移动。这样的方案能够通过使业务量局部化而卸载来自网络的不必要的“长距离”业务流,并且因此将帮助克服在未来网络中的输运容量的有限可用性的问题。
[0037]即使利用先进的云基础设施,将计算基础设施卸载到因特网中已经变为一种商品。云计算供应商(如亚马逊EC2、Rackspace或者微软Azure)将它们的基础设施或者平台提供为一种服务,提供如自动化可扩缩性以及瞬时部署的特征,这支持对于如Facebook或Animoto的基于因特网的服务的非常动态的需求。
[0038]然而,现今的方法具有显著的成本:现今的方法增加了核心网络上的总体负荷,因为替代将业务量保持在本地,更多的业务量被路由至(由云计算供应商所提供的)集中化数据中心。集中化数据中心处理该数据并且将它发送回到请求者。尽管这对于传统的基于请求/响应的web服务看起来是可行的,但是这种集中化的方法可能打破用于以海量媒体为中心的实时应用(如个性化多视图视频绘制)的实际因特网架构的设计。
[0039]提出了使因特网嵌入直接支持面向计算范式的服务的固有能力,其使得开发者和终端用户能够在所集成的网络和计算基础设施上执行它们的个性化应用。
[0040]自主服务应当是从其能够构建这样的应用的组件。自主服务不应当被绑定至由该机器上的它们的物理实例化所寻址的特定主机基础设施硬件,而是应当变为可移动的对象,这些可移动的对象能够被动态地部署在分布式计算资源上并且被搭配给数据流的信源与信宿之间的数据流。
[0041]自主服务可以利用这些服务的良好定义的抽象模型,以便如果工作流或背景条件改变则实现服务与潜在适配的动态合成或者服务的重定位。服务组件的松散耦合应当实现按需服务工作流的相互连接,并且应当促进通过修改服务合成向用户提供同一相关数据所需要的工作流的适配(假定服务和它们的接口具有一些语意服务描述)。
[0042]从用户的视角,云通常表现得像集中化服务器。但是,该云通常以一致的方式来利用自由资源的聚合式或分布式集合。通过监测计算负荷和网络资源,有可能动态地放大和缩小实例,并且管理网络负荷而不必然在数据路径上应用QoS(服务质量)管理机制。
[0043]尤其是在媒体应用中,这样的组件能够被实施为数据转换服务(即,实体),其消耗数据以便生成另一个数据流。换句话说,媒体应用可以被建模为数据转换服务的序列。如此,视频摄像机是生成视频数据的数据源。视频处理组件(如视频编解码器、缩放或成帧组件)可以允许对数据的转换,以便将媒体流适配为例如用于移动终端或TV显示器的合适格式。图像识别能够从视频信号中识别出对象,该视频信号能够从不同的信源被合并以生成该场景的3D模型。
[0044]使用这样的数据转换模型和摄像机的原始视频流,针对用户的新的个性化视图能够被绘制并且发送给显示器。这样的服务能够由有向图来表示,有向图在部署时间时将被实例化。在实例化过程期间,所需要的资源从可用资源池中被选择。作为在实例化过程期间选择所需要的资源的结果,由该服务施加至该网络上的总体业务量将被减少。换句话说,资源选择过程可以被定向在减少由该服务施加至该网络上的总体业务量。资源选择过程此外可以考虑优化对于该服务的消费者的QoE(体验质量)方面。
[0045]具有变化服务特性的应用能够有益于从媒体云(MC)概念的不同延伸。主要的益处能够在需要在某个时间段上的连续数据的一致流的应用上实现,或者在需要传送大量数据用于处理的应用上实现。另一方面,对于仅需要非常有限的数据传送的应用,服务传送开销和实例化成本可能超出所得到的益处。作为结果,在MC概念内可能有益的是,提供允许获取与数据相关联的“元信息”的机制。如果该数据是恒定的媒体(例如,视频)流或者仅是需要在服务执行之前被传送的有限量的数据(例如,数据文件),那么这样的与数据相关联的“元信息”可以提供关于数据定位于何处的信息、关于多少数据需要被传送用于服务执行的信息。
[0046]为了由网络架构内在地支持媒体云场景,一些来自已有的因特网架构的基本原理应当被重新考虑。首先,来自内容联网的公知原理应当被延伸以支持本文件中所描述的MC方法。内容网络探索数据的局部性,即替代服务于针对信源处数据的请求,该数据的本地缓存的副本被递送。可以提出一种方案,该方案直接寻址该内容并且将这个信息用于路由目的,替代使用该内容被生成用于路由决定的位置。
[0047]上面所提到的方案的延伸将是不仅寻址该内容,而且还寻址如下的服务,该服务能够提供所请求的数据并且实例化处理管线(pipeline)以进行必要的转换。替代在单个域中针对所有用户执行集中化处理,可以在可用的地方利用网络层中固有的“多播”能力来在适当的位置组合或拆分媒体流。这对于已有的方案是有益的,其中多播必须由不知道“多播”是否在网络中被支持的服务开发商明确地并入,并且因此能够仅借助于覆盖机制来实现。
[0048]如果在不同服务组件之间交换的(媒体)流的业务流模式精确地被预测,则本文所描述的使能MC的网络能够直接地操作在这样的流型上,替代基于每分组执行路由决定。因此,使能MC的网络能够通过向网络提供在服务组件之间交换的媒体流的可用元信息来实现有效率的基于流的切换。这个信息能够使得这种启用MC的网络中的控制平面能够增加总体吞吐量。
[0049]MC方案还可以考虑的是,基于流的切换范式通常以在流控制处理机中支持更多的动态性的成本而实现。为了 “限制”这样的成本,启用MC的网络应当提供将如下的能力来聚合多个数据流,这些能力是:这些数据流共享在同一数据中心中所执行的服务组件之间的路径。通过引入数据中心之间的联合流的聚合粒度,核心网络它自身中的控制复杂性能够被限制。
[0050]当提供MC时对网络的进一步的要求是,流应当在网络中以这样的方式被处理:支持媒体流端点的不间断重定位(其不再是机器而是服务(即,服务组件))。结果,对于启用MC的网络,客户API (如套接字接口)可能需要被修改。由于启用MC的服务依据一般操作在数据的(多个)输入流上以生成它们的输出数据的自包含组件而被构建,它们的输出数据然后被分发给这个服务的后续消费者组件,所以使用用于通信目的的专用套接字可能不再是足够的,并且新范式可能需要在未来因特网的背景中被考虑。
[0051]图1图示了计算节点(也被称为计算设备)101的集合100。这些计算节点101形成没有层级的平坦布置,即集合100的计算节点101中没有一个计算节点具有总体控制或管理功能。计算节点101中的每个计算节点独立于其他的计算节点101而工作,并且仅依赖于在计算节点101处可用的集合100的结构的个体信息。集合100在本文件中被称为媒体云(MC) 100。不同的节点101经由通信网络103 (诸如因特网)而相互连接。
[0052]所提出的是使用云计算装置101的分布式布置100,以便以分布式方式(与集中式方式相对)来提供服务或应用。作为服务或应用的分布式供应的结果,所期待的是这些服务和应用能够以更资源效率的方式(尤其是关于通信网络103所需要的传输资源)而被提供。在这个背景中,描述了用于云计算装置101的完全分布式资源管理(RM)系统,其中在云计算装置101上所提供的RM功能中没有一个RM功能具有关于可用资源以及关于布置100的拓扑的完全了解。总的来说,合意的是提供对MC100的节点101中的每个节点的自主的、分布式的以及自给自足的资源管理(RM)功能。
[0053]在这个背景中,“自主的”RM功能意思是每个节点101自主地决定它的本地资源邻居,以便决定在何处使得应用或者应用的组件被执行。此外,“自主的” RM功能自主地决定另一个云资源分区的代表。换句话说,MC100可以被细分为多个云区域102,并且第一区域102的节点101中的每个节点可以自主地选择代表整个第二区域102 (或者第二区域102的子分区)的第二区域的节点101。如此,每个节点101可以自主地构建在该节点的区域102内的节点101的邻域中可用的资源的本地资源图形。此外,每个节点101可以构建MC100的其他区域102的代表节点的拓扑列表,由此向每个节点101提供进入MC100的所有区域102 (以及可能所有的子分区)的入口点。
[0054]每个节点101的RM功能是“分布式”的,因为资源管理功能被放置在每个节点101上。在一个实施例中,节点101中没有一个节点具有任何特定的特殊角色(例如,协调角色)。每个节点101以“自给自足的”方式执行它的RM功能,意思是关于在MC100内何处放置软件组件的决定仅由该节点的RM功能(而不咨询更高层的控制功能)来执行。为了以“自给自足的”方式工作,每个节点101 (例如,经由本地资源图形)持有附近/本地资源的个体视图以及(例如,经由拓扑列表)持有通向其他区域和/或(子)分区的个体连接。[0055]MClOO的节点101不共享MC100内的所有节点101的位置的公共总体网络图。替代地,每个节点101包括反映了该节点对整个MC100的视图的个体网络图。个体网络图可以包括本地资源图形(由此指示同一区域或分区102内的邻近模式中的一些模式)以及拓扑列表(由此提供MC100的每个区域102 (或分区)的至少一个代表节点)。
[0056]图2图示了与图1类似的节点101的布置(MC) 100。节点101定位在不同的拓扑位置(例如,节点101跨越不同的国家和/或大洲而分布)。MC100的节点101的完整集合被细分为多个区域102,该多个区域102可以与节点101的网络100的地理区域相一致。如将在下面所概述的,区域102可以被细分为一个或多个分区。节点101可以使用分布式Vivaldi算法来确定整个MC100的结构,由此为MC100内的每个节点101确定所谓的Vivaldi网络坐标。Vivaldi算法可以使用分布式技术来估计网络100内的节点101之间的传播时间(或者往返时间)。所估计的传播时间(或者往返时间)可以被用来确定MC100内的每个节点101的“坐标”,由此提供MC100的拓扑概观。对节点101、节点101的组的Vivaldi网络坐标使用Meridian算法可以被形成,其满足一个或多个预定条件(例如,关于这些组内的最大往返时间的条件)。换句话说,MC100的节点101可以被聚类,使得每个簇满足该一个或多个预定条件。这些集群在本文中被称为拓扑区域或者拓扑分区(其中区域可以被细分成分区)。如此,MC100的节点101可以自主地确定将节点101聚类为拓扑区域或者拓扑分区。作为结果,每个节点101被指配给恰好一个拓扑区域以及恰好一个拓扑分区(如果该区域被细分为(多个)分区)。
[0057]节点101的拓扑聚类300在图3中被图示。如上面所指出的,MC100的拓扑能够被安排为(例如,包括一个或多个分区302的区域102的)层级级别。如此,节点101 (例如,图3的节点B)可以被归于分区302 (例如,分域α ),分区302它自己被归于区域102 (例如,区域a)。
[0058]特定的节点101仅具有整个MC100的有限视图。MC100的这个有限视图由节点101用来执行“自主的”RM功能。RM功能的这个部分可以被称为由节点101所执行的拓扑管理。为了能够到达MC100的每个区域102 (或者分区302),每个节点101将另一个区域102 (或者分区302)的一个(可能是数个)代表添加到它的拓扑树或者拓扑列表(也被称为拓扑的列表)中。如果MC100的节点被组织在一个层级级别中,例如在区域102中(没有任何细分到分区302),则每个根节点101应当存储任何其他区域102的(任意)代表。如果节点101被组织到两个层级级别、例如分区302和区域102中(每个区域102持有一个或多个分区302),则每个根节点101应当存储任何其他区域102的(任意)代表以及在这个区域102中的分区302中的任何一个分区的(任意)代表。
[0059]如此,每个节点101将它自己放到它的本地资源图形(RG)的根位置中,这向节点101提供了在区域102内(或者分区302内)执行资源管理的能力。此外,每个节点101将它自己放到它的拓扑图形(或者拓扑列表)的根位置中。这向节点101提供了它对该网络的个体视图。每个(根)节点101将其他分区302(和/或区域102)的一个或多个代表添加至它的拓扑图形(TG)中。应当注意,分区302内的任何节点能够代表这个分区302,即所有节点是等同的并且区域102或分区302的节点中没有一个节点具有特殊任务。在两个层级拓扑(包括区域102和分区302)的情况中,使用节点101的TG,需要最多两个步骤来从节点101中的每个节点寻址正确的分区302。[0060]图4图示了示例节点101的框图。特别地,节点101包括映射功能401,其被用于节点101的RM功能。此外,节点101包括执行环境403,用于执行一个或多个应用的一个或多个组件C0、C1、……、Cn。执行环境403提供节点的资源,例如在节点101处可用的存储器或处理容量。此外,执行环境403可以提供与可用来接入节点101的链路有关的信息。特别地,与到节点101的链路的带宽、延迟或抖动有关的信息可以被提供。
[0061]图5图示了节点101的示例图形500。如上面所指出的,每个节点101 (区域a中的分区α中的节点B)包括本地资源图形501,本地资源图形501包括同一区域/分区内的其他节点的列表。可以以层级方式来组织本地图形501,其中该层级可以表示其他节点关于该图形的根节点的距离(d)。距离(d)可以提供如下的指示:关于其他节点的计算资源可用的信息的准确性或可靠性减少了(随着距离(d)或层级级别的增大)。除了本地资源图形501之外,图形500还可以包括拓扑图形502,拓扑图形502指示了代表MC100的其他区域102或分区302的节点。
[0062]本地或分区拓扑信息可以存储在如图6中所示出的表格600内。表格600指示了包括与本地资源图形601的相应节点相关联的成本611的本地资源图形601的节点。另一个节点的成本611可以包括附加至该另一个节点的资源值,例如可用的处理资源、可用的链路带宽、可用的存储器资源、可达到的往返时间等。此外,表格600提供拓扑列表602,拓扑列表602指示其他分区和/或区域的代表节点。这些拓扑信息条目还可以持有多个备选(替代每个分区/区域单个条目)。如此,存储器表格600是MC100的节点视点的表示。本地资源列表601内的节点的数量通常限制于预定数量,该预定数量小于区域/分区内的节点的总数量。拓扑列表602内的每个区域/分区的节点数量限制于节点数量(例如,一个或两个节点),该节点的数量小于区域/分区内的节点的总数量。这意味着每个节点101仅具有完整MC100的受限视图。
[0063]节点101管理表格600中的资源和拓扑(图形500被用于举例说明的目的)。资源条目611存储从邻近节点所接收的成本元组信息。取决于离根元素的距离(d),这些成本元组值的精确度能够关于准确度、现实度、聚合视图等而变化。这些成本元组可以包含资源值,诸如处理、存储器、链路带宽、RTT(往返时间)等。在组件实例化过程(即,组件放置过程)的情况中,该节点首先分析它自己的资源状态并且然后将它与RG601中的节点相比较。该节点决定它是在本地实例化该组件还是将该请求转发给RG601内的邻近节点。
[0064] 本地资源图形501、601可以被用于节点101所执行的资源管理。如上面所指出的,每个节点基于在节点101处可用的有限信息,特别是基于本地资源图形501,来执行独立的资源管理功能。本地资源图形501基于节点的子集(其通常从同一分区中取得)。应当注意,对于定位在多个分区302之间的边界附近的节点101,本地资源图形501内的邻近节点可以包括其他分区的节点。通常,本地资源图形(RG)树深度被限制(被限制到附近的网络邻居,或者被限制到近处)。在节点101的启动过程中,本地资源图形内的位置可以从(分区的)节点的给定集合中协商。换句话说,节点101可以选择可用节点的适当子集来放置在本地资源图形内。连续的(慢的)优化过程允许用同一分区中的其他节点来替换节点。这意味着,如果根节点101观察到它的本地资源节点内的节点没有对节点101的资源管理功能(显著地)做出贡献,则根节点101可以决定用来自根节点101的邻域的另一个节点来替换该非贡献节点。[0065]如此,根节点101可以执行对它的本地RG501的永久优化过程。这在图8中被图示,图8示出了本地RG501的示例更新过程800。两个根节点(A、B)已经独立地建立了它们的本地RG。RG的所有节点都位于同一分区中。这些根节点(能够)永久地执行调查以为它们的本地RG识别更合适的节点,并且替换它们(参考标号802)。这些节点被替换而对运行组件不具有任何影响(参考标号801)。通常,每个节点能够具有最大数量的RG相邻节点,它必须留下根节点A的RG并且必须由另一个节点一这里是X来替换(参考标号803)。换句话说,每个节点可以是预定最大数量的其他节点的本地资源图形的一部分。预定最大数量可以被选择,以使得用于将关于可用计算资源的信息报告给其他节点所需要的努力被维持在合理的水平。这意味着,如果达到该预定最大数量,则节点不再能被归于进一步的本地资源图形。备选地,该节点仍然可以被归于新的本地资源图形,然而,同时该节点必须从另一个本地资源图形中去除。这在图8中被图示。
[0066]如上面所指出的,本地RG中的每个节点101归于成本标量/元组611。这个元组611帮助决定新的组件实例化请求必须被放置在何处。换句话说,当决定在MC100内将应用的组件的执行放置在何处时,节点101可以咨询本地RG501并且基于由该节点所提供的成本611而将该组件与被包括在本地RG501内的节点中的一个节点放置在一起。本地RG501中的节点将当前的资源状态定期地通知给它们的RG根节点101。换句话说,本地RG501的节点向根节点101推送与它们的资源有关的信息,由此确保根节点101能够做出有根据的资源管理决定。特别地,本地RG信息(例如,成本611)被用来将本地RG内的节点(包括根节点它自己)中的一个节点识别为用于组件放置的适当节点。应当注意,组件的放置过程能够采取数次迭代。另一方面,不存在用于执行资源管理功能的中心或部分中心功能,由此去除了单点故障的风险。
[0067]如此,每个节点101具有有限网络视图500,其包括指示其他分区的一个或多个代表节点的本地资源图形501和拓扑图形501。如上面所指出的,MC100的拓扑可以使用Vivaldi和Meridian算法以分布式的方式来确定。在初始化阶段,每个节点101可以能够访问在同一分区/区域内的节点的完整列表。节点101使用节点的这个列表来构建本地资源图形501。此外,在初始化阶段,每个节点101可以从剩余的分区/区域中选择至少一个节点。对剩余分区/区域的至少一个节点的选择应当以随机的方式来执行,以便确保分区的节点具有其他分区的不同代表节点,由此防止单点故障或漏洞。
[0068]在下文中,描述了与节点101所提供的映射功能401有关的进一步细节。基于在节点处可用的拓扑和资源信息(即,信息500、600) ,MClOO的节点可以确定在媒体云系统100的节点101上的软件(媒体)组件的(最优)放置。如图7中所示出的,应用700通常包括多个组件703。作为示例,电话会议应用包括多个音频编解码(编码/解码)组件(一个用于电话会议的每个参与者)、以及混合器组件(用于连接参与者的语音信道)。通常,应用700 (以及组件703)具有信源701 (从它提供数据)以及信宿702 (向它提供数据)。在上面所提到的示例中,该电话会议应用的个体参与者可以被考虑为是信源和信宿。组件放置过程的任务是将应用700的组件703放置在MC100内的适当位置,以便减少通信网络103的资源的消耗。作为示例,通过将电话会议应用的音频编解码组件放置在相应参与者的邻近处,该应用所需要的传输带宽能够被减少(因为仅被编码的语音业务量通过通信网络103被传输)。此外,该电话会议应用的混合器组件应当被放置在该电话会议的参与者之间的中心位置。
[0069]在图7中,不同组件703之间以及信源701与信宿702之间的链路的不同带宽指示了关于这些链路的不同要求(橡皮带模型(rubber band model))。指示更高的弹性常数的组件703之间的带,指示了组件703应当被放置在相互邻近的范围中(例如,在同一节点上)。
[0070]放置过程应当考虑可用的节点资源和可用的链路资源。此外,对应用组件703 (例如,关于处理器资源、存储器资源、链路带宽、延迟、抖动)的要求应当被考虑。
[0071]这样的放置决定可以以集中化的方式来执行。然而,用于组件放置的中心的或网状的解决方案在大型系统中通常不缩放。此外,这样的中心解决方案趋向提供单点故障。
[0072]在本文件中提出了利用分布式放置方案,该分布式放置方案使用在媒体云100的节点101处可用的有限信息。该分布式放置方案利用由个体节点101所执行的个体映射功能401。这些映射功能被分离为两个子任务:拓扑管理和资源管理。拓扑管理利用在节点101中的每个节点处可用的拓扑信息(特别是拓扑图形502或拓扑列表602)。组件放置请求通常伴随有与该应用(或者该组件)的信宿或信源有关的分区信息。该节点检查这个拓扑信息,并且如果该拓扑信息与它自己的不匹配,则将该请求转发给该分区(或区域)的代表。换句话说,该节点验证所期望的该组件的信宿或信源位置是否与该节点的分区一致。如果不是,则该组件放置请求被传递给适当区域或分区的代表节点,其对于该节点是已知的(从拓扑列表602)。在两个层级拓扑(分区和区域)中,寻址正确的分区302需要最多两个步骤。在针对多个组件的放置请求的情况中,该拓扑过程仅需要执行一次。换句话说,有关的组件(它们属于同一服务或应用)的列表能够在单个步骤中被放置。
[0073]取决于MC100的不同节点的负荷状态,资源管理定向于本地资源放置。如果该节点接收到组件放置请求并且识别该组件应当被放置在它的分区内,则该节点咨询它的本地资源图形501或表格601,以识别具有必要资源来执行该组件的图形501内的节点。通常,网络的不同节点101已经缓存了将要被放置的该组件的副本。如此,通常仅有必要发起在所识别的节点上的组件的实例化。否则,所识别的节点可以从中心组件数据库下载该组件。
[0074]在一个实施例中,图3的节点311 (信源)请求建立应用,该应用具有涉及节点312 (信宿)的信宿。问题是节点311如何能够找到在该信宿附近的节点(或者反之亦然)。如上面所指出的,MC100的每个节点101中的映射功能(MF)401存储它自己的以及邻居的资源占用和拓扑信息,从而每个节点能够以自给自足的方式做出它的放置决定。第一,可用拓扑信息被用来找到与信宿或者信源接近的网络分区。第二,在所选择的分区中的邻近节点的本地资源信息被使用,从而节点能够决定在它的邻域内在何处放置新的组件。使用上面所提到的放置方案,没有一个节点需要知道MC100的完全且精确的资源和拓扑信息。但是,所实现的放置几乎是完美的。应当注意,在本文件中所概述的放置方案中,MC节点101中没有一个节点在在线处理期间具有不寻常的角色。作为结果,任意MC节点101中的一个或数个节点可能失效而不引起系统故障。
[0075]节点的映射决定过程可能涉及下列步骤。在第一步骤中,可以检查(在组件放置请求内被请求的)信宿是否与该节点在同一区域/分区中。如果不是该情况,则该节点在它的表格602中搜索应当与被请求的信宿相匹配的区域/分区中的代表节点。该节点将该组件放置请求转发给该代表节点。该代表节点验证该信宿在它的区域和分区中,否则它将不得不把该请求转发给来自目的地分区的它的个体代表。该代表节点检查它的本地RG601,寻找接近的并且具有最佳成本值来执行该组件的最适合的MC节点。应当注意,由于应用通常包括多个组件,由此这些组件之间的相互连接具有各种要求。如果应用图形信息的全部或者较大部分能够被提供用于更加整体的映射决定,则放置决定能够被改进。
[0076]如上面所指出的,每个节点101包括本地资源图形601。当接收到组件放置请求时,节点101在它的本地资源图形601内搜索适当的节点,并且将该组件放置请求转发给这个节点。这个节点也包括本地资源图形601,并且在它的本地资源图形601内搜索适当的节点来处理该组件放置请求。为了确保这个迭代过程的收敛,组件放置请求的转发可以服从于与最小的所要求的改进有关的条件。特别地,可以规定,组件放置请求仅能够被转发给本地资源图形601内的节点,如果这导致了针对该组件放置的最小的所要求的改进(例如,处理器容量/带宽的20%的减少等)。
[0077]在下文中,描述了涉及特定区域和/或分区拓扑控制器303的媒体云100的实施例。分区的拓扑控制器303可以被用来管理这个分区的所有节点的列表。拓扑控制器303不涉及在任何媒体处理、成流或者消息发送中,但是支持映射功能401以便建立MC节点的个体拓扑视图。这意味着,通常拓扑控制器303不涉及在实际的组件放置过程中,而是仅涉及在节点101中的每个节点的初始化过程中。通常,每个分区有一个拓扑控制器,并且拓扑控制器功能可以是该分区的MC节点中的一个节点的一部分。这些拓扑控制器在MC节点启动时仅可以被请求一次,以便为本地资源图形601和/或其他分区602的节点选择节点。
[0078]在启动时,节点101的映射功能401寻址它的拓扑控制器303,这在管理过程中被预先设置。映射功能401恢复拓扑信息,例如该节点所定位的区域、分区。在该处理期间需要这个信息,以便将组件定位至应用/组件的信宿或信源附近。此外,映射功能401获取邻近(MC节点)的超集,MC节点能够寻址该超集来从该超集选择最适合的邻居并且将这些邻近节点ID(与映射相关的属性一起)附加到它的本地资源图形601中。如上面所指出的,资源图形(优选地)具有多级别(d)的树结构并且具有给定最大量的孩子(η)。此外,映射功能401可以从邻近分区/区域接收拓扑控制器的第二列表,由此使得该节点能够识别该邻近分区/区域的代表节点。即,映射功能401可以请求每个邻近分区的一个个体代表。这个代表经常随机地从可用节点的列表中被选择。这帮助在分区的节点之间等同地分布负荷。如果这些节点以两个层级级别(区域和分区)而被组织,上面所提到的启动过程类似地工作。
[0079]如此,在启动过程期间,新的节点101可能仅知道预定拓扑控制器303的地址,预定拓扑控制器303包括MC100内的其他节点的列表。其他节点的该列表由该新的节点101用来确定该新的节点101所属的区域/分区(例如,使用Vivaldi算法结合Meridian算法)。作为结果,该新的节点101将被指配给特定的区域/分区并且能够被包括到这个区域/分区的拓扑控制器303的节点列表中。
[0080]换句话说,特定分区中的每个节点101可以执行下列任务:该节点101知道分区302的控制器节点303。一经启动请求,节点101就从所有的区域/分区获取控制器节点列表。一经启动请求,节点101就确定它的分区302和这个分区302的关联控制器节点303。一经启动请求,节点101就获取直接(分区)邻近的任意列表(RG)。一经请求,节点101就从该邻近分区/区域获取一个任意节点。分区302的控制器节点303通常知道该分区中的所有节点101,并且知道上级区域102的控制器节点。一经节点请求,控制器节点303就提供它的分区内的节点的节点ID。此外,一经节点请求,控制器节点303就提供该分区的代表节点。区域102的控制器节点303知道它的分区302中的控制器节点303,知道所有区域102的控制器节点303并且将区域请求转发给邻近控制器节点。
[0081]在本文件中,已经描述了用于针对云计算的网络和对应的计算设备(节点)的架构。所描述的架构允许非集中式应用组件放置方案的实施方式,其允许应用的组件将要被放置在计算云中的适当节点处。所描述的架构对增长的需求是可缩放的并且不呈现单点故障。此外,所描述的架构使得当使用云计算时能够减少通信网络内所需要的带宽资源。
[0082]应当注意,本描述和附图仅举例说明了所提出的方法和系统的原理。将因此意识至IJ,本领域的技术人员将能够设计出各种布置,这些布置尽管在本文中没有明确地被描述或者示出但是将本发明的原理具体化并且被包括在它的精神和范围内。此外,本文所记载的所有示例主要明确地意在为仅用于教导的目的,以帮助读者理解所提出的方法和系统的原理以及由发明人为了促进技术而贡献的概念,并且将被解释为不带有对如此明确记载的示例和条件的限制。此外,记载本发明的原理、方面、以及实施例的本文的所有陈述,以及它们的特定示例,意在为涵盖它们的等价体。
[0083]此外,应当注意,各种上面所描述的方法的步骤以及所描述的系统的组件能够由经编程的计算机来执行。在本文中,一些实施例还意在覆盖程序存储设备,例如数字数据存储介质,其是机器或计算机可读的以及编码机器可执行的或者计算机可执行的指令的程序,其中所述指令执行所述上面所描述的方法的步骤中的一些或所有步骤。程序存储设备可以是,例如数字存储器、诸如磁盘和磁带的磁性存储介质、硬盘驱动器、或者光学可读数字数据存储介质。实施例还意在为覆盖被编程以执行上面所描述的方法的所述步骤的计算机。
[0084]另外,应当注意,本专利文件中所描述的各种元件的功能可以通过使用专用硬件以及能够执行软件的硬件连同适当的软件来提供。当由处理器提供时,这些功能可以由单个专用处理器、由单个共享处理器、或者由多个个体处理器(其中的一些可以是共享的)来提供。此外,对术语“处理器”或“控制器”的明确使用不应当被解释为排他地指代能够执行软件的硬件,并且可以隐含地不带限制地包括,数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、用于存储软件的只读存储器(ROM)、随机访问存储器(RAM)、以及非易失性存储器。传统的和/或定制的其他硬件也可以被包括。
[0085]最后,应当注意,本文中的任何框图表示将本发明的原理具体化的说明性电路的概念视图。类似地,将意识到,任何流程图、流程示图、状态转化图、伪代码等表示可以基本上被表示在计算机可读介质中并且因此由计算机或处理器执行的各种过程,不论这样的计算机或处理器是否明确地被示出。
【权利要求】
1.一种计算设备(101),其中 -所述计算设备(101)定位在第一拓扑区域(102)中; -所述计算设备(101)包括拓扑列表(602),所述拓扑列表(602)指示分别定位在与所述第一拓扑区域(102)不同的多个拓扑区域(102)中的多个参考计算设备; -所述计算设备(101)包括本地资源列表(601),所述本地资源列表(601)指示所述计算设备(101)的可用计算资源以及定位在所述计算设备(101)的邻域中的至少一个邻近计算设备(101)的可用计算资源; -在接收到针对应用(700)的组件(703)的组件放置请求时,所述计算设备(101)被适配为 -基于所述拓扑列表出02),确定所述组件(703)是将要被放置在所述第一拓扑区域(102)中还是将要被放置在与所述第一拓扑区域(102)不同的所述多个拓扑区域(102)中的一个拓扑区域中; -如果确定所述组件(703)将要被放置在与所述第一拓扑区域不同的所述多个拓扑区域中的一个拓扑区域中,则将所述组件放置请求传递给与所述第一拓扑区域不同的所述多个拓扑区域中的相应拓扑区域的参考计算设备; -如果确定所述组件(703)将要被放置在所述第一拓扑区域(102)中,则从所述本地资源列表(601)中识别具有用于执行所述应用的所述组件的计算资源的所选择的计算设备;以及 -如果所选择的计算设备是所述计算设备(101),则在所述计算设备(101)上执行所述应用(700)的所述组件(703),否则将针对所述应用(700)的所述组件(703)的所述组件放置请求传递给所选择的计算设备。
2.根据权利要求1所述的计算设备(101),其中所述计算设备(101)被适配为从所述至少一个邻近计算设备(101)接收与所述至少一个邻近计算设备(101)的计算资源有关的信息。
3.根据权利要求1所述的计算设备(101),其中所述计算设备(101)被适配为 -接收被包括在所述第一拓扑区域(102)内的第一计算设备(101)的列表;以及 -从第一计算设备(101)的所述列表为所述本地资源列表(601)选择多个邻近计算设备(101),其基于 -所述第一计算设备(101)的计算资源;和/或 -所述计算设备(101)的链路的带宽使用。
4.根据权利要求3所述的计算设备(101),其中所述计算设备(101)被适配为 用来自第一计算设备(101)的所述列表的新的邻近计算设备(101)来替换所述本地资源列表(601)中的邻近计算设备(101)。
5.根据任一项前述权利要求所述的计算设备(101),其中 -所述拓扑区域(102)被细分为一个或多个分区(302);以及 -所述拓扑列表(602)指示定位在所述多个拓扑区域(102)的一个或多个分区(302)中的多个参考计算设备。
6.根据任一项前述权利要求所述的计算设备(101),其中计算设备(101)的计算资源是以下各项中的任何一项或多项:所述计算设备(101)的处理器资源、所述计算设备(101)的存储器资源、以及到所述计算设备(101)的链路的带宽。
7.根据任一项前述权利要求所述的计算设备(101),其中所述至少一个邻近计算设备(101)定位在所述第一拓扑区域(102)中。
8.一种分布式网络(100),所述网络包括: -在第一拓扑区域(102)中的第一多个根据权利要求1至7中任一项所述的计算设备(101);以及 -在第二拓扑区域(102)中的第二多个根据权利要求1至7中任一项所述的计算设备(101); 其中所述第一和第二多个计算设备(101)包括对应的第一和第二多个拓扑列表(602);其中所述第一多个拓扑列表(602)指示所述第二多个计算设备(101)中的对应第一多个参考计算设备(101),并且反之亦然。
9.根据权利要求8所述的分布式网络(100),其中所述第一多个参考计算设备(101)是对所述第二多个计算设备(101)的随机选择,并且反之亦然。
10.根据权利要求8至9中任一项所述的分布式网络(100),进一步包括分别在所述第一和第二拓扑区域(102)中的第一控制器节点(303)和第二控制器节点(303);其中所述第一和第二控制器节点(303)分别提供所述第一和第二多个计算设备的指示。
11.根据权利要求10所述的分布式网络(100),其中所述第一控制器节点(303)提供对所述第二控制器节点(303)的指示,并且反之亦然。
12.根据权利要求8至11中任一项所述的分布式网络(100),其中 -所述第一和第二多个计算设备(101)中的每个计算设备包括本地资源列表(601),所述本地资源列表(601)指示相应计算设备(101)的邻域中的预定数量的邻近计算设备(101)的计算资源; -所述第一和第二多个计算设备(101)中的每个计算设备被适配为,独立于所述第一和第二多个计算设备(101)中的其他计算设备,仅基于它的本地资源列表(601)并且基于它的拓扑列表(602)来处理组件放置请求。
13.一种用于在根据权利要求1至7中任一项所述的计算设备(101)的分布式网络中放置应用(700)的组件(703)的方法,所述方法包括 -在第一拓扑区域(102)中的第一计算设备(101)处接收组件放置请求; -基于所述第一计算设备(101)的拓扑列表,确定所述组件(703)是将要被放置在所述第一拓扑区域(102)中还是将要被放置在与所述第一拓扑区域不同的多个拓扑区域中的一个拓扑区域中; -如果确定所述组件(703)将要被放置在与所述第一拓扑区域(102)不同的所述多个拓扑区域(102)中的一个拓扑区域中,则将所述组件放置请求传递给与所述第一拓扑区域不同的所述多个拓扑区域中的相应拓扑区域的参考计算设备(101); -如果确定所述组件(703)将要被放置在所述第一拓扑区域(102)中,则从所述第一计算设备(101)的本地资源列表(601)中识别具有用于执行所述应用的所述组件的计算资源的所选择的计算设备;以及 -如果所选择的计算设备是所述第一计算设备(101),则在所述第一计算设备(101)上执行所述应用(700)的所述组件(703),否则将针对所述应用(700)的所述组件(703)的所述组件放置请求传递给所选择的计算设备。
14.根据权利要求13所述的方法,进一步包括,在初始化阶段期间, -使用例如Vivaldi算法来确定所述分布式网络(100)的所述计算设备(101)的相对位置;以及 -使用例如Meridian算法将所述计算设备(101)聚类成所述第一拓扑区域(102)以及聚类成与所述第一拓扑区域(102)不同的所述多个拓扑区域(102)。
15.根据权利要求13至15中任一项所述的方法,其中 -所述组件放置请求包括与所述组件所处理的数据的信宿(702)或信源(701)的位置有关的?目息;并且 -用于放置所述组件的所述拓扑区域(102)是基于所述信宿(702)或所述信源(701)的所述位置 而确定的。
【文档编号】G06F9/50GK103917958SQ201280055227
【公开日】2014年7月9日 申请日期:2012年10月11日 优先权日:2011年11月11日
【发明者】S·瓦尔, K·扎茨克, M·施泰因 申请人:阿尔卡特朗讯
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1