CN100421072C - 实现软件升级的方法 - Google Patents
实现软件升级的方法 Download PDFInfo
- Publication number
- CN100421072C CN100421072C CNB2005101214780A CN200510121478A CN100421072C CN 100421072 C CN100421072 C CN 100421072C CN B2005101214780 A CNB2005101214780 A CN B2005101214780A CN 200510121478 A CN200510121478 A CN 200510121478A CN 100421072 C CN100421072 C CN 100421072C
- Authority
- CN
- China
- Prior art keywords
- download
- software
- upgrading
- rompaq
- version number
- 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
Images
Abstract
本发明涉及一种实现软件升级的方法,包括a.判断预定网页上的脚本程序是否生成控件的对象实例;b.如果没有生成,则提供下载链接并提示用户下载,如果生成,则执行步骤c;c.判断调用所述生成对象实例的函数接口是否能获取软件的版本号,如果能获取,则执行步骤d,如果不能获取,则提供下载链接并提示用户下载;d.根据该版本号判断是否需要升级,如果需要,则通过运行所述软件的升级程序从下载服务器下载升级压缩包。本发明能简化原有升级系统,降低客户端与多个服务器进行通讯的次数,减少出现升级失败的可能环节。
Description
技术领域
本发明涉及计算机软件升级技术,更具体地说,涉及一种实现软件升级的方法。
背景技术
软件升级主要通过客户端/服务器(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中)。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
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. 根据权利要求1所述的方法,其特征在于,所述控件是指Activex控件。
8. 根据权利要求1所述的方法,其特征在于,所述脚本程序是指JaveScript脚本程序。
9. 根据权利要求1-8任意一项所述的方法,其特征在于,所述软件是即时通信软件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101214780A CN100421072C (zh) | 2005-12-28 | 2005-12-28 | 实现软件升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101214780A CN100421072C (zh) | 2005-12-28 | 2005-12-28 | 实现软件升级的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1991757A CN1991757A (zh) | 2007-07-04 |
CN100421072C true CN100421072C (zh) | 2008-09-24 |
Family
ID=38214030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101214780A Active CN100421072C (zh) | 2005-12-28 | 2005-12-28 | 实现软件升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100421072C (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719073B (zh) * | 2009-11-20 | 2012-10-03 | 浪潮集团山东通用软件有限公司 | 一种基于智能客户端的按需下载实现方法 |
CN102200998A (zh) * | 2011-04-19 | 2011-09-28 | 上海网达软件有限公司 | 一种图片压缩管理技术的实现方法 |
CN102184112B (zh) * | 2011-05-06 | 2013-11-27 | 北京百度网讯科技有限公司 | 控件升级方法及装置 |
CN102195901A (zh) * | 2011-05-19 | 2011-09-21 | 广东星海数字家庭产业技术研究院有限公司 | 一种数字媒体智能网关接口兼容驱动的方法 |
CN102281326A (zh) * | 2011-07-14 | 2011-12-14 | 西安和利德软件有限公司 | 基于web服务器的程序与数据自动同步更新的方法 |
CN102929920B (zh) * | 2012-09-19 | 2016-04-20 | 北京奇虎科技有限公司 | 基于Web信息抽取的软件更新信息的监控方法和装置 |
CN104346196A (zh) * | 2014-06-17 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 软件下载安装方法及装置 |
CN104539695B (zh) * | 2014-12-26 | 2018-07-06 | 北京格林伟迪科技股份有限公司 | 一种登录多个服务器的方法 |
CN105786556B (zh) * | 2014-12-26 | 2019-04-09 | 博雅网络游戏开发(深圳)有限公司 | 软件更新引导方法和装置 |
CN105630898A (zh) * | 2015-12-18 | 2016-06-01 | 国云科技股份有限公司 | 一种适用于应用程序数据库表数据版本切换的方法 |
CN109002313A (zh) * | 2018-09-12 | 2018-12-14 | 青岛海信移动通信技术股份有限公司 | 基于ota的软件升级方法、装置、设备及存储介质 |
CN110737451B (zh) * | 2019-09-25 | 2023-09-29 | 广东博力威科技股份有限公司 | 一种电池的前端控制软件版本更新方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1525318A (zh) * | 2002-12-31 | 2004-09-01 | 鸿富锦精密工业(深圳)有限公司 | 移动式计算设备远程程序安装系统及方法 |
CN1567843A (zh) * | 2003-06-22 | 2005-01-19 | 华为技术有限公司 | 终端设备的软件自动升级方法 |
CN1584865A (zh) * | 2003-08-21 | 2005-02-23 | 珠海金山软件股份有限公司 | 计算机软件升级的方法 |
CN1598770A (zh) * | 2003-09-19 | 2005-03-23 | 乐金电子(沈阳)有限公司 | 家电产品的系统软件升级方法 |
-
2005
- 2005-12-28 CN CNB2005101214780A patent/CN100421072C/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1525318A (zh) * | 2002-12-31 | 2004-09-01 | 鸿富锦精密工业(深圳)有限公司 | 移动式计算设备远程程序安装系统及方法 |
CN1567843A (zh) * | 2003-06-22 | 2005-01-19 | 华为技术有限公司 | 终端设备的软件自动升级方法 |
CN1584865A (zh) * | 2003-08-21 | 2005-02-23 | 珠海金山软件股份有限公司 | 计算机软件升级的方法 |
CN1598770A (zh) * | 2003-09-19 | 2005-03-23 | 乐金电子(沈阳)有限公司 | 家电产品的系统软件升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1991757A (zh) | 2007-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100421072C (zh) | 实现软件升级的方法 | |
US7133933B2 (en) | Content synchronization frameworks using dynamic attributes and file bundles for connected devices | |
CN102523268B (zh) | 一种客户端升级方法和系统 | |
CN102413022B (zh) | 一种应用调试方法和系统 | |
CN1153138C (zh) | 提高Java环境的可管理性和可用性的系统和方法 | |
US7552189B2 (en) | System and method for using virtual directories to service URL requests URL requests in application servers | |
US7707563B2 (en) | System and method for network-based computing | |
CN102782650B (zh) | 用于管理分布式环境中系统管理代理的配置的方法与系统 | |
Carzaniga et al. | Designing distributed applications with mobile code paradigms | |
EP2021937B1 (en) | Techniques to perform gradual upgrades | |
US8448163B2 (en) | Deploying J2EE web applications in an OSGI environment | |
US7509649B2 (en) | System and method for conversion of generic services' applications into component based applications for devices | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
CN108632375B (zh) | 一种针对分布式部署服务软件程序的在线升级方法 | |
US20030066065A1 (en) | System and method for remotely updating software applications | |
US20020178244A1 (en) | Dynamic redeployment of services in a computing network | |
JP2003536133A (ja) | アプリケーション・プログラムの資源を管理する方法およびシステム | |
CN101770375A (zh) | 一种软件自动升级的实现方法、系统和装置 | |
JP2004038962A (ja) | 影響のない方式でソフトウェアアプリケーションをインストールするシステムおよび方法 | |
US20070118507A1 (en) | Managing software configuration of a wireless device | |
CN102195804A (zh) | 软件自动更新方法及其系统 | |
CN110377360A (zh) | webview快速加载的方法、显示终端及计算机可读存储介质 | |
CN104093075A (zh) | 一种门户页面更新方法及系统 | |
EP1698984A1 (en) | System and method for conversion of WEB services' applications into component based applications for mobile devices | |
CN101277221A (zh) | 一种网管应用程序的部署及应用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |