一种应用程序接管方法、装置及系统与流程

文档序号:17079253发布日期:2019-03-09 00:03阅读:185来源:国知局
一种应用程序接管方法、装置及系统与流程

本申请涉及计算机技术领域,尤其涉及一种应用程序接管方法、装置及系统。



背景技术:

随着信息社会的发展,越来越多的公司将业务搬移至云端。在现有技术中,每个公司需要根据自己的业务需求向云平台公司租赁至少一个虚拟机,以便于在这些虚拟机上运行本公司的多个业务,使得每个业务均可以占有与其需求相应的资源。

运行在虚拟机上的所有业务的访问频率是不同的,有些业务的访问频率较高,需要该业务不间断的提供服务;有些业务的访问频率较低,需要该业务间隔很长时间提供一次服务。然而,在现有技术中,为了保证业务的正常运行,虚拟机均需要为每个业务提供足够的资源。

然而,由于访问频率较低的业务一直占有虚拟机的资源,并没有持续使用这些资源,而是间隔很长时间使用一次其占有的资源。如此,导致了虚拟机资源的浪费,使得虚拟机的使用率低,从而增加了云端业务的成本。



技术实现要素:

为了实现上述需求,本申请提供一种应用程序接管方法、装置及系统,能够通过应用程序的接管,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。

为了实现上述目的,本申请提供的技术方案如下:

本申请提供一种种应用程序接管方法,应用于业务应用程序,所述方法包括:

向代理应用程序发送接管请求,以使所述代理应用程序根据所述接管请求,向所述业务应用程序返回确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息;

接收所述代理应用程序发送的确定接管的消息;

接收所述代理应用程序发送的映射完成消息;其中,所述映射完成消息是所述代理应用程序转发的映射完成消息;

退出运行,以使所述代理应用程序代替所述业务应用程序进行服务请求的处理。

可选的,所述向代理应用程序发送接管请求之前,还包括:

向所述代理应用程序注册,以使所述代理应用程序获得所述业务应用程序的注册信息;其中,所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型。

可选的,所述向代理应用程序发送接管请求之前,还包括:

判断所述业务应用程序是否处于空闲状态;

所述向代理应用程序发送接管请求,具体包括:

当确定所述业务应用程序处于空闲状态时,向代理应用程序发送接管请求。

可选的,所述退出运行之后,还包括:

当所述业务应用程序重新启动后,向所述代理应用程序发送转发消息的请求,以使所述代理应用程序根据所述转发消息的请求,将接管所述业务应用程序期间收到的所有消息请求转发至所述业务应用程序;

接收所述代理应用程序转发的所有消息请求;

根据接收的所有消息请求,处理所有消息请求。

可选的,所述所有消息请求为多个,且包括非接管消息请求;

所述根据接收的所有消息请求,处理所有消息请求,具体包括:

根据接收的所有消息请求,判断非接管消息请求是否与所述所有消息请求中除所述非接管消息请求以外的其他消息请求有关;

若是,则按照接收顺序处理所有消息请求;

若否,则先处理非接管消息请求,再按照接收顺序处理剩余消息请求;

其中,非接管消息请求是接收的所有消息请求的最后一个消息请求;所述接收顺序是指所述代理应用程序接收所有消息请求的顺序。

本申请还提供一种应用程序接管方法,应用于代理应用程序,所述方法包括:

接收所述业务应用程序发送的所述接管请求;

向所述业务应用程序发送所述确定接管的消息,并向所述端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序发送映射完成消息;

接收所述端口映射模块发送的映射完成消息;

将所述映射完成消息发送至所述业务应用程序,以使所述业务应用程序退出运行;

代替所述业务应用程序进行服务请求的处理。

可选的,所述代替所述业务应用程序进行服务请求的处理,具体包括:

根据接收的服务请求和注册信息,进行处理;其中,所述服务请求是所述端口映射模块转发的用户向所述业务应用程序发送的服务请求;所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型;

根据所述返回消息的类型,获得处理结果;

保存所述处理结果以及所述服务请求,以便于所述业务应用程序重新启动后,获取所述处理结果以及所述服务请求。

可选的,所述根据接收的服务请求和注册信息,进行处理,具体包括:

根据接收的服务请求和注册信息,确定所述服务请求位于所述可代理服务请求列表中;

根据所述运行代码,对所述服务请求进行处理。

可选的,所述根据接收的服务请求和注册信息,进行处理,还包括:

根据接收的服务请求和所述注册信息,确定所述服务请求不位于所述可代理服务请求列表中;

向调度模块发送所述启动所述业务应用程序的请求,以使所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序并向所述代理应用程序反馈确定启动的消息;其中,所述启用所述业务应用程序的请求包括:所述启动信息;所述启动信息包括:启动所述业务应用程序的资源需求和启动代码;

向所述用户发送当前系统忙的消息;

接收所述调度模块发送的所述确定所述业务应用程序启动的消息;

向所述端口映射模块发送取消端口映射请求,以使所述端口映射模块根据所述取消端口映射请求,取消所述代理应用程序对所述业务应用程序的端口映射。

可选的,所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序,具体包括:

所述调度模块根据接收的启用所述业务应用程序的请求,获取启动所述业务应用程序的资源需求;

当当前系统资源满足所述资源需求时,所述调度模块运行所述启动消息的所述启动代码,以便于启动所述业务应用程序;

当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于所述调度模块判断当前系统资源是否满足所述资源需求;所述待退出应用程序是在当前系统下正在运行的至少一个所述业务应用程序。

可选的,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:

所述调度模块获得所述当前系统资源与所述资源需求的资源差值;

所述调度模块根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述业务应用程序作为所述待退出应用程序;

所述调度模块命令所述待退出应用程序退出运行,以使所述待退出应用程序退出运行。

可选的,所述保存所述处理结果以及所述服务请求,具体包括:

将所述处理结果以及所述服务请求保存在至少一个存储介质上。

本申请还提供一种应用程序接管装置,应用于业务应用程序,包括:

第一发送单元,用于向代理应用程序发送接管请求,以使所述代理应用程序根据所述接管请求,向所述业务应用程序返回确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息;

第一接收单元,用于接收所述代理应用程序发送的确定接管的消息;

第二接收单元,用于接收所述代理应用程序发送的映射完成消息;其中,所述映射完成消息是所述代理应用程序转发的映射完成消息;

退出单元,用于退出运行,以使所述代理应用程序代替所述业务应用程序进行服务请求的处理。

可选的,还包括:

注册单元,用于向所述代理应用程序注册,以使所述代理应用程序获得所述业务应用程序的注册信息;其中,所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型。

可选的,还包括:

第一判断单元,用于判断所述业务应用程序是否处于空闲状态;

所述第一发送单元,具体包括:当确定所述业务应用程序处于空闲状态时,向代理应用程序发送接管请求。

可选的,还包括:

第二发送单元,用于当所述业务应用程序重新启动后,向所述代理应用程序发送转发消息的请求,以使所述代理应用程序根据所述转发消息的请求,将接管所述业务应用程序期间收到的所有消息请求转发至所述业务应用程序;

第三接收单元,用于接收所述代理应用程序转发的所有消息请求;

第一处理单元,用于根据接收的所有消息请求,处理所有消息请求。

可选的,所述所有消息请求为多个,且包括非接管消息请求;

所述第一处理单元,具体包括:

第一判断子单元,用于根据接收的所有消息请求,判断非接管消息请求是否与所述所有消息请求中除所述非接管消息请求以外的其他消息请求有关;若是,则运行第一处理子单元;若否,则运行第二处理子单元;

所述第一处理子单元,用于按照接收顺序处理所有消息请求;

所述第二处理子单元,用于先处理非接管消息请求,再按照接收顺序处理剩余消息请求;

其中,非接管消息请求是接收的所有消息请求的最后一个消息请求;所述接收顺序是指所述代理应用程序接收所有消息请求的顺序。

本申请还提供一种应用程序接管装置,应用于代理应用程序,包括:

第四接收单元,用于接收所述业务应用程序发送的所述接管请求;

第三发送单元,用于向所述业务应用程序发送所述确定接管的消息,并向所述端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序发送映射完成消息;

第五接收单元,用于接收所述端口映射模块发送的映射完成消息;

第四发送单元,用于将所述映射完成消息发送至所述业务应用程序,以使所述业务应用程序退出运行;

第二处理单元,用于代替所述业务应用程序进行服务请求的处理。

可选的,所述第二处理单元,具体包括:

第三处理子单元,用于根据接收的服务请求和所述注册信息,进行处理;其中,所述服务请求是所述端口映射模块转发的用户向所述业务应用程序发送的服务请求;

第一获得子单元,用于根据所述返回消息的类型,获得处理结果;

保存子单元,用于保存所述处理结果以及所述服务请求,以便于所述业务应用程序重新启动后,获取所述处理结果以及所述服务请求。

可选的,所述第三处理子单元,具体包括:

第一确定模块,用于根据接收的服务请求和注册信息,确定所述服务请求位于所述可代理服务请求列表中;

第一处理模块,用于根据所述运行代码,对所述服务请求进行处理。

可选的,所述第三处理子单元,还包括:

第二确定模块,用于根据接收的服务请求和注册信息,确定所述服务请求不位于所述可代理服务请求列表中;

第一发送模块,用于向调度模块发送所述启动所述业务应用程序的请求,以使所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序并向所述代理应用程序反馈确定启动的消息;其中,所述启用所述业务应用程序的请求包括:所述启动信息;所述启动信息包括:启动所述业务应用程序的资源需求和启动代码;

第二发送模块,用于向所述用户发送当前系统忙的消息;

第一接收模块,用于接收所述调度模块发送的所述确定所述业务应用程序启动的消息;

第三发送模块,用于向所述端口映射模块发送取消端口映射请求,以使所述端口映射模块根据所述取消端口映射请求,取消所述代理应用程序对所述业务应用程序的端口映射。

可选的,所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序,具体包括:

所述调度模块根据接收的启用所述业务应用程序的请求,获取启动所述业务应用程序的资源需求;

当当前系统资源满足所述资源需求时,所述调度模块运行所述启动消息的所述启动代码,以便于启动所述业务应用程序;

当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于所述调度模块判断当前系统资源是否满足所述资源需求;所述待退出应用程序是在当前系统下正在运行的至少一个所述业务应用程序。

可选的,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:

所述调度模块获得所述当前系统资源与所述资源需求的资源差值;

所述调度模块根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述业务应用程序作为所述待退出应用程序;

所述调度模块命令所述待退出应用程序退出运行,以使所述待退出应用程序退出运行。

本申请还提供一种应用程序接管系统,包括:至少一个第一应用程序接管装置、第二应用程序接管装置和端口映射模块;

其中,所述第一应用程序接管装置为上述提供的一种应用程序接管装置;

所述第二应用程序接管装置为上述提供的一种应用程序接管装置;

所述端口映射模块,用于根据所述端口变更请求,将所述第一应用程序接管装置的访问端口映射至所述第二应用程序接管装置上,并向所述第二应用程序接管装置发送映射完成消息;接收用户向所述第一应用程序接管装置发送的服务请求,并向所述第二应用程序接管装置发送所述服务请求;根据所述第二应用程序接管装置发送的取消对所述第一应用程序接管装置的端口映射请求,取消所述第二应用程序接管装置对所述第一应用程序接管装置的端口映射;根据用户向所述第一应用程序接管装置发送的服务请求,将所述服务请求转发给所述第二应用程序接管装置。

可选的,还包括:调度模块;

所述调度模块,用于根据接收的启用所述第一应用程序接管装置的请求,启动所述第一应用程序接管装置并向所述第二应用程序接管装置反馈确定启动的消息。

可选的,所述调度模块用于根据接收的启用所述第一应用程序接管装置的请求,启动所述第一应用程序接管装置,具体包括:

根据接收的启用所述第一应用程序接管装置的请求,获取启动所述第一应用程序接管装置的资源需求;

当当前系统资源满足所述资源需求时,所述调度模块运行所述启动消息的所述启动代码,以便于启动所述第一应用程序接管装置;

当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于判断当前系统资源是否满足所述资源需求。

可选的,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:

获得所述当前系统资源与所述资源需求的资源差值;

根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述第一应用程序接管装置作为所述待退出应用程序;

命令所述待退出应用程序退出运行。

与现有技术相比,本申请至少具有以下优点:

本申请提供的应用程序接管方法,首先,业务应用程序向代理应用程序发送接管请求;其次,代理应用程序根据所述接管请求,向所述业务应用程序返回确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息;然后,代理应用程序将该映射完成消息发送至业务应用程序;最后,业务应用程序退出运行,以使所述代理应用程序代替所述业务应用程序进行服务请求的处理。在该方法中,代理应用程序可以代替已经退出运行的业务应用程序处理服务业务,保证了当业务应用程序退出运行时,依然能够通过代理应用程序处理服务业务。因而,代理应用程序可以接管访问频率较低的业务应用程序的服务业务,使得这些访问频率较低的业务应用程序退出运行,并释放其运行时所占有的系统资源,以便于其他业务应用程序再次使用该系统资源,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请实施例提供的应用程序的接管方法的流程图;

图2为本申请实施例提供的应用于业务应用程序的应用程序接管装置的结构示意图;

图3为本申请实施例提供的应用于代理应用程序的应用程序接管装置的结构示意图;

图4为本申请实施例提供的应用程序接管系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例为了解决背景技术部分所述的技术问题,提出了一种应用程序接管系统,包括业务应用程序、代理应用程序、端口映射模块和调度模块。

其中,业务应用程序,用于接收用户发送的服务请求,并根据该服务请求,进行处理的应用程序。例如,业务应用程序可以是数据库。

代理应用程序,用于当业务应用程序退出运行时,代替业务应用程序处理用户服务请求的应用程序。而且,代理应用程序可以代替至少一个业务应用程序处理相应的用户服务请求。

端口映射模块,用于当业务应用程序请求代理应用程序接管时,端口映射模块用于将业务应用程序的端口映射至代理应用程序上;当代理应用程序无法处理用户服务请求时,请求业务应用程序恢复处理该服务请求时,端口映射模块用于取消代理应用程序上的该业务应用程序的端口映射,以便于该业务应用程序恢复对用户服务请求的处理。

调度模块,用于根据相应的请求,命令业务应用程序退出或启动。

基于该应用程序接管系统,本申请实施例还提供了一种应用程序接管方法,下面将结合图1对该方法进行具体说明。

参见图1,该图为本申请实施例提供的应用程序的接管方法的流程图。

s101:业务应用程序向代理应用程序发送接管请求。

接管请求是业务应用程序请求代理应用程序接管其服务业务的请求。

代理应用程序,用于当业务应用程序退出运行时,代替该业务应用程序接管其服务业务。

为了提高代理应用程序接管业务应用程序的相关服务业务的效率,本申请实施例提供了另一种实施方式,在该实施方式中,在执行s101之前,还需要执行以下步骤:

业务应用程序向所述代理应用程序注册,以使所述代理应用程序获得所述业务应用程序的注册信息。

其中,所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型。

另外,为了进一步提高代理应用程序接管业务应用程序的相关服务业务的效率,本申请实施例提供了又一种实施方式,在该实施方式中,在执行s101之前,还需要执行以下步骤:

业务应用程序判断所述业务应用程序是否处于空闲状态;

若是,则执行s101;若否,则保持业务应用程序处于运行状态。

如此,代理应用程序将仅代替处于空闲状态的业务应用程序进行服务业务的处理,以便于释放这些处于空闲状态的业务应用程序运行时所占用的系统资源,从而有利于提供系统的资源利用率。

s102:代理应用程序接收业务应用程序发送的所述接管请求。

s103:代理应用程序向所述业务应用程序发送所述确定接管的消息,以便于业务应用程序根据接收到的所述确定接管的消息,确定代理应用程序已收到其发送的接管请求。

s104:代理应用程序向所述端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息。

端口变更请求是代理应用程序请求端口映射模块将业务应用程序的端口映射至代理应用程序上的请求。

映射完成消息是端口映射模块为了通知代理应用程序端口变更已完成而发送的消息。

需要说明的是,s103和s104没有先后顺序,可以先执行s103,再执行s104;也可以先执行s104,再执行s103;还可以同时执行s103和s104。

s105:所述代理应用程序向所述业务应用程序发送所述映射完成消息。

s106:业务应用程序接收到所述映射完成消息。

s107:业务应用程序退出运行。

s108:代理应用程序代替所述业务应用程序进行服务请求的处理。

作为一种实施方式,s108可以具体为:

s1081:用户向业务应用程序发送服务请求。

s1082:端口映射模块将该服务请求转发给代理应用程序。

s1083:根据接收的服务请求和注册信息,代理应用程序进行处理。

作为一种实施方式,s1083可以具体为:

s1083a:根据接收的服务请求和注册信息,代理应用程序确认所述服务请求位于所述可代理服务请求列表中。

s1083b:根据所述运行代码,代理应用程序对所述服务请求进行处理。

运行代码位于可代理服务请求列表中,运行代码可以与相应的服务请求一一对应,以便于代理应用程序针对不同的服务请求执行不同的运行代码。

s1084:代理应用程序根据所述返回消息的类型,获得处理结果;

s1085:代理应用程序保存所述处理结果以及所述服务请求,以便于所述业务应用程序重新启动后,获取所述处理结果以及所述服务请求。

作为一种实施方式,为了保证存储的安全性,进而提高系统的可靠性,s1085可以具体为:将所述处理结果以及所述服务请求保存在至少一个存储介质上。

例如,将所述处理结果以及所述服务请求,分别保存在云服务存储介质以及公司本地的内部存储介质上。

以上是代理应用程序代替业务应用程序处理用户发送的服务请求的具体实施方式。

然而,由于代理应用程序只能代替业务应用程序处理所述可代理服务请求列表中的服务请求,如果代理应用程序接收到不属于所述可代理服务请求列表中的服务请求中记录的服务请求,则需要代理应用程序应当将服务请求的处理权限返还给业务应用程序,以使业务应用程序进行处理。

因而,针对上述情况,本申请实施例还提供了另一种实施方式,在该实施方式中,当执行s108时,如果根据接收的服务请求和注册信息,代理应用程序确认所述服务请求不位于所述可代理服务请求列表中,则s108可以具体为:

s108a:用户向业务应用程序发送服务请求。

s108b:端口映射模块将该服务请求转发给代理应用程序。

s108c:根据接收的服务请求和注册信息,代理应用程序确认所述服务请求不位于所述可代理服务请求列表中。

s108d:代理应用程序向所述用户发送当前系统忙的消息。

由于代理应用程序无法代管当前用户发送的服务请求,而需要将该服务请求的处理权限返还给业务应用程序,在此过程中,将花费一些时间,因而,用户无法及时获得该服务请求的反馈结果,因而,为了避免客户无目的的等待,通过发送当前系统忙的消息及时告知用户,当前系统无法快速得到该服务请求的反馈结果,并告知用户等待一段时间后再次发送服务请求。

s108e:代理应用程序向调度模块发送所述启动所述业务应用程序的请求。

其中,所述启用所述业务应用程序的请求包括:所述启动信息;所述启动信息包括:启动所述业务应用程序的资源需求和启动代码。

需要说明的是,s108d与s108e没有先后顺序,可以先执行s108d,再执行s108e;也可以先执行s108e,再执行s108d;还可以同时执行s108d和s108e。

s108f:调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序。

作为一种实施方式,s108f可以具体为:

s108f1:根据接收的启用所述业务应用程序的请求,调度模块获取启动所述业务应用程序的资源需求。

s108f2:判断当前系统资源是否满足所述资源需求,若是,则执行s108f3;若否,则执行s108f4。

s108f3:调度模块运行所述启动消息的所述启动代码,以便于启动所述业务应用程序。

s108f4:调度模块命令待退出应用程序退出运行。

其中,所述待退出应用程序是在当前系统下正在运行的至少一个所述业务应用程序。

作为一种实施方式,s108f4可以具体为:

s108f4a:调度模块获得所述当前系统资源与所述资源需求的资源差值。

s108f4b:调度模块根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述业务应用程序作为所述待退出应用程序。

s108f4c:调度模块命令所述待退出应用程序退出运行,以使所述待退出应用程序退出运行。

s108f5:返回执行s108f2。

s108g:调度模块向所述代理应用程序反馈确定启动的消息。

s108h:代理应用程序接收所述调度模块发送的所述确定所述业务应用程序启动的消息;

s108i:代理应用程序向所述端口映射模块发送取消端口映射请求,以使所述端口映射模块根据所述取消端口映射请求,取消所述代理应用程序对所述业务应用程序的端口映射。

s108j:当所述业务应用程序重新启动后,业务应用程序向所述代理应用程序发送转发消息的请求。

s108k:所述代理应用程序根据所述转发消息的请求,将接管所述业务应用程序期间收到的所有消息请求转发至所述业务应用程序;

s108l:业务应用程序接收所述代理应用程序转发的所有消息请求;

s108m:根据接收的所有消息请求,业务应用程序处理所有消息请求。

所述所有消息请求为多个,且包括非接管消息请求。其中,非接管请求是不在所述可代理服务请求列表上的请求,且非接管消息请求是接收的所有消息请求的最后一个消息请求。

作为一种实施方式,s108m可以具体为:

根据接收的所有消息请求,判断非接管消息请求是否与所述所有消息请求中除所述非接管消息请求以外的其他消息请求有关;

若是,则按照接收顺序处理所有消息请求;

若否,则先处理非接管消息请求,再按照接收顺序处理剩余消息请求。

其中,所述接收顺序是指所述代理应用程序接收所有消息请求的顺序。

以上为代理应用程序将处理服务请求的权限返还给业务应用程序的具体实施方式。

本申请提供的应用程序接管方法中,代理应用程序可以代替已经退出运行的业务应用程序处理服务业务,保证了当业务应用程序退出运行时,依然能够通过代理应用程序处理服务业务。因而,代理应用程序可以接管访问频率较低的业务应用程序的服务业务,使得这些访问频率较低的业务应用程序退出运行,并释放其运行时所占有的系统资源,以便于其他业务应用程序再次使用该系统资源,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。

基于上述实施例提供的一种应用程序接管方法,本申请实施例还提供了一种可以应用于业务应用程序的应用程序接管装置,下面将结合图2进行解释和说明。

参见图2,该图为本申请实施例提供的应用于业务应用程序的应用程序接管装置的结构示意图。

本申请实施例提供的应用程序接管装置,应用于业务应用程序,包括:

第一发送单元201,用于向代理应用程序发送接管请求,以使所述代理应用程序根据所述接管请求,向所述业务应用程序返回确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息;

第一接收单元202,用于接收所述代理应用程序发送的确定接管的消息;

第二接收单元203,用于接收所述代理应用程序发送的映射完成消息;其中,所述映射完成消息是所述代理应用程序转发的映射完成消息;

退出单元204,用于退出运行,以使所述代理应用程序代替所述业务应用程序进行服务请求的处理。

可选的,所述应用程序接管装置,还包括:

注册单元,用于向所述代理应用程序注册,以使所述代理应用程序获得所述业务应用程序的注册信息;其中,所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型。

可选的,所述应用程序接管装置,还包括:

第一判断单元,用于判断所述业务应用程序是否处于空闲状态;

所述第一发送单元201,具体包括:当确定所述业务应用程序处于空闲状态时,向代理应用程序发送接管请求。

可选的,所述应用程序接管装置,还包括:

第二发送单元,用于当所述业务应用程序重新启动后,向所述代理应用程序发送转发消息的请求,以使所述代理应用程序根据所述转发消息的请求,将接管所述业务应用程序期间收到的所有消息请求转发至所述业务应用程序;

第三接收单元,用于接收所述代理应用程序转发的所有消息请求;

第一处理单元,用于根据接收的所有消息请求,处理所有消息请求。

可选的,所述所有消息请求为多个,且包括非接管消息请求;

所述第一处理单元,具体包括:

第一判断子单元,用于根据接收的所有消息请求,判断非接管消息请求是否与所述所有消息请求中除所述非接管消息请求以外的其他消息请求有关;若是,则运行第一处理子单元;若否,则运行第二处理子单元;

所述第一处理子单元,用于按照接收顺序处理所有消息请求;

所述第二处理子单元,用于先处理非接管消息请求,再按照接收顺序处理剩余消息请求;

其中,非接管消息请求是接收的所有消息请求的最后一个消息请求;所述接收顺序是指所述代理应用程序接收所有消息请求的顺序。

本申请实施例提供的应用程序接管装置,应用于应用程序接管装置,包括:第一发送单元201、第一接收单元202、第二接收单元203和退出单元204,其中,代理应用程序可以代替已经退出运行的应用程序接管装置处理服务业务,保证了当应用程序接管装置退出运行时,依然能够通过代理应用程序处理服务业务。因而,代理应用程序可以接管访问频率较低的应用程序接管装置的服务业务,使得这些访问频率较低的应用程序接管装置退出运行,并释放其运行时所占有的系统资源,以便于其他应用程序接管装置再次使用该系统资源,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。

基于上述实施例提供的一种应用程序接管方法,本申请实施例还提供了一种可以应用于代理应用程序的应用程序接管装置,下面将结合图3进行解释和说明。

参见图3,该图为本申请实施例提供的应用于代理应用程序的应用程序接管装置的结构示意图。

本申请实施例提供的应用程序接管装置,应用于代理应用程序,包括:

第四接收单元301,用于接收所述业务应用程序发送的所述接管请求;

第三发送单元302,用于向所述业务应用程序发送所述确定接管的消息,并向所述端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序发送映射完成消息;

第五接收单元303,用于接收所述端口映射模块发送的映射完成消息;

第四发送单元304,用于将所述映射完成消息发送至所述业务应用程序,以使所述业务应用程序退出运行;

第二处理单元305,用于代替所述业务应用程序进行服务请求的处理。

可选的,所述第二处理单元305,具体包括:

第三处理子单元,用于根据接收的服务请求和所述注册信息,进行处理;其中,所述服务请求是所述端口映射模块转发的用户向所述业务应用程序发送的服务请求;

第一获得子单元,用于根据所述返回消息的类型,获得处理结果;

保存子单元,用于保存所述处理结果,以便于所述业务应用程序重新启动后,获取所述处理结果。

可选的,所述第三处理子单元,具体包括:

第一确定模块,用于根据接收的服务请求和注册信息,确定所述服务请求位于所述可代理服务请求列表中;

第一处理模块,用于根据所述运行代码,对所述服务请求进行处理。

可选的,所述第三处理子单元,还包括:

第二确定模块,用于根据接收的服务请求和注册信息,确定所述服务请求不位于所述可代理服务请求列表中;

第一发送模块,用于向调度模块发送所述启动所述业务应用程序的请求,以使所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序并向所述代理应用程序反馈确定启动的消息;其中,所述启用所述业务应用程序的请求包括:所述启动信息;所述启动信息包括:启动所述业务应用程序的资源需求和启动代码;

第二发送模块,用于向所述用户发送当前系统忙的消息;

第一接收模块,用于接收所述调度模块发送的所述确定所述业务应用程序启动的消息;

第三发送模块,用于向所述端口映射模块发送取消端口映射请求,以使所述端口映射模块根据所述取消端口映射请求,取消所述代理应用程序对所述业务应用程序的端口映射。

可选的,所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序,具体包括:

所述调度模块根据接收的启用所述业务应用程序的请求,获取启动所述业务应用程序的资源需求;

当当前系统资源满足所述资源需求时,所述调度模块运行所述启动消息的所述启动代码,以便于启动所述业务应用程序;

当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于所述调度模块判断当前系统资源是否满足所述资源需求;所述待退出应用程序是在当前系统下正在运行的至少一个所述业务应用程序。

可选的,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:

所述调度模块获得所述当前系统资源与所述资源需求的资源差值;

所述调度模块根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述业务应用程序作为所述待退出应用程序;

所述调度模块命令所述待退出应用程序退出运行,以使所述待退出应用程序退出运行。

本申请实施例提供的应用程序接管装置,应用于应用程序接管装置,包括:第四接收单元301、第三发送单元302、第五接收单元303、第四发送单元304和第二处理单元305,其中,应用程序接管装置可以代替已经退出运行的业务应用程序处理服务业务,保证了当业务应用程序退出运行时,依然能够通过应用程序接管装置处理服务业务。因而,应用程序接管装置可以接管访问频率较低的业务应用程序的服务业务,使得这些访问频率较低的业务应用程序退出运行,并释放其运行时所占有的系统资源,以便于其他业务应用程序再次使用该系统资源,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。

基于上述实施例提供的一种应用程序接管方法、一种可以应用于代理应用程序的应用程序接管装置以及一种可以应用于业务应用程序的应用程序接管装置,本申请实施例还提供了一种应用程序接管系统,下面将结合图4进行解释和说明。

参见图4,该图为本申请实施例提供的应用程序接管系统的结构示意图。

本申请实施例提供的应用程序接管系统,包括:至少一个第一应用程序接管装置401、第二应用程序接管装置402和端口映射模块403;

其中,所述第一应用程序接管装置401为上述实施例提供的一种可应用于第一应用程序接管装置的应用程序接管装置;

所述第二应用程序接管装置为上述实施例提供的一种可应用于第一应用程序接管装置的应用程序接管装置;

所述端口映射模块,用于根据所述端口变更请求,将所述第一应用程序接管装置的访问端口映射至所述第二应用程序接管装置上,并向所述第二应用程序接管装置发送映射完成消息;接收用户向所述第一应用程序接管装置发送的服务请求,并向所述第二应用程序接管装置发送所述服务请求;根据所述第二应用程序接管装置发送的取消对所述第一应用程序接管装置的端口映射请求,取消所述第二应用程序接管装置对所述第一应用程序接管装置的端口映射;根据用户向所述第一应用程序接管装置发送的服务请求,将所述服务请求转发给所述第二应用程序接管装置。

可选的,所述应用程序接管系统,还包括:调度模块;

所述调度模块,用于根据接收的启用所述第一应用程序接管装置的请求,启动所述第一应用程序接管装置并向所述第二应用程序接管装置反馈确定启动的消息。

可选的,所述调度模块用于根据接收的启用所述第一应用程序接管装置的请求,启动所述第一应用程序接管装置,具体包括:

根据接收的启用所述第一应用程序接管装置的请求,获取启动所述第一应用程序接管装置的资源需求;

当当前系统资源满足所述资源需求时,所述调度模块运行所述启动消息的所述启动代码,以便于启动所述第一应用程序接管装置;

当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于判断当前系统资源是否满足所述资源需求。

可选的,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:

获得所述当前系统资源与所述资源需求的资源差值;

根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述第一应用程序接管装置作为所述待退出应用程序;

命令所述待退出应用程序退出运行。

需要说明的是,在本申请实施例提供的应用程序接管系统,包括:至少一个第一应用程序接管装置401、第二应用程序接管装置402和端口映射模块403,在该系统中,第二应用程序接管装置可以代替已经退出运行的第一应用程序接管装置处理服务业务,保证了当第一应用程序接管装置退出运行时,依然能够通过第二应用程序接管装置处理服务业务。因而,第二应用程序接管装置可以接管访问频率较低的第一应用程序接管装置的服务业务,使得这些访问频率较低的第一应用程序接管装置退出运行,并释放其运行时所占有的系统资源,以便于其他第一应用程序接管装置再次使用该系统资源,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。

以上所述,仅是本申请的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1