CN115016820A - 一种应用程序更新方法、装置、设备及存储介质 - Google Patents
一种应用程序更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115016820A CN115016820A CN202210760000.6A CN202210760000A CN115016820A CN 115016820 A CN115016820 A CN 115016820A CN 202210760000 A CN202210760000 A CN 202210760000A CN 115016820 A CN115016820 A CN 115016820A
- Authority
- CN
- China
- Prior art keywords
- application program
- installation
- version
- terminal
- installation package
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000009434 installation Methods 0.000 claims abstract description 178
- 238000012360 testing method Methods 0.000 claims abstract description 74
- 238000012544 monitoring process Methods 0.000 claims abstract description 30
- 238000013515 script Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 9
- 238000012423 maintenance Methods 0.000 claims description 5
- 230000008030 elimination Effects 0.000 claims description 2
- 238000003379 elimination reaction Methods 0.000 claims description 2
- 230000008439 repair process Effects 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000005316 response function Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序更新方法、装置、设备及存储介质,其中该方法包括:获取应用程序列表;对所述应用程序列表中的各应用程序进行监控,以判断各所述应用程序是否存在更新版本;当监控到有应用程序存在更新版本,则获取该应用程序的更新版本安装包;对所述更新版本安装包进行安装测试,并在测试通过以后,将所述更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中,从而提高了应用程序更新的及时性和成功率,减少从补丁发布到终端修复的时间,最小化攻击面和漏洞时间。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种应用程序更新方法、一种应用程序更新装置、一种电子设备以及一种计算机可读存储介质。
背景技术
随着计算机技术的发展,用户可以在终端中安装各种应用程序(Application,简称APP)以满足工作、娱乐需求。随着应用程序的相关技术的发展和功能的改善,应用程序供应方对应用程序的更新频率也逐渐加快。
在相关技术中,采用如下方式进行应用程序的更新:应用程序自动检查是否存在更新版本,如果存在更新版本,则自动下载该更新版本进行安装更新或者提醒用户下载更新版本并安装更新;或者,应用程序不会自动检查更新,依靠用户来查找是否存在更新版本。
但在上述更新过程中,一旦应用程序的更新版本引入新的问题,则很难阻止应用程序的更新。另外,如果依赖用户来查找更新版本,则会造成应用程序更新不及时的问题。
发明内容
本申请提供了一种应用程序更新方法、装置、设备及存储介质,以解决现有的应用程序更新存在的难以在新版本引入新问题的时候阻止应用程序更新的问题以及,应用程序更新不及时的问题。
根据本申请的第一方面,提供了一种应用程序更新方法,所述方法包括:
获取应用程序列表;
对所述应用程序列表中的各应用程序进行监控,以判断各所述应用程序是否存在更新版本;
当监控到有应用程序存在更新版本,则获取该应用程序的更新版本安装包;
对所述更新版本安装包进行安装测试,并在测试通过以后,将所述更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中。
根据本申请的第二方面,提供了一种应用程序更新装置,所述装置包括:
应用程序列表获取模块,用于获取应用程序列表;
更新监控模块,用于对所述应用程序列表中的各应用程序进行监控,以判断各所述应用程序是否存在更新版本;
更新版本获取模块,用于当监控到有应用程序存在更新版本,则获取该应用程序的更新版本安装包;
测试模块,用于对所述更新版本安装包进行安装测试;
部署安装模块,用于在测试通过以后,将所述更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中。
根据本申请的第三方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面的方法。
根据本申请的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现上述第一方面的方法。
在本实施例中,通过在获取应用程序列表以后,通过对应用程序列表中的各应用程序进行监控,以判断各应用程序是否存在更新版本,当监控到有应用程序存在更新版本,则自动获取该应用程序的更新版本安装包,并对该更新版本安装包进行安装测试,在测试通过以后,将更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中。整个应用程序更新的过程,从检查更新到获取更新包到测试更新包到安装更新包都是自动进行的,提高了应用程序更新的及时性,减少从补丁发布到终端修复的时间,最小化攻击面和漏洞时间。
且在更新包安装在终端之前,会对更新包进行测试,只有测试通过后才允许部署安装到终端中,避免更新包引入新问题导致在终端中难以中断更新以及安装失败的问题,提高了终端对应用程序更新的成功率。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种应用程序更新方法的流程图;
图2是本申请实施例二提供的一种应用程序更新装置的结构示意图;
图3是本申请实施例三提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前,在终端中安装应用程序的方式可以包括如下三种方式:
第一种是采用内置于操作***中的应用程序包管理器进行应用程序安装。例如,在Windows平台上,Microsoft产品可以利用操作***本地的应用程序包管理器进行安装;在Linux平台上,许多应用程序包可以使用yum、apt、rpm或dpkg(yum、apt、rpm或dpkg都是基于Linux操作***的、用于软件包管理的工具,适用于不同的Linux发行版本)进行安装。
第二种是采用未与操作***集成的应用程序包管理器进行应用程序安装。例如,在Windows平台上,许多第三方应用程序都与开源替代方案打包在一起,比如NSIS(Nullsoft Scriptable Install System,NullSoft脚本安装***)或Inno Setup(一个免费的安装制作软件)。还有一些第三方应用程序还可以使用跨平台安装程序或专有安装程序,例如InstallAnywhere(一个为多个平台产生全方位的安装软件)。其中一些应用程序包管理器也可以向操作***包管理器注册应用程序安装包,但是该注册只是指向安装的应用程序程序的指针,例如NSIS、Inno Setup或InstallAnywhere。
第三种是无需进行应用程序安装的方案。一些应用程序是完全独立的,不需要安装程序来设置环境变量、安装依赖项或执行产品激活。这意味着应用程序可执行文件的简单副本就足够了。
随着对应用程序安全性的日益关注,及时更新应用程序变得至关重要。
对于采用上述第一种安装应用程序的方式,在进行应用程序更新时,利用操作***内置的应用程序包管理器,应用程序安装包将及时接收到开发人员提供的更新版本。具体的,在Windows平台中,Windows操作***的更新涵盖了对Microsoft应用程序的更新。在Linux平台上,yum、apt、rpm或dpkg会连接到***管理员配置的存储库以获取更新版本并安装更新版本。
对于上述第二种或第三种方案中不使用操作***内置的包管理器的应用程序,其更新方式可以是自行检查更新并获取更新版本进行安装,或者,在检查到更新后会提醒用户获取更新版本并进行安装;或者是由用户来检查更新并下载更新版本进行安装。
本申请提供的应用程序更新方式有别于上述的已有更新方式,通过融合SAM(Software Asset Management,软件资产管理)的思想来进行应用程序的更新管理,有助于及时查找出需要进行更新的应用程序,一旦应用程序的更新版本出现问题也能够及时在应用程序更新之前发现。
以下通过实施例对本申请进行说明:
实施例一
图1为本申请实施例一提供的一种应用程序更新方法的流程图,本实施例可以应用于监控服务中,该监控服务可以为服务器、管理后台、主控设备等设备上的服务,本实施例对该监控服务所在的设备不作限定。
如图1所示,该方法可以包括如下步骤:
步骤110,获取应用程序列表。
其中,应用程序列表中可以包括一个或多个应用程序的相关信息,该相关信息例如可以包括应用程序标识(例如是应用程序名称以及应用程序ID的其中一种或者结合)、应用程序的大小、安装日期、安装路径、安装版本等。
该应用程序列表可以是一个终端上安装的应用程序组成的应用程序列表,也可以是对多个终端上安装的应用程序进行整合后得到的应用程序列表,本实施例对此不作限定。
如果应用程序列表是对多个终端上安装的应用程序进行整合后得到的,那么上述的多个终端可以为处于同一分布式***下的终端,或者,在同一局域网中的终端,或者是,用户指定的、能够与本监控服务连接的多个终端,本实施例对此不作限制。在这种场景下,在一种实施例中,步骤110可以采用如下步骤获取应用程序列表:
确定终端列表;采集所述终端列表中各终端安装的应用程序,并将各终端安装的应用程序整合成应用程序列表。
具体的,在一种实现中,终端列表的获取方式可以为:根据配置信息来确定终端列表,例如,如果配置信息为将当前局域网中的所有终端组成终端列表,则可以发现当前局域网中的所有终端标识,然后根据终端标识来生成终端列表;如果配置信息为将某个分布式***中的所有节点组成终端列表,则可以从该分布式***的架构中搜索所有的终端(或节点)标识来生成终端列表;如果配置信息为指定某个组织结构或团体内的终端组成终端列表,则可以从该组织结构或团体的软件资源管理文件中查找出对应的终端(或节点)标识来生成终端列表;如果配置信息为用户指定的多个终端,则可以将该指定的多个终端的标识生成终端列表。在其他实现中,若在先生成的SAM数据库中记录有终端列表,还可以直接从该SAM数据库中读取终端列表。本实施例对终端列表的获取方式不作具体限定。
当确定终端列表以后,监控服务则可以采集该终端列表中各终端的应用程序清单。在一种实现中,监控服务可以采用基于软件资产管理(SAM)的软件清单工具来采集终端列表中各终端安装的应用程序以及获取各应用程序的相关信息,该软件清单工具例如可以包括LanSweeper工具,LanSweeper是一款实用的网络监测工具,可以收集Windows网络里面的计算机软件、硬件以及与资产管理相关信息,其无需安装客户端,所有信息收集依靠使用WMI(Windows Management Instrumentation,Windows管理规范)筛选器、文件共享以及远程注册表的访问实现。
在其他实现中,还可以在终端上安装代理来获得当前终端***中安装的应用程序清单。该代理被触发以后可以获得本终端的应用程序清单,该应用程序清单包括本终端中安装的应用程序的相关信息,接着可以将该应用程序清单上报给监控服务。示例性地,该代理例如可以包括Wazuh代理,Wazuh是一个安全检测、可视化和安全合规开源项目,提供日志采集、预防、检测和响应等功能。
监控服务获得终端列表中各终端的应用程序清单以后,则可以将获得的各应用程序清单整合成应用程序列表。该整合的操作也可以通过软件清单工具来执行。具体的,该整合的操作至少可以包括:汇总各终端安装的应用程序的应用程序标识,并进行去重处理,生成应用程序标识集合;遍历应用程序标识集合中的各应用程序标识,针对当前遍历到的应用程序标识,确定安装该应用程序标识对应的应用程序的一个或多个终端,作为目标终端,并获取该应用程序标识在该目标终端的安装信息,该安装信息至少包括安装路径和安装版本;以应用程序标识为维度,在应用程序列表中记录该应用程序标识对应的一个或多个安装信息。
例如,假设终端列表中有三个终端,分别是终端1、终端2和终端3,终端1中安装的应用程序包括:A1、A2、A3和A4,终端2中安装的应用程序包括:A1、A2和A5,终端3中安装的应用程序包括:A1、A2、A4和A5。则针对应用程序A1,目标终端包括终端1、终端2和终端3;针对应用程序A2,目标终端包括终端1、终端2和终端3;针对应用程序A3,目标终端包括终端1;针对应用程序A4,目标终端包括终端1和终端3;针对应用程序A5,目标终端包括终端2和终端3。则应用程序列表可以表示为:{A1(终端1、终端2、终端3),A2(终端1、终端2、终端3),A3(终端1),A4(终端1、终端3),A5(终端2、终端3)}。
如果计算机缺乏统一的软件清单(即应用程序列表)意味着计算机存在的风险是未知的,因为不知道哪个应用程序会带来风险。因此在本实施例中,可以创建SAM管理数据库,获得应用程序列表以后,可以将该应用程序列表存储在该SAM管理数据库中。通过SAM管理数据库实现对应用程序列表的统一、集中管理,可以提高对整个计算机、整个组织或者整个局域网的应用程序管理水平,从而降低对计算机的风险。
步骤120,对所述应用程序列表中的各应用程序进行监控,以判断各所述应用程序是否存在更新版本。
具体的,在应用程序列表中各应用程序还可以携带相关信息,该相关信息包含的安装版本还可以组成版本列表,监控服务可以通过版本列表来对应用程序进行监控,通过比对应用程序在版本列表中记录的版本和最新发布的版本,不断地检查该应用程序列表中的各个应用程序是否发布更新版本。
在一种实施例中,步骤120进一步可以包括如下步骤:
确定所述应用程序列表中各应用程序的官方网站,并对所述官方网站生成爬虫任务,所述爬虫任务包括对应的应用程序标识;运行所述爬虫任务,以采用网络爬虫对所述官方网站针对所述应用程序标识发布的更新版本进行监控。
具体的,可以搜索应用程序列表中的各应用程序的官方网站,然后对每个官方网站创建基于爬虫任务,该爬虫任务是开发网络爬虫来监控对应的应用程序的官方网站是否发布针对该应用程序的更新版本的任务,而由于一个官方网站发布的产品不止一个,因此,爬虫任务中携带应用程序标识,来指明需要从官方网站中监控的是哪个应用程序的更新发布。然后运行该爬虫任务,以使用对应的网络爬虫来对该官方网站进行监控,检查所要监控的应用程序是否发布新版本。
步骤130,当监控到有应用程序存在更新版本,则获取该应用程序的更新版本安装包。
具体的,当网络爬虫监控到官方网站针对所监控的应用程序发布更新版本时,则直接下载对应的更新版本安装包,该下载的更新版本安装包可以保存在SAM管理数据库中,并与对应的应用程序标识进行关联。
通过在官方网站上设置网络爬虫来对应用程序的更新进行监控,可以快速地从官方网站中获取更新版本安装包,进而避免在网络上搜索查找更新版本安装包资源带来的麻烦。
步骤140,对所述更新版本安装包进行安装测试,并在测试通过以后,将所述更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中。
在本实施例中,当监控服务获得应用程序的更新版本安装包以后,在将该更新版本安装包下发给终端之前,还可以对该更新版本安装包进行安装测试,以避免更新版本安装包引入新问题但很难阻止软件在终端中自我更新的情况发生,确保使用新版本的安装包的***可以正常工作。
在一种实施例中,步骤140中可以采用如下步骤对更新版本安装包进行安装测试:部署虚拟机,并在所述虚拟机中构建所述更新版本安装包的安装环境镜像;在所述虚拟机中写入软件安装脚本;获取所述更新版本安装包的镜像文件;在所述安装环境镜像中采用所述软件安装脚本对所述镜像文件执行自动安装;若安装成功,则对安装后的应用程序采用自动化测试脚本进行自动化测试;若安装失败,则通知相关人员在所述虚拟机中对所述镜像文件进行安装并测试。
在一种实现中,可以采用Ansible(一种自动运维化工具)的Esxi API(Esxi专为运行虚拟机、最大限度降低配置要求和简化部署设计)接口来部署虚拟机。然后在虚拟机中使用CI/CD(Continuous Integration/Continuous Deployment,持续集成持续部署)流程自动构建更新版本安装包的安装环境镜像。其中,更新版本安装包的安装环境需求可以从官方网站中获取或者从该安装包的安装描述中获取。
接着在上述构建了安装环境镜像的虚拟机中写入软件安装脚本,该软件安装脚本可以从预先设置的脚本库中获取。其中,脚本库中可以预先配置不同安装环境的软件安装脚本,可以根据当前安装环境镜像从脚本库中匹配出对应的软件安装脚本,并将匹配到的软件安装脚本写入虚拟机中。
在具体实现中,为了不对更新版本安装包产生改变,以免影响安装包在真实环境下的安装。可以对该更新版本安装包进行复制,得到更新版本安装包的镜像文件。然后在虚拟机的安装环境镜像中采用上述写入的软件安装脚本对该镜像文件执行自动安装。
如果该镜像文件在虚拟机中安装成功,则对安装后的应用程序采用自动化测试脚本进行自动化测试,该自动化测试脚本也是预先配置的测试脚本。如果该应用程序通过自动化测试,则得到测试成功的结果;如果该应用程序没有通过自动化测试,则得到测试失败的结果,并给出失败的原因。在其他实施例中,在应用程序安装成功以后,也可以通知相关人员对该应用程序进行手动测试,相关人员经过测试后,可以记录测试成功或者测试失败的结果。
如果该镜像文件在虚拟机中安装失败,则可以通知相关人员在虚拟机中对镜像文件进行安装并测试。相关人员经过安装和测试后,可以记录安装成功或失败的结果,以及,记录测试成功或者测试失败的结果。
在一种实施例中,在对更新版本安装包进行安装测试以后,本实施例还可以包括如下步骤:
当对更新版本安装包测试通过以后,则在应用程序列表中将对应的应用程序添加测试通过标记;若测试不通过,则在应用程序列表中将对应的应用程序添加测试不通过标记,并禁止对所述更新版本安装包进行部署安装。
具体的,当通过上述的自动化测试脚本测试方式或者人工测试方式,对更新版本安装包测试通过以后,则在应用程序列表中将对应的应用程序添加测试通过标记;否则添加测试不通过标识。
对于测试不通过的更新版本安装包,则禁止进行部署安装。
对于测试通过的更新版本安装包,则将更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中。
在一种实现中,上述将更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中的步骤,进一步可以包括如下步骤:
确定安装有所述更新版本安装包对应的应用程序的终端,作为待安装终端;采用自动运维化工具将所述更新版本安装包部署安装到所述待安装终端中。
示例性地,该自动运维化工具可以包括Ansible工具。通过Ansible工具将更新版本安装包自动部署安装到所有待安装终端中。
在其他实现中,监控服务还可以直接将更新版本安装包发送至所有待安装终端中,由待安装终端根据接收到的更新版本安装包更新对应的应用程序。或者,由待安装终端将接收到的更新版本安装包展示给用户,由用户来执行安装操作。
在实际上,监控服务还可以首先生成应用程序更新通知,该应用程序更新通知包括待更新的应用程序标识,并将应用程序更新通知发送至所有待安装终端中,由待安装终端展示该应用程序更新通知。当待安装终端检测到用户同意更新的操作时,生成同意更新信号发送给监控服务。继而监控服务再将更新版本安装包更新部署到对应的终端中。由于本实施例是通过监控服务来进行更新版本的部署安装,使得应用程序的更新变得可控,例如,监控服务可以控制应用程序的更新时间,当到达指定更新时间时才进行新版本的部署安装。
在一种实施例中,当应用程序在终端中安装完成以后,终端还可以向监控服务发送安装完成信号,该安装完成信号携带应用程序标识、安装路径以及安装版本。监控服务根据该安装完成信号,在查找该应用程序标识以及安装路径对应的记录,并将该查找到的记录的安装版本更新为最新的版本号。
在本实施例中,通过在获取应用程序列表以后,通过对应用程序列表中的各应用程序进行监控,以判断各应用程序是否存在更新版本,当监控到有应用程序存在更新版本,则自动获取该应用程序的更新版本安装包,并对该更新版本安装包进行安装测试,在测试通过以后,将更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中。整个应用程序更新的过程,从检查更新到获取更新包到测试更新包到安装更新包都是自动进行的,提高了应用程序更新的及时性,减少从补丁发布到终端修复的时间,最小化攻击面和漏洞时间。
且在更新包安装在终端之前,会对更新包进行测试,只有测试通过后才允许部署安装到终端中,避免更新包引入新问题导致在终端中难以中断更新以及安装失败的问题,提高了终端对应用程序更新的成功率。
实施例二
图2为本申请实施例二提供的一种应用程序更新装置的结构示意图,可以包括如下模块:
应用程序列表获取模块210,用于获取应用程序列表;
更新监控模块220,用于对所述应用程序列表中的各应用程序进行监控,以判断各所述应用程序是否存在更新版本;
更新版本获取模块230,用于当监控到有应用程序存在更新版本,则获取该应用程序的更新版本安装包;
测试模块240,用于对所述更新版本安装包进行安装测试;
部署安装模块250,用于在测试通过以后,将所述更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中。
在一种实施例中,应用程序列表获取模块210包括如下模块:
终端列表确定模块,用于确定终端列表;
应用程序整合模块,用于采集所述终端列表中各终端安装的应用程序,并将各终端安装的应用程序整合成应用程序列表。
在一种实施例中,所述应用程序携带对应的相关信息,所述相关信息包括:应用程序标识、安装路径、安装版本;
所述应用程序整合模块具体用于:
汇总各终端安装的应用程序的应用程序标识,并进行去重处理,生成应用程序标识集合;
遍历所述应用程序标识集合中的各应用程序标识,针对当前遍历到的应用程序标识,确定安装该应用程序标识对应的应用程序的一个或多个终端,作为目标终端,并获取该应用程序标识在该目标终端的安装信息,所述安装信息至少包括安装路径和安装版本;
以所述应用程序标识为维度,在应用程序列表中记录该应用程序标识对应的一个或多个安装信息。
在一种实施例中,更新监控模块220具体用于:
确定所述应用程序列表中各应用程序的官方网站,并对所述官方网站生成爬虫任务,所述爬虫任务包括对应的应用程序标识;
运行所述爬虫任务,以采用网络爬虫对所述官方网站针对所述应用程序标识发布的更新版本进行监控;
所述更新版本获取模块230具体用于:
当所述网络爬虫监控到所述官方网站针对所监控的应用程序发布更新版本时,下载对应的更新版本安装包。
在一种实施例中,测试模块240具体用于:
部署虚拟机,并在所述虚拟机中构建所述更新版本安装包的安装环境镜像;
在所述虚拟机中写入软件安装脚本;
获取所述更新版本安装包的镜像文件;
在所述安装环境镜像中采用所述软件安装脚本对所述镜像文件执行自动安装;
若安装成功,则对安装后的应用程序采用自动化测试脚本进行自动化测试;
若安装失败,则通知相关人员在所述虚拟机中对所述镜像文件进行安装并测试。
在一种实施例中,所述装置还可以包括如下模块:
标记模块,用于当对所述更新版本安装包测试通过以后,则在应用程序列表中将对应的应用程序添加测试通过标记;若测试不通过,则在应用程序列表中将对应的应用程序添加测试不通过标记,并禁止对所述更新版本安装包进行部署安装。
在一种实施例中,部署安装模块250具体用于:
确定安装有所述更新版本安装包对应的应用程序的终端,作为待安装终端;
采用自动运维化工具将所述更新版本安装包部署安装到所述待安装终端中。
本申请实施例所提供的一种应用程序更新装置可执行本申请任意实施例所提供的一种应用程序更新方法,具备执行方法相应的功能模块和有益效果。
实施例三
图3示出了可以用来实施本申请的方法实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图3所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如实施例一所述的方法。
在一些实施例中,实施例一所述的方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的实施例一所述的方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行实施例一所述的方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的***和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种应用程序更新方法,其特征在于,所述方法包括:
获取应用程序列表;
对所述应用程序列表中的各应用程序进行监控,以判断各所述应用程序是否存在更新版本;
当监控到有应用程序存在更新版本,则获取该应用程序的更新版本安装包;
对所述更新版本安装包进行安装测试,并在测试通过以后,将所述更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中。
2.根据权利要求1所述的方法,其特征在于,所述获取应用程序列表,包括:
确定终端列表;
采集所述终端列表中各终端安装的应用程序,并将各终端安装的应用程序整合成应用程序列表。
3.根据权利要求2所述的方法,其特征在于,所述应用程序携带对应的相关信息,所述相关信息包括:应用程序标识、安装路径、安装版本;
所述将各终端安装的应用程序整合成应用程序列表,包括:
汇总各终端安装的应用程序的应用程序标识,并进行去重处理,生成应用程序标识集合;
遍历所述应用程序标识集合中的各应用程序标识,针对当前遍历到的应用程序标识,确定安装该应用程序标识对应的应用程序的一个或多个终端,作为目标终端,并获取该应用程序标识在该目标终端的安装信息,所述安装信息至少包括安装路径和安装版本;
以所述应用程序标识为维度,在应用程序列表中记录该应用程序标识对应的一个或多个安装信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对所述应用程序列表中的各应用程序进行监控,以判断各所述应用程序是否存在更新版本,包括:
确定所述应用程序列表中各应用程序的官方网站,并对所述官方网站生成爬虫任务,所述爬虫任务包括对应的应用程序标识;
运行所述爬虫任务,以采用网络爬虫对所述官方网站针对所述应用程序标识发布的更新版本进行监控;
所述当监控到有应用程序存在更新版本,则获取该应用程序的更新版本安装包,包括:
当所述网络爬虫监控到所述官方网站针对所监控的应用程序发布更新版本时,下载对应的更新版本安装包。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述对所述更新版本安装包进行安装测试,包括:
部署虚拟机,并在所述虚拟机中构建所述更新版本安装包的安装环境镜像;
在所述虚拟机中写入软件安装脚本;
获取所述更新版本安装包的镜像文件;
在所述安装环境镜像中采用所述软件安装脚本对所述镜像文件执行自动安装;
若安装成功,则对安装后的应用程序采用自动化测试脚本进行自动化测试;
若安装失败,则通知相关人员在所述虚拟机中对所述镜像文件进行安装并测试。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当对所述更新版本安装包测试通过以后,则在应用程序列表中将对应的应用程序添加测试通过标记;
若测试不通过,则在应用程序列表中将对应的应用程序添加测试不通过标记,并禁止对所述更新版本安装包进行部署安装。
7.根据权利要求1或2或3或6所述的方法,其特征在于,所述将所述更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中,包括:
确定安装有所述更新版本安装包对应的应用程序的终端,作为待安装终端;
采用自动运维化工具将所述更新版本安装包部署安装到所述待安装终端中。
8.一种应用程序更新装置,其特征在于,所述装置包括:
应用程序列表获取模块,用于获取应用程序列表;
更新监控模块,用于对所述应用程序列表中的各应用程序进行监控,以判断各所述应用程序是否存在更新版本;
更新版本获取模块,用于当监控到有应用程序存在更新版本,则获取该应用程序的更新版本安装包;
测试模块,用于对所述更新版本安装包进行安装测试;
部署安装模块,用于在测试通过以后,将所述更新版本安装包部署安装到具有该更新版本安装包对应的应用程序的终端中。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210760000.6A CN115016820A (zh) | 2022-06-29 | 2022-06-29 | 一种应用程序更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210760000.6A CN115016820A (zh) | 2022-06-29 | 2022-06-29 | 一种应用程序更新方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115016820A true CN115016820A (zh) | 2022-09-06 |
Family
ID=83079323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210760000.6A Pending CN115016820A (zh) | 2022-06-29 | 2022-06-29 | 一种应用程序更新方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115016820A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809205A (zh) * | 2023-02-10 | 2023-03-17 | 安徽合信国质检验检测有限公司 | 一种基于云计算技术的软件检测样品部署*** |
CN116319482A (zh) * | 2023-05-22 | 2023-06-23 | 南京赛宁信息技术有限公司 | 网络靶场中基于Wazuh的自定义探针采集***与方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170090901A1 (en) * | 2015-09-30 | 2017-03-30 | Apple Inc. | Software Updating |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN111026408A (zh) * | 2019-10-25 | 2020-04-17 | 上海商米科技集团股份有限公司 | 一种管理应用的方法、装置和计算机存储介质 |
CN111611160A (zh) * | 2020-05-15 | 2020-09-01 | 浪潮电子信息产业股份有限公司 | 一种软件测试方法、装置、设备及存储介质 |
CN114064105A (zh) * | 2021-10-22 | 2022-02-18 | 深圳市元征科技股份有限公司 | 一种应用程序更新的推送方法、装置、***及存储介质 |
-
2022
- 2022-06-29 CN CN202210760000.6A patent/CN115016820A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170090901A1 (en) * | 2015-09-30 | 2017-03-30 | Apple Inc. | Software Updating |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN111026408A (zh) * | 2019-10-25 | 2020-04-17 | 上海商米科技集团股份有限公司 | 一种管理应用的方法、装置和计算机存储介质 |
CN111611160A (zh) * | 2020-05-15 | 2020-09-01 | 浪潮电子信息产业股份有限公司 | 一种软件测试方法、装置、设备及存储介质 |
CN114064105A (zh) * | 2021-10-22 | 2022-02-18 | 深圳市元征科技股份有限公司 | 一种应用程序更新的推送方法、装置、***及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809205A (zh) * | 2023-02-10 | 2023-03-17 | 安徽合信国质检验检测有限公司 | 一种基于云计算技术的软件检测样品部署*** |
CN116319482A (zh) * | 2023-05-22 | 2023-06-23 | 南京赛宁信息技术有限公司 | 网络靶场中基于Wazuh的自定义探针采集***与方法 |
CN116319482B (zh) * | 2023-05-22 | 2023-08-22 | 南京赛宁信息技术有限公司 | 网络靶场中基于Wazuh的自定义探针采集***与方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10642599B1 (en) | Preemptive deployment in software deployment pipelines | |
US10162650B2 (en) | Maintaining deployment pipelines for a production computing service using live pipeline templates | |
US20170161059A1 (en) | Management of multiple application programming interface versions for development environments | |
US9898397B2 (en) | Deployment pattern monitoring | |
US8972963B2 (en) | End-to-end patch automation and integration | |
US20170180459A1 (en) | Building deployment pipelines for a production computing service using live pipeline templates | |
CN115016820A (zh) | 一种应用程序更新方法、装置、设备及存储介质 | |
US10331418B2 (en) | State machine representation of a development environment deployment process | |
US20200310779A1 (en) | Validating a firmware compliance policy prior to use in a production system | |
CN109388569B (zh) | 远程检测客户端环境异常的方法、测试服务器及存储介质 | |
JP2017201470A (ja) | 設定支援プログラム、設定支援方法及び設定支援装置 | |
CN111225064A (zh) | Ceph集群部署方法、***、设备和计算机可读存储介质 | |
CN111831567B (zh) | 应用的测试环境配置方法、装置、***和介质 | |
CN113422692A (zh) | 一种K8s集群内节点故障检测及处理方法、装置及存储介质 | |
CN112162761A (zh) | 自动化部署项目至公有云容器化平台的方法、***及设备 | |
CN111654495A (zh) | 用于确定流量产生来源的方法、装置、设备及存储介质 | |
CN114168471A (zh) | 测试方法、装置、电子设备及存储介质 | |
US10452466B1 (en) | Automated system maintenance capabilities for a computing system | |
CN116194894A (zh) | 原生云应用程序的故障定位 | |
US11947939B1 (en) | Software application dependency insights | |
US10394534B2 (en) | Framework for flexible logging of development environment deployment | |
CN115310096A (zh) | 一种安全漏洞的处理方法、装置、设备及介质 | |
CN110580216A (zh) | 一种应用提测的方法和装置 | |
US10684881B2 (en) | Batch processing of computing elements to conditionally delete virtual machine(s) | |
CN111966599A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220906 |
|
RJ01 | Rejection of invention patent application after publication |