实现软件升级的方法

文档序号:81996阅读:309来源:国知局
专利名称:实现软件升级的方法
技术领域
本发明涉及计算机软件升级技术,更具体地说,涉及一种实现软件升级的方法。
背景技术
软件升级主要通过客户端/服务器(client/server,简称CS)的方式实现远程升级,主要是将最新版本的软件升级数据库存放在下载服务器上,客户端用户通过互联网采用HTTP(超连接传输协议)或FTP(文件传输协议)的方式直接从服务器上下载所需的升级数据。
目前,即时通讯软件(Instant Messenger,简称IM)(如QQ/TM)客户端的升级流程主要通过如下步骤来完成(如图1所示)S1.消息服务器获取即时通讯软件客户端的上线情况,包括该客户端即时通讯软件的号码、IP地址以及版本号,然后消息服务器对需要升级的客户端即时通讯软件发送升级消息,提示用户检测到可以升级的版本,并询问用户是否需要升级;S2.如果用户需要升级,则点击确定,然后自动和信息服务器建立HTTP链接,从信息服务器获取最新升级程序和对应版本升级压缩包的信息;S3.如果用户的升级程序需要更新,则从下载服务器上下载最新的升级程序;然后从下载服务器下载升级压缩包S4.客户端本地运行升级程序,并将该升级压缩包进行解压缩,例如覆盖原有文件等等。至此,即时通讯软件升级完成。
由于目前的即时通讯软件已经发布了很多版本,所有往往同一时期存在数个不同版本的即时通讯软件在客户端运行。但由于现有的即时通讯软件一般采取模块化方式开发,各个功能部分都以模块化方式集成,因此各个模块的开发进度以及升级版本都很难做到步调一致,统一将所有模块进行升级几乎是不可能的。如果针对不同版本、不同模块搭建不同的服务器来解决上述问题,虽然是可行的,但是这样势必会造成服务器硬件资源的大量占用,降低了使用效率,同时也加大了工作人员进行升级信息修改的工作量。
因此,现有技术方案都存在以下缺点(1)占用的资源比较庞大,需要三种类型的服务器,降低整个系统的经济效率与使用效率;(2)对多版本支持度不够,而且涉及到的服务器类型比较多,中间流程比较复杂,造成出现工作瓶颈的地方比较多,数据进行多次传递也往往会更容易丢失;(3)造成服务器端请求大量聚集,从而导致很多请求无法满足,引起升级失败,直接影响用户体验。

发明内容本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种通过客户端软件自动进行升级的方法,能够简化原有升级系统,降低客户端与多个服务器进行通讯的次数,减少出现升级失败的可能环节。
本发明解决其技术问题所采用的技术方案是构造一种实现软件升级的方法,该方法包括以下步骤a.判断预定网页上的脚本程序是否生成控件的对象实例;b.如果没有生成,则提供下载链接并提示用户下载,如果生成,则执行步骤c;c.判断调用所述生成对象实例的函数接口是否能获取软件的版本号,如果能获取,则执行步骤d,如果不能获取,则提供下载链接并提示用户下载;d.根据该版本号判断是否需要升级,如果需要,则通过运行所述软件的升级程序从下载服务器下载升级压缩包。
在本发明所述的方法中,如果所述软件没有升级程序,所述步骤d还包括d1.提供下载链接并提示用户下载升级程序;d2.接收到用户点击所述链接后下载所述升级程序,并通过运行所述升级程序从下载服务器下载升级压缩包。
在本发明所述的方法中,在所述步骤a中,所述预定网页是指嵌入能获取软件客户端的版本号以及确定升级策略的脚本程序的网页。
在本发明所述的方法中,在所述步骤a中,所述控件是在进行安装软件程序时注册的,并在每次启动软件时都作重新更新注册。
在本发明所述的方法中,在所述步骤d中,所述升级程序包括升级压缩包下载地址、升级压缩包的大小以及HASH值。
在本发明所述的方法中,所述步骤d还包括对从所述下载服务器所下载的升级压缩包的大小与HASH进行校验的步骤。
在本发明所述的方法中,,所述控件是指Activex控件。
在本发明所述的方法中,所述脚本程序是指JaveScript脚本程序。
在本发明所述的方法中,所述软件是即时通信软件。
本发明的有益效果是(1)能简化原有升级系统,降低客户端与多个服务器进行通讯的次数,减少出现升级失败的可能环节。
(2)因为用户打开网页时机不同,所以可以分散用户的升级分布,更有效率的利用服务器,缓解在特定时间过于拥挤的请求服务的问题。
(3)有的工作迁移到容易修改的web页面来完成,这样便于调控,方便测试,可以更迅速的完成相应工作。
(4)不需要用户运行客户端软件就可以进行升级完毕,减少用户操作步骤。
下面将结合附图及实施例对本发明作进一步说明,附图中图1是现有技术实现软件升级流程的示例图;图2是本发明客户端实现软件升级的流程图。
具体实施方式ActiveX组件技术是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型。组件作为脚本和基于Web应用程序的基本构造块,可以提供一个或多个对象以及对象的方法和属性。ActiveX组件是一个文件,该文件包含执行某项或一组任务的代码,它一般被包含在动态链接库(.dll)或可执行文件(.exe)中。组件的一大优点就是可以被大多数应用程序再使用(这些应用程序称为组件容器)。一个ActiveX控件可由不同语言的开发工具开发。
JavaScript语言的前身叫作Livescript。自从Sun公司推出著名的Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原有的Livescript重新进行设计,并改名为JavaScript。JavaScript是一种基于对象和事件驱动并具有安全性能的解释性编程语言,与HTML超文本标识语言、Java脚本语言一起实现在一个网页中链接多个对象,与网络客户交互作用,从而可以开发客户端的应用程序,它是通过嵌入或调入在标准的HTML语言中实现的。可以被内置于HTML页面中由浏览器或客户端机器解释,它也可以运行在服务器端,不过出于缓解服务器的压力,更多的应用于客户端机器上。下面以即时通讯软件的升级为例进行说明,但本发明并不限于即时通讯软件。
图3是基于ActiveX控件和JavaScript语言实现即时通讯软件升级的流程图,如图所示,当客户端浏览相关网页(步骤200中),首先判断网页上的JavaScript程序是否生成所需要的ActiveX控件对象实例(步骤202中),如果这个对象实例无法生成,表明此客户端不存在即时通讯软件,这时页面会出现让用户下载即时通讯软件的提示信息和下载链接(步骤204中)。如果这个对象实例可以生成,则判断是否能调用客户端即时通讯软件的Activex控件所提供的函数接口(步骤206中),该Activex控件是在即时通讯软件安装程序进行安装的时候注册的,在即时通讯软件每次启动时也会将本目录下的这个动态链接库重新注册一遍,例如可表示为var cpAdder=new ActiveXObject(“external_name”),external_name为外部调用该Activex控件时所使用的文件名,cpAdder则可以调用实例所提供的函数接口cpAdder.GetLastQQVersion()来获得即时通讯软件版本号。如果通过这个函数接口无法获得版本号,则表示用户已使用的版本过久,也需要升级并提供下载链接和提示用户下载(步骤208中),如果通过这个方法可以获得版本号(步骤210中),则判断软件版本是否需要升级(步骤212中),如果不需要,则提示用户已使用最新的软件版本(步骤214中),如果需要,则根据各个版本号所对应的升级策略,该升级策略包含有需要升级的升级程序的链接地址等信息,并通过将网页上的style.display=″none″修改为style.display=″″来显示出来(步骤216中),用户根据网页显示出来的链接地址下载自动升级程序(步骤218中),该升级程序中已经包含了上述升级策略中写在信息服务器中的升级压缩包的下载地址和升级压缩包的尺寸大小,HASH值等信息,并点击该升级程序进行升级,该升级程序会自动从上述下载地址下载升级压缩包,并根据升级压缩包的尺寸大小,HASH等值进行校验,然后将该升级压缩包进行解压缩,例如覆盖原有文件等等。升级工作完全在用户机器上进行,至此,即时通讯软件升级流程完成(步骤220中)。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现软件升级的方法,其特征在于,包括以下步骤a.判断预定网页上的脚本程序是否生成控件的对象实例;b.如果没有生成,则提供下载链接并提示用户下载,如果生成,则执行步骤c;c.判断调用所述生成对象实例的函数接口是否能获取软件的版本号,如果能获取,则执行步骤d,如果不能获取,则提供下载链接并提示用户下载;d.根据该版本号判断是否需要升级,如果需要,则通过运行所述软件的升级程序从下载服务器下载升级压缩包。
2.根据权利要求
1所述的方法,其特征在于,如果所述软件没有升级程序,所述步骤d还包括d1.提供下载链接并提示用户下载升级程序;d2.接收到用户点击所述链接后下载所述升级程序,并通过运行所述升级程序从下载服务器下载升级压缩包。
3.根据权利要求
1所述的方法,其特征在于,在所述步骤a中,所述预定网页是指嵌入能获取软件客户端的版本号以及确定升级策略的脚本程序的网页。
4.根据权利要求
1所述的方法,其特征在于,在所述步骤a中,所述控件是在进行安装软件程序时注册的,并在每次启动软件时都作重新更新注册。
5.根据权利要求
1所述的方法,其特征在于,在所述步骤d中,所述升级程序包括升级压缩包下载地址、升级压缩包的大小以及HASH值。
6.根据权利要求
5所述的方法,其特征在于,所述步骤d还包括对从所述下载服务器所下载的升级压缩包的大小与HASH进行校验的步骤。
7.根据权利要求
4任意一项所述的方法,其特征在于,所述控件是指Activex控件。
8.根据权利要求
1所述的方法,其特征在于,所述脚本程序是指JaveScript脚本程序。
9.根据权利要求
1-8任意一项所述的方法,其特征在于,所述软件是即时通信软件。
专利摘要
本发明涉及一种实现软件升级的方法,包括a.判断预定网页上的脚本程序是否生成控件的对象实例;b.如果没有生成,则提供下载链接并提示用户下载,如果生成,则执行步骤c;c.判断调用所述生成对象实例的函数接口是否能获取软件的版本号,如果能获取,则执行步骤d,如果不能获取,则提供下载链接并提示用户下载;d.根据该版本号判断是否需要升级,如果需要,则通过运行所述软件的升级程序从下载服务器下载升级压缩包。本发明能简化原有升级系统,降低客户端与多个服务器进行通讯的次数,减少出现升级失败的可能环节。
文档编号H04L12/00GK1991757SQ200510121478
公开日2007年7月4日 申请日期2005年12月28日
发明者杨谦, 岳上 申请人:腾讯科技(深圳)有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1