用于向消费者分发内容的方法和节点的制作方法_4

文档序号:9308946阅读:来源:国知局
可能接近消费节点。检测单元400b还可以被适配为通过应用Djikstra算法来识别第二节点,该算法用于确定从第一节点到拓扑中的消费节点中的每一个的最短可能路径。
[0050]在另一可能实施例中,
[0051]第二节点402包括接收单元402a,适配为当在数据分发网络中的第一节点400中检测到针对第二节点402的第一内容的多个数据流MF时从数据分发网络中的第一节点400接收指令“In”,以作为用于消费节点的第一内容的递送节点进行操作。第二节点402还包括操作单元402b,适配为在从第一节点400接收到第一内容的公共数据流CF时通过向消费节点404发送多个数据流Fl,F2,F3,...来作为第一内容的递送节点进行操作。
[0052]上述第二节点402及其功能单元402a和402b可以被配置或适配为根据各种可选实施例进行操作。在可能的实施例中,操作单元402b可以被适配为当检测到第一内容的数据流的数目低于第二阈值时在第二节点中禁用递送节点。在该情况下,操作单元可以进一步被适配为当在第二节点中禁用递送节点时重新引导消费节点以使用第一节点作为第一内容的递送节点。
[0053]在另一可能实施例中,检测单元400b可以被适配为通过检测到所述数据流的数目大于第一阈值来检测多个数据流。在又一可能实施例中,当第一节点和第二节点是云环境的一部分时,指令单元400c可以被适配为指令第二节点通过在第二节点402中创建虚拟机VM402C用于执行递送节点的作用来作为递送节点进行操作。
[0054]现在将参考图5中的流程图来描述可以如何在连接到第一节点的第二节点中实现该解决方案以减少数据分发网络中的负载和时延的示例。该附图图示了由第二节点执行的用于将称为“第一”内容的具体内容分发到连接到数据分发网络的多个消费节点的过程。假定第一节点初始地作为用于消费节点的第一内容的递送节点进行操作,即其响应于在分离会话中来自消费节点的请求而向消费节点发送内容的连续数据块,由此生成相应的数据流。
[0055]在首先示出的动作500中,第二节点从数据分发网络中的第一节点接收指令,以当在第一节点中检测到对第二节点的第一内容的多个数据流时作为用于消费节点的第一内容的递送节点进行操作。该动作对应于上述动作102和2:4。在另一动作502中,第二节点在从第一节点接收到第一内容的公共数据流时通过向消费节点发送多个数据流来相应地作为第一内容的递送节点进行操作。该动作对应于以上动作2:7。
[0056]应当注意,图4图示了第一节点400和第二节点402中的各种功能单元,并且本领域技术人员能够在实践中使用适当的软件和硬件来实现这些功能单元。因此,该解决方案通常不限于所示出的第一节点400和第二节点402的结构,并且功能单元400a-d和402a_b可以被适当地配置为根据本公开中描述的特征中的任何一个来进行操作。
[0057]上述功能单元400a_d和402a_b可以分别通过包括代码部件的相应计算机程序的程序模块来在第一节点400和第二节点402中实现,该代码部件在由每个节点中的处理器“P”运行时,使得第一节点400和第二节点402执行上述动作和过程。每个处理器P可以包括单个中央处理单元(CPU),或者可以包括两个或更多个处理单元。例如,每个处理器P可以包括通用微处理器、指令集处理器和/或相关芯片集和/或专用微处理器,诸如专用集成电路(ASIC)。每个处理器P还可以包括用于高速缓存目的的存储。
[0058]每个计算机程序可以由存储器“M”形式的第一和第二节点400、402中的每一个中的计算机程序产品来承载,存储器“M”具有计算机可读介质并且连接到处理器P。每个节点400,402中的计算机程序产品或存储器M由此包括例如以计算机程序模块“m”的形式存储计算机程序的计算机可读介质。例如,存储器M可以是闪速存储器、随机存取存储器(RAM)、只读存储器(ROM)或电可擦除可编程ROM(EEPROM),并且程序模块m在替代实施例中可以以在第一节点400和第二节点402内的存储器的形式分发在不同的计算机程序产品上。
[0059]已经描述了下述过程:找到冗余数据流并且计算在分发树中何处适用于(即通过如上所述委派和禁用递送节点来)创建和/或禁用递送内容的功能,以便于最小化该冗余。可以以层级方式进行对此的决定作出过程,其中分布式云中的每一个节点响应于优化在分发树中在其以下的资源。在适当时,例如在通过上述第一阈值和第二阈值控制时,可以对分布式云中的每个节点给予创建和禁用云中的递送节点的授权,包括在需要时禁用其本身。
[0060]云环境中的虚拟机通常通过例如用于向仪表板提供登陆凭证的用户交互或者用户可以控制虚拟机的创建和管理的控制界面来创建。然而,在本公开中提出的解决方案中,已经消除或者至少减少了必要的用户干预。可以对由控制用户初始启动的应用给予完整凭证,以便于代表用户自动地起作用,以在被保证时自主地创建和禁用递送节点。
[0061]对网络的每个数据中继节点给予找到网络中的冗余数据流的任务,使得检测在树的一些下游位置处是否存在冗余。这可以简单地通过查看在某个有限的时间段中有多少通过其IP地址标识的独特的消费节点或子节点在所考虑的时间段期间访问了相同的内容,由此“大体上同时”来进行。当在给定时间帧内消费相同内容的子节点的数目超过特定预先配置的值,即第一阈值时,数据中继节点已经检测到可能可以通过递送功能的委派来优化的冗余业务流。
[0062]可以用于找出网络是否可以通过递送功能的委派来优化的算法可以是称为“最长公共路径”计算的算法。首先,将上述Djikstra算法应用于计算从源节点通过数据中继节点并且朝向消费节点的最短路径,消费节点即在给定时间段内已经请求了相同内容的所有子节点。
[0063]给定所有最短路径,然后算法尝试朝着所有消费节点逐步“行走”路径,每一步都保持对以下还有多少子节点的跟踪。初始地,子节点集合包括已经请求了相同内容的所有消费节点,并且每次当遵循朝着子节点的最短路径时都观察到分支,从该集合中移除子节点,并且继续向下对所有分支进行搜索,直至最终集合被减少为仅包含一个子节点。该算法输出网络中的分支位置的集合,其中,数据流在不同的方向上被划分,并且这些所有的分支位置可能可以适用于创建新的递送节点,因为其可以减少网络中的冗余。
[0064]现在将参考图6a和图6b中的流程图来描述当将内容分发到连接到数据分发网络的多个消费节点时上述第一节点和第二节点可以如何起作用的更具体的示例。图6a示出了要由第一节点执行的动作,而图6b示出了要由第二节点执行的动作。在第一动作600中,例如当作为源节点或先前指定的递送节点时,第一节点用作第一内容的递送节点。在接下来示出的动作602中,第一节点检测第一内容的多个数据流,例如基本上如上述动作100和2:2描述的。
[0065]然后,在动作604中,第一节点确定检测到的数据流的数目是否高于第一阈值。如果没有,则该过程可以返回到动作600,其中第一节点继续用作递送节点。另一方面,如果检测到的数据流的数目高于第一阈值,则第一节点识别转发该检测到的多个数据流的最低下游节点,在该情况下,第二节点在动作606中例如基本上如以上动作2:3中所述。然后,第一节点通过指令第二节点作为递送节点进行操作来委派递送功能,并且例如在动作608中,例如基本上如对以上动作102和2:4的描述,重新引导消费节点使用第二节点作为其递送节点。在该动作中,还通过将从第一节点到第二节点的数据流减少到第一内容的公共数据流来消除冗余。
[0066]移动到图6b,第二节点从第一节点接收指令,并且然后在另一动作610中,根据来自第一节点的指令来作为第一内容的递送节点进行操作。在接下来示出的动作612中,第二节点检测存在针对消费节点中的一个或多个的第一内容的一个或多个进行中的数据流,即会话和数据流中的一个或多个已经被终止,因为对第二节点委派了递送节点的作用。在另一动作614中,第二节点由此确定检测到的数据流的数目是否低于
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1