CN106850724A - 数据推送方法及装置 - Google Patents
数据推送方法及装置 Download PDFInfo
- Publication number
- CN106850724A CN106850724A CN201510894438.3A CN201510894438A CN106850724A CN 106850724 A CN106850724 A CN 106850724A CN 201510894438 A CN201510894438 A CN 201510894438A CN 106850724 A CN106850724 A CN 106850724A
- Authority
- CN
- China
- Prior art keywords
- epg server
- service request
- business datum
- pointed
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims abstract description 15
- 238000012795 verification Methods 0.000 claims description 11
- 238000000151 deposition Methods 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 12
- 230000006399 behavior Effects 0.000 description 11
- 230000003068 static effect Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 206010006895 Cachexia Diseases 0.000 description 3
- 208000016318 wasting Diseases 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 206010048669 Terminal state Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/4061—Push-to services, e.g. push-to-talk or push-to-video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据推送方法,所述数据推送方法包括:在接收到IPTV终端发送的业务请求时,从EPG服务器判断当前是否存储有接收的业务请求指向的业务数据;在当前未存储有业务请求指向的业务数据时,从EPG服务器基于主EPG服务器获取并存储业务请求指向的业务数据,并将业务请求重定向至主EPG服务器,以供主EPG服务器向IPTV终端推送接收的业务请求所指向的业务数据;在当前存储有业务请求指向的业务数据时,从EPG服务器将存储的业务请求指向的业务数据发送至IPTV终端。本发明还公开了一种数据推送装置。本发明能够提高IPTV集群的工作性能。
Description
技术领域
本发明涉及IPTV技术领域,尤其涉及一种数据推送方法及装置。
背景技术
在现有的IPTV(Internet Protocol Television,交互式网络电视)集群中,单个EPG(Electronic Program Guide,电子节目指南)服务器存放全量的WEB内容,通常存放有图片40G,第三方模板文件20G,以及大量其它文件等。如果IPTV集群需要新增加一台EPG服务器,则需要管理员手工同步全量的WEB内容,操作十分烦琐,而且,这些全量的WEB内容还需要每天进行增量同步、全量同步,消耗IPTV集群的大量I/O资源,影响IPTV集群的工作性能。现有技术中,存在IPTV集群工作性能较低的问题。
发明内容
本发明的主要目的在于提供一种数据推送方法及装置,旨在提高IPTV集群的工作性能。
为实现上述目的,本发明提供一种数据推送方法,所述数据推送方法应用于IPTV集群,所述IPTV集群包括主EPG服务器和多个从EPG服务器,所述数据推送方法包括:
在接收到IPTV终端发送的业务请求时,所述从EPG服务器判断当前是否存储有接收的所述业务请求指向的业务数据;
在当前未存储有所述业务请求指向的业务数据时,所述从EPG服务器基于所述主EPG服务器获取并存储所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器,以供所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据;
在当前存储有所述业务请求指向的业务数据时,所述从EPG服务器将存储的所述业务请求指向的业务数据发送至所述IPTV终端。
优选地,所述业务数据包括第一类业务数据和第二类业务数据,所述将所述业务请求重定向至所述主EPG服务器的步骤之前,还包括:
所述从EPG服务器判断所述业务请求指向的业务数据是否为第一类业务数据;
在所述业务请求指向的业务数据为第一类业务数据时,执行所述将所述业务请求重定向至所述主EPG服务器的步骤;
所述从EPG服务器判断所述业务请求指向的业务数据是否为第一类业务数据的步骤之后,还包括:
在所述业务请求指向的业务数据为第二类业务数据,且基于所述主EPG服务器获取到所述业务请求指向的业务数据时,所述从EPG服务器将获取的业务数据加载至所述从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端。
优选地,所述从EPG服务器将存储的所述业务请求指向的业务数据发送至所述IPTV终端的步骤之前,还包括:
在当前存储有所述业务请求指向的业务数据时,所述从EPG服务器对存储的所述业务请求指向的业务数据进行验证操作;
在验证通过时,执行所述从EPG服务器将存储的所述业务请求指向的业务数据发送至所述IPTV终端的步骤;
所述从EPG服务器对存储的所述业务请求指向的业务数据进行验证操作的步骤之后,还包括:
在验证失败时,所述从EPG服务器基于所述主EPG服务器更新存储的所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器。
优选地,所述从EPG服务器判断当前是否存储有接收的所述业务请求指向的业务数据的步骤之前,还包括:
在接收到所述IPTV终端发送的业务请求时,所述从EPG服务器获取存储的所述IPTV终端的session数据;
所述从EPG服务器对获取的所述session数据的有效性进行验证;
在验证通过时,执行所述从EPG服务器判断当前是否存储有接收的所述业务请求指向的业务数据的步骤。
优选地,所述从EPG服务器获取存储的所述IPTV终端的session数据的步骤之后,还包括:
在未获取到所述session数据时,所述从EPG服务器发送获取请求至所述主EPG服务器;
在接收到所述主EPG服务器根据所述获取请求返回的指示信息时,所述从EPG服务器基于所述指示信息对应的从EPG服务器获取所述session数据。
此外,为实现上述目的,本发明还提供了一种数据推送装置,所述数据推送装置应用于IPTV集群,所述IPTV集群包括主EPG服务器和多个从EPG服务器,所述数据推送装置包括:
第一判断模块,用于当其所在从EPG服务器接收到IPTV终端发送的业务请求时,判断其所在从EPG服务器当前是否存储有所述业务请求指向的业务数据;
处理模块,用于当其所在从EPG服务器当前未存储有所述业务请求指向的业务数据时,基于所述主EPG服务器获取并存储所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器,以供所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据;
发送模块,用于当其所在从EPG服务器当前存储有所述业务请求指向的业务数据时,将存储的所述业务请求指向的业务数据发送至所述IPTV终端。
优选地,所述业务数据包括第一类业务数据和第二类业务数据,所述数据推送装置还包括第二判断模块,用于判断所述业务请求指向的业务数据是否为第一类业务数据;
所述处理模块还用于在所述业务请求指向的业务数据为第一类业务数据时,将所述业务请求重定向至所述主EPG服务器;
所述发送模块还用于在所述业务请求指向的业务数据为第二类业务数据,且所述处理模块基于所述主EPG服务器获取到所述业务请求指向的业务数据时,将获取的业务数据加载至其所在从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端。
优选地,所述发送模块还用于当其所在从EPG服务器当前存储有所述业务请求指向的业务数据时,对存储的所述业务请求指向的业务数据进行验证操作;以及在验证通过时,将存储的所述业务请求指向的业务数据发送至所述IPTV终端;
所述数据推送装置还包括更新模块,用于在验证失败时,基于所述主EPG服务器更新存储的所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器。
优选地,所述数据推送装置还包括会话模块,用于当其所在从EPG服务器接收到所述IPTV终端发送的业务请求时,获取其所在从EPG服务器存储的所述IPTV终端的session数据;以及对获取的所述session数据的有效性进行验证;
所述第一判断模块还用于在验证通过时,判断其所在从EPG服务器当前是否存储有接收的所述业务请求指向的业务数据。
优选地,所述会话模块还用于在未获取到所述session数据时,发送获取请求至所述主EPG服务器;以及在接收到所述主EPG服务器根据所述获取请求返回的指示信息时,基于所述指示信息对应的从EPG服务器获取所述session数据。
本发明提出的数据推送方法及装置,在包括主EPG服务器和从EPG服务器的IPTV集群中,将全量的WEB内容(业务数据)分离到各从EPG服务器,各从EPG服务器基于存储的WEB内容以及接收的IPTV终端的业务请求提供服务,并按需更新存储的WEB内容。相较于现有技术,本发明避免了由同步全量WEB内容导致的IPTV集群I/O资源浪费,能够达到提高IPTV集群工作性能的目的。
附图说明
图1为本发明数据推送方法应用的IPTV集群的拓扑结构示例图;
图2为本发明数据推送方法第一实施例的流程示意图;
图3为本发明数据推送装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据推送方法,所述数据推送方法应用于IPTV集群,参照图1,所述IPTV集群包括主EPG服务器和多个从EPG服务器,参照图2,在本发明数据推送方法的第一实施例中,所述数据推送方法包括:
步骤S10,在接收到IPTV终端发送的业务请求时,所述从EPG服务器判断当前是否存储有接收的所述业务请求指向的业务数据;
众所周知的,普通的WEB服务器中内容是存放在本地的,但对于EPG服务器来说,情况十分特殊,由于WEB内容体量非常大,主要是图片和第三方模板(如JSP文件等),而且随着业务扩展,4K极清上线,各种增值业务的蓬勃发展,这部分内容也会成倍增长,会导致EPG服务器在内容同步方面不堪重负。WEB内容虽说体量大,但是在现网环境中每个EPG服务器中真正被访问到的内容却是占极少的一部分,所以WEB内容全部放在EPG服务器本地是I/O资源的极大浪费,影响IPTV集群的工作性能。
基于前述缺陷,本实施例的主旨在于将EPG服务器的WEB内容进行分离,为此,本实施例提出如图1所示的分布式IPTV集群架构,如图1所示,相较于现有技术,本实施例引入了主EPG服务器和从EPG服务器两种WEB容器,其中,全部WEB内容放在主EPG服务器上,所述主EPG服务器负责分发用户的WEB请求,进行负载均衡;所述从EPG服务器负责拦截并处理用户的WEB请求,所述从EPG服务器在处理用户的WEB请求时从主EPG服务器下载相应的WEB内容至本地的WEB容器中。本领域技术人员可以理解的是,从EPG服务器这种按需下载的方式可以保证从EPG服务器本地的WEB容器内只有少量的内容,且不用关心WEB内容的同步,而且下载到WEB容器中的WEB内容是可以复用的,如果本地已经存在则不需要再次下载。此外,主EPG服务器可以自动感知集群中从EPG服务器的工作状态(如通过心跳报文进行监测),当某台从EPG服务器状态异常时,主EPG服务器可把此从EPG服务器从集群中剔除,不再向此从EPG服务器分发请求,当此台从EPG服务器状态恢复正常时,主EPG服务器又可以把它加入到集群中提供服务。此外,主EPG服务器还可以自动感知集群新加入的从EPG服务器,可以使集群在不重新配置或重启的情况下平滑扩容,应对越来越高的性能要求。需要说明的是,IPTV集群的用户即IPTV终端,IPTV终端可以包括计算机、机顶盒、智能电视或者智能手机等移动终端中的至少一种。
本实施例中,所述主EPG服务器在为IPTV终端分配提供服务的从EPG服务器时,采用IP_Hash算法结合各从EPG服务器的负载状态进行加权,实时为IPTV终端分配负载较轻的从EPG服务器。具体的,所述主EPG服务器将集群中各从EPG服务器虚拟成n个节点,均匀分布到hash环上;并在接收到IPTV终端发送的原始业务请求时,根据配置的参数计算出一个hash值,在前述hash环上查找计算的hash值附近的虚拟节点,然后根据附近的虚拟节点的负载状态进行加权,确定负载较轻的虚拟节点,将所述负载较轻的虚拟节点对应的从EPG服务器信息发送至所述IPTV终端,由该虚拟节点对应的从EPG服务器为所述IPTV终端提供服务。需要说明的是,所述IPTV终端在接收到所述主EPG服务器发送的从EPG服务器信息之后,将原始业务请求重新打包为新的业务请求发送至所述从EPG服务器,而且,后续的其它业务请求也均发送至分配的从EPG服务器。
所述从EPG服务器在接收到所述IPTV终端基于所述从EPG服务器信息发送的业务请求时,判断当前是否存储有接收的所述业务请求指向的业务数据(即WEB内容),以根据判断结果执行相应的操作,例如,在存储有所述业务请求指向的业务数据时,可直接将存储的所述业务请求指向的业务数据发送至所述IPTV终端。
步骤S20,在当前未存储有所述业务请求指向的业务数据时,所述从EPG服务器基于所述主EPG服务器获取并存储所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器,以供所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据;
本实施例中,在当前未存储有所述业务请求指向的业务数据时,所述从EPG服务器将所述业务请求指向的业务数据加入到下载队列,由下载队列将所述业务请求指向的业务数据从所述主EPG服务器下载到本地。所述从EPG服务器将所述业务请求指向的业务数据加入到下载队列同时,将接收的所述业务请求重定向至所述主EPG服务器,由所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据。本领域技术人员可以理解的是,在本实施例中,所述从EPG服务器和所述IPTV终端可以同时获取到所述业务请求指向的业务数据,所述IPTV终端即可将获取到的业务数据呈现给用户。此外,当所述业务请求指向的业务数据再次被请求时,所述业务请求指向的业务数据即可直接从本地获取。
步骤S30,在当前存储有所述业务请求指向的业务数据时,所述从EPG服务器将存储的所述业务请求指向的业务数据发送至所述IPTV终端。
基于前述描述,本领域技术人员可以理解的是,所述从EPG服务器存储业务数据的目的在于再次接收到指向存储的业务数据的业务请求时,直接用存储的所述业务数据提供服务。因此,本实施例中,在当前存储有所述业务请求指向的业务数据时,所述从EPG服务器直接将存储的所述业务请求指向的业务数据发送至所述IPTV终端,由IPTV终端将所述业务请求指向的业务数据呈现给用户。
此外,由于主EPG服务器在IPTV集群中担当“首脑”作用,若主EPG服务器工作异常,整个IPTV集群将无法正常提供对外服务。因此,为提升IPTV集群的稳定性,本实施例还引入了冗余机制。具体的,如图1所示,本实施例提出的IPTV集群还包括备EPG服务器,用作所述主EPG服务器的热备份。例如,所述主EPG服务器工作异常时,进行主EPG服务器和备EPG服务器的切换,由所述备EPG服务器接管所述主EPG服务器。
进一步的,在本实施例中,所述主EPG服务器还定时进行本地WEB内容的同步,如图1所示,本实施例提出的IPTV集群还包括FTP服务器,所述主EPG服务器基于所述FTP服务器进行本地WEB内容的同步,例如,所述主EPG服务器从所述FTP服务器获取到新的图片文件存储在本地。需要说明的是,所述主EPG服务器在完成同步之后,还下发内容同步通知至集群中各从EPG服务器,通知各从EPG服务器与所述主EPG服务器进行内容同步;从EPG服务器在接收到所述主EPG服务器下发的内容同步通知之后,校验本地存储的WEB内容,以进行本地WEB内容的更新、新增和/或删除。
本实施例提出的数据推送方法,在包括主EPG服务器和从EPG服务器的IPTV集群中,将全量的WEB内容(业务数据)分离到各从EPG服务器,各从EPG服务器基于存储的WEB内容以及接收的IPTV终端的业务请求提供服务,并按需更新存储的WEB内容。相较于现有技术,本发明避免了由同步全量WEB内容导致的IPTV集群I/O资源浪费,能够达到提高IPTV集群工作性能的目的。
进一步的,基于第一实施例,提出本发明数据推送方法的第二实施例,在本实施例中,所述业务数据包括第一类业务数据和第二类业务数据,所述步骤S20中所述将所述业务请求重定向至所述主EPG服务器之前,还包括:
所述从EPG服务器判断所述业务请求指向的业务数据是否为第一类业务数据;
在所述业务请求指向的业务数据为第一类业务数据时,执行所述将所述业务请求重定向至所述主EPG服务器的步骤;
所述从EPG服务器判断所述业务请求指向的业务数据是否为第一类业务数据的步骤之后,还包括:
在所述业务请求指向的业务数据为第二类业务数据时,且基于所述主EPG服务器获取到所述业务请求指向的业务数据时,
所述从EPG服务器将获取的业务数据加载至所述从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端。
需要说明的是,资源可以作为静态资源或动态资源进行引用,这是通过使用StaticResource标记扩展或DynamicResource标记扩展完成的。其中,静态资源是指在被用户请求时可直接反馈至用户的资源;动态资源是指在被用户请求时,根据不同的用户运行动态资源以反馈不同的结果。本实施例中,在接收到IPTV终端的业务请求时,还需要根据接收的业务请求携带的StaticResource标记扩展或DynamicResource标记扩展确定需要进行的操作。
具体的,在当前未存储有所述业务请求指向的业务数据,且所述业务请求携带有StaticResource标记扩展时,说明所述IPTV终端请求的是当前未存储的静态资源(第一类业务数据),不需要消耗处理资源运行,此时所述从EPG服务器将所述业务请求指向的业务数据加入到下载队列,由下载队列将所述业务请求指向的业务数据从所述主EPG服务器下载到本地。所述从EPG服务器将所述业务请求指向的业务数据加入到下载队列同时,将接收的所述业务请求重定向至所述主EPG服务器,由所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据。
在当前未存储有所述业务请求指向的业务数据,且所述业务请求携带有DynamicResource标记扩展时,说明所述IPTV终端请求的是当前未存储的动态资源(第二类业务数据),需要消耗处理资源运行,此时所述从EPG服务器将所述业务请求指向的业务数据加入到下载队列,由下载队列将所述业务请求指向的业务数据从所述主EPG服务器下载到本地。在将所述业务请求指向的业务数据从所述主EPG服务器下载到本地之后,所述从EPG服务器将下载的业务数据加载至所述从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端,以避免造成对主EPG服务器处理资源的不必要占用,从而提升IPTV集群的工作性能。
在当前存储有所述业务请求指向的业务数据,且所述业务请求携带有StaticResource标记扩展时,说明所述IPTV终端请求的是当前存储的静态资源(第一类业务数据),不需要消耗处理资源运行,直接将存储的所述业务请求指向的业务数据发送至所述IPTV终端,供所述IPTV终端将所述业务请求指向的业务数据呈现给用户。
在当前存储有所述业务请求指向的业务数据,且所述业务请求携带有DynamicResource标记扩展时,说明所述IPTV终端请求的是当前存储的动态资源(第一类业务数据),需要消耗处理资源运行,此时所述从EPG服务器将存储的所述业务请求指向的业务业务数据加载至所述从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端。
进一步的,在本实施例中,所述主EPG服务器在与所述FTP服务器进行内容同步时,在从所述FTP服务器获取到动态资源时,需要将获取的动态资源进行预编译,并存储预编译对象,例如,所述主EPG服务器在从所述FTP服务器获取到JSP文件之后,将获取的JSP文件预编译成class文件存储,以供所述从EPG服务器在需要时获取并加载运行。
进一步的,基于第一实施例,提出本发明数据推送方法的第三实施例,在本实施例中,所述步骤S30之前,还包括:
在当前存储有所述业务请求指向的业务数据时,所述从EPG服务器对存储的所述业务请求指向的业务数据进行验证操作;
在验证通过时,执行所述步骤S30;
所述从EPG服务器对存储的所述业务请求指向的业务数据进行验证操作的步骤之后,还包括:
在验证失败时,所述从EPG服务器基于所述主EPG服务器更新存储的所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器。
众所周知的,数据在网络传输过程中,存在数据包丢失和数据包无序等问题,因此,本实施例在进行内容分离时,所述从EPG服务器分离存储的业务数据可能与所述主EPG服务器存储的原始业务数据不同,为确保能够正常为用户提供服务,所述从EPG服务器在提供服务之前还需要对业务数据进行验证操作。
具体的,在当前存储有所述业务请求指向的业务数据时,所述从EPG服务器对存储的所述业务请求指向的业务数据进行验证操作,例如,本实施例采用CRC校验(Cyclic Redundancy Check,循环冗余校验)对存储的所述业务请求指向的业务数据的完整性进行验证。其中,在存储的所述业务请求指向的业务数据验证通过时,所述从EPG服务器直接将存储的所述业务请求指向的业务数据发送至所述IPTV终端,由所述IPTV终端将所述业务请求指向的业务数据呈现给用户;在存储的所述业务请求指向的业务数据验证失败时,所述从EPG服务器将所述业务请求指向的业务数据加入到下载队列,由下载队列将所述业务请求指向的业务数据从所述主EPG服务器下载到本地,并替换本地已存储的所述业务请求指向的业务数据。所述从EPG服务器将所述业务请求指向的业务数据加入到下载队列同时,将接收的所述业务请求重定向至所述主EPG服务器,由所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据。
进一步的,基于前述任一实施例,提出本发明数据推送方法的第四实施例,在本实施例中,所述步骤S10之前,还包括:
在接收到所述IPTV终端发送的业务请求时,所述从EPG服务器获取存储的所述IPTV终端的session数据;
所述从EPG服务器对获取的所述session数据的有效性进行验证;
在验证通过时,执行所述步骤S10。
需要说明的是,在第一实施例的基础上,本实施例进一步提出一种分布式session的方案,以提升IPTV集群的可伸缩性。具体的,所述主EPG服务器记录记录维护session的元数据信息,包括版本信息、session位置、副本信息,以及从EPG服务器退出时session信息恢复、重新分配、对超时的session信息做失效处理等;所述从EPG服务器用于在有新的IPTV终端的业务请求时,从所述主EPG服务器获取是否存在此IPTV终端的session信息,如果有取出session的位置信息从相应的从EPG服务器(包括本端或其它从EPG服务器)中读出IPTV终端的session数据,如果没有则新创建session对象后通知主EPG服务器更新session信息。例如,当从EPG服务器A接受到IPTV终端的业务请求时创建一个session对象,若此IPTV终端下一次被分配到从EPG服务器B,从EPG服务器B可以根据sessionID获取从EPG服务器A节点创建的session对象。优选地,本实施例使用IPTV终端对应的用户ID(在用户注册时分配)作为sessionID,这样sessionID就不需要在从EPG服务器中进行传递。
此外,为防止数据损毁或从EPG服务器故障导致session丢失的问题,本实施例还提供session副本功能,即session数据存放多份。具体的,在session对象创建持久化后,从EPG服务器同时复制数据到其他从EPG服务器上。优选地,将副本数设置为奇数,例如本实施例将副本数设置为3个。当本地的session数据出错时,从EPG服务器可以通过复制完整的副本来治愈那些出错的数据,使得数据的副本恢复到预期设定的数量来保证数据的高可靠性。
本实施例中,在接收到所述IPTV终端基于所述从EPG服务器信息发送的业务请求时,所述从EPG服务器获取存储的所述IPTV终端的session数据。在获取到所述IPTV终端的session数据之后,所述从EPG服务器对获取的所述session数据的有效性进行验证,其中,对获取的所述session数据的有效性进行验证包括:验证所述session数据是否完整,验证所述session数据是否出错等。在验证通过时,所述从EPG服务器判断当前是否存储有接收的所述业务请求指向的业务数据,以确定如何为所述IPTV终端提供服务,具体可参照前述实施例,此处不再赘述。
进一步的,在本实施例中,在未获取到所述session数据时,所述从EPG服务器发送获取请求至所述主EPG服务器;
在接收到所述主EPG服务器根据所述获取请求返回的指示信息时,所述从EPG服务器基于所述指示信息对应的从EPG服务器获取所述session数据。
基于前述描述,本领域技术人员可以理解的是,当session数据损毁或者session数据由其他从EPG服务器创建时,所述从EPG服务器将无法从本地获取到相应IPTV终端的session数据。本实施例中,在未获取到所述session数据时,所述从EPG服务器发送获取请求至所述主EPG服务器,以供主EPG服务器根据接收的获取请求以及存储的session元数据信息,向所述从EPG服务器反馈相应session数据的session位置信息(指示信息)。在接收到所述主EPG服务器根据所述获取请求返回的session位置信息时,所述从EPG服务器基于所述session位置信息对应的从EPG服务器获取所述session数据。在获取到所述session数据之后,开始前述数据推送流程,具体可参照前述实施例,此处不再赘述。
进一步的,由于所述主EPG服务器还对超时的session做失效处理,所述从EPG服务器向所述主EPG服务器发送获取请求以请求session数据时,所述主EPG服务器可能由于相应session数据已超时而无指示信息返回。本实施例中,所述从EPG服务器在未接收到所述主EPG服务器返回的指示信息时,创建所述IPTV终端的session数据,并在完成创建后通知主EPG服务器更新session元数据信息,具体可参照前述描述,此处不再赘述。
进一步的,本发明还提供一种数据推送装置,所述数据推送装置应用于IPTV集群,参照图1,所述IPTV集群包括主EPG服务器和多个从EPG服务器,参照图3,在本发明数据推送装置的第一实施例中,所述数据推送装置包括:
第一判断模块10,用于当其所在从EPG服务器接收到IPTV终端发送的业务请求时,判断其所在从EPG服务器当前是否存储有所述业务请求指向的业务数据;
众所周知的,普通的WEB服务器中内容是存放在本地的,但对于EPG服务器来说,情况十分特殊,由于WEB内容体量非常大,主要是图片和第三方模板(如JSP文件等),而且随着业务扩展,4K极清上线,各种增值业务的蓬勃发展,这部分内容也会成倍增长,会导致EPG服务器在内容同步方面不堪重负。WEB内容虽说体量大,但是在现网环境中每个EPG服务器中真正被访问到的内容却是占极少的一部分,所以WEB内容全部放在EPG服务器本地是I/O资源的极大浪费,影响IPTV集群的工作性能。
基于前述缺陷,本实施例的主旨在于将EPG服务器的WEB内容进行分离,为此,本实施例提出如图1所示的分布式IPTV集群架构,如图1所示,相较于现有技术,本实施例引入了主EPG服务器和从EPG服务器两种WEB容器,其中,全部WEB内容放在主EPG服务器上,所述主EPG服务器负责分发用户的WEB请求,进行负载均衡;所述从EPG服务器负责拦截并处理用户的WEB请求,所述从EPG服务器在处理用户的WEB请求时从主EPG服务器下载相应的WEB内容至本地的WEB容器中。本领域技术人员可以理解的是,从EPG服务器这种按需下载的方式可以保证从EPG服务器本地的WEB容器内只有少量的内容,且不用关心WEB内容的同步,而且下载到WEB容器中的WEB内容是可以复用的,如果本地已经存在则不需要再次下载。此外,主EPG服务器可以自动感知集群中从EPG服务器的工作状态(如通过心跳报文进行监测),当某台从EPG服务器状态异常时,主EPG服务器可把此从EPG服务器从集群中剔除,不再向此从EPG服务器分发请求,当此台从EPG服务器状态恢复正常时,主EPG服务器又可以把它加入到集群中提供服务。此外,主EPG服务器还可以自动感知集群新加入的从EPG服务器,可以使集群在不重新配置或重启的情况下平滑扩容,应对越来越高的性能要求。需要说明的是,IPTV集群的用户即IPTV终端,IPTV终端可以包括计算机、机顶盒、智能电视或者智能手机等移动终端中的至少一种。
本实施例中,所述主EPG服务器在为IPTV终端分配提供服务的从EPG服务器时,采用IP_Hash算法结合各从EPG服务器的负载状态进行加权,实时为IPTV终端分配负载较轻的从EPG服务器。具体的,所述主EPG服务器将集群中各从EPG服务器虚拟成n个节点,均匀分布到hash环上;并在接收到IPTV终端发送的原始业务请求时,根据配置的参数计算出一个hash值,在前述hash环上查找计算的hash值附近的虚拟节点,然后根据附近的虚拟节点的负载状态进行加权,确定负载较轻的虚拟节点,将所述负载较轻的虚拟节点对应的从EPG服务器信息发送至所述IPTV终端,由该虚拟节点对应的从EPG服务器为所述IPTV终端提供服务。需要说明的是,所述IPTV终端在接收到所述主EPG服务器发送的从EPG服务器信息之后,将原始业务请求重新打包为新的业务请求发送至所述从EPG服务器,而且,后续的其它业务请求也均发送至分配的从EPG服务器。
所述第一判断模块10当其所在从EPG服务器在接收到所述IPTV终端基于所述从EPG服务器信息发送的业务请求时,判断其所在从EPG服务器当前是否存储有接收的所述业务请求指向的业务数据(即WEB内容),以根据判断结果执行相应的操作,例如,在存储有所述业务请求指向的业务数据时,可直接将存储的所述业务请求指向的业务数据发送至所述IPTV终端。
处理模块20,用于当其所在从EPG服务器当前未存储有所述业务请求指向的业务数据时,基于所述主EPG服务器获取并存储所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器,以供所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据;
本实施例中,在其所在从EPG服务器当前未存储有所述业务请求指向的业务数据时,处理模块20将所述业务请求指向的业务数据加入到其所在从EPG服务器的下载队列,由下载队列将所述业务请求指向的业务数据从所述主EPG服务器下载到从EPG服务。所述处理模块20将所述业务请求指向的业务数据加入到下载队列同时,将接收的所述业务请求重定向至所述主EPG服务器,由所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据。本领域技术人员可以理解的是,在本实施例中,所述从EPG服务器和所述IPTV终端可以同时获取到所述业务请求指向的业务数据,所述IPTV终端即可将获取到的业务数据呈现给用户。此外,当所述业务请求指向的业务数据再次被请求时,所述业务请求指向的业务数据即可直接从其所在从EPG服务器本地获取。
发送模块30,用于当其所在从EPG服务器当前存储有所述业务请求指向的业务数据时,将存储的所述业务请求指向的业务数据发送至所述IPTV终端。
基于前述描述,本领域技术人员可以理解的是,所述从EPG服务器存储业务数据的目的在于再次接收到指向存储的业务数据的业务请求时,直接用存储的所述业务数据提供服务。因此,本实施例中,所述发送模块30当其所在从EPG服务器当前存储有所述业务请求指向的业务数据时,直接将其所在从EPG服务器存储的所述业务请求指向的业务数据发送至所述IPTV终端,由IPTV终端将所述业务请求指向的业务数据呈现给用户。
此外,由于主EPG服务器在IPTV集群中担当“首脑”作用,若主EPG服务器工作异常,整个IPTV集群将无法正常提供对外服务。因此,为提升IPTV集群的稳定性,本实施例还引入了冗余机制。具体的,如图1所示,本实施例提出的IPTV集群还包括备EPG服务器,用作所述主EPG服务器的热备份。例如,所述主EPG服务器工作异常时,进行主EPG服务器和备EPG服务器的切换,由所述备EPG服务器接管所述主EPG服务器。
进一步的,在本实施例中,所述主EPG服务器还定时进行本地WEB内容的同步,如图1所示,本实施例提出的IPTV集群还包括FTP服务器,所述主EPG服务器基于所述FTP服务器进行本地WEB内容的同步,例如,所述主EPG服务器从所述FTP服务器获取到新的图片文件存储在本地。需要说明的是,所述主EPG服务器在完成同步之后,还下发内容同步通知至集群中各从EPG服务器,通知各从EPG服务器与所述主EPG服务器进行内容同步;从EPG服务器在接收到所述主EPG服务器下发的内容同步通知之后,校验本地存储的WEB内容,以进行本地WEB内容的更新、新增和/或删除。
本实施例提出的数据推送装置,在包括主EPG服务器和从EPG服务器的IPTV集群中,将全量的WEB内容(业务数据)分离到各从EPG服务器,各从EPG服务器基于存储的WEB内容以及接收的IPTV终端的业务请求提供服务,并按需更新存储的WEB内容。相较于现有技术,本发明避免了由同步全量WEB内容导致的IPTV集群I/O资源浪费,能够达到提高IPTV集群工作性能的目的。
进一步的,基于第一实施例,提出本发明数据推送装置的第二实施例,在本实施例中,所述业务数据包括第一类业务数据和第二类业务数据,所述数据推送装置还包括第二判断模块,用于判断所述业务请求指向的业务数据是否为第一类业务数据;
所述处理模块20还用于在所述业务请求指向的业务数据为第一类业务数据时,将所述业务请求重定向至所述主EPG服务器;
所述发送模块30还用于在所述业务请求指向的业务数据为第二类业务数据,且所述处理模块20基于所述主EPG服务器获取到所述业务请求指向的业务数据时,将获取的业务数据加载至其所在从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端。
需要说明的是,资源可以作为静态资源或动态资源进行引用,这是通过使用StaticResource标记扩展或DynamicResource标记扩展完成的。其中,静态资源是指在被用户请求时可直接反馈至用户的资源;动态资源是指在被用户请求时,根据不同的用户运行动态资源以反馈不同的结果。本实施例中,在接收到IPTV终端的业务请求时,还需要根据接收的业务请求携带的StaticResource标记扩展或DynamicResource标记扩展确定需要进行的操作。
具体的,在其所在从EPG服务器当前未存储有所述业务请求指向的业务数据,且所述业务请求携带有StaticResource标记扩展时,说明所述IPTV终端请求的是其所在从EPG服务器当前未存储的静态资源(第一类业务数据),不需要消耗处理资源运行,此时所述处理模块20将所述业务请求指向的业务数据加入到其所在从EPG服务器的下载队列,由下载队列将所述业务请求指向的业务数据从所述主EPG服务器下载到其所在从EPG服务器本地。在将所述业务请求指向的业务数据加入到其所在从EPG服务器下载队列的同时,所述处理模块20将接收的所述业务请求重定向至所述主EPG服务器,由所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据。
在其所在从EPG服务器当前未存储有所述业务请求指向的业务数据,且所述业务请求携带有DynamicResource标记扩展时,说明所述IPTV终端请求的是其所在从EPG服务器当前未存储的动态资源(第二类业务数据),需要消耗处理资源运行,此时所述处理模块20将所述业务请求指向的业务数据加入到其所在从EPG服务器的下载队列,由下载队列将所述业务请求指向的业务数据从所述主EPG服务器下载到其所在从EPG服务器本地。在将所述业务请求指向的业务数据从所述主EPG服务器下载到其所在从EPG服务器本地之后,所述发送模块30将下载的业务数据加载至所述从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端,以避免造成对主EPG服务器处理资源的不必要占用,从而提升IPTV集群的工作性能。
在其所在从EPG服务器当前存储有所述业务请求指向的业务数据,且所述业务请求携带有StaticResource标记扩展时,说明所述IPTV终端请求的是其所在从EPG服务器当前存储的静态资源(第一类业务数据),不需要消耗处理资源运行,所述发送模块30直接将其所在从EPG服务器存储的所述业务请求指向的业务数据发送至所述IPTV终端,供所述IPTV终端将所述业务请求指向的业务数据呈现给用户。
在其所在从EPG服务器当前存储有所述业务请求指向的业务数据,且所述业务请求携带有DynamicResource标记扩展时,说明所述IPTV终端请求的是其所在从EPG服务器当前存储的动态资源(第一类业务数据),需要消耗处理资源运行,此时所述发送模块30将其所在从EPG服务器存储的所述业务请求指向的业务业务数据加载至所述从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端。
进一步的,在本实施例中,所述主EPG服务器在与所述FTP服务器进行内容同步时,在从所述FTP服务器获取到动态资源时,需要将获取的动态资源进行预编译,并存储预编译对象,例如,所述主EPG服务器在从所述FTP服务器获取到JSP文件之后,将获取的JSP文件预编译成class文件存储,以供所述从EPG服务器在需要时获取并加载运行。
进一步的,基于第一实施例,提出本发明数据推送装置的第三实施例,在本实施例中,所述发送模块30还用于当其所在从EPG服务器当前存储有所述业务请求指向的业务数据时,对存储的所述业务请求指向的业务数据进行验证操作;以及在验证通过时,将存储的所述业务请求指向的业务数据发送至所述IPTV终端;
所述数据推送装置还包括更新模块,用于在验证失败时,基于所述主EPG服务器更新存储的所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器。
众所周知的,数据在网络传输过程中,存在数据包丢失和数据包无序等问题,因此,本实施例在进行内容分离时,所述从EPG服务器分离存储的业务数据可能与所述主EPG服务器存储的原始业务数据不同,为确保能够正常为用户提供服务,在提供服务之前还需要对业务数据进行验证操作。
具体的,在其所在从EPG服务器当前存储有所述业务请求指向的业务数据时,所述发送模块30对其所在从EPG服务器存储的所述业务请求指向的业务数据进行验证操作,例如,本实施例所述发送模块30采用CRC校验(Cyclic Redundancy Check,循环冗余校验)对存储的所述业务请求指向的业务数据的完整性进行验证。其中,在存储的所述业务请求指向的业务数据验证通过时,所述发送模块30直接将其所在从EPG服务器存储的所述业务请求指向的业务数据发送至所述IPTV终端,由所述IPTV终端将所述业务请求指向的业务数据呈现给用户;在存储的所述业务请求指向的业务数据验证失败时,更新模块将所述业务请求指向的业务数据加入到其所在从EPG服务器的下载队列,由下载队列将所述业务请求指向的业务数据从所述主EPG服务器下载到其所在从EPG服务器本地,在完成下载之后,所述更新模块将其所在从EPG服务器本地已存储的所述业务请求指向的业务数据替换为下载队列新下载的所述业务请求指向的业务数据。所述更新模块在将所述业务请求指向的业务数据加入到其所在从EPG服务器的下载队列同时,将接收的所述业务请求重定向至所述主EPG服务器,由所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据。
进一步的,基于前述任一实施例,提出本发明数据推送装置的第四实施例,在本实施例中,所述数据推送装置还包括会话模块,用于当其所在从EPG服务器接收到所述IPTV终端发送的业务请求时,获取其所在从EPG服务器存储的所述IPTV终端的session数据;以及对获取的所述session数据的有效性进行验证;
所述第一判断模块10还用于在验证通过时,判断其所在从EPG服务器当前是否存储有接收的所述业务请求指向的业务数据。
需要说明的是,在第一实施例的基础上,本实施例进一步提出一种分布式session的方案,以提升IPTV集群的可伸缩性。具体的,所述主EPG服务器记录记录维护session的元数据信息,包括版本信息、session位置、副本信息,以及从EPG服务器退出时session信息恢复、重新分配、对超时的session信息做失效处理等;所述从EPG服务器用于在有新的IPTV终端的业务请求时,从所述主EPG服务器获取是否存在此IPTV终端的session信息,如果有则取出session的位置信息从相应的从EPG服务器(包括本端或其它从EPG服务器)中读出IPTV终端的session数据,如果没有则新创建session对象后通知主EPG服务器更新session信息。例如,当从EPG服务器A接受到IPTV终端的业务请求时创建一个session对象,若此IPTV终端下一次被分配到从EPG服务器B,从EPG服务器B可以根据sessionID获取从EPG服务器A节点创建的session对象。优选地,本实施例使用IPTV终端对应的用户ID(在用户注册时分配)作为sessionID,这样sessionID就不需要在从EPG服务器中进行传递。
此外,为防止数据损毁或从EPG服务器故障导致session丢失的问题,本实施例还提供session副本功能,即session数据存放多份。具体的,在session对象创建持久化后,从EPG服务器同时复制数据到其他从EPG服务器上。优选地,将副本数设置为奇数,例如本实施例将副本数设置为3个。当本地的session数据出错时,从EPG服务器可以通过复制完整的副本来治愈那些出错的数据,使得数据的副本恢复到预期设定的数量来保证数据的高可靠性。
本实施例中,会话模块当其所在从EPG服务器接收到所述IPTV终端基于所述从EPG服务器信息发送的业务请求时,获取其所在从EPG服务器存储的所述IPTV终端的session数据。在获取到所述IPTV终端的session数据之后,对获取的所述session数据的有效性进行验证,其中,对获取的所述session数据的有效性进行验证包括:验证所述session数据是否完整,验证所述session数据是否出错等。在验证通过时,由所述第一判断模块10判断其所在从EPG服务器当前是否存储有接收的所述业务请求指向的业务数据,以确定如何为所述IPTV终端提供服务,具体可参照前述实施例,此处不再赘述。
进一步的,在本实施例中,所述会话模块还用于在未获取到所述session数据时,发送获取请求至所述主EPG服务器;以及在接收到所述主EPG服务器根据所述获取请求返回的指示信息时,基于所述指示信息对应的从EPG服务器获取所述session数据。
基于前述描述,本领域技术人员可以理解的是,当session数据损毁或者session数据由其他从EPG服务器创建时,所述会话模块将无法从其所在从EPG服务器本地获取到相应IPTV终端的session数据。本实施例中,在未获取到所述session数据时,所述会话模块发送获取请求至所述主EPG服务器,以供主EPG服务器根据接收的获取请求以及存储的session元数据信息,向所述从EPG服务器反馈相应session数据的session位置信息(指示信息)。在基于其所在从EPG服务器接收到所述主EPG服务器根据所述获取请求返回的session位置信息时,所述会话模块基于所述session位置信息对应的从EPG服务器获取所述session数据。在获取到所述session数据之后,开始前述数据推送流程,此处不再赘述。
进一步的,由于所述主EPG服务器还对超时的session做失效处理,所述会话模块向所述主EPG服务器发送获取请求以请求session数据时,所述主EPG服务器可能由于相应session数据已超时而无指示信息返回。本实施例中,所述会话模块在未接收到所述主EPG服务器返回的指示信息时,创建所述IPTV终端的session数据,并在完成创建后通知主EPG服务器更新session元数据信息,具体可参照前述描述,此处不再赘述。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据推送方法,其特征在于,所述数据推送方法应用于IPTV集群,所述IPTV集群包括主EPG服务器和多个从EPG服务器,所述数据推送方法包括:
在接收到IPTV终端发送的业务请求时,所述从EPG服务器判断当前是否存储有接收的所述业务请求指向的业务数据;
在当前未存储有所述业务请求指向的业务数据时,所述从EPG服务器基于所述主EPG服务器获取并存储所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器,以供所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据;
在当前存储有所述业务请求指向的业务数据时,所述从EPG服务器将存储的所述业务请求指向的业务数据发送至所述IPTV终端。
2.如权利要求1所述的数据推送方法,其特征在于,所述业务数据包括第一类业务数据和第二类业务数据,所述将所述业务请求重定向至所述主EPG服务器的步骤之前,还包括:
所述从EPG服务器判断所述业务请求指向的业务数据是否为第一类业务数据;
在所述业务请求指向的业务数据为第一类业务数据时,执行所述将所述业务请求重定向至所述主EPG服务器的步骤;
所述从EPG服务器判断所述业务请求指向的业务数据是否为第一类业务数据的步骤之后,还包括:
在所述业务请求指向的业务数据为第二类业务数据,且基于所述主EPG服务器获取到所述业务请求指向的业务数据时,所述从EPG服务器将获取的业务数据加载至所述从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端。
3.如权利要求1所述的数据推送方法,其特征在于,所述从EPG服务器将存储的所述业务请求指向的业务数据发送至所述IPTV终端的步骤之前,还包括:
在当前存储有所述业务请求指向的业务数据时,所述从EPG服务器对存储的所述业务请求指向的业务数据进行验证操作;
在验证通过时,执行所述从EPG服务器将存储的所述业务请求指向的业务数据发送至所述IPTV终端的步骤;
所述从EPG服务器对存储的所述业务请求指向的业务数据进行验证操作的步骤之后,还包括:
在验证失败时,所述从EPG服务器基于所述主EPG服务器更新存储的所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器。
4.如权利要求1-3任一项所述的数据推送方法,其特征在于,所述从EPG服务器判断当前是否存储有接收的所述业务请求指向的业务数据的步骤之前,还包括:
在接收到所述IPTV终端发送的业务请求时,所述从EPG服务器获取存储的所述IPTV终端的session数据;
所述从EPG服务器对获取的所述session数据的有效性进行验证;
在验证通过时,执行所述从EPG服务器判断当前是否存储有接收的所述业务请求指向的业务数据的步骤。
5.如权利要求4所述的数据推送方法,其特征在于,所述从EPG服务器获取存储的所述IPTV终端的session数据的步骤之后,还包括:
在未获取到所述session数据时,所述从EPG服务器发送获取请求至所述主EPG服务器;
在接收到所述主EPG服务器根据所述获取请求返回的指示信息时,所述从EPG服务器基于所述指示信息对应的从EPG服务器获取所述session数据。
6.一种数据推送装置,其特征在于,所述数据推送装置应用于IPTV集群,所述IPTV集群包括主EPG服务器和多个从EPG服务器,所述数据推送装置包括:
第一判断模块,用于当其所在从EPG服务器接收到IPTV终端发送的业务请求时,判断其所在从EPG服务器当前是否存储有所述业务请求指向的业务数据;
处理模块,用于当其所在从EPG服务器当前未存储有所述业务请求指向的业务数据时,基于所述主EPG服务器获取并存储所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器,以供所述主EPG服务器向所述IPTV终端推送接收的所述业务请求所指向的业务数据;
发送模块,用于当其所在从EPG服务器当前存储有所述业务请求指向的业务数据时,将存储的所述业务请求指向的业务数据发送至所述IPTV终端。
7.如权利要求6所述的数据推送装置,其特征在于,所述业务数据包括第一类业务数据和第二类业务数据,所述数据推送装置还包括第二判断模块,用于判断所述业务请求指向的业务数据是否为第一类业务数据;
所述处理模块还用于在所述业务请求指向的业务数据为第一类业务数据时,将所述业务请求重定向至所述主EPG服务器;
所述发送模块还用于在所述业务请求指向的业务数据为第二类业务数据,且所述处理模块基于所述主EPG服务器获取到所述业务请求指向的业务数据时,将获取的业务数据加载至其所在从EPG服务器的Servlet容器中运行,并将运行的结果作为所述业务请求指向的业务数据返回至所述IPTV终端。
8.如权利要求6所述的数据推送装置,其特征在于,所述发送模块还用于当其所在从EPG服务器当前存储有所述业务请求指向的业务数据时,对存储的所述业务请求指向的业务数据进行验证操作;以及在验证通过时,将存储的所述业务请求指向的业务数据发送至所述IPTV终端;
所述数据推送装置还包括更新模块,用于在验证失败时,基于所述主EPG服务器更新存储的所述业务请求指向的业务数据,并将所述业务请求重定向至所述主EPG服务器。
9.如权利要求6-8任一项所述的数据推送装置,其特征在于,所述数据推送装置还包括会话模块,用于当其所在从EPG服务器接收到所述IPTV终端发送的业务请求时,获取其所在从EPG服务器存储的所述IPTV终端的session数据;以及对获取的所述session数据的有效性进行验证;
所述第一判断模块还用于在验证通过时,判断其所在从EPG服务器当前是否存储有接收的所述业务请求指向的业务数据。
10.如权利要求9所述的数据推送装置,其特征在于,所述会话模块还用于在未获取到所述session数据时,发送获取请求至所述主EPG服务器;以及在接收到所述主EPG服务器根据所述获取请求返回的指示信息时,基于所述指示信息对应的从EPG服务器获取所述session数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510894438.3A CN106850724B (zh) | 2015-12-07 | 2015-12-07 | 数据推送方法及装置 |
PCT/CN2016/108684 WO2017097181A1 (zh) | 2015-12-07 | 2016-12-06 | 数据推送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510894438.3A CN106850724B (zh) | 2015-12-07 | 2015-12-07 | 数据推送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106850724A true CN106850724A (zh) | 2017-06-13 |
CN106850724B CN106850724B (zh) | 2020-03-27 |
Family
ID=59013750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510894438.3A Active CN106850724B (zh) | 2015-12-07 | 2015-12-07 | 数据推送方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106850724B (zh) |
WO (1) | WO2017097181A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667509A (zh) * | 2018-03-22 | 2018-10-16 | 新华三技术有限公司 | 集群加入方法、装置及集群设备 |
CN108848144A (zh) * | 2018-05-31 | 2018-11-20 | 中国联合网络通信集团有限公司 | 区块链中节点访问方法、装置及区块链节点 |
CN109639506A (zh) * | 2019-01-08 | 2019-04-16 | 北京文香信息技术有限公司 | 一种主从控制方法、装置、存储介质及服务器 |
CN112202725A (zh) * | 2020-09-10 | 2021-01-08 | 中国联合网络通信集团有限公司 | 业务的校验方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024982B (zh) * | 2021-11-03 | 2024-02-23 | 南京炫佳网络科技有限公司 | 信息传输方法、业务服务器、终端设备、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1870732A (zh) * | 2006-01-20 | 2006-11-29 | 华为技术有限公司 | 电子节目单界面订制方法 |
CN1929494A (zh) * | 2006-10-11 | 2007-03-14 | 中兴通讯股份有限公司 | 分布式电子节目导航系统 |
US20100287583A1 (en) * | 2006-08-01 | 2010-11-11 | SBC Knowledge Ventures I..P. | Method and apparatus for distributing geographically restricted video data in an internet protocol television (iptv) system |
CN102685552A (zh) * | 2012-05-08 | 2012-09-19 | 华为技术有限公司 | 一种epg内容元数据管理方法、服务器及系统 |
CN104469420A (zh) * | 2013-09-25 | 2015-03-25 | 中兴通讯股份有限公司 | 网络电视终端的业务应急方法、装置及系统 |
-
2015
- 2015-12-07 CN CN201510894438.3A patent/CN106850724B/zh active Active
-
2016
- 2016-12-06 WO PCT/CN2016/108684 patent/WO2017097181A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1870732A (zh) * | 2006-01-20 | 2006-11-29 | 华为技术有限公司 | 电子节目单界面订制方法 |
US20100287583A1 (en) * | 2006-08-01 | 2010-11-11 | SBC Knowledge Ventures I..P. | Method and apparatus for distributing geographically restricted video data in an internet protocol television (iptv) system |
CN1929494A (zh) * | 2006-10-11 | 2007-03-14 | 中兴通讯股份有限公司 | 分布式电子节目导航系统 |
CN102685552A (zh) * | 2012-05-08 | 2012-09-19 | 华为技术有限公司 | 一种epg内容元数据管理方法、服务器及系统 |
CN104469420A (zh) * | 2013-09-25 | 2015-03-25 | 中兴通讯股份有限公司 | 网络电视终端的业务应急方法、装置及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667509A (zh) * | 2018-03-22 | 2018-10-16 | 新华三技术有限公司 | 集群加入方法、装置及集群设备 |
CN108667509B (zh) * | 2018-03-22 | 2020-04-14 | 新华三技术有限公司 | 集群加入方法、装置及集群设备 |
CN108848144A (zh) * | 2018-05-31 | 2018-11-20 | 中国联合网络通信集团有限公司 | 区块链中节点访问方法、装置及区块链节点 |
CN108848144B (zh) * | 2018-05-31 | 2021-03-30 | 中国联合网络通信集团有限公司 | 区块链中节点访问方法、装置及区块链节点 |
CN109639506A (zh) * | 2019-01-08 | 2019-04-16 | 北京文香信息技术有限公司 | 一种主从控制方法、装置、存储介质及服务器 |
CN112202725A (zh) * | 2020-09-10 | 2021-01-08 | 中国联合网络通信集团有限公司 | 业务的校验方法及装置 |
CN112202725B (zh) * | 2020-09-10 | 2023-04-07 | 中国联合网络通信集团有限公司 | 业务的校验方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2017097181A1 (zh) | 2017-06-15 |
CN106850724B (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11928029B2 (en) | Backup of partitioned database tables | |
CN106685691B (zh) | 物联网系统中终端设备的高效更新配置方法 | |
CN106850724A (zh) | 数据推送方法及装置 | |
US10025673B1 (en) | Restoring partitioned database tables from backup | |
CN103226493B (zh) | 多操作系统业务的部署方法和系统 | |
US8930312B1 (en) | System and method for splitting a replicated data partition | |
CN111091429A (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
CN106802932B (zh) | 一种数据库的路由方法、装置及数据库系统 | |
CN106790563B (zh) | 分布式存储系统和方法 | |
CN106446168B (zh) | 一种面向分布式数据仓库的加载客户端实现方法 | |
CN103209223A (zh) | 分布式应用会话信息共享方法、系统和应用服务器 | |
CN109040190A (zh) | 一种调度方法、装置及计算机可读存储介质 | |
CN108197155A (zh) | 信息数据同步方法、装置及计算机可读存储介质 | |
CN105808736A (zh) | 一种榜单数据更新方法、装置及系统 | |
CN106713391A (zh) | 一种session信息的共享方法和共享系统 | |
US12032952B2 (en) | Service upgrade method, apparatus, and system | |
CN106339273A (zh) | 一种应用程序修复方法、终端及服务器 | |
CN106611001A (zh) | 虚拟机数据库表数据一致性的校验方法、装置及系统 | |
CN109992219A (zh) | 分布式存储方法、装置、设备及计算机可读存储介质 | |
CN110888858A (zh) | 数据库的操作方法和装置、存储介质、电子装置 | |
CN107734017A (zh) | 数据服务方法及系统 | |
CN110737670B (zh) | 一种集群数据一致性的保障方法、装置及系统 | |
CN102594874B (zh) | 一种同步处理方法和装置 | |
CN112905676A (zh) | 一种数据文件的导入方法及装置 | |
CN114422331A (zh) | 容灾切换方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |