发明内容
本发明的目的在于提供一种CDN网络及在CDN网络中进行内容管理的方法,以克服现有的CDN不能满足大规模的用户的需求与业务发展的需要的缺陷。
为解决上述问题,本发明提供了一种内容分发网络,包括:管理层、一个以上的控制层和一个以上的能力层;其中,每个控制层对应一个以上的能力层;
所述管理层中包含内容管理模块,用于将接收到的内容提供商发来的内容注入请求发送到控制层;其中,所述内容注入请求消息中携带内容库的地址信息及请求注入的内容的标识信息;
所述控制层中包含内容控制模块,用于将接收到的所述内容注入请求发送给对应的能力层;
所述能力层中包含节点存储模块,用于在接收到对应的控制层发来的所述内容注入请求后,根据其中携带的所述内容库的地址信息及请求注入的内容的标识信息,从所述内容库中将相应内容下拉至本节点存储模块进行存储。
进一步地,
所述能力层中还包括节点服务模块,用于在接收到用户发来的内容服务请求后,如判断出本能力层的节点资源模块中保存有所述内容服务请求中携带的内容标识信息所对应的内容,则为所述用户提供所述内容的服务。
进一步地,
所述能力层中还包括节点服务模块,用于在接收到用户发来的内容服务请求后,如判断出本能力层的节点资源模块中未保存所述内容服务请求中携带的内容标识信息所对应的内容,则向本能力层对应的控制层发送中继请求,其中携带所述内容标识信息;还用于在收到中继定位响应后,向相应的能力层请求提供所述内容,并将所述内容提供给所述用户;
所述控制层中还包括中继定位模块,用于在收到所述中继定位请求后,定位所请求的内容所在的能力层,并将定位到的能力层的标识信息通过所述中继定位响应发送给发起所述中继定位请求的能力层。
进一步地,
所述管理层中还包括数据管理模块,用于向所述控制层同步配置数据;
所述控制层中还包括数据控制模块,用于从所述管理层同步本控制层相关的配置数据。
进一步地,
所述能力层中还包括节点资源模块,用于计算和向对应控制层上报本能力层中的资源数据;其中,所述资源数据包括:节点存储模块的存储空间占用情况及及节点服务模块提供内容服务的并发数据;
所述控制层中还包括资源控制模块,用于收集本控制层对应的所有能力层上报的资源数据,并上报给所述管理层;
所述管理层中还包括资源管理模块,用于收集控制层上报的所述资源数据。
进一步地,
所述管理层、控制层及能力层之间采用传输控制协议进行交互。
相应地,本发明还提供了一种在内容分发网络中进行内容管理的方法,应用于上述内容分发网络中,包括:
所述管理层将接收到的内容提供商发来的内容注入请求发送到控制层;其中,所述内容注入请求消息中携带内容库的地址信息及请求注入的内容的标识信息;
所述控制层将接收到的所述内容注入请求发送给对应的能力层;
所述能力层在接收到对应的控制层发来的所述内容注入请求后,根据其中携带的所述内容库的地址信息及请求注入的内容的标识信息,从所述内容库中将相应内容下拉至本能力层进行存储。
进一步地,上述方法还包括:
所述能力层在接收到用户发来的内容服务请求后,如判断出本能力层中保存有所述内容服务请求中携带的内容标识信息所对应的内容,则为所述用户提供所述内容的服务。
进一步地,上述方法还包括:
所述能力层在接收到用户发来的内容服务请求后,如判断出本能力层中未保存所述内容服务请求中携带的内容标识信息所对应的内容,则向本能力层对应的控制层发送中继请求,其中携带所述内容标识信息;
所述控制层在收到所述中继定位请求后,定位所请求的内容所在的能力层,并将定位到的能力层的标识信息通过中继定位响应发送给发起所述中继请求的所述能力层;
所述能力层在收到所述中继定位响应后,向相应的能力层请求提供所述内容,并将所述内容提供给所述用户。
进一步地,上述方法还包括:
所述管理层向所述控制层同步配置数据;
所述控制层从所述管理层同步本控制层相关的配置数据。
进一步地,上述方法还包括:
所述能力层计算和向对应控制层上报本能力层中的资源数据;其中,所述资源数据包括:节点存储模块的存储空间占用情况及及节点服务模块提供内容服务的并发数据;
所述控制层中收集本控制层对应的所有能力层上报的资源数据,并上报给所述管理层;
所述管理层收集所述控制层上报的所述资源数据。
本发明对所有CDN的业务数据进行集中式管理,网络中的控制层和能力层分布式部署,其中部分网元瘫痪不会导致整个系统异常。同时网络在控制层和能力层处理性能达到性能瓶颈的时候也可以通过线性扩展控制层和能力层的方式来提升整个系统的性能,以实现高性能的内容管理和服务,达到能为大规模、多业务的用户提供优质服务的需求。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本实施例中,采用自顶向下的设计,将CDN网络划分为:管理层、控制层和能力层;其中,管理层对应着一个以上的控制层,每个控制层对应一个以上的能力层。该系统清楚地划分了业务逻辑的边界,对管理功能和控制功能进行分离,对控制功能和能力功能进行分离。管理层负责CDN配置数据的配置管理以及提供与外围系统的接口,同时实现CDN网络的性能查询以及分发策略的制定;控制层负责提供与对应的管理层之间的数据配置管理的接口,实现对对应的能力层设备的管理以及对业务流程的控制;能力层负责提供与对应的控制层的管理接口,对内容提供存储,对用户终端提供媒体服务。内容提供商可通过管理层提供的接口将内容注入到本系统中,通过控制层的算法控制,分发到能力层设备进行存储;用户终端通过全局负载均衡服务器定位到合适的能力层设备进行媒体服务。
如图1所示,管理层中包括:数据管理模块、内容管理模块及资源管理模块;控制层中包括:数据控制模块、内容控制模块、资源控制模块及中继定位模块;能力层中包括:节点存储模块、节点服务模块及节点资源模块。其中:
数据管理模块负责整个系统的配置数据管理以及与所有控制层进行配置数据的同步;其中,配置数据中至少保存有能力层与控制层的对应关系;
内容管理模块负责提供接口供内容提供商发送内容注入请求,并将该请求发送到控制层;其中,内容注入请求消息中至少携带内容库的地址信息及请求注入的内容的标识信息;
资源管理模块负责收集所有控制层及能力层的资源数据;
数据控制模块负责在接收到数据管理模块发来的配置数据后,保存本控制层的配置数据;还用于与本控制层其他模块进行数据交互;
内容控制模块负责接收内容管理模块发来的内容注入请求,通过算法控制(如:根据内容编码计算内容在对应的能力层中的每个节点存储模块中的分布情况),将内容注入请求分发到对应能力层的各个节点存储模块;
资源控制模块负责收集本控制层对应的所有能力层上报的资源数据,并上报给资源管理模块;还用于与本控制层其他模块进行数据交互;
中继定位模块负责在收到所述中继定位请求后,根据资源控制模块提供的能力层节点的资源信息,通过中继定位算法获取内容所在的能力层,并将定位到的能力层的标识信息通过中继定位响应发送给发起该中继定位请求的能力层;
节点存储模块负责在接收到对应的控制层发来的内容注入请求后,根据其中携带的内容库的地址信息及请求注入的内容的标识信息,从内容库中将相应内容下拉至本节点存储模块进行存储;
节点服务模块负责处理用户发来的内容服务请求,如判断出本能力层的节点资源模块中保存有该内容服务请求中携带的内容标识信息所对应的内容,则为该用户提供所述内容的服务;如判断出本能力层的节点资源模块中未保存内容服务请求中携带的内容标识信息所对应的内容,则向本能力层对应的控制层发送中继请求,其中携带上述内容标识信息;还用于在收到中继定位响应后,向相应的能力层请求提供内容,并将该内容提供给所述用户
节点资源模块负责计算和上报本能力层中节点存储模块的资源数据,其中,资源数据包括:节点存储模块的存储空间占用情况及及节点服务模块提供内容服务的并发数据。
本发明还提供了一种CDN网络中内容管理和服务的方法,包括以下步骤:
数据管理模块中配置有CDN系统的所有配置数据,并同步到所有控制层的数据控制模块;
内容管理模块接收内容提供商发来的内容注入请求,并将该内容注入请求下发到各控制层中的内容控制模块,由内容控制模块根据算法控制,向所在控制层对应的能力层中的节点存储模块发送内容注入请求,以通知该节点存储模块从内容提供商的内容库中下拉内容进行存储。
用户通过用户终端向节点服务模块发起请求服务;
如果节点服务模块判断出本能力层中的节点资源模块中没有保存对应的内容,则该节点服务模块向所在能力层对应的控制层中的中继定位模块进行中继定位请求;该中继定位模块找到有所请求内容的源节点服务模块后,将该源节点服务模块的地址通知给上述节点服务模块,由该节点服务模块从源节点服务模块下拉码流,一边提供给用户服务。
节点资源模块向所在能力层对应的控制层中的资源控制模块上报节点资源;资源控制模块收集所在控制层所对应的各能力层中的节点资源模块上报的节点资源,并给管理层做监控分析以及作为中继定位模块的定位依据。
在本实施中,管理层、控制层及能力层之间均可采用TCP(TransmissionControl Protocol,传输控制协议)进行交互;能力层与内容库之间可采用FTP(File Transfer Protocol,文件传输协议)进行文件传输;用户终端与能力层之间采用哪种协议可根据用户终端类型的不同而定,如:当用户终端是STB(Set Top Box,机顶盒)时,二者之间可采用RTSP((Real Time StreamingProtocol,实时流传输协议)或H.264;当用户终端是PC或电话时,二者之间可采用HTTP(Hyper Text Transfer Protocol,超文本传输协议)或HLS(Http live Streaming,http实时流媒体协议)。
如图2所示,数据同步流程包括以下步骤:
步骤201:当某控制层的配置数据发生变更时,数据管理模块会向该控制层的数据控制模块i发送数据同步下发消息;
步骤202:数据控制模块i接收到该消息后,会向上述数据管理模块发送数据同步请求消息;
步骤203:数据管理模块收到后,回复数据同步响应给该数据控制模块i;数据控制模块i接收到该消息后,如果判断出需要进行数据同步,则进行数据同步。
如图3所述,内容注入流程包括以下步骤:
步骤301:内容提供商向内容管理模块发送内容注入请求消息,其中至少携带内容所在内容库的FTP信息,如IP地址、端口号、用户名及密码等;
步骤302:内容管理模块接收到该消息后,回复响应给内容提供商;
步骤303:内容管理模块向内容控制模块i发送内容注入请求消息;
步骤304:内容控制模块i接收消息后,回复响应给内容管理模块;
步骤305:内容控制模块i向节点存储模块j发送内容注入请求消息;
步骤306:节点存储模块j接收消息后,回复响应给内容控制模块i;
步骤307:节点存储模块j从指定的内容库将内容下拉到本节点存储模块进行存储;
步骤308:节点存储模块j存储完内容之后,向内容控制模块i发送内容注入结果上报消息;
步骤309:内容控制模块i接收消息后,回复响应给节点存储模块j;
步骤310:内容控制模块i向内容管理模块发送内容注入结果上报消息;
步骤311:内容管理模块接收消息后,回响应给内容控制模块i;
步骤312:内容管理模块向内容提供商发送内容注入结果上报消息;
步骤313:内容提供商接收消息后,回响应给内容管理模块。
如图4所示,用户点播服务流程包括以下步骤:
步骤401:用户终端向节点服务模块i发送内容服务请求消息,其中携带要点播的内容的标识信息;
步骤402:如判断出本能力层的节点存储模块中保存有此内容,则节点服务模块i向用户终端提供码流服务;
步骤403:如判断出本能力层的节点存储模块中未保存此内容,则节点服务模块i向所在能力层对应的控制层中的中继定位模块发送中继定位请求消息,其中携带上述用户终端要点播的内容的标识信息;
步骤404:中继定位模块收到后,向节点服务模块i返回中继定位响应消息,其中携带用户终端所要点播的内容所在的节点服务模块j的地址信息;
步骤405:节点服务模块i根据该响应消息,向节点服务模块j发送码流中继请求消息;
步骤406:节点服务模块j向节点服务模块i提供中继码流服务;
步骤407:节点服务模块i向用户终端提供中继码流服务。
如图5所述,节点资源上报流程包括以下步骤:
步骤501:节点资源模块j定时向资源控制模块i发送资源上报消息;
步骤502:资源控制模块i整合所有节点资源后,向资源管理模块发送资源上报消息。
在本实施例中,管理层、控制层、能力层之间采用TCP(TransmissionControl Protocol,传输控制协议)协议进行交互,在具体实施中可采用不同的通信协议。能力层与内容库之间采用FTP(File Transfer Protocol文件传输协议)协议进行文件传输,在具体实施中可采用不同的传输协议。用户终端与能力层之间采用哪种协议根据用户终端类型不同而定,在具体实施中可采用不同的媒体交互协议。
此外,如何确定用户的服务节点在具体实施中可采用不同的策略算法。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的发明内容,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。