异常处理方法、装置和客户端的制作方法

文档序号:7773597阅读:100来源:国知局
专利名称:异常处理方法、装置和客户端的制作方法
技术领域
本发明涉及在线应用领域,特别涉及一种异常处理方法、装置和客户端。
背景技术
在线应用的服务器,一般可以称为在线应用平台,在其上可以部署各种各样第三方开发的应用,客户端可以远程连接到在线应用平台上体验这些应用。在线应用平台与客户端的一般交互过程为:客户端将用户操作产生的输入事件上传到服务器端,服务器收到事件后进行计算和处理,并将处理后的画面响应结果发送到客户端,客户端收到画面后在本地显示。在这种在线应用场景中,所有应用的运行和处理都在服务器进行,而客户端只负责将用户的操作输入上传到服务器端和接收画面进行解码显示;但从用户侧来看,就像在操作的本地的应用一样。现有的远程桌面系统支持异常后自动重连,以微软windows操作系统提供的远程桌面mstsc为例。自动重连指在发生网络异常时,客户端可重新连接到上次连接的同一会话,且不用重新发送验证信息。当客户端与服务器端成功建立连接后,服务器端会发送给客户端一个自动重连cookies,此cookie绑定于当前会话并存储在客户端。当发生连接异常时,客户端将cookies加密后发送给服务器端,服务器端对此cookies进行验证,如果验证通过,说明当前连接的客户端与断线是连接的为同一客户端,则服务器会恢复同一会话,使得客户端继续上次的会话继续操作远程桌面。在对现有技术进行分析后,发明人发现现有技术至少具有如下缺点:对于在线应用系统,由于虚拟机是可以分配给多个用户同时使用的,当发生了异常断开,如果虚拟机保持应用继续运行以等待用户连接,不释放资源,也不对应用的运行进行任何保存,不仅占用了虚拟机资源,降低了在线应用系统的容量和效率,也使得客户端在重新连接时有可能无法继续异常发生时的操作。

发明内容
本发明实施例提供了一种异常处理方法、装置和客户端。所述技术方案如下:一种异常处理方法,包括:虚拟管理服务器接收与第一客户端交互的虚拟机发送的异常通知,所述异常通知至少携带用户标识和应用标识;所述虚拟管理服务器根据保存的与所述用户标识及应用标识对应的异常处理方式,保存所述虚拟机数据或与所述应用标识对应的应用的应用数据,并释放所述虚拟机资源。所述虚拟管理服务器接收与虚拟机发送的异常通知,之前,所述方法包括:所述虚拟管理服务器接收所述第一客户端发送的第一连接请求,所述第一连接请求至少携带用户标识和应用标识;所述虚拟管理服务器根据所述第一连接请求,确定并保存与所述用户标识及应用标识对应的异常处理方式。所述虚拟管理服务器根据所述第一连接请求,确定并保存与所述用户标识及应用标识对应的异常处理方式,具体包括:所述第一连接请求携带应用标识和用户标识,根据所述应用标识获取所述应用能够支持的异常处理方式列表;将所述异常处理方式列表发送给所述第一客户端,使得所述第一客户端从所述异常处理列表中选择异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或,所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,所述虚拟管理服务器根据所述应用标识获取所述应用能够支持的异常处理方式列表,并判断所述异常处理方式列表是否包含所述指定的异常处理方式;如果是,将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;否则,所述虚拟管理服务器将所述异常处理方式列表发送给所述第一客户端,接收所述第一客户端从所述异常处理列表中选择的异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或,所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,所述虚拟管理服务器将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式。所述虚拟管理服务器根据保存的与所述用户标识及应用标识对应的异常处理方式,保存所述虚拟机数据或与所述应用标识对应的的应用的应用数据,并释放所述虚拟机资源,具体包括:当与所述用户标识及应用标识对应的异常处理方式为应用保存方式时,所述虚拟管理服务器依据所述应用的预设逻辑确定所述应用需要保存运行数据,并根据所述应用的配置文件,从所述虚拟机获取所述配置文件指示的用户个人数据,将所述用户个人数据、应用标识和用户标识存储至数据存储服务器,关闭所述应用,释放虚拟机资源,并更新虚拟机状态;当与所述用户标识及应用标识对应的异常处理方式为保存虚拟机状态方式时,所述虚拟管理服务器根据所述虚拟机当前的状态生成虚拟机快照数据,并将所述生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识存储至数据存储服务器,释放所述虚拟机资源,并更新所述虚拟机的状态。所述虚拟管理服务器根据所述用户标识对应的异常处理方式,保存所述虚拟机数据或所述应用标识指示的应用的应用数据,并释放所述虚拟机资源之后,所述方法还包括:所述虚拟管理服务器接收第二客户端发送的第二连接请求;所述第二连接请求携带所述用户标识和应用标识;所述虚拟管理服务器根据所述第二连接请求,确定所述第二连接请求指示的应用需要进行异常恢复;所述虚拟管理服务器向第二客户端发送异常恢复询问消息;所述虚拟管理服务器接收到所述第二客户端的异常恢复请求,根据所述第二连接请求携带的用户标识和应用标识选择目的虚拟机;
所述虚拟管理服务器在所述目的虚拟机上对异常中断的应用进行恢复。所述确定所述第二连接请求指示的应用需要进行异常恢复,具体包括:虚拟管理服务器确定数据存储服务器中保存有与所述应用标识和用户标识对应的待恢复数据。所述虚拟管理服务器接收到所述第二客户端的异常恢复请求,根据所述第二连接请求携带的用户标识和应用标识选择目的虚拟机,具体包括:所述虚拟管理服务器从数据存储服务器上获取与所述应用标识及用户标识对应的待恢复数据;当所述待恢复数据为虚拟机数据时,所述虚拟管理服务器根据所述虚拟机数据选择目的虚拟机;当所述待恢复数据为应用数据时,所述虚拟管理服务器根据所述应用标识选择目的虚拟机。当所述待恢复数据为虚拟机数据时,所述待恢复数据包括:虚拟机快照数据、虚拟机信息、虚拟机标识,所述虚拟管理服务器根据所述虚拟机数据选择目的虚拟机,具体包括:所述虚拟管理服务器判断所述虚拟机标识对应的虚拟机是否空闲,如果是,将所述虚拟机标识对应的虚拟机作为目的虚拟机;如果否,选择与所述虚拟机信息匹配的空闲虚拟机作为目的虚拟机。所述虚拟管理服务器根据所述应用标识选择目的虚拟机,具体包括:当所述待恢复数据为应用数据时,根据所述应用标识从空闲虚拟机中选择第一虚拟机作为目的虚拟机,所述第一虚拟机为支持所述应用标识指示的应用运行的虚拟机。所述虚拟管理服务器在所述目的虚拟机上对异常中断的应用进行恢复,具体包括:当所述待恢复数据为虚拟机数据时,根据所述虚拟机数据中的虚拟机快照数据启动所述目的虚拟机直接对异常中断的应用进行恢复;当所述待恢复数据为应用数据时,启动虚拟机,将所述应用数据复制到所述目的虚拟机上,并在所述目的虚拟机上根据所述应用数据运行所述异常中断的应用。所述虚拟管理服务器在所述目的虚拟机上对异常中断的应用进行恢复之后,该方法还包括:所述虚拟管理服务器将所述虚拟机标识发送给客户端,使得所述客户端根据所述虚拟机标识与虚拟机建立通信连接并与所述虚拟机进行数据交互。一种异常处理装置,包括:接收模块,用于接收与第一客户端交互的虚拟机发送的异常通知,所述异常通知至少携带用户标识和应用标识;异常处理模块,用于根据保存的与所述用户标识及应用标识对应的异常处理方式,保存所述虚拟机数据或与所述应用标识对应的应用的应用数据,并释放所述虚拟机资源。所述接收模块,还用于接收所述第一客户端发送的第一连接请求,所述第一连接请求至少携带用户标识和应用标识;
所述装置还包括:确定模块,用于根据所述第一连接请求,确定并保存与所述用户标识及应用标识对应的异常处理方式。所述确定模块包括:第一确定单元,用于所述第一连接请求携带应用标识和用户标识,根据所述应用标识获取所述应用能够支持的异常处理方式列表;将所述异常处理方式列表发送给所述第一客户端,使得所述第一客户端从所述异常处理列表中选择异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或,第二确定单元,用于所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,根据所述应用标识获取所述应用能够支持的异常处理方式列表,并判断所述异常处理方式列表是否包含所述指定的异常处理方式;如果是,将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;否则,将所述异常处理方式列表发送给所述第一客户端,接收所述第一客户端从所述异常处理列表中选择的异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或,所述第二确定单元,还用于所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,所述虚拟管理服务器将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式。所述异常处理模块包括:第一异常处理单元,用于当与所述用户标识及应用标识对应的异常处理方式为应用保存方式时,依据所述应用的预设逻辑确定所述应用需要保存运行数据,并根据所述应用的配置文件,从所述虚拟机获取所述配置文件指示的用户个人数据,将所述用户个人数据、应用标识和用户标识存储至数据存储服务器,关闭所述应用,释放虚拟机资源,并更新虚拟机状态;第二异常处理单元,用于当与所述用户标识及应用标识对应的异常处理方式为保存虚拟机状态方式时,根据所述虚拟机当前的状态生成虚拟机快照数据,并将所述生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识存储至数据存储服务器,释放所述虚拟机资源,并更新所述虚拟机的状态。所述接收模块,还用于接收第二客户端发送的第二连接请求;所述第二连接请求携带所述用户标识和应用标识;所述装置还包括:异常恢复确定模块,用于根据所述第二连接请求,确定所述第二连接请求指示的应用需要进行异常恢复;发送模块,用于向第二客户端发送异常恢复询问消息;虚拟机选择模块,用于当接收到所述第二客户端的异常恢复请求,根据所述第二连接请求携带的用户标识和应用标识选择目的虚拟机;恢复模块,用于所述虚拟管理服务器在所述目的虚拟机上对异常中断的应用进行恢复。
异常恢复确定模块具体用于确定数据存储服务器中保存有与所述应用标识和用户标识对应的待恢复数据。虚拟机选择模块包括:获取单元,用于从数据存储服务器上获取与所述应用标识及用户标识对应的待恢复数据;选择单元,用于当所述待恢复数据为虚拟机数据时,根据所述虚拟机数据选择目的虚拟机;所述选择单元,还用于当所述待恢复数据为应用数据时,根据所述应用标识选择目的虚拟机。当所述待恢复数据为虚拟机数据时,所述待恢复数据包括:虚拟机快照数据、虚拟机信息、虚拟机标识,所述选择单元,具体用于判断所述虚拟机标识对应的虚拟机是否空闲,所述虚拟机标识对应的虚拟机空闲,将所述虚拟机标识对应的虚拟机作为目的虚拟机;所述选择单元,还用于所述虚拟机标识对应的虚拟机不空闲,选择与所述虚拟机信息匹配的空闲虚拟机作为目的虚拟机。所述选择单元还用于当所述待恢复数据为应用数据时,根据所述应用标识从空闲虚拟机中选择第一虚拟机作为目的虚拟机,所述第一虚拟机为支持所述应用标识指示的应用运行的虚拟机。所述恢复模块包括:第一恢复单元,用于当所述待恢复数据为虚拟机数据时,根据所述虚拟机数据中的虚拟机快照数据启动所述目的虚拟机直接对异常中断的应用进行恢复;第二恢复单元,用于当所述待恢复数据为应用数据时,启动虚拟机,将所述应用数据复制到所述目的虚拟机上,并在所述目的虚拟机上根据所述应用数据运行所述异常中断的应用。所述发送模块还用于将所述虚拟机标识发送给客户端,使得所述客户端根据所述虚拟机标识与虚拟机建立通信连接并与所述虚拟机进行数据交互。—种异常恢复方法,包括:客户端向虚拟管理服务器发送连接请求,所述连接请求至少携带用户标识和应用标识;所述客户端接收虚拟管理服务器发送的与应用标识对应的异常处理方式列表;所述客户端向所述虚拟管理服务器发送所述客户端选择的异常处理方式,以便于所述虚拟管理服务器将所述客户端选择的异常处理方式确定并保存为与所述应用标识和用户标识对应的异常处理方式。所述连接请求携带用户标识、应用标识和指定的异常处理方式;所述客户端接收虚拟管理服务器发送的与应用标识对应的异常处理方式列表具体包括:当所述虚拟管理服务器确定所述异常处理方式列表中不包含所述指定的异常处理方式时,客户端接收所述虚拟管理服务器发送的所述异常处理方式列表。所述方法还包括:
所述客户端接收到所述虚拟管理服务器发送的异常恢复询问消息,向所述虚拟管理服务器发送异常恢复请求或异常恢复拒绝消息,使得所述虚拟管理服务器能够根据所述异常恢复请求或异常恢复拒绝消息进行相应的操作。一种客户端,包括:发送模块,用于向虚拟管理服务器发送连接请求,所述连接请求至少携带用户标识和应用标识;接收模块,用于接收虚拟管理服务器发送的与应用标识对应的异常处理方式列表;所述发送模块,还用于向所述虚拟管理服务器发送所述客户端选择的异常处理方式,以便于所述虚拟管理服务器将所述客户端选择的异常处理方式确定为与所述应用标识和用户标识对应的异常处理方式。所述连接请求携带用户标识、应用标识和指定的异常处理方式;所述接收模块具体用于当所述虚拟管理服务器确定所述异常处理方式列表中不包含所述指定的异常处理方式时,接收所述虚拟管理服务器发送的所述异常处理方式列表。所述发送模块还用于当所述接收模块接收到所述虚拟管理服务器发送的异常恢复询问消息,向所述虚拟管理服务器发送异常恢复请求或异常恢复拒绝消息,使得所述虚拟管理服务器能够根据所述异常恢复请求或异常恢复拒绝消息进行相应的操作。本发明实施例提供的技术方案的有益效果是:通过当客户端和与其交互的虚拟机发生异常中断时,虚拟管理服务器接收到异常中断的异常通知,并根据客户端对应的异常处理方式保存应用数据或虚拟机数据,并释放虚拟机资源,从而使得不同应用、不同用户可以根据其需求定制不同的异常处理方法,也使得客户端不但可保存异常发生时的时刻或最接近异常发生时的时刻用户的使用状态,而且提高了在线应用系统的容量和效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的在线应用系统的架构图;图2是本发明实施例提供的一种异常处理方法的流程图;图3是本发明实施例提供的一种异常处理方法的流程图;图4是本发明实施例提供的一种异常处理方法的流程图;图5是本发明实施例提供的一种异常处理装置的结构示意图;图6是本发明实施例提供的一种异常处理装置的结构示意图;图7是本发明实施例提供的一种异常处理装置的结构示意图;图8是本发明实施例提供的一种异常处理装置的结构示意图;图9是本发明实施例提供的一种异常处理装置的结构示意图10是本发明实施例提供的一种异常处理装置的结构示意图;图11是本发明实施例提供的一种异常处理装置的结构示意图;图12是本发明实施例提供的一种异常处理方法的流程图;图13是本发明实施例提供的一种客户端的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。为了便于理解,在描述本发明提供的异常处理方法之前,先对本发明涉及到的基础知识进行描述:应用根据其预设逻辑可以分为需要保存运行数据的应用和不需要保存运行数据的应用。对于不需要保存运行数据的应用,直接关闭应用后释放虚拟机资源。用户下次连接时,则从头开始运行应用;而对于需要保存运行数据的应用:先关闭应用程序,再将用户个人运行数据保存至运行数据存储服务器后,释放虚拟机资源。由于在线应用平台中虽然也提供各种应用,但主要针对的还是游戏应用,所以在以下的介绍中将直接以游戏作为应用的实例进行论述。根据游戏运行数据是否保存可以对游戏应用作如下分类:无需保存运行数据的应用和需保存运行数据的应用。其中,无需保存运行数据的应用可以各种flash游戏为代表,用户每次都从最初开始玩,无运行数据需要保存;例如“挖金子”,“打砖块”等游戏。图1是本发明实施例提供的在线应用系统的架构图。参见图1,该在线应用系统包括:虚拟管理服务器、虚拟机和数据存储服务器。其中,虚拟管理服务器用于对虚拟机进行管理,包括虚拟机的建立,删除,启动等。虚拟机用于根据不同的业务需求,分配不同的系统资源,安装不同的操作系统和应用软件,并为远端的客户端提供服务。图2是本发明实施例提供的一种异常处理方法的流程图。该方法基于图1所示的架构,其执行主体为虚拟管理服务器,参见图2,该实施例具体包括:201、虚拟管理服务器接收与第一客户端交互的虚拟机发送的异常通知,所述异常通知至少携带用户标识和应用标识;在本实施例中,第一客户端即为在线应用的客户端。在本实施例中,当第一客户端与虚拟机之间发生连接断开或连接异常等导致与客户端断开连接的故障,虚拟机向虚拟管理服务器发送异常通知。该异常通知携带使用该第一客户端的用户的用户标识和发生异常的应用的应用标识。202、所述虚拟管理服务器根据保存的与所述用户标识及用应标识对应的异常处理方式,保存所述虚拟机数据或与所述应用标识对应的应用的应用数据,并释放所述虚拟机资源。需要说明的是,对于与用户标识及应用标识对应的异常处理方式的协商可以在客户端第一次连接虚拟管理服务器并使用与应用标识对应的应用时进行,还可以在每次客户端和虚拟管理服务器进行连接时进行。当虚拟管理服务器接收到该异常通知时,根据用户标识及应用标识查询与该用户标识及应用标识对应的异常处理方式:当异常处理方式为应用保存方式时,所述虚拟管理服务器依据应用的预设逻辑判断所述应用是否需要进行数据保存;当所述应用需要进行数据保存时,所述虚拟管理服务器根据所述应用的配置文件,从所述虚拟机获取所述配置文件指示的用户个人数据,将所述用户个人数据、应用标识和用户标识存储至数据存储服务器,关闭所述应用,释放虚拟机资源,并更新虚拟机状态,以便后续由虚拟管理服务器进行分配。当所述用户标识对应的异常处理方式为保存虚拟机状态方式时,所述虚拟管理服务器将自动根据所述虚拟机当前的状态生成虚拟机快照数据,并将所述生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识存储至数据存储服务器,释放所述虚拟机资源,并更新所述虚拟机的状态。由于在线应用平台的服务器使用了虚拟机技术,因此可以使用虚拟机中的快照技术对虚拟机的状态实时进行保存,快照是对虚拟机在某个时间点的“拷贝”,这个“拷贝”并不是对虚拟机的虚拟磁盘文件的复制,而是保持磁盘文件和系统内存在该时间点的状态,以便虚拟机在任何时刻能够恢复到该时间点。通过当客户端和与其交互的虚拟机发生异常而中断连接时,虚拟管理服务器接收到异常中断的异常通知,并根据与应用标识和用户标识对应的异常处理方式保存应用数据或虚拟机数据,并释放虚拟机资源,从而使得不同应用、不同用户可以根据其需求定制不同的异常处理方法,也使得客户端不但可保存异常发生时的时刻或最接近异常发生时的时刻用户的使用状态,而且提高了在线应用系统的容量和效率。图3是本发明实施例提供的一种异常处理方法的流程图。该方法基于图1所示的架构,该实施例中的交互双方为虚拟管理服务器和第一客户端,参见图3,该实施例具体包括:301、第一客户端向虚拟管理服务器发送第一连接请求,所述第一连接请求携带应用标识和使用该第一客户端的用户的用户标识;其中,所述第一连接请求至少携带应用标识和用户标识;该应用标识用于表示该第一客户端准备远程使用的应用,用户标识用于标识使用该第一客户端的用户。302、第一客户端与虚拟管理服务器进行连接;本领域技术人员可以获知,该步骤302包括:第一客户端与虚拟管理服务器建立连接、进行安全认证和进行能力协商的过程,为现有技术,不再赘述。303、虚拟管理服务器根据该连接请求携带的应用标识获取该应用能够支持的异常处理方式列表,将异常处理方式列表发送给所述第一客户端;在本实施例中,该应用能够支持的异常处理方式列表预先保存在应用的配置文件中,虚拟管理服务器可根据该应用标识读取与应用标识对应的应用的配置文件,从而获取应用能够支持的异常处理方式列表,该列表中可以包含多种异常处理方式,如应用保存方式、保存虚拟机状态方式、不保存应用方式等。其中不保存应用方式,即是指不对应用进行保存。当然,在执行本步骤之前,虚拟管理服务器还可以确认是否保存有与第一连接请求中携带的用户标识及应用标识对应的异常处理方式,如果有,则不执行后续的协商确定异常处理方式的步骤。而只有在没有保存第一连接请求中携带的用户标识及应用标识对应的异常处理方式时,执行后续的协商确定异常处理方式的步骤。304、第一客户端从异常处理方式列表中选择异常处理方式;该异常处理方式可以进一步根据客户端的能力或设置进行选择,根据客户端能力的不同和设置不同,不同的客户端从异常处理方式列表中选择的异常处理方式可有所不同。 在本实施例中,异常处理方式可以为应用保存方式或虚拟机状态保存方式。其中,应用保存方式是指先关闭应用程序,再将用户个人数据、应用标识和用户标识保存至数据存储服务器后,释放虚拟机资源。另一方面,虚拟机状态保存方式是指生成虚拟机的快照数据,并将所述生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识存储至数据存储服务器,释放所述虚拟机资源,以便在用户下次重新连接时,根据快照数据,恢复到用户断线时的时间点。例如,虚拟机A在运行应用过程中,生成虚拟机快照数据,则在此后的任何时刻,都可以根据快照文件重新启动虚拟机。如果虚拟机再次运行此应用,且应用的运行时刻可以就是生成虚拟机快照数据的时刻。305、将第一客户端选择的异常处理方式确定并保存为与用户标识及应用标识对应的异常处理方式;步骤303-305是第一客户端与虚拟管理服务器进行异常处理方式协商的过程。需要说明的是,该交互确定异常处理方式的过程可以确定一个或多个异常处理方式,在确定多个异常处理方式的同时,也确定该多个异常处理方式的优先级次序。例如,将应用保存方式的优先级设为最高,保存虚拟机状态方式的优先级次之,则当发生异常时,第一客户端和虚拟管理服务器优先应用应用保存方式保存应用的运行状态。在另一方案中,当客户端有指定的异常处理方式时,客户端向虚拟管理服务器发送的连接请求中携带应用标识、用户标识和指定的异常处理方式。该指定的异常处理方式可以为客户端本次设置的异常处理方式或该客户端默认的异常处理方式,则步骤303具体为:所述虚拟管理服务器接收所述第一连接请求,而步骤304-305可以由下述内容替代:所述虚拟管理服务器根据所述应用标识获取所述应用能够支持的异常处理方式列表,并判断所述异常处理方式列表是否包含所述指定的异常处理方式;如果是,将所述指定的异常处理方式确定并保存为针对该次连接时所述用户标识对应的异常处理方式;如果否,所述虚拟管理服务器将所述异常处理方式列表发送给所述第一客户端,接收所述第一客户端从所述异常处理列表中选择异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为所述用户标识对应的异常处理方式。在该方案中,执行了对指定的异常处理方式进行判断的过程,而在一更简化的方案中,当第一连接请求携带应用标识、用户标识和指定的异常处理方式时,步骤303具体为:虚拟管理服务器接收第一连接请求,而步骤304-305可以由下述内容替代:虚拟管理服务器将指定的异常处理方式确定并保存为与用户标识及应用标识对应的异常处理方式。在该简化的方案中,将指定的异常处理方式作为该次连接时该用户标识对应的异常处理方式,并在后续发生异常时,应用该指定的异常处理方式进行异常处理。306、虚拟管理服务器根据第一连接请求携带的应用标识及用户标识,确定该第一连接请求指示的应用不需要进行异常恢复;所述虚拟管理服务器确定数据存储服务器中未保存所述应用标识和用户标识对应的待恢复数据,则确定所述第一连接请求指示的应用不需要进行异常恢复。本实施例仅以该第一连接请求指示应用不需要进行异常恢复为例进行说明。
当然,虚拟管理服务器在执行步骤306时,还可以不用先执行步骤303到305,而直接确认是否保存有与第一连接请求中携带的用户标识及应用标识对应的异常处理方式以及是否需要进行异常恢复。307、虚拟管理服务器选择空闲虚拟机,使得第一客户端在该选择的虚拟机上运行该应用;在本实施例中,根据应用标识从空闲虚拟机中选择能够支持该应用标识对应的应用的虚拟机,使得第一客户端在该选择的虚拟机上运行该应用。具体地,虚拟管理服务器根据应用标识从空闲虚拟机中选择能够支持该应用的空闲虚拟机。更新相应的虚拟机的状态,将应用标识发送给虚拟机,让虚拟机启动应用标识对应的应用,并将虚拟机地址发送给第一客户端,使得该第一客户端根据虚拟管理服务器发送来的虚拟机地址,与虚拟机建立通信信道,虚拟机向第一客户端发送音视频数据以展示应用的运行,第一客户端上传控制指令操作应用的运行。该建立连接和运行过程为现有技术,本发明不再赘述。308、当虚拟管理服务器接收到与第一该客户端交互的虚拟机发送的异常通知时,根据异常通知查询该用户标识及应用标识对应的异常处理方式;由于虚拟管理服务器在确定与用户标识及应用标识对应的异常处理方式后,将该用户标识、应用标识及异常处理方式对应保存。因此,本步骤中,在出现异常时,虚拟管理服务器能够根据出现异常的用户标识及应用标识查询到与用户标识及应用标识对应的的异常处理方式。309、当根据异常通知携带的用户标识及应用标识获知与该用户标识及应用标识对应的异常处理方式为应用保存方式时,所述虚拟管理服务器依据应用的预设逻辑判断所述应用是否需要保存运行数据,如果是,执行步骤310;如果否,结束。本实施例仅以该应用需要保存运行数据为例进行说明。虚拟管理服务器通过读取应用的配置文件,获知应用的预设逻辑,根据该应用的预设逻辑可以获知该发生异常中断的应用是否为需要保存运行数据的应用。310、所述虚拟管理服务器从所述虚拟机获取所述配置文件指示的用户个人数据,将所述用户个人数据、应用标识和用户标识存储至数据存储服务器;在本实施例中,虚拟管理服务器通过读取应用的配置文件,可以获知该应用中用户个人数据的保存路径和文件名称,并根据获知的保存路径和文件名称从虚拟机中获取该用户个人数据,并将用户个人数据、应用标识和用户标识存储至数据存储服务器。311、虚拟管理服务器关闭所述应用,释放虚拟机资源,并更新虚拟机状态,结束;步骤309-步骤311的过程为虚拟管理服务器根据应用保存方式,保存虚拟机上应用的运行数据,并释放所述虚拟机资源的过程。312、当根据异常通知携带的用户标识及应用标识获知与该用户标识及应用标识对应的异常处理方式为保存虚拟机状态方式时,所述虚拟管理服务器根据所述虚拟机当前的状态生成虚拟机快照数据,并将所述生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识存储至数据存储服务器;
在本实施例中,虚拟管理服务器将生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识存储至数据存储服务器,并将在数据存储服务器上的存储路径保存在用户信息表中,该用户信息表记录用户的个人相关信息。其中,虚拟机信息包括虚拟机的相关性能,如内存大小、CPU信息和硬盘信息等。313、释放所述虚拟机资源,并更新所述虚拟机的状态。步骤312-步骤313的过程为虚拟管理服务器根据保存虚拟机状态方式,保存虚拟机快照数据,并释放所述虚拟机资源的过程。本实施例提供的方法,通过当客户端和与其交互的虚拟机发生异常中断时,虚拟管理服务器接收到异常中断的异常通知,并根据客户端对应的异常处理方式保存应用数据或虚拟机数据,并释放虚拟机资源,从而使得不同应用、不同用户可以根据其需求定制不同的异常处理方法,也使得客户端不但可保存异常发生时的时刻或最接近异常发生时的时刻用户的使用状态,不仅避免了长时间占据虚拟机资源,而且提高了在线应用系统的容量和效率。图4是本发明实施例提供的一种异常处理方法的流程图。该实施例是在图3所示实施例的基础上进行的,在图3所示实施例中,根据第一连接请求,在虚拟机上运行应用,当该应用发生异常,虚拟管理服务器根据协商确定的异常处理方式,对该虚拟机数据或应用数据进行了保存,之后包括:401、所述虚拟管理服务器接收第二客户端发送的第二连接请求;所述第二连接请求携带所述用户标识和应用标识;需要说明的是,该第二客户端可以是该应用发生异常时所在的客户端,即第一客户端,也可以是另一客户端,用户本次可以不使用第一客户端进行该连接,而是从该第二客户端进行连接。402、所述虚拟管理服务器根据所述第二连接请求,确定所述第二连接请求指示的应用需要进行异常恢复;所述虚拟管理服务器确定数据存储服务器中保存有所述应用标识和用户标识对应的待恢复数据,则确定所述第二连接请求指示的应用需要进行异常恢复。具体地,虚拟管理服务器根据第二连接请求中的用户标识判断数据存储服务器上是否保存有该用户标识对应的数据,如果该数据存储服务器上保存有该用户标识对应的数据,再根据应用标识和该数据判断是否有该应用标识对应的待恢复数据,当该数据中有该应用标识对应的待恢复数据时,则第二连接请求指示的应用需要进行异常恢复。在另一方案中,即当第二客户端连接后,虚拟管理服务器根据用户标识确定数据存储服务器上保存有该用户标识对应的数据,再根据应用标识和该数据确定该数据不是该应用标识对应的待恢复数据,而是另一应用的待恢复数据,则可以提示第二客户端上次连接异常,此时第二客户端可以选择继续上次异常的应用,也可放弃上次的应用,继续选择本次的应用。403、所述虚拟管理服务器向第二客户端发送异常恢复询问消息;优选地,该异常恢复询问消息携带应用标识和用户标识。该异常恢复询问消息用于提示第二客户端该应用曾经异常中断,并且在数据存储服务器上保存有该异常中断时所保存的待恢复数据,以便于第二客户端选择是否需要恢复异常中断时的数据。需要说明的是,本实施例是基于用户标识及应用标识共同来判断是否有异常中断时保存的数据可以恢复。在本实施例中,仅以所述应用标识和用户标识指示的应用需要进行异常恢复为例进行说明。404、当接收到所述第二客户端的异常恢复请求时,所述虚拟管理服务器从数据存储服务器上获取与所述应用标识及用户标识对应的待恢复数据;其中,该异常恢复请求携带用户标识和应用标识,具体地,该异常恢复请求可以有一标志位,用于标识第二客户端同意进行异常恢复。在本实施例中,第二客户端发出异常恢复请求,该异常恢复请求用于指示虚拟管理服务器根据数据存储服务器上保存的待恢复数据对异常中断的应用进行恢复。其中,该待恢复数据可以为虚拟机数据或应用数据。该虚拟机数据是虚拟管理服务器在接收到异常通知时,按照保存虚拟机状态方式进行异常处理时保存的,该虚拟机数据具体包括:异常发生时生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识。该应用数据是虚拟管理服务器在接收到异常通知时,按照应用保存方式进行异常处理时保存的,该应用数据具体包括:该应用的配置文件指示的用户个人数据,将所述用户个人数据、应用标识和用户标识。405、判断该待恢复数据的类型,当所述待恢复数据为虚拟机数据时,执行步骤406 ;当所述待恢复数据为应用数据时,执行步骤410 ;具体地,该判断包括:判断该待恢复数据中是否包括虚拟机信息,如果该待恢复数据中包括虚拟机信息,则该待恢复数据为虚拟机数据;如果该待恢复数据中不包括虚拟机信息,则该待恢复数据为应用数据。406、当所述待恢复数据为虚拟机数据时,虚拟机数据至少包括虚拟机快照数据文件、虚拟机信息和虚拟机标识;所述虚拟管理服务器判断所述虚拟机标识对应的虚拟机是否空闲;如果是,执行步骤407;如果否,执行步骤408;在本实施例中,为了保证运行环境最优,根据虚拟机标识查询对应虚拟机,当该虚拟机标识对应的虚拟机空闲,则优先选择该虚拟机标识对应的虚拟机作为目的虚拟机,当该虚拟机标识对应的虚拟机不是空闲的,则根据虚拟机信息进一步查询与该虚拟机信息匹配的虚拟机作为目的虚拟机。该匹配是指虚拟机的相关性能与虚拟机信息相同,如内存大小、CPU信息和硬盘信息等。407、将所述虚拟机标识对应的虚拟机作为目的虚拟机,执行步骤409 ;408、选择与所述虚拟机信息匹配的空闲虚拟机作为目的虚拟机,执行步骤407 ;409、当所述待恢复数据为虚拟机数据时,根据所述虚拟机数据中的虚拟机快照数据启动所述目的虚拟机直接对异常中断的应用进行恢复,跳至步骤412 ;在本实施例中,虚拟机数据包括虚拟机快照数据信息,目的虚拟机根据该虚拟机快照数据信息启动,可以将应用和虚拟机恢复到异常发生时刻的场景。
410、根据所述应用标识从空闲虚拟机中选择第一虚拟机作为目的虚拟机,所述第一虚拟机为支持所述应用标识指示的应用的虚拟机;对于虚拟机来说,由于平台或系统的不同,每个虚拟机能够支持的应用不同,因此需要根据应用标识匹配虚拟机,以得到支持该应用标识指示的应用的虚拟机。411、启动虚拟机,将所述应用数据复制到所述目的虚拟机上,并在所述目的虚拟机上根据所述应用数据运行所述异常中断的应用;需要说明的是,如果虚拟机上没有此应用,则先安装应用,再拷贝用户个人数据,再启动应用。具体地,虚拟管理服务器将用户标识及应用标识对应的应用数据复制到目的虚拟机的应用的对应目录中。需要说明的是,该应用数据是异常发生前该虚拟机正常运行时已保存的数据,该保存每隔预设时长进行,因此,在根据应用数据进行异常恢复时,其恢复的场景并不一定是异常发生时刻应用的运行数据。例如,某应用自动进行增量保存的预设时长为30分钟,则每隔30分钟,运行该应用的虚拟机对用户个人数据进行保存,假设在第N次保存后15分钟发生异常,则该异常时所保存的应用数据为前N次保存的用户个人数据、用户标识和应用标识。412、所述虚拟管理服务器将所述虚拟机标识发送给第二客户端,使得所述客户端根据所述虚拟机标识与虚拟机建立通信连接并与所述虚拟机进行数据交互,结束。虚拟机与第二客户端建立连接的过程为现有技术,在此不再赘述。第二客户端接收服务器端下发的音视频数据,实时接收虚拟机上应用运行的状况,并上传控制指令,用于控制虚拟机上应用的运行。在以上交互过程中,用户操作的输入事件具体可以指键盘和鼠标事件(PC机型的客户端)、按键或触摸屏事件(手机或PDA型的客户端)、遥控器或者游戏手柄的操作事件(电视型的客户端)等server端发送画面和client接收画面显示一般采取的方式是server端将音视频数据进行高效压缩(例如采取视频压缩技术)后发送到客户端,客户端收到压缩后的画面后在本地先解码再展示。通过当客户端和与其交互的虚拟机发生异常中断时,虚拟管理服务器接收到异常中断的异常通知,并根据客户端对应的异常处理方式保存应用数据或虚拟机数据,并释放虚拟机资源,从而使得不同应用、不同用户可以根据其需求定制不同的异常处理方法,也使得客户端不但可保存异常发生时的时刻或最接近异常发生时的时刻用户的使用状态,不仅避免了长时间占据虚拟机资源,而且提高了在线应用系统的容量和效率。进一步地,当需要根据保存的数据进行恢复时,客户端可根据待恢复数据的类型确定异常恢复的方式,从而使得客户端可以从异常发生的时刻或最接近异常发生的时刻继续运行应用,提升了用户体验。图5是本发明实施例提供的一种异常处理装置的结构示意图。该装置包括:接收模块501,用于接收与第一客户端交互的虚拟机发送的异常通知,所述异常通知至少携带用户标识和应用标识;异常处理模块502,用于根据保存的与所述用户标识及应用标识对应的异常处理方式,保存所述虚拟机数据或与所述应用标识对应的应用的应用数据,并释放所述虚拟机资源。图6是本发明实施例提供的一种异常处理装置的结构示意图。该装置包括:接收模块501和异常处理模块502,其中,所述接收模块501,还用于接收所述第一客户端发送的第一连接请求,所述第一连接请求至少携带用户标识和应用标识;所述装置还包括:确定模块503,用于根据所述第一连接请求,确定并保存与所述用户标识及应用标识对应的异常处理方式。图7是本发明实施例提供的一种异常处理装置的结构示意图。该装置包括:接收模块501、异常处理模块502和确定模块503,其中,所述确定模块503包括:第一确定单元503a,用于所述第一连接请求携带应用标识和用户标识,根据所述应用标识获取所述应用能够支持的异常处理方式列表;将所述异常处理方式列表发送给所述第一客户端,使得所述第一客户端从所述异常处理列表中选择异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或,第二确定单元503b,用于所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,根据所述应用标识获取所述应用能够支持的异常处理方式列表,并判断所述异常处理方式列表是否包含所述指定的异常处理方式;如果是,将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;否则,将所述异常处理方式列表发送给所述第一客户端,接收所述第一客户端从所述异常处理列表中选择的异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或,所述第二确定单元503b,还用于所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,所述虚拟管理服务器将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式。图8是本发明实施例提供的一种异常处理装置的结构示意图。该装置包括:接收模块501和异常处理模块502,其中,所述异常处理模块502包括:第一异常处理单元502a,当与所述用户标识及应用标识对应的异常处理方式为应用保存方式时,依据所述应用的预设逻辑确定所述应用需要保存运行数据,并根据所述应用的配置文件,从所述虚拟机获取所述配置文件指示的用户个人数据,将所述用户个人数据、应用标识和用户标识存储至数据存储服务器,关闭所述应用,释放虚拟机资源,并更新虚拟机状态;第二异常处理单元502b,用于当与所述用户标识及应用标识对应的异常处理方式为保存虚拟机状态方式时,根据所述虚拟机当前的状态生成虚拟机快照数据,并将所述生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识存储至数据存储服务器,释放所述虚拟机资源,并更新所述虚拟机的状态。图9是本发明实施例提供的一种异常处理装置的结构示意图。该装置包括:接收模块501和异常处理模块502,其中,所述接收模块501,还用于接收第二客户端发送的第二连接请求;所述第二连接请求携带所述用户标识和应用标识;所述装置还包括:异常恢复确定模块504,用于根据所述第二连接请求,确定所述第二连接请求指示的应用需要进行异常恢复;发送模块505,用于向第二客户端发送异常恢复询问消息;虚拟机选择模块506,用于当接收到所述第二客户端的异常恢复请求,根据所述第二连接请求携带的用户标识和应用标识选择目的虚拟机;恢复模块507,用于在所述目的虚拟机上对异常中断的应用进行恢复。其中,异常恢复确定模块504具体用于确定数据存储服务器中保存有与所述应用标识和用户标识对应的待恢复数据。图10是本发明实施例提供的一种异常处理装置的结构示意图。该装置包括:接收模块501、异常处理模块502、异常恢复确定模块504、发送模块505、虚拟机选择模块506和恢复模块507,其中,虚拟机选择模块506包括:获取单元506a,用于从数据存储服务器上获取与所述应用标识及用户标识对应的待恢复数据;选择单元506b,用于当所述待恢复数据为虚拟机数据时,根据所述虚拟机数据选择目的虚拟机;所述选择单元506b,还用于当所述待恢复数据为应用数据时,根据所述应用标识选择目的虚拟机。当所述待恢复数据为虚拟机数据时,所述待恢复数据包括:虚拟机快照数据、虚拟机信息、虚拟机标识,所述选择单元506b,具体用于判断所述虚拟机标识对应的虚拟机是否空闲,所述虚拟机标识对应的虚拟机空闲,将所述虚拟机标识对应的虚拟机作为目的虚拟机;所述选择单元506b,还用于所述虚拟机标识对应的虚拟机不空闲,选择与所述虚拟机信息匹配的空闲虚拟机作为目的虚拟机。所述选择单元506b还用于当所述待恢复数据为应用数据时,根据所述应用标识从空闲虚拟机中选择第一虚拟机作为目的虚拟机,所述第一虚拟机为支持所述应用标识指示的应用运行的虚拟机。图11是本发明实施例提供的一种异常处理装置的结构示意图。该装置包括:接收模块501、异常处理模块502、异常恢复确定模块504、发送模块505、虚拟机选择模块506和恢复模块507,所述恢复模块507包括:第一恢复单元507a,用于当所述待恢复数据为虚拟机数据时,根据所述虚拟机数据中的虚拟机快照数据启动所述目的虚拟机直接对异常中断的应用进行恢复;第二恢复单元507b,用于当所述待恢复数据为应用数据时,启动虚拟机,将所述应用数据复制到所述目的虚拟机上,并在所述目的虚拟机上根据所述应用数据运行所述异常中断的应用。所述发送模块505还用于将所述虚拟机标识发送给客户端,使得所述客户端根据所述虚拟机标识与虚拟机建立通信连接并与所述虚拟机进行数据交互。本发明实施例还提供了一种虚拟管理服务器,包括上述任一实施例所述的异常处理装置。本发明图5-图11的实施例提供的虚拟管理服务器或异常处理装置,与方法实施例属于同一构思,可用于执行图2到图4中虚拟管理服务器执行的任一步骤,其具体实现过程详见方法实施例,这里不再赘述。本发明实施例提供的虚拟管理服务器或异常处理装置可以为包含存储器和/或处理器的任一设备,如计算机、笔计本电脑、大型工作站、网络设备等,本发明在此不做具体的限定。本发明的各模块可以为运行于处理器的模块或各单元为运行于处理器的模块或单元。图12是本发明实施例提供的一种异常处理方法的流程图。参见图12,该实施例具体包括:1201、客户端向虚拟管理服务器发送连接请求,所述连接请求至少携带用户标识和应用标识;1202、所述客户端接收虚拟管理服务器发送的与应用标识对应的异常处理方式列表;1203、所述客户端向所述虚拟管理服务器发送所述客户端选择的异常处理方式,以便于所述虚拟管理服务器将所述客户端选择的异常处理方式确定并保存为与所述应用标识和用户标识对应的异常处理方式。所述连接请求携带用户标识、应用标识和指定的异常处理方式;所述客户端接收虚拟管理服务器发送的与应用标识对应的异常处理方式列表具体包括:当所述虚拟管理服务器确定所述异常处理方式列表中不包含所述指定的异常处理方式时,客户端接收所述虚拟管理服务器发送的所述异常处理方式列表。所述方法还包括:所述客户端接收到所述虚拟管理服务器发送的异常恢复询问消息,向所述虚拟管理服务器发送异常恢复请求或异常恢复拒绝消息,使得所述虚拟管理服务器能够根据所述异常恢复请求或异常恢复拒绝消息进行相应的操作。本实施例提供的方法,通过客户端与虚拟管理服务器确定发生异常时所使用的异常处理方式,使得该虚拟管理服务器能够早接收到异常中断的异常通知,根据客户端对应的异常处理方式保存应用数据或虚拟机数据,并释放虚拟机资源,从而使得不同应用、不同用户可以根据其需求定制不同的异常处理方法,也使得客户端不但可保存异常发生时的时刻或最接近异常发生时的时刻用户的使用状态,而且提高了在线应用系统的容量和效率。图13是本发明实施例提供的一种客户端的流程图。参见图13,该实施例具体包括:发送模块1301,用于向虚拟管理服务器发送连接请求,所述连接请求至少携带用户标识和应用标识;接收模块1302,用于接收虚拟管理服务器发送的与应用标识对应的异常处理方式列表;所述发送模块1301,还用于向所述虚拟管理服务器发送所述客户端选择的异常处理方式,以便于所述虚拟管理服务器将所述客户端选择的异常处理方式确定为与所述应用标识和用户标识对应的异常处理方式。所述连接请求携带用户标识、应用标识和指定的异常处理方式;所述接收模块1302具体用于当所述虚拟管理服务器确定所述异常处理方式列表中不包含所述指定的异常处理方式时,接收所述虚拟管理服务器发送的所述异常处理方式列表。所述发送模块1301还用于当所述接收模块接收到所述虚拟管理服务器发送的异常恢复询问消息,向所述虚拟管理服务器发送异常恢复请求或异常恢复拒绝消息,使得所述虚拟管理服务器能够根据所述异常恢复请求或异常恢复拒绝消息进行相应的操作。本发明实施例中的客户端可以为在线应用中的客户端,具体为PC机、手机、PDA、连接遥控器(或游戏手柄)的电视等。客户端的发送模块和接收模块可以为各客户端设备的收发器。本实施例提供的客户端,与方法实施例属于同一构思,可以执行图2至图4以及图12中的客户端(包括第一客户端和第二客户端)执行的任一步骤,其具体实现过程详见方法实施例,这里不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种异常处理方法,其特征在于,包括: 虚拟管理服务器接收与第一客户端交互的虚拟机发送的异常通知,所述异常通知至少携带用户标识和应用标识; 所述虚拟管理服务器根据保存的与所述用户标识及应用标识对应的异常处理方式,保存所述虚拟机数据或与所述应用标识对应的应用的应用数据,并释放所述虚拟机资源。
2.根据权利要求1所述的方法,其特征在于,所述虚拟管理服务器接收与虚拟机发送的异常通知,之前,所述方法包括: 所述虚拟管理服务 器接收所述第一客户端发送的第一连接请求,所述第一连接请求至少携带用户标识和应用标识; 所述虚拟管理服务器根据所述第一连接请求,确定并保存与所述用户标识及应用标识对应的异常处理方式。
3.根据权利要求2所述的方法,其特征在于,所述虚拟管理服务器根据所述第一连接请求,确定并保存与所述用户标识及应用标识对应的异常处理方式,具体包括: 所述第一连接请求携带应用标识和用户标识,根据所述应用标识获取所述应用能够支持的异常处理方式列表;将所述异常处理方式列表发送给所述第一客户端,使得所述第一客户端从所述异常处理列表中选择异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或, 所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,所述虚拟管理服务器根据所述应用标识获取所述应用能够支持的异常处理方式列表,并判断所述异常处理方式列表是否包含所述指定的异常处理方式;如果是,将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;否则,所述虚拟管理服务器将所述异常处理方式列表发送给所述第一客户端,接收所述第一客户端从所述异常处理列表中选择的异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或, 所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,所述虚拟管理服务器将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述虚拟管理服务器根据保存的与所述用户标识及应用标识对应的异常处理方式,保存所述虚拟机数据或与所述应用标识对应的的应用的应用数据,并释放所述虚拟机资源,具体包括: 当与所述用户标识及应用标识对应的异常处理方式为应用保存方式时,所述虚拟管理服务器依据所述应用的预设逻辑确定所述应用需要保存运行数据,并根据所述应用的配置文件,从所述虚拟机获取所述配置文件指示的用户个人数据,将所述用户个人数据、应用标识和用户标识存储至数据存储服务器,关闭所述应用,释放虚拟机资源,并更新虚拟机状态; 当与所述用户标识及应用标识对应的异常处理方式为保存虚拟机状态方式时,所述虚拟管理服务器根据所述虚拟机当前的状态生成虚拟机快照数据,并将所述生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识存储至数据存储服务器,释放所述虚拟机资源,并更新所述虚拟机的状态。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述虚拟管理服务器根据所述用户标识对应的异常处理方式,保存所述虚拟机数据或所述应用标识指示的应用的应用数据,并释放所述虚拟机资源之后,所述方法还包括: 所述虚拟管理服务器接收第二客户端发送的第二连接请求;所述第二连接请求携带所述用户标识和应用标识; 所述虚拟管理服务器根据所述第二连接请求,确定所述第二连接请求指示的应用需要进行异常恢复; 所述虚拟管理服务器向第二客户端发送异常恢复询问消息; 所述虚拟管理服务器接收到所述第二客户端的异常恢复请求,根据所述第二连接请求携带的用户标识和应用标识选择目的虚拟机; 所述虚拟管理服务器在所述目的虚拟机上对异常中断的应用进行恢复。
6.根据权利要求5所述的方法,其特征在于,所述确定所述第二连接请求指示的应用需要进行异常恢复,具体包括: 虚拟管理服务器确定数据存储服务器中保存有与所述应用标识和用户标识对应的待恢复数据。
7.根据权利要求5所述的方法,其特征在于,所述虚拟管理服务器接收到所述第二客户端的异常恢复请求,根据所述第二连接请求携带的用户标识和应用标识选择目的虚拟机,具体包括: 所述虚拟管理 服务器从数据存储服务器上获取与所述应用标识及用户标识对应的待恢复数据; 当所述待恢复数据为虚拟机数据时,所述虚拟管理服务器根据所述虚拟机数据选择目的虚拟机; 当所述待恢复数据为应用数据时,所述虚拟管理服务器根据所述应用标识选择目的虚拟机。
8.根据权利要求7所述的方法,其特征在于,当所述待恢复数据为虚拟机数据时,所述待恢复数据包括:虚拟机快照数据、虚拟机信息、虚拟机标识, 所述虚拟管理服务器根据所述虚拟机数据选择目的虚拟机,具体包括: 所述虚拟管理服务器判断所述虚拟机标识对应的虚拟机是否空闲, 如果是,将所述虚拟机标识对应的虚拟机作为目的虚拟机; 如果否,选择与所述虚拟机信息匹配的空闲虚拟机作为目的虚拟机。
9.根据权利要求7所述的方法,其特征在于,所述虚拟管理服务器根据所述应用标识选择目的虚拟机,具体包括: 当所述待恢复数据为应用数据时,根据所述应用标识从空闲虚拟机中选择第一虚拟机作为目的虚拟机,所述第一虚拟机为支持所述应用标识指示的应用运行的虚拟机。
10.根据权利要求7-9任一所述的方法,其特征在于,所述虚拟管理服务器在所述目的虚拟机上对异常中断的应用进行恢复,具体包括: 当所述待恢复数据为虚拟机数据时,根据所述虚拟机数据中的虚拟机快照数据启动所述目的虚拟机直接对异常中断的应用进行恢复; 当所述待恢复数据为应用数据时,启动虚拟机,将所述应用数据复制到所述目的虚拟机上,并在所述目的虚拟机上根据所述应用数据运行所述异常中断的应用。
11.根据权利要求5-10任一项所述的方法,其特征在于,所述虚拟管理服务器在所述目的虚拟机上对异常中断的应用进行恢复之后,该方法还包括: 所述虚拟管理服务器将所述虚拟机标识发送给客户端,使得所述客户端根据所述虚拟机标识与虚拟机建立通信连接并与所述虚拟机进行数据交互。
12.—种异常处理装置,其特征在于,包括: 接收模块,用于接收与第一客户端交互的虚拟机发送的异常通知,所述异常通知至少携带用户标识和应用标识; 异常处理模块,用于根据保存的与所述用户标识及应用标识对应的异常处理方式,保存所述虚拟机数据或与所述应用标识对应的应用的应用数据,并释放所述虚拟机资源。
13.根据权利要求12所述的装置,其特征在于, 所述接收模块,还用于接收所述第一客户端发送的第一连接请求,所述第一连接请求至少携带用户标识和应用标识; 所述装置还包括: 确定模块,用于根据所述第一连接请求,确定并保存与所述用户标识及应用标识对应的异常处理方式。
14.根据权利要求13所述的装置,其特征在于,所述确定模块包括: 第一确定单元,用于所述第一连接请求携带应用标识和用户标识,根据所述应用标识获取所述应用能够支持的异常处理方式列表;将所述异常处理方式列表发送给所述第一客户端,使得所述第一客户端从所述异常处理列表中选择异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或, 第二确定单元,用于所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,根据所述应用标识获取所述应用能够支持的异常处理方式列表,并判断所述异常处理方式列表是否包含所述指定的异常处理方式; 如果是,将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;否则,将所述异常处理方式列表发送给所述第一客户端,接收所述第一客户端从所述异常处理列表中选择的异常处理方式,将所述第一客户端选择的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式;或, 所述第二确定单元,还用于所述第一连接请求携带应用标识、用户标识和指定的异常处理方式时,所述虚拟管理服务器将所述指定的异常处理方式确定并保存为与所述用户标识及应用标识对应的异常处理方式。
15.根据权利要求12-14任一项所述的装置,其特征在于,所述异常处理模块包括: 第一异常处理单元,用于当与所述用户标识及应用标识对应的异常处理方式为应用保存方式时,依据所述应用的预设逻辑确定所述应用需要保存运行数据,并根据所述应用的配置文件,从所述虚拟机获取所述配置文件指示的用户个人数据,将所述用户个人数据、应用标识和用户标识存储至数据存储服务器,关闭所述应用,释放虚拟机资源,并更新虚拟机状态; 第二异常处理单元,用于当与所述用户标识及应用标识对应的异常处理方式为保存虚拟机状态方式时,根据所述虚拟机当前的状态生成虚拟机快照数据,并将所述生成的虚拟机快照数据、应用标识、虚拟机信息、虚拟机标识和用户标识存储至数据存储服务器,释放所述虚拟机资源,并更新所述虚拟机的状态。
16.根据权利要求12-15任一项所述的装置,其特征在于, 所述接收模块,还用于接收第二客户端发送的第二连接请求;所述第二连接请求携带所述用户标识和应用标识; 所述装置还包括: 异常恢复确定模块,用于根 据所述第二连接请求,确定所述第二连接请求指示的应用需要进行异常恢复; 发送模块,用于向第二客户端发送异常恢复询问消息; 虚拟机选择模块,用于当接收到所述第二客户端的异常恢复请求,根据所述第二连接请求携带的用户标识和应用标识选择目的虚拟机; 恢复模块,用于所述虚拟管理服务器在所述目的虚拟机上对异常中断的应用进行恢复。
17.根据权利要求16所述的装置,其特征在于,异常恢复确定模块具体用于确定数据存储服务器中保存有与所述应用标识和用户标识对应的待恢复数据。
18.根据权利要求16或17所述的装置,其特征在于,虚拟机选择模块包括: 获取单元,用于从数据存储服务器上获取与所述应用标识及用户标识对应的待恢复数据; 选择单元,用于当所述待恢复数据为虚拟机数据时,根据所述虚拟机数据选择目的虚拟机; 所述选择单元,还用于当所述待恢复数据为应用数据时,根据所述应用标识选择目的虚拟机。
19.根据权利要求18所述的装置,其特征在于,当所述待恢复数据为虚拟机数据时,所述待恢复数据包括:虚拟机快照数据、虚拟机信息、虚拟机标识, 所述选择单元,具体用于判断所述虚拟机标识对应的虚拟机是否空闲,所述虚拟机标识对应的虚拟机空闲,将所述虚拟机标识对应的虚拟机作为目的虚拟机; 所述选择单元,还用于所述虚拟机标识对应的虚拟机不空闲,选择与所述虚拟机信息匹配的空闲虚拟机作为目的虚拟机。
20.根据权利要求18所述的装置,其特征在于,所述选择单元还用于当所述待恢复数据为应用数据时,根据所述应用标识从空闲虚拟机中选择第一虚拟机作为目的虚拟机,所述第一虚拟机为支持所述应用标识指示的应用运行的虚拟机。
21.根据权利要求16-20任一所述的装置,其特征在于,所述恢复模块包括: 第一恢复单元,用于当所述待恢复数据为虚拟机数据时,根据所述虚拟机数据中的虚拟机快照数据启动所述目的虚拟机直接对异常中断的应用进行恢复; 第二恢复单元,用于当所述待恢复数据为应用数据时,启动虚拟机,将所述应用数据复制到所述目的虚拟机上,并在所述目的虚拟机上根据所述应用数据运行所述异常中断的应用。
22.根据权利要求16-21任一项所述的装置,其特征在于,所述发送模块还用于将所述虚拟机标识发送给客户端,使得所述客户端根据所述虚拟机标识与虚拟机建立通信连接并与所述虚拟机进行数据交互。
23.—种异常恢复方法,其特征在于,包括: 客户端向虚拟管理服务器发送连接请求,所述连接请求至少携带用户标识和应用标识; 所述客户端接收虚拟管理服务器发送的与应用标识对应的异常处理方式列表; 所述客户端向所述虚拟管理服务器发送所述客户端选择的异常处理方式,以便于所述虚拟管理服务器将所述客户端选择的异常处理方式确定并保存为与所述应用标识和用户标识对应的异常处理方式。
24.根据权利要求23所述的方法,其特征在于,所述连接请求携带用户标识、应用标识和指定的异常处理方式; 所述客户端接收虚拟管理服务器发送的与应用标识对应的异常处理方式列表具体包括: 当所述虚拟管理服务器确定所述异常处理方式列表中不包含所述指定的异常处理方式时,客户端接收所述虚拟管理服务器发送的所述异常处理方式列表。
25.根据权利要求23所述的方法,其特征在于,所述方法还包括: 所述客户端接收到所述虚拟管理服务器发送的异常恢复询问消息,向所述虚拟管理服务器发送异常恢复请求 或异常恢复拒绝消息,使得所述虚拟管理服务器能够根据所述异常恢复请求或异常恢复拒绝消息进行相应的操作。
26.—种客户端,其特征在于,包括: 发送模块,用于向虚拟管理服务器发送连接请求,所述连接请求至少携带用户标识和应用标识; 接收模块,用于接收虚拟管理服务器发送的与应用标识对应的异常处理方式列表;所述发送模块,还用于向所述虚拟管理服务器发送所述客户端选择的异常处理方式,以便于所述虚拟管理服务器将所述客户端选择的异常处理方式确定为与所述应用标识和用户标识对应的异常处理方式。
27.根据权利要求26所述的客户端,其特征在于, 所述连接请求携带用户标识、应用标识和指定的异常处理方式; 所述接收模块具体用于当所述虚拟管理服务器确定所述异常处理方式列表中不包含所述指定的异常处理方式时,接收所述虚拟管理服务器发送的所述异常处理方式列表。
28.根据权利要求26所述的客户端,其特征在于, 所述发送模块还用于当所述接收模块接收到所述虚拟管理服务器发送的异常恢复询问消息,向所述虚拟管理服务器发送异常恢复请求或异常恢复拒绝消息,使得所述虚拟管理服务器能够根据所述异常恢复请求或异常恢复拒绝消息进行相应的操作。
全文摘要
本发明公开了一种异常处理方法、装置和客户端,属于在线应用领域。该方法包括虚拟管理服务器接收与第一客户端交互的虚拟机发送的异常通知,所述异常通知至少携带用户标识和应用标识;所述虚拟管理服务器根据保存的与所述用户标识及应用标识对应的异常处理方式,保存所述虚拟机数据或与所述应用标识对应的应用的应用数据,并释放所述虚拟机资源。该装置包括接收模块和异常处理模块。本发明使得不同应用、不同用户可以根据其需求定制不同的异常处理方法,也使得客户端不但可保存异常发生时的时刻或最接近异常发生时的时刻用户的使用状态,而且提高了在线应用系统的容量和效率。
文档编号H04L29/06GK103107905SQ201110412168
公开日2013年5月15日 申请日期2011年12月12日 优先权日2011年11月14日
发明者秦晋, 党沛, 狄龙 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1