专利名称:一种通信程序业务不中断升级方法及系统的制作方法
技术领域:
本发明涉及通信领域,更具体地,涉及一种通信程序业务不中断升级方法及系统。
技术背景
通信程序需要全天候不中断运行,因此对程序可靠性要求很高,程序故障、版本升级等导致的业务中断会影响通信程序的可靠性和可用性。
通信程序的一般升级过程是先中断老版本程序,然后替换成新版本程序,最后再启动新版本程序,完成升级过程。在升级过程中,不可避免地存在业务中断的情况。如果采用主备机,则主机上的通信程序在升级时,先将业务切换到备机,待主机升级完成后再将业务切换回主机,基本可以实现业务不中断升级。但是此方法需要两套互相冗余的设备来组成主备机,系统设备成本高,而且主备机切换时,需要将相关计算机资源在主备机间切换, 也存在短暂的业务中断。
发明内容
本发明要解决的技术问题是提供一种通信程序业务不中断升级方法及系统,能够在不需要备机、且不中断通信程序所承接业务的情况下,实现通信程序的升级。
为了解决上述问题,本发明提供了一种通信系统业务不中断升级方法,包括
当通信程序需要升级时,在所述通信程序中断所运行的业务前,由升级容器程序对所述通信程序运行时业务数据进行快照并保存;
待所述通信程序升级完毕后,所述升级容器将保存的所述业务数据快照发送给所述通信程序;所述通信程序对接收到的所述业务数据快照进行恢复,并启动所述中断的业务。
进一步地,所述升级容器程序对所述通信程序运行时业务数据进行快照是指
将所述通信程序运行状态下的相应数据结构整段保存于内存中。
进一步地,当所述通信程序处于正常运行状态时,所述升级容器程序仅对所述通信程序与其它网元间的交互消息执行转发功能。
进一步地,在所述通信程序的升级过程中,所述升级容器程序将所述通信程序当前需要发送给其它网元的消息缓存于发送缓冲区中,并将所述发送缓冲区中的消息发送给目标网元;以及,接收其它网元发送给所述通信程序的消息,缓存于接收缓冲区中。
进一步地,待所述通信程序升级完毕后,所述升级容器程序将所述接收缓冲区中的消息发送给所述通信程序。
本发明还提供了一种通信系统业务不中断升级系统,包括通信程序和升级容器程序,其中
所述通信程序用于,在需要升级时,中断所运行的业务;以及,在升级完毕后,对接收到的所述升级容器程序发送的业务数据快照进行恢复,并启动所述中断的业务;
所述升级容器程序用于,在所述通信程序中断所运行的业务前,对所述通信程序运行时业务数据进行快照并保存;以及,在所述通信程序升级完毕后,将保存的所述业务数据快照发送给所述通信程序。
进一步地,所述升级容器程序进一步包括一业务数据快照存储区,在对所述通信程序运行时业务数据进行快照时,将所述通信程序运行状态下的相应数据结构整段保存于所述业务数据快照存储区中。
进一步地,所述升级容器程序还用于,当所述通信程序处于正常运行状态时,对所述通信程序与其它网元间的交互消息执行转发功能。
进一步地,所述升级容器程序进一步包括用于缓存所述通信程序当前需要发送给其它网元的消息的发送缓冲区,以及用于缓存其它网元发送给所述通信程序的消息的接收缓冲区,
在所述通信程序的升级过程中,所述升级容器程序将所述通信程序当前需要发送给其它网元的消息缓存于所述发送缓冲区中,并将所述发送缓冲区中的消息发送给目标网元;并且,接收其它网元发送给所述通信程序的消息,缓存于所述接收缓冲区中。
进一步地,待所述通信程序升级完毕后,所述升级容器程序将所述接收缓冲区中的消息发送给所述通信程序。
本发明能够实现通信程序业务不中断升级,在升级过程中,待升级的通信程序置于升级容器的接管保护中。通信程序升级前,升级容器对通信程序的运行时业务数据进行快照并保存;通信程序中断进行升级时,升级容器负责接管通信程序的所有收发消息,继续向相邻网元发送消息并对接收到的消息进行缓存,等待通信程序升级完成后再进行处理。 在升级容器的接管保护下,通信程序的升级过程对其它网元是不可见的,与其它网元的消息交互也不会发生中断;通信程序升级时间点可以设置在一天中业务量最小的时间段,这样,升级容器缓存的消息量很少,在升级完成后这些消息可以很快处理完成,且整个升级过程不存在业务中断,可实现通信程序业务不中断升级。
图1是通信程序业务不中断升级系统结构图;
图2是业务不中断升级系统工作流程图。
具体实施方式
本发明主要采用如下技术方案
提供一组升级容器程序(以下简称升级容器),将通信程序部署于该升级容器中,
在通讯程序正常运行时,升级容器处于休眠状态,对置于升级容器中的通讯程序以及相邻通信节点(网元)是不可见的;
当通信程序需要升级时,升级容器接管通信程序的控制权,对通信程序的运行时业务数据进行快照并保存,同时将通信程序当前需要发送给相邻网元的消息缓存于升级容器的发送缓冲区中;
在通信程序的升级过程中,升级容器将发送缓冲区中的消息继续发送给相邻网元,同时从相邻网元继续接收消息,保存于升级容器的接收缓冲区中;
通信程序升级完成后,升级后的新版本的通信程序对升级容器保存的业务数据进行恢复,并开始正常承接业务,升级容器等待发送缓冲区中的消息已全部发送给相邻网元, 接收缓冲区中的消息全部发送给通信程序后,再次进入休眠状态,等待下一次升级操作。
其中,进行快照的业务数据主要包括本通讯程序当前的配置数据、程序中用于记录运行状态的各种变量的当前值、程序中当前正在处理的业务消息的处理状态和使用的临时数据,以及用于记录和其它网元之间交互状态的各种变量的当前值等。
升级容器对运行时业务数据进行快照的操作包括但不限于在内存中设置一业务数据快照存储区,通过将通信程序中的相应业务数据结构进行整段保存于该设置的存储区中,对通信程序运行时业务数据进行保存;待通信程序升级完成后,再从该存储区中读取保存的数据结构发送给通信程序进行恢复。
下面结合附图及具体实施例对本发明技术方案作进一步详细描述。
本发明实施例的通信程序业务不中断升级系统的总体框架结构如图1所示,该系统主要包括升级容器和通信程序两部分升级容器的作用是在升级过程中对通信程序所承担的业务进行接管保护,使升级过程中业务不中断;通信程序是在通信网络中承担通信业务的程序。
其中,升级容器和通信程序是两个相互独立的程序,可以灵活部署在同一个物理设备上以节约成本,也可以分设于不同的物理设备以使系统达到最大的可靠性和性能。
参见图1,本实施例的升级容器进一步包括
业务数据快照存储区,在对通信程序运行时业务数据进行快照时,将通信程序运行状态下的相应数据结构整段保存于该业务数据快照存储区中。
发送缓冲区,用于缓存通信程序当前需要发送给其它网元的消息,在通信程序需要升级时,升级容器将通信程序当前需要发送给其它网元的消息缓存于该发送缓冲区中, 并在升级过程中将该发送缓冲区中的消息发送给目标网元;
以及接收缓冲区,用于缓存其它网元发送给所述通信程序的消息,在通信程序的升级过程中,升级容器将接收到的其它网元发送给通信程序的消息缓存于该接收缓冲区中,待通信程序升级完毕后,再将该接收缓冲区中的消息发送给通信程序。
本实施例的业务不中断升级系统存在两种运行状态正常运行时状态和升级运行时状态。当系统处于正常运行状态时,通信程序正常运行,作为通信网络中的一个网元承接相应的业务,升级容器在正常运行时状态处于休眠状态;当通信程序需要升级时,系统进入升级运行状态,此时升级容器获得对系统的控制权,在通信程序升级过程中接管通信程序, 作为一个网元存在于通信网络中。
其中,系统处于正常运行状态时,升级容器对于通信程序和其相邻网元是不可见的,通信程序独立运行,通信程序和相邻网元之间的消息通过升级容器透明地传输,升级容器不对消息进行任何处理,升级容器中的接收、发送消息缓冲区以及业务数据快照存储区都为清空状态;
当系统进入升级状态时,升级容器拥有通信程序的控制权,通信程序和相邻网元之间的交互消息分别存于升级容器的接收和发送缓冲区中;通信程序此时不在工作,而是进入升级操作,升级容器对通信程序进入升级操作前的业务运行时数据进行快照,以便升级完成后使通信程序立即恢复升级前的运行状态。
下面结合图2对本发明实施例通信程序业务不中断升级方法作进一步详细说明,如图2所示,包括以下步骤
步骤S101,系统第一次启动时,首先启动升级容器,然后由升级容器启动部署于升级容器中的通信程序;
通信程序启动后,即进入正常工作状态,作为通信网络中的一个网元,承担相应的业务。
步骤S102,通信程序进入正常工作状态时,升级容器进入休眠状态;
此时,通信程序和其它网元的消息交互不经过升级容器的消息缓冲区,而是由升级容器透传。
步骤S103,升级容器定时检测升级配置项是否打开,升级配置项由系统的用户操作维护台设置,如果升级容器未检测到升级配置项被打开,则继续休眠,返回步骤S102 ;如果升级容器检测到升级配置项打开,表示即将进行升级操作,则执行步骤S104 ;
步骤S104,升级容器退出休眠状态,进入工作状态,开始接管部署于其中的通信程序;
步骤S105,启动升级容器的发送缓冲区,所有通信程序发送给其它网元的消息,不再经由升级容器透传,而是保存在升级容器的发送缓冲区中,然后由升级容器负责发送给目标网元;
步骤S106,启动升级容器的接收缓冲区,所有其它网元发送给通信程序的消息,不再经由升级容器透传,而是保存在升级容器的接收缓冲区中,然后由升级容器负责发送给通信程序;
该步骤中,升级容器可以通过已有技术,例如对IP进行设置等,接收到其它网元发送给通信程序的消息,且其它网元的处理流程并不受影响。
步骤S107,升级容器向通信程序发送升级准备指令;
通信程序收到升级准备指令后,停止处理业务,由于此时升级容器的接收缓冲区和发送缓冲区已经接管了通信程序的接收和发送消息,所以通信程序此时停止处理通信业务,这一过程对其它相邻的网元是不可见的,因此对其它网元没有影响。
步骤S108,升级容器对通信程序运行时业务数据进行快照并保存至业务数据快照存储区;
步骤S109,升级容器向通信程序发送退出指令;
通信程序收到退出指令后退出,由升级人员执行通信程序地升级操作。通信程序升级操作过程不是本发明的研究内容,在此不再进行详细描述。
步骤S110,升级容器等待通信程序升级完成;
步骤S111,通信程序升级完成后,升级人员通过系统的操作维护台打开升级完成配置项;升级容器程序定时检查升级完成配置项是否打开,如果打开,表示通信程序升级操作已完成,进入下一步骤S1112 ;否则,返回步骤SllO ;
步骤S112,升级容器启动新版本的通信程序,通信程序启动后等待接收业务数据快照;
步骤S113,升级容器向通信程序发送业务数据恢复指令;
步骤S114,升级容器向通信程序传输升级前保存的运行时业务数据快照;
通信程序接收到运行时业务数据快照后,对数据进行恢复,然后开始正常运行,承担通信网络中相应工作。
步骤S115,升级容器的接收缓冲区停止从外部网元接收消息,外部网元发送给通信程序的消息重新由升级容器直接透传给通信程序;同时将消息接收缓冲区中剩余的消息继续发送给通信程序来处理;
步骤S116,升级容器的发送缓冲区停止从通信程序接收需要发送的消息,通信程序发送给外部网元的消息经由升级容器直接透传给目的网元。消息发送缓冲区中剩余消息接续发送给外部网元;
步骤S117,升级容器等待发送缓冲区和接收缓冲区中的消息处理完毕;
步骤S118,升级容器判断发送缓冲区和接收缓冲区中的所有消息是否都已处理完毕,如果是,则返回步骤S102,再次进入休眠状态,等待下一次升级操作;否则,返回步骤 S117。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种通信系统业务不中断升级方法,其特征在于,包括当通信程序需要升级时,在所述通信程序中断所运行的业务前,通过升级容器程序对所述通信程序运行时业务数据进行快照并保存;在升级过程中通过所述升级容器程序对所述通信程序所承担的业务进行接管保护,使升级过程中业务不中断;待所述通信程序升级完毕后,通过所述升级容器程序将保存的所述业务数据快照发送给所述通信程序;通过所述通信程序对接收到的所述业务数据快照进行恢复,并启动所述中断的业务。
2.如权利要求
1所述的方法,其特征在于,通过所述升级容器程序对所述通信程序运行时业务数据进行快照是指通过所述升级容器程序将所述通信程序运行状态下的相应数据结构整段保存于内存中。
3.如权利要求
2所述的方法,其特征在于,在所述通信程序的升级过程中,所述升级容器程序仅对所述通信程序与其它网元间的交互消息执行转发功能。
4.如权利要求
1、2或3所述的方法,其特征在于,在所述通信程序的升级过程中,通过所述升级容器程序将所述通信程序当前需要发送给其它网元的消息缓存于发送缓冲区中,并将所述发送缓冲区中的消息发送给目标网元; 以及,接收其它网元发送给所述通信程序的消息,缓存于接收缓冲区中。
5.如权利要求
4所述的方法,其特征在于,待所述通信程序升级完毕后,通过所述升级容器程序将所述接收缓冲区中的消息发送给所述通信程序。
6.一种通信系统业务不中断升级系统,其特征在于,包括第一装置,用于当通信程序需要升级时,在所述通信程序中断所运行的业务前,通过升级容器程序对所述通信程序运行时业务数据进行快照并保存;第二装置,用于在升级过程中通过所述升级容器程序对通信程序所承担的业务进行接管保护,使升级过程中业务不中断;第三装置,用于待所述通信程序升级完毕后,通过所述升级容器程序将保存的所述业务数据快照发送给所述通信程序;通过所述通信程序对接受到的所述业务数据快照进行恢复,并启动所述中断的业务。
7.如权利要求
6所述的系统,其特征在于,所述第一装置是用于以下方式升级容器程序对所述通信程序运行时业务数据进行快照通过所述升级容器程序将所述通信程序运行状态下的相应数据结构整段保存于内存中。
8.如权利要求
7所述的系统,其特征在于,所述第二装置,是用于在所述通信程序的升级过程中,对所述通信程序与其它网元间的交互消息执行转发功能。
9.如权利要求
6、7或8所述的系统,其特征在于,所述第二装置,是用于在所述通信程序的升级过程中,通过所述升级容器程序将所述通信程序当前需要发送给其它网元的消息缓存于发送缓冲区中,并将所述发送缓冲区中的消息发送给目标网元;以及,接收其它网元发送给所述通信程序的消息,缓存于接收缓冲区中。
10.如权利要求
9所述的系统,其特征在于,所述第三装置,是用于待所述通信程序升级完毕后,通过所述升级容器程序将所述接收缓冲区中的消息发送给所述通信程序。
专利摘要
一种通信系统业务不中断升级方法及系统,所述方法包括当通信程序需要升级时,在通信程序中断所运行的业务前,由升级容器程序对该通信程序运行时业务数据进行快照并保存;待该通信程序升级完毕后,升级容器将保存的业务数据快照发送给通信程序;通信程序对接收到的所述业务数据快照进行恢复,并启动中断的业务。采用本发明,能够在不需要备机、且不中断通信程序所承接业务的情况下,实现通信程序的升级。
文档编号H04W24/02GKCN101616028 B发布类型授权 专利申请号CN 200910148672
公开日2012年2月29日 申请日期2009年6月25日
发明者吴晓斌, 聂荣初, 钟建 申请人:中兴通讯股份有限公司导出引文BiBTeX, EndNote, RefMan