首页 / 专利库 / 广播 / 数字电视 / 电子业务指南 / 一种IPTV数据处理的方法及系统

一种IPTV数据处理的方法及系统

阅读:994发布:2020-05-08

专利汇可以提供一种IPTV数据处理的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 提供一种IPTV 数据处理 的方法及系统,该方法包括:接受 访问 请求 后,从 指定 存储模 块 中读取对应的数据;如从所述指定存储模块中未读取到对应的数据,则从本地 数据库 中读取。通过本发明能合理使用EPG系统中JAVA内存和 硬盘 缓存,达到提高EPG性能以及提高用户操作响应的要求。,下面是一种IPTV数据处理的方法及系统专利的具体信息内容。

1.一种IPTV数据处理的方法,包括:
接受访问请求后,根据所述访问请求中的查询条件从指定存储模的第二存储单元中读取对应的业务数据,如未读取到对应的业务数据,则从所述指定存储模块的第一存储单元中读取;如从所述指定存储模块的第一存储单元中读取到对应的数据,则将所述查询条件和读取到的业务数据缓存到第二存储单元;
如从所述指定存储模块的第一存储单元中未读取到对应的数据,则从本地数据库中读取;并将从本地数据库中读取的数据缓存到所述指定存储模块的第一存储单元中;
其中,第一存储单元,用于缓存从所述本地数据库中读取的业务数据源;
第二存储单元,用于缓存所述访问请求的查询条件信息和读取到的业务数据。
2.如权利要求1所述的方法,其特征在于:所述将从本地数据库中读取的数据缓存到所述指定存储模块的第一存储单元中之后,还包括:
当发生指定事件时,删除所述指定存储模块中缓存的数据;
其中,所述指定事件包括电子节目指南EPG系统发生重启事件、系统数据全部同步到EPG系统。
3.如权利要求1所述的方法,其特征在于:所述从指定存储模块中读取对应的数据包括:
从指定存储模块中读取用户信息数据。
4.一种IPTV数据处理的系统,其特征在于,包括:
存储模块,用于缓存已被访问过的数据;
本地数据库,用于存储所有支持的IPTV数据;
读取模块,用于接受访问请求后,从所述存储模块中读取对应的数据;如从指定存储模块中未读取到对应的数据,则从本地数据库中读取;
其中,所述存储模块,具体用于缓存所述读取模块从所述本地数据库中读取的数据;
所述存储模块包括:
第一存储单元,用于缓存所述读取模块从所述本地数据库中读取的业务数据源;
第二存储单元,用于缓存所述访问请求的查询条件信息和所述读取模块读取到的业务数据;
所述读取模块,从指定存储模块中读取对应的数据包括:根据所述查询条件从所述第二存储单元中读取对应的业务数据,如未读取到对应的业务数据,则从所述第一存储单元中读取。
5.如权利要求4所述的系统,其特征在于:所述系统还包括:
删除模块,用于当发生指定事件时,删除所述存储模块中缓存的数据;其中,所述指定事件包括电子节目指南EPG系统发生重启事件、系统数据全部同步到EPG系统。
6.如权利要求4所述的系统,其特征在于:
所述读取模块,从指定存储模块中读取对应的数据包括:从指定存储模块中读取用户信息数据。

说明书全文

一种IPTV数据处理的方法及系统

技术领域

[0001] 本发明涉及交互式网络电视IPTV技术领域,特别是涉及一种IPTV数据处理的方法及系统。

背景技术

[0002] 随着IPTV(Internet Protocol Television,交互式网络电视)业务的逐渐普及,用户数量发展迅速,这对EPG(Electronic Programmer Guide,电子节目指南)即直接展示给用户操作使用的电子节目单系统提出了很高的性能要求,传统的EPG系统在数据展示查询时一般直接查自带的XBASE数据库,现场大规模使用时经常出现系统重启或崩溃的现象。

发明内容

[0003] 本发明要解决的技术问题是提供一种IPTV数据处理的方法及系统,以提高用户操作响应。
[0004] 为了解决上述技术问题,本发明提供了一种IPTV数据处理的方法,包括:
[0005] 接受访问请求后,从指定存储模中读取对应的数据;
[0006] 如从所述指定存储模块中未读取到对应的数据,则从本地数据库中读取。
[0007] 进一步地,上述方法还具有下面特点:所述将从本地数据库中读取的数据缓存到所述指定存储模块中,包括:
[0008] 将从本地数据库中读取的业务数据源缓存到第一存储单元;
[0009] 将所述访问请求的查询条件信息和读取到的业务数据缓存到第二存储单元。
[0010] 进一步地,上述方法还具有下面特点:所述从指定存储模块中读取对应的数据,包括:
[0011] 根据所述查询条件从所述第二存储单元中读取对应的业务数据,如未读取到对应的业务数据,则从所述第一存储单元中读取。
[0012] 进一步地,上述方法还具有下面特点:所述将从本地数据库中读取的数据缓存到所述指定存储模块中之后,还包括:
[0013] 当发生指定事件时,删除所述指定存储模块中缓存的数据。
[0014] 进一步地,上述方法还具有下面特点:所述从指定存储模块中读取对应的数据包括:
[0015] 从指定存储模块中读取用户信息数据。
[0016] 为了解决上述问题,本发明还提供了一种IPTV数据处理的系统,其中,包括:
[0017] 存储模块,用于缓存已被访问过的数据;
[0018] 数据库,用于存储所有支持的IPTV数据;
[0019] 读取模块,用于接受访问请求后,从所述存储模块中读取对应的数据;如从所述指定存储模块中未读取到对应的数据,则从本地数据库中读取。
[0020] 进一步地,上述系统还具有下面特点:
[0021] 所述存储模块,具体用于缓存所述读取模块从所述数据库中读取的数据。
[0022] 进一步地,上述系统还具有下面特点:所述存储模块包括:
[0023] 第一存储单元,用于缓存所述读取模块从所述数据库中读取的业务数据源;
[0024] 第二存储单元,用于缓存所述访问请求的查询条件信息和所述读取模块读取到的业务数据。
[0025] 进一步地,上述系统还具有下面特点:
[0026] 所述读取模块,从指定存储模块中读取对应的数据包括:根据所述查询条件从所述第二存储单元中读取对应的业务数据,如未读取到对应的业务数据,则从所述第一存储单元中读取。
[0027] 进一步地,上述系统还具有下面特点:所述系统还包括:
[0028] 删除模块,用于当发生指定事件时,删除所述存储模块中缓存的数据。
[0029] 进一步地,上述系统还具有下面特点:
[0030] 所述读取模块,从指定存储模块中读取对应的数据包括:从指定存储模块中读取用户信息数据。
[0031] 综上,本发明提供一种IPTV数据处理的方法及系统,通过该方法能合理使用EPG系统中JAVA内存和硬盘缓存,达到提高EPG性能以及提高用户操作响应的要求。附图说明
[0032] 图1为本发明实施例的一种IPTV数据处理的方法的流程图
[0033] 图2为本发明实施例的一种IPTV数据处理的系统的示意图;
[0034] 图3为本发明一应用示例的EPG系统的示意图;
[0035] 图4为本发明应用示例的IPTV数据处理的方法的流程图。

具体实施方式

[0036] 为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0037] 图1为本发明实施例的一种IPTV数据处理的方法的流程图,如图1所示,本实施例的方法包括以下步骤:
[0038] S11、EPG接受访问请求后,从指定存储模块中读取对应的数据;
[0039] S12、如从所述指定存储模块中未读取到对应的数据,则从本地数据库中读取。
[0040] 这样,EPG接受访问,就可以从缓存的数据中读取,而不用每次都从本地数据库中读取数据,以避免现场大规模使用时出现系统崩溃的现象。
[0041] 进一步地,还可以包括:
[0042] S13、将从本地数据库中读取的数据缓存到所述指定存储模块中。
[0043] 这样,将常用的数据进行缓存,在用户下次读取时,可以直接显现缓存的数据,而不用再花时间到本发数据库中查找,明显缩短节目显现时间,用户体验度明显提高。
[0044] 对于业务数据,本实施例中,可以将从本地数据库中读取的业务数据源缓存到第一存储单元;将所述访问请求的查询条件信息和读取到的业务数据缓存到第二存储单元。
[0045] 访问业务数据时,可以根据所述查询条件从所述第二存储单元中读取对应的业务数据,如未读取到对应的业务数据,则从所述第一存储单元中读取。
[0046] 本实施例中,还包括:当发生指定事件时,删除所述指定存储模块中缓存的数据。该指定事件可以是时间过时了,发生重启事件等,删除存储模块中缓存的数据后,再缓存新访问的数据,这样可以保证数据的更新。
[0047] 图2为本发明实施例的一种IPTV数据处理的系统的示意图,如图2所示,本实施例的系统指EPG系统,包括:
[0048] 存储模块,用于缓存已被访问过的数据;
[0049] 数据库,用于存储所有支持的IPTV数据;
[0050] 读取模块,用于接受访问请求后,从所述存储模块中读取对应的数据;如从所述指定存储模块中未读取到对应的数据,则从本地数据库中读取。
[0051] 其中,所述存储模块,具体可以用于缓存所述读取模块从所述数据库中读取的数据。
[0052] 在一优选实施例中,所述存储模块可以包括:
[0053] 第一存储单元,用于缓存所述读取模块从所述数据库中读取的业务数据源;
[0054] 第二存储单元,用于缓存所述访问请求的查询条件信息和所述读取模块读取到的业务数据。
[0055] 所述读取模块,从指定存储模块中读取对应的数据包括:根据所述查询条件从所述第二存储单元中读取对应的业务数据,如未读取到对应的业务数据,则从所述第一存储单元中读取。
[0056] 在一优选实施例中,所述系统还可以包括:
[0057] 删除模块,用于当发生指定事件时,删除所述存储模块中缓存的数据。
[0058] 图3为本发明一应用示例的EPG系统的示意图,如图3所示,本示例中,EPG的内存占用情况主要分为三大部分:session(连接)占用,ehcache占用,模板等临时数据占用。
[0059] session主要用于保存用户的登录信息,每一个用户登录就会产生一个session信息(大概为10k),机顶盒通过发送心跳消息让用户的session信息不失效。
[0060] Ehcache是一个纯Java的进程内缓存框架,具有快速、精干等特点,Ehcache中存放的数据分为两部分,一部分是用户缓存信息,与用户相关的书签收藏直播提醒等信息也存放其中;另一部分是数据缓存信息,包括表缓存、视图缓存、SQL(Structured Query Language,结构化查询语言)语句缓存。本示例中,EPG里是根据IPTV业务实际使用情况把对应的视图缓存和SQL语句缓存存放在一级缓存(相当于上述的第二存储单元)中,如点播查询SQL语句缓存等;表缓存存放于二级缓存(相当于上述的第一存储单元)中,如数据量较大的点播节目表、电子节目单表等。
[0061] H2内存数据库是一个开源免费的Java SQL数据库,占用缓存,本实施例中,在EPG中也是针对IPTV业务实际使用情况将常用的用户个人信息,如书签收藏直播提醒等做缓存。
[0062] 本示例,利用Ehcache的硬盘模式,把缓存对象序列化到硬盘上,可以较少的占用jvm内存,同时把内存中的索引也序列化到硬盘上,在系统重启的时候可以把索引恢复到内存中,缓存可以得到重新利用,以用户缓存为例,用户缓存信息主要存放在ehcache中,每次用户登录成功后都会向内存中添加一条用户信息数据,该用户数据中包含用户收藏、收藏夹、书签、童、直播提醒、自动换台数据等。这些数据实际上是从H2内存数据库中读取的,之所以将这部分数据存放在H2内存数据库中,主要因为在用户直接访问内存获取书签收藏等列表信息时需要使用类似select语句将需要的信息从缓存中查找出来,这种需要尤其在主子账号共享的时候表现的更为突出,而ehcache中的数据是不能直接通过select查询的,H2内存数据库的功能刚好能满足用于书签收藏信息的存取。H2数据库中对应的表结构是在EPG相关文件中事先定义好的。
[0063] 对于用户缓存信息占用内存也有一定的限制,如果登录EPG的用户数超过1W条(假设实际EPG可以支持2W用户登录),则再登录到EPG上的用户的缓存信息将会被放到磁盘上,用户需要访问相关书签收藏等信息时,则会去磁盘上读取。用户缓存信息不会失效,除非EPG重启或者超过一定时间不活动,则保存在缓存中的信息和写入磁盘的用户缓存信息文件都会失效,但是该文件不会删除,待下次用户登录数超过1W时,再有用户登录EPG写成的用户信息缓存文件将会覆盖上次保存的文件。
[0064] 用户信息这些数据如果不缓存则每次登录的时候都要向业务数据库(DB)请求,会增大系统压,如果个人数据本身没有发生变化的话用户登录时EPG就会判断不需要从业务DB里下拉数据、直接使用EPG里缓存的用户信息数据即可,如果个人数据有新增、删除或其他变化,EPG会在新增、删除这些数据以及登录的时候判断,从DB下拉最新的个人数据做缓存,这样做就是为了提高登录性能。
[0065] 本示例中,由于模板查询只会查询视图类型为SQL的数据视图,所以EPG的视图定义里会标明每个视图是否使用缓存机制,常用的业务需要的视图都会设置使用缓存机制。为了便于每条数据的缓存动态更新,对应数据还引入了key值,一级缓存主要是视图、sql语句以及查询条件、查询结果集的缓存且该结果集是从二级缓存里映射过来后使用的,二级缓存是表数据的缓存,正常查询条件或业务数据有变化的话一级缓存和二级缓存里的缓存数据以及key值都会随之变化。
[0066] 二级缓存是一个较大范围的表数据缓存,一级缓存主要是用户在模版上查询数据时的sql查询条件的视图缓存,二级缓存是提供给一级缓存使用的一个过渡,如果一级缓存里要查的数据在二级缓存里没有那只能查XBASE数据库,一级缓存和二级缓存目的都是为了提高性能,防止XBASE崩溃。
[0067] 本实施例中,分为二级存储减少直接对EPG的XBASE数据做直接数据查询,可以减少重复或不必要的查询条件拼写和频繁访问EPG自己的XBASE数据库,提高EPG的响应性能,避免XBASE压力过大而崩溃,这样分级存储后用户在模版上体验也会更快,提高用户的操作体验效果。
[0068] 下面就以频道信息查询为例说明下模板发起查询到最终查询到结果,从EPG缓存到XBASE(EPG中自带的数据库系统)的全过程,如图4所示,包括以下步骤:
[0069] 步骤101、模板开始访问频道信息查询页面,将要查询的EPG视图和查询条件传给EPG,EPG将收到的查询视图和查询条件作为一级缓存的key1,存放在EPG一级缓存中,如:
[0070] key1:user_channel|*|mediaservices&1!=0and tvodavailable=1and columncode='00000000'|sortnum desc|1/27|{teamid=1405,language=zho,bocode=001}|
[0071] 模版就是用户电视开机后看到的页面,用户可以随意操作的,如选择节目点播,查看频道节目单信息等等,只要在电视页面上选择页面就发生了数据查询行为。
[0072] 步骤102、若一级缓存中存在对应key1的value1(此类情况发生在用户上次访问过同一页面,或者其他用户访问过不带用户相关参数的同一页面),则EPG直接将value1返回给模板。
[0073] 步骤103、若一级缓存中不存在对应key1的value1这条记录(此类情况发生在没有用户访问过该页面或者二级缓存数据失效的时候)则EPG会根据模板传来的视图和参数拼写sql语句,该sql语句是根据定义好的EPG的视图文件拼写的,拼写后会去二级缓存查询结果。
[0074] 步骤104、若二级缓存中可以查询到结果,则直接返回给一级缓存,加入到key1对应的value1中即更新了一级缓存的结果集,最终返回给模板。
[0075] 步骤105、若二级缓存查询中查不到对应的结果,则EPG将key2作为条件拼sql语句,从xbase中将该条件下表中的所有记录查询出来。
[0076] 步骤106、一般情况XBASE查询是都会成功的,查询到结果后返回给二级缓存作为value2,再返回给一级缓存,加入到key1对应的value1中,最终返回给模板,一般情况下,很多个value2组成一个value1。
[0077] 对于用户缓存数据,正常用户信息没有发生变化的情况下缓存都不会失效,但是如果EPG发生重启则会清空用户缓存,用户重新登录后再次更新缓存数据。为了避免垃圾数据占用缓存,对于长期不活动的登出用户,EPG会对其用户缓存数据做定时清理。
[0078] 业务系统数据变化较快,尤其是点播、节目单数据,在数据增量变化后会同步到EPG系统,EPG同步成功后会对一级、二级缓存中与该表相关的数据进行删除,这样用户下次查询该记录相关的信息时,会重新从xbase下拉数据,以此保证数据的准确性。对于一级缓存,在数据本身没有发生变化的情况下如果隔天查询时间发生变化则一级缓存也会先失效,重新从xbase下拉数据,以此保证数据的准确性。
[0079] 其他情况如系统重启、业务系统数据完全地全新全量同步到EPG系统时会将数据视图缓存(包括一级、二级缓存)中的数据都删除掉,重新从xbase下拉数据,以此保证数据的准确性。
[0080] 本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0081] 以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈