专利名称:一种应用于iptv的p2p代理点播系统及实现方法
技术领域:
本发明涉及IPTV的流媒体服务和P2P技术领域,尤其涉及一种应用于IPTV的P2P 代理点播系统及实现方法。
背景技术:
IPTV即交互式网络电视,是一种利用宽带有线电视网,集互联网、多媒体、通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。在 IPTV系统中,用户首先通过机顶盒进行登录、鉴权、订购等操作,在相关操作完成后,用户选中某个节目进行观看,这时候机顶盒会到流媒体服务器下拉数据进行解码播放,因此在 IPTV系统中,流媒体服务器是系统中提供媒体数据服务的核心。流媒体服务器在对用户进行服务时会涉及到磁盘I/O操作,在IPTV系统用户量很大时,磁盘I/O操作就会非常频繁。 目前存在的问题主要有以下几个方面1.当用户点播一个节目时,有些流媒体服务器有能力(包括CPU、内存和带宽),但是其磁盘上没有相应的媒体数据,因此无法对外提供服务;2.当大量的用户点播一个节目时,有片源的流媒体服务器处于超负荷状态,频繁的磁盘I/O操作对磁盘的损害比较大,因而现网的流媒体服务器的磁盘经常会出现损坏故障。
发明内容
本发明的目的在于提供一种应用于IPTV的P2P代理点播系统及实现方法,降低在大量用户点播时系统中各流媒体服务器对其磁盘I/O的操作频率,同时实现全网流媒体服务器的负载均衡。为实现上述目的,本发明实施例采用以下技术方案。—种应用于IPTV的P2P代理点播系统,包括管理服务器、流媒体服务器和机顶盒,管理服务器包括流媒体服务器管理模块,用于对所有媒体文件进行分片并分布于各媒体服务器;还用于管理分片信息,在接收到P2P代理模块的片源节点信息请求时向其返回所需的片源节点信息;所述媒体服务器包括存储单元和P2P代理模块;所述存储单元,用于存储分片数据;所述P2P代理模块,用于从管理服务器获取存储有当前被点播的媒体文件的分片数据的片源节点信息,并通过P2P代理方式从各片源节点进行内容调度以获取相关的分片数据。优选地,所述存储单元包括分布式分片存储区,设于磁盘,用于存储被分布至本地的分片数据,以供本地读取;动态分片存储区,设于内存,用于缓存点播热度超过阈值的媒体文件的分片数据, 以供本地读取和/或对外进行内容调度时读取。
优选地,所述存储单元还包括第一分片存储区,设于磁盘/内存,用于存储所有媒体文件的第一分片数据。优选地,所述管理服务器还用于定期统计各媒体文件的点播热度,针对其中的点播热度超过阈值的媒体文件,触发相应的片源节点将相关的分片数据从分布式分片存储区向动态分片存储区中缓存。优选地,所述动态分片存储区的大小为2G。一种应用于IPTV的P2P代理点播实现方法,包括管理服务器对所有媒体文件进行分片并将其分布于各流媒体服务器;对于各流媒体服务器,在接收到本地的机顶盒的文件数据下拉请求时,从本地读取相关的分片数据和/或通过P2P代理的方式从其他存储有相关分片数据的流媒体服务器进行内容调度以获取相关的分片数据,然后将所获得的分片数据提供给所述机顶盒。优选地,所述将所有分片分布于各流媒体服务器的过程进一步包括在每个流媒体服务器的第一分片存储区中,存储所有媒体文件的第一分片数据; 在每个流媒体服务器的分布式分片存储区,存储被分布至本地的分片数据。优选地,上述方法还包括管理服务器定期统计各媒体文件的点播热度,针对其中的点播热度超过阈值的媒体文件,触发相应的片源节点将相关的分片数据从分布式分片存储区向动态分片存储区中缓存。优选地,所述流媒体服务器从其他流媒体服务器进行内容调度的过程进一步包括本地的P2P代理模块向管理服务器发送片源节点信息请求以获取存储有相关分片数据的片源节点信息;在接收到片源节点信息后,本地的P2P代理模块按序从各片源节点进行握手;在与当前的片源节点握手成功后向其发起P2P的分片数据请求,对端的P2P代理模块从动态分片存储区中读取相关的分片数据后发送给本地的P2P代理模块,本地的P2P代理模块在接收到之后将该分片数据保存至本地的动态分片存储区的同时写入分布式分片存储区。优选地,上述方法中,所述P2P代理模块在进行内容调度的过程中,每次进行调度的内容为整个分片数据或者部分分片数据。与现有技术相比,本本发明实施例具有以下有益效果本发明实施例实现了分布式流媒体服务,即将多媒体文件分布在不同的节点上, 多个节点协同工作为用户提供服务,不同节点上的多媒体文件分块,根据节点间文件的缺失情况和节点的负载情况进行相应的调度。本发明实施例通过P2P代理的方式将系统中所有的流媒体服务器的磁盘和内存形成了一个整体进行管理,从而避免了磁盘空间的浪费; 将系统中所有流媒体服务器的内存形成了一个整体进行管理,从而使得服务器的内存能够缓存更多的热片,避免在高峰时刻大量用户观看热片时导致的磁盘I/O的频繁操作。
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1为本发明实施例中应用于IPTV的P2P代理点播系统结构示意图2为本发明实施例中管理服务器的业务处理流程图;图3为本发明实施例中P2P代理点播实现方法流程图;图4为本发明实施例中P2P代理模块进行内容调度的方法流程图。
具体实施例方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以目前流媒体服务器的配置4G内存来说,其中2G的内存用来缓存热片内容,IG的内存用于跑服务程序。对于2G的内存而言,可以缓存几部片子的内容是有限的,但假如系统中有1 00台服务器,则共有200G的内存,这块内存是比较大的,可以缓存大量的热片。本发明针对这一特点,提出来P2P代理技术,所谓P2P代理,就是流媒体服务器在获取媒体数据时,P2P代理获取数据的方式不再是简单的从磁盘读取,其数据来源于三个方面从磁盘中直接读取、从内存中读取、从其他服务器的内存或者磁盘中进行实时调度,P2P代理模块会根据本地媒体文件存在情况决定三种数据获取策略,P2P代理模块封装成相应的库,流媒体服务器调用相应的库接口函数就可以实现文件数据的获取。通过P2P代理,可以实现将系统中所有流媒体服务器的磁盘和内存进行统一管理,系统中每个节点的存储体为一个整体,完成所负责的所有用户的服务工作,实现节点内部刀片间的所有内容共享。如图1所示,本实施例中,P2P代理点播系统包括以下组成部分一个包含流媒体服务器管理模块的管理服务器、多个流媒体服务器和多个机顶盒。机顶盒,用于到业务凭条进行登录、鉴权等操作,在鉴权成功后显示EPG内容,在用户从EPG上选择节目进行播放时触发其流播放模块从本地的流媒体服务器下拉相应的媒体数据。流媒体服务器,用于在接收到本地机顶盒的下拉请求时,根据热点文件的缺失情况从本地的存储单元直接读取相应的媒体数据和/或从其他流媒体服务器进行内容调度来获取相关的媒体数据,为机顶盒提供服务。该流媒体服务器包括存储单元和P2P代理模块;其中,存储单元,用于存储分片数据,划分为①第一分片存储区,设于磁盘/内存,用于存储所有媒体文件的第一分片数据,以使得用户在初始观看节目时能够获得快速的响应速度;②分布式分片存储区,设于磁盘,用于存储被分布至本地的分片数据,以供本地读取; ③动态分片存储区,设于内存,用于缓存部分分片数据,以供本地读取和/或对外进行内容调度时读取;P2P代理模块,用于从管理服务器获取存储有当前被点播的媒体文件的分片数据的片源节点信息,并通过P2P代理方式从各片源节点进行基于整个分片数据或者分片的部分数据的内容调度以获取相关的媒体数据。流媒体服务器管理模块,用于对所有媒体文件进行分片并分布于各流媒体服务器;对分片信息进行管理,为各P2P代理模块提供片源节点信息服务;定期统计各媒体文件的点播热度,针对其中的热片,触发相应的片源节点将相关的分片数据从分布式分片存储区向动态分片存储区中缓存。
如图2所示,本实施例中,P2P代理点播系统中管理服务器的业务处理流程,包括以下步骤201、对所有媒体文件进行分片,并将所有分片分布至各个媒体服务器。202、对于每个媒体服务器,在其第一分片存储区存储所有媒体文件的第一分片数据,在其分布式分片存储区存储分布至本地的分片数据。203、定期统计各媒体文件的点播热度,针对其中的热片,查找其片源节点,触发该片源节点将其分布式分片存储区中存储的相关的分片数据缓存至动态分片存储区。通过上述处理,由于所有媒体文件的第一分片都在各个流媒体服务器上存储,所以用户在初始观看节目时能够获得快速的响应速度;另外,由于热片被缓存至内存,本地用户在点播时流媒体服务器可直接从内存中读取,从而减少了对磁盘I/O操作次数。如图3所示,本实施例中,P2P代理点播过程包括以下步骤301、用户打开机顶盒,机顶盒到业务平台进行登录、鉴权等操作,业务平台在通过鉴权后,将EPG的内容在机顶盒上显示。302、用户从EPG上选择某个节目进行播放,触发机顶盒的流播放模块,机顶盒的流播放模块向流媒体服务器发送媒体文件数据下拉请求。303、流媒体服务器在接收到机顶盒的媒体文件数据下拉请求后,若本流媒体服务器为片源,则直接从内存或者磁盘中读取相关的文件数据,供通过P2P代理模块获取机顶盒需要的数据。如果本流媒体服务器不是片源,则执行步骤304,采用P2P代理方式进行内
容调度。304、本地的P2P代理模块会自动到存储有片源的服务器上面进行调度,调度回来的数据在存放到内存中的同时写到磁盘上。这样既实现了快速的对用户提供服务,又实现了热片在流媒体服务器之间的调度。305、机顶盒在接收到数据后,进行解码播放。如图4所示,在上述步骤304中,P2P代理模块进行内容调度的过程具体为401、请求方的P2P代理模块首先向管理服务器申请哪些节点具有相关的分片数据;402、在管理服务器返回相应的节点后,请求方的P2P代理模块和这些节点进行握手,握手成功后发起P2P的分片数据请求;403、对端的P2P代理模块在接收到分片数据请求消息后,从自身的内存中将所需的数据读取出来发送给请求方的P2P代理模块;404、请求方的P2P代理模块在接收到各个节点的分片数据回复消息后,将回复消息组装成原始的分片数据,然后将该分片数据保存到内存中,流媒体服务器模块从内存中将相应的数据读取出来后为机顶盒提供数据服务。对于点播来说,难度比较大的就是虽然用户看的是同一个节目,但是各个用户的进度不一样,因此当连到一台媒体服务器上的所有用户的观看进度差异比较大时,如果采用如上所述基于分片的内容调度,则在恶劣情况下该流媒体服务器需要将整部片源全部在动态分片存储区中缓存起来才能够满足对外服务。因此在此情况下,P2P代理模块可细化调度的粒度,即在进行某个热片的内存缓存时,仅仅是缓存该分片的部分数据(这部分缓存的数据能够满足播放的需求),该分片的其他部分数据在后续再实时地从其他流媒体服
7务器调度过来。假设分片的大小为24M,每个分片只需要缓存的部分数据大小为2M,对于一部32XM = 768M的影片,则只需要32X2 = 64M内存就可以为全网的用户服务,而一台流媒体服务器可用于缓存热片的内存(即动态分片存储区)大小为2G,则可以缓存32部热片,通过P2P代理的方式,可将所有流媒体服务器的内存统一管理,假如有100台流媒体服务器,则可以缓存3200部热片,对于该3200部热片,只需要一次磁盘读写就可以实现对全网用户进行服务,大大减低了磁盘I/0操作。当用户量比较大时,管理服务器会进行负载均衡,而现有技术中常规的负载均衡方式是将用户平均分配到磁盘上具有该片源的流媒体服务器上面,如果这些流媒体服务器的负荷已经比较大的话,会影响用户的服务,而这时系统中可能磁盘没有片源的有些流媒体服务器却处于空闲状态。为了解决这个问题,本实施例中管理服务器在进行负载均衡时, 只管该流媒体的服务器在CPU、内存、磁盘IO方面的负荷考虑是否要调度,而不管该服务器是否有相关的片源,片源数据通过P2P代理方式获取,这样就能实现全网流媒体服务器的负载均衡。上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、 修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
权利要求
1.一种应用于IPTV的P2P代理点播系统,包括管理服务器、流媒体服务器和机顶盒,其特征在于,管理服务器包括流媒体服务器管理模块,用于对所有媒体文件进行分片并分布于各媒体服务器;还用于管理分片信息,在接收到P2P代理模块的片源节点信息请求时向其返回所需的片源节点信息;所述媒体服务器包括存储单元和P2P代理模块;所述存储单元,用于存储分片数据;所述P2P代理模块,用于从管理服务器获取存储有当前被点播的媒体文件的分片数据的片源节点信息,并通过P2P代理方式从各片源节点进行内容调度以获取相关的分片数据。
2.如权利要求1所述的P2P代理点播系统,其特征在于,所述存储单元包括 分布式分片存储区,设于磁盘,用于存储被分布至本地的分片数据,以供本地读取; 动态分片存储区,设于内存,用于缓存点播热度超过阈值的媒体文件的分片数据,以供本地读取和/或对外进行内容调度时读取。
3.如权利要求2所述的P2P代理点播系统,其特征在于,所述存储单元还包括第一分片存储区,设于磁盘/内存,用于存储所有媒体文件的第一分片数据。
4.如权利要求1至3任一所述的P2P代理点播系统,其特征在于,所述管理服务器还用于定期统计各媒体文件的点播热度,针对其中的点播热度超过阈值的媒体文件,触发相应的片源节点将相关的分片数据从分布式分片存储区向动态分片存储区中缓存。
5.如权利要求2所述的P2P代理点播系统,其特征在于,所述动态分片存储区的大小为2G。
6.一种应用于IPTV的P2P代理点播实现方法,其特征在于,该方法包括 管理服务器对所有媒体文件进行分片并将其分布于各流媒体服务器;对于各流媒体服务器,在接收到本地的机顶盒的文件数据下拉请求时,从本地读取相关的分片数据和/或通过P2P代理的方式从其他存储有相关分片数据的流媒体服务器进行内容调度以获取相关的分片数据,然后将所获得的分片数据提供给所述机顶盒。
7.如权利要求6所述的P2P代理点播实现方法,其特征在于,所述将所有分片分布于各流媒体服务器的过程进一步包括在每个流媒体服务器的第一分片存储区中,存储所有媒体文件的第一分片数据;在每个流媒体服务器的分布式分片存储区,存储被分布至本地的分片数据。
8.如权利要求7所述的P2P代理点播实现方法,其特征在于,该方法还包括管理服务器定期统计各媒体文件的点播热度,针对其中的点播热度超过阈值的媒体文件,触发相应的片源节点将相关的分片数据从分布式分片存储区向动态分片存储区中缓存。
9.如权利要求8所述的P2P代理点播实现方法,其特征在于,所述流媒体服务器从其他流媒体服务器进行内容调度的过程进一步包括本地的P2P代理模块向管理服务器发送片源节点信息请求以获取存储有相关分片数据的片源节点信息;在接收到片源节点信息后,本地的P2P代理模块按序从各片源节点进行握手;在与当前的片源节点握手成功后向其发起P2P的分片数据请求,对端的P2P代理模块从动态分片存储区中读取相关的分片数据后发送给本地的P2P代理模块,本地的P2P代理模块在接收到之后将该分片数据保存至本地的动态分片存储区的同时写入分布式分片存储区。
10.如权利要求9所述的P2P代理点播实现方法,其特征在于,该方法中,所述P2P代理模块在进行内容调度的过程中,每次进行调度的内容为整个分片数据或者部分分片数据。
全文摘要
本发明提供了一种应用于IPTV的P2P代理点播系统及实现方法,所述方法包括管理服务器、流媒体服务器和机顶盒;管理服务器包括流媒体服务器管理模块,用于对所有媒体文件进行分片并分布于各媒体服务器;管理分片信息,在接收到P2P代理模块的片源节点信息请求时向其返回所需的片源节点信息;媒体服务器包括存储单元和P2P代理模块;所述存储单元,用于存储分片数据;P2P代理模块,用于从管理服务器获取存储有当前被点播的媒体文件的分片数据的片源节点信息,并通过P2P代理方式从各片源节点进行内容调度以获取相关的分片数据。本发明合理利用了磁盘空间,避免了浪费;降低了高峰时刻大量用户观看时对磁盘I/O的操作频率。
文档编号H04N21/63GK102291629SQ20111025124
公开日2011年12月21日 申请日期2011年8月29日 优先权日2011年8月29日
发明者季健 申请人:中兴通讯股份有限公司