一种进程升级的方法及进程升级系统的制作方法

文档序号:6571964阅读:237来源:国知局
专利名称:一种进程升级的方法及进程升级系统的制作方法
技术领域
本发明涉及通信领域,具体涉及一种进程升级的方法及进程升级系统背景技术进程升级是指在支持多进程的系统中,通过启动新的进程并将源进程中的业务复制到新进程中,再注销源进程,从而实现进程升级。通过对进程的升级,可实现将进程升级到更高版本的软件进程中,从而解决源版本软件进程的一些不足或漏洞等。
当源进程为在线进程,也即所述源进程为TCP socket套接字进程时,由于TCP连接的复杂性,不易实现对TCP socket套接字进程的在线升级,一般均需要先拆除socket套接字连接,将源进程升级到新接新进程后,重新建立socket套接字连接。由于在升级过程中会中断socket套接字连接,可能导致数据的丢失和进程动荡,且与套接字接口连接的对端也会感知到本端的升级。

发明内容
本发明实施例提供一种进程升级的方法及进程升级系统,以实现在不断开套接字连接的前提下,对进程进行升级。
本发明实施例的技术方案包括一种进程升级的方法,所述进程通过套接字接口与所述套接字接口连接的对端进行数据交互;所述方法包括步骤创建目标进程,并将源进程的进程数据备份至所述目标进程;判断所述源进程已接收到的数据是否完整,如果是,则所述源进程停止与所述套接字接口进行数据交互;所述源进程将所述已接收到的数据备份至所述目标进程;
所述目标进程向所述套接字接口发送升级切换请求信息;所述套接字接口接收到来自所述目标进程的升级切换请求信息后,将套接字接口服务切换至所述目标进程。
一种进程升级系统,包括源进程单元、套接字接口单元以及目标进程单元,其中源进程单元,用于对自身进行进程升级时,将自身的进程数据备份至所述目标进程单元,并判断已接收到的来自于对端的数据是否完整,如果是,则停止与所述套接字接口单元进行数据交互,并将已接收到的来自于对端的数据备份至所述目标进程单元,在备份结束后,向所述目标进程单元发送升级切换指示信息;目标进程单元,用于在接收到来自于所述源进程单元的所述升级切换指示信息后,向所述套接字接口单元发送升级切换请求信息;套接字接口单元,用于在接收到来自于所述目标进程单元的所述升级切换请求信息后,将套接字接口服务切换至所述目标进程单元,以使所述目标进程单元通过所述套接字接口单元与所述套接字接口单元。
本发明实施例所述的源进程在对自身进行升级时,创建目标进程并将自身的进程数据备份至所述目标进程,在所接收到的来自于套接字接口的数据完整时停止与所述套接字接口交互数据,并将所接收到的数据备份至所述目标进程,以使所述目标进程的数据和所述源进程的数据一致,在备份结束后,所述目标进程向所述套接字接口发送升级切换请求,所述套接字接口在接收到所述升级切换请求信息后,将套接字服务切换至所述目标进程,以使所述目标进程通过所述套接字接口与所述套接字接口连接的对端进行数据交互。通过本发明实施例提供的目标进程的方法及目标进程系统,实现了在不断开套接字连接的前提下,对进程进行可靠、平稳升级,且在升级前后,与套接字接口连接的对端不会感知到本端的升级。


图1是本发明实施例的进程升级系统组成示意图;图2是本发明实施例的源进程单元的组成示意图;图3是本发明实施例的进程升级方法的流程示意图。
具体实施例方式
为了使本发明实施例的技术方案及优点更加清楚明白,下面结合附图并举实施例对本发明实施例进行进一步详细说明。
参考图1,是本发明实施例的进程升级系统的组成示意图。如图所示,本发明实施例所述的进程升级系统主要包括源进程单元1、目标进程单元2、套接字接口单元3、第一套接字代理(socket lib)模块4以及第二socket lib模块5。下面对各单元功能及相互关系进行详细说明。
所述源进程单元1,用于对进程进行升级时,判断已接收到的来自于对端的数据是否完整,如果是,则停止与所述套接字接口单元3进行数据交互,并将已接收到的来自于对端的数据备份至所述目标进程单元2,在备份结束后,向所述目标进程单元2发送升级切换指示信息。
此处,参考图2,具体实施时,所述源进程单元1主要包括数据备份单元11,用于将所述源进程单元1的进程数据以及通过所述套接字接口单元3接收到的来自所述对端的数据备份至所述目标进程单元2。
此处,所述进程数据包括进程启动后的一些相关函数的调用数据、进程的一些命令数据等,数据备份的目的是为了保证目标进程中的数据和源进程中的数据相同和一致。具体实施时,备份过程可分为批量备份和实时备份,由于套接字接口单元3会一直将其所接收到的数据报文发送给源进程单元1,因此,当批量备份结束后,所述源进程单元1停止与所述套接字接口单元3交互数据时,数据备份才可能结束。
获取单元12,用于在接收数据时,获取从对端接收到的数据的长度信息。
此处,在接收数据时,所述源进程单元1通过检测其所接收到的数据报文的首部,获取数据报文的长度信息。
判断单元13,用于根据所述获取单元12所获取的从对端接收到的数据的长度信息判断已接收到的来自于对端的数据是否完整并生成相应的判断结果,以使所述源进程在判断结果为是时,停止与所述套接字接口单元进行数据交互。
升级切换指示信息发送单元14,用于在所述数据备份单元11备份结束后,向所述目标进程单元2发送升级切换指示信息。
所述目标进程单元2,用于在接收到来自于所述源进程单元1的所述升级切换指示信息后,向所述套接字接口单元3发送升级切换请求信息。
此处,所述升级切换指示信息携带有相应的目标进程的进程标识、以及与所述源进程相同的服务名称。
所述套接字接口单元3,用于在接收到来自于所述目标进程单元2的所述升级切换请求信息后,将套接字接口服务切换至所述目标进程单元2,以使所述目标进程单元2通过所述套接字接口单元3与所述套接字接口单元3连接的对端进行数据交互。
此处所述套接字接口单元3包括套接字存根模块(socket stub)31和用于提供socket接口服务的套接字接口模块32,对所述socket stub模块31的功能将在下文中有相应描述。
所述源进程单元1设置有相应的第一socket lib模块4,对应于所述目标进程单元2设置有相应的第二socket lib模块5以及在所述套接字接口单元中设置有相应的socket stub模块31。在所述socket-lib机制中,socket lib相当于一精简的伪socket模块与应用程序运行于同一进程中,socket stub则作为一代理模块与套接字接口运行于同一进程中,socket-lib机制将进程间的通讯对应用程序全部屏蔽,使得应用程序好象是直接使用套接字标准接口,感觉不到跨进程调用,通过socket-lib机制,将进程间的函数调用转换为进程间通讯IPC消息,实现了套接字接口服务的跨进程扩展和延伸,而套接字接口本身却不改变。
在进程升级切换前,在所述socket stub模块31中创建有源进程标识与套接字接口标识的第一对应关系,根据该第一对应关系,实现通过所述第一socket lib模块4与所述源进程单元1通讯,从而使所述源进程单元1通过socket lib模块4以及socket stub模块31获取所述套接字接口模块32的相应的套接字服务。所述源进程单元1在向socket stub模块31请求套接字服务时,将自身的服务名称注册到socket stub模块31,以使socket stub模块31对相应的进程服务进行管理。
当对进程进行升级时,所述目标进程单元2通过第二socket lib模块5向socket stub模块31发送携带有目标进程标识和与源进程相同的服务名称的升级切换请求信息,socket stub模块31在接收到所述升级切换请求信息后,根据服务名称找到相应的第一对应关系,以所述目标进程标识替换所述第一对应关系中的源进程标识,从而创建所述目标进程标识与所述套接字接口标识的第二对应关系,所述目标进程单元2根据所述第二对应关系通过第二socket lib模块5及socket stub模块31获取套接字接口模块32的套接字服务,从而成功的实现了进程的在线升级,保证了在对进程进行升级时,相应的socket连接不需要断开,对端也不会感知到本端的进程升级。
参考图3,是本发明实施例的进程升级方法的流程示意图。如图所示,该实施例实施过程如下步骤s301,创建目标进程,并将所述源进程的进程数据备份至所述目标进程。
此处,通过执行命令打开更高版本的应用程序以创建目标进程,所述进程数据包括进程启动后的一些相关函数的调用数据、进程的一些命令数据等,数据备份的目的是为了保证目标进程中的数据和源进程中的数据相同和一致。具体实施时,备份过程可分为批量备份和实时备份,由于所述套接字接口会一直将其所接收到的数据报文发送给所述源进程,因此,当批量备份结束后,所述源进程停止与所述套接字接口交互数据时,数据备份才可能结束。
步骤s302,所述套接字接口向所述源进程发送数据报文。
此处,所述套接字接口将其从对端接收到的数据报文发送至所述源进程,所述套接字接口为TCP套接字接口或UDP套接字接口或RAW IP套接字接口。
步骤s303,所述源进程获取从所述对端接收到的数据报文的长度信息。
此处,所述源进程通过检测其所接收到的数据报文的首部,获取数据报文的长度信息。
步骤s304,所述源进程根据获取的所述从对端接收到的数据的长度信息判断自身已接收到的数据是否完整,如果是,则停止与所述套接字接口交互数据。
步骤s305,所述源进程将来自所述套接字接口的数据备份至所述目标进程,以使所述目标进程中的数据和所述源进程中的数据一致。
此处,通过该步骤s305以及所述步骤s301,实现了在所述源进程与所述套接字接口停止数据交互后,将所述源进程中的数据完全备份至所目标进程,以使所述目标进程中的数据和所述源进程中的数据一致。
步骤s306,所述源进程向所述目标进程发送升级切换指示信息。
向所述目标进程发送升级切换指示信息的目的是告知所述目标进程数据备份已经结束,可以向套接字接口请求获取套接字服务。
步骤s307,所述目标进程向所述套接字接口发送升级切换请求信息。
此处,所述升级切换请求信息携带有设置的目标进程标识。
步骤s308,所述套接字接口在接收到所述升级切换请求信息后,将套接字服务切换至所述目标进程,以使所述目标进程通过所述套接字接口与所述套接字接口单元连接的对端进行数据交互。
步骤s309,注销所述源进程。
在所述步骤s307中,所述升级切换请求信息携带有相应的目标进程的进程标识、以及与所述源进程相同的服务名称。在本发明实施例中,通过socket-lib机制来实现跨进程下应用程序进程仍可以继续使用socket套接字服务,在socket-lib机制中,socket lib相当于一精简的伪socket模块与应用程序运行于同一进程中,socket stub则作为一代理模块与套接字接口运行于同一进程中,socket-lib机制将进程间的通讯对应用程序全部屏蔽,使得应用程序好象是直接使用套接字标准接口,感觉不到跨进程调用,通过socket-lib机制,将进程间的函数调用转换为进程间通讯IPC消息,实现了套接字接口服务的跨进程扩展和延伸,而套接字接口本身却不改变。
在进程升级切换前,在与套接字接口对应的socket stub中创建有源进程标识与套接字接口标识的第一对应关系,根据该第一对应关系,实现通过所述socket lib与所述源进程通讯,从而使所述源进程通过socket lib以及socket stub获取所述套接字接口的相应的套接字服务。所述源进程在向socket stub请求套接字服务时,将自身的服务名称注册到socket stub,以使socket stub对相应的进程服务进行管理。
当对进程进行升级时,所述目标进程通过socket lib向socket stub发送携带有目标进程标识和与源进程相同的服务名称的升级切换请求信息,socket stub在接收到所述升级切换请求信息后,根据服务名称找到相应的第一对应关系,以所述目标进程标识替换所述第一对应关系中的源进程标识,从而创建所述目标进程标识与所述套接字接口标识的第二对应关系,所述目标进程根据所述第二对应关系通过socket lib及socket stub获取套接字接口的套接字服务,从而成功的实现了进程的在线升级,保证了在对进程进行升级时,相应的socket连接不需要断开,对端也不会感知到本端的进程升级。
本发明实施例所述源进程、所述套接字接口、以及所述目标进程任意两者之间通过进程间通信IPC消息通讯。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种进程升级的方法,所述进程通过套接字接口与所述套接字接口连接的对端进行数据交互;其特征在于,所述方法包括步骤创建目标进程,并将源进程的进程数据备份至所述目标进程;判断所述源进程已接收到的数据是否完整,如果是,则所述源进程停止与所述套接字接口进行数据交互;所述源进程将所述已接收到的数据备份至所述目标进程;所述目标进程向所述套接字接口发送升级切换请求信息;所述套接字接口接收到来自所述目标进程的升级切换请求信息后,将套接字接口服务切换至所述目标进程。
2,如权利要求1所述的方法,其特征在于,在所述目标进程向所述套接字接口发送升级切换请求信息的步骤与所述源进程将所述已接收到的数据备份至所述目标进程的步骤之间还包括步骤;所述源升级进程向所述目标进程发送升级切换指示信息。
3.如权利要求1所述的方法,其特征在于,所述判断所述源进程已接收到的数据是否完整的步骤为所述源进程获取从对端接收到的数据的长度信息;所述源进程根据获取的所述从对端接收到的数据的长度信息判断自身已接收到的数据是否完整。
4.如权利要求1所述的方法,其特征在于,在创建目标进程之前包括步骤设置源进程标识和套接字标识并创建所述源进程标识与所述套接字标识的第一对应关系,所述源进程根据所述第一对应关系获取套接字接口服务,以实现通过所述套接字接口与所述套接字接口连接的对端进行数据交互。
5.如权利要求4所述的方法,其特征在于,所述升级切换请求信息中携带有设置的目标进程标识;所述套接字接口接收到来自所述目标进程的升级切换请求信息后,将套接字接口服务切换至所述目标进程的步骤为所述套接字接口在接收到所述升级切换请求信息后,以所述升级标识替换所述第一对应关系中的源进程标识,以创建所述目标进程标识与所述套接字标识的第二对应关系,所述套接字接口根据所述第二对应关系将所述套接字接口服务切换至所述目标进程,以使所述目标进程通过所述套接字接口与所述套接字接口连接的对端进行数据交互。
6.如权利要求3所述的方法,其特征在于,所述源进程通过检测所述从对端接收到的数据的首部获取所述数据的长度信息。
7.如权利要求1至6任一项所述的方法,其特征在于,在所述将套接字接口服务切换至所述目标进程的步骤之后,进一步包括步骤注销所述源进程。
8.如权利要求1至6任一项所述的方法,其特征在于,所述源进程、所述目标进程以及所述套接字接口任意两者之间通过进程间通信消息传送所述数据。
9.如权利要求1至6任一项所述的方法,其特征在于,所述套接字接口为TCP套接字接口或UDP套接字接口或RAW IP套接字接口。
10.一种进程升级系统,其特征在于,包括源进程单元、套接字接口单元以及目标进程单元,其中源进程单元,用于对自身进行进程升级时,将自身的进程数据备份至所述目标进程单元,并判断已接收到的来自于对端的数据是否完整,如果是,则停止与所述套接字接口单元进行数据交互,并将已接收到的来自于对端的数据备份至所述目标进程单元,在备份结束后,向所述目标进程单元发送升级切换指示信息;目标进程单元,用于在接收到来自于所述源进程单元的所述升级切换指示信息后,向所述套接字接口单元发送升级切换请求信息;套接字接口单元,用于在接收到来自于所述目标进程单元的所述升级切换请求信息后,将套接字接口服务切换至所述目标进程单元,以使所述目标进程单元通过所述套接字接口单元与所述套接字接口单元连接的对端进行数据交互。
11.如权利要求10所述的系统,其特征在于,所述源进程单元包括数据备份单元,用于将所述源进程单元的进程数据以及通过所述套接字接口单元接收到的来自所述对端的数据备份至所述目标进程单元;获取单元,用于在接收数据时,获取从对端接收到的数据的长度信息;判断单元,用于根据所述获取单元所获取的从对端接收到的数据的长度信息判断已接收到的来自于对端的数据是否完整并生成相应的判断结果,以使所述源进程在判断结果为是时,停止与所述套接字接口单元进行数据交互;升级切换指示信息发送单元,用于在所述数据备份单元备份结束后,向所述目标进程单元发送升级切换指示信息。
12.如权利要求11所述的系统,其特征在于,所述进程升级系统还包括第一套接字代理模块,与所述源进程单元对应,用于将进程数据函数调用转换为进程间通信消息;第二套接字代理模块,与所述目标进程单元对应,用于将进程数据函数调用转换为进程间通信消息。
13.如权利要求12所述的系统,其特征在于,所述套接字接口单元包括套接字接口模块,用于提供套接字服务;套接字存根模块,与所述套接字接口模块对应,用于根据进程标识与套接字接口标识的对应关系实现套接字接口与相应进程的通讯。
14.如权利要求11所述的系统,其特征在于,所述获取单元通过检测所述从对端接收到的数据的首部获取所述数据的长度信息。
15.如权利要求10至14任一项所述的系统,其特征在于,所述源进程单元、所述目标进程单元以及所述套接字接口单元任意两者之间通过进程间通信消息传送所述数据。
全文摘要
本发明提供了一种进程升级的方法和进程升级系统,所述方法包括创建目标进程并将源进程的进程数据备份至所述目标进程,在所接收到的来自于套接字接口的数据完整时停止与所述套接字接口交互数据,并将所接收到的数据备份至所述目标进程,在备份结束后,所述目标进程向所述套接字接口发送升级切换请求,所述套接字接口在接收到所述升级切换请求信息后,将套接字服务切换至所述目标进程,以使所述目标进程通过所述套接字接口与所述套接字接口连接的对端进行数据交互。通过本发明实施例提供的进程升级的方法及进程升级系统,实现了在不断开套接字连接的前提下,对进程进行可靠、平稳升级。
文档编号G06F9/445GK101051941SQ20071002805
公开日2007年10月10日 申请日期2007年5月17日 优先权日2007年5月17日
发明者罗汉军, 涂伯颜, 施勇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1