一种EPG存取存储方法和系统
技术领域
本发明涉及数字电视技术,尤其涉及一种EPG存取存储方法和系统。
背景技术
电子节目菜单(EPG,Electronic Program Guide)为交互式网络电视(IPTV,InternetProtocol Television)提供的基本业务(如VOD/BTV/歌曲)及各种增值业务的使用提供了简单方便的操作平台,为IPTV用户收看电视节目、享受多媒体节目点播以及开展信息服务提供了一个良好的导航机制。EPG已成为数字电视的重要标志,是观众进入数字电视和IPTV的门户。
IPTV所提供的各种业务的索引及导航都是通过EPG系统来完成的。IPTV EPG实际上就是IPTV的一个门户系统。EPG系统的界面与Web页面类似,在EPG界面上一般都提供各类菜单、按钮、链接等可供用户选择节目时直接点击的组件;EPG的界面上也可以包含各类供用户浏览的动态或静态的多媒体内容。EPG在美、欧等数字电视发展较早的国家已得到了广泛的应用,成为数字电视的基本业务之一。
EPG的主要作用就是用户利用EPG提供的菜单,可以选择自己喜欢的组播频道;点播自己喜欢的视频节目;在线演唱自己喜欢的歌曲;查找IPTV提供的各种信息,包括生活信息、娱乐信息、教育信息、体育信息等等;用户也可使用EPG提供的菜单来订购自己喜欢的节目;甚至可以通过EPG提供的菜单支付水费、电费、进行电子商务的交易等。用户还可以利用EPG菜单查看节目的附加信息,例如对节目内容介绍、演员及导演的介绍等。同时通过EPG菜单中提供的家长控制功能,家长可以对某些节目加以限制,不给孩子开放所有的观看权限。
使用EPG系统可使用户能够方便快捷地找到自己关心的节目。使用EPG系统,用户通过电视机这个终端和IP机顶盒就可以登陆Internet。更重要的是使用EPG系统用户就可以和电视进行互动,这样用户就不再被动地接收信息,用户可以及时、主动地发表自己的意见和看法,并将这些意见和看法及时反馈给内容制作商。因此EPG在IPTV系统中起着十分重要的作用。
EPG系统作为IPTV业务的门户系统,主要完成和用户的接口,用户命令的解析和交互并将结果发回给用户,为最终用户消费提供指引,并使用户最终享受到IPTV服务。EPG系统必须向用户提供高质量的用户体验服务,即可以快速响应各类操作,让用户感受到电视般的享受;另外给用户提供简便的操作方式,适合各类人群进行操作。
节目单功能:频道化电视以“频道-时间”方式提供一段时间内的所有电视节目信息,实现业务浏览功能,通过节目单的方式展示IPTV提供的各种业务。
节目播放列表功能:点播节目从播放列表中选择要点播的节目,在节目列表中要包含节目的相关信息。
EPG的可选功能相对丰富,包括节目附加信息功能:给出节目的附加信息,如节目情节介绍等;节目分类功能:按节目内容进行分类,EPG必须支持让用户对VOD节目根据节目的分类进行浏览。
节目预订功能:在节目单上预约一段时间之后将要播放的节目,届时自动播放;家长分级控制功能:对节目内容进行分级控制。提供家长可以设置节目观看权限的控制界面;业务 搜索功能:提供多种方式的业务搜索功能,如按主演、导演、片名字数、ID、首字母等多种业务搜索功能;业务导航功能:提供业务排行、业务推荐、最新更新等导航功能。
EPG系统作为IPTV业务的门户系统,主要完成和用户的接口,完成用户命令的解析和交互并将结果发回给用户,为最终用户消费提供指引,并使用户最终享受到IPTV服务。EPG系统必须向用户提供高质量的用户体验服务,即可以快速响应各类操作,让用户感受到电视般的享受;另外给用户提供简便的操作方式,适合各类人群进行操作。
EPG信息要求准确、全面,便于浏览与查询。EPG的数据源自DVB广播的SI信息(ETSIEN 300 468 V1.5.1标准)、流媒体/CDN系统媒体信息以及IPTV内容管理系统生成的媒体元信息等。一般情况下机顶盒本身不直接接收SI信息及媒体元信息。EPG信息用XML语言描述。EPG信息采用统一的格式与定义便于实现信息的共享,以及信息的自动采集处理。
机顶盒(STB,Set Top Box)与EPG Server之间采用HTTP协议交互,EGP Server作为服务器端,STB作为客户端,STB的请求数据在URL中体现。IPTV EPG与机顶盒之间的接口主要实现以下功能:节目列表的的获取功能,机顶盒通过接口可以获取EPG Server上面所有发布影片的列表,节目类型和影片名称信息;影片数据的获取功能,机顶盒通过接口可以获取某一个具体影片的具体信息,如影片介绍、演员和导演等具体信息;客户自服务功能,包括节目预定,话单查询等功能;机顶盒向EPG服务器发送认证请求和服务请求,并从EPG服务器接收认证响应和服务响应。
EPG从应用划分上可以主要分为如下的模块:Web表现层、系统和业务逻辑层和应用服务层。Web表现层主要是与用户交互的表现,负责向用户展示交互界面和响应解析用户的请求,并能支持根据不同的用户属性下发相对应的EPG用户界面。EPG系统和业务逻辑层是EPG的核心功能部分,主要完成系统的业务逻辑功能,包括用户的业务请求和管理节目元信息Metadata,负责和EPG的应用服务层以及和增值业务服务系统的接口。
Web表现层与系统和业务逻辑层通过API接口调用,实现在同一业务逻辑层下可以有不同的Web服务器表现层。应用服务层是EPG系统中的关键模块,通过和运营支撑系统、网络管理系统、内容服务系统及内容管理系统的接口,主要完成用户的认证、计费、业务鉴权、机顶盒配置及用户管理等功能。
在这种EPG系统架构下,可用以下方式实现IPTV EPG的基本功能和可选功能。将所有的EPG内容和用户界面都存储在专用的EPG服务器中。EPG服务器传送这些由HTML格式表示的信息至用户IP机顶盒,用户界面的表示在客户端完成。
现有的IPTV系统中,EPG通常保存为XML格式,终端用户或者管理员通过输入拼音或汉字检索EPG中的某个字段。
当EPG的XML格式发生变化时,无论是客户端还是EPG搜索服务器都需要进行相应改动,相应会增加更变的成本。
因此,随着数字电视技术的普及以及运营模式的日趋成熟和不断丰富,以及机顶盒用户的海量增长,如何存取EPG,使得EPG的XML格式发生变化时,无论是客户端还是EPG搜索服务器都能适应,不需要增加额外的变更,产品更具有市场竞争力,成为急待解决的问题。
发明内容
本发明的目的是提供一种存取EPG的方法,使得EPG的XML格式发生变化时,无论是客户端还是EPG搜索服务器都能适应,不需要增加额外的变更。
为解决本发明的技术问题,本发明公开一种EPG存取方法,其中,包括:
EPG的XML文件进入搜索服务器,搜索服务器对XML文件进行遍历,并保存其结构信息
;
终端用户通过Http Get方式得到搜索结果,搜索URL中设定的参数分别为搜索目标的格式和期望返回的粒度;
EPG搜索服务器根据用户的URL所设定的参数,进行搜索并构建返回的结果。
较优的,所述搜索服务器对XML文件进行遍历,并保存其结构信息具体包括:
每当EPG搜索服务器获得到一个XML文件,服务器遍历整个XML文件并通过保存其路径、父亲、以及其内部ID的方式将结构完备的记录下来。
较优的,所述EPG搜索服务器获知用户所要搜索的结构的具体过程为:用户通过在URL请求中附带一个或多个类XPATH的字串进行EPG信息的搜索,EPG搜索服务器由此字串得知所要搜索的字段。
较优的,所述EPG搜索服务器返回结果给用户的具体过程为:所述EPG搜索服务器通过用户提供的粒度路径来决定返回什么样的结果集合。
较优的,所述粒度即为返回结果集的最小单位,搜索路径低于或等于粒度路径,对搜索到的节点,EPG搜索服务器比较此节点的路径与粒度路径,查找到应该返回的最小单位。
较优的,所述方法还包括:所述EPG搜索服务器建立返回结果树的过程。
较优的,所述EPG搜索服务器建立返回结果树的过程具体包括:
在查询路径和关键词的限制下,EPG搜索服务器查询每个节点;
对节点逐级访问其祖先,直到访问到的祖先的路径为粒度路径;
遍历粒度节点的所有后代,加入树,并将每个节点保存至哈希表;
遍历粒度节点的所有祖先,加入树,并将每个节点保存至哈希表。
为解决本发明的技术问题,本发明还公开一种结构无关的EPG存取系统,其特征在于,包括:
XML解析和结构生成装置,用于对XML文件进行遍历,建立XML文件的结构信息并保存,解析此XML文件的URL以得到指定的搜索路径;
索引检索装置,用于搜到了符合用户要求的节点,得到搜索结果,其参数分别为搜索目标的格式和期望返回的粒度;
XML构建装置,用于根据用户的URL所设定的参数构建返回的结果集。
较优的,所述系统还包括:
索引库,用于保存所述结构信息和节点信息。
较优的,所述索引检索装置还用于在查询路径和关键词的限制下,EPG搜索服务器查询每个节点;对节点逐级访问其祖先,直到访问到的祖先的路径为粒度路径;遍历粒度节点的所有后代和所有祖先;
所述XML构建装置还用于将遍历到的粒度节点的所有后代和所有祖先加入树,并将所有的节点存入哈希表。
与现有技术相比,本发明具有如下有益效果:
本发明公开一种与XML文档结构无关的EPG存取方法和系统,使得EPG搜索服务器无需了解EPG的结构,并且在EPG结构发生改变时服务器无需做任何变动。减少了程序开发人员的重发开发。
附图说明
图1为本发明实施例的一种EPG存取方法流程示意图;
图2为EPG服务器建立返回结果树的流程图;
图3为EPG存取系统结构示意图;
图4为根据搜索结果构建返回结果集合的示意图。
具体实施方式
本发明公开一种结构无关的EPG存取方法,该EPG存取方法使得搜索服务器做到与EPG的格式无关,EPG可以以任意格式进入搜索服务器,搜索服务器将其索引之后提供给客户端搜索。
通过本发明EPG存取方法,可以对任意格式的XML文件进行存储和检索,搜索服务器对输入的EPG的XML文件进行处理,生成其结构信息,终端用户在进行检索时带有类Xpath的字串,分别为搜索路径和返回结果的粒度路径,使得搜索服务器能够理解终端用户所要搜索的格式,以及它所期望返回的格式。
如图1所述,为本发明实施例的一种EPG存取方法流程示意图,该方法主要包括:
步骤11,EPG的XML文件进入搜索服务器,搜索服务器对XML文件进行遍历,并保存其结构信息。
记录结构信息的目的,除了为搜索之外,还为了能够完备的还原其结构,因此搜索服务器并不需要通过DTD或者XSD这样的模式来记录EPGXML文件的结构,每当EPG搜索服务器获得到一个XML文件,服务器遍历整个XML文件并通过保存其路径、父亲、以及其内部ID的方式将结构完备的记录下来,以备搜索后还原。
步骤12,终端用户通过Http Get方式得到搜索结果,其参数分别为搜索目标的格式和期望返回的粒度。
步骤13,EPG搜索服务器根据用户的URL所设定的参数,进行搜索并构建返回的结果。
搜索服务器获知用户所要搜索的结构的具体过程为:由于搜索服务器是结构无关的,因此它没有预先假设EPG的XML结构,用户通过在URL请求中附带一个或多个类XPATH的字串进行EPG信息的搜索,例如:getpath=/CHANNEL/EVENTS/EVENT/DESCRIPTS/DESCRIPT/event_name,EPG搜索服务器由此字串得知所要搜索的字段。之所以使用类XPATH的字串是因为我们不需要用到XPATH的全部特性,由于‘/’和‘’为特殊字符,因此在URL中‘/’符号需编码为“%2F”,‘’编码为“%40”。
搜索服务器返回结果给用户的具体过程为:同样的,EPG搜索服务器没有假设用户需要什么格式的结果集,服务器不会因为附带请求字串为getpath=/CHANNEL/EVENTS/EVENT/DESCRIPTS/DESCRIPT/event_name,就把DESCRIPT返回给用户。搜索服务器通过用户提供的粒度路径来决定返回什么样的结果集合。粒度即为返回结果集的最小单位,一般来说,搜索路径低于或等于粒度路径,对搜索到的节点,EPG搜索服务器会比较此节点的路径与粒度路径,查找到应该返回的最小单位,如图2所示。
如图2所述,为本发明实施例的一种EPG搜索服务器建立返回结果树的过程的流程图,其过程包括如下步骤。
步骤21,查询每个节点;
在查询路径和关键词的限制下,搜索服务器查询每个节点。
步骤22,寻找粒度节点;
对节点逐级访问其祖先,直到访问到的祖先的路径为粒度路径。此过程中如在哈希表中查询到了节点所访问的任意祖先,则无需任何处理,返回过程1。
步骤23,遍历粒度节点所有后代;
遍历粒度节点的所有后代,加入树,并将每个节点保存至哈希表。
步骤24,遍历粒度节点的所有祖先;
遍历粒度节点的所有祖先,加入树,并将每个节点保存至哈希表。在此过程中如果发现有任意祖先在哈希表中,则无需处理,只将现有的树连接到此祖先。
图3表示本发明另一实施例的一种结构无关的EPG存取系统结构示意图,该系统主要 包括XML解析和结构生成装置31,索引库32,索引检索装置33和XML构建装置34。
从图3中可以看到,实施方案的输入为EPG的一系列XML文档,输出也为XML文档,但这个XML文档所包含的信息有且仅有用户所需要的。
如图4所述,表示本发明实施例根据搜索结果构建返回集合的示意图。如图2所示,假设此XML文件的结构为/ROOT/EVENT/DESCRIPTS/DESCRIPT。
结合图3和图4,下述描述EPG存取系统的工作过程,该EPG存取系统可以为EPG检索服务器,XML解析和结构生成装置31用于对XML文件进行遍历,建立XML文件的结构信息,结构信息主要包括:节点的路径,节点的内部ID,节点的父ID。用户使用http get方式所带的URL字串为http://ip:port/search?wd=cat&spath=%2FROOT%2FEVENT%2FDESCRIPTS&gpath=%2FROOT%2FEVENT。
索引库32,用于保存所述结构信息和节点信息。
所述XML解析和结构生成装置31解析此URL得到指定的搜索路径为/ROOT/EVENT/DESCRIPTS,指定的粒度路径为/ROOT/EVENT。
索引检索装置33从索引库32搜到了符合用户要求的节点,例如为节点3,得到搜索结果,其参数分别为搜索目标的格式和期望返回的粒度。
XML构建装置34用于根据用户的URL所设定的参数构建返回的结果集,结果集构建就是树的创建。
1)索引检索装置33定位到节点3。
2)索引检索装置33寻找节点3的粒度节点:
索引检索装置33在索引库32对节点3逐级访问其祖先,直到发现节点2的路径与粒度路径相同,节点2就是节点3的粒度节点。访问过程中会查询哈希表,以便发现是否节点3的祖先已经被处理过了。
3)索引检索装置33遍历粒度节点2的所有后代:
索引检索装置33遍历粒度节点2的所有后代,XML构建装置34将遍历到的粒度节点2的所有后代加入树,并将所有的节点存入哈希表。由于节点2下可以有其他节点被搜索命中,出现此情况时,索引检索装置33只需要查询哈希表就可以得知是否粒度节点已经被找到,以避免重复操作。
4)索引检索装置33遍历粒度节点2的所有祖先:
索引检索装置33遍历粒度节点2的所有祖先,XML构建装置34将遍历到的粒度节点2的所有祖先加入树,并将每个节点保存至哈希表。在此过程中,索引检索装置33如果发现有任意祖先在哈希表中,则XML构建装置34无需处理,只将现有的树连接到此祖先。
5)XML构建装置34将树转为XM1文件并返回给用户。
XML构建装置34在http的返回中将这个XML文件返回给用户。
综上所述,本发明公开一种与XML文档结构无关的EPG存取方法和系统,使得EPG搜索服务器无需了解EPG的结构,并且在EPG结构发生改变时服务器无需做任何变动。减少了程序开发人员的重发开发。