更新节目单的方法及其设备与流程

文档序号:11591070阅读:226来源:国知局
更新节目单的方法及其设备与流程

本申请涉及领域直播领域,并且更具体地,涉及一种更新节目单的方法及其设备。



背景技术:

在网络协议电视(internetprotocoltelevision,iptv)、数字广播电视(digitalvideobroadcasting,dvb)等直播运营场景中,网络运营商需要维护直播频道中的节目单。一般来说,行业内通常采用可扩展标记语言(extensiblemarkuplanguage,xml)文件格式编写电视节目,该基于xml文件格式的电视节目(televisionprogram,tvprogram)编写规范简称为xmltv规范。

在该xmltv规范中,可以批量的将内容提供商(contentprovider,cp)中某个频道中的节目单同步更新至内容管理系统(contentmanagementsystem,cms)中。然而,该xmltv规范中没有明确节目单中节目的变更是属于何种操作类型,例如新增、修改或者删除。cms需要将cp新导入的每个节目与数据库(database)中已有的节目逐个字段进行比较,分析新导入节目和已有节目是否有差异。

然而在实际运营场景中,cp导入的节目单中很多节目都是重复的,比如2017年3月1号导入的是2017年3月2号到2017年3月15号的节目,而2017年3月2号导入的是2017年3月3号到2017年3月16号的节目,实际上2017年3月3号到2017年3月15号的节目绝大部分是重复的,仅个别节目有修改,以及2017年3月16号的节目是新增的。

当频道和节目数量较多时,如1000个频道,每20分钟一个节目,一次性同步两周的节目单,则有100万条节目。如果采用逐条比较新导入的节目单与数据库中已有节目单中的节目是否存在差异,则cms处理的时间很长,cp等待导入完成响应的时间也较长,这样,终端用户观看的最新的节目单记录也会有延迟,影响用户体验。

因此,亟需一种更新节目单的方法,能够提高节目单的更新效率。



技术实现要素:

本申请提供一种,能够提高节目单的更新效率。

第一方面,提供一种更新节目单的方法,包括:将目标节目的摘要与目标频道中已经存在的每个节目的摘要进行比较,其中,节目的摘要为由表示该节目的全部信息字段按预设规则生成的唯一标识,所述目标节目属于目标频道中的节目;根据所述目标节目的摘要与所述目标频道中每个节目的摘要的比较结果,确定是否更新所述目标频道中的节目

应理解,节目的信息字段指的是该节目节点中所有元素的字段。

因此,本申请实施例提供的方法通过比较目标节目的摘要与目标频道中每个节目的摘要,确定是否更新目标频道中的节目,有利于提升更新节目单的效率,并且有利于减轻由于更新节目单对系统资源的占用。

结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述目标节目的摘要与所述目标频道中每个节目的摘要的比较结果,确定是否更新所述目标频道中的节目,包括:当所述目标节目的摘要与所述目标节目频道中已经存在的一个节目的摘要相同时,不更新所述目标节目频道中的节目。

因此,本申请实施例提供的方法不需要对节目节点中的每个元素字段进行一一比对,只需要比较已存在的节目摘要和目标节目摘要是否相同,就能确定是否需要使用该目标节目更新目标节目频道中的节目。

结合第一方面及其上述实现方式,在第一方面的第二种可能的实现方式中,所述根据所述目标节目的摘要与所述目标频道中每个节目的摘要的比较结果,确定是否更新所述目标频道中的节目,包括:当所述目标节目的摘要与所述目标节目频道中的每个节目的摘要都不相同时,更新所述目标节目频道中的节目。

结合第一方面及其上述实现方式,在第一方面的第三种可能的实现方式中,所述更新所述目标节目频道中的节目,包括:当所述目标节目的播出时段与所述目标频道中已经存在的失效节目的播出时段具有重叠部分,使用所述目标节目替换所述目标频道中的失效节目。

结合第一方面及其上述实现方式,在第一方面的第四种可能的实现方式中,在所述将所述目标节目的摘要与目标频道中已经存在的每个节目的摘要进行比较之前,所述方法还包括:接收内容提供商cp发送的用于表示所述目标节目的信息字段,并根据表示所述目标节目的信息字段按照所述预设规则生成所述目标节目的摘要。

也就是说,cms需要先接收cp发送的目标节目的信息字段,并根据该目标节目的信息字段按照预设规则生成该目标节目的摘要。

结合第一方面及其上述实现方式,在第一方面的第五种可能的实现方式中,在所述将所述目标节目的摘要与目标频道中已经存在的每个节目的摘要进行比较之前,所述方法还包括:接收cp发送的用于表示所述目标节目的完备信息字段,所述目标节目的完备信息字段包括所述目标节目的标识和所述目标节目的信息字段按照所述预设规则生成所述目标节目的摘要。

应理解,目标节目的完备信息字段包括了目标节目的信息字段、目标节目的标识和目标节目的摘要。

因此,本申请实施例通过在节目单属性中扩展节目标识和摘要,能够快速排除新导入的重复节目,提升节目单的发布速度。

结合第一方面及其上述实现方式,在第一方面的第六种可能的实现方式中,所述根据所述目标节目的摘要与所述目标频道中每个节目的摘要的比较结果,确定是否更新所述目标频道中的节目,包括:根据所述目标节目的标识,确定所述目标节目是否为所述目标频道中已经存在的节目;如果所述目标节目不是所述目标频道中已经存在的节目,则保存所述目标节目的信息字段;如果所述目标节目为目标频道中已经存在的节目,则根据所述目标节目的摘要和所述目标频道中已经存在的节目的摘要进行比较。

第二方面,提供了一种更新节目单的方法,包括:根据目标节目的全部信息字段按照所述预设规则生成所述目标节目的摘要;

向内容管理系统发送用于表示所述目标节目的完备信息字段,所述目标节目的完备信息字段包括所述目标节目的标识和所述目标节目的全部信息字段按照所述预设规则生成所述目标节目的摘要。

因此,本申请实施例通过在节目单属性中扩展节目标识和摘要,能够快速排除新导入的重复节目,提升节目单的发布速度。

第三方面,提供了一种设备,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该终端设备包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。

第四方面,提供了一种设备,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该网络设备包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。

第五方面,提供了一种设备,该终端设备包括:收发器、存储器、处理器和总线。其中,该收发器、该存储器和该处理器通过该总线相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收和/或发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。

第六方面,提供了一种设备,包括:收发器、存储器、处理器和总线。其中,该收发器、该存储器和该处理器通过该总线相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号和/或发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。

第七方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。

第八方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。

第九方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。

第十方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第二方面或第二方面的任意可能的实现方式中的方法。

附图说明

图1是本申请一个实施例的应用场景的示意性框图。

图2示出了本申请一个实施例的方法的示意性流程图。

图3是本申请一个实施例的方法的示意性流程图。

图4是本申请一个实施例的方法的示意性流程图。

图5是本申请一个实施例的设备的示意性结构框图。

图6是本申请一个实施例的装置的示意图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

图1是本申请一个实施例的应用场景的示意性框图。如图1所示,其中,cp用于提供直播节目单,也就是说cp用于向cms导入节目单;文件传输协议服务器(filetransferprotocolserver,ftpserver),用于放置内容提供商发布的节目单文件;cms用于管理节目单在视频业务终端设备中的呈现,为终端设备组织节目单内容;database用于保存节目单记录。

下面简单描述cms通过ftpserver从cp中获取描述某一节目单的xmltv文件,并将该xmltv文件进行解析后保存到数据库中的过程。该具体流程如下:cp将上述xmltv文件编辑完成后,上传到ftp服务器中;cp向cms发送发布xmltv文件的简单对象访问协议(simpleobjectaccessprotocol,soap)请求消息,该soap请求消息包括上述xmltv文件在ftp服务器上的路径;cms收到soap消息请求后,返回响应;cms根据xmltv在ftp服务器上的路径下载xmltv文件;cms解析xmltv文件;如果xmltv记录中有引用海报图片,cms需要在从ftp服务器上下载图片;cms根据解析好的节目单记录,更新cms数据库中的节目单信息;cms向cp发送xmltv文件的处理结果;cp收到cms发起soap消息后,返回响应。

下面示出的xmltv文件表示的节目单由2个频道(channel)和多个节目(programme)节点组成,每个programme有多个属性和子元素节点组成。

在现有xmltv规范中,cms从ftp服务器下载上述xmltv文件后,解析xmltv文件;cms从数据库中查询一个频道下所有的节目;cms逐条比较xmltv文件导入的节目与数据库中原有记录的每个节目的差异;如果一个节目的播出时间发生变更,则需要先删除原有记录,再创建新的节目单记录。应理解,播出时间包括开始时间和结束时间。

由于节目没有唯一的标识字段,因此只能够通过频道、开始时间和结束时间这三元素来判断是否为同一个节目。如果某一个节目的播出时间发生变更,则只能先删除数据库中的节目,再将由cp导入的节目创建在数据库中。

以上采用逐条比较新导入的节目单与数据库中已有节目单中的节目是否存在差异,则cms处理的时间很长,cp等待导入完成响应的时间也较长,这样,终端用户观看的最新的节目单记录也会有延迟,影响用户体验。

因此,本申请实施例提供一种更新节目单的方法,能够提高节目单的更新效率。

图2示出了本申请一个实施例的方法的示意性流程图。如图2所示,该方法的执行主体可以为cms系统,该方法200包括:

步骤210,将目标节目的摘要与目标频道中已经存在的每个节目的摘要进行比较,其中,节目的摘要为由表示该节目的全部信息字段按预设规则生成的唯一标识,目标节目属于目标频道中的节目。

步骤220,根据目标节目的摘要与目标频道中每个节目的摘要的比较结果,确定是否更新目标频道中的节目。

具体地,在步骤210中,举例来说,目标节目的摘要生成过程如下:cms将xmltv中的目标节目节点中的全部字段按照预设顺序拼接成为一个字符串,例如,在java中,可以将目标节目节点解析成为一个对象,将该对象的属性按照预设的顺序转换为一个字符串输出。

将输出的字符串使用摘要算法(例如sha-256、md5),生成该目标节目的摘要,该摘要结果可以为一个2进制的字节数组,可选地,可以将该字节数组转换为16进制的字符,例如:"67b55abd13610c8dc02ac73b206b5b8ad579c2cff6f061f2f9e06f2cca7c2d03"。

应理解,预设顺序指节目节点中每个元素字段的拼接顺序,对于该预设顺序本申请不做限定,举例来说,该预设顺序为依次拼接下列字段:播出时间字段、演员字段、节目标题字段。

在步骤210中,目标节目可以为任意一个由cp导入的节目,目标节目为目标频道中的节目,目标频道中已经存在的节目可以保存在数据库中,cms也将目标频道中已经存在的节目中的每个节目生成其对应的摘要,并将该目标频道中的每个节目及其摘要存储在数据库中。

应理解,标识目标节目的全部信息字段可以采用除xmltv规范之外的方式,例如通过分隔符(如|)分隔节目的字段的文本传输方式,本申请不做限定。

因此,本申请实施例提供的方法通过比较目标节目的摘要与目标频道中每个节目的摘要,确定是否更新目标频道中的节目,有利于提升更新节目单的效率,并且有利于减轻由于更新节目单对系统资源的占用。

可选地,作为本申请一个实施例,所述根据所述目标节目的摘要与所述目标频道中每个节目的摘要的比较结果,确定是否更新所述目标频道中的节目,包括:当所述目标节目的摘要与所述目标节目频道中已经存在的一个节目的摘要相同时,不更新所述目标节目频道中的节目。

由于每个节目的摘要是根据该节目的全部字段按预设规则生成的唯一确定的字符串,因此,当目标节目的摘要与目标频道中已经存在的一个节目的摘要相同时,证明该目标节目并没有变更。

因此,本申请实施例提供的方法不需要对节目节点中的每个元素字段进行一一比对,只需要比较已存在的节目摘要和目标节目摘要是否相同,就能确定是否需要使用该目标节目更新目标节目频道中的节目。

可选地,作为本申请一个实施例,所述根据所述目标节目的摘要与所述目标频道中每个节目的摘要的比较结果,确定是否更新所述目标频道中的节目,包括:当所述目标节目的摘要与所述目标节目频道中的每个节目的摘要都不相同时,更新所述目标节目频道中的节目。

由于每个节目的摘要是根据该节目的全部信息字段按预设规则生成的唯一确定的字符串,因此,当目标节目的摘要与目标频道中已经存在的一个节目的摘要不相同时,证明该目标节目还未保存在数据库中或者改目标节目节点中包括的一个或多个元素发生了变化。

可选地,作为本申请一个实施例,所述更新所述目标节目频道中的节目,包括:当所述目标节目的播出时段与所述目标频道中已经存在的失效节目的播出时段具有重叠部分,那么使用所述目标节目替换所述目标频道中的失效节目。

具体地,如果目标节目的播出时间发送变化,那么需要删除目标节目对应时间段中已经存在的记录,创建目标节目的记录,目标节目的记录包括目标节目的信息字段。

可选地,作为本申请一个实施例,在所述将所述目标节目的摘要与目标频道中已经存在的每个节目的摘要进行比较之前,所述方法还包括:接收内容提供商cp发送的用于表示所述目标节目的信息字段,并根据表示所述目标节目的全部信息字段按照所述预设规则生成所述目标节目的摘要。

也就是说,cms需要先接收cp发送的目标节目的信息字段,并根据该目标节目的信息字段按照预设规则生成该目标节目的摘要。

下面结合具体例子,描述本申请实施例的方法。图3是本申请一个实施例的方法的示意性流程图。如图3所示,该方法包括:

步骤301,cms根据从ftp服务器上下载xmltv文件后,cms解析该xmltv文件。

步骤302,cms查询数据库中已有的节目单记录的摘要。应理解,由于摘要字段字节数相对节目的全部信息字段相比小很多,因此,如果内存允许,可以将节目的摘要保存到内存中,加快查询速度。

步骤303,cms计算此次新导入的xmltv文件中每个节目的摘要,计算每个节目的摘要过程要保持一致。

步骤304,比较新导入的xmltv文件中每个节目的摘要,与已经存在的节目的摘要比较是否相同。

步骤305,如果摘要相同,则表示导入的节目是重复相同的,不需要更新。根据运营场景,通常在该步骤能过滤掉80%以上的节目。

步骤306,如果摘要不同,则需要进行一步比较新导入的节目与已经存在的节目的差异。

步骤307,如果节目的播出时间发生变更,则需要先删除该节目播出时间对应的已经存在的节目记录,再创建新的节目记录。

具体地,节目的播出时间包括开始时间和结束时间,节目的播出时间发生变更是指:数据库中原有节目的开始时间和结束时间,与新导入的xmltv文件中新节目的开始时间和结束时间有差异时。由于节目记没有唯一的标识字段,需要通过频道、开始时间、结束时间,三元素来判断是否为同一个节目。具体地,如果节目的播出时间发送变化,那么需要删除该节目对应时间段中已经存在的记录,创建新导入的节目的记录。

步骤308,如果节目的播出时间没有变更,则可以依据频道、开始时间、结束时间更新该节目的其它字段信息,该其它字段信息包括节目名称字段、节目描述字段、出品日期字段等,本申请不做限定。

应理解,由于一个频道中的节目记录是多条的,因此步骤4到步骤8需要循环执行。

cms可以通过计算节目的摘要,并保存到cms系统中,与新导入的节目的摘要进行比较,判断该节目是否有变化,加快处理速度。

可选地,作为本申请一个实施例,在所述将所述目标节目的摘要与目标频道中已经存在的每个节目的摘要进行比较之前,所述方法还包括:接收cp发送的用于表示所述目标节目的全部信息字段,所述目标节目的全部信息字段包括所述目标节目的标识和所述目标节目的全部信息字段按照所述预设规则生成所述目标节目的摘要。

在xmltv规范中,programme的属性里扩充标识(id)字段和摘要(digest)字段。id字段需要保证唯一性,通过id可以唯一标识是否为同一个节目单,简化了通过频道、节目开始时间、节目结束时间这三元素的组合判断是否为同一个节目的处理。某个节目的digest字段由cp根据该节目的全部信息字段计算得出,本申请对摘要的生成算法不做限定。

因此,本申请实施例通过在节目单属性中扩展节目单id和摘要digest字段,能够快速排除新导入的重复节目,提升cms对节目的发布速度。

可选地,作为本申请另外一个实施例,所述根据所述目标节目的摘要与所述目标频道中每个节目的摘要的比较结果,确定是否更新所述目标频道中的节目,包括:根据所述目标节目的标识,确定所述目标节目是否为所述目标频道中已经存在的节目;如果所述目标节目不是所述目标频道中已经存在的节目,则保存所述目标节目的信息字段;如果所述目标节目为目标频道中已经存在的节目,则根据所述目标节目的摘要和所述目标频道中已经存在的节目的摘要进行比较。

具体地,如果节目发生修改,则新导入的节目与已经存在的节目id相同,也就是说新导入的节目和已经存在的某个节目为同一节目。因此,cms可以进一步对digest进行比较,判断节目是否有发生修改。如果digest值不同,则表示节目的参数值有变更,否则,节目的参数值未有任何变更。

如果新导入的节目的id与已经存在的任何一个节目的id都不同,则表示cp在xmltv文件中导入了新的节目,cms直接按新节目进行创建和保存。

下面示出的xmltv文件表示的节目单由2个频道(channel)和多个节目(programme)节点组成,每个programme有多个属性和子元素节点组成。其中,节目节点中包括id字段,例如id="287547",还包括摘要字段,例如

下面结合具体例子,描述本申请实施例的方法。图4是本申请一个实施例的方法的示意性流程图,如图4所示,该方法包括:

步骤401,cms根据从ftp服务器中下载xmltv文件后,cms解析xmltv文件。

步骤402,cms根据xmltv文件中新导入的节目的id,查询数据库中已有的该节目记录。可选地,由于节目id字段字节数少,如果内存允许,可以将id记录保存到内存中,加快查询速度。

步骤403,如果节目id已存在,则比较此次新导入的节目的摘要,与原有的节目的摘要是否相同。如果id不存在,则直接跳转到步骤407。

步骤404,如果新导入的节目摘要已经存在的节目的摘要相同,则表示导入的节目记录是重复相同的,不需要更新。根据运营场景,通常在该步骤能过滤掉80%以上的节目单。

步骤405,如果新导入的节目摘要已经存在的节目的摘要不相同,则可以根据节目id将该节目的信息更新到数据库中。

步骤406,如果id不存在,则说明导入的是新节目单记录,直接创建保存到数据库中。

应理解,如果cp导入的节目记录为多条,则步骤403到步骤706需要循环执行。

图5是本发明一个实施例的设备500的示意性结构框图。应理解,设备500能够执行图2至图4的方法中由cms执行的各个步骤,为了避免重复,此处不再详述。网络设备500包括:

处理模块510,所述确定单元1510用于所处处理模块用于,将目标节目的摘要与目标频道中已经存在的每个节目的摘要进行比较,其中,节目的摘要为由表示该节目的信息字段按预设规则生成的唯一标识,所述目标节目属于目标频道中的节目;

所述处理模块510还用于,根据所述目标节目的摘要与所述目标频道中每个节目的摘要的比较结果,确定是否更新所述目标频道中的节目。

应理解,该处理模块510执行的动作可以由处理器实现,而通信模块520执行的动作可以在处理器的控制下由收发器实现。

因此,本申请实施例提供的方法通过比较目标节目的摘要与目标频道中每个节目的摘要,确定是否更新目标频道中的节目,有利于提升更新节目单的效率,并且有利于减轻由于更新节目单对系统资源的占用。

图6是本发明一个实施例的装置的示意性结构框图。图6示出了本发明实施例提供的装置600。应理解,装置600能够执行图2至图4的方法中由cms执行的各个步骤,为了避免重复,此处不再详述。装置600包括:

存储器610,用于存储程序;

收发器620,用于和其他设备进行通信;

处理器630,用于执行存储器610中的程序,处理器630与所述存储器610和所述收发器620分别相连,用于执行所述存储器610存储的所述指令,以在执行所述指令时执行如下步骤:

所述处理器630用于通过收发器620获取所述终端设备的接入网信息,其中,终端设备处于空闲态或非激活态;根据所述接入网信息,向接入网设备发送所述终端设备的上下文信息。

应理解,装置600可以具体为上述实施例中的cms,并且可以用于执行上述方法实施例中与第一终端设备对应的各个步骤和/或流程。

因此,本申请实施例提供的方法通过比较目标节目的摘要与目标频道中每个节目的摘要,确定是否更新目标频道中的节目,有利于提升更新节目单的效率,并且有利于减轻由于更新节目单对系统资源的占用。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1