一种IPTV系统模块间数据同步的方法及系统技术方案

技术编号:3845295 阅读:189 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种IPTV系统模块间数据同步的方法,该方法包括:主控模块根据发生变化的动态数据更新动态表中的记录;发送同步消息至业务处理模块;业务处理模块接收到同步消息后,根据同步消息所携带操作类型、或同步消息所携带操作类型、字段变化标记和变化内容,更新同步消息携带的表名和记录号所对应本业务处理模块内存数据库中的记录,并回复主控模块应答同步消息。本发明专利技术还公开一种IPTV系统模块间数据同步的系统,包括主控模块和业务处理模块。采用本发明专利技术所述的方法和系统,能够提高同步的实时性,并降低所需同步的数据量。

【技术实现步骤摘要】

本专利技术涉及内存数据库的数据同步技术,尤其涉及一种IPTV (交互式网络电视)系统模块间数据同步的方法及系统。
技术介绍
IPTV系统的相关数据分为静态数据和动态数据两类,其中,静态数据指在系统运行过程中不发生变化的数据;动态数据指在系统运行过程中会发生变化的数据。IPTV系统中后台、主控模块、业务处理模块的拓朴关系如图l所示,其中,后台一般为PC机,用于所述静态数据的配置、更改,并将配置的或更改了的静态数据同步至主控模块;主控模块,用于将接收到的静态数据同步至各业务处理模块,并用于将系统运行中发生变化的动态数据实时同步至各业务处理模块,以便控制各业务处理模块同步对外提供业务处理;业务处理模块,负责处理业务,业务处理模块的静态数据和动态数据均由主控模块同步获得。这里,静态数据和动态数据均存储于主控模块或各业务处理模块的内存数据库,即所述主控模块与各业务处理模块间的数据同步为其上内存数据库之间的数据同步。目前,常用的内存数据库的数据同步方法是失步映像同步方法,具体为预先设置失步队列及定时器;当有记录发生变化时,将该记录的记录号放入失步队列,到达定时器的时长时检查失步队列中是否有记录,如果有记录,则将该记录同步到对端;否则,不执行同步处理。此方法所需同步的数据量较大,且如果采用此方法实现主控模块和多个业务处理模块同步,则需要在主控模块中为每个业务处理模块分配一个失步队列,以便标记是否需要将数据同步至该业务处理模块、以及是否将数据成功同步至该业务处理模块,即系统中有几个业务处理模块,就需要分配几个失步队列,这样,会占用较大的内存空间,可见,此方法不适用于主控模块和多个业务处理4莫块同步。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种IPTV系统模块间数据同步的方法及系统,能够提高同步的实时性,并降低所需同步的数据量。为达到上述目的,本专利技术的技术方案是这样实现的一种IPTV系统模块间数据同步的方法,该方法包括主控模块根据发生变化的动态数据更新自身内存数据库中动态表的记录,并发送同步消息;收到同步消息的业务处理模块,根据同步消息中所携带的操作类型,更新同步消息中携带的表名和记录号所对应的自身内存数据库中的记录,并回复主控模块应答同步消息。进一步地,所述同步消息中还携带有字段变化标记和变化内容;所述更新为业务处理模块根据同步消息中所携带的操作类型、字段变化标记和变化内容,更新同步消息中携带的表名和记录号所对应的自身内存数据库中的记录。进一步地,所述主控模块更新动态表中的记录并发送同步消息具体为动态数据发生变化后,主控模块的业务进程根据发生变化的动态数据对动态表中的记录进行删除、插入或修改,更新动态表中的记录,并发送携带所述动态表的表名、记录号、所述记录的关4定字、对所述记录进行操作的操作类型和所述记录的字段变化标记的更新请求消息至主控模块的更新进程;主控模块的更新进程确定收到的更新请求消息所携带操作类型是插入、修改还是删除,如果是插入或修改,则主控模块的更新进程判断主控模块的内存数据库中是否存在收到的更新请求消息所携带表名和记录的关键字对应的记录,如果存在,则将该记录中字段变化标记所对应元素作为该记录的变化内容,并发送携带所述表名、记录号、操作类型、字段变化标记和变化内容的同步消息至在线的业务处理模块;如果不存在,则结束本次同步流程;如果是删除,主控模块的更新进程发送同步消息至在线的业务处理模块。进一步地,该方法进一步包括主控模块预先分配全局数据区;将变化内容所属记录的相关信息、以及各业务处理模块对该变化内容的同步状态存储至所述全局数据区;定时遍历全局数据区,如果存在为失败的业务处理模块对变化内容的同步状态,则重新同步该变化内容至该业务处理;f莫块。进一步地,所述存储变化内容所属记录的相关信息、以及各业务处理模块对该变化内容的同步状态包括设置全局数组,所述全局数组包括表名、记录的关键字、操作类型、字段变化标记、变化的记录内容、由模块号组成的数组和由模块号、同步标记和重发次数的对应关系;相应的,主控模块的内存数据库中存在接收到的更新请求消息所携带表名和记录的关4建字对应的记录时,该方法进一步包括主控模块的更新进程根据所确定的记录、所述更新请求消息携带的表名、记录的关键字、操作类型、字段变化标记、以及在线的业务处理模块的模块号为所设置的全局数组中的相应成员赋值,并分别设置所述同步标记、重发次数的初始值,得到所确定的记录对应的全局数组,并存储在所述全局数据区;回复主控;漠块应答消息后,该方法进一步包括主控模块的更新进程查询全局数据区中下标与接收到的应答消息所携带数组下标一致的全局数组,将所述全局数组中接收到的应答消息所携带模块号对应的同步标记的值改为TRUE;确定所述全局数组中所有同步标记的值均为TRUE时,清除所述全局数组。进一步地,主控-漠块在发送同步消息至业务处理^t块时,设置同步定时器;同步定时器超时时,所述定时遍历全局数据区时,如果存在的业务处理模块对变化内容的同步状态为失败,则重新同步该变化内容为A、主控模块的更新进程遍历全局数据区,确定全局数据区中全局数组中是否存在值为FALSE的同步标记,如果不存在,则清除该全局数组,结束本次超时同步操作;如果存在,则执行步骤B;B、确定所述同步标记对应的重发次数的值小于预先设定的重发次数的阈值,则判断主控模块的内存数据库中是否存在该全局数组所包括的表名和记录的关键字对应的记录,如果存在,则将该记录中字段变化标记所对应元素作为该记录的变化内容,并发送同步消息至在线的各业务处理模块,将所述同步标记对应的重发次数的值加1,并重置所述同步定时器,结束本次超时同步操作;如果不存在,则清除该全局数组,结束本次超时同步操作。进一步地,该方法进一步包括定时同步,具体为每隔设定时间,确定主控模块向业务处理模块同步的变化内容中存在还未同步成功的变化内容,业务处理模块向主控模块发送同步请求消息;主控模块接收到同步请求消息后,将主控模块内存数据库中存在未同步成功的变化内容的动态表回复至业务处理模块。进一步地,所述定时同步进一步包括预先设置包括变量模块号、动态数据版本号和同步标记的局部数组;所述同步定时器超时,主控模块的更新进程遍历全局数据区,确定全局数据区中全局数组中存在值为FALSE的同步标记后,该方法进一步包括确定所述同步标记对应的重发次数的值等于预先设定的重发次数的阈值,判断主控模块的内存数据库中是否存在该全局数组所包括的表名和记录的关键字对应的记录,如果存在,则将所述全局数组的表名对应的动态表打上失步标记,形成打上失步标记的动态表,将同步标记和重发次数所对应的模块号、同步标记的值、和主控模块的动态数据版本号加1后的值赋值给所设置的局部数组的相应变量,将得到的局部数组存储在全局数据区,并清除该全局数组;如果不存在,则清除该全局数组。进一步地,所述确定主控模块向业务处理模块同步的变化内容中存在还未同步成功的变化内容包括a、业务处理模块发送携带本业务处理模块的模块号和动态数据版本号的通知消息给主控模块的更新进程;b、 主动模块更新进程接收到所述通知消息后,比较包含通知消息所携带模块号的局部数组中的动态数据版本号与通知消息所携带动态数据版本号是否相同,如果相同,将该局部数組本文档来自技高网
...

【技术保护点】
一种IPTV系统模块间数据同步的方法,其特征在于,该方法包括: 主控模块根据发生变化的动态数据更新自身内存数据库中动态表的记录,并发送同步消息; 收到同步消息的业务处理模块,根据同步消息中所携带的操作类型,更新同步消息中携带的表 名和记录号所对应的自身内存数据库中的记录,并回复主控模块应答同步消息。

【技术特征摘要】

【专利技术属性】
技术研发人员:雷爱民丁毅朱红军
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1