【发明内容】
为了解决现有技术中的上述问题,本发明采用的技术方案如下:一种基于内容分发网络的内容提供系统,其特征在于,该系统包括:一个或多个内容提供商,一个或多个管理服务器,一个或多个边缘服务器,一个或者多个用户端。
内容提供商是系统中的数据源,对网络中的边缘服务器提供内容;还用于对内容进行管理,将内容进行分类后以目录页面的形式呈现给用户端,还用于将推荐内容以页面的形式呈现给用户端;用户端可以通过登陆内容提供商提供的页面的方式获取内容标识和内容推荐信息,并发出内容请求;
管理服务器用于对内容提供进行管理,还用于对用户端及其对应的常用边缘服务器进行管理,根据用户需求选择提供内容的常用边缘服务器和/或非常用边缘服务器进行内容提供,用于选择常用服务器进行相应质量等级内容的加载;
边缘服务器用于为客户端提供所请求的质量等级的内容信息,用于存储内容提供商提供的内容信息,每个边缘服务器可以被标记为一用户端的常用边缘服务器或非常用边缘服务器;一用户端的常用边缘服务器为距离该用户通信开销较小且能够频繁为该一用户端提供请求内容的边缘服务器;
用户端用于根据需求请求内容信息,用户通过用户端指定包含所请求内容的质量等级和到达速度的用户需求;用户端接收分块的内容,将分块到达的内容块按顺序存放在本地存储空间中,按内容的本身的逻辑顺序呈现给用户。
进一步的,用户端为用户终端设备,包括手机、平板电脑、个人计算机。
进一步的,用户端在空闲时段定期的发出测试数据包,通过数据包应答速度计算该用户端到不同边缘服务器的通信开销,并将该通信开销提供给管理服务器。
进一步的,将用户端进行分组,同一分组内的用户端对应相同或者相近的常用边缘服务器组。
进一步的,同一用户端分组内的用户端的用户具有相似的偏好,且位于同一物理区域内。
进一步的,管理服务器采集每次用户端请求的内容,基于该用户采集的用户请求信息和用户端所在的物理区域进行用户分组。
进一步的,内容具有类型属性,基于该内容的类型信息统计用户偏好。
进一步的,内容提供商为经过帐号鉴权的用户端提供内容。
进一步的,内容提供商保存该用户的帐号信息用于进行帐号鉴权。
进一步的,边缘服务器为分布式服务器,管理服务器对该边缘服务器进行分布式管理。
本发明的有益效果包括:能够在可用有限的存储空间内用较短时间完成同等数据的压缩,通过分块加载内容的方式与以往一次性加载内容的算法不同,初步节省了内存空间;还能够监视当前缓冲区使用情况,为可用存储空间合理分配加载任务;在真正加载时,异步唤醒加载进程,从而在不降低计算性能的前提下降低程序的存储空间的占用。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
参见附图1,是本发明所应用的一种基于内容分发网络的内容提供系统,该系统包括一个或多个内容提供商,一个或多个管理服务器,一个或多个边缘服务器,一个或者多个用户端。
内容提供商是系统中的数据源,对网络中的边缘服务器提供内容;还用于对内容进行管理,将内容进行分类后以目录页面的形式呈现给用户端,还用于将推荐内容以页面的形式呈现给用户端;用户端可以通过登陆内容提供商提供的页面的方式获取内容标识和内容推荐信息,并发出内容请求;
管理服务器用于对内容提供进行管理,还用于对用户端及其对应的常用边缘服务器进行管理,根据用户需求选择提供内容的常用边缘服务器和/或非常用边缘服务器进行内容提供,用于选择常用服务器进行相应质量等级内容的加载;
边缘服务器用于为客户端提供所请求的质量等级的内容信息,用于存储内容提供商提供的内容信息,每个边缘服务器可以被标记为一用户端的常用边缘服务器或非常用边缘服务器;一用户端的常用边缘服务器为距离该用户通信开销较小且能够频繁为该一用户端提供请求内容的边缘服务器;
用户端用于根据需求请求内容信息,用户通过用户端指定包含所请求内容的质量等级和到达速度的用户需求;用户端接收分块的内容,将分块到达的内容块按顺序存放在本地存储空间中,按内容的本身的逻辑顺序呈现给用户;
基于上述系统,下面对本发明的一种基于内容分发网络的内容提供方法进行详细说明:
(1)用户端通过内容请求界面发出针对指定内容的内容请求,该请求中携带内容标识;该内容请求被发送给管理服务器;内容请求中携带所请求的内容的需求参数(Q,S);其中,Q为内容质量,S为到达速度;其中,内容质量限定的所请求的内容的呈现质量,通常,内容质量越高内容的大小越大;而到达速度限定内容到达用户端的加载速度;内容质量和到达速度之间可能存在矛盾,当内容质量较高时,可能需要牺牲到达速度;
优选的:该内容请求界面通过用户端的应用程序、网页、特定功能来呈现,该呈现的内容由内容提供商提供;
(2)管理服务器向该用户端对应的常用边缘服务器组发送内容查询请求,每个常用边缘服务器组根据内容标识从本地目录中查找用户端请求的内容,如果查找到所请求的内容,则返回所请求内容的内容质量作为响应,否则不做响应;
管理服务器保存用户端及其常用边缘服务器组的对应表;每个用户端对应的常用边缘服务器组可能是相同或不同的(不同包括完全不同和部分不同);该对照表内容被管理服务器实时更新;常用边缘服务器组中的常用边缘服务器选自和用户端之间的通信开销小于第一阈值的边缘服务器;常用边缘服务器做出一次响应,则其命中率增加1;每过一个时间周期命中率减少第一预设值,此时,如果命中率小于第二预设值,则将该命中率小于第二预设值的边缘服务器从用户端对应的常用边缘服务器组中删除;如果一边缘服务器和该用户端之间的通信开销小于第一阈值,则将其增加入该用户端对应的常用边缘服务器组,并将其命中率设置为一初始值;优选的:该初始值大于第二预设值;
(3)基于常用边缘服务器的响应,选择常用边缘服务器或非常用边缘服务器对用户进行内容提供,以及基于内容热度选择一个或多个常用边缘服务器进行内容加载;
如果管理服务器接收到常用边缘服务器的响应,则根据响应常用边缘服务器Li及其返回的内容质量QLi和需求参数(Q,S)选择一个常用边缘服务器提供内容;具体的:根据公式(1)计算每个响应常用边缘服务器的平衡系数Bi,其中Ci为边缘服务器Li和用户端之间的通信开销;该通信开销值为动态值,需要进行定期的进行实时更新,w1为调整值,该调整值为管理服务器设置的预设值;选择Bi最小的常用边缘服务器作为所选择的常用边缘服务器;该常用边缘服务器所能提供的内容质量以及到达速度和用户端的需求最接近;
优选的:当一个常用边缘服务器能够提供多个质量等级的内容时,针对每个质量等级均计算该平衡系数值;其中,质量等级分为n个等级,分别为Q1~Qn;
如果管理服务器接没有收到任何一个常用边缘服务器的响应,则根据内容热度等级HT选择一个或者多个常用边缘服务器进行内容加载,并选择一个非常用边缘服务器提供内容;其中热度分为m个等级;
选择一个非常用边缘服务器,具体为:获取通信开销Ci小于第二阈值的非常用边缘服务器中能够提供内容质量等级大于等于Q的非常用边缘服务器组,如果组中元素的个数小于1,则通知用户等待;此时用户需要等待常用边缘服务器内容加载后进行内容提供;否则,从该非常用边缘服务器组中选择通信开销Ci最小的非常用边缘服务器作为所选择的非常用边缘服务器;由该非常用边缘服务器为用户端提供内容,具体为:获取大小为SB的内容块Block,其中该SB=(w2×Q)/MIN{Ci},w2为调节因子,通信开销较大的情况下,先发送较小的内容块;如果该非常用边缘服务器能够提供的内容质量大于Q,则将该内容块Block先进行有损压缩,将该内容块压缩为质量等级Q的内容块Q_Block,然后对该经过有损压缩后的内容块Q_Block进行无损压缩成为内容块C_Q_Block,然后将该内容块C_Q_Block提供给用户端;
根据内容热度HT等级(HT为HT1~HTm,其中HT1热度值最低,HTm热度值最高)选择一个或者多个常用边缘服务器进行内容加载,具体为:
(A)如果内容热度P1×HTm<HT=<HTm;首先选择通信开销Ci最小的常用边缘服务器加载质量等级为Q的内容,然后获取剩余常用边缘服务器组中每个常用边缘服务器的可用存储空间,将可用存储空间从大到小排列,选择排列前n-1的常用边缘服务器分别加载除了质量等级Q之外的n-1个质量等级的内容,每个常用边缘服务器加载一个质量等级的内容;其中,P1为第一比率值;优选的:P1=90%;
(B)如果内容热度P2×HTm<HT=<P1×HTm;首先选择通信开销Ci最小的常用边缘服务器加载质量等级为Q的内容,然后获取剩余常用边缘服务器组中每个常用边缘服务器的可用存储空间,将可用存储空间从大到小排列,选择排列前(n-1)mod 2的常用边缘服务器分别加载除了质量等级Q之外的(n-1)mod 2个质量等级的内容,每个常用边缘服务器加载一个质量等级的内容;其中,P2为第二比率值;优选的:P1=80%;
(C)如果内容热度P3×HTm<HT=<P2×HTm;首先选择通信开销Ci最小的常用边缘服务器加载质量等级为Q的内容,然后获取剩余可用存储空间最大的常用边缘服务器用于加载质量等级Qn的内容,获取可用存储空间最小的常用边缘服务器用于加载质量等级Q1的内容;其中,P3为第三比率值;优选的:P1=50%;
(D)如果内容热度HT=<P3×HTm;则选择通信开销Ci最小的常用边缘服务器加载质量等级为Q的内容,其中,P3为第三比率值;优选的:P1=50%;(4)内容提供商基于管理服务器的选择,获取相应质量等级的内容,将该质量等级的内容进行分块和压缩后提供到相应常用边缘服务器;具体为:针对每个需要向其提供内容的常用边缘服务器,内容提供商首先创建提供进程,该进程获取该常用边缘服务器的可用接收缓存大小Siz_Buf,根据公式(2)计算内容分块大小Siz_BlK,其中CPmin_Qk为质量等级Qk内容对应的最小压缩率,PC为冗余百分比,PC为和压缩算法对应的预设值;
Siz_BlK=Siz_Buf/(CPmin_Qk×(1+PC)) (2)
进程将内容按从头到尾的顺序分成多个大小为Siz_BlK的块,不足1块大小的内容分成1块;在内容提供商的发送缓存空间中申请大小为Siz_Buf的空间,进程逐个的获取每个分块,将该分块经过压缩后保存到该大小为Siz_Buf的发送缓存空间中,然后将该压缩后的分块发送到对应的常用边缘服务器中;在发送完成后,将该大小为Siz_Buf的空间释放后,进程进入休眠状态,在接收到常用边缘服务器接收完成的消息后,该进程被唤醒并继续下一内容块的获取、压缩和发送,直到所有的内容块均被处理完毕为止;
由于内容提供商面向所有的边缘服务器,因此其发送缓存空间非常有限,通过进程异步唤醒的方式,使得发送缓存空间在时间维度和空间维度上均可以实现共享,从而增加了空间的利用度;
优选的:质量等级及其对应的最小压缩率关联的保存在对照表中,该对照表保存在内容提供商的本地存储中;优选的PC=10%;
(5)常用边缘服务器用于计算可用接收缓存大小Siz_Buf,接收内容提供商提供的内容块,并将接收到的内容块按顺序保存到本地存储空间中;具体为:常用边缘服务器基于公式(3)计算可用接收缓存大小Siz_Buf;其中,Qk为管理服务器分配的要加载的内容质量,Buf_All为该常用边缘服务器当前全部可用接收缓存大小,Par_Cur为当前正在并行加载的内容的数量,Par_all为该常用边缘服务器支持的最大并行加载内容的数量;
Siz_Buf=Buf_All×(Qk/Qk+Q1)/(Par_all-Par_Cur) (3)
常用边缘服务器创建接收进程,该接收进程在接收缓存空间中申请大小为Siz_Buf的空间,将接收到的内容块存放在该空间中,接收完毕后该接收到的内容块按内容的逻辑顺序和内容标识关联保存载本地缓存空间中;常用边缘服务器在当前内容块接收完毕后,发送内容块接收完毕消息给内容提供商以继续后续内容块的提供;该申请的大小为Siz_Buf的空间在内容加载过程中一直保留而不释放,直到内容对应的所有内容块均加载完毕后,进程释放该申请的接收缓存空间并结束接收进程;
常用边缘服务器需要留出少量的空间,在超出支持的最大并行度之外还能允许最低服务质量的内容加载;
(6)接收质量等级为Q的内容的常用边缘服务器提供内容给用户端;具体的:当该接收质量等级为Q的内容的常用边缘服务器接收到的内容块为所选择非常用边缘服务器还没有提供给用户端的内容时,停止该非常用边缘服务器的内容提供,改为由该常用边缘服务器进行内容提供;也就是说:当常用边缘服务器的加载速度追赶上非常用边缘服务器的提供速度时,进行提供边缘服务器的切换;
(7)用户端获取常用边缘服务器或非常用边缘服务器提供的内容块,将接收到的内容块进行解压缩后按内容的逻辑顺序和内容标识关联后保存在本地存储空间中;接收到的内容块不需要全部到齐,只要符合呈现顺序的内容块已经接收完毕,就可以将该内容块按呈现顺序呈现给用户;
还包括热点内容主动推送的步骤:
(8)内容提供商将新的热点内容提供给各个边缘服务器;具体的:内容提供商获取活跃度高于第一活跃值的边缘服务器组,获取该边缘服务器组中每个边缘服务器的可用存储空间大小,基于该存储空间的大小为该边缘服务器提供相应质量的等级的内容;优选的:为可用存储空间较大的边缘服务器提供质量等级较高的内容;
本发明的一种基于内容分发网络的内容提供系统,能够在可用有限的存储空间内用较短时间完成同等数据的压缩,通过分块加载内容的方式与以往一次性加载内容的算法不同,初步节省了内存空间;还能够监视当前缓冲区使用情况,为可用存储空间合理分配加载任务;在真正加载时,异步唤醒加载进程,从而在不降低计算性能的前提下降低程序的存储空间的占用。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。