软件修复方法及系统技术方案

技术编号:8161474 阅读:149 留言:0更新日期:2013-01-07 19:30
一种软件修复方法,包括以下步骤:客户端获取桌面软件的异常信息;客户端根据所述异常信息查找本地是否有引起异常的软件模块的旧版本模块,若有,则将引起异常的软件模块替换为所述旧版本模块,否则,向服务器发送修复请求;所述服务器根据所述修复请求获取修正模块,并将所述修正模块下发至所述客户端;所述客户端将引起异常的软件模块替换为所述修正模块。采用了上述软件修复方法,客户端软件不用等待服务器推送的修正补丁,而能够在第一时间得到修复,软件修复及时且准备。此外,还提供了一种软件修复系统。

【技术实现步骤摘要】
软件修复方法及系统
本专利技术涉及计算机
,特别涉及ー种软件修复方法及系统。背景技木现有的桌面软件由于操作系统的兼容性,用户的不良操作或其他问题,通常不可避免地会出现ー些程序异常,业界也称之为bug。一些客户端软件具有异常提示功能,在软件运行出现异常时,会提示用户程序损坏。此时若不及时对客户端软件进行修复,不仅影响用户正常使用软件的功能,而且频繁的提示信息也会使用户体验大打折扣。传统的软件修复方法通常采用了服务器向客户端推送修正内容的修复方式,SP月艮务器针对ー些普遍性的问题定期发布补丁,并通知客户端进行接收。通常有两种模式。第 ー种模式为版本升级模式,即服务器将新版本的客户端软件整体推送给客户端,客户端软件再整体替换成新版本的软件。第二种模式为文件升级模式,服务器将部分具有新内容或者新功能的模块文件推送给客户端,客户端在本地替换或者增加这些模块文件,从而通过升级来修复或者替换出错的软件模块,从而修复客户端软件。由上可知,传统的软件修复方法存在一些问题客户端不能在第一时间修复客户端软件的异常,需要等服务器有相应的解决方案后再推送过来;客户端必须依赖服务器,客户端软件本身不能进行自我修复;由于修复的不及时使得客户端会频繁提示异常信息,影响用户体验。
技术实现思路
基于此,有必要提供ー种及时且准确的软件修复方法。ー种软件修复方法,包括以下步骤客户端获取桌面软件的异常信息;客户端根据所述异常信息查找本地是否有引起异常的软件模块的旧版本模块,若有,则将引起异常的软件模块替换为所述旧版本模块,否则向服务器发送修复请求;所述服务器根据所述修复请求获取修正模块,并将所述修正模块下发至所述客户端;所述客户端将引起异常的软件模块替换为所述修正模块。优选的,在所述客户端获取软件程序异常信息的步骤之后,进ー步包括根据所述异常信息定位引起异常的模块;判断所述引起异常的模块是否为桌面软件中的软件模块,若是,则进入所述客户端根据所述异常信息查找本地是否有引起异常的软件模块的旧版本模块的步骤,否则结束。优选的,在所述将引起异常的软件模块替换为所述旧版本模块的步骤之后,进ー步包括重新启动所述桌面软件;检测所述桌面软件是否运行正常,若是,则结束,否则进入向所述服务器发送修复请求的步骤。优选的,在所述客户端获取指定软件的异常信息之前还包括在服务器中建立异常信息与修正模块之间的映射关系的步骤;所述服务器根据所述修复请求获取修正模块,并将所述修正模块下发至所述客户端的步骤包括所述服务器根据所述映射关系查找与所述异常信息对应的修正模块,将查找得到的修正模块下发至所述客户端。优选的,所述方法还包括当所述服务器根据所述映射关系查找不到与所述异常信息对应的修正模块时,则获取桌面软件的稳定版本,将所述稳定版本下发至所述客户端。优选的,在所述将出现异常的软件模块替换为所述旧版本模块的步骤之后,进ー步包括所述客 户端将所述异常信息和所述旧版本模块的上传至所述服务器,所述服务器建立所述异常信息和丨日版本模块之间的映射关系。此外,有必要提供ー种及时且准确的软件修复系统。ー种软件修复系统,包括客户端及与所述客户端进行交互的服务器,所述客户端包括异常信息获取模块,用于获取桌面软件的异常信息;查找模块,用于根据所述异常信息查找本地是否有引起异常的软件模块的旧版本模块;替换模块,用于当所述查找模块在本地查找有引起异常的软件模块的旧版本模块时将引起异常的软件模块替换为所述旧版本模块;发送模块,用于当所述查找模块在本地查找不到引起异常的软件模块的旧版本模块时向服务器发送修复请求;所述服务器包括远程修复模块,用于根据所述修复请求获取修正模块,并将所述修正模块下发至所述客户端;所述替换模块还用于将所述引起异常的软件模块替换为所述服务器下发的修正模块。优选的,所述客户端还包括定位模块,用于根据所述异常信息定位引起异常的模块;判断模块,用于判断所述引起异常的模块是否为桌面软件中的软件模块,若是,则通知所述查找模块根据所述异常信息查找本地是否有出现异常的软件模块的旧版本模块。优选的,所述客户端还包括重启模块,用于在所述替换模块将引起异常的软件模块替换为所述旧版本模块后重新启动所述桌面软件;检测模块,用于检测所述桌面软件是否运行正常,若运行不正常,则通知所述发送模块向所述服务器发送修复请求。优选的,所述服务器还包括映射关系建立模块,用于建立异常信息与修正模块之间的映射关系;所述远程修复模块还用于根据所述映射关系查找与所述异常信息对应的修正模块,将查找得到的修正模块下发至所述客户端。优选的,所述远程修复模块还用于当所述根据所述映射关系查找不到与所述异常信息对应的修正模块时,则获取桌面软件的稳定版本,将所述稳定版本下发至所述客户端。优选的,所述发送模块还用于将所述异常信息和所述旧版本模块上传至所述服务器;所述映射关系建立模块还用于建立所述异常信息和旧版本模块之间的映射关系。上述软件修复方法及系统,客户端在获取到桌面软件的异常信息后,先查找本地是否有引起异常的软件模块的旧版本模块,若有,则将引起异常的软件模块替换为旧版本模块,实现客户端的自我修复;当客户端无法进行自我修复时,则向服务器发送修复请求,从服务器获取修正模块进行软件修复。这种方式不会依赖于服务器,能及时且准备的修复软件异常。附图说明图I为ー个实施例中软件修复方法的流程示意图;图2为ー个实施例中软件修复系统的结构示意图;图3为ー个实施例中客户端的结构示意图;图4为另ー个实施例中客户端的结构示意图5为另ー个实施例中服务器的结构示意图。具体实施方式在一个实施例中,如图I所示,ー种软件修复方法,包括以下步骤步骤S102,客户端获取桌面软件的异常信息。在一个优选的实施例中,当桌面软件运行出现异常时,运行桌面软件的客户端首先捕获异常,然后获取异常的堆栈信息,并找到位于栈底的异常信息记录,进而根据异常信息记录定位引起异常的模块。进ー步的,客户端判断引起异常的模块是否为桌面软件中的软件模块,若是,则进入客户端根据异常信息查找本地是否有引起异常的软件模块的旧版本模块的步骤,否则,则返回结束。客户端判断引起异常的模块是否为桌面软件中的软件模块的步骤是为了辨别引起异常的原因是来自桌面软件自身还是来自外界环境或桌面软件无法干涉的模块或进程,从而确定异常彳目息是否有效。步骤S104,客户端根据异常信息查找本地是否有引起异常的软件模块的旧版本模块,若有,则进入步骤S106,否则进入步骤S108。在优选的实施例中,客户端已经根据异常信息定位了引起异常的模块,若引起异常的模块是桌面软件中的模块,则客户端在本地查找与引起异常的软件模块对应的旧版本模块。步骤S106,将引起异常的软件模块替换为旧版本模块。在优选的实施例中,若客户端在本地查找到引起异常的软件模块的旧版本模块,客户端则将引起异常的软件模块替换为查找得到的旧版本模块,从而实现客户端的自我修复功能。在另ー个优选的实施例中,在步骤S106之后,重新启动桌面软件,客户端继续检测桌面软件是否运行正常,若正常,则修复结束,若桌面软件运行仍有异常,则进入步骤S108。步骤S108,向服务器发送修复请求。 在步骤S108中,客户端向服务器发送的修复请求中包含获取到的异常信息以及定位到的引起异常的软件本文档来自技高网...

【技术保护点】
一种软件修复方法,包括以下步骤:客户端获取桌面软件的异常信息;客户端根据所述异常信息查找本地是否有引起异常的软件模块的旧版本模块,若有,则将引起异常的软件模块替换为所述旧版本模块,否则向服务器发送修复请求;所述服务器根据所述修复请求获取修正模块,并将所述修正模块下发至所述客户端;所述客户端将引起异常的软件模块替换为所述修正模块。

【技术特征摘要】

【专利技术属性】
技术研发人员:张顺四刘杨
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1