CN109445925B - 一种应用程序接管方法、装置及系统 - Google Patents
一种应用程序接管方法、装置及系统 Download PDFInfo
- Publication number
- CN109445925B CN109445925B CN201811334290.8A CN201811334290A CN109445925B CN 109445925 B CN109445925 B CN 109445925B CN 201811334290 A CN201811334290 A CN 201811334290A CN 109445925 B CN109445925 B CN 109445925B
- Authority
- CN
- China
- Prior art keywords
- application program
- request
- service
- takeover
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000013507 mapping Methods 0.000 claims description 130
- 238000012545 processing Methods 0.000 claims description 104
- 238000012508 change request Methods 0.000 claims description 28
- 239000002699 waste material Substances 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序接管方法、装置及系统,通过业务应用程序退出运行,而且代理应用程序代替所述业务应用程序进行服务请求的处理。因此,代理应用程序可以代替已经退出运行的业务应用程序处理服务业务,保证了当业务应用程序退出运行时,依然能够通过代理应用程序处理服务业务。因而,代理应用程序可以接管访问频率较低的业务应用程序的服务业务,使得这些访问频率较低的业务应用程序退出运行,并释放其运行时所占有的系统资源,以便于其他业务应用程序再次使用该系统资源,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序接管方法、装置及系统。
背景技术
随着信息社会的发展,越来越多的公司将业务搬移至云端。在现有技术中,每个公司需要根据自己的业务需求向云平台公司租赁至少一个虚拟机,以便于在这些虚拟机上运行本公司的多个业务,使得每个业务均可以占有与其需求相应的资源。
运行在虚拟机上的所有业务的访问频率是不同的,有些业务的访问频率较高,需要该业务不间断的提供服务;有些业务的访问频率较低,需要该业务间隔很长时间提供一次服务。然而,在现有技术中,为了保证业务的正常运行,虚拟机均需要为每个业务提供足够的资源。
然而,由于访问频率较低的业务一直占有虚拟机的资源,并没有持续使用这些资源,而是间隔很长时间使用一次其占有的资源。如此,导致了虚拟机资源的浪费,使得虚拟机的使用率低,从而增加了云端业务的成本。
发明内容
为了实现上述需求,本申请提供一种应用程序接管方法、装置及系统,能够通过应用程序的接管,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。
为了实现上述目的,本申请提供的技术方案如下:
本申请提供一种种应用程序接管方法,应用于业务应用程序,所述方法包括:
向代理应用程序发送接管请求,以使所述代理应用程序根据所述接管请求,向所述业务应用程序返回确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息;
接收所述代理应用程序发送的确定接管的消息;
接收所述代理应用程序发送的映射完成消息;其中,所述映射完成消息是所述代理应用程序转发的映射完成消息;
退出运行,以使所述代理应用程序代替所述业务应用程序进行服务请求的处理。
可选的,所述向代理应用程序发送接管请求之前,还包括:
向所述代理应用程序注册,以使所述代理应用程序获得所述业务应用程序的注册信息;其中,所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型。
可选的,所述向代理应用程序发送接管请求之前,还包括:
判断所述业务应用程序是否处于空闲状态;
所述向代理应用程序发送接管请求,具体包括:
当确定所述业务应用程序处于空闲状态时,向代理应用程序发送接管请求。
可选的,所述退出运行之后,还包括:
当所述业务应用程序重新启动后,向所述代理应用程序发送转发消息的请求,以使所述代理应用程序根据所述转发消息的请求,将接管所述业务应用程序期间收到的所有消息请求转发至所述业务应用程序;
接收所述代理应用程序转发的所有消息请求;
根据接收的所有消息请求,处理所有消息请求。
可选的,所述所有消息请求为多个,且包括非接管消息请求;
所述根据接收的所有消息请求,处理所有消息请求,具体包括:
根据接收的所有消息请求,判断非接管消息请求是否与所述所有消息请求中除所述非接管消息请求以外的其他消息请求有关;
若是,则按照接收顺序处理所有消息请求;
若否,则先处理非接管消息请求,再按照接收顺序处理剩余消息请求;
其中,非接管消息请求是接收的所有消息请求的最后一个消息请求;所述接收顺序是指所述代理应用程序接收所有消息请求的顺序。
本申请还提供一种应用程序接管方法,应用于代理应用程序,所述方法包括:
接收所述业务应用程序发送的所述接管请求;
向所述业务应用程序发送所述确定接管的消息,并向所述端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序发送映射完成消息;
接收所述端口映射模块发送的映射完成消息;
将所述映射完成消息发送至所述业务应用程序,以使所述业务应用程序退出运行;
代替所述业务应用程序进行服务请求的处理。
可选的,所述代替所述业务应用程序进行服务请求的处理,具体包括:
根据接收的服务请求和注册信息,进行处理;其中,所述服务请求是所述端口映射模块转发的用户向所述业务应用程序发送的服务请求;所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型;
根据所述返回消息的类型,获得处理结果;
保存所述处理结果以及所述服务请求,以便于所述业务应用程序重新启动后,获取所述处理结果以及所述服务请求。
可选的,所述根据接收的服务请求和注册信息,进行处理,具体包括:
根据接收的服务请求和注册信息,确定所述服务请求位于所述可代理服务请求列表中;
根据所述运行代码,对所述服务请求进行处理。
可选的,所述根据接收的服务请求和注册信息,进行处理,还包括:
根据接收的服务请求和所述注册信息,确定所述服务请求不位于所述可代理服务请求列表中;
向调度模块发送所述启动所述业务应用程序的请求,以使所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序并向所述代理应用程序反馈确定启动的消息;其中,所述启用所述业务应用程序的请求包括:所述启动信息;所述启动信息包括:启动所述业务应用程序的资源需求和启动代码;
向所述用户发送当前系统忙的消息;
接收所述调度模块发送的所述确定所述业务应用程序启动的消息;
向所述端口映射模块发送取消端口映射请求,以使所述端口映射模块根据所述取消端口映射请求,取消所述代理应用程序对所述业务应用程序的端口映射。
可选的,所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序,具体包括:
所述调度模块根据接收的启用所述业务应用程序的请求,获取启动所述业务应用程序的资源需求;
当当前系统资源满足所述资源需求时,所述调度模块运行所述启动消息的所述启动代码,以便于启动所述业务应用程序;
当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于所述调度模块判断当前系统资源是否满足所述资源需求;所述待退出应用程序是在当前系统下正在运行的至少一个所述业务应用程序。
可选的,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:
所述调度模块获得所述当前系统资源与所述资源需求的资源差值;
所述调度模块根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述业务应用程序作为所述待退出应用程序;
所述调度模块命令所述待退出应用程序退出运行,以使所述待退出应用程序退出运行。
可选的,所述保存所述处理结果以及所述服务请求,具体包括:
将所述处理结果以及所述服务请求保存在至少一个存储介质上。
本申请还提供一种应用程序接管装置,应用于业务应用程序,包括:
第一发送单元,用于向代理应用程序发送接管请求,以使所述代理应用程序根据所述接管请求,向所述业务应用程序返回确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息;
第一接收单元,用于接收所述代理应用程序发送的确定接管的消息;
第二接收单元,用于接收所述代理应用程序发送的映射完成消息;其中,所述映射完成消息是所述代理应用程序转发的映射完成消息;
退出单元,用于退出运行,以使所述代理应用程序代替所述业务应用程序进行服务请求的处理。
可选的,还包括:
注册单元,用于向所述代理应用程序注册,以使所述代理应用程序获得所述业务应用程序的注册信息;其中,所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型。
可选的,还包括:
第一判断单元,用于判断所述业务应用程序是否处于空闲状态;
所述第一发送单元,具体包括:当确定所述业务应用程序处于空闲状态时,向代理应用程序发送接管请求。
可选的,还包括:
第二发送单元,用于当所述业务应用程序重新启动后,向所述代理应用程序发送转发消息的请求,以使所述代理应用程序根据所述转发消息的请求,将接管所述业务应用程序期间收到的所有消息请求转发至所述业务应用程序;
第三接收单元,用于接收所述代理应用程序转发的所有消息请求;
第一处理单元,用于根据接收的所有消息请求,处理所有消息请求。
可选的,所述所有消息请求为多个,且包括非接管消息请求;
所述第一处理单元,具体包括:
第一判断子单元,用于根据接收的所有消息请求,判断非接管消息请求是否与所述所有消息请求中除所述非接管消息请求以外的其他消息请求有关;若是,则运行第一处理子单元;若否,则运行第二处理子单元;
所述第一处理子单元,用于按照接收顺序处理所有消息请求;
所述第二处理子单元,用于先处理非接管消息请求,再按照接收顺序处理剩余消息请求;
其中,非接管消息请求是接收的所有消息请求的最后一个消息请求;所述接收顺序是指所述代理应用程序接收所有消息请求的顺序。
本申请还提供一种应用程序接管装置,应用于代理应用程序,包括:
第四接收单元,用于接收所述业务应用程序发送的所述接管请求;
第三发送单元,用于向所述业务应用程序发送所述确定接管的消息,并向所述端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序发送映射完成消息;
第五接收单元,用于接收所述端口映射模块发送的映射完成消息;
第四发送单元,用于将所述映射完成消息发送至所述业务应用程序,以使所述业务应用程序退出运行;
第二处理单元,用于代替所述业务应用程序进行服务请求的处理。
可选的,所述第二处理单元,具体包括:
第三处理子单元,用于根据接收的服务请求和所述注册信息,进行处理;其中,所述服务请求是所述端口映射模块转发的用户向所述业务应用程序发送的服务请求;
第一获得子单元,用于根据所述返回消息的类型,获得处理结果;
保存子单元,用于保存所述处理结果以及所述服务请求,以便于所述业务应用程序重新启动后,获取所述处理结果以及所述服务请求。
可选的,所述第三处理子单元,具体包括:
第一确定模块,用于根据接收的服务请求和注册信息,确定所述服务请求位于所述可代理服务请求列表中;
第一处理模块,用于根据所述运行代码,对所述服务请求进行处理。
可选的,所述第三处理子单元,还包括:
第二确定模块,用于根据接收的服务请求和注册信息,确定所述服务请求不位于所述可代理服务请求列表中;
第一发送模块,用于向调度模块发送所述启动所述业务应用程序的请求,以使所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序并向所述代理应用程序反馈确定启动的消息;其中,所述启用所述业务应用程序的请求包括:所述启动信息;所述启动信息包括:启动所述业务应用程序的资源需求和启动代码;
第二发送模块,用于向所述用户发送当前系统忙的消息;
第一接收模块,用于接收所述调度模块发送的所述确定所述业务应用程序启动的消息;
第三发送模块,用于向所述端口映射模块发送取消端口映射请求,以使所述端口映射模块根据所述取消端口映射请求,取消所述代理应用程序对所述业务应用程序的端口映射。
可选的,所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序,具体包括:
所述调度模块根据接收的启用所述业务应用程序的请求,获取启动所述业务应用程序的资源需求;
当当前系统资源满足所述资源需求时,所述调度模块运行所述启动消息的所述启动代码,以便于启动所述业务应用程序;
当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于所述调度模块判断当前系统资源是否满足所述资源需求;所述待退出应用程序是在当前系统下正在运行的至少一个所述业务应用程序。
可选的,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:
所述调度模块获得所述当前系统资源与所述资源需求的资源差值;
所述调度模块根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述业务应用程序作为所述待退出应用程序;
所述调度模块命令所述待退出应用程序退出运行,以使所述待退出应用程序退出运行。
本申请还提供一种应用程序接管系统,包括:至少一个第一应用程序接管装置、第二应用程序接管装置和端口映射模块;
其中,所述第一应用程序接管装置为上述提供的一种应用程序接管装置;
所述第二应用程序接管装置为上述提供的一种应用程序接管装置;
所述端口映射模块,用于根据所述端口变更请求,将所述第一应用程序接管装置的访问端口映射至所述第二应用程序接管装置上,并向所述第二应用程序接管装置发送映射完成消息;接收用户向所述第一应用程序接管装置发送的服务请求,并向所述第二应用程序接管装置发送所述服务请求;根据所述第二应用程序接管装置发送的取消对所述第一应用程序接管装置的端口映射请求,取消所述第二应用程序接管装置对所述第一应用程序接管装置的端口映射;根据用户向所述第一应用程序接管装置发送的服务请求,将所述服务请求转发给所述第二应用程序接管装置。
可选的,还包括:调度模块;
所述调度模块,用于根据接收的启用所述第一应用程序接管装置的请求,启动所述第一应用程序接管装置并向所述第二应用程序接管装置反馈确定启动的消息。
可选的,所述调度模块用于根据接收的启用所述第一应用程序接管装置的请求,启动所述第一应用程序接管装置,具体包括:
根据接收的启用所述第一应用程序接管装置的请求,获取启动所述第一应用程序接管装置的资源需求;
当当前系统资源满足所述资源需求时,所述调度模块运行所述启动消息的所述启动代码,以便于启动所述第一应用程序接管装置;
当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于判断当前系统资源是否满足所述资源需求。
可选的,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:
获得所述当前系统资源与所述资源需求的资源差值;
根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述第一应用程序接管装置作为所述待退出应用程序;
命令所述待退出应用程序退出运行。
与现有技术相比,本申请至少具有以下优点:
本申请提供的应用程序接管方法,首先,业务应用程序向代理应用程序发送接管请求;其次,代理应用程序根据所述接管请求,向所述业务应用程序返回确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息;然后,代理应用程序将该映射完成消息发送至业务应用程序;最后,业务应用程序退出运行,以使所述代理应用程序代替所述业务应用程序进行服务请求的处理。在该方法中,代理应用程序可以代替已经退出运行的业务应用程序处理服务业务,保证了当业务应用程序退出运行时,依然能够通过代理应用程序处理服务业务。因而,代理应用程序可以接管访问频率较低的业务应用程序的服务业务,使得这些访问频率较低的业务应用程序退出运行,并释放其运行时所占有的系统资源,以便于其他业务应用程序再次使用该系统资源,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图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,在该系统中,第二应用程序接管装置可以代替已经退出运行的第一应用程序接管装置处理服务业务,保证了当第一应用程序接管装置退出运行时,依然能够通过第二应用程序接管装置处理服务业务。因而,第二应用程序接管装置可以接管访问频率较低的第一应用程序接管装置的服务业务,使得这些访问频率较低的第一应用程序接管装置退出运行,并释放其运行时所占有的系统资源,以便于其他第一应用程序接管装置再次使用该系统资源,实现虚拟机资源的重复利用,从而避免了虚拟机资源的浪费,提高了虚拟机资源的使用率,进而减少了云端业务的成本。
以上所述,仅是本申请的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (27)
1.一种应用程序接管方法,其特征在于,应用于业务应用程序,所述方法包括:
向代理应用程序发送接管请求,以使所述代理应用程序根据所述接管请求,向所述业务应用程序返回确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息;
接收所述代理应用程序发送的确定接管的消息;
接收所述代理应用程序发送的映射完成消息;其中,所述映射完成消息是所述代理应用程序转发的映射完成消息;
退出运行,以使所述代理应用程序代替所述业务应用程序进行服务请求的处理。
2.根据权利要求1所述的应用程序接管方法,其特征在于,所述向代理应用程序发送接管请求之前,还包括:
向所述代理应用程序注册,以使所述代理应用程序获得所述业务应用程序的注册信息;其中,所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型。
3.根据权利要求1所述的应用程序接管方法,其特征在于,所述向代理应用程序发送接管请求之前,还包括:
判断所述业务应用程序是否处于空闲状态;
所述向代理应用程序发送接管请求,具体包括:
当确定所述业务应用程序处于空闲状态时,向代理应用程序发送接管请求。
4.根据权利要求1所述的应用程序接管方法,其特征在于,所述退出运行之后,还包括:
当所述业务应用程序重新启动后,向所述代理应用程序发送转发消息的请求,以使所述代理应用程序根据所述转发消息的请求,将接管所述业务应用程序期间收到的所有消息请求转发至所述业务应用程序;
接收所述代理应用程序转发的所有消息请求;
根据接收的所有消息请求,处理所有消息请求。
5.根据权利要求4所述的应用程序接管方法,其特征在于,所述所有消息请求为多个,且包括非接管消息请求;
所述根据接收的所有消息请求,处理所有消息请求,具体包括:
根据接收的所有消息请求,判断非接管消息请求是否与所述所有消息请求中除所述非接管消息请求以外的其他消息请求有关;
若是,则按照接收顺序处理所有消息请求;
若否,则先处理非接管消息请求,再按照接收顺序处理剩余消息请求;
其中,非接管消息请求是接收的所有消息请求的最后一个消息请求;所述接收顺序是指所述代理应用程序接收所有消息请求的顺序。
6.一种应用程序接管方法,其特征在于,应用于代理应用程序,所述方法包括:
接收业务应用程序发送的接管请求;
向所述业务应用程序发送确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序发送映射完成消息;
接收所述端口映射模块发送的映射完成消息;
将所述映射完成消息发送至所述业务应用程序,以使所述业务应用程序退出运行;
代替所述业务应用程序进行服务请求的处理。
7.根据权利要求6所述的方法,其特征在于,所述代替所述业务应用程序进行服务请求的处理,具体包括:
根据接收的服务请求和注册信息,进行处理;其中,所述服务请求是所述端口映射模块转发的用户向所述业务应用程序发送的服务请求;所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型;
根据所述返回消息的类型,获得处理结果;
保存所述处理结果以及所述服务请求,以便于所述业务应用程序重新启动后,获取所述处理结果以及所述服务请求。
8.根据权利要求7所述的应用程序接管方法,其特征在于,所述根据接收的服务请求和注册信息,进行处理,具体包括:
根据接收的服务请求和注册信息,确定所述服务请求位于所述可代理服务请求列表中;
根据所述运行代码,对所述服务请求进行处理。
9.根据权利要求8所述的应用程序接管方法,其特征在于,所述根据接收的服务请求和注册信息,进行处理,还包括:
根据接收的服务请求和所述注册信息,确定所述服务请求不位于所述可代理服务请求列表中;
向调度模块发送启动所述业务应用程序的请求,以使所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序并向所述代理应用程序反馈确定启动的消息;其中,所述启用所述业务应用程序的请求包括:所述启动信息;所述启动信息包括:启动所述业务应用程序的资源需求和启动代码;
向用户发送当前系统忙的消息;
接收所述调度模块发送的确定所述业务应用程序启动的消息;
向所述端口映射模块发送取消端口映射请求,以使所述端口映射模块根据所述取消端口映射请求,取消所述代理应用程序对所述业务应用程序的端口映射。
10.根据权利要求9所述的应用程序接管方法,其特征在于,所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序,具体包括:
所述调度模块根据接收的启用所述业务应用程序的请求,获取启动所述业务应用程序的资源需求;
当当前系统资源满足所述资源需求时,所述调度模块运行所述启动信息的所述启动代码,以便于启动所述业务应用程序;
当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于所述调度模块判断当前系统资源是否满足所述资源需求;所述待退出应用程序是在当前系统下正在运行的至少一个所述业务应用程序。
11.根据权利要求10所述的应用程序接管方法,其特征在于,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:
所述调度模块获得所述当前系统资源与所述资源需求的资源差值;
所述调度模块根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述业务应用程序作为所述待退出应用程序;
所述调度模块命令所述待退出应用程序退出运行,以使所述待退出应用程序退出运行。
12.根据权利要求7-11任一项所述的应用程序接管方法,其特征在于,所述保存所述处理结果以及所述服务请求,具体包括:
将所述处理结果以及所述服务请求保存在至少一个存储介质上。
13.一种应用程序接管装置,其特征在于,应用于业务应用程序,包括:
第一发送单元,用于向代理应用程序发送接管请求,以使所述代理应用程序根据所述接管请求,向所述业务应用程序返回确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序返回映射完成消息;
第一接收单元,用于接收所述代理应用程序发送的确定接管的消息;
第二接收单元,用于接收所述代理应用程序发送的映射完成消息;其中,所述映射完成消息是所述代理应用程序转发的映射完成消息;
退出单元,用于退出运行,以使所述代理应用程序代替所述业务应用程序进行服务请求的处理。
14.根据权利要求13所述的应用程序接管装置,其特征在于,还包括:
注册单元,用于向所述代理应用程序注册,以使所述代理应用程序获得所述业务应用程序的注册信息;其中,所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型。
15.根据权利要求13所述的应用程序接管装置,其特征在于,还包括:
第一判断单元,用于判断所述业务应用程序是否处于空闲状态;
所述第一发送单元,具体包括:当确定所述业务应用程序处于空闲状态时,向代理应用程序发送接管请求。
16.根据权利要求13所述的应用程序接管装置,其特征在于,还包括:
第二发送单元,用于当所述业务应用程序重新启动后,向所述代理应用程序发送转发消息的请求,以使所述代理应用程序根据所述转发消息的请求,将接管所述业务应用程序期间收到的所有消息请求转发至所述业务应用程序;
第三接收单元,用于接收所述代理应用程序转发的所有消息请求;
第一处理单元,用于根据接收的所有消息请求,处理所有消息请求。
17.根据权利要求16所述的应用程序接管装置,其特征在于,所述所有消息请求为多个,且包括非接管消息请求;
所述第一处理单元,具体包括:
第一判断子单元,用于根据接收的所有消息请求,判断非接管消息请求是否与所述所有消息请求中除所述非接管消息请求以外的其他消息请求有关;若是,则运行第一处理子单元;若否,则运行第二处理子单元;
所述第一处理子单元,用于按照接收顺序处理所有消息请求;
所述第二处理子单元,用于先处理非接管消息请求,再按照接收顺序处理剩余消息请求;
其中,非接管消息请求是接收的所有消息请求的最后一个消息请求;所述接收顺序是指所述代理应用程序接收所有消息请求的顺序。
18.一种应用程序接管装置,其特征在于,应用于代理应用程序,包括:
第四接收单元,用于接收业务应用程序发送的接管请求;
第三发送单元,用于向所述业务应用程序发送确定接管的消息,并向端口映射模块发送端口变更请求,以便于所述端口映射模块根据所述端口变更请求,将所述业务应用程序的访问端口映射至所述代理应用程序上,并向所述代理应用程序发送映射完成消息;
第五接收单元,用于接收所述端口映射模块发送的映射完成消息;
第四发送单元,用于将所述映射完成消息发送至所述业务应用程序,以使所述业务应用程序退出运行;
第二处理单元,用于代替所述业务应用程序进行服务请求的处理。
19.根据权利要求18所述的应用程序接管装置,其特征在于,所述第二处理单元,具体包括:
第三处理子单元,用于根据接收的服务请求和注册信息,进行处理;其中,所述服务请求是所述端口映射模块转发的用户向所述业务应用程序发送的服务请求;所述注册信息包括所述业务应用程序的访问地址和端口号、可代理服务请求列表、启动信息以及反馈信息的标准格式中的至少一种;所述可代理服务请求列表包括可代理服务请求、运行代码以及返回消息的类型;
第一获得子单元,用于根据所述返回消息的类型,获得处理结果;
保存子单元,用于保存所述处理结果以及所述服务请求,以便于所述业务应用程序重新启动后,获取所述处理结果以及所述服务请求。
20.根据权利要求19所述的应用程序接管装置,其特征在于,所述第三处理子单元,具体包括:
第一确定模块,用于根据接收的服务请求和注册信息,确定所述服务请求位于所述可代理服务请求列表中;
第一处理模块,用于根据所述运行代码,对所述服务请求进行处理。
21.根据权利要求20所述的应用程序接管装置,其特征在于,所述第三处理子单元,还包括:
第二确定模块,用于根据接收的服务请求和注册信息,确定所述服务请求不位于所述可代理服务请求列表中;
第一发送模块,用于向调度模块发送启动所述业务应用程序的请求,以使所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序并向所述代理应用程序反馈确定启动的消息;其中,所述启用所述业务应用程序的请求包括:所述启动信息;所述启动信息包括:启动所述业务应用程序的资源需求和启动代码;
第二发送模块,用于向用户发送当前系统忙的消息;
第一接收模块,用于接收所述调度模块发送的确定所述业务应用程序启动的消息;
第三发送模块,用于向所述端口映射模块发送取消端口映射请求,以使所述端口映射模块根据所述取消端口映射请求,取消所述代理应用程序对所述业务应用程序的端口映射。
22.根据权利要求21所述的应用程序接管装置,其特征在于,所述调度模块根据接收的启用所述业务应用程序的请求,启动所述业务应用程序,具体包括:
所述调度模块根据接收的启用所述业务应用程序的请求,获取启动所述业务应用程序的资源需求;
当当前系统资源满足所述资源需求时,所述调度模块运行所述启动信息的所述启动代码,以便于启动所述业务应用程序;
当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于所述调度模块判断当前系统资源是否满足所述资源需求;所述待退出应用程序是在当前系统下正在运行的至少一个所述业务应用程序。
23.根据权利要求22所述的应用程序接管装置,其特征在于,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:
所述调度模块获得所述当前系统资源与所述资源需求的资源差值;
所述调度模块根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述业务应用程序作为所述待退出应用程序;
所述调度模块命令所述待退出应用程序退出运行,以使所述待退出应用程序退出运行。
24.一种应用程序接管系统,其特征在于,包括:至少一个第一应用程序接管装置、第二应用程序接管装置和端口映射模块;
其中,所述第一应用程序接管装置为权利要求13-17任一项所述的应用程序接管装置;
所述第二应用程序接管装置为权利要求18-23任一项所述的应用程序接管装置;
所述端口映射模块,用于根据所述端口变更请求,将所述第一应用程序接管装置的访问端口映射至所述第二应用程序接管装置上,并向所述第二应用程序接管装置发送映射完成消息;接收用户向所述第一应用程序接管装置发送的服务请求,并向所述第二应用程序接管装置发送所述服务请求;根据所述第二应用程序接管装置发送的取消对所述第一应用程序接管装置的端口映射请求,取消所述第二应用程序接管装置对所述第一应用程序接管装置的端口映射;根据用户向所述第一应用程序接管装置发送的服务请求,将所述服务请求转发给所述第二应用程序接管装置。
25.根据权利要求24所述的应用程序接管系统,其特征在于,还包括:调度模块;
所述调度模块,用于根据接收的启用所述第一应用程序接管装置的请求,启动所述第一应用程序接管装置并向所述第二应用程序接管装置反馈确定启动的消息。
26.根据权利要求25所述的应用程序接管系统,其特征在于,所述调度模块用于根据接收的启用所述第一应用程序接管装置的请求,启动所述第一应用程序接管装置,具体包括:
根据接收的启用所述第一应用程序接管装置的请求,获取启动所述第一应用程序接管装置的资源需求;
当当前系统资源满足所述资源需求时,所述调度模块运行所述启动信息的所述启动代码,以便于启动所述第一应用程序接管装置;
当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,以便于判断当前系统资源是否满足所述资源需求。
27.根据权利要求26所述的应用程序接管系统,其特征在于,所述当当前系统资源不满足所述资源需求时,所述调度模块命令待退出应用程序退出运行,具体包括:
获得所述当前系统资源与所述资源需求的资源差值;
根据所述资源差值,将处于闲置状态且资源占有量大于所述资源差值的所述第一应用程序接管装置作为所述待退出应用程序;
命令所述待退出应用程序退出运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811334290.8A CN109445925B (zh) | 2018-11-09 | 2018-11-09 | 一种应用程序接管方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811334290.8A CN109445925B (zh) | 2018-11-09 | 2018-11-09 | 一种应用程序接管方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109445925A CN109445925A (zh) | 2019-03-08 |
CN109445925B true CN109445925B (zh) | 2022-02-18 |
Family
ID=65552467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811334290.8A Active CN109445925B (zh) | 2018-11-09 | 2018-11-09 | 一种应用程序接管方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109445925B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778998A (zh) * | 2021-09-28 | 2021-12-10 | 北京安华金和科技有限公司 | 一种数据库代理故障预防处理方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945533A (zh) * | 2005-10-08 | 2007-04-11 | 腾讯科技(深圳)有限公司 | 一种启动应用程序中子模块的方法及装置 |
CN102916995A (zh) * | 2011-08-05 | 2013-02-06 | 南京中兴新软件有限责任公司 | 应用托管方法及系统 |
CN103201724A (zh) * | 2010-07-30 | 2013-07-10 | 赛门铁克公司 | 在高可用性虚拟机环境中提供高可用性应用程序 |
CN103607296A (zh) * | 2013-11-01 | 2014-02-26 | 杭州华三通信技术有限公司 | 一种虚拟机故障处理方法和设备 |
CN103843418A (zh) * | 2013-10-29 | 2014-06-04 | 华为终端有限公司 | 一种业务代理的方法、调制解调器及终端 |
WO2015167592A1 (en) * | 2014-04-30 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Using a single deployer agent to deploy a plurality of programs on a server |
CN105072185A (zh) * | 2015-08-12 | 2015-11-18 | 上海斐讯数据通信技术有限公司 | 一种tr069远程监控方法、系统和通讯设备 |
WO2016114762A1 (en) * | 2015-01-13 | 2016-07-21 | Nokia Solutions And Networks Oy | Isolated e-utran operation |
CN105897869A (zh) * | 2016-03-29 | 2016-08-24 | 杭州数梦工场科技有限公司 | 一种app休眠的管理方法和装置 |
CN106855823A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 设备间任务接管的方法及装置 |
CN107707398A (zh) * | 2017-09-29 | 2018-02-16 | 郑州云海信息技术有限公司 | 云计算系统中管理物理主机的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1715655A1 (en) * | 2005-04-18 | 2006-10-25 | Research In Motion Limited | System and method for data and message optimisation in wireless communications |
CN101867586B (zh) * | 2010-06-29 | 2014-08-13 | 中兴通讯股份有限公司 | 实现会议电视系统跨网段信令互通的方法及系统 |
US9721092B2 (en) * | 2014-03-27 | 2017-08-01 | International Busines Machines Corporation | Monitoring an application in a process virtual machine |
CN104731635B (zh) * | 2014-12-17 | 2018-10-19 | 华为技术有限公司 | 一种虚拟机访问控制方法,及虚拟机访问控制系统 |
US10122815B1 (en) * | 2016-08-05 | 2018-11-06 | Sprint Communications Company L.P. | Dynamic class mapping in messaging middleware |
-
2018
- 2018-11-09 CN CN201811334290.8A patent/CN109445925B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945533A (zh) * | 2005-10-08 | 2007-04-11 | 腾讯科技(深圳)有限公司 | 一种启动应用程序中子模块的方法及装置 |
CN103201724A (zh) * | 2010-07-30 | 2013-07-10 | 赛门铁克公司 | 在高可用性虚拟机环境中提供高可用性应用程序 |
CN102916995A (zh) * | 2011-08-05 | 2013-02-06 | 南京中兴新软件有限责任公司 | 应用托管方法及系统 |
CN103843418A (zh) * | 2013-10-29 | 2014-06-04 | 华为终端有限公司 | 一种业务代理的方法、调制解调器及终端 |
CN103607296A (zh) * | 2013-11-01 | 2014-02-26 | 杭州华三通信技术有限公司 | 一种虚拟机故障处理方法和设备 |
WO2015167592A1 (en) * | 2014-04-30 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Using a single deployer agent to deploy a plurality of programs on a server |
WO2016114762A1 (en) * | 2015-01-13 | 2016-07-21 | Nokia Solutions And Networks Oy | Isolated e-utran operation |
CN105072185A (zh) * | 2015-08-12 | 2015-11-18 | 上海斐讯数据通信技术有限公司 | 一种tr069远程监控方法、系统和通讯设备 |
CN106855823A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 设备间任务接管的方法及装置 |
CN105897869A (zh) * | 2016-03-29 | 2016-08-24 | 杭州数梦工场科技有限公司 | 一种app休眠的管理方法和装置 |
CN107707398A (zh) * | 2017-09-29 | 2018-02-16 | 郑州云海信息技术有限公司 | 云计算系统中管理物理主机的方法和装置 |
Non-Patent Citations (3)
Title |
---|
Exploration of application migration to cloud environment;Ahmed Kandil 等;《2016 6th International Conference - Cloud System and Big Data Engineering (Confluence)》;20161231;第109-114页 * |
云代理的移动消息推送服务;承骁 等;《小型微型计算机系统》;20160831;第37卷(第8期);第1661-1666页 * |
虚拟化环境中计算效能优化研究;陈华才;《万方数据库-学位论文库》;20120604;第1-116页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109445925A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9864595B2 (en) | Software updating method, system, and device | |
CN109150572B (zh) | 实现告警关联的方法、装置以及计算机可读存储介质 | |
CN101572710B (zh) | 一种进程间通信方法和系统 | |
CN101217678B (zh) | 一种系统升级方法、系统及装置 | |
US9600318B2 (en) | Method and system for closing application programs of an application system | |
CN106919452B (zh) | 多核异构系统及其硬件资源的管理方法 | |
CN109062601A (zh) | Mes系统客户端程序更新方法、装置、设备及介质 | |
CN111245634B (zh) | 一种虚拟化管理方法及装置 | |
CN111597061A (zh) | 一种客户端或服务端进行远程过程调用方法及装置 | |
CN114138500B (zh) | 资源调度系统及方法 | |
CN109858772A (zh) | 一种工单的处理方法、装置和系统 | |
CN109445925B (zh) | 一种应用程序接管方法、装置及系统 | |
CN106572137A (zh) | 一种分布式服务资源管理方法和装置 | |
CN113992630B (zh) | 一种网络资源冲突处理方法、装置、设备及存储介质 | |
CN109787789B (zh) | 软件升级的兼容性管理方法、装置及设备、存储介质 | |
CN111835809B (zh) | 工单消息分配方法、装置、服务器及存储介质 | |
CN114143905B (zh) | 会话建立方法、通信系统、电子设备和存储介质 | |
CN114338584B (zh) | 消息撤回方法和消息传输系统 | |
CN116743762A (zh) | 服务注册集群流量切换方法、流量切换装置及存储介质 | |
CN101247401B (zh) | 基于消息驱动的状态机处理方法和装置 | |
CN110266747B (zh) | 业务请求的机房转接方法和装置 | |
CN114143730A (zh) | 信令处理方法、通信系统、电子设备和存储介质 | |
CN113852669A (zh) | 一种适应多种网络环境的高效的容器集群部署方法 | |
JP6003417B2 (ja) | データ変換装置及びデータ変換プログラム | |
CN113515458A (zh) | 一种基于Envoy插件来降低测试环境资源消耗的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |