专利名称:软件在线升级的方法、装置及系统的制作方法
技术领域:
本发明涉及软件技术和计算机网络技术,尤其涉及一种软件在线升级的方 法、装置及系统。
背景技术:
随着软件和Internet的迅速发展,越来越多的软件支持网络在线升级功能。 该功能不仅增加了软件的扩展性和灵活性,而且提高了软件的生命周期,甚至 给整个世界的软件行业带来了巨大的冲击,因为它改变了软件开发的传统设计 理念。过去的全功能一步到位的软件设计理念已经不再提倡,而具有良好扩展 性、可以不断升级的软件设计理念已经成为软件发展的主流。可以预见,未来 支持网络在线升级功能的产品在市场上将更受欢迎。
因此,谁能够使自己的软件产品更长时间的支持在线升级功能,谁就能够 更持久的占领市场。但是,由于传统的软件在设计之初为了保证升级包的永久 适应性(即任意时期的软件版本均可以通过在线升级方式升级成最新的版本), 一般采用以下两种升级方式, 一种是将软件与升级包的内部结构固定,升级时 只需将升级包中的新模块覆盖本地软件的旧模块即可完成升级,但这样限制了 软件后续版本的扩展性和灵活性。另 一种是不固定软件和升级包的内部结构, 但需要对每个旧版本软件专门制作适合的升级包,继而在升级时对每个旧版本 软件使用不同的升级包进行升级。第二种升级方式虽然在扩展性和灵活性上有 所改善,但同样存在一些问题。首先,升级包制作过于复杂,并且复杂度会随 着版本的增多而加大。其次,由于每个升级版本都要针对以往的所有软件版本 制作对应的升级包,这样随着软件版本的增多升级包的数量也会成倍增加,给 升级服务器造成巨大的负荷。最后,由于升级包的数量和种类过多,使升级包的管理也将随着版本的增多而愈加困难。
发明内容
本发明所要解决的技术问题是提供一种软件在线升级的方法、装置及系统,
使用户在联网状态下,可以通过Intemet网络永久的对软件产品进行灵活的升级。 为了解决上述技术问题,本发明提供了一种软件在线升级方法,包括 当客户端主机检测到本地软件符合服务器端主机软件升级要求时,所述客
户端主机下载所述服务器端主机的升级包到本地,所述升级包的下载完成后,
进一步地,上述方法中,所述启动已下载的升级包中的安装器对软件进行 升级具体包括所述客户端主机运行本地软件中的旧版本卸载器,对本地软件 中的功能模块进行卸载并提示安装器卸载进度,卸载完成后,所述客户端主机 启动所述已下载的升级包中的安装器对新版本功能模块和新版本卸载器进行安装。
进一步地,上述方法中,所述旧版本卸载器根据所述客户端主机本地的软 件结构编辑而成,所述旧版本卸载器在保留本地用户信息的条件下能够完成本 地软件功能;^莫块的卸载或通知所述安装器当前卸载的进度。
进一步地,上述方法中,所述安装器^f艮据所述服务器端主机升级包中的软 件结构编辑而成,所述安装器能够将升级包中的新版本功能模块或/和新版本卸 载器安装到所述客户端主机上。
进一步地,上述方法中,所述旧版本卸载器通过命名管道通知所述安装器 当前卸载的进度。
进一步地,上述方法中,所述软件结构包括功能模块和数据模块,所述功 能模块用于实现该软件的基本功能,所述数据模块用于提供该软件在功能实现 过程中所需要的本地配置数据以及执行过程中的用户保留数据。
进一步地,上述方法中,所述客户端主机或服务器端主机的操作系统为 MacOS、 Windows或Linux 。
为了解决上述技术问题,本发明还提供了一种软件在线升级装置,该装置包括依次连接的新版本功能模块、新版本卸栽器和安装器,其中,新版本功能 模块用于软件升级后实现新版本的基本功能,新版本卸载器用于对升级后的版 本进行卸载,安装器用于实现所述新版本功能模块和新版本卸载器的安装。
为了解决上述技术问题,本发明还提供了一种软件在线升级系统,包括客 户端主机和服务器端主机,客户端主机包括依次连接的功能模块、数据模块和 旧版本下载器,服务器端主机包括软件升级包,该升级包包括依次连接的新版
本功能模块、安装器和新版本卸载器,其中 所述功能模块用于实现该软件的基本功能;
所述数据模块用于提供该软件在功能实现过程中所需要的本地配置数据以 及执行过程中的用户保留数据;
所述旧版本卸载器用于卸载本地软件中的所述功能模块; 所述新版本功能模块用于软件升级后实现新版本的基本功能; 所述安装器用于实现所述新版本功能模块和新版本卸载器的安装; 所述新版本卸载器用于对升级后的版本进^^卸载。
进一步地,上述系统中,客户端主机或服务器端主机的操作系统为MacOS、 Windows或Linux 。
本发明所公开的技术方案,通过客户端主机下载服务器端主机的升级包到 本地并启动已下载的升级包中的安装器对软件进行升级,可以使软件的升级具 备更好的扩展性、灵活性和永久性,并提高了软件产品的生命周期。
图1是本发明实施例客户端软件卸载器的执行过程流程图2是本发明实施例下载到本地客户端升级包中的安装器的4丸行流程图3是本发明实施例客户端软件在线升级过程的流程图4是本发明实施例软件在线升级系统示意图。
具体实施例方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合 附图及实施例,对本发明提出的一种软件在线升级的方法、装置及系统,进行详细说明。
在本发明实施例中,以无线数据上网数据卡在MacOS ( Mac Operating System,是苹果公司开发的一种图形用户界面操作系统的简称)操作系统上的 终端软件为例,并结合附图对技术方案的实施作详细的描述。
针对无线数据上网数据卡的终端软件,通过如下步骤来完成本发明实施例 中的升级功能
1、 根据当前数据卡终端软件的功能模块结构设计、编写对应的卸载器程序, 使该卸载器可以在保留本地用户信息的条件下完成本地软件功能模块的卸载。 同时,该卸载器还必须拥有通知调用者当前卸载进度的功能。在本实施例中, 使用管道来完成这一功能。
2、 在数据卡终端软件的主程序中加入Http协议交互模块、XML文件操作 模块和ftp下载功能模块,分别用于客户端与服务器端的版本信息交互和升级包 下载。
3、 将数据卡终端软件的主程序与卸载器放在"/Application"目录下,将用 户的相关信息以plist文件格式的形式存放在7System/Library/ModemList/User,, 目录下,将当前软件版本相关的一些配置信息以plist文件格式的形式存放在
"/System/Library/ModemList/Version,,下。
4、 根据当前软件升级包中的功能模块结构设计、编写对应的安装器,使该 安装器可以将升级包中的功能模块和新版本卸载器安装到本地。同时,该安装 器还必须拥有本地卸载器的调用、卸载进度监控、安装进度控制等功能。
5、 将升级过程中所需要的功能模块和新版本卸载器放入升级包的Function 子目录中,同时将安装器i文入升级包的Install子目录中。
6、 在服务器端启动ftp服务进程和对应的Http协议交互进程,以配合客户 端升级包的下载。
图1为本发明实施例客户端软件卸载器的运行过程流程图,包括如下步骤 步骤101,通过参数获得命名管道的名称并建立命名管道连接; 在该实施例中,命名管道用来将当前的卸载进度等情况通知给升级包中的 安装器。步骤102,检查本地升级配置文件中的卸栽状态标志UninstallFlag值,如果 UninstallFlag值为True则执行步骤106,否则执行步骤103;
步骤103,根据保存在本地的卸载配置单开始进行卸载;
步骤104,卸载过程中,将本地的卸载进度实时的保存在本地卸载配置单中 并同时上报给安装器;
步骤105,卸载完成,改变本地升级配置文件中的卸载状态标志UninstallFlag 值为True;
步骤106,通过管道通知安装器完成卸载并退出卸载过程。
在MacOS系统主机下,客户端软件中卸载器的具体开发如下
1、通过参数获得命名管道的名称并建立命名管道连接。命名管道用来将当
前的卸载进度等情况通知给升级包中的安装器。
2 、对MacOS操作系统中"/System/Library/ModemList/Version/[版本
号]UninstallJnfo.plist"文件进行操作,并将当前的卸载状态和进度记录在该文
件中。该文件将用于当卸载被意外终止时,用户再次启动升级程序后,卸载器
仍可以根据本地的卸载信息继续卸载进程。
3、 结束终端软件所涉及的相关进程,并删除"/Application"目录下的相关 可执行文件。
4、 在程序的每一个重要步骤执行后,都将当前的卸载信息记录在名为"[版 本号]UninstallJnfo.plist,,文件中,并通过管道通知给升级包中的安装器。
5、 当卸载完成后,自动结束自身进程。
图2为本发明实施例下载到本地客户端升级包中的安装器的执行流程图, 包括如下步骤
步骤201,;险查本地升级配置文件中的升级状态标志值,如果标志值为l则 执行步骤202,如杲标志值为0则执行步骤203,如果标志值为-1则执行步骤204; 步骤202,根据保存在本地的升级配置单继续进^f于升级流程; 步骤203,将升级包删除,并从开机启动项中删除安装器运行项; 步骤204,将升级状态标志值赋为1,开始升级;步骤205,在开才几启动项中加入安装器运4亍项;
步骤206,启动本地卸载器并以参数的形式将管道名传递给卸载器,以实时 监控本地卸载情况;
步骤207,当监控到卸载完成后,对升级包中的功能^^莫块进行安装; 步骤208,完成功能模块安装后,对升级包中的新卸载器进行安装; 步骤209 ,修改本地版本信息文件中卸载器的新名称及路径; 步骤210,将升级状态标志值赋为O,升级成功。
因升级包中安装器的执行需要在系统主机侧进行软件设计,在MacOS系统 主机下,升级包中安装器的具体开发如下
1、 建立命名管道。该管道用来接收卸载器卸载进度情况。
2、 对MacOS才喿作系统中 "/System/Library/ModemList/Version/[版本 号]Update一Info.plist,,文件进行操作,并将当前的升级状态和进度记录在该文件 中。该文件将用于当升级包安装过程:被意外终止时,用户再次启动升级程序后, 安装器仍可以根据本地的升级信息继续升级包的安装过程。
3、 当名为"[版本号]Updatejnfo.plist"文件中的"UpdateFlag"值为-1 (未 升级)时,将自身加入到系统的开机启动项中。当"UpdateFlag,,值为1 (正在 升级中)时,将根据文件中的升级进度记录,继续进行升级包的安装过程。当
"UpdateFlag"值为0 (升级成功)时,删除本地升级包,将自身从开机启动项 中删除,并结束自身进程。
4、 对本地7System/Library/ModemList/Version/[版本号]Update_ Info.plist,, 文件进行操作,并获得本地卸载器路径。通过该路径,启动卸载器,并以参数 的形式将命名管道的名称传递给卸载器,开始卸载进程。同时,启动监控线程, 通过命名管道获得卸载器的卸载进度情况。
5、 当卸载器完成卸载任务后,将升级包中新版本的可执行程序、卸载器等 复制到"/Application "目录下,将新版本相关版本信息配置文将复制到
7System/Library/ModemList/Version"目录下。最后,对该新可4丸行程序的外又限、 开机启动项等进行相关设置。
6、 在程序的每一个重要步骤执行后,都将当前的升级包安装信息记录在"[版 本号]Update —Info.plist,,文件中。7、当升级包安装完成后,自动结束自身进程。
图3为本发明实施例客户端软件在线升级过程的流程图,包括如下步骤 步骤301,检查本地软件版本状态和网络状态是否符合升级要求,如果符合 升级要求则执行步骤302,否则就不升级,结束流程;
步骤302,与服务器端进行交互,获得所需升级包的地址; 步骤303,从^^务器下载升级包到本地; 步骤304,启动升级包中的安装器,开始升级。 其中,步骤304具体包括
(1) 客户端运行本地软件中的旧版本卸载器,对本地软件中的功能模块进 行卸载并提示安装器卸载进度,直到卸载完成; .
(2) 客户端启动所述已下载的升级包中的安装器对新版本功能模块和新版 本卸载器进行安装。
图4为本发明实施例软件在线升级系统示意图,该系统包括客户端主机和 服务器端主机。客户端主机包括依次连接的功能模块、数据模块和旧版本卸载 器,功能模块用于实现该软件的基本功能,数据模块用于提供该软件在功能实 现过程中所需要的本地配置数据以及执行过程中的用户保留数据,旧版本卸载 器用于卸载本地软件中的所述功能模块;服务器端主机包括软件升级包,该升 级包包括新版本功能模块、安装器和新版本卸载器,新版本功能模块用于软件 升级后实现新版本的基本功能,安装器用于实现所述新版本功能模块和新版本 卸载器的安装,新版本卸载器用于对升级后的版本进行卸载。
其中,在本实施例中,以数据卡终端软件和杀毒软件为例,数据卡终端软 件的基本功能主要包括拨号上网、短信收发、电话记录和语音通话等。杀毒 软件的基本功能主要包括实时监控、病毒扫描、病毒处理、系统恢复等。当 然,客户端主机或服务器端主机的操作系统可以为MacOS、 Windows或Linux。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的寸呆护范围之内。
权利要求
1、一种软件在线升级方法,其特征在于,所述方法包括当客户端主机检测到本地软件符合服务器端主机软件升级要求时,所述客户端主机下载所述服务器端主机的升级包到本地,所述升级包的下载完成后,所述客户端主机启动已下载的升级包中的安装器对所述本地软件进行升级。
2、 如权利要求l所述的方法,其特征在于,所述启动已下载的升级包中的安装器对软件进行升级具体包括所述客户端主机运行本地软件中的旧版本卸载器,对本地软件中的功能模块进行卸载并提示安装器卸载进度,卸载完成后,所述客户端主机启动所述已下载的升级包中的安装器对新版本功能模块和新版本卸载器进行安装。
3、 如权利要求2所述的方法,其特征在于,所述旧版本卸载器根据所^户端主机本地的软件结构编辑而成,所述旧版本卸载器在保留本地用户信息的条件下能够完成本地软件功能模块的卸载或通知所述安装器当前卸载的进度。
4、 如权利要求2所述的方法,其特征在于,所述安装器根据所述服务器端主机升级包中的软件结构编辑而成,所述安装器能够将升级包中的新版本功能模块或/和新版本卸载器安装到所^户端主机上。
5、 如权利要求3所述的方法,其特征在于,所述旧版本卸载器通过命名管道通知所述安装器当前卸载的进度。
6、 如权利要求4或5所述的方法,其特征在于,所述软件结构包括功能模块和数据模块,所述功能模块用于实现该软件的基本功能,所述数据模块用于提供该软件在功能实现过程中所需要的本地配置数据以及执行过程中的用户保留数据。
7、 如权利要求6所述的方法,其特征在于,所述客户端主机或服务器端主才几的操作系统为MacOS 、 Windows或Linux。
8、 一种软件在线升级装置,其特征在于,所述装置包括依次连接的新版本功能模块、新版本卸载器和安装器,其中,新版本功能模块,用于软件升级后实现新版本的基本功能;新版本卸载器,用于对升级后的版本进行卸载;安装器,用于实现所述新版本功能模块和新版本卸载器的安装。
9、 一种软件在线升级系统,包括客户端主机和服务器端主机,其特征在于, 所述客户端主机包括依次连接的功能模块、数据模块和旧版本下载器,所述服 务器端主机包括软件升级包,该升级包包括依次连接的新版本功能模块、安装 器和新版本卸载器;其中,所述功能模块用于实现该软件的基本功能;所述数据模块用于提供该软件在功能实现过程中所需要的本地配置数据以 及执行过程中的用户保留数据;所述旧版本卸载器用于卸载本地软件中的所述功能模块; 所述新版本功能模块用于软件升级后实现新版本的基本功能; 所述安装器用于实现所述新版本功能模块和新版本卸载器的安装; 所述新版本卸载器用于对升级后的版本进行卸载。
10、 如权利要求9所述的系统,其特征在于,所述客户端主机或服务器端 主才几的才喿作系统为MacOS、 Windows或Linux。
全文摘要
本发明公开了一种软件在线升级的方法、装置及系统,该方法包括当客户端主机检测到本地软件符合服务器端主机软件升级要求时,所述客户端主机下载所述服务器端主机的升级包到本地,所述升级包的下载完成后,所述客户端主机启动已下载的升级包中的安装器对所述本地软件进行升级。采用本发明的技术方案后,通过客户端主机下载服务器端主机的升级包到本地并启动已下载的升级包中的安装器对软件进行升级,可以使软件的升级具备更好的扩展性、灵活性和永久性,并提高了软件产品的生命周期。
文档编号G06F9/445GK101593121SQ20091010811
公开日2009年12月2日 申请日期2009年6月23日 优先权日2009年6月23日
发明者轶 周 申请人:中兴通讯股份有限公司