CN101697133A - 软件升级方法、软件升级系统以及客户端 - Google Patents
软件升级方法、软件升级系统以及客户端 Download PDFInfo
- Publication number
- CN101697133A CN101697133A CN200910236558A CN200910236558A CN101697133A CN 101697133 A CN101697133 A CN 101697133A CN 200910236558 A CN200910236558 A CN 200910236558A CN 200910236558 A CN200910236558 A CN 200910236558A CN 101697133 A CN101697133 A CN 101697133A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- client
- engine
- software
- installation engine
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
本发明提供一种软件升级方法、软件升级系统以及客户端,所述软件升级方法包括以下步骤:客户端中的升级引擎获取软件升级包,所述软件升级包中包括一安装引擎;所述升级引擎调用所述安装引擎,使得所述安装引擎在被调用启动后,将所述升级软件包中的升级资源文件更新到所述客户端。本发明能够有效提高软件升级的灵活性和扩展性。
Description
技术领域
本发明涉及软件升级技术领域,尤其涉及一种软件升级方法、软件升级系统以及客户端。
背景技术
随着软件行业和Internet网络发展的日新月异,软件产品的生命周期也在不断缩短,因此,软件的在线升级功能应运而生。目前,越来越多的软件支持在线升级功能,这一功能增加了软件的扩展性和灵活性,提高了软件的生命周期。同时,也给传统的软件设计方案提出了挑战,以往的全功能一步到位的软件设计理念已经不再提倡,而具有良好扩展性、可以不断升级的软件设计理念已成为了主流。
现有技术中的软件升级方法的主要过程为:在联网的情况下,客户端软件中的升级引擎检测远程服务器中是否存在对应的软件升级包,如果存在,则将软件升级包下载到本地,然后调用客户端软件中的安装引擎,将软件升级包中的内容更新到本地。
现有技术中的软件升级方法主要存在以下问题:开发人员在开发软件升级包时,需要完全按照客户端软件中的安装引擎中的相关设置进行开发,例如,需要根据安装引擎中预先设置的获取路径,将特定的更新文件放置在软件升级包的特定位置处,以使得安装引擎能够获取到该更新文件,这导致开发人员非常被动,灵活性很差。
发明内容
有鉴于此,本发明提供一种软件升级方法、软件升级系统以及客户端,能够有效提高软件升级的灵活性和扩展性。
为解决上述问题,本发明提供一种软件升级方法,包括以下步骤:
客户端中的升级引擎获取软件升级包,所述软件升级包中包括一安装引擎;
所述升级引擎调用所述安装引擎,使得所述安装引擎在被调用启动后,将所述升级软件包中的升级资源文件更新到所述客户端。
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,具体为:
所述安装引擎获取所述软件升级包中的升级资源文件列表;
所述安装引擎根据所述升级资源文件列表中记录的每个升级资源文件源存储路径、目的路径以及相应的操作符,将所述升级资源文件更新到所述客户端。
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之前还包括:
所述安装引擎获取所述客户端的本地版本信息;
所述安装引擎根据所述客户端的本地版本信息,备份所述客户端以及相关数据;
所述安装引擎根据备份的所述客户端以及相关数据,生成版本备份文件列表。
所述安装引擎根据备份的所述客户端以及相关数据,生成版本备份文件列表,之后还包括:
在升级失败时,所述安装引擎根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据。
所述安装引擎根据备份的所述客户端以及相关数据,生成版本备份文件列表,之后还包括:
所述安装引擎添加系统加载项,所述系统加载项用于在升级过程意外终止,且在系统重启时,调用所述安装引擎;
所述安装引擎在被所述系统加载项调用时,根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据;
在所述客户端以及相关数据恢复完成后,所述安装引擎删除所述系统加载项。
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之前还包括:
所述安装引擎调用所述软件升级包中的升级前执行脚本,所述升级前执行脚本用于关闭所述客户端当前运行的相关进程;
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之后还包括:
所述安装引擎调用所述软件升级包中的升级后执行脚本,所述升级后执行脚本用于启动所述升级前执行脚本关闭的所述客户端当前运行的相关进程,并设置所述客户端中的相关文件的权限。
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之前还包括:
所述安装引擎根据所述软件升级包中的用户配置信息列表,备份所述客户端中的用户配置信息;
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之后还包括:
在所述客户端升级完成后,所述安装引擎根据所述用户配置信息列表,恢复备份的用户配置信息。
所述软件升级方法还包括:
所述安装引擎计算所述升级资源文件的更新进度,并向所述升级引擎上报所述更新进度。
本发明还提供一种软件升级系统,包括一具有升级引擎的客户端和软件升级包,所述升级引擎包括:
获取模块,用于获取所述软件升级包;
调用模块,用于调用所述软件升级包中的安装引擎;
所述软件升级包包括:
安装引擎,用于在被所述升级引擎调用启动后,将所述升级软件包中的升级资源文件更新到所述客户端。
所述安装引擎还包括:
本地版本信息获取模块,用于获取所述客户端的本地版本信息;
备份模块,用于根据所述客户端的本地版本信息,备份所述客户端以及相关数据;
版本备份文件列表生成模块,用于根据备份的所述客户端以及相关数据,生成版本备份文件列表。
所述安装引擎还包括:
第一回退模块,用于在升级失败时,根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据。
所述安装引擎还包括:
添加模块,用于添加系统加载项,所述系统加载项用于在升级过程意外终止,且在系统重启时,调用所述安装引擎;
第二回退模块,用于在被所述系统加载项调用时,根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据;
删除模块,用于在所述客户端以及相关数据恢复完成后,删除所述系统加载项。
所述安装引擎还包括:
升级前执行脚本调用模块,用于在执行所述客户端的升级前,调用所述软件升级包中的升级前执行脚本,所述升级前执行脚本用于关闭所述客户端当前运行的相关进程;
升级后执行脚本调用模块,用于在完成所述客户端的升级时,调用所述软件升级包中的升级后执行脚本,所述升级后执行脚本用于启动所述升级前执行脚本关闭的所述客户端当前运行的相关进程,并设置所述客户端中的相关文件的权限。
所述安装引擎还包括:
用户配置信息备份模块,用于根据所述软件升级包中的用户配置信息列表,备份所述客户端中的用户配置信息;
恢复模块,用于在所述客户端升级完成后,根据所述用户配置信息列表,恢复备份的用户配置信息。
本发明还提供一种客户端,包括一升级引擎,所述升级引擎包括:
获取模块,用于获取软件升级包;
调用模块,用于调用所述软件升级包中的安装引擎,使得所述安装引擎在被调用启动后,将所述升级软件包中的升级资源文件更新到所述客户端。
本发明具有以下有益效果:
将执行客户端升级的安装引擎设置于软件升级包中,在所述软件升级包中安装引擎被客户端中的升级引擎调用时,执行客户端的升级,由于安装引擎不直接依赖于本地,因此,提高了升级方案的灵活性和扩展性;另外,软件升级包还能够轻易地通过安装引擎获取客户端的本地信息,从而能够更加灵活地实施客户端的升级;
软件升级包中仅包括当前需要更新的资源文件,即将升级资源文件的粒度拆分到最小,因此,极大地减小了软件升级包的大小,节省了用户升级流量开销;
在升级过程中对用户配置信息进行备份,并在升级完成后恢复用户配置信息,解决了升级过程中用户配置信息丢失的问题,提高了用户体验;
采用以程序和脚本交互的更新方式,解决了Mac系统下文件更新的权限问题。
附图说明
图1为本发明实施例的软件升级方法的一流程示意图;
图2为本发明实施例的软件升级方法的另一流程示意图;
图3为本发明实施例的软件升级方法的又一流程示意图;
图4为本发明实施例的安装引擎备份无线上网卡客户端的方法流程示意图;
图5为本发明实施例的安装引擎更新无线上网卡客户端的方法的流程示意图;
图6为本发明实施例的软件升级系统的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明实施例提供一种软件升级方法,该软件升级方法包括以下步骤:
步骤一,客户端中的升级引擎获取软件升级包,所述软件升级包中具有一安装引擎;
客户端中的升级引擎获取软件升级包的方法可以为:检测远程服务器上是否存在软件升级包,并在检测到远程服务器上存在软件升级包时,将软件升级包从远程服务器上下载到本地。
步骤二,所述升级引擎调用所述软件升级包中的安装引擎,使得所述安装引擎在被调用启动后,将所述软件升级包中的升级资源文件更新到所述客户端。
上述实施例中,由于执行客户端升级的安装引擎设置于软件升级包中,不依赖于本地设置,因此有效能够提高软件升级包的开发灵活性。另外,软件升级包还能够轻易地通过安装引擎获取客户端的本地信息,例如客户端的版本号等信息,从而能够更加灵活地实施客户端的升级。
本发明实施例中的客户端即通常所说的客户端软件,例如,无线上网卡客户端、即时通讯客户端等,所述客户端可以划分为三个主要模块:功能模块、数据模块和升级引擎,其中,功能模块主要用于实现客户端的基本功能;数据模块主要用于提供客户端在功能实现过程中所需要的本地配置数据,以及执行过程中生成的用户保留数据;升级引擎主要用于调用软件升级包中的安装引擎,从而由软件升级包中的安装引擎执行客户端的升级。
本发明实施例中的软件升级包主要包括:安装引擎和升级资源文件,其中,升级资源文件是指当前需要更新的资源文件,安装引擎主要用于将升级资源文件更新到所述客户端。所述安装引擎是根据当前需要升级的客户端的功能模块的结构设计而编写的。
现有技术中的客户端升级过程,通常等价于完全安装软件的过程,软件升级包中除了包括当前需要更新的资源文件外,还包括其他资源文件,对客户端的一次微小的改动,均需要通过完全升级客户端来实现,从而导致软件升级包很大,浪费了用户下载流量。本发明实施例的软件升级包中仅包括当前需要更新的资源文件,即将升级资源文件的粒度拆分到最小,因此,极大地减小了软件升级包的大小,节省了用户的升级流量开销。
由于软件升级包中的升级资源文件粒度拆分到了最小,对于安装引擎来讲,并不知道需要更新的升级资源文件的信息,因此,本发明实施例的软件升级包中还具有一升级资源文件列表,用于记录软件升级包中所有的升级资源文件的信息,例如,每个升级资源文件在软件升级包中的源存储路径、目的安装路径以及相应的操作符等信息。安装引擎在执行客户端的升级时,首先获取软件升级包中的升级资源文件列表,并根据所述升级资源文件列表中记录的每个升级资源文件的源存储路径、目的安装路径以及相应的操作符,逐项将升级资源文件更新到客户端。
下面详细介绍本发明实施例的安装引擎如何执行客户端的升级的过程。
如图1所示为本发明实施例中的软件升级方法的一流程示意图,所述软件升级方法包括以下步骤:
步骤101,软件升级包中的安装引擎被调用启动后,根据客户端的本地配置文件,获取客户端的本地版本信息。所述本地版本信息包括:客户端的UI(用户界面)名称、UI完整的路径、驱动、Lib库等。
步骤102,所述安装引擎根据客户端的本地版本信息,备份所述客户端以及相关数据。
为了防止客户端升级失败,所述安装引擎还具有回退功能,即所述安装引擎在执行客户端的升级之前,对客户端以及相关数据进行备份;一旦客户端升级失败,所述安装引擎则根据备份的数据,执行客户端的版本回退,将客户端恢复到升级前的状态。
另外,在该步骤中,所述安装引擎还可以根据需要备份的所述客户端以及相关数据的数目,计算当前备份进度,并向所述升级引擎上报所述备份进度,由所述升级引擎将所述备份进度显示给用户。
步骤103,所述安装引擎根据备份的客户端以及相关数据,生成版本备份文件列表,所述版本备份文件列表中存储有备份数据的名称、源存储路径、目的存储路径等信息。
在客户端升级失败时,所述安装引擎根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据。具体的,在执行恢复所述客户端以及相关数据操作时,所述安装引擎将版本备份文件列表中记录的备份数据的目的存储路径作为恢复操作的源路径,将版本备份文件列表中记录的备份数据的源存储路径作为恢复操作的目的路径,执行所述客户端的版本回退操作,使得所述客户端恢复到升级前的状态。
步骤104,所述安装引擎添加系统加载项,所述系统加载项用于在升级过程意外终止,且在系统重启时,调用所述安装引擎执行客户端的版本回退。
在进行客户端的升级过程中,可能会发生系统意外关机或安装引擎意外崩溃等情况,因此,在执行客户端升级之前,所述安装引擎可以添加一系统加载项,所述系统加载项能够在系统重启时,执行调用软件升级包中的安装引擎的功能。所述安装引擎在被系统加载项调用时,可以根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据,即执行客户端的版本回退操作。
步骤105,所述安装引擎调用软件升级包中的升级前执行脚本,所述升级前执行脚本用于关闭所述客户端当前运行的相关进程。
在Mac OS系统下,客户端升级时,涉及对相关进程的控制和对文件权限的操作,因此,本发明实施例的软件升级包中增加了升级脚本文件,用于对客户端中的相关进程进行控制以及对相关文件的权限进行设置。所述升级脚本文件包括升级前执行脚本和升级后执行脚本。此时,软件升级包中的安装引擎还具有与脚本交互的功能,在执行客户端的升级之前,调用软件升级包中的升级前执行脚本,关闭客户端当前运行的相关进程。
步骤106,所述安装引擎获取所述软件升级包中的升级资源文件列表,并根据所述升级资源文件列表中记录的每个升级资源文件源存储路径、目的安装路径以及相应的操作符,将所述升级资源文件更新到所述客户端;
根据升级的不同情况,所述操作符可以包括:add(添加)、delete(删除)、replace(替换)、modify(修改)和move(移动)。
所述安装引擎在执行客户端的升级过程中,可以根据升级资源文件的数目,计算升级资源文件的当前更新进度,并向所述升级引擎上报所述更新进度,由所述升级引擎将所述更新进度显示给用户。
步骤107,在完成所述客户端的升级后,所述安装引擎调用所述软件升级包中的升级后执行脚本,所述升级后执行脚本用于启动所述升级前执行脚本关闭的所述客户端当前运行的相关进程,并设置所述客户端中的相关文件的权限。
由于在Mac系统下,客户端的文件更新往往涉及权限问题,使得某些文件无法更新或更新后文件属性变化,在本发明实施例中,所述升级后执行脚本则可以对客户端中的相关文件进行权限的设置。
步骤108,所述安装引擎删除所述系统加载项,并设置升级成功标志,提示用户升级成功。
另外,客户端中通常还包括一些用户配置信息,现有技术中在进行客户端的升级时,并没有将用户配置信息与客户端的其他文件完全分离,导致部分用户配置信息在升级过程中丢失。
为了防止用户配置信息在升级过程中丢失,在本发明实施例中的软件升级包中,还包括一用户配置信息列表,所述用户配置信息列表中记录有客户端软件中的用户配置信息的名称、存储路径等信息,所述安装引擎在执行客户端软件的升级时,可以根据所述软件升级包中的用户配置信息列表,备份所述客户端中的用户配置信息。在完成客户端的升级后,所述安装引擎还可以根据所述用户配置信息列表,恢复备份的用户配置信息。
下面以上述实施例中的客户端为Mac OS操作系统上的无线上网卡客户端为例,对本发明实施例的软件升级方法进行详细描述。
如图2所示为本发明实施例的软件升级方法的另一流程示意图,本发明实施例中的安装引擎是根据无线上网卡客户端的功能模块结构设计而编写的,所述软件升级方法包括以下步骤:
步骤201,软件升级包中的安装引擎被无线上网卡客户端中的升级引擎调用启动后,通过读取无线上网卡客户端的本地版本信息文件localInfo.plist,获取无线上网卡客户端的本地版本信息,包括:可变部分文件和固定目录文件。所述可变部分文件为客户端中用户可自主设定的文件,固定目录文件为客户端系统文件,用户不可更改。
无线上网卡客户端在本地安装完成后,会在/System/Library/ModemList目录下,创建本地版本信息文件localInfo.plist,所述本地版本信息文件用于记录无线上网卡客户端的UI(用户界面)名称、UI完整的路径、驱动、Lib库等信息。
步骤202,所述安装引擎将本地版本信息备份到无线上网卡的/tmp/RestoreDir/Contents路径下。
步骤203,完成无线上网卡客户端的数据备份后,所述安装引擎创建版本备份文件列表backupInfo.plist文件。一旦无线上网卡客户端升级失败,安装引擎则可以根据版本备份文件列表backupInfo.plist文件中的备份信息,将无线上网卡客户端恢复至升级前的状态。
步骤204,所述安装引擎调用软件升级包中的升级前执行脚本,所述升级前脚本用于关闭无线上网卡客户端当前运行的相关进程、unload(卸载)驱动程序、unload PPPMonitor(拨号端口)程序。
在Mac OS系统下,无线上网卡客户端升级时,涉及对相关进程的控制和对文件权限的操作,因此,软件升级包中加入了脚本文件(升级前执行脚本和升级后执行脚本)。
步骤205,安装引擎获取升级资源文件列表undateInfo.plist文件,根据undateInfo.plist文件中记录的信息,执行无线上网卡客户端的升级。
当软件升级包被下载到本地解压缩后,会将升级资源文件列表updateInfo.plist文件存放在/Library/Auto_Update/CMUpdatePackage目录下,所述updateInfo.plist文件记录了每个升级资源文件在升级包中的源存储路径、将要被安装到所述无线上网卡客户端中的目的安装路径以及相应的操作符,根据升级的不同情况,所述操作符可以包括:add(添加)、delete(删除)、replace(替换)、modify(修改)和move(移动)。
另外,在具体实现时,所述安装引擎读取所述升级资源文件列表,根据所述升级资源文件列表,在内存中创建升级操作列表,逐项将升级操作列表中的升级资源文件更新到无线上网卡客户端中。
所述安装引擎同时还可以根据软件升级包中的用户配置信息列表,对无线上网卡客户端中的用户配置信息进行备份。
步骤206,安装引擎向升级引擎上报更新进度,在Mac系统下,可以通过AppleEvent消息来完成安装引擎与升级引擎的通信。
在开发安装引擎时,需要注册AppleEvent事件,指定对应的AppleEvent消息类型和目标进程,编写AppleEvent事件发送函数,发送函数的功能包括两个部分:一是向升级引擎上报更新进度;二是向升级引擎上报安装过程中的错误码。
步骤207,无线上网卡客户端升级完成后,安装引擎调用升级后执行脚本,所述升级后执行脚本用于重启升级前关闭的相关进程、load(装载)驱动程序、load PPPMonitor程序,并修改相关配置文件的权限,同时,引导自启动程序脚本、卸载程序脚本,并更新本地版本信息。
在升级过程中,为了防止发生安装引擎意外崩溃或系统意外关机等情况,还需要在备份数据后,增加一安装引擎的系统加载项,使得系统在重启后,能够执行所述系统加载项,从而调用软件升级包中的安装引擎进行无线上网卡客户端的版本回退,下面将详细介绍该过程。
如图3所示为本发明实施例的软件升级方法的又一流程示意图,所述软件升级方法包括以下步骤:
步骤301,软件升级包中的安装引擎在被无线上网卡客户端中的升级引擎调用启动后,读取/System/Library/ModemList下的升级状态标志updateState.plist文件,检测所述升级状态标志updateState.plist的值,如果升级状态标志updateState.plist的值为YES表示未升级,执行步骤302,如果为NO,说明上次升级失败,执行步骤311。
步骤302,安装引擎对无线上网卡客户端进行数据备份。
步骤303,安装引擎判断是否成功备份无线上网卡客户端,如果是,执行步骤304,否则执行步骤312。
步骤304,安装引擎将/System/Library/ModemList下的升级状态标志updateState.plist的值设置为:NO。
步骤305,安装引擎在/Library/LaunchAgents目录下,创建安装引擎的系统加载项文件cn.com.zte.updater.plist,系统加载项文件cn.com.zte.updater.plist中包括安装引擎在软件升级包中的位置,并设置系统加载项文件cn.com.zte.updater.plist为root权限和可执行权限。一旦升级出现意外情况,系统重新启动后,将会根据该系统加载项文件cn.com.zte.updater.plist,自动调用安装引擎进行无线上网卡客户端的版本回退操作。
步骤306,安装引擎将软件升级包中的升级资源文件更新到无线上网卡客户瑞。
步骤307,安装引擎判断无线上网卡客户端是否更新成功,如果是,执行步骤308,否则执行步骤310。
步骤308,安装引擎向升级引擎发送升级成功标志消息。
步骤309,安装引擎将升级状态标志updateState.plist的值置为:YES,并把cn.com.zte.updater.plist文件从系统中删除,同时删除版本备份文件列表,并退出升级过程。
步骤310,安装引擎向升级引擎发送升级失败消息。
步骤311,安装引擎执行无线上网卡客户端的版本回退操作,恢复无线上网卡客户端升级前的状态,版本回退完成后,执行步骤309。
步骤312,安装引擎向升级引擎上报备份失败消息,并退出升级过程。
下面详细介绍本发明实施例中的安装引擎对无线上网卡客户端进行数据备份的过程。
如图4所示为本发明实施例的安装引擎备份无线上网卡客户端的方法流程示意图,所述备份方法包括以下步骤:
步骤401,安装引擎向升级引擎发送消息,指示当前升级状态为版本备份状态。
步骤402,安装引擎创建备份路径/tmp/RestoreDir/Contents。
步骤403,安装引擎读取/System/Library/ModemList目录下的本地版本信息文件localInfo.plist,获取本地版本信息,如UI名称、UI路径、驱动名称、库名称信息。
步骤404,安装引擎确定本地版本信息中各个文件在备份目录下的具体路径,创建备份文件路径的源和目的字典。
步骤405,安装引擎根据创建的备份文件路径的源和目的字典,获取所有备份文件的数目,并根据备份文件的数目,计算备份进度。
步骤406,安装引擎根据创建的备份文件路径的源和目的字典,对本地版本信息中各个文件逐项进行备份,并向升级引擎上报备份进度;
步骤407,安装引擎判断备份是否成功,如果是,执行步骤409,否则执行步骤408;
步骤408,安装引擎向升级引擎发送错误码,并退出升级过程。
步骤409,安装引擎根据备份文件路径的源和目的字典,在/tmp/RestoreDir/Contents路径下,创建版本备份文件列表backupInfo.plist文件。
步骤410,备份完成后,安装引擎向升级引擎发送备份成功消息。
下面详细介绍本发明实施例中的安装引擎更新无线上网卡客户端的过程。
如图5所示为本发明实施例的安装引擎更新无线上网卡客户端的方法的流程示意图,所述升级方法包括以下步骤:
步骤501,安装引擎向升级引擎发送消息,指示当前升级状态为版本更新状态。
步骤502,安装引擎在备份进度的基础上重新设置更新总进度。
步骤503,安装引擎运行软件升级包目录下的升级前执行脚本preflight,关闭升级相关的进程。升级过程有可能涉及更新驱动以及系统配置文件,因此必须要把这些系统加载项终止,否则,在Mac系统下即使更新了文件,但系统中运行的还是老的文件。
步骤504,安装引擎读取软件升级包中的undateInfo.plis文件,获取升级资源文件列表,并根据升级资源文件列表中记录的每一升级资源文件的源存储地址、目的安装地址和操作码,创建更新操作列表。
步骤505,安装引擎根据创建的更新操作列表,计算所有升级资源文件的数目,用于更新进度的计算。
步骤506,安装引擎根据创建的更新操作列表,将升级资源文件逐项更新到无线上网卡客户端。
对于用户配置信息,在升级过程中要加以保留,在软件升级包Packages/app/System/Library/ModemList目录下,userConfigFile.plist文件记录了所有的用户配置项。
用户配置信息一般记录在本地的setting.plist和dialConfig.plist文件中。setting.plist文件中记录的用户配置信息是用户对UI的操作造成的,比如设置自动联网、开机自启动等。因此必须要把这些用户配置信息罗列出来,在升级之前,首先要把这些信息保存起来,当更新完最新setting.plist文件后,再将这些用户配置项进行恢复。dialConfig.plist文件保存了用户的上网配置信息,有可能用户会添加新的配置信息进去,因此,必须把用户添加的部分提取出来,更新完成后再把这部分内容添加进来。更新的过程中还需要兼顾setting.plist文件,因为setting.plist中记录了当前默认的APN配置信息,如当前的数目以及用户所设置的默认选择项。因此,当dialConfig.plist文件进行更新后,必须要对setting.plist的相应设置项进行重新计算并更新。
步骤507,安装引擎判断是否更新成功,如果是,执行步骤508,否则,执行步骤511。
步骤508,安装引擎调用软件升级包目录下的升级后执行脚本postflight更新文件。
安装引擎调用软件升级包中的postflight脚本来调用相应的更新脚本。根据升级的需要在common文件中设置更新开关的开启和关闭的状态,postflight在执行过程中会检查这些字段,如果值为YES,就会调用相应的更新脚本。比如需要更新卸载程序,则需要把need_update_vninstall的值设为:YES,postflight就会调用卸载程序对应的更新脚本,该脚本位于软件升级包中的Resources/Uninstall目录下。
脚本文件还需要更新UI的配置文件。UI的属性记录在UI的Bandle中的info.plist文件中,包括UI名称、内外部版本号、支持的语言、时间等关键参数。另外,在/System/Library/ModemList目录下的localInfo.plist配置文件,记录本版本的状态,比如UI的名称以及路径,当前的版本号等信息,这个配置文件是在升级过程升级脚本生成的。每次升级都要更新本地的localInfo.plist配置文件,参数信息是通过软件升级包中的common文件来获取的,保证每一个版本都对应于一个版本配置文件,以便下次升级来准确获取本地的状态信息。
同时,postflight脚本还需要设定配置文件的权限。由于UI是普通权限的程序,而安装引擎是以root权限运行的程序,由它创建的一些配置文件也是root权限,使得UI运行时无法操作这些文件,所以,在更新的过程中,还需要将这部分配置文件设置为普通权限。
步骤509,安装引擎向升级引擎发送更新成功消息。
步骤510,安装引擎开启升级相关进程和服务。
当需要更新的文件更新完成后,需要重新加载到系统中才能生效,重新加载是通过运行软件升级包中的postflight脚本来实现的。postflight脚本负责重启进程,load驱动程序,load PPPMonitor程序。由于安装引擎是以root权限运行的,开启某些进程涉及到权限问题,比如自启动程序必须通过升级引擎的协助才能完成。
步骤511,安装引擎向升级引擎发送错误码。
如图6所示为本发明实施例的软件升级系统的结构示意图,所述软件升级系统包括一具有升级引擎601的客户端600和软件升级包700。
所述升级引擎601包括:
获取模块6011,用于获取所述软件升级包。
客户端中的升级引擎获取软件升级包的方法可以为:检测远程服务器上是否存在软件升级包,并在检测到远程服务器上存在软件升级包时,将软件升级包从远程服务器上下载到本地。
调用模块6012,用于调用所述软件升级包中的安装引擎;
所述软件升级包700包括:
安装引擎701,用于在被所述升级引擎调用启动后,将所述升级软件包中的升级资源文件更新到所述客户端。
上述实施例中,由于执行客户端升级的安装引擎设置于软件升级包中,不依赖于本地设置,因此有效能够提高软件升级包的开发灵活性。另外,软件升级包还能够轻易地通过安装引擎获取客户端的本地信息,例如客户端的版本号等信息,从而能够更加灵活地实施客户端的升级。
本发明实施例中的客户端即通常所说的客户端软件,所述客户端可以划分为三个主要模块:功能模块、数据模块和升级引擎,其中,升级引擎主要用于调用软件升级包中的安装引擎,从而由软件升级包中的安装引擎执行客户端的升级。
本发明实施例中的软件升级包主要包括:安装引擎和升级资源文件,其中,升级资源文件是指当前需要更新的资源文件,安装引擎主要用于将升级资源文件更新到所述客户端。所述安装引擎是根据当前需要升级的客户端的功能模块的结构设计而编写的。
本发明实施例的软件升级包中仅包括当前需要更新的资源文件,即将升级资源文件的粒度拆分到最小,因此,极大地减小了软件升级包的大小,节省了用户升级的流量开销。
由于软件升级包中的升级资源文件粒度拆分到了最小,对于安装引擎来讲,并不知道需要更新的升级资源文件的信息,因此,本发明实施例的软件升级包中还具有一升级资源文件列表,用于记录软件升级包中所有的升级资源文件的信息,例如,每个升级资源文件在软件升级包中的源存储路径、目的安装路径以及相应的操作符等信息。安装引擎在执行客户端的升级时,首先获取软件升级包中的升级资源文件列表,并根据所述升级资源文件列表中记录的每个升级资源文件的源存储路径、目的安装路径以及相应的操作符,逐项将升级资源文件更新到客户端。
为了防止客户端升级失败,所述安装引擎还具有回退功能,即所述安装引擎在执行客户端的升级之前,对客户端以及相关数据进行备份;一旦客户端升级失败,所述安装引擎则根据备份的数据,执行客户端的版本回退,将客户端恢复到升级前的状态。
因此,所述安装引擎还包括:
本地版本信息获取模块,用于获取所述客户端的本地版本信息;所述本地版本信息包括:客户端的UI(用户界面)名称、UI完整的路径、驱动、Lib库等。
备份模块,用于根据所述客户端的本地版本信息,备份所述客户端以及相关数据;
版本备份文件列表生成模块,用于根据备份的所述客户端以及相关数据,生成版本备份文件列表。
所述安装引擎还包括:
第一回退模块,用于在升级失败时,根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据。
在进行客户端的升级过程中,可能会发生系统意外关机或安装引擎意外崩溃等情况,因此,在执行客户端升级之前,所述安装引擎可以添加一系统加载项,所述系统加载项能够在系统重启时,执行调用软件升级包中的安装引擎的功能。所述安装引擎在被系统加载项调用时,可以根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据,即执行客户端的版本回退操作。
因此,所述安装引擎还包括:
添加模块,用于添加系统加载项,所述系统加载项用于在升级过程意外终止,且在系统重启时,调用所述安装引擎;
第二回退模块,用于在被所述系统加载项调用时,根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据;
删除模块,用于在所述客户端以及相关数据恢复完成后,删除所述系统加载项。
在Mac系统下,客户端升级时,涉及对相关进程的控制和对文件权限的操作,因此,本发明实施例的软件升级包中增加了升级脚本文件,用于对客户端中的相关进程进行控制以及对相关文件的权限进行设置。所述升级脚本文件包括升级前执行脚本和升级后执行脚本。
此时,所述安装引擎还包括:
升级前执行脚本调用模块,用于在执行所述客户端的升级前,调用所述软件升级包中的升级前执行脚本,所述升级前执行脚本用于关闭所述客户端当前运行的相关进程;
升级后执行脚本调用模块,用于在完成所述客户端的升级时,调用所述软件升级包中的升级后执行脚本,所述升级后执行脚本用于启动所述升级前执行脚本关闭的所述客户端当前运行的相关进程,并设置所述客户端中的相关文件的权限。
为了防止用户配置信息在升级过程中丢失,在本发明实施例中的软件升级包中,还包括一用户配置信息列表,所述用户配置信息列表中记录有客户端软件中的用户配置信息的名称、存储路径等信息,所述安装引擎在执行客户端软件的升级时,可以根据所述软件升级包中的用户配置信息列表,备份所述客户端中的用户配置信息。在完成客户端的升级后,所述安装引擎还可以根据所述用户配置信息列表,恢复备份的用户配置信息。
因此,所述安装引擎还包括:
用户配置信息备份模块,用于根据所述软件升级包中的用户配置信息列表,备份所述客户端中的用户配置信息;
恢复模块,用于在所述客户端升级完成后,根据所述用户配置信息列表,恢复备份的用户配置信息。
本发明实施例还提供一种客户端,所述客户端包括一升级引擎,所述升级引擎包括:
获取模块,用于获取软件升级包;所述升级引擎获取软件升级包的方法可以为:检测远程服务器上是否存在软件升级包,并在检测到远程服务器上存在软件升级包时,将软件升级包从远程服务器上下载到本地。
调用模块,用于调用所述软件升级包中的安装引擎,使得所述安装引擎在被调用启动后,将所述升级软件包中的升级资源文件更新到所述客户端。
上述实施例中,由于执行客户端升级的安装引擎设置于软件升级包中,不依赖于本地设置,因此有效能够提高软件升级包的开发灵活性。另外,软件升级包还能够轻易地通过安装引擎获取客户端的本地信息,例如客户端的版本号等信息,从而能够更加灵活地实施客户端的升级。
本发明实施例中的客户端即通常所说的客户端软件,所述客户端可以划分为三个主要模块:功能模块、数据模块和升级引擎,其中,升级引擎主要用于调用软件升级包中的安装引擎,从而由软件升级包中的安装引擎执行客户端的升级。
本发明实施例中的软件升级包主要包括:安装引擎和升级资源文件,其中,升级资源文件是指当前需要更新的资源文件,安装引擎主要用于将升级资源文件更新到所述客户端。所述安装引擎是根据当前需要升级的客户端的功能模块的结构设计而编写的。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种软件升级方法,其特征在于,包括以下步骤:
客户端中的升级引擎获取软件升级包,所述软件升级包中包括一安装引擎;
所述升级引擎调用所述安装引擎,使得所述安装引擎在被调用启动后,将所述升级软件包中的升级资源文件更新到所述客户端。
2.根据权利要求1所述的软件升级方法,其特征在于,所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,具体为:
所述安装引擎获取所述软件升级包中的升级资源文件列表;
所述安装引擎根据所述升级资源文件列表中记录的每个升级资源文件源存储路径、目的路径以及相应的操作符,将所述升级资源文件更新到所述客户端。
3.根据权利要求1所述的软件升级方法,其特征在于,所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之前还包括:
所述安装引擎获取所述客户端的本地版本信息;
所述安装引擎根据所述客户端的本地版本信息,备份所述客户端以及相关数据;
所述安装引擎根据备份的所述客户端以及相关数据,生成版本备份文件列表。
4.根据权利要求3所述的软件升级方法,其特征在于,所述安装引擎根据备份的所述客户端以及相关数据,生成版本备份文件列表,之后还包括:
在升级失败时,所述安装引擎根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据。
5.根据权利要求3所述的软件升级方法,其特征在于,所述安装引擎根据备份的所述客户端以及相关数据,生成版本备份文件列表,之后还包括:
所述安装引擎添加系统加载项,所述系统加载项用于在升级过程意外终止,且在系统重启时,调用所述安装引擎;
所述安装引擎在被所述系统加载项调用时,根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据;
在所述客户端以及相关数据恢复完成后,所述安装引擎删除所述系统加载项。
6.根据权利要求1所述的软件升级方法,其特征在于:
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之前还包括:
所述安装引擎调用所述软件升级包中的升级前执行脚本,所述升级前执行脚本用于关闭所述客户端当前运行的相关进程;
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之后还包括:
所述安装引擎调用所述软件升级包中的升级后执行脚本,所述升级后执行脚本用于启动所述升级前执行脚本关闭的所述客户端当前运行的相关进程,并设置所述客户端中的相关文件的权限。
7.根据权利要求1所述的软件升级方法,其特征在于:
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之前还包括:
所述安装引擎根据所述软件升级包中的用户配置信息列表,备份所述客户端中的用户配置信息;
所述安装引擎将所述升级软件包中的升级资源文件更新到所述客户端,之后还包括:
在所述客户端升级完成后,所述安装引擎根据所述用户配置信息列表,恢复备份的用户配置信息。
8.根据权利要求1所述的软件升级方法,其特征在于,还包括:
所述安装引擎计算所述升级资源文件的更新进度,并向所述升级引擎上报所述更新进度。
9.一种软件升级系统,包括一具有升级引擎的客户端和软件升级包,其特征在于:
所述升级引擎包括:
获取模块,用于获取所述软件升级包;
调用模块,用于调用所述软件升级包中的安装引擎;
所述软件升级包包括:
安装引擎,用于在被所述升级引擎调用启动后,将所述升级软件包中的升级资源文件更新到所述客户端。
10.根据权利要求9所述的软件升级系统,其特征在于,所述安装引擎还包括:
本地版本信息获取模块,用于获取所述客户端的本地版本信息;
备份模块,用于根据所述客户端的本地版本信息,备份所述客户端以及相关数据;
版本备份文件列表生成模块,用于根据备份的所述客户端以及相关数据,生成版本备份文件列表。
11.根据权利要求10所述的软件升级系统,其特征在于,所述安装引擎还包括:
第一回退模块,用于在升级失败时,根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据。
12.根据权利要求10所述的软件升级系统,其特征在于,所述安装引擎还包括:
添加模块,用于添加系统加载项,所述系统加载项用于在升级过程意外终止,且在系统重启时,调用所述安装引擎;
第二回退模块,用于在被所述系统加载项调用时,根据所述版本备份文件列表中记录的备份数据的源存储路径和目的存储路径,恢复所述客户端以及相关数据;
删除模块,用于在所述客户端以及相关数据恢复完成后,删除所述系统加载项。
13.根据权利要求9所述的软件升级系统,其特征在于,所述安装引擎还包括:
升级前执行脚本调用模块,用于在执行所述客户端的升级前,调用所述软件升级包中的升级前执行脚本,所述升级前执行脚本用于关闭所述客户端当前运行的相关进程;
升级后执行脚本调用模块,用于在完成所述客户端的升级时,调用所述软件升级包中的升级后执行脚本,所述升级后执行脚本用于启动所述升级前执行脚本关闭的所述客户端当前运行的相关进程,并设置所述客户端中的相关文件的权限。
14.根据权利要求9所述的软件升级系统,其特征在于,所述安装引擎还包括:
用户配置信息备份模块,用于根据所述软件升级包中的用户配置信息列表,备份所述客户端中的用户配置信息;
恢复模块,用于在所述客户端升级完成后,根据所述用户配置信息列表,恢复备份的用户配置信息。
15.一种客户端,包括一升级引擎,其特征在于,所述升级引擎包括:
获取模块,用于获取软件升级包;
调用模块,用于调用所述软件升级包中的安装引擎,使得所述安装引擎在被调用启动后,将所述升级软件包中的升级资源文件更新到所述客户端。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910236558A CN101697133A (zh) | 2009-10-26 | 2009-10-26 | 软件升级方法、软件升级系统以及客户端 |
EP20100788939 EP2482187A4 (en) | 2009-10-26 | 2010-06-17 | SOFTWARE UPGRADE PROCEDURE, SOFTWARE UPGRADE SYSTEM AND CLIENT |
US13/504,170 US20120210312A1 (en) | 2009-10-26 | 2010-06-17 | Software upgrading method, software upgrading system and client |
PCT/CN2010/073995 WO2010145543A1 (zh) | 2009-10-26 | 2010-06-17 | 软件升级方法、软件升级系统以及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910236558A CN101697133A (zh) | 2009-10-26 | 2009-10-26 | 软件升级方法、软件升级系统以及客户端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101697133A true CN101697133A (zh) | 2010-04-21 |
Family
ID=42142238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910236558A Pending CN101697133A (zh) | 2009-10-26 | 2009-10-26 | 软件升级方法、软件升级系统以及客户端 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20120210312A1 (zh) |
EP (1) | EP2482187A4 (zh) |
CN (1) | CN101697133A (zh) |
WO (1) | WO2010145543A1 (zh) |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145543A1 (zh) * | 2009-10-26 | 2010-12-23 | 中兴通讯股份有限公司 | 软件升级方法、软件升级系统以及客户端 |
CN102148714A (zh) * | 2011-05-13 | 2011-08-10 | 大唐移动通信设备有限公司 | 软件升级方法和设备 |
CN102207880A (zh) * | 2011-06-28 | 2011-10-05 | 用友软件股份有限公司 | 软件更新方法和软件更新装置 |
CN102609328A (zh) * | 2012-01-29 | 2012-07-25 | 华为终端有限公司 | 系统差分升级方法和装置、移动终端 |
CN102622255A (zh) * | 2012-03-27 | 2012-08-01 | 杭州电子科技大学 | 路灯控制系统中软件版本升级方法 |
CN102855152A (zh) * | 2012-09-10 | 2013-01-02 | 青岛海信传媒网络技术有限公司 | 升级应用程序中资源文件的方法及系统 |
CN103064752A (zh) * | 2011-09-27 | 2013-04-24 | 奇智软件(北京)有限公司 | 一种文件修复方法及装置 |
CN103092749A (zh) * | 2011-11-08 | 2013-05-08 | 苏州中茵泰格科技有限公司 | 测试环境部署的方法及系统 |
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN103699408A (zh) * | 2013-12-12 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种软件升级的方法和设备 |
CN104156243A (zh) * | 2014-08-05 | 2014-11-19 | 网际傲游(北京)科技有限公司 | 一种应用分发和快速加载运行的系统及方法 |
CN104200159A (zh) * | 2014-09-05 | 2014-12-10 | 北京奇虎科技有限公司 | 配置应用程序的权限的方法及装置 |
CN105119944A (zh) * | 2015-09-23 | 2015-12-02 | 北京金山安全软件有限公司 | 一种应用的启动方法和相关装置 |
CN105260655A (zh) * | 2014-07-14 | 2016-01-20 | 腾讯科技(深圳)有限公司 | 一种应用程序启动保护的方法、装置及系统 |
CN105354066A (zh) * | 2015-11-30 | 2016-02-24 | 广东小天才科技有限公司 | Ota下载的方法、装置及智能终端 |
CN105468395A (zh) * | 2014-09-10 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 更新方法、装置及系统 |
CN105549998A (zh) * | 2015-12-15 | 2016-05-04 | Tcl集团股份有限公司 | 一种终端应用程序的动态关联升级的方法和系统 |
CN105872778A (zh) * | 2016-03-31 | 2016-08-17 | 乐视控股(北京)有限公司 | 升级控制方法及装置 |
CN105893072A (zh) * | 2015-12-01 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种芯片的固件升级方法和装置 |
CN103136013B (zh) * | 2011-12-01 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN106293802A (zh) * | 2016-07-07 | 2017-01-04 | 北京海誉动想科技股份有限公司 | 实例系统及实例系统中代理的升级方法 |
CN106325901A (zh) * | 2015-06-24 | 2017-01-11 | 南宁富桂精密工业有限公司 | 软件版本管理方法及系统 |
CN106775860A (zh) * | 2016-12-08 | 2017-05-31 | 广州杰赛科技股份有限公司 | Web配置文件的重载方法和系统 |
CN106790463A (zh) * | 2016-12-08 | 2017-05-31 | 广州杰赛科技股份有限公司 | Web配置文件重载过程的访问方法和系统 |
CN107301072A (zh) * | 2017-06-22 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种升级文件的自动加载方法及装置 |
CN107436783A (zh) * | 2017-07-14 | 2017-12-05 | 惠州Tcl移动通信有限公司 | 一种用于移动终端的差分升级方法、存储介质及移动终端 |
CN108351790A (zh) * | 2015-11-02 | 2018-07-31 | 微软技术许可有限责任公司 | 用于期望状态配置的非单调最终收敛 |
CN108519888A (zh) * | 2018-03-01 | 2018-09-11 | 武汉噢易云计算股份有限公司 | 一种用于mac电脑的闲时升级方法及系统 |
CN108958827A (zh) * | 2017-05-25 | 2018-12-07 | 贵州白山云科技有限公司 | 一种处理程序升级故障的方法和系统 |
CN109388658A (zh) * | 2018-09-21 | 2019-02-26 | 麒麟合盛网络技术股份有限公司 | 一种数据确定方法和装置 |
WO2019183806A1 (zh) * | 2018-03-27 | 2019-10-03 | 华为技术有限公司 | 资源权限处理方法、装置、存储介质及芯片 |
CN110764815A (zh) * | 2019-09-26 | 2020-02-07 | 北京网聘咨询有限公司 | Web API项目发布方法及装置 |
CN110764805A (zh) * | 2019-10-28 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 客户端无感升级的方法、装置、终端及存储介质 |
CN111381849A (zh) * | 2019-02-19 | 2020-07-07 | 鸿合科技股份有限公司 | 一种软件更新方法及装置、电子设备 |
CN113010225A (zh) * | 2021-03-05 | 2021-06-22 | 国网河南省电力公司电力科学研究院 | 一种智能变电站配置文件自动装载方法及系统 |
CN113031987A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种客户端的升级方法、系统及装置 |
WO2023143542A1 (zh) * | 2022-01-28 | 2023-08-03 | 锐捷网络股份有限公司 | 分布式系统软件版本升级方法及装置 |
CN116775084A (zh) * | 2023-08-23 | 2023-09-19 | 荣耀终端有限公司 | 系统升级的方法及电子设备 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9081646B2 (en) * | 2010-01-22 | 2015-07-14 | Red Hat, Inc. | Building packages of functionally different programs from source code of a single program |
US20140052757A1 (en) * | 2012-08-17 | 2014-02-20 | International Business Machines Corporation | Techniques providing a software fitting assessment |
CN103677876A (zh) * | 2012-09-12 | 2014-03-26 | 中兴通讯股份有限公司 | 一种软件安装包制作安装方法、设备及系统 |
US20150242282A1 (en) * | 2014-02-24 | 2015-08-27 | Red Hat, Inc. | Mechanism to update software packages |
US9430216B2 (en) * | 2014-05-11 | 2016-08-30 | Lumension Security, Inc. | Self-contained executable for predetermined software updating |
US9383989B1 (en) * | 2014-06-16 | 2016-07-05 | Symantec Corporation | Systems and methods for updating applications |
US10367689B2 (en) | 2014-10-24 | 2019-07-30 | Comscore, Inc. | Monitoring internet usage on home networks of panelist users |
US9547564B1 (en) | 2014-11-10 | 2017-01-17 | Amazon Technologies, Inc. | Automated deployment of applications |
US11119745B2 (en) | 2014-11-10 | 2021-09-14 | Amazon Technologies, Inc. | Automated deployment of applications |
US10459709B1 (en) * | 2014-11-10 | 2019-10-29 | Amazon Technologies, Inc. | Automated deployment of applications |
CN106686200B (zh) * | 2015-11-09 | 2020-01-31 | 五八同城信息技术有限公司 | 移动应用程序更新方法、移动终端及更新系统 |
CN105490852B (zh) * | 2015-12-10 | 2019-02-15 | 青岛海信移动通信技术股份有限公司 | 一种升级检测方法和装置 |
CN106909353B (zh) * | 2015-12-22 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 应用程序的运行方法和装置 |
CN108574588B (zh) | 2017-03-10 | 2023-09-15 | 中兴通讯股份有限公司 | 客户端、服务端及差异化升级方法 |
CN109144533B (zh) | 2017-06-28 | 2021-05-04 | 北京嘀嘀无限科技发展有限公司 | 一种应用程序的更新及加载的方法、系统及计算机装置 |
CN108021427A (zh) * | 2017-11-23 | 2018-05-11 | 国家电网公司 | 基于Docker的信息系统部署及升级管理方法 |
CN109189431A (zh) * | 2018-09-18 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种客户端升级方法、装置、设备及可读存储介质 |
CN109343879B (zh) * | 2018-09-20 | 2021-08-31 | 郑州云海信息技术有限公司 | 控制应用软件升级的方法以及服务器 |
US11231921B2 (en) * | 2019-02-08 | 2022-01-25 | Atlassian Pty Ltd. | Software application update management engine |
CN110297637B (zh) * | 2019-06-06 | 2023-03-31 | 北京网聘信息技术有限公司 | 全平台客户端软件适用的资源文件热重载开发工具及方法 |
CN110990033B (zh) * | 2019-10-21 | 2023-07-18 | 望海康信(北京)科技股份公司 | 远程升级方法及系统 |
CN111124465B (zh) * | 2019-11-28 | 2023-06-20 | 武汉虹信技术服务有限责任公司 | 一种跨网络c/s程序远程升级方法及系统 |
CN111752581A (zh) * | 2020-05-22 | 2020-10-09 | 中国邮政储蓄银行股份有限公司 | 一种分布式系统的升级方法、装置和计算机系统 |
CN111698559A (zh) * | 2020-06-08 | 2020-09-22 | 深圳创维-Rgb电子有限公司 | 存储方法、电视和存储介质 |
CN111722859A (zh) * | 2020-06-10 | 2020-09-29 | 深圳市智莱科技股份有限公司 | 一种软件的远程升级方法 |
US11567672B2 (en) * | 2021-06-17 | 2023-01-31 | Vmware, Inc. | Data and configuration integrity checking post-rollback using backups in virtualized computing environments |
US11645158B2 (en) | 2021-06-17 | 2023-05-09 | Vmware, Inc. | Automated rollback in virtualized computing environments |
CN113434185A (zh) * | 2021-06-29 | 2021-09-24 | 成都中微达信科技有限公司 | 一种在线升级处理器应用程序的方法及其系统 |
CN116702163A (zh) * | 2022-09-27 | 2023-09-05 | 荣耀终端有限公司 | 权限管理的方法及终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038549A (zh) * | 2007-03-28 | 2007-09-19 | 北京启明星辰信息技术有限公司 | 一种可跨系统的软件升级方法 |
CN101090313A (zh) * | 2006-06-13 | 2007-12-19 | 上海海加网络科技有限公司 | 一种客户端程序简化管理和安全性保护方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7765556B2 (en) * | 2002-03-01 | 2010-07-27 | Sap Ag | Intelligent and event-based data population |
US6006035A (en) * | 1997-12-31 | 1999-12-21 | Network Associates | Method and system for custom computer software installation |
US6854006B1 (en) * | 1999-05-31 | 2005-02-08 | International Business Machines Corporation | System and method for merging web based on-demand SNA application selection and TN3270 client launching |
EP1304626A1 (en) * | 2001-10-18 | 2003-04-23 | Sun Microsystems, Inc. | Managing modified documents |
US7549042B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Applying custom software image updates to non-volatile storage in a failsafe manner |
US7913248B1 (en) * | 2004-03-26 | 2011-03-22 | Adobe Systems Incorporated | System and method for installing one or more programs, and at least a portion of their environment |
US7389505B2 (en) * | 2004-07-30 | 2008-06-17 | Extreme Networks, Inc. | Method and apparatus for modifying software |
US7703090B2 (en) * | 2004-08-31 | 2010-04-20 | Microsoft Corporation | Patch un-installation |
US7698698B2 (en) * | 2004-09-30 | 2010-04-13 | Smith Micro Software, Inc. | Method for over-the-air firmware update of NAND flash memory based mobile devices |
US7634258B2 (en) * | 2004-11-22 | 2009-12-15 | Motorola, Inc. | System and method for over-the-air update of wireless communication devices |
EP1949270B1 (en) * | 2005-10-12 | 2011-04-06 | Datacastle Corporation | Method and system for data backup |
CN100505640C (zh) * | 2006-01-26 | 2009-06-24 | 腾讯科技(深圳)有限公司 | 一种软件升级方法及系统 |
US7970851B2 (en) * | 2006-10-31 | 2011-06-28 | Netapp, Inc. | Method and system for managing and monitoring virtual storage servers of a hosting storage server |
CN101076168B (zh) * | 2007-06-20 | 2012-11-07 | 华为技术有限公司 | 智能终端系统的管理方法和智能终端 |
US8543923B2 (en) * | 2007-08-15 | 2013-09-24 | International Business Machines Corporation | Apparatus, system, and method for displaying health spatially and temporally |
US20090271507A1 (en) * | 2008-04-24 | 2009-10-29 | Kodimer Marianne L | System and method for assisted administration of remote device updates |
US8479187B2 (en) * | 2008-12-02 | 2013-07-02 | Sap Ag | Adaptive switch installer |
US8245223B2 (en) * | 2008-12-23 | 2012-08-14 | Microsoft Corporation | Networked deployment of multi-application customizations |
CN101697133A (zh) * | 2009-10-26 | 2010-04-21 | 中兴通讯股份有限公司 | 软件升级方法、软件升级系统以及客户端 |
-
2009
- 2009-10-26 CN CN200910236558A patent/CN101697133A/zh active Pending
-
2010
- 2010-06-17 WO PCT/CN2010/073995 patent/WO2010145543A1/zh active Application Filing
- 2010-06-17 EP EP20100788939 patent/EP2482187A4/en not_active Ceased
- 2010-06-17 US US13/504,170 patent/US20120210312A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090313A (zh) * | 2006-06-13 | 2007-12-19 | 上海海加网络科技有限公司 | 一种客户端程序简化管理和安全性保护方法 |
CN101038549A (zh) * | 2007-03-28 | 2007-09-19 | 北京启明星辰信息技术有限公司 | 一种可跨系统的软件升级方法 |
Cited By (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145543A1 (zh) * | 2009-10-26 | 2010-12-23 | 中兴通讯股份有限公司 | 软件升级方法、软件升级系统以及客户端 |
CN102148714A (zh) * | 2011-05-13 | 2011-08-10 | 大唐移动通信设备有限公司 | 软件升级方法和设备 |
CN102207880A (zh) * | 2011-06-28 | 2011-10-05 | 用友软件股份有限公司 | 软件更新方法和软件更新装置 |
CN103064752A (zh) * | 2011-09-27 | 2013-04-24 | 奇智软件(北京)有限公司 | 一种文件修复方法及装置 |
CN103064752B (zh) * | 2011-09-27 | 2016-12-21 | 北京奇虎科技有限公司 | 一种文件修复方法及装置 |
CN103092749A (zh) * | 2011-11-08 | 2013-05-08 | 苏州中茵泰格科技有限公司 | 测试环境部署的方法及系统 |
CN103136013B (zh) * | 2011-12-01 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN102609328A (zh) * | 2012-01-29 | 2012-07-25 | 华为终端有限公司 | 系统差分升级方法和装置、移动终端 |
CN102609328B (zh) * | 2012-01-29 | 2015-04-15 | 华为终端有限公司 | 系统差分升级方法和装置、移动终端 |
US9804933B2 (en) | 2012-01-29 | 2017-10-31 | Huawei Device Co., Ltd. | System differential upgrade method, apparatus, and mobile terminal |
CN102622255A (zh) * | 2012-03-27 | 2012-08-01 | 杭州电子科技大学 | 路灯控制系统中软件版本升级方法 |
CN102855152A (zh) * | 2012-09-10 | 2013-01-02 | 青岛海信传媒网络技术有限公司 | 升级应用程序中资源文件的方法及系统 |
CN102855152B (zh) * | 2012-09-10 | 2016-04-20 | 青岛海信传媒网络技术有限公司 | 升级应用程序中资源文件的方法及系统 |
CN103699408A (zh) * | 2013-12-12 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种软件升级的方法和设备 |
CN105260655A (zh) * | 2014-07-14 | 2016-01-20 | 腾讯科技(深圳)有限公司 | 一种应用程序启动保护的方法、装置及系统 |
CN104156243A (zh) * | 2014-08-05 | 2014-11-19 | 网际傲游(北京)科技有限公司 | 一种应用分发和快速加载运行的系统及方法 |
CN104156243B (zh) * | 2014-08-05 | 2017-12-12 | 网际傲游(北京)科技有限公司 | 一种应用分发和快速加载运行的系统及方法 |
CN104200159A (zh) * | 2014-09-05 | 2014-12-10 | 北京奇虎科技有限公司 | 配置应用程序的权限的方法及装置 |
CN105468395A (zh) * | 2014-09-10 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 更新方法、装置及系统 |
CN106325901A (zh) * | 2015-06-24 | 2017-01-11 | 南宁富桂精密工业有限公司 | 软件版本管理方法及系统 |
CN105119944A (zh) * | 2015-09-23 | 2015-12-02 | 北京金山安全软件有限公司 | 一种应用的启动方法和相关装置 |
CN108351790B (zh) * | 2015-11-02 | 2021-07-16 | 微软技术许可有限责任公司 | 用于期望状态配置的非单调最终收敛的设备、方法和介质 |
CN108351790A (zh) * | 2015-11-02 | 2018-07-31 | 微软技术许可有限责任公司 | 用于期望状态配置的非单调最终收敛 |
US10896109B2 (en) | 2015-11-02 | 2021-01-19 | Microsoft Technology Licensing, Llc | Non-monotonic eventual convergence for desired state configuration |
CN105354066A (zh) * | 2015-11-30 | 2016-02-24 | 广东小天才科技有限公司 | Ota下载的方法、装置及智能终端 |
CN105893072A (zh) * | 2015-12-01 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种芯片的固件升级方法和装置 |
CN105549998A (zh) * | 2015-12-15 | 2016-05-04 | Tcl集团股份有限公司 | 一种终端应用程序的动态关联升级的方法和系统 |
CN105549998B (zh) * | 2015-12-15 | 2019-11-12 | Tcl集团股份有限公司 | 一种终端应用程序的动态关联升级的方法和系统 |
CN105872778A (zh) * | 2016-03-31 | 2016-08-17 | 乐视控股(北京)有限公司 | 升级控制方法及装置 |
CN106293802A (zh) * | 2016-07-07 | 2017-01-04 | 北京海誉动想科技股份有限公司 | 实例系统及实例系统中代理的升级方法 |
CN106775860B (zh) * | 2016-12-08 | 2020-09-15 | 广州杰赛科技股份有限公司 | Web配置文件的重载方法和系统 |
CN106775860A (zh) * | 2016-12-08 | 2017-05-31 | 广州杰赛科技股份有限公司 | Web配置文件的重载方法和系统 |
CN106790463B (zh) * | 2016-12-08 | 2020-09-15 | 广州杰赛科技股份有限公司 | Web配置文件重载过程的访问方法和系统 |
CN106790463A (zh) * | 2016-12-08 | 2017-05-31 | 广州杰赛科技股份有限公司 | Web配置文件重载过程的访问方法和系统 |
CN108958827A (zh) * | 2017-05-25 | 2018-12-07 | 贵州白山云科技有限公司 | 一种处理程序升级故障的方法和系统 |
CN107301072B (zh) * | 2017-06-22 | 2021-03-23 | 苏州浪潮智能科技有限公司 | 一种升级文件的自动加载方法及装置 |
CN107301072A (zh) * | 2017-06-22 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种升级文件的自动加载方法及装置 |
CN107436783A (zh) * | 2017-07-14 | 2017-12-05 | 惠州Tcl移动通信有限公司 | 一种用于移动终端的差分升级方法、存储介质及移动终端 |
CN107436783B (zh) * | 2017-07-14 | 2021-04-20 | 惠州Tcl移动通信有限公司 | 一种用于移动终端的差分升级方法、存储介质及移动终端 |
CN108519888A (zh) * | 2018-03-01 | 2018-09-11 | 武汉噢易云计算股份有限公司 | 一种用于mac电脑的闲时升级方法及系统 |
WO2019183806A1 (zh) * | 2018-03-27 | 2019-10-03 | 华为技术有限公司 | 资源权限处理方法、装置、存储介质及芯片 |
CN111417927B (zh) * | 2018-03-27 | 2021-12-03 | 华为技术有限公司 | 资源权限处理方法、装置、存储介质及芯片 |
CN111417927A (zh) * | 2018-03-27 | 2020-07-14 | 华为技术有限公司 | 资源权限处理方法、装置、存储介质及芯片 |
CN109388658B (zh) * | 2018-09-21 | 2022-05-17 | 麒麟合盛网络技术股份有限公司 | 一种数据确定方法和装置 |
CN109388658A (zh) * | 2018-09-21 | 2019-02-26 | 麒麟合盛网络技术股份有限公司 | 一种数据确定方法和装置 |
CN111381849A (zh) * | 2019-02-19 | 2020-07-07 | 鸿合科技股份有限公司 | 一种软件更新方法及装置、电子设备 |
CN110764815A (zh) * | 2019-09-26 | 2020-02-07 | 北京网聘咨询有限公司 | Web API项目发布方法及装置 |
CN110764805A (zh) * | 2019-10-28 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 客户端无感升级的方法、装置、终端及存储介质 |
CN110764805B (zh) * | 2019-10-28 | 2024-01-23 | 腾讯科技(深圳)有限公司 | 客户端无感升级的方法、装置、终端及存储介质 |
CN113010225A (zh) * | 2021-03-05 | 2021-06-22 | 国网河南省电力公司电力科学研究院 | 一种智能变电站配置文件自动装载方法及系统 |
CN113010225B (zh) * | 2021-03-05 | 2022-07-26 | 国网河南省电力公司电力科学研究院 | 一种智能变电站配置文件自动装载方法及系统 |
CN113031987A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种客户端的升级方法、系统及装置 |
WO2023143542A1 (zh) * | 2022-01-28 | 2023-08-03 | 锐捷网络股份有限公司 | 分布式系统软件版本升级方法及装置 |
CN116775084A (zh) * | 2023-08-23 | 2023-09-19 | 荣耀终端有限公司 | 系统升级的方法及电子设备 |
CN116775084B (zh) * | 2023-08-23 | 2023-11-24 | 荣耀终端有限公司 | 系统升级的方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2482187A1 (en) | 2012-08-01 |
EP2482187A4 (en) | 2013-11-06 |
WO2010145543A1 (zh) | 2010-12-23 |
US20120210312A1 (en) | 2012-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101697133A (zh) | 软件升级方法、软件升级系统以及客户端 | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
CN101719073B (zh) | 一种基于智能客户端的按需下载实现方法 | |
US20030005037A1 (en) | Crash recovery system | |
US20140304697A1 (en) | Method and system for upgrading software | |
CN103064715A (zh) | 自动路测系统远程升级方法及系统 | |
CN113821233B (zh) | 操作系统升级方法、设备、存储介质及计算机程序产品 | |
WO2022111097A1 (zh) | 一种文件更新方法及装置、设备、存储介质 | |
CN101593121A (zh) | 软件在线升级的方法、装置及系统 | |
CN113821235B (zh) | 操作系统数据更新方法、设备、存储介质及程序产品 | |
CN103176826B (zh) | 一种自由配置终端设备默认语言的方法及终端默认语言配置系统 | |
EP2805233B1 (en) | Installation engine and package format for parallelizable, reliable installations | |
CN103019764B (zh) | Andriod资源包可安装性的检测方法及系统 | |
CN113821221A (zh) | 安装操作系统的方法、设备、存储介质及计算机程序产品 | |
CN105094919A (zh) | 一种应用程序启动方法 | |
CN113805956A (zh) | 操作系统的配置方法、设备、存储介质及程序产品 | |
EP2648092A1 (en) | Updating method and multi-domain embedded system | |
CN113900673A (zh) | 系统安装包的管理方法、设备、存储介质及程序产品 | |
CN116028084A (zh) | 一种基于OpenStack云平台跨版本热升级的方法、系统及终端 | |
CN114461257B (zh) | 操作系统数据配置方法、设备、存储介质及程序产品 | |
CN111061537A (zh) | 一种虚拟机Tools更新方法、系统、装置及可读存储介质 | |
CN110659052B (zh) | 网络设备中系统软件的更新方法、系统及可读存储介质 | |
CN100432933C (zh) | 移动通信终端二进制数据升级方法 | |
CN113806139A (zh) | 操作系统恢复方法、设备、存储介质及计算机程序产品 | |
CN106020903A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100421 |