本发明涉及(internetprotocoltelevision,iptv)领域,特别涉及一种iptv屏幕投放实现方法及装置。
背景技术:
通常,在同一机顶盒终端上甚至多屏终端上,进入同一个页面,所有用户看到的都是同样的屏幕,页面风格、数据呈现都完全相同。可扩展的,某些应用或网站或许可以提供主题选择设置,但也仅仅是更换一些简单的风格,如颜色、图片等,不能根据不同的终端、用户属性,自动选择展示不同的屏幕。现实情况往往复杂的多,比如全市各个地区用户看到不同风格的屏幕,比如儿童房看到卡哇伊的屏幕、老人房看到简洁大字体的屏幕。
传统的投放方式是管理员投放什么,用户就看到什么,无法满足目前海量的、定制化的用户需求。
技术实现要素:
本发明实施例提供的一种iptv屏幕投放实现方法及装置,解决现有投放方式不能按不同用户投放不同屏幕页面的问题。
根据本发明实施例提供的一种iptv屏幕投放实现方法,包括:
根据终端发起的iptv页面请求,获取用户信息、屏幕匹配规则信息和待选屏幕信息;
根据所述用户信息和所述屏幕匹配规则信息,对待选屏幕进行条件匹配,得到适合于所述用户的最佳屏幕;
生成包含所述最佳屏幕的屏幕信息的通知消息,并发送至所述终端,以供所述终端获取所述屏幕页面。
优选地,所述获取用户信息、屏幕匹配规则信息和待选屏幕信息包括:
从所述iptv页面请求中提取包含用户编号和/或终端编号的关键信息,并根据所述关键信息,从iptv系统获取所述用户信息;
从屏幕管理系统获取所述屏幕匹配规则信息和所述待选屏幕信息。
优选地,所述根据所述用户信息和所述屏幕匹配规则信息,对待选屏幕进行条件匹配,得到适合于所述用户的最佳屏幕包括:
根据所述用户信息和所述屏幕匹配规则信息,建立规则匹配链;
按照所述规则匹配链中的投放条件,对所述待选屏幕进行条件匹配,得到所述最佳屏幕。
优选地,所述按照所述规则匹配链中的投放条件,对所述待选屏幕进行条件匹配,得到所述最佳屏幕包括:
利用所述规则匹配链中的当前投放条件,对所述待选屏幕进行条件匹配,得到匹配的待选屏幕;
利用所述规则匹配链中的下一投放条件,对所述匹配的待选屏幕进行条件匹配,直至遍历所述规则匹配链中的所有投放条件,并将最终得到的待选屏幕作为最佳屏幕。
优选地,所述按照所述规则匹配链中的投放条件,对所述待选屏幕进行条件匹配,得到所述最佳屏幕还包括:
若利用所述规则匹配链中的当前投放条件,对所述待选屏幕进行条件匹配,未得到匹配的待选屏幕,则利用所述规则匹配链中的下一投放条件,对所述待选屏幕进行条件匹配。
优选地,所述按照所述规则匹配链中的投放条件,对所述待选屏幕进行条件匹配,得到所述最佳屏幕包括:
利用所述规则匹配链中的所有投放条件,对每个所述待选屏幕进行条件匹配,找到投放条件匹配数量最多的待选屏幕作为所述最佳屏幕。
优选地,在按照所述规则匹配链中的投放条件,对所述待选屏幕进行条件匹配,得到所述最佳屏幕之后,还包括:对所述最佳屏幕进行缓存,以供所述终端再次发起iptv页面请求时,获取缓存的所述最佳屏幕。
根据本发明实施例提供的存储介质,其存储用于实现上述iptv屏幕投放实现方法的程序。
根据本发明实施例提供的一种iptv屏幕投放实现装置,包括:
信息获取模块,用于根据终端发起的iptv页面请求,获取用户信息、屏幕匹配规则信息和待选屏幕信息;
屏幕确定模块,用于根据所述用户信息和所述屏幕匹配规则信息,对待选屏幕进行条件匹配,得到适合于所述用户的最佳屏幕;
路由屏幕模块,用于生成包含所述最佳屏幕的屏幕信息的通知消息,并发送至所述终端,以供所述终端获取所述屏幕页面。
优选地,所述信息获取模块从所述iptv页面请求中提取包含用户编号和/或终端编号的关键信息,并根据所述关键信息从iptv系统获取所述用户信息,从屏幕管理系统获取所述屏幕匹配规则信息和所述待选屏幕信息。
优选地,所述屏幕确定模块根据所述用户信息和所述屏幕匹配规则信息,建立规则匹配链,并按照所述规则匹配链中的投放条件,对所述待选屏幕进行条件匹配,得到所述最佳屏幕。
本发明实施例提供的技术方案具有如下有益效果:
本发明实施例能够迅速匹配出用户需要的屏幕并反馈给客户端,为海量用户提供高效的服务。
附图说明
图1是本发明实施例提供的iptv屏幕投放实现方法框图;
图2是本发明实施例提供的iptv屏幕投放实现装置框图;
图3是屏幕匹配过滤的一个示意图
图4是基本数据结构关系图;
图5是投放实现逻辑架构图;
图6是终端请求获取屏幕的流程图;
图7是屏幕匹配过滤基本原则图;
图8是屏幕匹配过滤的另一示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是本发明实施例提供的iptv屏幕投放实现方法框图,如图1所示,步骤包括:
步骤s101:根据终端发起的iptv页面请求,获取用户信息、屏幕匹配规则信息和待选屏幕信息。
步骤s101包括:从所述iptv页面请求中提取包含用户编号和/或终端编号的关键信息,并根据所述关键信息,从iptv系统获取所述用户信息;在获取所述用户信息的同时,从屏幕管理系统获取所述屏幕匹配规则信息和所述待选屏幕信息。
其中所述待选屏幕信息包括待选屏幕(即可匹配屏幕)及其投放条件。
步骤s102:根据所述用户信息和所述屏幕匹配规则信息,对待选屏幕进行条件匹配,得到适合于所述用户的最佳屏幕。
步骤s102包括:根据所述用户信息和所述屏幕匹配规则信息,建立规则匹配链,按照所述规则匹配链中的投放条件,对所述待选屏幕进行条件匹配,得到所述最佳屏幕。
具体实施时,可采用以下两种方式:
1.利用所述规则匹配链中的当前投放条件,对所述待选屏幕进行条件匹配,得到匹配的待选屏幕,并利用所述规则匹配链中的下一投放条件,对所述匹配的待选屏幕进行条件匹配,直至遍历所述规则匹配链中的所有投放条件,并将最终得到的待选屏幕作为最佳屏幕。
需要说明的是,若所述待选屏幕均不满足所述当前投放条件,则利用所述规则匹配链中的下一投放条件进行条件匹配。
2.利用所述规则匹配链中的所有投放条件,对每个所述待选屏幕进行条件匹配,找到投放条件匹配数量最多的待选屏幕作为所述最佳屏幕。
进一步地,还可以对所述最佳屏幕进行缓存,以供所述终端再次发起iptv页面请求时,获取缓存的所述最佳屏幕。
步骤s103:生成包含所述最佳屏幕的屏幕信息的通知消息,并发送至所述终端,以供所述终端获取所述屏幕页面。
所述屏幕信息是所述最佳屏幕的路径信息,所述终端根据所述路径信息,从屏幕服务器获取所述屏幕的屏幕页面。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,该程序在执行时,包括步骤s101至步骤s103。进一步说,本发明还可以提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时至少实现步骤s101至步骤s103。
其中,所述的存储介质可以包括rom/ram、磁碟、光盘、u盘。
图2是本发明实施例提供的iptv屏幕投放实现装置框图,如图2所示,包括:信息获取模块21、屏幕确定模块22和23。
信息获取模块21,用于根据终端发起的iptv页面请求,获取用户信息、屏幕匹配规则信息和待选屏幕信息。具体地说信息获取模块21从所述iptv页面请求中提取包含用户编号和/或终端编号的关键信息,并根据所述关键信息从iptv系统获取所述用户信息,从屏幕管理系统获取所述屏幕匹配规则信息和所述待选屏幕信息。
屏幕确定模块22,用于根据所述用户信息和所述屏幕匹配规则信息,对待选屏幕进行条件匹配,得到适合于所述用户的最佳屏幕。
路由屏幕模块23,用于生成包含所述最佳屏幕的屏幕信息的通知消息,并发送至所述终端,以供所述终端获取所述屏幕页面。其中,所述屏幕信息是所述最佳屏幕的路由信息。
所述装置的工作步骤包括:当终端发起的iptv页面请求时,信息获取模块21根据终端发起的iptv页面请求,从iptv系统获取所述用户信息,并从屏幕管理系统获取包括获取所述屏幕匹配规则信息和所述待选屏幕信息。屏幕确定模块22根据所述用户信息和所述屏幕匹配规则信息,建立规则匹配链,并按照所述规则匹配链中的投放条件,对所述待选屏幕进行条件匹配,得到所述最佳屏幕。具体地说,屏幕确定模块22可以根据所述用户信息和所述屏幕匹配规则信息,建立规则匹配链,并按照所述规则匹配链中的投放条件,对所述待选屏幕进行条件匹配,得到所述最佳屏幕。路由屏幕模块23将所确定的屏幕的路径信息返回给终端,以供终端从屏幕服务器获取所述屏幕的屏幕页面。
具体匹配时可以采用两种方式:
1.屏幕确定模块22利用所述规则匹配链中的当前投放条件,对所述待选屏幕进行条件匹配,得到匹配的待选屏幕,并利用所述规则匹配链中的下一投放条件,对所述匹配的待选屏幕进行条件匹配,直至遍历所述规则匹配链中的所有投放条件,并将最终得到的待选屏幕作为最佳屏幕,特别地,如果利用所述规则匹配链中的当前投放条件,对所述待选屏幕进行条件匹配,未得到匹配的待选屏幕,则利用所述规则匹配链中的下一投放条件,对所述待选屏幕进行条件匹配。也就是说,该方式通过过滤不满足投放条件的待选屏幕,得到剩余的最佳屏幕。
2.屏幕确定模块22利用所述规则匹配链中的所有投放条件,对每个所述待选屏幕进行条件匹配,找到投放条件匹配数量最多的待选屏幕作为所述最佳屏幕。也就是说,该方式根据满足投放条件的数量,确定最佳屏幕。
进一步地,所述装置还可以包括:
最佳屏幕缓存模块(图中未示出),用于缓存所述屏幕确定模块22得到的适合于所述用户的最佳屏幕,以供所述终端再次发起iptv页面请求时,所述屏幕确定模块22能够从最佳屏幕缓存模块获取所述最佳屏幕,减少匹配次数,加快响应速度。
本实施例提供一种iptv屏幕投放实现装置,包括:
处理器,用于根据终端发起的iptv页面请求,获取用户信息、屏幕匹配规则信息和待选屏幕信息,根据所述用户信息和所述屏幕匹配规则信息,对待选屏幕进行条件匹配,得到适合于所述用户的最佳屏幕,生成包含所述最佳屏幕的屏幕信息的通知消息,并发送至所述终端,以供所述终端获取所述屏幕页面;
存储器,与所述处理器耦接,其上存储供所述处理器执行的程序。
本发明实施例根据iptv终端用户的不同属性(即用户信息),实现自动向用户投放不同屏幕页面,具体地说,需要一套屏幕匹配规则和多套有条件投放的屏幕页面,根据规则进行长链式条件筛选,选择出与用户的更多有意义的附加的属性相匹配的屏幕页面。
本发明实施例的用户发起页面请求,系统会根据用户属性,选择最适合的屏幕返回给用户。具体实施步骤包括:系统管理员通过屏幕管理系统维护多套屏幕,针对每套屏幕,可以设置不同的投放条件。如一套屏幕投放给南京雨花台区老年vip用户。这里包括三个投放条件(即屏幕定义条件):区域、年龄、分组。多个条件可以是或的关系,但是最佳的,则是所有条件都满足,即与的关系。也就是说,匹配到一个条件或部分条件即为屏幕匹配,最多条件匹配则称为最佳匹配。可见,匹配所有条件,也就是绝对匹配,肯定是最佳匹配。
图3是屏幕匹配过滤的一个示意图,如图3所示,终端发起屏幕请求,屏幕投放装置收到请求,如果没有缓存的最佳屏幕,则获取用户信息、屏幕匹配规则信息和可匹配的多套待选屏幕,并根据用户信息和屏幕匹配规则信息建立规则匹配链。假设获取到6个待选屏幕,规则匹配链包括4个投放条件,分别是年龄、区域、职业和分组,且投放条件没有优先级。
由于投放条件没有优先级,因此需要利用所述规则匹配链中的所有投放条件,对每个所述待选屏幕进行条件匹配,找到投放条件匹配数量最多的待选屏幕作为所述最佳屏幕。本实施例中,将待选屏幕两两分组,在屏幕1和屏幕2中确定屏幕2匹配投放条件数量最多为2个,在屏幕3和屏幕4中确定屏幕3匹配投放条件数量最多为3个,在屏幕5和屏幕6中确定屏幕5匹配投放条件数量最多为1个,通过比较,确定屏幕3在6个屏幕中匹配投放条件数量最多,因此将屏幕3作为适合于用户的最佳屏幕。
用户有很多属性,系统管理员应该设置一套屏幕匹配规则,比如年龄>分组>区域,即匹配顺序优先年龄、次为分组、最后区域。可选的,机顶盒终端提供用户自排设置,用户可以设置自己的匹配规则,用户自设规则优先通用规则。
图4是基本数据结构关系图,如图4所示,描述了本发明实施例所依赖的基本实体的数据结构以及之间的关系。系统管理员可以通过屏幕管理系统维护多条屏幕,任意一套屏幕可以定义多个投放规则(即投放条件):如年龄大于60、区域为南京雨花台区、分组为vip,即定义了这套屏幕主要投放给南京雨花台区年龄大于60岁的老龄vip用户。除此之外,还需要预制一套屏幕匹配规则,如年龄>分组>区域,即匹配屏幕时,优先匹配年龄,其次分组,最后区域。
图5是投放实现逻辑架构图,如图5所示,终端用户发起屏幕请求(即iptv页面请求)先到达屏幕投放装置(即投放实现装置、屏幕投放实现装置)。投放实现装置分为四个模块,包括获取数据、匹配屏幕、缓存屏幕和路由屏幕。第一模块(可以实现上述信息获取模块的功能)获取必要信息,包括用户属性、用户的屏幕匹配规则、所有可匹配的屏幕;第二模块(可以实现上述屏幕确定模块的功能)匹配用户屏幕,为用户建立一条规则过滤链,找到最适合的屏幕;第三模块(可以实现上述最佳屏幕缓存模块的功能)为缓存模块,缓存用户匹配的屏幕,根据一定的缓存规则,减少不必要的匹配次数;第四模块(可以实现上述路由屏幕模块的功能)返回用户获取的屏幕路径,用户后续继续请求不需要重复匹配。
其中,机顶盒终端的屏幕请求会被投放实现装置拦截。投放实现装置的第一模块会根据请求带上来的关键信息,如用户编号、机顶盒编号等,从iptv系统中获取用户信息(包括用户的不同属性);同时,第一模块从屏幕关系系统获得如图4定义的基本数据信息,包括多套屏幕、屏幕定义条件和屏幕匹配规则。可选的,第一模块所获取的所有信息都可以通过第三模块缓存下来。
其中,投放实现装置的第二模块负责根据用户信息、匹配规则(即屏幕匹配条件)和屏幕投放条件(即屏幕定义条件),进行过滤匹配。首先,第二模块根据匹配规则,建立起一条规则匹配链(即规则过滤链、规则链);然后根据屏幕投放条件,对每一套屏幕创建一个条件过滤器集合;最后遍历规则链,根据用户对应属性,调用屏幕对应条件过滤器进行过滤,不满足条件的淘汰,满足条件的则作为下一节点规则过滤屏幕,直至完全遍历整个规则链,得出最佳匹配屏幕。
其中,投放实现装置的第三模块负责缓存用户匹配的数据,推荐采用key-value的方式进行缓存,key为用户编号,value为匹配的屏幕。投放实现装置拦截到机顶盒请求,首先不是使用第一模块直接从相关系统获取数据,而是优先判断缓存模块是否有已匹配的屏幕缓存,从而避免不必要的匹配,以减少服务器的计算压力,加快响应速度,增强用户体验。较佳的,可以提前对活跃用户在后台计算并缓存。
其中,无论是通过第二模块过滤得到屏幕,还是通过第三模块直接从缓存中取得屏幕,最终都要把优选屏幕路径返回给终端,然后重定向到屏幕服务器的屏幕页面。这一步由投放实现装置的第四模块实现,它维护了一套屏幕路由表,即逻辑屏幕和实体屏幕之间的映射关系。逻辑屏幕是数据库中的屏幕定义,实体屏幕是部署在屏幕服务器的web服务,最终返回给终端一个重定向的屏幕路径。
图6是终端请求获取屏幕的流程图,如图6所示,步骤包括:
步骤s501:终端发起屏幕请求,屏幕投放装置收到请求。
步骤s502:判断是否已缓存该用户的最佳匹配屏幕,如果已缓存,则执行步骤s506,如果没有缓存,则执行步骤s503。
步骤s503:获取用户信息、屏幕匹配规则和可匹配的多套屏幕,,这些数据可能来源于不同系统,也有可能来源于本地缓存,参考图5。
步骤s504:根据获得的基本信息,建立一条规则过滤链,依次匹配过滤各套屏幕。
步骤s505:直至完全遍历规则链,得到最佳匹配屏幕,并执行步骤s506和步骤s507。
可能情况,规则链过滤后得到多套屏幕,可以根据自定义系统规则返回一套,比如随机返回一套。可选的,返回给用户选择。
步骤s506:直接从缓存取出屏幕,向终端返回重定向屏幕路径。
步骤s507:得到最佳匹配的一套屏幕后,异步地将最佳匹配缓存起来,便于下次访问。同时,返回给终端重定向的屏幕路径。
图7是屏幕匹配过滤基本原则图,如图7所示,假设有多套屏幕[a,m],其条件分别有[x1,xn]。传统的示意公式可以看出传统的暴力匹配方式,以所有条件去过滤所有屏幕;而链式的是在前一条屏幕过滤的基础上继续过滤,能够有效地缩短匹配时间,但是可能在链式途中断路,同传统的过滤方式一样,不能找到最佳匹配;所以本发明实施例对链式进行改进,相对于屏幕构链,改为条件构链,能够做到在条件断路时即抛弃回溯,延原有链路继续搜索最佳匹配。参考链式公式箭头对应的条件在链路上的关系表达式,链式改进公式的条件表达式在断路情况下很容易产生下一个变体条件表达式,不仅可以体现匹配的性能优势,并且必定可以找出最佳的匹配屏幕。
图8是屏幕匹配过滤的另一示意图,如图8所示。图8中建立了一条年龄>区域>职业>分组的规则链。进入规则链的第一个节点年龄,由于屏幕3没有投放年龄规则,则被滤掉。而屏幕1和屏幕2都投放了年龄,这里没有给出具体条件值,假设两者都满足年龄条件,则经过规则链过滤后得到两个满足条件的屏幕,然后又传输给下一规则链节点进行过滤。依次类推,直到职业这个条件,由于屏幕1和屏幕2都没有选择职业投放条件,所以没有屏幕满足职业规则。这时候就要从职业规则节点回溯到上一节点,以职业规则上一节点区域过滤的输出作为职业规则下一节点分组的过滤输入,然后再由分组继续过滤,从而得到屏幕2作为最佳一套匹配屏幕返回。如图8中第2图所示,一条链路变体为一个二叉树形式,由于职业的不匹配,变体出了一个二叉树的虚拟节点,从区域—职业—分组,相当于进行了一次二叉树的中序遍历。可见,条件越多,断路越多,形成的二叉树中序遍历情况越多。但最终,会推导出一条新的有效的条件链路。如果把推导出的链路作为一类用户的匹配规则,记录在图5的第三模块中,将会进一步提高相关用户最佳屏幕匹配效率。
综上所述,本发明的实施例具有以下技术效果:
本发明实施例维护多套风格屏幕,并依据管理员设置的多套规则,采用独有的链式匹配技术,迅速的匹配出用户需要的屏幕并反馈给客户端,为海量用户提供高效的服务。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。