CN110442367A - 程序的升级方法及装置、存储介质和电子装置 - Google Patents
程序的升级方法及装置、存储介质和电子装置 Download PDFInfo
- Publication number
- CN110442367A CN110442367A CN201910749050.2A CN201910749050A CN110442367A CN 110442367 A CN110442367 A CN 110442367A CN 201910749050 A CN201910749050 A CN 201910749050A CN 110442367 A CN110442367 A CN 110442367A
- Authority
- CN
- China
- Prior art keywords
- upgrade
- main program
- program
- upgrade procedure
- upgrading
- 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
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种程序的升级方法及装置、存储介质和电子装置。其中,该方法包括:在第一主程序从云服务器获取到升级指令的情况下,通过升级程序获取第一主程序发送的升级请求,其中,升级请求中携带有下载链接,下载链接用于指示从云服务器上下载用于升级第一主程序的安装包;通过升级程序根据下载链接从云服务器下载用于升级第一主程序的安装包;通过升级程序使用安装包将第一主程序升级为第二主程序。本发明解决了相关技术中对于软件的升级需要依赖特定的硬件难以使用在其他设备上的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种程序的升级方法及装置、存储介质和电子装置。
背景技术
云服务器(Elastic Compute Service,ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。云服务器是云计算服务器的重要组成部分,是面向各类互联网用户提供综合业务能力的服务器平台,该平台整合了传统意义上的互联网应用三大核心要素:计算、存储、网络,面向用户提供公用化互联网基础设施服务。也就是说,与传统的物理服务器相比较,用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器实现用户在线访问各种应用成,信息和数据等数据交互的方式。例如,在终端需要对本地软件进行升级时,可以通过网络从云服务器下载安装包进行升级服务。
其中,现有的软件升级技术包括以下几种:1)关注远程全自动升级能力,如采用无应答机制让客户端自管理、在C/S架构下批量远程管理、甚至设计特定的硬件部件在嵌入式设备上提高升级自动化。2)关注升级完整性,如采用历史断点续传技术确保安装包完整下载,带升级回滚。但上述软件升级方式存在以下缺点:1)设备局限性,部分嵌入式设备的升级技术依赖其特定的硬件部件,这使得该技术很难适用在其他设备上。2)升级鲁棒性缺乏,目前大部分升级技术关注了远程、全自动、完整性几个方面,但是断电、断网等意外故障的情况应对能力不足。3)升级框架完整性不足。大多的升级技术或缺乏自动感应升级、或缺乏失败升级处理、或缺乏升级完成告警机制。
针对现有的软件升级的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种程序的升级方法及装置、存储介质和电子装置,以至少解决相关技术中对于软件的升级需要依赖特定的硬件难以使用在其他设备上的技术问题。
根据本发明实施例的一个方面,提供了一种程序升级方法,包括:在第一主程序从云服务器获取到升级指令的情况下,通过升级程序获取所述第一主程序发送的升级请求,其中,所述升级请求中携带有下载链接,所述下载链接用于指示从所述云服务器上下载用于升级所述第一主程序的安装包;通过所述升级程序根据所述下载链接从所述云服务器下载所述用于升级所述第一主程序的安装包;通过所述升级程序使用所述安装包将所述第一主程序升级为第二主程序。
根据本发明实施例的另一方面,还提供了一种程序升级装置,包括:获取模块,用于在第一主程序从云服务器获取到升级指令的情况下,通过升级程序获取所述第一主程序发送的升级请求,其中,所述升级请求中携带有下载链接,所述下载链接用于指示从所述云服务器上下载用于升级所述第一主程序的安装包;下载模块,用于通过所述升级程序根据所述下载链接从所述云服务器下载所述用于升级所述第一主程序的安装包;升级模块,用于通过所述升级程序使用所述安装包将所述第一主程序升级为第二主程序。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的方法。
在本发明实施例中,通过升级程序获取第一主程序发送的升级请求,进而通过升级程序根据下载链接从云服务器下载用于升级第一主程序的安装包,以将第一主程序升级为第二主程;可见,在本实施例中可以通过与待升级的第一主程序单独的升级程序从云服务器获取安装包以对第一主程序进行升级,摆脱了现有技术中对于程序升级需要在特定硬件中执行的束缚,解决了相关技术中对于软件的升级需要依赖特定的硬件难以使用在其他设备上的技术问题,使得程序的升级更加灵活和便捷。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种程序升级方法的应用场景的示意图;
图2是根据本发明实施例的一种程序升级方法的流程图;
图3是根据本发明实施例的程序升级的时序图;
图4是根据本发明实施例的全自动程序升级的流程图;
图5是根据本发明实施例的程序回滚的流程图;
图6是根据本发明实施例的程序升级装置的结构示意图;
图7是根据本发明实施例的程序升级装置的可选结构示意图一;
图8是根据本发明实施例的程序升级装置的可选结构示意图二;
图9是根据本发明实施例的程序升级装置的可选结构示意图三;
图10是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
首先对本申请中的术语进行相应的解释:
Checkpoint(检查点),checkpoint是数据库领域的一个概念,是指在操作数据库时将重要的日志强制保存到磁盘的机制,该机制主要在回滚恢复数据库时使用。
C/S架构:Client/Server架构,即客户端/服务器架构。通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。
Linux:是一种自由和开放源码的类UNIX操作系统。
mv:Linux操作系统的命令之一,用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种程序升级方法。可选地,上述程序升级方可以但不限于应用于如图1所示的应用场景中。如图1所示,主程序,升级程序以及云服务器/云后台三者是相互独立的,但三者之间是可以相互交互的,在在主程序从云服务器获取到升级指令的情况下,通过升级程序获取主程序发送的升级请求,通过升级程序根据下载链接从云服务器下载用于升级主程序的安装包,进而对主程序进行升级。需要说明的是,该升级程序和主程序可以位于同一设备中也可以分别位于不同的设备中,通过相应的接口实现交互
可选地,在本实施例中,上述设备可以包括但不限于以下至少之一:手机、平板电脑等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述只是一种示例,本实施例对此不做任何限定。
可选地,在本实施例中,作为一种可选的实施方式,如图2所示,上述程序升级方法可以包括:
S202,在第一主程序从云服务器获取到升级指令的情况下,通过升级程序获取第一主程序发送的升级请求,其中,升级请求中携带有下载链接,下载链接用于指示从云服务器上下载用于升级第一主程序的安装包;
S204,通过升级程序根据下载链接从云服务器下载用于升级第一主程序的安装包;
S206,通过升级程序使用安装包将第一主程序升级为第二主程序。
需要说明的是,本实施例中涉及到的第一主程序和第二主程序可以是应用程序,也可以是系统程序或者是其他程序,只要是可以被升级的程序都是在本申请的保护范围之内;其中,应用程序包括:办公程序(如office办公软件,PS软件,编程软件等等),游戏程序(单级游戏程序,网络游戏程序等等),购物程序(在线购物程序)等用户在日常生活和工作中比较常用的程序;而系统程序包括:语言处理程序,数据管理程序,辅助程序等操作系统所需的程序。
此外,云服务器/云后台又可以被称为云计算服务器或云主机,其中,云服务器使用了云计算技术,云服务器整合数据中心三大核心要素:计算、网络与存储。云服务器基于集群服务器技术,虚拟出多个类似独立服务器的部分,以致云服务器具有很高的安全稳定性。另外,而本实施例中的升级程序是与第一主程序独立的一个的程序,而且该升级程序不会限制在某一个特定的硬件中,而且可以灵活的设置在不同的设备中。
通过上述步骤S202至步骤S206,通过升级程序获取第一主程序发送的升级请求,进而通过升级程序根据下载链接从云服务器下载用于升级第一主程序的安装包,以将第一主程序升级为第二主程;可见,在本实施例中可以通过与待升级的第一主程序单独的升级程序从云服务器获取安装包以对第一主程序进行升级,摆脱了现有技术中对于程序升级需要在特定硬件中执行的束缚,解决了相关技术中对于软件的升级需要依赖特定的硬件难以使用在其他设备上的技术问题,使得程序的升级更加灵活和便捷。
可选地,在本实施例的一个可选实施方式中,在实施例中步骤S206中涉及到的在通过升级程序使用安装包将第一主程序升级为第二主程序之后,本实施例的方法还可以包括:在成功将第一主程序升级为第二主程序的情况下,通过升级程序启动第二主程序。
可见,在第一主程序升级为第二主程序之后可以由升级程序对第二主程序触发启动;也即升级程序除了能够单独的对第一主程序升级,还能够启动升级后的第二主程序以确定升级后的第二主程序是能够被正常启动,同时也确定该升级已经成功。
可选地,在本实施例的可选实施方式中,对于步骤S102中涉及到的通过升级程序获取第一主程序发送的升级请求的方式,可以进一步包括:
方式(1),通过升级程序本地端口获取第一主程序发送的升级请求;其中,本地端口为升级程序和第一主程序位于同一设备中用于本地交互的端口。
通过上述方式(1)可知,本实施例中的升级程序和第一主程序是可以位于同一设备中,也可以是为位于不同设备中的;例如,在第一主程序为手持终端中的某一款游戏程序,在某个时间点远端的云服务器向该游戏程序发送升级指令之后,该游戏程序将会将升级请求发送给与该游戏程序位于同一手持终端的升级程序,之后升级程序则会从云服务器获取用于升级该游戏程序的安装包,由于升级程序与游戏程序位于同一设备中,因此,两者是通过本地端口进行数据交互的。
可选地,本实施例中的升级程序通过本地端口可以与一个或多个第一主程序链接;还是以上述游戏程序需要进行升级为例,在该手持终端中,该升级程序还可以通过本地端口与其他程序,如购物程序,社交程序,媒体程序等等进行数据交互。因此,升级程序可以同时对多个程序进行升级,例如,在某个时间点远端的云服务器向该游戏程序发送升级指令之后,该游戏程序将会将升级请求发送给与该游戏程序位于同一手持终端的升级程序,之后升级程序则会从云服务器获取用于升级该游戏程序的安装包,在升级程序对游戏程序升级的过程中,购物程序也收到了云服务器发送的升级指令,则该升级程序在对游戏程序进行升级的同时也可以同云服务器下载用于升级购物程序的安装包,只是购物程序与升级程序之间的本地端口优选与游戏程序与升级程序之间的本地端口不相当,这样保证了升级操作的顺利执行,当然在某些特殊的场景下多个待升级的程序与升级程序共用一个本地端口。也就是说,本地端口可以是共用的也可以是单独使用的,还可以是某几个程序共用,而其他程序与升级程序是单独的。
方式(2),通过升级程序从远程端口获取第一主程序发送的升级请求,其中,远程端口为升级程序和第一主程序分别位于不同设备中用于远程交互的端口。
通过上述方式(2)可知,在本实施例中除了升级程序与待升级程序在同一设备中通过本地端口进行数据交互的情况外,还可以是升级程序与待升级的程序位于不同的设备中,例如:待升级的程序为位于第一手持终端中的游戏程序,在某个时间点远端的云服务器向该游戏程序发送升级指令之后,该游戏程序将会将升级请求发送给与该游戏程序位于不同手持终端,即位于第二手持终端的升级程序,之后升级程序则会从云服务器获取用于升级该游戏程序的安装包,由于升级程序与游戏程序分别位于不同设备中,因此,两者是通过远程端口进行数据交互的。
可选地,本实施例中的升级程序通过远程端口可以与一个或多个第一主程序链接;还是以上述游戏程序需要进行升级为例,在该手持终端中,该升级程序还可以通过远程端口与其他程序,如购物程序,社交程序,媒体程序等等进行数据交互。因此,升级程序可以同时对多个程序进行升级,例如,在某个时间点远端的云服务器向该游戏程序发送升级指令之后,该游戏程序将会将升级请求发送给与该游戏程序位于不同手持终端的升级程序,之后升级程序则会从云服务器获取用于升级该游戏程序的安装包,在升级程序对游戏程序升级的过程中,购物程序也收到了云服务器发送的升级指令,则该升级程序在对游戏程序进行升级的同时也可以同云服务器下载用于升级购物程序的安装包,只是购物程序与升级程序之间的远程端口与游戏程序与升级程序之间的远程端口不相当,这样保证了升级操作的顺利执行。
可选地,在本实施例的可选实施方式中,该程序升级方法还可以包括:
步骤S208,在预设的多个时间点设置用于记录当前升级进度的检查点;其中,当前保存的检查点已覆盖前一次保存的检查点;
步骤S210,在程序升级过程中出现故障的情况下,向云服务器上报告警消息;和/或,在通过升级程序使用安装包将第一主程序升级为第二主程序之后,向云服务器上报升级成功的消息;
可选地,对于上述步骤S208涉及到的多个时间点,可以是多个执行步骤完成后的时间点,结合图3的时序图可知,该多个时间点可以是:升级程序接收主程序(旧)发送的升级请求,升级程序向与服务器发送下载请求;升级程序解压安装包,并对主程序(旧)进行升级;升级程序启动升级后的主程序(新)中的一个或多个步骤执行完成后的时间点,该多个时间点的设置可以根据实际情况进行相应的设置,例如,只对升级程序接收主程序(旧)发送的升级请求,升级程序向与服务器发送下载请求;升级程序解压安装包,并对主程序(旧)进行升级执行完成后的时间点进行检查点的设置;当然在本实施例中优选对整个升级过程中每一个步骤均设置相应的检查点。
在本实施例中可以在升级过程中的多个时间点设置用于记录当前升级进度的检查点,通过该检查点可以升级出现故障后,基于该检查点进行断点继续升级,也即在升级出现故障的情况下无需从新开始升级,可以基于出现故障前所保存检查点进行断点升级,提高了升级效率。
通过上述步骤S210可知,在程序升级过程中出现故障的情况下,向云服务器上报告警消息;和/或,在通过升级程序使用安装包将第一主程序升级为第二主程序之后,向云服务器上报升级成功的消息。通过该告警消息和升级成功的消息,使得服务器能够及时获取升级情况。
需要说明的是,通过升级程序在预设时间段内获取第一主程序发送的升级请求的次数禁止超过预设阈值。通过该机制,能够防止在预设时间段内避免恶意升级的行为存在。
基于上述步骤S202至步骤S210,图3是根据本发明实施例的升级程序时序图,基于图3,本实施例中主程序升级的过程包括:
步骤S302,升级程序接收主程序(旧)发送的升级请求;
步骤S304,升级程序向与服务器发送下载请求,用于从服务器下载安装包;
步骤S306,升级程序解压安装包,并对主程序(旧)进行升级,升级为主程序(新);如果升级成功执行步骤S308,如果升级失败执行步骤S310;
步骤S308,升级程序启动升级后的主程序(新);
步骤S310,升级程序执行回滚程序;
步骤S312,升级程序向云服务器发送消息;其中,该消息包括:升级成功的消息和升级失败的消息。
可见,本实施例中的升级程序为本地独立的服务模块,通过其他程序发送的请求感知升级需求,接着自动完成程序安装包下载、解压缩、升级安装、启动新程序等一系列步骤。如果升级失败,升级程序会及时进行回滚,恢复之前正常运行的程序版本。此外,在本申请中设置了checkpoint机制,通过保存记录升级的关键步骤,重试升级时直接从上一次的checkpoint接着运行即可,大大提高了升级重试的效率。
也就是说,本实施例中的程序升级方式可部署于任何可以访问网络资源的客户端机器,包括服务器、个人电脑甚至移动端设备。通过本实施例可以做到程序全自动感知升级需求、鲁棒地进行升级。
下面结合升级过程对checkpoint的作用进行详细的介绍,如图4所示为升级过程具体细节的流程,该流程包括:
步骤S402,升级程序接收请求;
步骤S404,升级程序从云服务器下载安装包;
步骤S406,升级程序解压安装包;
步骤S408,升级程序备份当前运行目录;
步骤S410,升级程序升级安装;
步骤S412,升级程序启动升级后的新程序。
需要说明的是,升级程序从接收到升级请求开始,到最终升级成功或者失败,在每一个关键步骤都会保存当前进度,即checkpoint。在本实施例中就是说行数步骤S402至步骤S412执行完后,会设置相应的checkpoint;此外,checkpoint机制只会保存一个当前状态,即每个关键步骤执行成功后会刷新之前的checkpoint。当升级重试时,升级程序首先检查checkpoint,并直接跳到checkpoint步骤执行。如上一次升级过程运行到“解压安装包”步骤之后,升级程序出现了故障,则在再次对其进行升级时,升级程序可以直接从“备份当前运行目录”步骤开始执行升级过程,省去了“下载安装包”和“解压安装包”步骤。通过该checkpoint机制,在无人环境下经常发生断电、断网等意外情况,可以使得整个升级更加鲁棒且高效。
可选地,在本实施例中还涉及到了在升级程序执行全自动升级失败时触发的回滚机制,目的是让程序不至于因为错误升级包、硬件故障等而导致程序无法使用,如图5所示为回滚的流程,该流程包括:
步骤S502,在升级失败的情况下,启动回滚机制;
步骤S504,把工作目录切回到备份;
步骤S506,启动旧程序。
可见,回滚过程主要执行2个步骤:把工作目录切回到备份目录、启动工作目录的可执行程序,为了防止程序出现二次意外,尤其使在“工作目录切回备份”这个关键步骤,采用极轻量的原子操作,如切软链接、Linux的mv操作。checkpoint机制也同样设置在回滚过程中,即在回滚过程中,如果回滚失败也可以进行断点回滚,无需回到初始状态进行回滚。也即整个回滚过程设置的checkpoint机制,是以确保即使发生了断电、断网等意外情况,升级程序也能成功回滚。如,上一次运行到“工作目录切回备份”步骤,那么升级程序直接从“启动就程序”步骤开始执行以回滚后程序正常启动。
在本实施例中还提供了一种程序升级装置,如图6所示,该程序升级装置包括:获取模块602,用于在第一主程序从云服务器获取到升级指令的情况下,通过升级程序获取第一主程序发送的升级请求,其中,升级请求中携带有下载链接,下载链接用于指示从云服务器上下载用于升级第一主程序的安装包;下载模块604,与获取模块602耦合连接,用于通过升级程序根据下载链接从云服务器下载用于升级第一主程序的安装包;升级模块606,与下载模块604耦合连接,用于通过升级程序使用安装包将第一主程序升级为第二主程序。
需要说明的是,本实施例中涉及到的第一主程序和第二主程序可以是应用程序,也可以是系统程序或者是其他程序,只要是可以被升级的程序都是在本申请的保护范围之内;其中,应用程序包括:办公程序,游戏程序,购物程序等用户在日常生活和工作中比较常用的程序;而系统程序包括:语言处理程序,数据管理程序,辅助程序等操作系统所需的程序。
此外,云服务器/云后台又可以被称为云计算服务器或云主机,其中,云服务器使用了云计算技术,云服务器整合数据中心三大核心要素:计算、网络与存储。云服务器基于集群服务器技术,虚拟出多个类似独立服务器的部分,以致云服务器具有很高的安全稳定性。另外,而本实施例中的升级程序是与第一主程序独立的一个的程序,而且该升级程序不会限制在某一个特定的硬件中,而且可以灵活的设置在不同的设备中。
基于上述图6中的程序升级装置,获取模块602通过升级程序获取第一主程序发送的升级请求,进而下载模块604通过升级程序根据下载链接从云服务器下载用于升级第一主程序的安装包,升级模块606第一主程序升级为第二主程;可见,在本实施例中可以通过与待升级的第一主程序单独的升级程序从云服务器获取安装包以对第一主程序进行升级,摆脱了现有技术中对于程序升级需要在特定硬件中执行的束缚,解决了相关技术中对于软件的升级需要依赖特定的硬件难以使用在其他设备上的技术问题,使得程序的升级更加灵活和便捷。
可选地,本实施例中的获取模块602可以包括:第一获取单元,用于通过升级程序本地端口获取第一主程序发送的升级请求;其中,本地端口为升级程序和第一主程序位于同一设备中用于本地交互的端口;其中,升级程序通过本地端口与一个或多个第一主程序链接;第二获取单元,用于通过升级程序从远程端口获取第一主程序发送的升级请求,其中,远程端口为升级程序和第一主程序分别位于不同设备中用于远程交互的端口。
基于第一获取单元,本实施例中的升级程序和第一主程序是可以位于同一设备中,也可以是为位于不同设备中的;例如,在第一主程序为手持终端中的某一款游戏程序,在某个时间点远端的云服务器向该游戏程序发送升级指令之后,该游戏程序将会将升级请求发送给与该游戏程序位于同一手持终端的升级程序,之后升级程序则会从云服务器获取用于升级该游戏程序的安装包,由于升级程序与游戏程序位于同一设备中,因此,两者是通过本地端口进行数据交互的。
可选地,本实施例中的升级程序通过本地端口可以与一个或多个第一主程序链接;还是以上述游戏程序需要进行升级为例,在该手持终端中,该升级程序还可以通过本地端口与其他程序,如购物程序,社交程序,媒体程序等等进行数据交互。因此,升级程序可以同时对多个程序进行升级,例如,在某个时间点远端的云服务器向该游戏程序发送升级指令之后,该游戏程序将会将升级请求发送给与该游戏程序位于同一手持终端的升级程序,之后升级程序则会从云服务器获取用于升级该游戏程序的安装包,在升级程序对游戏程序升级的过程中,购物程序也收到了云服务器发送的升级指令,则该升级程序在对游戏程序进行升级的同时也可以同云服务器下载用于升级购物程序的安装包,只是购物程序与升级程序之间的本地端口优选与游戏程序与升级程序之间的本地端口不相当,这样保证了升级操作的顺利执行,当然在某些特殊的场景下多个待升级的程序与升级程序公用一个本地端口。也就是说,本地端口可以是共用的也可以是单独使用的,还可以是某几个程序共用,而其他程序与升级程序是单独的。
基于第二获取单元,在本实施例中除了升级程序与待升级程序在同一设备中通过本地端口进行数据交互的情况外,还可以是升级程序与待升级的程序位于不同的设备中,例如:待升级的程序为位于第一手持终端中的游戏程序,在某个时间点远端的云服务器向该游戏程序发送升级指令之后,该游戏程序将会将升级请求发送给与该游戏程序位于不同手持终端,即位于第二手持终端的升级程序,之后升级程序则会从云服务器获取用于升级该游戏程序的安装包,由于升级程序与游戏程序分别位于不同设备中,因此,两者是通过远程端口进行数据交互的。
可选地,本实施例中的升级程序通过远程端口可以与一个或多个第一主程序链接;还是以上述游戏程序需要进行升级为例,在该手持终端中,该升级程序还可以通过远程端口与其他程序,如购物程序,社交程序,媒体程序等等进行数据交互。因此,升级程序可以同时对多个程序进行升级,例如,在某个时间点远端的云服务器向该游戏程序发送升级指令之后,该游戏程序将会将升级请求发送给与该游戏程序位于不同手持终端的升级程序,之后升级程序则会从云服务器获取用于升级该游戏程序的安装包,在升级程序对游戏程序升级的过程中,购物程序也收到了云服务器发送的升级指令,则该升级程序在对游戏程序进行升级的同时也可以同云服务器下载用于升级购物程序的安装包,只是购物程序与升级程序之间的远程端口与游戏程序与升级程序之间的远程端口不相当,这样保证了升级操作的顺利执行。
可选地,如图7所示,该升级程序装置还可以包括:启动模块702,用于在通过升级程序使用安装包将第一主程序升级为第二主程序之后,在成功将第一主程序升级为第二主程序的情况下,通过升级程序启动第二主程序。
可见,在第一主程序升级为第二主程序之后可以由升级程序对第二主程序触发启动;也即升级程序除了能够单独的对第一主程序升级,还能够启动升级后的第二主程序以确定升级后的第二主程序是能够被正常启动,同时也确定该升级已经成功。
可选地,如图8所示,本实施例中的程序升级装置还可以包括:设置模块802,用于在预设的多个时间点设置用于记录当前升级进度的检查点;其中,当前保存的检查点已覆盖前一次保存的检查点。
对于上述涉及到的多个时间点,可以是多个执行步骤完成后的时间点,结合下述图3的时序图可知,该多个时间点可以是:升级程序接收主程序(旧)发送的升级请求,升级程序向与服务器发送下载请求;升级程序解压安装包,并对主程序(旧)进行升级;升级程序启动升级后的主程序(新)中的一个或多个步骤执行完成后的时间点,该多个时间点的设置可以根据实际情况进行相应的设置,例如,只对升级程序接收主程序(旧)发送的升级请求,升级程序向与服务器发送下载请求;升级程序解压安装包,并对主程序(旧)进行升级执行完成后的时间点进行检查点的设置;当然在本实施例中优选对整个升级过程中每一个步骤均设置相应的检查点。
可见,在本实施例中可以在升级过程中的多个时间点设置用于记录当前升级进度的检查点,通过该检查点可以升级出现故障后,基于该检查点进行断点继续升级,也即在升级出现故障的情况下无需从新开始升级,可以基于出现故障前所保存检查点进行断点升级,提高了升级效率。
可选地,如图9所示,本实施例中的程序升级装置还可以包括:上报模块902,用于在程序升级过程中出现故障的情况下,向所述云服务器上报告警消息;和/或,在通过所述升级程序使用所述安装包将所述第一主程序升级为第二主程序之后,向所述云服务器上报升级成功的消息。
可见,在程序升级过程中出现故障的情况下,向云服务器上报告警消息;和/或,在通过升级程序使用安装包将第一主程序升级为第二主程序之后,向云服务器上报升级成功的消息。通过该告警消息和升级成功的消息,使得服务器能够及时获取升级情况。
需要说明的是,通过所述升级程序在预设时间段内获取所述第一主程序发送的升级请求的次数禁止超过预设阈值。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在第一主程序从云服务器获取到升级指令的情况下,通过升级程序获取第一主程序发送的升级请求,其中,升级请求中携带有下载链接,下载链接用于指示从云服务器上下载用于升级第一主程序的安装包;
S2,通过升级程序根据下载链接从云服务器下载用于升级第一主程序的安装包;
S3,通过升级程序使用安装包将第一主程序升级为第二主程序。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在成功将第一主程序升级为第二主程序的情况下,通过升级程序启动第二主程序。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,通过升级程序本地端口获取第一主程序发送的升级请求;其中,本地端口为升级程序和第一主程序位于同一设备中用于本地交互的端口。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,通过升级程序从远程端口获取第一主程序发送的升级请求,其中,远程端口为升级程序和第一主程序分别位于不同设备中用于远程交互的端口。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在预设的多个时间点设置用于记录当前升级进度的检查点;其中,当前保存的检查点已覆盖前一次保存的检查点;
S2,在程序升级过程中出现故障的情况下,向云服务器上报告警消息;和/或,在通过升级程序使用安装包将第一主程序升级为第二主程序之后,向云服务器上报升级成功的消息。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
根据本发明实施例的又一个方面,还提供了一种用于实施上述程序升级的电子装置,如图10所示,该电子装置包括:处理器1002、存储器1004、显示器1006、用户接口1008、传输装置1010等。该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在第一主程序从云服务器获取到升级指令的情况下,通过升级程序获取第一主程序发送的升级请求,其中,升级请求中携带有下载链接,下载链接用于指示从云服务器上下载用于升级第一主程序的安装包;
S2,通过升级程序根据下载链接从云服务器下载用于升级第一主程序的安装包;
S3,通过升级程序使用安装包将第一主程序升级为第二主程序。
可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。
其中,存储器1004可用于存储软件程序以及模块,如本发明实施例中的程序升级方法和装置对应的程序指令/模块,处理器1002通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1004可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1010用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1010包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1010为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种程序升级方法,其特征在于,包括:
在第一主程序从云服务器获取到升级指令的情况下,通过升级程序获取所述第一主程序发送的升级请求,其中,所述升级请求中携带有下载链接,所述下载链接用于指示从所述云服务器上下载用于升级所述第一主程序的安装包;
通过所述升级程序根据所述下载链接从所述云服务器下载所述用于升级所述第一主程序的安装包;
通过所述升级程序使用所述安装包将所述第一主程序升级为第二主程序。
2.根据权利要求1所述的方法,其特征在于,所述通过升级程序获取所述第一主程序发送的升级请求,包括:
通过所述升级程序本地端口获取所述第一主程序发送的升级请求;其中,所述本地端口为所述升级程序和所述第一主程序位于同一设备中用于本地交互的端口。
3.根据权利要求2所述的方法,其特征在于,所述升级程序通过所述本地端口与一个或多个第一主程序链接。
4.根据权利要求1所述的方法,其特征在于,所述通过升级程序获取所述第一主程序发送的升级请求,包括:
通过所述升级程序从远程端口获取所述第一主程序发送的升级请求,其中,所述远程端口为所述升级程序和所述第一主程序分别位于不同设备中用于远程交互的端口。
5.根据权利要求1所述的方法,其特征在于,在所述通过所述升级程序使用所述安装包将所述第一主程序升级为第二主程序之后,所述方法还包括:
在成功将所述第一主程序升级为所述第二主程序的情况下,通过所述升级程序启动所述第二主程序。
6.根据权利要求1所述的方法,其特征在于,还包括:
在预设的多个时间点设置用于记录当前升级进度的检查点;其中,当前保存的检查点已覆盖前一次保存的检查点。
7.根据权利要求1所述的方法,其特征在于,还包括:
在程序升级过程中出现故障的情况下,向所述云服务器上报告警消息;和/或,在通过所述升级程序使用所述安装包将所述第一主程序升级为第二主程序之后,向所述云服务器上报升级成功的消息。
8.根据权利要求1至7中任一项所述的方法,其特征在于,通过所述升级程序在预设时间段内获取所述第一主程序发送的升级请求的次数禁止超过预设阈值。
9.一种程序升级装置,其特征在于,包括:
获取模块,用于在第一主程序从云服务器获取到升级指令的情况下,通过升级程序获取所述第一主程序发送的升级请求,其中,所述升级请求中携带有下载链接,所述下载链接用于指示从所述云服务器上下载用于升级所述第一主程序的安装包;
下载模块,用于通过所述升级程序根据所述下载链接从所述云服务器下载所述用于升级所述第一主程序的安装包;
升级模块,用于通过所述升级程序使用所述安装包将所述第一主程序升级为第二主程序。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
启动模块,用于在所述通过所述升级程序使用所述安装包将所述第一主程序升级为第二主程序之后,在成功将所述第一主程序升级为所述第二主程序的情况下,通过所述升级程序启动所述第二主程序。
11.根据权利要求9所述的装置,其特征在于,所述获取模块包括:
第一获取单元,用于通过所述升级程序本地端口获取所述第一主程序发送的升级请求;其中,所述本地端口为所述升级程序和所述第一主程序位于同一设备中用于本地交互的端口。
12.根据权利要求11所述的装置,其特征在于,所述升级程序通过所述本地端口与一个或多个第一主程序链接。
13.根据权利要求9所述的装置,其特征在于,所述获取模块包括:
第二获取单元,用于通过所述升级程序从远程端口获取所述第一主程序发送的升级请求,其中,所述远程端口为所述升级程序和所述第一主程序分别位于不同设备中用于远程交互的端口。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至8任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910749050.2A CN110442367A (zh) | 2019-08-14 | 2019-08-14 | 程序的升级方法及装置、存储介质和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910749050.2A CN110442367A (zh) | 2019-08-14 | 2019-08-14 | 程序的升级方法及装置、存储介质和电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110442367A true CN110442367A (zh) | 2019-11-12 |
Family
ID=68435472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910749050.2A Pending CN110442367A (zh) | 2019-08-14 | 2019-08-14 | 程序的升级方法及装置、存储介质和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442367A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023029120A1 (zh) * | 2021-08-31 | 2023-03-09 | 广东艾檬电子科技有限公司 | 一种应用下载处理方法、装置、设备及存储介质 |
-
2019
- 2019-08-14 CN CN201910749050.2A patent/CN110442367A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023029120A1 (zh) * | 2021-08-31 | 2023-03-09 | 广东艾檬电子科技有限公司 | 一种应用下载处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109413134B (zh) | 车载应用升级方法、装置、系统及存储介质 | |
CN107357571B (zh) | 设备组件程序的维护方法及系统 | |
EP3635547B1 (en) | Systems and methods for preventing service disruption during software updates | |
CN105930191B (zh) | 系统服务的重载方法及装置 | |
CN109144532B (zh) | 升级方法及装置 | |
CN104205109A (zh) | 持续性和弹性的工作者进程 | |
CN112737899A (zh) | 智能设备管理方法和装置、存储介质及电子设备 | |
CN104021141B (zh) | 数据处理和云服务的方法、装置及系统 | |
CN105517015A (zh) | 一种wifi产品空中下载OTA升级方法、装置及终端 | |
CN103731733B (zh) | 一种版本升级方法和电子设备 | |
CN109725921A (zh) | 一种vci设备固件更新的方法、装置及汽车故障诊断仪 | |
CN108540509A (zh) | 一种终端浏览器的处理方法、装置及服务器、智能终端 | |
CN112181677A (zh) | 业务的处理方法和装置、存储介质、电子装置 | |
CN109413164A (zh) | 一种访问服务恢复方法、装置、设备及可读存储介质 | |
CN115454636A (zh) | 一种容器云平台gpu资源调度方法、装置及应用 | |
CN110045969B (zh) | 应用程序安装方法、服务器、系统、设备及存储介质 | |
CN107526584B (zh) | 数据接入方法和装置 | |
CN110442367A (zh) | 程序的升级方法及装置、存储介质和电子装置 | |
JP5359835B2 (ja) | 情報処理装置、配布システム及び受信方法 | |
CN109002305A (zh) | 一种设备程序的更新方法及其系统 | |
CN102622254B (zh) | 电视机宕机处理方法和系统 | |
CN112748961A (zh) | 启动任务的执行方法和装置 | |
CN112486733B (zh) | 系统还原方法、装置、终端及存储介质 | |
CN108958980A (zh) | 防止Activity生命周期异常的方法、电子装置及计算机可读存储介质 | |
CN103095532A (zh) | 网络游戏反外挂系统、方法及反外挂服务端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |