专利名称:消息发送系统、方法及装置、数据维护方法及装置的制作方法
技术领域:
本发明涉及通信领域,尤其是涉及一种push消息发送系统、方法及装置、发送服务器、push消息数据维护方法及装置、缓存数据库。
背景技术:
推送(PUSH)是一种内容分发机制,采用客户/服务器模式的工作方式,要求服务器不需要客户端发出具体请求,就由Push消息发起者向Push服务器推送信息和传递指令,再由Push服务器根据传递指令将Push内容发送到客户端。目前,在具体实施中,Push消息的以数据短信的形式通过CMPP 2.0协议进行发送。网信平台中的发送服务器将单独的Push消息或将多条Push消息组装后发送给行业网关,行业网关通过用户所在的短信中心将Push消息发送给客户端。行业网关在收到网信平台发送的Push消息后、向该Push消息的源发送服务器发送应答消息,以表示确认收到Push消息,该应答信息中主要包括序列号、关键码、消息结果等内容。客户端在接受到Push消息后向行业网关发送确认信息,行业网关收到客户端发送的确认信息后向网信平台发送报告消息,用以表示客户端收到Push消息,该报告消息中包括消息状态等内容。Push服务的网络架构包括两种模块,一种是负载均衡模式,一种是热备份模式。负载均衡模式中,网信平台侧配置多台发送服务器,发送管理模块根据各发送服务器的实际运行情况(即负载情况)、将发送任务相对均衡地分配给各个发送服务器。当行业网关向网信平台发送应答消息时,将该应答消息发送给Push消息的源发送服务器;发送报告消息时,将该消息发送给网信平台的任一发送服务器,这样报告消息就可能无法发送到Push消息的源发送服务器,尤其是在Push消息是由多条Push消息组装而成的情况下,行业网关会针对多条Push消息分别发送多条报告消息至行业网关,这多条报告消息就可能被发送给多个发送服务器,这样源发送服务器就无法接收到完整的报告消息,从而无法进行对Push消息的后续统计归档处理。热备份模式可以解决负载均衡模式中源发送服务器无法接收到完整的报告消息的问题。热备份模式中,网信平台侧配置一台主发送服务器、一台热备份服务器,行业网关返回的应答消息和报告消息都会发送到主发送服务器,这样就能够解决负载均衡模式下的上述问题。但是,随着Push业务的广泛应用,网信平台的发送服务器也要处理的业务也随之扩大,而发送服务器的发送性能存在上限,只能通过硬件升级来应对发送任务的增多,但是硬件升级也不是必然地使发送性能得到线性提升,并且硬件扩展也存在一定局限;此外,当大量的用户下发请求,在系统数据库性能有限的情况下,容易导致系统瘫痪;可知,热备份模式中存在发送服务器的发送能力受限的问题。综上可见,目前在现有的Push消息发送技术中,存在负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题,热备份模式下、发送服务器发送能力受限的问题。
发明内容
本发明实施例提供一种push消息发送系统,用以解决现有的Push消息发送技术中所存在的、在负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题,在热备份模式下、发送服务器发送能力受限的问题。相应地,本发明实施例还提供了一种push消息发送方法及装置、发送服务器、缓存数据库。本发明实施例包括如下的技术方案:一种push消息发送系统,包括多台发送服务器、行业网关、缓存数据库、系统数据库;其中,发送服务器,用于对要发送的push消息建立并保存发送表,将push消息发送给行业网关,并将建立的发送表发送给缓存数据库;行业网关,用于将接收到的push消息发送给移动终端;在接收到移动终端返回的应答消息后,向任意一台发送服务器返回报告消息;发送服务器,还用于在接收到来自行业网关的报告消息后,通过该报告消息中携带的push消息标识、来判断本机是否为该报告消息对应的push消息的源发送服务器,在判断本机是源发送服务器的情况下,将该接收到的报告消息中携带的push消息状态信息、记录到push消息标识所指的push消息的发送表中,并将记录了 push消息状态信息的发送表发送给系统数据库,在判断本机不是源发送服务器的情况下,将该报告消息中携带的push消息标识、push消息状态信息发送给缓存数据库;缓存数据库,用于接收并保存来自发送服务器的发送表;接收来自发送服务器的push消息的push消息标识和push消息状态信息,将该接收到的push消息状态信息记录到与接收到的push消息标识对应的发送表中,并将记录了消息状态信息的发送表发送给系统数据库。—种push消息发送方法,包括:对要发送的push消息建立并保存发送表,并将建立的发送表发送给缓存数据库,将push消息发送给行业网关;在接收到来自行业网关返回的报告消息后,通过该报告消息中携带的push消息标识、来判断本装置是否为该报告消息对应的push消息的源发送装置,在判断本装置是源发送装置的情况下,将该接收到的报告消息中携带的push消息状态信息、记录到与该报告消息对应的push消息的发送表中,并将记录了 push消息状态信息的发送表发送给系统数据库,在判断本装置不是源发送装置的情况下,将该报告消息中携带的push消息标识、push消息状态信息发送给缓存数据库。一种push消息发送装置,包括:建立模块,用于对要发送的push消息建立发送表;保存模块,用于保存建立模块建立的发送表;发送模块,用于将push消息发送给行业网关;接收模块,用于接收行业网关返回的报告消息;判别模块,用于通过接收模块接收到的报告消息中携带的push消息标识、来判断本装置是否为该报告消息对应的push消息的源发送装置;记录模块,用于在判别模块判断本装置是源发送装置的情况下,将接收模块接收到的报告消息中的携带的push消息状态信息、记录到保存模块保存的、与该报告消息对应的push消息的发送表中;发送模块,还用于在判别模块判断本装置不是源发送装置的情况下,将该报告消息中携带的push消息标识、push消息状态信息发送给缓存数据库;并将记录模块记录了 push消息状态信息的发送表发送给系统数据库。一种push消息发送服务器,包括如上所述的push消息发送装置。一种push消息数据维护方法,包括:接收并保存来自发送服务器的发送表;接收来自发送服务器的push消息的push消息标识和push消息状态信息;将该接收到的push消息状态信息记录到保存的与接收到的push消息标识对应的发送表中,并将记录了 push消息状态信息的发送表发送给系统数据库。一种push消息数据维护装置,包括:接收模块,用于接收并保存来自发送服务器的发送表;还用于接收来自发送服务器的push消息的push消息标识和push消息状态信息;保存模块,用于对接收模块接收到的发送表进行保存;记录模块,用于将接收模块接收到的push消息状态信息记录到保存模块保存的与接收到的push消息标识对应的发送表中;发送模块,用于将记录模块记录了 push消息状态信息的发送表发送给系统数据库。一种缓存数据库,包括如上的push消息数据维护装置。根据本发明实施例的技术方案,通过在负载均衡模式的push消息发送系统的基础上,设置缓存数据库,将缓存数据库作为系统数据库的代理;发送服务器将对push消息建立的发送表保存在本地、并同步发送给缓存数据库;在行业网关给任一台发送服务器返回报告消息后,接收到报告信息的发送服务器在判断本装置是push消息的源发送服务器的情况下,将报告消息中的push消息状态信息记录到本地保存的发送表中,并将记录后的发送表发送给系统数据库;在判断本装置不是push消息的源发送服务器的情况下,将报告消息中的push消息状态信息发送给缓存数据库,缓存数据库将接收到的push消息状态信息记录到相应的发送表中,并将记录了 push消息状态信息的发送表发送给系统数据库;这样,当push消息是由多台push消息组装而成的,并且该push消息的源发送服务器没有收到完整的报告消息时,缓存数据库就能够获取该push消息完整的报告消息,从而能够对push消息进行后续的归档统计,能够解决现有技术中,在负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题;采用负载均衡模式,则能够根据发送任务的增多来相应地扩充发送服务器来扩展发送能力,从而能够解决现有技术中,在热备份模式下、发送服务器发送能力受限的问题。
图1是根据本发明实施例的push消息发送系统的结构框图;图2是根据本发明实施例的push消息发送方法的工作流程图;图3是根据本发明实施例的push消息发送装置的结构框图;图4是根据本发明实施例的push消息数据维护方法的工作流程图;图5是根据本发明实施例push消息数据维护装置的结构框图;图6是本发明实施例具体应用的系统结构示意图。
具体实施例方式针对现有的Push消息发送技术中所存在的,在负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题,在热备份模式下、发送服务器发送能力受限的问题,本发明实施例提出了一种push消息发送方案和push消息数据维护方案,以解决该问题。在本发明实施例的方案中,通过在负载均衡模式的push消息发送系统的基础上,设置缓存数据库,将缓存数据库作为系统数据库的代理,在行业网关将报告消息返回给任意一个发送服务器后,发送服务器判断本机不是该报告消息对应的push消息的源发送服务器的情况下,将该报告消息中的push消息状态信息发送给缓存数据库,缓存数据库将接收到的push消息状态信息记录到相应的发送表中,这样当push消息是由多台push消息组装而成的,并且该push消息的源发送服务器没有收到完整的报告消息时,缓存数据库就能够获取该push消息完整的报告消息,并且缓存数据库将记录了 push消息状态信息的发送表发送给系统数据库,就能够对push消息进行后续的归档统计,能够解决现有技术中,在负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题;采用负载均衡模式,则能够根据发送任务的增多来相应地扩充发送服务器来扩展发送能力,从而能够解决现有技术中,在热备份模式下、发送服务器发送能力受限的问题。下面对本发明实施例进行详细说明。本发明实施例首先提出了一种push消息发送方案。图1示出了根据本发明实施例的push消息发送系统的结构框图,如图1所示,该系统包括多台发送服务器Il1...1ln、行业网关12、缓存数据库13、系统数据库14。其中发送服务器Il1...1ln,用于对要发送的push消息建立并保存发送表,将push消息发送给行业网关12,并将建立的发送表发送给缓存数据库13。行业网关12,连接至各发送服务器Il1...1ln,用于将接收到的push消息发送给移动终端;在接收到移动终端返回的应答消息后,向任意一台发送服务器111...1ln返回报
告消息。发送服务器Il1...1ln,还用于在接收到来自行业网关12的报告消息后,通过该报告消息中携带的push消息标识、来判断本机是否为该报告消息对应的push消息的源发送服务器,在判断本机是源发送服务器的情况下,将该接收到的报告消息中携带的push消息状态信息、记录到push消息标识所指的push消息的发送表中,并将记录了 push消息状态信息的发送表发送给系统数据库14,在判断本机不是源发送服务器的情况下,将该报告消息中携带的push消息标识、push消息状态信息发送给缓存数据库13。
缓存数据库13,用于接收并保存来自发送服务器Il1...1ln的发送表;接收来自发送服务器Il1...1ln的push消息的push消息标识和push消息状态信息,将该接收到的push消息状态信息记录到与接收到的push消息标识对应的发送表中,并将记录了消息状态信息的发送表发送给系统数据库14。图1所示系统的工作原理包括如下处理过程。步骤一、发送服务器对于要发送的push消息建立发送表,该发送表中包括序列号、关键码、push消息标识(ID)、消息结果、消息状态等字段,该发送表用于维护发送记录,并在本地保存该发送表;将建立的发送表发送给缓存数据库13 ^fpush消息发送给行业网关12 ;步骤二、缓存数据库13接收并保存来自发送服务器的发送表;步骤三、行业网关12接收到来自发送服务器的push消息后,将接收到该push消息的应答消息返回给push消息的源发送服务器,并将push消息通过短信中心发送给移动终端;行业网关12在接收到来自移动终端返回的应答消息后,向任意一台发送服务器发送报告消息;步骤四、发送服务器接收到行业网关12返回的应答消息后,在本地查找到已保存的、与应答消息中的push消息ID对应的push消息的发送表,将应答消息中携带的push消息结果信息记录到查找到的发送表中,并在第二预定时间定时到时后,将记应答消息中的push消息ID、push消息结果信息发送给缓存数据库13 ;步骤五、缓存数据库13接收到来自发送服务器的push消息ID、push消息结果信息后,在缓存数据库13本地查找到已保存的、与接收到的push消息ID对应的push消息的发送表,将push消息结果信息记录到查找到的发送表中,并保存该发送表;步骤六、发送服务器接收到行业网关12返回的报告消息后,首先判断本机是否为该报告消息所对应的push消息的源发送服务器,具体将该报告消息中携带的push消息ID与已保存的发送表中的push消息ID进行对比,有相同的ID的情况下,确定本机是源发送服务器,否则,就不是源发送服务器;在本机是源发送服务器的情况下,将报告消息中的push消息状态信息记录到与push消息ID所指的push消息的发送表中;在本机不是源发送服务器的情况下,在第二预定时间定时到时后,在将push消息ID和push消息状态信息发送给缓存数据库13 ;步骤七、发送服务器在第一预定时间定时到时后,将记录了 push消息结果信息和push消息状态信息的发送表发送给系统数据库14 ;步骤八、缓存数据库13接收到来自发送服务器的push消息ID、push消息状态信息后,在缓存数据库13本地查找到已保存的、与接收到的push消息ID对应的push消息的发送表,将push消息状态信息记录到查找到的发送表中,并保存该发送表;步骤九,在第三预定时间定时到时后,缓存数据库13将记录了 push消息结果信息和push消息状态信息的发送表发送给系统数据库14 ;在发送操作完成后,将发送过的发送表删除、释放存储空间。一种优选的方式,图1所示系统还包括发送管理服务器。发送管理服务器定期扫描缓存数据库13,在扫描确定缓存数据库13中保存有记录了 push消息状态信息的发送表后(该发送表中已经记录有push消息结果信息),向缓存数据库13发送指示,缓存数据库13根据来自发送管理服务器的指示,将记录有push消息状态信息的发送表发送给系统数据库14。一种优选的方式,发送服务器还将负荷信息发送给缓存数据库13,其中,负荷信息包括:发送队列长度、工作状态;缓存数据库13,还保存来自于发送服务器的负荷信息;发送管理服务器,还根据缓存数据库13中保存的各个发送服务器的负荷信息,向各个发送服务器分配需要发送的push消息。这样,能够达到各个发送服务器之间的负载均衡。根据图1所示的系统,通过设置缓存数据库、并将该缓存数据库作为系统数据库的代理,发送服务器将来自行业网关的报告消息进行分析,当该报告消息对应的push消息不是由本发送服务器发出的情况下,将报告消息中的push消息状态信息发送给缓存数据库,由缓存数据库获取完整的push消息的状态信息后,将push消息的包括push消息状态信息在内的、用于统计的信息发送给系统数据库,这样就能够解决现有技术中负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题、进而无法进行后续的归档统计的问题;并且,采用负载均衡模式,能够根据发送任务的增多来相应地扩充发送服务器来扩展发送能力,从而能够解决现有技术中,在热备份模式下、发送服务器发送能力受限的问题。本发明实施例还提供了一种发送服务器发送push消息的方案。图2示出了根据本发明实施例的push消息发送方法的工作流程图,如图2所示,该流程包括如下处理过程:步骤21、对要发送的push消息建立并保存发送表,并将建立的发送表发送给缓存数据库;步骤22、将push消息发送给行业网关;一种优选的方式,接收来自行业网关的应答消息,将应答消息中携带的push消息结果信息记录到保存的push消息ID所指的push消息的发送表中,并在预定的第二定时到时后,将该应答消息中携带的push消息ID、push消息结果信息发送给缓存数据库;步骤23、在接收到来自行业网关返回的报告消息后,通过该报告消息中携带的push消息ID、来判断本装置是否是与该报告消息对应的push消息的源发送装置,在判断本装置是源发送装置的情况下,处理进行到步骤24,否则,处理进行到步骤25 ;—种优选的方式,将报告消息中携带的push消息ID与保存的发送表中的push消息ID对比,在保存的发送表中记录有与报告信息中的push消息ID相同的push消息ID的情况下,判断本发送装置是报告消息对应的push消息的源发送装置,否则,就判断本发送装置不是报告消息对应的push消息的源发送装置;步骤24、在判断本装置是源发送装置的情况下,将该接收到的报告消息中携带的push消息状态信息、记录到与该报告消息对应的push消息的发送表中,并将记录了 push消息状态信息的发送表发送给系统数据库,处理结束;一种优选的方式,在预定的第一定时到时后,将记录了 push消息状态信息的发送表发送给系统数据库。步骤25、在判断本装置不是源发送装置的情况下,将该报告消息中携带的push消息ID、push消息状态信息发送给缓存数据库;一种优选的方式,在预定的第二定时到时后,将该报告消息中携带的push消息ID、push消息状态信息发送给缓存数据库。通过如图2所示的处理过程,发送服务器对push消息建立发送表、并将该发送表发送给缓存数据库,发送服务器和缓存数据库都根据该发送表来对push消息的发送情况进行维护;发送服务器对接收到的报告消息进行判断,在本发送服务器是该报告消息对应的push消息的源发送服务器时,将报告消息中的push消息状态信息记录到本地保存的发送表中,并将记录后的发送表发送给系统数据库,否则,将报告消息中的push消息状态信息发送给缓存数据库,这样就能够在缓存数据库侧实现对push消息的用于统计的信息的完整获取,能够解决现有技术中、负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题、进而无法进行后续的归档统计的问题。为实现上述功能,本发明实施例这里的push消息发送方法可以通过硬件实现,也可以通过下述软件程序实现,即发送服务器中包括以下的push消息发送装置。图3示出了根据本发明实施例的push消息发送装置的结构框图,如图3所示,该装置包括:建立模块31、保存模块32、发送模块33、接收模块34、判别模块35、记录模块36。建立模块31,用于对要发送的push消息建立发送表;保存模块32,连接至建立模块31,用于保存建立模块31建立的发送表;发送模块33,用于将push消息发送给行业网关;接收模块34,用于接收行业网关返回的报告消息;
一种较优的方式,接收模块34还用于接收来自行业网关的应答消息;判别模块35,连接至接收模块34,用于通过接收模块34接收到的报告消息中携带的push消息ID、来判断本装置是否是与该报告消息对应的push消息的源发送装置;记录模块36,连接至判别模块35、接收模块34、保存模块32,用于在判别模块35判断本装置是源发送装置的情况下,将接收模块34接收到的报告消息中的携带的push消息状态信息、记录到保存模块32保存的、与该报告消息对应的push消息的发送表中;一种较优的方式,记录模块36还用于将接收模块34接收到的应答消息中携带的push消息结果信息记录到保存模块32保存的push消息ID所指的push消息的发送表中;发送模块33,连接至判别模块35,还用于在判别模块35判断本装置不是源发送装置的情况下,将该报告消息中携带的push消息ID、push消息状态信息发送给缓存数据库;还用于将记录模块36记录了 push消息状态信息的发送表发送给系统数据库。一种较优的方式,发送模块33,还用于将接收模块34接收到的应答消息中携带的push消息ID、push消息结果信息发送给缓存数据库。一种较优的方式,图3所示装置还包括:第一定时模块,用于对预定的发送模块向系统数据库发送记录了 push消息状态信息的发送表的时间进行定时;第二定时模块,用于对预定的发送模块向缓存数据库发送push消息ID、push消息状态信息的时间进行定时。图3所示装置的工作原理如图2所示,这里不再赘述。通过图3所示的装置,也能够解决现有技术中、负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题、进而无法进行后续的归档统计的问题。本发明实施例还提供了一种缓存数据库对push消息数据进行维护的方案。图4示出了根据本发明实施例的push消息数据维护方法的工作流程图,如图4所示,该流程包括如下处理过程:步骤41、接收并保存来自发送服务器的发送表;—种优选的方式,接收来自发送服务器的push消息ID、push消息结果信息,将该接收到的push消息结果信息记录到保存的push消息ID所指的push消息的发送表中;步骤42、接收来自发送服务器的push消息的push消息ID和push消息状态信息;步骤43、将该接收到的push消息状态信息记录到保存的与接收到的push消息ID对应的发送表中,并将记录了 push消息状态信息的发送表发送给系统数据库。一种优选的方式,在该发送表中记录了 push消息状态信息后,根据来自发送管理服务器的指示,在预定时间到时后,将记录了 push消息结果信息和push消息状态信息的发送表发送给系统数据库;在将发送表发送给所述系统数据库后,将发送过的发送表删除。通过如图4所述的方法,缓存数据库接收并保存发送表,能够对push消息的发送状况进行维护;并将接收到的push消息状态信息记录到相应的发送表中,并将记录的push消息状态信息的发送表发送给系统数据库,能够解决现有技术中,负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题、进而无法进行后续的归档统计的问题。为实现上述功能,本发明实施例这里的push消息数据维护方法可以通过硬件实现,也可以通过下述软件程序实现,即缓存数据库中包括以下的push消息数据维护装置。图5示出了根据本发明实施例push消息数据维护装置的结构框图,如图5所示,该装置包括:接收模块51、保存模块52、记录模块53、发送模块54。
接收模块51,用于接收并保存来自发送服务器的发送表;还用于接收来自发送服务器的push消息的push消息ID和push消息状态信息;保存模块52,连接至接收模块51,用于对接收模块51接收到的发送表进行保存;记录模块53,连接至接收模块51、保存模块52,用于将接收模块51接收到的push消息状态信息记录到保存模块52保存的与接收到的push消息ID对应的发送表中;发送模块54,连接至记录模块53和保存模块52,用于将记录模块53记录了 push消息状态信息的、保存模块52中保存的发送表发送给系统数据库。一种优选的方式,接收模块51,还用于接收来自发送服务器的push消息ID、push消息结果信息;记录模块53,还用于将接收模块51接收到的push消息结果信息记录到保存模块52保存的push消息ID所指的push消息的发送表中;发送模块54,还用于在记录模块在发送表中记录了 push消息状态信息后,将记录了 push消息结果信息和push消息状态信息的发送表发送给系统数据库。一种优选的方式,该装置还包括定时模块,用于对预定的发送模块54向系统数据库发送发送表的时间进行定时;接收模块51,还用于接收来自发送管理服务器的指示;发送模块54,具体用于根据接收模块51接收到的指示,在定时模块定时到时后,将记录模块53记录了消息状态的发送表发送给系统数据库。一种优选的方式,该装置还包括删除模块,用于在发送模块54将发送表发送给系统数据库后,将保存模块52中发送过的发送表删除。图5所示装置的工作原理如图4所示,这里不再赘述。图5所示的装置,也能够解决现有技术中,负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题、进而无法进行后续的归档统计的问题。下面对本发明实施例具体应用的情况进行说明。图6示出了本发明实施例具体应用的系统结构示意图,如图6所示,该系统包括:下行发送管理服务器I (对应于上述发送管理服务器)、下行发送代理主机21、22、23 (对应于上述发送服务器)、行业网关3、缓存数据库4、系统数据库5。下行发送管理服务器I与下行发送代理主机21、22、23、缓存数据库4连接,下行发送代理主机21、22、23与行业网关
3、缓存数据库4、系统数据库5连接,缓存数据库4与系统数据库5连接。图6所示出本发明实施例具体应用时的系统的push消息发送的工作流程包括如下处理过程:步骤一、由下行发送代理主机22编码产生CMPP消息,与行业网关3建立通信;步骤二、下行发送代理主机22在本地对要发送的push消息建立并保存发送表,用以维护发送记录,主要包含序列号、关键码、消息ID、消息结果等字段;步骤三、下行发送代理主机22将建立的发送表同步发送给缓存数据库4 ;步骤四、下行发送代理主机22向行业网关3发送push消息;步骤五、行业网关3返回应答消息至push消息的源发送机,即下行发送代理主机22,下行发送代理主机22根据应答消息中的消息ID、将应答消息中的push消息结果字段中的push消息结果信息更新到本地保存的、消息ID所指的push消息的发送表中;步骤六、下行发送代理主机22将push消息ID、push消息结果信息发送至缓存数据库4 ;
步骤七、缓存数据库4将接收到的push消息结果信息记录到push消息ID所指的PU sh消息的发送表中;步骤八、行业网关3返回报告消息至任意一台下行发送代理主机,接收到报告消息的下行发送代理主机查询本机的发送表,判断与报告消息相对应的push消息是否是由本机发出的,判断push消息是由本机发出的,则直接将报告信息记录到发送表中,并将发送表发送给系统数据库,判断push消息不是由本机发出的,则将报告消息中的push消息ID、push消息状态信息发送给缓存数据库4 ;例如,行业网关3返回报告消息至下行发送代理主机23,下行发送代理主机23根据报告消息中的消息ID、判断该报告消息对应的push消息不是由本装置发送出去的,就将报告消息中的push消息ID和push消息状态信息发送给缓存数据库4 ;步骤九、缓存数据库4接收到来自下行发送代理主机23的push消息ID和push消息状态信息,根据push消息ID将push消息状态信息记录到push消息ID所指的push消息的发送表中;步骤十、下行发送管理服务器I在定期扫描缓存数据库4,扫描到缓存数据库4中保存有记录了 push消息结果信息、push消息状态信息的发送表的情况下,下行发送管理服务器I向缓存数据库4发送指示;步骤十一、缓存数据库4接收到来自下行发送管理服务器I的指示后,将记录了push消息结果信息、push消息状态信息的发送表发送给系统数据库5 ;步骤十二、缓存数据库将已经发送过了的发送表删除、释放存储空间。根据图6所示系统及其push消息发送的处理过程,通过在负载均衡模式上、设置缓存数据库,在下行发送代理主机接收到来自行业网关的报告消息、并判断该报告消息对应的push消息不是本机发出的情况下,将该报告消息中的push消息状态消息发送给缓存数据库,缓存数据库将接收到的push消息状态信息记录到相应的发送表中,并将该记录了push消息状态信息的发送表发送给系统数据库,能够将缓存数据库作为系统数据库的代理、获取完整的push消息的状态信息,从而能够解决现有技术中负载均衡模式下,源发送服务器就无法接收到完整的报告消息的问题、进而无法进行后续的归档统计的问题。并且,采用负载均衡模式,能够根据发送任务的增多来相应地扩充发送服务器来扩展发送能力,从而能够解决现有技术中,在热备份模式下、发送服务器发送能力受限的问题。图6所示的系统还具有同步机制,该同步机制包括:下行发送代理主机在预定的第一定时时间到时后,将记录了 push消息状态信息的发送表发送给系统数据库;下行发送代理主机在预定的第二定时时间到时后,将push消息ID、push消息结果信息、push消息状态信息发送给缓存数据库;缓存数据库在预定的第三定时时间到时后,根据下行发送管理服务器对缓存数据库扫描后发出的指示,将记录了 push消息状态信息的发送表发送给系统数据库。图6所示的系统中的下行发送管理服务器I的工作原理包括以下两方面。第一,为各个下行发送代理主机分配待发送的push消息,以使各下行发送代理主机之间的负载基本均衡;具体地,各下行发送代理主机将各自的负荷信息发送给缓存数据库,负荷信息中包括发送队列长度、工作状态等,下行发送管理服务器I根据缓存数据库4中存储的各个下行发送代理主机的负荷信息,为各下行发送代理主机分配待发送的push消息。第二,扫描缓存数据库,在扫描到缓存数据库中保存有记录了 push消息状态信息的发送表的情况下,向缓存数据库发送指示、以使缓存数据库将记录了 push消息状态信息的发送表发送给系统数据库。综上所述,根据本发明实施例的方案,通过在负载均衡模式的push消息发送系统的基础上,设置缓存数据库,将缓存数据库作为系统数据库的代理,在行业网关将报告消息返回给任意一个发送服务器后,发送服务器判断本机不是该报告消息对应的push消息的源发送服务器的情况下,将该报告消息中的push消息状态信息发送给缓存数据库,缓存数据库将接收到的push消息状态信息记录到相应的发送表中,这样当push消息是由多台push消息组装而成的,并且该push消息的源发送服务器没有收到完整的报告消息时,缓存数据库就能够获取该push消息完整的报告消息,并且缓存数据库将记录了 push消息状态信息的发送表发送给系统数据库,就能够对push消息进行后续的归档统计,能够解决现有技术中,在负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题;采用负载均衡模式,则能够根据发送任务的增多来相应地扩充发送服务器来扩展发送能力,从而能够解决现有技术中,在热备份模式下、发送服务器发送能力受限的问题。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种Push消息发送系统,其特征在于,包括:多台发送服务器、行业网关、缓存数据库、系统数据库;其中 所述发送服务器,用于对要发送的push消息建立并保存发送表,将push消息发送给所述行业网关,并将建立的发送表发送给所述缓存数据库; 所述行业网关,用于将接收到的push消息发送给移动终端;在接收到移动终端返回的应答消息后,向任意一台发送服务器返回报告消息; 所述发送服务器,还用于在接收到来自所述行业网关的报告消息后,通过该报告消息中携带的push消息标识、来判断本机是否为该报告消息对应的push消息的源发送服务器,在判断本机是源发送服务器的情况下,将该接收到的报告消息中携带的push消息状态信息、记录到push消息标识所指的push消息的发送表中,并将记录了 push消息状态信息的发送表发送给所述系统数据库,在判断本机不是源发送服务器的情况下,将该报告消息中携带的push消息标识、push消息状态信息发送给所述缓存数据库; 所述缓存数据库,用于接收并保存来自所述发送服务器的发送表;接收来自所述发送服务器的push消息的push消息标识和push消息状态信息,将该接收到的push消息状态信息记录到与接收到 的push消息标识对应的发送表中,并将记录了消息状态信息的发送表发送给所述系统数据库。
2.根据权利要求1所述的系统,其特征在于,所述发送服务器,具体用于将所述报告消息中携带的push消息标识与保存的发送表中的push消息标识对比,在保存的发送表中记录有与所述报告信息中的push消息标识相同的push消息标识的情况下,判断本机是所述报告消息对应的push消息的源发送服务器。
3.根据权利要求1所述的系统,其特征在于,所述行业网关,还用于在接收到来自所述发送服务器的push消息后,向所述发送服务器返回应答消息; 所述发送服务器,还用于在接收到来自所述行业网关的应答消息后,将所述应答消息中携带的push消息结果信息记录到保存的push消息标识所指的push消息的发送表中,并将push消息标识、push消息结果信息发送给所述缓存数据库; 所述缓存数据库,还用于在接收到来自所述发送服务器的push消息标识、push消息结果信息后,将该接收到的push消息结果信息记录到保存的push消息标识所指的push消息的发送表中;并在该发送表中记录了 push消息状态信息后,将记录了 push消息结果信息和push消息状态信息的发送表发送给所述系统数据库。
4.根据权利要求1或3所述的系统,其特征在于,所述系统还包括: 发送管理服务器,用于定期扫描所述缓存数据库,在扫描确定所述缓存数据库中保存有记录了 push消息状态的发送表后,向所述缓存数据库发送指示; 所述缓存数据库,具体用于根据来自所述发送管理服务器的指示,将记录了 push消息状态信息的发送表发送给所述系统数据库。
5.根据权利要求4所述的系统,其特征在于,所述缓存数据库,还用于在将发送表发送给所述系统数据库后,将发送过的发送表删除。
6.根据权利要求4所述的系统,其特征在于,所述发送服务器,还用于将负荷信息发送给所述缓存数据库,所述负荷信息包括:发送队列长度、工作状态; 所述缓存数据库,还用于保存来自于所述发送服务器的负荷信息;所述发送管理服务器,还用于根据所述缓存数据库中保存的各个发送服务器的负荷信息,向各个发送服务器分配需要发送的push消息。
7.—种push消息发送方法,其特征在于,包括: 对要发送的push消息建立并保存发送表,并将建立的发送表发送给缓存数据库,将push消息发送给行业网关; 在接收到来自所述行业网关返回的报告消息后,通过该报告消息中携带的push消息标识、来判断本装置是否为该报告消息对应的push消息的源发送装置,在判断本装置是源发送装置的情况下,将该接收到的报告消息中携带的push消息状态信息、记录到与该报告消息对应的push消息的发送表中,并将记录了 push消息状态信息的发送表发送给系统数据库,在判断本装置不是源发送装置的情况下,将该报告消息中携带的push消息标识、push消息状态信息发送给所述缓存数据库。
8.根据权利要求7所述的方法,其特征在于,判断本装置是否是与该报告消息对应的push消息的源发送装置,具体包括: 将所述报告消息中携带的push消息标识与保存的发送表中的push消息标识对比,在保存的发送表中记录有与所述报告信息中的push消息标识相同的push消息标识的情况下,判断本装置是所述报告消息对应的push消息的源发送装置。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括: 接收来自所述行业网关的应答消息,将所述应答消息中携带的push消息结果信息记录到保存的push消息标识所指的push消息的发送表中,并将该应答消息中携带的push消息标识、push消息结果信息发送给所述缓存数据库。
10.根据权利要求7所 述的方法,其特征在于,将记录了push消息状态信息的发送表发送给系统数据库,具体包括: 在预定的第一定时到时后,将记录了 push消息状态信息的发送表发送给系统数据库。
11.根据权利要求9所述的方法,其特征在于,将该报告消息中携带的push消息标识、push消息状态信息发送给所述缓存数据库,具体包括: 在预定的第二定时到时后,将该报告消息中携带的push消息标识、push消息状态信息发送给所述缓存数据库; 将push消息标识、push消息结果信息发送给所述缓存数据库,具体包括: 在所述预定的第二定时到时后,将push消息标识、push消息结果信息发送给所述缓存数据库。
12.—种push消息发送装置,其特征在于,包括: 建立模块,用于对要发送的push消息建立发送表; 保存模块,用于保存所述建立模块建立的发送表; 发送模块,用于将push消息发送给行业网关; 接收模块,用于接收所述行业网关返回的报告消息; 判别模块,用于通过所述接收模块接收到的报告消息中携带的push消息标识、来判断本装置是否为该报告消息对应的push消息的源发送装置; 记录模块,用于在所述判别模块判断本装置是源发送装置的情况下,将所述接收模块接收到的报告消息中的携带的push消息状态信息、记录到所述保存模块保存的、与该报告消息对应的push消息的发送表中; 发送模块,还用于在所述判别模块判断本装置不是源发送装置的情况下,将该报告消息中携带的push消息标识、push消息状态信息发送给所述缓存数据库;并将所述记录模块记录了 push消息状态信息的发送表发送给系统数据库。
13.根据权利要求12所述的发送装置,其特征在于,所述判别模块,具体用于将所述接收模块接收到的报告消息中携带的push消息标识、与所述保存模块中保存的发送表中的push消息标识对比,在保存的发送表中记录有与所述报告信息中的push消息标识相同的push消息标识的情况下,判断本装置是所述报告消息对应的push消息的源发送装置。
14.根据权利要求12所述的发送装置,其特征在于,所述接收模块,具体还用于接收来自所述行业网关的应答消息; 所述记录模块,具体还用于将所述接收模块接收到的应答消息中携带的push消息结果信息记录到保存的push消息标识所指的push消息的发送表中; 所述发送模块,具体还用于将所述接收模块接收到的应答消息中携带的push消息标识、push消息结果信息发送给所述缓存数据库。
15.根据权利要求12所述的发送装置,其特征在于,所述发送装置还包括: 第一定时模块,用于对预定的所述发送模块向所述系统数据库发送所述发送表的时间进行定时; 所述发送模块,还用于在所述第一定时模块定时到时后,将记录了 push消息状态信息的发送表发送给所述系统数据库。
16.根据权利要求14所述的发送装置,其特征在于,所述发送装置还包括: 第二定时模块,用于对预定的所述发送模块向所述缓存数据库发送push消息标识、push消息状态信息的时间进行定时; 所述发送模块,还用于在所述第二定时模块定时到时后,将所述接收模块接收到的报告消息中携带的push消息标识、push消息状态信息发送给所述缓存数据库;并且,将所述接收模块接收到的应答消息中携带的push消息标识、push消息结果信息发送给所述缓存数据库。
17.—种push消息发送服务器,其特征在于,包括如权利要求12至16中任一项所述的push消息发送装置。
18.—种push消息数据维护方法,其特征在于,包括: 接收并保存来自发送服务器的发送表; 接收来自所述发送服务器的push消息的push消息标识和push消息状态信息; 将该接收到的push消息状态信息记录到保存的与接收到的push消息标识对应的发送表中,并将记录了 push消息状态信息的发送表发送给系统数据库。
19.根据权利要求18所述的方法,其特征在于,还包括: 接收来自所述发送服务器的push消息标识、push消息结果信息,将该接收到的push消息结果信息记录到保存的push消息标识所指的push消息的发送表中;并在该发送表中记录了 push消息状态信息 后,将记录了 push消息结果信息和push消息状态信息的发送表发送给所述系统数据库。
20.根据权利要求19所述的方法,其特征在于,将记录了消息状态的发送表发送给所述系统数据库,具体包括: 根据来自发送管理服务器的指示,在预定时间到时后,将记录了消息状态的发送表发送给所述系统数据库。
21.根据权利要求19所述的方法,其特征在于,所述方法还包括: 在将发送表发送给所述系统数据库后,将发送过的发送表删除。
22.—种push消息数据维护装置,其特征在于,包括: 接收模块,用于接收并保存来自发送服务器的发送表;还用于接收来自所述发送服务器的push消息的push消息标识和push消息状态信息; 保存模块,用于对所述接收模块接收到的发送表进行保存; 记录模块,用于将所述接收模块接收到的push消息状态信息记录到所述保存模块保存的与接收到的push消息标识对应的发送表中; 发送模块,用于将所述记录模块记录了 push消息状态信息的发送表发送给系统数据库。
23.根据权利要求22所述的装置,其特征在于,所述接收模块,还用于接收来自所述发送服务器的push消息标识、push消息结果信息; 所述记录模块,还用于将所述接收模块接收到的push消息结果信息记录到所述保存模块保存的push消息标识所指的push消息的发送表中; 所述发送模块,还用于在所述记录模块在发送表中记录了 push消息状态信息后,将记录了 push消息结果信息和push消息状态信息的发送表发送给所述系统数据库。
24.根据权利要求22所述的装置,其特征在于,所述装置还包括: 定时模块,用于对预定的所述发送模块向系统数据库发送发送表的时间进行定时; 所述接收模块,还用于接收来自发送管理服务器的指示; 所述发送模块,具体用于根据所述接收模块接收到的指示,在所述定时模块定时到时后,将所述记录模块记录了消息状态的发送表发送给系统数据库。
25.根据权利要求22所述的装置,其特征在于,所述装置还包括: 删除模块,用于在所述发送模块将发送表发送给所述系统数据库后,将所述保存模块中发送过的发送表删除。
26.一种缓存数据库,其特征在于,包括如权利要求22至25中任一项所述的push消息数据维护装置。
全文摘要
本发明公开了一种push消息发送系统、方法及装置、发送服务器、push消息数据维护方法及装置、缓存数据库,其中,push消息发送方法包括在接收到来自行业网关返回的报告消息后,判断本装置是否为该报告消息对应的push消息的源发送装置,在判断为是的情况下,将该报告消息中的push消息状态信息记录到发送表中,并将该发送表发送给系统数据库,在判断为否的情况下,将该报告消息中携带的push消息标识、push消息状态信息发送给缓存数据库。本发明能够解决现有的Push消息发送技术中所存在的、在负载均衡模式下、源发送服务器就无法接收到完整的报告消息的问题,在热备份模式下、发送服务器发送能力受限的问题。
文档编号H04L12/24GK103188220SQ20111044853
公开日2013年7月3日 申请日期2011年12月28日 优先权日2011年12月28日
发明者薛峰, 宋世乾, 高旭, 薛有光, 刘雯, 魏雯, 李黎阳, 李东昌 申请人:中国移动通信集团北京有限公司