技术领域
本发明涉及通信技术领域,尤其涉及电子节目单内容的获取和更新方法、装置和系统。
背景技术
随着网络、通信等技术的不断发展,交互式网络电视(IPTV)已经融入人们的生活。IPTV是一种利用带宽有线电视网,集互联网、多媒体、通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。用户在家中可以通过网络机顶盒+普通电视机享受IPTV服务。
IPTV所提供的各种业务的索引及导航都是通过电子节目菜单(EPG)来完成的,它实际上是IPTV的一个门户系统,向用户提供由文字、图像以及图像组成人机交互界面,负责界面和各种业务的导航,使用户能够通过EPG了解节目的相关信息(包括节目时间、节目内容概要等)。
用户通过网络机顶盒从EPG服务器获取EPG内容,根据EPG内容选择自己喜爱的节目或者自己需要的业务。现有的网络机顶盒获取EPG的方法是:获取用户通过遥控器输入的网址(URL);向EPG服务器发送请求消息,在该消息中携带获取的所述网址;接收EPG服务器根据所述请求消息中携带的网址返回响应的EPG页面。
发明人通过对现有技术的研究发现,现有的EPG内容获取方法需要用户通过遥控器输入URL,操作非常不方便,而且每次更换EPG页面时,网络机顶盒都需要根据用户输入的URL与EPG服务器进行一次信息交互,当存在众多并发用户时,过多的网络请求会对EPG服务器造成很大压力,同时,如果网络状态不好,也不能保证用户能够通过网络机顶盒获取自己请求的EPG内容。
发明内容
有鉴于此,本发明实施例的目的在于提供EPG内容的获取和更新方法、装置和系统,减轻EPG服务器的压力,方便、可靠地向用户提供EPG内容。
为实现上述目的,本发明实施例提供了如下技术方案:
一种电子节目菜单EPG内容获取方法,包括:
EPG终端将EPG服务器中的EPG数据包下载到本地,所述EPG数据包由所述EPG服务器将自身的EPG内容按照预设的数据文件格式封装而成;
所述EPG终端将所述EPG数据包解析成EPG内容并存储;
所述EPG终端将所述EPG内容显示给用户。
该方法还包括:
EPG终端对自身存储的EPG内容进行更新。
所述EPG内容包括EPG内容索引文件和至少一个EPG资源简介文件,其中,所述EPG内容索引文件中的每一个子节点记录一个EPG资源简介文件的链接地址相对应;
所述EPG终端对所述EPG内容进行更新包括:
所述EPG终端向所述EPG服务器发送第一更新请求,在所述第一更新请求中携带EPG终端内容索引文件的最新更新时间;
所述EPG服务器根据所述第一更新请求确定所述EPG终端的EPG内容需要更新后向所述EPG终端返回新的EPG内容索引文件;
所述EPG终端根据所述新的EPG内容索引文件更新自身存储的EPG内容索引文件和EPG资源简介文件。
所述EPG服务器根据所述第一更新请求确定所述EPG终端的EPG内容需要更新包括:
所述EPG服务器从所述第一更新请求中提取所述EPG终端内容索引文件的最新更新时间;
所述EPG服务器将所述EPG终端内容索引文件的最新更新时间与自身的EPG内容索引文件的最新更新时间进行比较;
如果两者不同,则确定所述EPG终端内容索引文件需要更新。
所述EPG终端根据所述新的EPG内容索引文件更新自身存储的EPG资源简介文件包括:
所述EPG终端确定当前要处理的所述新的EPG内容索引文件的子节点;
根据所述子节点所记录的EPG资源简介文件的链接地址确定本地没有与该链接地址对应的EPG资源简介文件时,根据所述链接地址从所述EPG服务器下载所述EPG资源简介文件并保存;
根据所述子节点所记录的EPG资源简介文件的链接地址确定本地有与该链接地址对应的EPG资源简介文件时,所述EPG终端在根据本地的EPG资源简介文件的最新修改时间确定本地的EPG资源简介文件需要更新时,从所述EPG服务器下载新的EPG资源简介文件更新本地存储的EPG资源简介文件;
返回确定当前要处理的所述新的EPG内容索引文件的子节点的步骤,直到所有的子节点都遍历完成。
该方法还包括:
在更新发生中断时,将当前处理的子节点记为断点,其中所述断点包括:
EPG终端确定当前要处理的所述新的EPG内容索引文件的子节点,获取所述子节点所记录的EPG资源简介文件的链接地址时产生的断点;
或者,所述EPG终端根据子节点链接地址从所述EPG服务器下载EPG资源简介文件失败时产生断点。
当所述EPG服务器根据所述第一更新请求确定所述EPG终端的EPG内容不需要更新时,该方法还包括:
所述EPG终端检测自身是否有断点存在;
若所述EPG终端中有断点存在,则确定当前断点,将所述当前断点作为当前要处理的子节点;
确定当前要处理的自身存储的EPG内容索引文件的子节点;
根据所述子节点所记录的EPG资源简介文件的链接地址从所述EPG服务器下载更新后的EPG资源简介文件并保存;
返回确定当前要处理的子节点的步骤,直到所有待处理的子节点都遍历完成。
一种EPG内容更新方法,包括:
EPG终端向EPG服务器发送第一更新请求,在所述第一更新请求中携带EPG终端内容索引文件的最新更新时间;
所述EPG服务器根据所述第一更新请求确定所述EPG终端的EPG内容需要更新后向所述EPG终端返回新的EPG内容索引文件;
所述EPG终端根据所述新的EPG内容索引文件更新自身存储的EPG内容索引文件和EPG资源简介文件,在更新过程发生中断时,将当前处理的子节点记为断点,其中所述断点包括:EPG终端确定当前要处理的所述新的EPG内容索引文件的子节点,获取所述子节点所记录的EPG资源简介文件的链接地址时产生的断点;或者,所述EPG终端根据子节点链接地址从所述EPG服务器下载EPG资源简介文件失败时产生的断点。
所述EPG终端根据所述新的EPG内容索引文件更新自身存储的EPG内容索引文件和EPG资源简介文件包括:
所述EPG终端确定当前要处理的所述新的EPG内容索引文件的子节点;
根据所述子节点所记录的EPG资源简介文件的链接地址确定本地没有与该链接地址对应的EPG资源简介文件时,根据所述链接地址从所述EPG服务器下载所述EPG资源简介文件并保存;
根据所述子节点所记录的EPG资源简介文件的链接地址确定本地有与该链接地址对应的EPG资源简介文件时,所述EPG终端在根据本地的EPG资源简介文件的最新修改时间确定本地的EPG资源简介文件需要更新时,从所述EPG服务器下载新的EPG资源简介文件更新本地存储的EPG资源简介文件;
返回确定当前要处理的所述新的EPG内容索引文件的子节点的步骤,直到所有的子节点都遍历完成。
当所述EPG服务器根据所述第一更新请求确定所述EPG终端的EPG内容不需要更新时,该方法还包括:
所述EPG终端检测自身是否有断点存在;
若所述EPG终端中有断点存在,则确定当前断点,将所述当前断点作为当前要处理的子节点;
确定当前要处理的自身存储的EPG内容索引文件的子节点;
根据所述子节点所记录的EPG资源简介文件的链接地址从所述EPG服务器下载更新后的EPG资源简介文件并保存;
返回确定当前要处理的子节点的步骤,直到所有待处理的子节点都遍历完成。
一种EPG内容获取系统,包括:
下载单元,用于将EPG服务器中的EPG数据包下载到本地,所述EPG数据包由所述EPG服务器将自身所有的EPG内容按照预设的数据文件格式封装而成;
解析单元,用于在本地将所述EPG数据包解析成EPG内容;
存储单元,用于将所述解析单元解析得到的所述EPG内容进行存储;
显示单元,用于将存储单元存储的所述EPG内容显示给用户。
该系统还包括:
更新单元,用于对存储单元存储的所述EPG内容进行更新。
所述EPG内容包括EPG内容索引文件和至少一个EPG资源简介文件,其中,所述EPG内容索引文件中的每一个子节点记录一个EPG资源简介文件的链接地址相对应;
所述更新单元包括:
获取子单元,用于根据存储单元存储的EPG终端内容索引文件的更新时间从EPG服务器获取新的EPG内容索引文件;
更新子单元,用于根据获取子单元获取的所述新的EPG内容索引文件对所述存储单元中存储的EPG内容索引文件和EPG资源简介文件进行更新。
所述更新子单元包括:
获取模块,用于确定当前要处理的所述新的EPG内容索引文件的子节点,获取所述子节点所记录的EPG资源简介文件的链接地址;
第一更新模块,用于根据获取模块获取的链接地址确定本地没有与该链接地址对应的EPG资源简介文件时根据该链接地址从所述EPG服务器下载所述EPG资源简介文件,并在所述存储单元中进行存储;
第二更新模块,用于根据获取模块获取的链接地址确定本地有与该链接地址对应的EPG资源简介文件时,根据存储单元存储的EPG资源简介文件的最新修改时间确定本地的EPG资源简介文件需要更新时,从所述EPG服务器下载新的EPG资源简介文件对所述存储单元存储的资源简介文件进行更新。
所述更新子单元还包括:
记录模块,用于在所述获取模块、第一更新模块或者第二更新模块执行任务过程中发生中断时,将当前处理的子节点记为断点,其中所述断点包括:获取模块获取所述子节点所记录的EPG资源简介文件的链接地址失败时产生的断点;或者,所述第一更新模块或所述第二更新模块下载EPG资源简介文件失败时产生的断点;
选取模块,用于从所述记录模块中选取当前断点,将所述当前断点作为当前要处理的子节点;
所述获取模块,还用于在所述选取模块选取当前要处理的子节点后,获取所述子节点所记录的EPG资源简介文件的链接地址;
所述第二更新模块,还用于根据所述获取模块获取的所述子节点所记录的EPG资源简介文件的链接地址从所述EPG服务器获取更新后的EPG资源简介文件对所述存储单元中保存的EPG资源简介文件进行更新。
一种更新EPG内容的装置,包括:
获取单元,用于根据本地存储的EPG终端内容索引文件的更新时间从EPG服务器获取新的EPG内容索引文件;
更新单元,用于根据获取单元获取的所述新的EPG内容索引文件对所述存储单元中存储的EPG内容索引文件和EPG资源简介文件进行更新,在更新发生中断时,将当前处理的子节点记为断点。
所述更新单元包括:
获取模块,用于确定当前要处理的所述新的EPG内容索引文件的子节点,获取所述子节点所记录的EPG资源简介文件的链接地址;
第一更新模块,用于根据获取模块获取的链接地址确定本地没有与该链接地址对应的EPG资源简介文件时根据该链接地址从所述EPG服务器下载所述EPG资源简介文件;
第二更新模块,用于根据获取模块获取的链接地址确定本地有与该链接地址对应的EPG资源简介文件时,根据本地存储的EPG资源简介文件的最新修改时间确定本地的EPG资源简介文件需要更新时,从所述EPG服务器获取新的EPG资源简介文件对所述存储单元存储的资源简介文件进行更新。
所述更新单元还包括:
记录模块,用于在所述获取模块、第一更新模块或者第二更新模块执行任务过程中发生中断时,将当前处理的子节点记为断点,其中所述断点包括:获取模块获取所述子节点所记录的EPG资源简介文件的链接地址失败时产生的断点;或者,所述第一更新模块或所述第二更新模块在下载所述EPG资源简介文件失败时产生的断点;
选取模块,用于从所述记录模块中选取当前断点,将所述当前断点作为当前要处理的子节点;
所述获取模块,还用于在所述选取模块选取当前要处理的子节点时,获取所述子节点所记录的EPG资源简介文件的链接地址;
所述第二更新模块,还用于根据获取模块获取的链接地址确定该链接地址对应的EPG资源简介文件,根据本地存储的EPG资源简介文件的最新修改时间确定本地的EPG资源简介文件需要更新时,从所述EPG服务器下载新的EPG资源简介文件对本地存储的资源简介文件进行更新可见,在本发明实施例中,EPG终端将EPG服务器中的EPG数据包下载到本地,所述EPG数据包由所述EPG服务器将自身的EPG内容按照预设的数据文件格式封装而成;所述EPG终端将所述EPG数据包解析成EPG内容并存储;所述EPG终端将所述EPG内容显示给用户,通过本发明实施例所提供的方法,使得用户无需再通过遥控器输入URL,而是可以直接从显示的EPG内容中点选自己感兴趣的内容;当用户更换选取的EPG内容中,无需再向EPG服务器发起请求,减轻了EPG服务器的负担,节约了网络资源。
附图说明
图1为本发明一实施例所提供的方法的流程图;
图2为本发明一实施例所提供的EPG内容索引文件的结构示意图;
图3为本发明一实施例所提供的方法的子步骤的流程图;
图4为本发明另一实施例所提供的方法的一子步骤的流程图;
图5为本发明一实施例所提供的方法的另一子步骤的流程图;
图6为本发明一实施例所提供的系统的结构示意图;
图7为本发明一实施例所提供的系统中一单元的结构示意图;
图8为本发明另一实施例所提供的系统一子单元的结构示意图;
图9为本发明一实施例所提供的装置的结构示意图;
图10为本发明一实施例所提供的装置中一单元的结构示意图。
具体实施方式
本发明实施例公开了EPG内容的获取和更新方法、装置和系统,为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
参见图1,本发明实施例所提供EPG内容获取的方法具体包括:
步骤101:EPG终端将EPG服务器中的EPG数据包下载到本地。
所述EPG数据包由所述EPG服务器将自身所有的EPG内容按照预设的数据文件格式封装而成。
所述EPG终端可以是网络机顶盒+电视机,也可以将所述网络机顶盒集成到电视机里,此时该EPG终端就是电视机,由该电视机完成EPG终端完成EPG内容的获取和显示工作。
步骤102:所述EPG终端在本地将所述EPG数据包解析成EPG内容并存储。
一般,EPG终端与EPG服务器通过定义统一数据文件格式来封装EPG内容,这里采用可扩展标记语言(XML,eXtensible Markup Language)的文件格式。EPG内容一般都是通过对节目进行分类、分级进行组织的,本质上是一种树状结构,XML文件也是一种树状结构,可以完整地对EPG进行描述。
所述EPG内容包括EPG内容索引文件和EPG资源简介文件两部分。其中,所述EPG内容索引文件通过一个XML文件来记录,为了方便,命名为index.opml,该文件对EPG服务器中的EPG内容进行了总体的记录。
对于index.opml文件中每个具体的类别中的具体内容通过EPG资源简介文件来记录,为了描述方便,该文件命名为rss.xml,该文件中包括EPG资源的简介信息,以电影为例,则该文件中包括电影名称、电影文件链接地址、电影上映时间、演职人员信息等内容。
index.opml文件中的每一个子节点记录一个rss.xml文件的链接地址,即在index.opml文件中通过链接地址就能够找到存储在EPG服务器中的对应的rss.xml文件。
图2为index.opml文件的结构示意图。从图中看出,在index.opml文件的根节点和子节点之间可以存在多层中间节点。如图2中所示,根节点index.opml与各个子节点,即记录各个rss.xml链接地址的节点之间有一个电视剧的中间节点这通过对中间;或者有电影以及电影类型的两级中间节点。中间节点可以使各个子节点的内容更加清晰,具体的层次可以根据实际需要进行设置,本发明对此不做限定。
步骤103:所述EPG终端将所述EPG内容显示给用户。
当所述EGP终端将从EPG服务器获取的EPG内容解析之后,可以通过图形用户界面的方式显示给用户。
通过本发明实施例所提供的方法,使得用户无需再通过遥控器输入URL,而是可以直接从显示的EPG内容中点选自己感兴趣的内容;因为本发明实施例所提供的方法中,所述EPG索引文件和所述EPG资源简介文件都已经保存在本地,所以当用户更换选取的EPG内容时,无需再向EPG服务器发起请求,减轻了EPG服务器的负担,节约了网络资源。
在另一实施例中,图1所示的方法还包括:
EPG终端对自身存储的EPG内容进行更新。
本发明实施例所提供的方法是将EPG服务器中的EPG内容下载到本地提供给用户使用,所以为了完整地将EPG信息呈现给用户,就需要及时地对本地存储的EPG内容进行更新,以保证本地所保存的EPG内容与EPG服务器的同步性。
参见图3,EPG终端对自身存储的EPG内容进行更新包括:
步骤301:EPG终端向EPG服务器发送第一更新请求,在所述第一更新请求中携带EPG终端内容索引文件的最新更新时间。
其中,为了实现EPG终端与EPG服务器的有效同步,所述EPG终端可以定期向所述EPG服务器发送所述第一更新请求消息启动更新进程。定期更新的时间间隔可以根据实际需要设定。当然,也可以由用户根据需要启动。
每一个index.opml文件在形成之时都会有形成时间,当EPG终端将该文件下载到本地时,本地会记录该index.opml文件的形成时间,该形成时间即为本次存储的所述index.opml文件的最新更新时间。
步骤302:所述EPG服务器根据所述第一更新请求判断所述EPG终端的EPG内容是否需要更新,如果需要更新则进入步骤303;如果无需更新,则结束流程。
当EPG服务器收到所述第一更新请求后,从所述第一更新请求中提取所述EPG终端内容索引文件的最新更新时间,将所述EPG终端内容索引文件的最新更新时间与自身的EPG内容索引文件的最新更新时间进行比较。
如果两者相同,则确定所述EPG终端内容索引文件不需要更新。
如果两者不同,则确定所述EPG终端内容索引文件需要更新。
步骤303:所述EPG服务器向所述EPG终端返回新的EPG内容索引文件。
步骤304:所述EPG终端根据所述新的EPG内容索引文件更新自身存储的EPG内容索引文件和EPG资源简介文件。
参见图4,步骤304包括:
步骤401:根据子节点索引值确定当前要处理的所述新的EPG内容子节点后,获取所述子节点所记录的EPG资源简介文件的链接地址,在所述EPG终端中没有记录第一断点时,将当前子节点记为第一断点。
所述新的EPG内容索引文件中包括至少一子节点,实际应用中index.opml文件中包含的子节点的量是非常大的。所述每一个子节点记录一个EPG资源简介文件的链接地址。在本发明实施例中,以单个子节点为更新单位,对本地存储的EPG资源简介文件进行更新。为了保证更新的有序性,做到不重复不遗漏,在本发明实施例中,从初始子节点开始,按照各个子节点的索引值递增或者递减的顺序进行更新。
在本发明实施例中,按照索引值递增的顺序对各个节点对应的EPG资源简介文件进行更新。
步骤402:通过当前子节点所记录的EPG资源简介文件的链接地址判断本地是否有与该链接地址对应的EPG资源简介文件,如果没有,进入步骤403;如果有,进入步骤404。
步骤403:所述EPG终端根据该链接地址从所述EPG服务器下载所述EPG资源简介文件并保存;如果下载失败,在所述EPG终端中没有记录第二断点时,将当前的子节点记为第二断点。
此时,说明该rss.xml为所述EPG服务器新增的EPG资源,所以应该将其更新到本地。
步骤404:获取EPG终端的EPG资源简介文件的最新修改时间。
当本地保存有与所述当前子节点记录的所述链接地址对应的EPG资源简介文件时,就需要判断服务器中的对应的rss.xml文件是否更新过,在本发明实施例中,还是通过比较两个rss.xml文件的最新更新时间来完成的。
本地存储的rss.xml文件在本地存储时会记录该文件的创建时间,在本发明实施例中将该时间作为该文件的最新修改时间。
步骤405:所述EPG终端向所述EPG服务器发送第二更新请求,在所述第二更新请求中携带EPG终端的EPG资源简介文件的最新修改时间。
步骤406:所述EPG服务器根据所述第二更新请求确定所述EPG终端的EPG资源简介文件是否需要更新,如果是,则进入步骤407;如果否,进入步骤409。
步骤407:EPG终端从所述EPG服务器下载新的EPG资源简介文件,如果接收失败,在所述EPG终端中没有记录第三断点时,就将当前子节点记为第三断点。
步骤408:所述EPG终端利用所述新的EPG资源简介文件更新自身存储的EPG资源简介文件,进入步骤409。
步骤409:子节点索引值加1且当前索引值有效,进入步骤401。
其中,索引值的有效性通过预设条件控制,如,在本发明实施例中,是通过索引值递增的顺序对子节点进行更新,那么只要当前索引值不大于子节点的最大索引值即为有效。
在上述过程中产生的所述第二断点和第三断点都是所述EGP移动终端从从所述EPG服务器下载EPG资源简介文件时产生,属于统一类型的断点。
在本发明实施例所提供的方法中,EPG终端先获取index.opml文件,然后对index.opml文件遍历,获取服务器端的每个具体的rss.xml文件,当顶级的index.opml文件最新修改时间没有改变时,认为它下属的具体rss.xml文件也没有改变,通过判断顶层文件是否修改来决定下层文件是否修改,将大大的减少不必要的遍历,提高了EPG内容更新的效率,使得EPG终端可以通过更新与EPG服务器实现同步,从而为向用户提供全面的EPG内容提供了保证。
在实际应用中,如果一次遍历更新的过程中,由于网络中断或者程序异常退出,造成子节点对应的文件没有得到完整更新,在下次更新的过程中,如果顶层文件没有变化,这时又没有一种断点更新机制来保证子节点所对应的文件的更新,将导致子节点所对应的文件没有更新的机会。直到顶层文件有最新更新时才会有机会得到更新。
为解决上述问题,在本发明实施例中通过记录第一断点防止本地在更新过程中出现断电或者异常退出时,当前处理的子节点的信息丢失的情况;通过记录第二断点和第三断点,可以防止本地系统在通过网络获取rss.xml的过程中失败而丢失当前子节点信息的情况,具体地,参见图5,当所述EPG服务器根据所述第一更新请求确定所述EPG终端的EPG内容不需要更新时,该方法还包括:
步骤501:所述EPG终端检测自身是否有断点存在,如果是,进入步骤502,如果否,结束流程。
所述断点包括:第一断点、第二断点或者第三断点。
步骤502:根据本地断点情况,确定当前断点。
其中,步骤502包括:
A:若所述EPG终端只有所述第一断点、第二断点或第三断点中的一种断点,则将该断点记为当前断点;
B:若所述EPG终端同时具有两种以上的断点时,从中选取一个断点为当前断点。
选取断点也可以根据索引值来进行,如,在本实施例中,可以选取索引值最小的一个断点作为当前断点。
步骤503:获取当前断点所对应的子节点索引值。
步骤504:根据子节点索引值确定当前要处理的自身存储的EPG内容索引文件中的子节点后,获取当前子节点所记录的EPG资源简介文件的链接地址。
步骤505:根据所述链接地址获取自身存储的EPG资源简介文件的最新修改时间。
步骤506:向所述EPG服务器发送第三更新请求,在所述第三更新请求中携带EPG终端的EPG资源简介文件的最新修改时间。
步骤507:所述EPG服务器根据所述第三更新请求确定所述EPG终端的EPG资源简介文件是否需要更新,如果是,则进入步骤508;如果否,进入步骤510。
步骤508:EPG终端接收所述EPG服务器返回的新的EPG资源简介文件。
步骤509:所述EPG终端利用所述新的EPG资源简介文件更新自身存储的EPG资源简介文件,进入步骤510。
步骤510:子节点索引值加1且当前索引值有效时,进入步骤504。
本发明实施例所提供的方法,通过对断点的利用有效避免了一次更新过程中出现意外造成更新中断导致index.opml的顶级信息无法真实地反映rss.xml更新信息时,所述rss.xml文件无法及时更新的问题,为可靠、全面地对EPG终端中的EPG内容的更新提供了保障。
与方法实施例相对应,本发明实施例还提供一种EPG内容获取系统,参见图6,所述系统包括:
下载单元601,用于将EPG服务器中的EPG数据包下载到本地。
所述EPG数据包由所述EPG服务器将自身所有的EPG内容按照预设的数据文件格式封装而成。所述EPG内容包括EPG内容索引文件和至少一个EPG资源简介文件,其中,所述EPG内容索引文件中的每一个子节点记录一个EPG资源简介文件的链接地址相对应。
解析单元602,用于在本地将所述EPG数据包解析成EPG内容。
存储单元603,用于将所述解析单元解析得到的所述EPG内容进行存储。
显示单元604,用于将存储单元存储的所述EPG内容显示给用户。
通过本发明实施例所提供的系统,使得用户无需再通过遥控器输入URL,而是可以直接从显示的EPG内容中点选自己感兴趣的内容;因为本发明实施例所提供的方法中,所述EPG索引文件和所述EPG资源简介文件都已经保存在本地,所以当用户更换选取的EPG内容中,无需再向EPG服务器发起请求,减轻了EPG服务器的负担,节约了网络资源。
为了实现EPG终端与EPG服务器的同步,图6所示的系统还包括:
更新单元605,用于对存储单元存储的所述EPG内容进行更新。
参见图7,所述更新单元605包括:
获取子单元6051,用于根据存储单元603存储的EPG终端内容索引文件的更新时间从EPG服务器获取新的EPG内容索引文件。
所述获取子单元6051的工作过程包括:从该系统的存储单元中获取EPG终端内容索引文件的更新时间,并将该更新时间发送给EPG服务器,EPG服务器将该时间与自身存储的EPG内容索引文件的最新更新时间进行比较,如果不同,就说明该EPG服务器中存储的内容索引文件有更新,所述获取子单元接收EPG服务器发送的新的EPG内容索引文件。
更新子单元6052,用于根据获取子单元获取的所述新的EPG内容索引文件对所述存储单元中存储的EPG内容索引文件和EPG资源简介文件进行更新。
其中,参见图8,所述更新子单元6052包括:
获取模块801,用于确定当前要处理的所述新的EPG内容索引文件的子节点,获取所述子节点所记录的EPG资源简介文件的链接地址;
第一更新模块802,根据获取模块获取的链接地址确定本地没有与该链接地址对应的EPG资源简介文件时根据该链接地址从所述EPG服务器下载所述EPG资源简介文件,并在所述存储单元中进行存储;
第二更新模块803,用于根据获取模块获取的链接地址确定本地有与该链接地址对应的EPG资源简介文件时,根据存储单元存储的EPG资源简介文件的最新修改时间确定本地的EPG资源简介文件需要更新时,从所述EPG服务器下载新的EPG资源简介文件对所述存储单元存储的资源简介文件进行更新。
其中,所述第二更新模块803的工作过程为:根据获取模块获取的链接地址确定本地有与该链接地址对应的EPG资源简介文件时,从该系统的存储单元中获取当前子节点的EPG资源简介文件的最新更新时间,并将该更新时间发送给EPG服务器,EPG服务器将该时间与自身存储的EPG资源简介文件的最新更新时间进行比较,如果不同,就说明该EPG服务器中存储的EPG资源简介文件有更新,所述第二更新模块803从EPG服务器下载新的EPG资源简介文件,对所述存储单元存储的资源简介文件进行更新。在本发明实施例所提供的系统中,通过判断顶层文件是否修改来决定下层文件是否修改,将大大的减少不必要的遍历,提高了EPG内容更新的效率,使得EPG终端可以通过更新与EPG服务器实现同步,从而为向用户提供全面的EPG内容提供了保证。
在实际应用中,如果一次遍历更新的过程中,由于网络中断或者程序异常退出,造成子节点对应的文件没有得到完整更新,在下次更新的过程中,如果顶层文件没有变化,这时又没有一种断点更新机制来保证子节点所对应的文件的更新,将导致子节点所对应的文件没有更新的机会。直到顶层文件有最新更新时才会有机会得到更新。
为解决上述问题,图8所述的更新子单元还包括:
记录模块804,用于在所述获取模块801、第一更新模块802或者第二更新模块803执行任务过程中发生中断时,将当前处理的子节点记为断点,其中所述断点包括:获取模块801获取所述子节点所记录的EPG资源简介文件的链接地址失败时产生的断点;或者,所述第一更新模块802或所述第二更新模块803下载EPG资源简介文件失败时产生的断点;
选取模块805,用于从所述记录模块804中选取当前断点,将所述当前断点作为当前要处理的子节点;
所述获取模块801,还用于在所述选取模块805选取当前要处理的子节点后,获取所述子节点所记录的EPG资源简介文件的链接地址;
所述第二更新模块803,还用于根据所述获取模块获取的所述子节点所记录的EPG资源简介文件的链接地址从所述EPG服务器获取更新后的EPG资源简介文件对所述存储单元中保存的EPG资源简介文件进行更新。
本发明实施例所提供的系统,通过对断点的利用有效避免了一次更新过程中出现意外造成更新中断导致index.opml的顶级信息无法真实地反映rss.xml更新信息时,所述rss.xml文件无法及时更新的问题,为可靠、全面地对EPG终端中的EPG内容的更新提供了保障。
参见图9,本发明实施例还提供一种更新EPG内容的装置,包括:
获取单元901,用于根据本地存储的EPG终端内容索引文件的更新时间从EPG服务器获取新的EPG内容索引文件;
更新单元902,用于根据获取单元获取的所述新的EPG内容索引文件对所述存储单元中存储的EPG内容索引文件和EPG资源简介文件进行更新,在更新发生中断时,将当前处理的子节点记为断点。
参见图10,所述更新单元902包括:
获取模块9021,用于确定当前要处理的所述新的EPG内容索引文件的子节点,获取所述子节点所记录的EPG资源简介文件的链接地址;
第一更新模块9022,用于根据获取模块获取的链接地址确定本地没有与该链接地址对应的EPG资源简介文件时根据该链接地址从所述EPG服务器下载所述EPG资源简介文件;
第二更新模块9023,用于根据获取模块获取的链接地址确定本地有与该链接地址对应的EPG资源简介文件时,根据本地存储的EPG资源简介文件的最新修改时间确定本地的EPG资源简介文件需要更新时,从所述EPG服务器获取新的EPG资源简介文件对所述存储单元存储的资源简介文件进行更新。
在本发明另一实施例中,所述更新单元还包括:
记录模块9024,用于在所述获取模块、第一更新模块或者第二更新模块执行任务过程中发生中断时,将当前处理的子节点记为断点,其中所述断点包括:获取模块获取所述子节点所记录的EPG资源简介文件的链接地址失败时产生的断点;或者,所述第一更新模块或所述第二更新模块在下载所述EPG资源简介文件失败时产生的断点;
选取模块9025,用于从所述记录模块中选取当前断点,将所述当前断点作为当前要处理的子节点;
所述获取模块9021,还用于在所述选取模块选取当前要处理的子节点时,获取所述子节点所记录的EPG资源简介文件的链接地址;
所述第二更新模块9023,还用于根据获取模块获取的链接地址确定该链接地址对应的EPG资源简介文件,根据本地存储的EPG资源简介文件的最新修改时间确定本地的EPG资源简介文件需要更新时,从所述EPG服务器下载新的EPG资源简介文件对本地存储的资源简介文件进行更新。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。