CN113230660B - 应用程序更新方法、装置及设备 - Google Patents

应用程序更新方法、装置及设备 Download PDF

Info

Publication number
CN113230660B
CN113230660B CN202110643725.2A CN202110643725A CN113230660B CN 113230660 B CN113230660 B CN 113230660B CN 202110643725 A CN202110643725 A CN 202110643725A CN 113230660 B CN113230660 B CN 113230660B
Authority
CN
China
Prior art keywords
application program
target application
update
image file
file
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
Application number
CN202110643725.2A
Other languages
English (en)
Other versions
CN113230660A (zh
Inventor
杨锦隆
许敏华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110643725.2A priority Critical patent/CN113230660B/zh
Publication of CN113230660A publication Critical patent/CN113230660A/zh
Application granted granted Critical
Publication of CN113230660B publication Critical patent/CN113230660B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种应用程序更新方法、装置以及设备,涉及云技术和区块链技术,其中,方法包括:应用服务器从中间服务器中获取目标应用程序的原始镜像文件,所述应用服务器和所述中间服务器均属于应用程序管理***;根据所述原始镜像文件运行所述目标应用程序,获取所述目标应用程序的运行数据;基于所述目标应用程序的运行数据,对所述目标应用程序进行更新检测;若检测到所述目标应用程序满足更新条件,则根据所述目标应用程序的运行数据生成所述目标应用程序的更新镜像文件;将所述更新镜像文件同步至所述中间服务器。通过本申请能够提高更新应用程序的效率,并降低成本。

Description

应用程序更新方法、装置及设备
技术领域
本申请涉及云技术-云游戏相关的技术领域,尤其涉及一种应用程序更新方法、装置及设备。
背景技术
随着云技术的快速发展,云服务器为用户提供了多种多样的应用程序(游戏应用程序、社交应用程序以及购物应用程序等等),给用户的工作和生活带来极大的便利。当对这些应用程序执行功能迭代、新功能添加和程序bug(漏洞)的修复等等操作时,通常需要对这些应用程序进行更新。实践中,需要人工查看的方式查看云服务器中是否存在应用程序的应用更新文件;当存在应用更新文件时,需要手动将该应用更新文件推送至边缘服务器中,以实现应用程序的更新。可见,这种应用程序更新方法的效率比较低,且成本比较高。
发明内容
本申请实施例所要解决的技术问题在于,提供一种应用程序更新方法、装置及设备,能够提高更新应用程序的效率,并降低成本。
本申请实施例一方面提供一种应用程序更新方法,包括:
应用服务器从中间服务器中获取目标应用程序的原始镜像文件,上述应用服务器和上述中间服务器均属于应用程序管理***;
根据上述原始镜像文件运行上述目标应用程序,获取上述目标应用程序的运行数据;
基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件;
将上述更新镜像文件同步至上述中间服务器;上述中间服务器将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
本申请实施例一方面提供一种应用程序更新方法,包括:
中间服务器将目标应用程序的原始镜像文件发送至应用服务器;上述应用服务器和上述中间服务器均属于应用程序管理***;
接收上述应用服务器所发送的上述目标应用程序的更新镜像文件;上述更新镜像文件是在上述目标应用程序满足更新条件时,根据上述目标应用程序的运行数据生成的,上述运行数据是上述应用服务器根据上述原始镜像文件运行上述目标应用程序得到的;
将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
本申请实施例一方面提供一种应用程序更新装置,包括:
获取模块,用于从中间服务器中获取目标应用程序的原始镜像文件,上述应用服务器和上述中间服务器均属于应用程序管理***;
运行模块,用于根据上述原始镜像文件运行上述目标应用程序,获取上述目标应用程序的运行数据;
检测模块,用于基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件;
同步模块,用于将上述更新镜像文件同步至上述中间服务器;上述中间服务器将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
本申请实施例一方面提供一种应用程序更新装置,包括:
发送模块,用于将目标应用程序的原始镜像文件发送至应用服务器;上述应用服务器和上述中间服务器均属于应用程序管理***;
接收模块,用于接收上述应用服务器所发送的上述目标应用程序的更新镜像文件;上述更新镜像文件是在上述目标应用程序满足更新条件时,根据上述目标应用程序的运行数据生成的,上述运行数据是上述应用服务器根据上述原始镜像文件运行上述目标应用程序得到的;
同步模块,用于将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
本申请一方面提供了一种计算机设备,包括:处理器及存储器;
其中,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行如下步骤:
应用服务器从中间服务器中获取目标应用程序的原始镜像文件,上述应用服务器和上述中间服务器均属于应用程序管理***;
根据上述原始镜像文件运行上述目标应用程序,获取上述目标应用程序的运行数据;
基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件;
将上述更新镜像文件同步至上述中间服务器;上述中间服务器将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
可选的,上述处理器用于调用上述计算机程序,以执行如下步骤:
将目标应用程序的原始镜像文件发送至应用服务器;上述应用服务器和上述中间服务器均属于应用程序管理***;
接收上述应用服务器所发送的上述目标应用程序的更新镜像文件;上述更新镜像文件是在上述目标应用程序满足更新条件时,根据上述目标应用程序的运行数据生成的,上述运行数据是上述应用服务器根据上述原始镜像文件运行上述目标应用程序得到的;
将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时,以执行如下步骤:
从中间服务器中获取目标应用程序的原始镜像文件,上述应用服务器和上述中间服务器均属于应用程序管理***;
根据上述原始镜像文件运行上述目标应用程序,获取上述目标应用程序的运行数据;
基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件;
将上述更新镜像文件同步至上述中间服务器;上述中间服务器将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
可选的,上述程序指令当被处理器执行时,以执行如下步骤:
将目标应用程序的原始镜像文件发送至应用服务器;上述应用服务器和上述中间服务器均属于应用程序管理***;
接收上述应用服务器所发送的上述目标应用程序的更新镜像文件;上述更新镜像文件是在上述目标应用程序满足更新条件时,根据上述目标应用程序的运行数据生成的,上述运行数据是上述应用服务器根据上述原始镜像文件运行上述目标应用程序得到的;
将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
本申请中,应用服务器从中间服务器中获取目标应用程序的原始镜像文件,加载该原始镜像文件,以运行该目标应用程序,获取该目标应用程序的运行数据。对该目标应用程序的运行数据进行图像检测等处理,以判断该目标应用程序是否满足更新条件,在该目标应用程序满足更新条件时,可根据该目标应用程序的运行数据生成该目标应用程序的更新镜像文件;将该更新镜像文件同步至中间服务器。这样中间服务器可以将该更新镜像文件同步至边缘服务器,边缘服务器通过加装更新镜像文件,为用户呈现更新后的目标应用程序。可见,通过对目标应用程序的运行数据进行分析,可自动实现对目标应用程序的更新检测;并根据目标应用程序的运行数据,可自动生成目标应用程序的更新镜像文件;即可自动实现对目标应用程序的更新操作,不需要人工参与,提高更新应用程序的效率,降低成本。另外,通过这种分布式架构对目标应用程序进行更新,可以避免更新目标应用程序的过程中出现网络拥堵等异常情况。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种应用程序管理***的架构示意图;
图2是本申请提供的一种应用程序管理***中的各个设备之间进行数据交互的场景示意图;
图3是本申请提供的一种获取目标应用程序的应用更新文件的场景示意图;
图4是本申请提供的一种应用程序更新方法的流程意图;
图5是本申请提供的一种对目标应用程序进行更新检测的场景示意图;
图6是本申请提供的一种生成应用程序的镜像更新文件的场景示意图;
图7是本申请提供的一种生成应用程序的镜像更新文件的场景示意图;
图8是本申请提供的一种控制目标应用程序的接入接口的场景示意图;
图9是本申请提供的一种应用程序更新方法的流程意图;
图10是本申请实施例提供的一种应用程序更新装置的结构示意图;
图11是本申请实施例提供的一种应用程序更新装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请主要涉及云技术中的云游戏,其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术也可以是指基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
随着云技术的发展,云技术被广泛应用于多种领域中,如医疗云、云物联、云呼叫、云游戏等领域。其中,云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
本申请实施例提供的应用程序更新方法涉及云技术中的云游戏,即通过云服务器从镜像仓库中拉取目标应用程序的原始镜像文件,根据该原始镜像文件运行该目标应用程序,获取该目标应用程序的运行数据,利用图像处理等技术对该运行数据进行分析,以检测该目标应用程序是否满足更新条件。当目标应用程序满足更新条件时,利用图像处理技术自动获取该目标应用程序的更新镜像文件,并将更新镜像文件同步至镜像仓库中,以便镜像仓库将更新镜像文件同步至边缘服务器中,完成对目标应用程序的更新操作。在对目标应用程序的更新过程中,可实现对目标应用程序的自动更新操作,不需要人工参与,提高更新应用程序的效率,并降低成本。
为了便于理解本申请,首先介绍实现本申请的应用程序更新方法的应用程序管理***,如图1所示,应用程序管理***中包括应用服务器10、中间服务器11以及至少一个边缘集群。
其中,中间服务器11与应用服务器10建立通信连接,以便于中间服务器11可与应用服务器10进行数据通信。图1中的边缘集群12、边缘集群13、边缘集群14、……、中均可包括一个或多个边缘服务器,这里将不对边缘服务器的数量进行限制。各个边缘集群中的边缘服务器均与中间服务器11建立通信连接,以便于各个边缘服务器可与中间服务器11进行数据通信。每个边缘集群连接有一个或多个用户终端(图1中未示出用户终端),各个用户终端可与其连接的边缘集群中的边缘服务器进行数据通信。
应用服务器10可以是指云服务后端设备,即应用程序的后端服务设备,可用于对应用程序进行更新检测,生成应用程序的更新镜像文件等等。可理解的是,应用程序可包括云游戏、社交应用程序、支付应用程序、购物应用程序、多媒体应用程序(如音视频应用程序)以及教育应用程序等等;为了便于区分,称需要进行更新检测的应用程序为目标应用程序。本申请中目标应用程序的镜像文件可包括操作***相关文件和目标应用程序相关文件,操作***相关文件是指运行该目标应用程的操作***的文件,如包括Android(安卓)操作***的文件、IOS操作***的文件等等。目标应用程序相关文件可包括目标应用程序的可执行文件、库文件以及素材等内容。目标应用程序的镜像文件可被容器实例来运行,当目标应用程序的镜像文件被运行时,在容器层中可用于记录应用程序的变更,将包括应用更新文件的容器层提交得到更新镜像文件,即将包括应用更新文件的容器层变革,得到更新镜像文件。也即容器层也可以称为可读层,即可在容器层中读写数据;仅允许从镜像层中读取数据。目标应用程序的原始镜像文件是指目标应用程序更新前的镜像文件,目标应用程序的更新镜像文件是指用于记录目标应用程序的原始镜像文件中的内容变更的镜像文件,如更新镜像文件记录原始镜像文件中删除、添加或修改了哪个文件以及新增的文件内容以及新增的内容。即通常原始镜像文件被记录在镜像层,将目标应用程序的应用更新文件记录在容器层,将包括应用更新文件的容器层提交得到更新镜像文件,应用更新文件中记录了原始镜像文件中的内容变更。
其中,中间服务器11也可以称为中央镜像仓库,可用于存储应用程序的镜像文件,并将应用程序的更新镜像文件同步至边缘服务器。例如,中间服务器11可以同时将目标应用程序的更新镜像文件同步至各个边缘服务器。或者,中间服务器可以根据各个边缘服务器的重要等级,依次将目标应用程序的更新镜像文件同步至各个边缘服务器,该边缘服务器的重要等级可以是根据接入边缘服务器的用户终端数量确定的。
可理解的是,各个边缘集群可以分布在不同地区,并用于为属于不同地区的用户终端提供服务器。例如,边缘集群12位于A省,边缘集群13位于B省,边缘集群位于C省;边缘集群12中的边缘服务器用于为A省的用户终端提供服务,边缘集群13中的边缘服务器用于为B省的用户终端提供服务,边缘集群14中的边缘服务器用于为C省的用户终端提供服务。其中,边缘服务器可用于运行一个或多个应用程序,并用于将运行应用程序过程中输出的应用画面同步至与其连接的用户终端。例如,在云游戏场景下,边缘服务器运行云游戏,将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端(即用户终端)。
用户终端可以是指具备流媒体播放能力、人机交互能力以及通信能力的设备。其中,用户终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。应用服务器、中间服务器以及边缘服务器可以是独立的一个物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。各个用户终端以及各个之间服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
可理解的是,该应用程序管理***可以是指区块链网络,应用服务器、边缘服务器、中间服务器均可以是指区块链网络中的节点,每个节点在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据。为了保证区块链网络中的信息互通,区块链网络中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当区块链网络中的任意节点接收到目标应用程序的更新镜像文件时,区块链网络中的其他节点便根据共识算法获取该更新镜像文件,将该更新镜像文件作为区块链网络中的数据进行存储,使得区块链网络中全部节点上存储的数据均一致。通过区块链网络来实现应用程序的更新操作,可有效避免应用程序的更新镜像文件被篡改,提供更新应用程序的安全性和可靠性。
为便于理解,进一步的,请参见图2,是本申请实施例提供的一种数据交互的场景示意图。如图2中以更新云游戏为例进行说明,如图2中的云游戏平台后台是指图1中的应用服务器,图2中的中央镜像仓库是指图1中的中间服务器,图2中的边缘集群为图1中的边缘集群12、边缘集群13以及边缘集群14。通过图1中的应用程序管理***可实现对云游戏的更新,其中,该云游戏的更新包括云游戏的更新检测和生成云游戏的更新镜像文件。
云游戏的更新检测可以是指检测云游戏是否满足更新条件。首先,云游戏平台后台可以从中央镜像仓库中拉取云游戏的原始镜像文件,加载该原始镜像文件,以运行该云游戏,得到该云游戏的运行数据;进一步,可以通过如下方式1)、方式2)、方式3)实现根据该云游戏的运行数据对该云游戏进行更新检测。
方式1):该云游戏的运行数据包括运行该云游戏的过程所输出的游戏画面(即应用画面),云游戏平台后台可以将该游戏画面与云游戏的图像模板进行比对,该云游戏的图像模板可以是根据云游戏正常被运行时所输出的游戏画面确定的。当该游戏画面与云游戏的图像模板不匹配,表明云游戏不能正常运行,即云游戏不能达到预期场景,则确定该云游戏满足更新条件。
例如,上述云游戏的图像模板可以为云游戏的授权登录画面,如果运行云游戏过程中所输出的游戏画面未包括该授权登录画面;确定游戏画面与云游戏的图像模板不匹配;表明运行云游戏过程中输出关于更新云游戏的弹窗、或对话框等游戏画面,即云游戏无法进入该云游戏的授权登录画面,这时可称云游戏不能达到预期场景,则确定该云游戏满足更新条件。通过将授权登录画面与游戏画面进行对比,对云游戏进行更新检测,提高更新检测的效率。
再例如,上述云游戏的图像模板可以为云游戏历史被运行时所输出的历史画面(即所输出的任一画面),获取各个历史画面被输出时的输出顺序,以及游戏画面被输出时的输出顺序。将具有相同输出顺序的历史画面和游戏画面进行对比,若存在具有相同输出顺序的历史画面和游戏画面不匹配,则确定游戏画面与云游戏的图像模板不匹配,并确定该云游戏满足更新条件。通过将游戏画面与历史画面进行一一对比,对云游戏进行更新检测,提高更新检测的准确度。
方式2):该云游戏的运行数据包括运行该云游戏过程中自动下载的应用更新文件,云游戏平台后台可统计应用更新文件所包括的数据量,如果该数据量小于或等于数据量阈值,表明云游戏更新的内容比较少,用户可接受直接将应用更新文件同步至边缘服务器,即不需要生成云游戏的更新镜像文件。如果该数据量大于数据量阈值,表明云游戏更新的内容比较多,需要生成云游戏的更新镜像文件,则确定该云游戏满足更新条件。
方式3):该云游戏的运行数据包括运行该云游戏的过程输出授权登录画面的时间和该云游戏开始运行的时间;云游戏平台后台计算该云游戏开始运行的时间与输出授权登录画面的时间之间的时间间隔,如果该时间间隔大于时间间隔阈值,表明在运行该云游戏过程中存在自动下载应用更新文件的情况,则可确定云游戏满足更新条件。
其中,上述方式1)可用于运行云游戏过程中输出关于更新云游戏的弹窗、或对话框等游戏画面的场景;方式2)和3)可用于运行云游戏过程中自动下载云游戏的应用更新文件的场景。可理解是,云游戏平台后台可以选择上述任一种方式,或多种组合方式对云游戏进行更新检测,本申请对此不做限定。
在云游戏平台后台确定该云游戏满足更新条件时,可生成云游戏的更新镜像文件,以完成对云游戏的更新。首先,可通过如下方式a或方式b获取云游戏的应用更新文件。
方式a:该云游戏的运行数据包括运行该云游戏的过程所输出的游戏画面,云游戏平台后台对游戏画面进行图像检测,得到提示下载云游戏的更新文件的游戏画面;该游戏画面如图3所示,该提示下载云游戏的更新文件的游戏画面包括下载选项(即立即更新),该下载选项用于下载云游戏的应用更新文件。云游戏平台后台可以对该提示下载云游戏的更新文件的游戏画面进行区域识别,得到下载选项所在区域,对下载选项所在的区域执行点击等触控操作,下载该云游戏的应用更新文件。其中,云游戏的应用更新文件仅记录了云游戏的原始镜像文件的变更,如应用更新文件中记录了云游戏的原始镜像文件中添加了哪个可执行文件。
方式b:该云游戏的运行数据包括运行该云游戏过程中自动下载的应用更新文件,也就是说,在运行该云游戏过程中,如果运行数据中包括自动下载的应用更新文件,不需要重新下载云游戏的应用更新文件,可以直接将自动下载的应用更新文件作为云游戏的应用更新文件。如果运行数据中未包括自动下载的应用更新文件,则可以采用上述方式a获取云游戏的应用更新文件。如图2中,在获取到云游戏的应用更新文件后,云游戏平台后台可在运行云游戏的过程中,在云游戏的顶部建立容器层(即游戏容器),将云游戏的应用更新文件记录在容器层,当该云游戏运行完成时,将包括应用更新文件的容器层变更为镜像层,得到云游戏的更新镜像文件。或者,将容器层中的应用更新文件添加至原始镜像文件的镜像层,得到更新镜像文件;并删除容器层。进一步,云游戏平台后台可以将云游戏的更新镜像文件同步至中央镜像仓库中,由中央镜像仓库将该更新镜像文件同步至各个边缘集群,这样边缘集群可通过该更新镜像文件呈现更新后的云游戏给用户,完成对云游戏的更新。
可见,上述对云游戏的更新检测,以及生成云游戏的更新镜像文件均可自动化实现,均不需要人工参与,可提高更新云游戏的效率,并降低成本。
进一步地,请参见图4,是本申请实施例提供的一种应用程序更新方法的流程示意图。如图4所示,该方法可以由图1中的应用服务器来执行,其中,该方法至少可以包括以下S101-S104:
S101、应用服务器从中间服务器中获取目标应用程序的原始镜像文件,上述应用服务器和上述中间服务器均属于应用程序管理***。
本申请中,应用服务器可以每隔目标时间间隔从中间服务器中获取目标应用程序的原始镜像文件;该目标时间间隔可以是指根据该目标应用程序的历史更新时间确定的,该原始镜像文件可以是指中间服务器中目标应用程序的镜像文件中生成时间最晚的镜像文件。通过按照目标时间间隔(周期性地)从中间服务器中获取目标应用程序的原始更新文件,有利于及时发现目标应用程序是否存在更新,可提高用户体验。
S102、根据该原始镜像文件运行上述目标应用程序,获取该目标应用程序的运行数据。
本申请中,应用服务器可加载该原始镜像文件,以运行该目标应用程序,获取该目标应用程序的运行数据;该目标应用程序的运行数据可包括运行该目标应用程序所输出的应用画面、输出应用画面的时间、自动下载的应用更新文件中的一种或多种。
S103、采用该目标应用程序的运行数据对该目标应用程序进行更新检测;若检测到该目标应用程序满足更新条件,则根据该目标应用程序的运行数据生成该目标应用程序的更新镜像文件。
本申请中,应用服务器可以组合或单独采用网络统计方式和图像检测方式来检测该目标应用程序是否满足更新条件,如果目标应用程序不满足更新条件,则可以结束本次流程;如果目标应用程序满足更新条件,则可以根据该目标应用程序的运行数据生成该目标应用程序的更新镜像文件。通过在目标应用程序满足更新条件时,生成目标应用程序的更新镜像文件,有利于及时对目标应用程序进行更新。
可选的,当应用服务器可以单独采用图像检测方式来检测该目标应用程序是否满足更新条件时,步骤S103中采用目标应用程序的运行数据对上述目标应用程序进行更新检测的实现方式可包括如下步骤s11~s12。这时该目标应用程序的运行数据包括运行该目标应用程序过程中所输出的应用画面,该应用画面可以包括目标应用程序的授权登录画面、目标应用程序的内容展示画面(如展示目标应用程序的名称的画面等等)等等。
s11、对上述应用画面进行图像识别,得到识别结果;
s12、若上述识别结果指示上述目标应用程序运行异常,则确定上述目标应用程序满足更新条件。
在步骤s11~s12中,应用服务器可以检测应用画面进行图像识别,得到识别结果,如果该识别结果指示该目标应用程序运行正常,表明该目标应用程序会达到预期场景,如该预测场景是指授权登录场景(即授权登录画面),确定该目标应用程序不满足更新条件。如果该识别结果指示该目标应用程序运行异常,表明该应用程序不能达到预期场景,则确定该目标应用程序满足更新条件。
在该实施例中,如图5所示,上述步骤s11中的图像识别方式包括图像模板对比方式;具体的,步骤s11可包括如下步骤s21~s23:
s21、获取上述目标应用程序相关的图像模板,上述图像模板是根据上述目标应用程历史正常运行时所输出的画面确定的。
s22、将上述应用画面与上述图像模板进行比对。
s23、若上述应用画面与上述图像模板不匹配,确定上述目标应用程序运行异常,生成指示上述目标应用程序运行异常的识别结果。
在步骤s21~s23中,应用服务器可以获取该目标应用程序相关的图像模板,该图像模板可以包括目标应用程序历史正常运行时所输出的某一张画面,如图像模板为授权登录画面;或者,该图像模板可以包括目标应用程序历史正常运行时所输出的所有画面。进一步,可以将应用画面与图像模板进行对比,如果应用画面与上述图像模板不匹配,则确定上述目标应用程序运行异常,生成指示上述目标应用程序运行异常的识别结果。
可选的,当该图像模板包括目标应用程序历史正常运行时所输出的某一张画面时,如上述图像模板为上述目标应用程序历史正常运行时所输出的授权登录画面时,上述s22可包括:对该应用画面进行特征提取得到该应用画面的特征信息,对授权登录画面进行特征提取,得到该授权登录画面的特征信息。进一步,计算每个应用画面的特征信息与授权登录画面的特征信息之间的相似度,如果存在任一应用画面对应的相似度大于相似度阈值,表明应用画面中包括授权登录画面,即表明该目标应用程序可正常运行,不需要对目标应用程序进行更新。如果任一应用画面对应的相似度均小于相似度阈值,即任一应用画面的特征信息与上述授权登录画面的特征信息均不匹配,应用画面中不包括授权登录画面,表明该目标应用程序运行异常,需要对该目标应用程序进行更新,确定应用画面与图像模板不匹配。通过将授权登录画面分别与应用画面进行比对,可以快速地检测目标应用程序是否满足更新条件,提高更新检测的效率。
例如,如图5中包括四张应用画面,第一张应用画面展示目标应用程序的名称,即XX游戏,第二张应用画面展示了目标应用程序被研发的部门,即A部门,第三张应用画面展示目标应用程序的场景内容,第四张应用画面即为目标应用程序的授权登录画面,展示了两种授权登录方式,即登录方式1和登录方式2。应用服务器可以依次将应用画面与图像模板进行比对,如果第四张应用画面与图像模板匹配,则确定目标应用程序能够达到预期场景,确定目标应用程序不满更新条件。如果四张应用画面均与图像模板不匹配,则确定目标应用程序不能达到预期场景,确定目标应用程序满足更新条件。
可选的,当该图像模板包括目标应用程序历史正常运行时所输出的所有画面时,可将目标应用程序历史正常运行时所输出的画面称为历史画面。上述s22可包括:对该应用画面进行特征提取得到该应用画面的特征信息,对历史画面进行特征提取,得到该历史画面的特征信息。分别获取历史画面和应用画面被输出时的输出顺序,将具有相同输出顺序的历史画面的特征信息与应用画面的特征信息进行比对。如果存在具有相同输出顺序的历史画面的特征信息与应用画面的特征信息之间的相似度小于相似度阈值,则确定应用画面与图像模板不匹配。通过将历史画面与应用画面进行一一比对,以检测目标应用程序是否满足更新条件,以提高更新检测的准确度。
例如,图像模板包括历史画面1、历史画面2,应用画面包括应用画面1、应用画面2;各个历史画面的输出顺序由先到后为:历史画面1、历史画面2,各个应用画面的输出顺序由先到后为:应用画面1、应用画面2。可将应用画面1的特征信息与历史画面1的特征信息进行比对,如果应用画面1的特征信息与历史画面1的特征信息匹配,则将应用画面2的特征信息与历史画面2的特征信息进行比对;如果应用画面2的特征信息与历史画面2的特征信息不匹配,则确定应用画面与图像模板不匹配。或者,如果应用画面1的特征信息与历史画面1的特征信息不匹配,则确定应用画面与图像模板不匹配。
可选的,上述步骤s11中的图像识别方式包括文本信息提取方式;具体的,步骤s11可包括如下步骤s31~s33:
s31、对上述应用画面进行图像识别,得到上述应用画面的特征信息。
s32、若上述应用画面的特征信息中包括关于上述目标应用程序的更新提示信息,则确定上述目标应用程序运行异常,生成指示上述目标应用程序运行异常的识别结果。
在步骤s31~s33中,应用服务器可以对上述应用画面进行图像识别,得到上述应用画面的特征信息;即对该应用画面进行文本特征提取,得到应用画面的文本信息。如果该应用画面的文本信息中包括关于目标应用程序的更新提示信息,如该更新提示信息为立即下载、下载更新等等;或者,在运行目标应用程序的过程中输出了提示更新的会话框或弹窗等提示画面;则确定该目标应用程序运行异常,生成指示该目标应用程序运行异常的识别结果。通过对应用画面中的文本信息进行分析,可以快速地检测目标应用程序是否满足更新条件,提高更新检测的效率。
在此实施例中,当应用服务器采用图像检测方式检测输出该目标应用程序满足更新条件时,可采用图像处理方式生成目标应用程序的更新镜像文件;具体的,步骤S103中若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件的实现方式可包括如下步骤s41~s43。
s41、若检测到上述目标应用程序满足更新条件,则从上述应用画面中筛选出第一目标应用画面,该第一目标应用画面包括提示下载上述目标应用程序的提示信息。
s42、对上述第一目标应用画面进行区域识别,得到包括下载选项所在的区域。
s43、根据上述下载选项所在的区域下载上述目标应用程序的应用更新文件;根据上述应用更新文件生成上述目标应用程序的更新镜像文件。在步骤s41~s43中,若检测到上述目标应用程序满足更新条件,则应用服务器可以对应用画面进行图像识别,筛选出提示下载该目标应用程序的应用更新文件的应用画面,作为第一目标应用画面。该第一目标应用画面可以是指提示更新目标应用程序的应用画面,该应用画面中包括下载选项,该下载选项可以是指用于下载目标应用程序的应用更新文件的选项,该下载选项在第一目标应用画面中可以是以文字、图标或按钮等形式呈现。进一步,应用服务器可以对第一目标应用程序进行区域识别,得到包括下线选项所在的区域,根据该下载选项所在的区域下载该目标应用程序的应用更新文件。通过对第一目标画面进行图像处理,以识别出下载选项所在的区域,根据下载选项所在的区域自动下载目标应用程序的应用更新文件,并根据应用更新文件生成目标应用程序的更新镜像文件,即生成目标应用程序的更新镜像文件的过程均是自动实现,不需要人工参与,提高生成更新镜像文件的效率,降低成本。
具体的,上述步骤s43中根据上述下载选项所在的区域下载上述目标应用程序的应用更新文件的实现方式包括:应用服务器对该下载选项所在的区域执行触控操作,该触控操作可以是指点击操作、按键操作、语音操作等等,该触控操作是由应用服务器自动执行的。获取与该触控操作和该下载选项所在的区域关联的网络链接,该网络链接可以是指目标应用程序的应用更新文件的下载链接;根据该网络链接下载该目标应用程序的应用更新文件;通过对下载选项的触控操作,可自动下载目标应用程序的应用更新文件,不需要人工参与,提高下载目标应用程序的应用更新文件的效率。
可选的,当应用服务器单独采用网络统计方式来检测该目标应用程序是否满足更新条件时,该网络统计方式可包括数据量统计方式;具体的,上述目标应用程序的运行数据包括运行上述目标应用程序过程中所自动下载的应用更新文件;步骤S103可包括如下步骤s51~s53。
s51、统计上述应用更新文件所包含的数据量。
s52、若上述数据量大于数据量阈值,则确定上述目标应用程序满足更新条件。
s53、根据上述应用更新文件生成上述目标应用程序的更新镜像文件。
在步骤s51~s53中,应用服务器可以统计目标应用程序的应用更新文件所包含的数据量,若该数据量大于数据量阈值,表明该目标应用程序更新的内容比较多。如果这时不生成目标应用程序的更新镜像文件,边缘服务器运行目标应用程序的过程中,需要消耗较长时间自动下载应用更新文件,进而,可能导致用户终端出现卡顿等现象。因此,若该数据量大于数据量阈值,需要生成目标应用程序的更新镜像文件,即确定上述目标应用程序满足更新条件;根据上述应用更新文件生成上述目标应用程序的更新镜像文件。通过在应用更新文件所包含的数据量大于数据量阈值时,确定目标应用程序满足更新条件,根据应用更新文件自动生成更新镜像文件;不需要人工参与,提高应用更新效率;并且,可避免用户终端出现卡顿等现象,提高应用程序运行的流畅度。
可选的,当应用服务器单独采用网络统计方式来检测该目标应用程序是否满足更新条件时,该网络统计方式可包括时间统计方式;具体的,上述目标应用程序的运行数据包括运行上述目标应用程序过程中输出第二目标应用画面的时间,上述目标应用程序开始运行的时间,以及自动下载的应用更新文件;上述第二目标应用画面为授权登录画面;步骤S103可包括如下步骤s61~s63。
s61、确定输出上述第二目标应用画面的时间与上述目标应用程序开始运行的时间之间的第一时间间隔。
s62、若上述第一时间间隔大于第一时间间隔阈值,则确定上述目标应用程序满足更新条件。
s63、根据上述应用更新文件生成上述目标应用程序的更新镜像文件。
在步骤s61~s63中,应用服务器可以计算输出上述第二目标应用画面的时间与上述目标应用程序开始运行的时间之间的第一时间间隔,第二目标应用画面可以是指目标应用程序的授权登录画面;如果该第一时间间隔小于第一时间间隔阈值,表明该目标应用程序所自动下载的应用更新文件比较小,或者,目标应用程序能够正常运行,则确定该目标应用程序不满足更新条件。如果该第一时间间隔大于第一时间间隔阈值,表明运行该目标应用程序的过程中需要消耗较长时间来自动下载应用更新文件;因此,可以确定该目标应用程序满足更新条件,可根据该应用更新文件生成该目标应用程序的更新镜像文件。通过根据第二目标应用画面的输出时间来检测目标应用程序是否满足更新条件,可自动实现对目标应用程序的更新检测,提高更新检测效率;同时,在上述第二目标应用画面的时间与上述目标应用程序开始运行的时间之间时间间隔大于第二时间阈值时,生成目标应用程序的更新镜像文件,可降低更新应用程序的时延,避免用户终端出现卡顿等现象。
可选的,上述s43、s53以及s63中根据上述应用更新文件生成上述目标应用程序的更新镜像文件的实现方式包括如下步骤s71~s73:
s71、在运行上述目标应用程序的过程中,在上述原始镜像文件的顶部添加容器层。
s72、将上述应用更新文件记录在上述容器层中。
s73、在上述目标应用程序运行完成时,将包括上述应用更新文件的容器层变更为镜像层,得到上述目标应用程序的更新镜像文件。
在步骤s71~s73中,应用服务器在运行该目标应用程序的过程中,在该原始镜像文件的顶部添加容器层,将该应用更新文件记录在该容器层中;在该目标应用程序运行完成后,表明该目标应用程序的应用更新文件也下载完成。因此,这时可以将包括上述应用更新文件的容器层变更为镜像层,得到上述目标应用程序的更新镜像文件;即将包括上述应用更新文件的容器层的读写标记便更为只读标记,得到上述目标应用程序的更新镜像文件。
可选的,大部分应用程序的更新镜像文件都是基于基础镜像(base image)层扩展而来的,比如,在云游戏场景下,基础镜像文件是指镜像中包含操作***相关文件。在现有的应用程序更新模式下,每次应用程序更新都会在该应用程序原有的容器镜像的基础上构建新的读写层,在该读写层中写入新的应用更新文件并最终生成该应用程序的新的容器镜像。但随着更新次数的增多,容器镜像所包含的镜像层的层数也越来越多,使得容器镜像所占用的存储空间也越来越大。基于此,本申请提出两种对应用程序的容器镜像进行压缩的方法,以生成应用程序的镜像更新文件;该压缩方法可包括事前压缩方法和事后压缩方法。
可理解的是,容器镜像可包括基础镜像层和数据层,其中,基础镜像层用于存储运行应用程序所需的操作***的文件,数据层用于存储应用程序相关的数据。例如,以应用程序为游戏类应用为例,游戏类应用对应的容器镜像可以称为游戏镜像,游戏镜像中包括基础镜像层和数据层,基础镜像层包括运行该游戏类应用所需的操作***的文件,数据层包括游戏相关的数据。进一步,数据层可包括只读层和读写层;只读层中的数据仅允许被读取,只读层可称为镜像层;读写层的数据允许被读取和更新,读写层可称为容器层。
其中,事前压缩方法是指利用容器管理工具(例如:Linux操作***中的docker命令)会逐行读取应该更新文件中的指令,并针对每行带有特征字符(例如:RUN)的指令(即特征指令)创建单独的容器层,并将多行非特征指令(如删除文件指令)合并至同一容器层中,可以达到压缩镜像层数的目的。通过减少镜像层数,可避免被删除的文件还占用磁盘空间的问题。
其中,事后压缩方法是指将应用程序的基础镜像层以及数据层合并为一层,通过减少容器镜像的层数,可节省磁盘的存储空间。
具体的,当应用服务器采用事前压缩方法对应用程序的容器镜像进行压缩,以生成应用程序的镜像更新文件,可包括如下步骤ss74~ss79。
ss74、在运行该目标应用程序的过程中,遍历该应用更新文件中的指令,获取特征指令以及非特征指令。
ss75、为该应用更新文件中的各个特征指令分别创建对应的第一容器层,将各个该特征指令分别添加至对应的第一容器层。
ss76、对该应用更新文件中的各个非特征指令进行合并,得到合并后的非特征指令。
ss77、为该合并后的非特征指令创建第二容器层。
ss78、将该合并后的非特征指令添加至该第二容器层;该第一容器层和该第二容器层为基础镜像层的顶部的不同层;该基础镜像层用于存储多个应用程序对应的操作***文件,该多个应用程序中包括该目标应用程序。
ss79、在该目标应用程序运行完成时,根据各个该第一容器层的特征指令、该第二容器层的合并后的非特征指令以及该基础镜像层的操作***文件,生成该目标应用程序的更新镜像文件。
在步骤ss74~ss79中,在运行该目标应用程序的过程中,应用服务器可遍历该应用更新文件中的指令,获取特征指令以及非特征指令;此处特征指令是指包括特征字符的指令(如运行指令RUN),非特征指令是指未包括特征字符的指令(如删除指令)。可以为每个特征指令创建对应的第一容器层,将特征指令添加至对应的第一容器层。对各个非特征指令进行合并,得到合并后的非特征指令,为合并后的非特征指令创建第二容器层,将合并后的非特征指令添加至第二容器层。在该目标应用程序运行完成时,可根据各个该第一容器层的特征指令、该第二容器层的合并后的非特征指令以及该基础镜像层的操作***文件,生成该目标应用程序的更新镜像文件。可见,通过对多个非特征指令进行合并,可减少镜像层数;并且,当非特征指令包括删除指令时,不需要为删除指令创建单独的容器层,可避免被删除的文件还占用磁盘空间的问题。同时,不同应用程序可共享同一个基础镜像层所占用的磁盘空间,不需要为每个应用程序引入额外的磁盘空间,可节省磁盘的存储空间。
例如,如图6所示,假设游戏1、游戏2以及游戏3共享容器镜像的基础镜像层,该基础镜像层一共有N层,即第0层到第N层;游戏1、游戏2以及游戏3的数据层分别位于基础镜像层的上方,且相互独立;数据层一共有M层。M层分别用于存储对应游戏的游戏数据。当游戏满足更新条件时,可以在对应的数据层的顶部增加容器层,得到游戏的更新镜像文件。如图6中,当游戏1满足更新条件时,可以在游戏1的第M+N+1层的顶部添加第一容器层,在第一容器层的顶部添加第二容器层,第一容器层用于存储应用更新文件中的特征指令,第二容器层用于存储应用更新文件中的合并后的非特征指令。进一步,根据第一容器层、第二容器层以及基础镜像层生成游戏1的更新镜像文件。从图6可知,游戏1、游戏2以及游戏3共享同一个基础镜像层所占用的磁盘空间,不需要为每个应用程序引入额外的磁盘空间,可节省磁盘的存储空间。
具体的,当应用服务器采用事后压缩方法对应用程序的容器镜像进行压缩,以生成应用程序的镜像更新文件,可包括如下步骤ss81~ss82。
ss81、获取基础镜像层,该基础镜像层用于存储多个应用程序对应的操作***文件,该多个应用程序中包括该目标应用程序。
ss82、在该目标应用程序运行完成时,对该容器层所包括的应用更新文件与该基础镜像层的操作***文件进行合并,得到该目标应用程序的更新镜像文件。
在步骤ss81~ss82中,例如,如图7中以目应用程序为游戏应用为例,应用服务器可以获取该游戏应用的基础镜像层,该基础镜像层一共有N层,即第0层到第N层。在基础镜像层的顶部添加容器层,如该容器层用于存储游戏应用的游戏数据(即游戏更新数据),在游戏应用运行完成时,将容器层的游戏数据以及镜像层的基础镜像数据(即操作***文件)进行合并,得到游戏应用的更新镜像文件,即游戏应用的更新镜像文件仅包括1层。通过合并基础镜像层和数据层(即容器层),减少容器镜像的层数,可节省磁盘的存储空间。
S104、将该更新镜像文件同步至该中间服务器;上述中间服务器将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
本申请中,应用服务器可以将该更新镜像文件同步至中间服务器,该中间服务器可以将更新镜像文件同步至该应用程序管理***中的边缘服务器,边缘服务器加载该更新镜像文件,以呈现更新后的目标应用程序给用户。
可选的,如果在获取目标应用程序的更新镜像文件的过程中,用户终端连接至该目标应用程序,会导致出现连接失败等异常情况。因此,如果检测到上述目标应用程序满足更新条件,则向上述应用程序管理***中的用户终端发送关闭接口通知,以便用户终端关闭该目标应用程序的接入接口。在将上述更新镜像文件同步至上述中间服务器之后,向上述用户终端发送开放接口通知,以便用户终端开放该目标应用程序的接入接口;用户可正常接入目标应用程序。通过在生成更新镜像文件的过程中,通知用户终端关闭目标应用程序的接入接口,可避免应用程序出现连接失败等异常情况,提高用户体验。
例如,图8所示,假设该目标应用程序为游戏1,如果该游戏1满足更新条件,应用服务器可以向用户终端发送关于游戏1的关闭接口通知;用户终端可以将游戏库中的游戏1的接入接口设置为关闭状态(即更新中)。如图8中,游戏库中包括游戏1、游戏2以及游戏3,游戏1的接入接口处于关闭状态,禁止用户终端接入至游戏1;游戏2以及游戏3的接入接口均处于开放状态;允许用户终端接入至游戏1和游戏2。当游戏1更新完成时,即游戏1的更新镜像文件已经被同步至边缘服务器时,应用服务器可以向用户终端发送关于游戏1的开放接口通知,用户终端可以将游戏库中的游戏1(即更新后的游戏1)的接入接口设置为开放状态(即秒玩),如图8中,这时游戏1、游戏2以及游戏3均允许用户终端接入。
本申请中,应用服务器从中间服务器中获取目标应用程序的原始镜像文件,加载该原始镜像文件,以运行该目标应用程序,获取该目标应用程序的运行数据。对该目标应用程序的运行数据进行图像检测等处理,以判断该目标应用程序是否满足更新条件,在该目标应用程序满足更新条件时,可根据该目标应用程序的运行数据生成该目标应用程序的更新镜像文件;将该更新镜像文件同步至中间服务器。这样中间服务器可以将该更新镜像文件同步至边缘服务器,边缘服务器通过加装更新镜像文件,为用户呈现更新后的目标应用程序。可见,通过对目标应用程序的运行数据进行分析,可自动实现对目标应用程序的更新检测;并根据目标应用程序的运行数据,可自动生成目标应用程序的更新镜像文件;即可自动实现对目标应用程序的更新操作,不需要人工参与,提高更新应用程序的效率,降低成本。另外,通过这种分布式架构对目标应用程序进行更新,可以避免更新目标应用程序的过程中出现网络拥堵等异常情况。
进一步地,请参见图9,是本申请实施例提供的一种应用程序更新方法的流程示意图。如图9所示,该方法可以由图1中的中间服务器来执行,其中,该方法至少可以包括以下S201-S203:
S201、中间服务器将目标应用程序的原始镜像文件发送至应用服务器;上述应用服务器和上述中间服务器均属于应用程序管理***。
可选的,当中间服务器根据候选镜像文件的生成时间筛选原始镜像文件时,步骤S201可包括如下步骤s801~s804:
s801、上述中间服务器获取上述目标应用程序的候选镜像文件,以及上述候选镜像文件的生成时间。
s802、确定上述候选镜像文件的生成时间与当前时间之间的第二时间间隔。
s803、将上述第二时间间隔小于第二时间间隔阈值的候选镜像文件,作为上述目标应用程序的原始镜像文件。
s804、将上述目标应用程序的原始镜像文件发送至上述应用服务器。
在步骤s801~s804中,中间服务器可以获取目标应用程序的候选镜像文件的生成时间,计算候选镜像文件的生成时间与当前时间之间的第二时间间隔;如果第二时间间隔较大,表明对应候选镜像文不是目标应用程序的最新镜像文件;如果第二时间间隔较小,表明对应候选镜像文件为目标应用程序的最新镜像文件。因此,可将上述第二时间间隔小于第二时间间隔阈值的候选镜像文件,作为上述目标应用程序的原始镜像文件,将上述目标应用程序的原始镜像文件发送至上述应用服务器。通过镜像文件的生成时间,可以筛选出目标应用程序的最新镜像文件;后续对目标应用程序的最新镜像文件进行分析,有利于检测出目标应用程序的应用更新文件。
S202、接收该应用服务器所发送的该目标应用程序的更新镜像文件;上述更新镜像文件是在上述目标应用程序满足更新条件时,根据上述目标应用程序的运行数据生成的,上述运行数据是上述应用服务器根据上述原始镜像文件运行上述目标应用程序得到的。
S203、将该更新镜像文件同步至该应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
本申请中,在中间服务器获取到更新镜像文件时,可以同时将该更新镜像文件同步至各个边缘服务器;或者,可以分批次地将更新镜像文件同步系各个边缘服务器。这样边缘服务器可以采用更新镜像文件对原始镜像文件进行更新,得到更新后原始镜像文件,加载该更新后的原始镜像文件,以更新目标应用程序。通过将更新镜像文件同步至边缘服务器,有利于用户可以快捷地接入至更新后的应用程序;同时,通过采用这种分布式架构更新目标应用程序,有利于避免网络拥塞。
可选的,当中间服务器分批次地将更新镜像文件同步至边缘服务器时,步骤S203可包括如下步骤s901~s903:
s901、获取上述应用程序管理***中的边缘服务器的属性信息。
s902、根据上述边缘服务器的属性信息确定上述边缘服务器的重要等级。
s903、按照上述边缘服务器的重要等级,依次向上述边缘服务器同步上述更新镜像文件。
步骤s901~s903中,中间服务器可以根据边缘服务器的属性信息确定该边缘服务器的重要等级,按照边缘服务器的重要等级由高到底的顺序,依次向各个边缘服务器同步更新镜像文件。通过按照边缘服务器的重要等级依次向各个边缘服务器同步更新镜像文件,可有效避免网络拥塞。其中,该属性信息包括接入边缘服务器的用户数量、边缘服务器所属的企业以及边缘服务器与中间服务器之间的距离中至少一种或多种。
例如,该属性信息包括接入边缘服务器的用户数量,中间服务器可以根据接入边缘服务器的用户数量确定边缘服务器的重要等级,即接入边缘服务器的用户数量越多,边缘服务器的重要等级越高,反之,接入边缘服务器的用户数量越少,边缘服务器的重要等级越低。进一步,按照边缘服务器的重要等级由高到低的顺序,向各个边缘服务器同步更新镜像文件。
例如,该属性信息包括边缘服务器所属的企业,中间服务器可以根据边缘服务器所属的企业确定边缘服务器的重要等级,即边缘服务器所属的企业为事业单位,边缘服务器的重要等级越高,反之,边缘服务器所属的企业为个人或私企,边缘服务器的重要等级越低。进一步,按照边缘服务器的重要等级由高到低的顺序,向各个边缘服务器同步更新镜像文件。
可选的,中间服务器中包括多个目标应用程序对应的更新镜像文件待同步至边缘服务器,一个目标应用程序对应一个更新镜像文件;中间服务器可以按照目标应用程序的重要等级依次将各个目标应用程序的更新镜像文件同步至边缘服务器。具体的,中间服务器可以各个目标应用程序的属性信息,可以根据各个目标应用程序的属性信息确定对应目标应用程序的重要等级,按照目标应用程序的重要等级由高到低的顺序,依次将各个更新镜像文件同步至边缘服务器。目标应用程序的属性信息可以包括目标应用程序的注册用户数量、目标应用程序的热度、目标应用程序的上线时间中的至少一种,目标应用程序的热度可以是根据每天目标应用程序的平均在线用户数量确定的。通过按照目标应用程序的重要等级依次同步更新镜像文件至边缘服务器,可有效避免网络拥塞。
本申请中,在中间服务器获取到更新镜像文件时,可以将该更新镜像文件同步至各个边缘服务器。这样边缘服务器可以采用更新镜像文件对原始镜像文件进行更新,得到更新后原始镜像文件,加载该更新后的原始镜像文件,以更新目标应用程序。通过将更新镜像文件同步至边缘服务器,有利于用户可以快捷地接入至更新后的应用程序;同时,通过采用这种分布式架构更新目标应用程序,有利于避免网络拥塞。
请参见图10,是本申请实施例提供的一种应用程序更新装置1的结构示意图。上述应用程序更新装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该应用程序更新装置1为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图10所示,该应用程序更新装置1可以包括:获取模块801、运行模块802、检测模块803、同步模块804以及发送模块805。
获取模块801,用于从中间服务器中获取目标应用程序的原始镜像文件,上述应用服务器和上述中间服务器均属于应用程序管理***;
运行模块802,用于根据上述原始镜像文件运行上述目标应用程序,获取上述目标应用程序的运行数据;
检测模块803,用于基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件;
同步模块804,用于将上述更新镜像文件同步至上述中间服务器;上述中间服务器将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
可选的,上述目标应用程序的运行数据包括运行上述目标应用程序过程中所输出的应用画面,上述检测模块基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测,包括:
对上述应用画面进行图像识别,得到识别结果;
若上述识别结果指示上述目标应用程序运行异常,则确定上述目标应用程序满足更新条件。
可选的,上述检测模块803对上述应用画面进行图像识别,得到识别结果,包括:
获取上述目标应用程序相关的图像模板,上述图像模板是根据上述目标应用程历史正常运行时所输出的画面确定的;
将上述应用画面与上述图像模板进行比对;
若上述应用画面与上述图像模板不匹配,确定上述目标应用程序运行异常,生成指示上述目标应用程序运行异常的识别结果。
可选的,上述图像模板为上述目标应用程序历史正常运行时所输出的授权登录画面;上述检测模块803将上述应用画面与上述图像模板进行比对,包括:
对上述应用画面进行图像识别,得到上述应用画面的特征信息;对上述授权登录画面进行图像识别,得到上述授权登录画面的特征信息;
将上述应用画面的特征信息分别与上述授权登录画面的特征信息进行比对;
若任一应用画面的特征信息与上述授权登录画面的特征信息均不匹配,则确定上述应用画面与上述图像模板不匹配。
可选的,上述图像模板为上述目标应用程序历史正常运行时所输出的历史画面;上述检测模块803将上述应用画面与上述图像模板进行比对,包括:
对上述应用画面进行图像识别,得到上述应用画面的特征信息;对上述历史画面进行图像识别,得到上述历史画面的特征信息;
获取上述历史画面被输出时的输出顺序,以及上述应用画面被输出时的输出顺序;
将具有相同输出顺序的历史画面的特征信息与应用画面的特征信息进行比对;
若存在具有相同输出顺序的历史画面的特征信息与应用画面的特征信息不匹配,则确定上述应用画面与上述图像模板不匹配。
可选的,上述检测模块803对上述应用画面进行图像识别,得到识别结果,包括:
对上述应用画面进行图像识别,得到上述应用画面的特征信息;
若上述应用画面的特征信息中包括关于上述目标应用程序的更新提示信息,则确定上述目标应用程序运行异常,生成指示上述目标应用程序运行异常的识别结果。
可选的,上述若检测到上述目标应用程序满足更新条件,则检测模块803根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件,包括:
若检测到上述目标应用程序满足更新条件,则从上述应用画面中筛选出第一目标应用画面,该第一目标应用画面包括提示下载上述目标应用程序的提示信息;
对上述第一目标应用画面进行区域识别,得到包括下载选项所在的区域;
根据上述下载选项所在的区域下载上述目标应用程序的应用更新文件;根据上述应用更新文件生成上述目标应用程序的更新镜像文件。
可选的,上述检测模块803根据上述下载选项所在的区域下载上述目标应用程序的应用更新文件;包括:
对上述下载选项所在的区域执行触控操作,获取与上述触控操作和上述下载选项所在的区域关联的网络链接;
根据上述网络链接下载上述目标应用程序的应用更新文件。
可选的,上述目标应用程序的运行数据包括运行上述目标应用程序过程中所自动下载的应用更新文件;
上述检测模块803基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件,包括:
统计上述应用更新文件所包含的数据量;
若上述数据量大于数据量阈值,则确定上述目标应用程序满足更新条件;
根据上述应用更新文件生成上述目标应用程序的更新镜像文件。
可选的,上述目标应用程序的运行数据包括运行上述目标应用程序过程中输出第二目标应用画面的时间,上述目标应用程序开始运行的时间,以及自动下载的应用更新文件;上述第二目标应用画面为权登录画面;
上述检测模块803基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件,包括:
确定输出上述第二目标应用画面的时间与上述目标应用程序开始运行的时间之间的第一时间间隔;
若上述第一时间间隔大于第一时间间隔阈值,则确定上述目标应用程序满足更新条件;
根据上述应用更新文件生成上述目标应用程序的更新镜像文件。
可选的,上述检测模块803根据上述应用更新文件生成上述目标应用程序的更新镜像文件,包括:
在运行上述目标应用程序的过程中,在上述原始镜像文件的顶部添加容器层;
将上述应用更新文件记录在上述容器层中;
在上述目标应用程序运行完成时,将包括上述应用更新文件的容器层变更为镜像层,得到上述目标应用程序的更新镜像文件。
可选的,上述检测模块803在上述目标应用程序运行完成时,将包括上述应用更新文件的容器层变更为镜像层,得到上述目标应用程序的更新镜像文件,包括:
获取基础镜像层,上述基础镜像层用于存储多个应用程序对应的操作***文件,上述多个应用程序中包括上述目标应用程序;
在上述目标应用程序运行完成时,对上述容器层所包括的应用更新文件与上述基础镜像层的操作***文件进行合并,得到上述目标应用程序的更新镜像文件。
可选的,上述检测模块803根据上述应用更新文件生成上述目标应用程序的更新镜像文件,包括:
在运行上述目标应用程序的过程中,遍历上述应用更新文件中的指令,获取特征指令以及非特征指令;
为上述应用更新文件中的各个特征指令分别创建对应的第一容器层,将各个上述特征指令分别添加至对应的第一容器层;
对上述应用更新文件中的各个非特征指令进行合并,得到合并后的非特征指令;
为上述合并后的非特征指令创建第二容器层;
将上述合并后的非特征指令添加至上述第二容器层;上述第一容器层和上述第二容器层为基础镜像层的顶部的不同层;上述基础镜像层用于存储多个应用程序对应的操作***文件,上述多个应用程序中包括上述目标应用程序;
在上述目标应用程序运行完成时,根据各个上述第一容器层的特征指令、上述第二容器层的合并后的非特征指令以及上述基础镜像层的操作***文件,生成上述目标应用程序的更新镜像文件。
可选的,应用程序更新装置还包括发送模块805,发送模块805,用于:
若检测到上述目标应用程序满足更新条件,则向上述应用程序管理***中的用户终端发送关闭接口通知,上述关闭接口通知用于通知上述用户终端将上述目标应用程序的接入接口设置为关闭状态;
在将上述更新镜像文件同步至上述中间服务器之后,向上述用户终端发送开放接口通知,上述开放接口通知用于通知上述用户终端将上述目标应用程序的接入接口的关闭状态切换为开放状态。
根据本申请的一个实施例,图4所示的应用程序更新方法所涉及的步骤可由图10所示的应用程序更新装置中的各个模块来执行。例如,图4中所示的步骤S101可由图10中的获取模块801来执行,图4中所示的步骤S102可由图10中的运行模块802来执行;图4中所示的步骤S103可由图10中的检测模块803来执行;图4中所示的步骤S104可由图10中的同步模块804来执行。
根据本申请的一个实施例,图10所示的应用程序更新装置中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,应用程序更新装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图4中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图10中所示的应用程序更新装置,以及来实现本申请实施例的应用程序更新方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本申请中,应用服务器从中间服务器中获取目标应用程序的原始镜像文件,加载该原始镜像文件,以运行该目标应用程序,获取该目标应用程序的运行数据。对该目标应用程序的运行数据进行图像检测等处理,以判断该目标应用程序是否满足更新条件,在该目标应用程序满足更新条件时,可根据该目标应用程序的运行数据生成该目标应用程序的更新镜像文件;将该更新镜像文件同步至中间服务器。这样中间服务器可以将该更新镜像文件同步至边缘服务器,边缘服务器通过加装更新镜像文件,为用户呈现更新后的目标应用程序。可见,通过对目标应用程序的运行数据进行分析,可自动实现对目标应用程序的更新检测;并根据目标应用程序的运行数据,可自动生成目标应用程序的更新镜像文件;即可自动实现对目标应用程序的更新操作,不需要人工参与,提高更新应用程序的效率,降低成本。另外,通过这种分布式架构对目标应用程序进行更新,可以避免更新目标应用程序的过程中出现网络拥堵等异常情况。
请参见图11,是本申请实施例提供的一种应用程序更新装置2的结构示意图。上述应用程序更新装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该应用程序更新装置2为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该应用程序更新装置2可以包括:发送模块901、接收模块902以及同步模块903。
发送模块901,用于将目标应用程序的原始镜像文件发送至应用服务器;上述应用服务器和上述中间服务器均属于应用程序管理***;
接收模块902,用于接收上述应用服务器所发送的上述目标应用程序的更新镜像文件;上述更新镜像文件是在上述目标应用程序满足更新条件时,根据上述目标应用程序的运行数据生成的,上述运行数据是上述应用服务器根据上述原始镜像文件运行上述目标应用程序得到的;
同步模块903,用于将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
可选的,上述同步模块903将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,包括:
获取上述应用程序管理***中的边缘服务器的属性信息;
根据上述边缘服务器的属性信息确定上述边缘服务器的重要等级;
按照上述边缘服务器的重要等级,依次向上述边缘服务器同步上述更新镜像文件。
可选的,上述发送模块901将目标应用程序的原始镜像文件发送至应用服务器,包括:
上述中间服务器获取上述目标应用程序的候选镜像文件,以及上述候选镜像文件的生成时间;
确定上述候选镜像文件的生成时间与当前时间之间的第二时间间隔;
将上述第二时间间隔小于第二时间间隔阈值的候选镜像文件,作为上述目标应用程序的原始镜像文件;
将上述目标应用程序的原始镜像文件发送至上述应用服务器。
根据本申请的一个实施例,图9所示的应用程序更新方法所涉及的步骤可由图11所示的应用程序更新装置中的各个模块来执行。例如,图9中所示的步骤S201可由图11中的发送模块901来执行,图9中所示的步骤S202可由图11中的接收模块902来执行;图9中所示的步骤S203可由图11中的同步模块903来执行。
根据本申请的一个实施例,图11所示的应用程序更新装置2的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,应用程序更新装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图9中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图11中所示的应用程序更新装置,以及来实现本申请实施例的应用程序更新方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本申请中,在中间服务器获取到更新镜像文件时,可以将该更新镜像文件同步至各个边缘服务器。这样边缘服务器可以采用更新镜像文件对原始镜像文件进行更新,得到更新后原始镜像文件,加载该更新后的原始镜像文件,以更新目标应用程序。通过将更新镜像文件同步至边缘服务器,有利于用户可以快捷地接入至更新后的应用程序;同时,通过采用这种分布式架构更新目标应用程序,有利于避免网络拥塞。
请参见图12,是本申请实施例提供的一种计算机设备的结构示意图。如图12所示,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在图12所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
从中间服务器中获取目标应用程序的原始镜像文件,上述应用服务器和上述中间服务器均属于应用程序管理***;
根据上述原始镜像文件运行上述目标应用程序,获取上述目标应用程序的运行数据;
基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件;
将上述更新镜像文件同步至上述中间服务器;上述中间服务器将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
可选的,上述目标应用程序的运行数据包括运行上述目标应用程序过程中所输出的应用画面,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测,包括:
对上述应用画面进行图像识别,得到识别结果;
若上述识别结果指示上述目标应用程序运行异常,则确定上述目标应用程序满足更新条件。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现对上述应用画面进行图像识别,得到识别结果,包括:
获取上述目标应用程序相关的图像模板,上述图像模板是根据上述目标应用程历史正常运行时所输出的画面确定的;
将上述应用画面与上述图像模板进行比对;
若上述应用画面与上述图像模板不匹配,确定上述目标应用程序运行异常,生成指示上述目标应用程序运行异常的识别结果。
可选的,上述图像模板为上述目标应用程序历史正常运行时所输出的授权登录画面;上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现将上述应用画面与上述图像模板进行比对,包括:
对上述应用画面进行图像识别,得到上述应用画面的特征信息;对上述授权登录画面进行图像识别,得到上述授权登录画面的特征信息;
将上述应用画面的特征信息分别与上述授权登录画面的特征信息进行比对;
若任一应用画面的特征信息与上述授权登录画面的特征信息均不匹配,则确定上述应用画面与上述图像模板不匹配。
可选的,上述图像模板为上述目标应用程序历史正常运行时所输出的历史画面;上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现将上述应用画面与上述图像模板进行比对,包括:
对上述应用画面进行图像识别,得到上述应用画面的特征信息;对上述历史画面进行图像识别,得到上述历史画面的特征信息;
获取上述历史画面被输出时的输出顺序,以及上述应用画面被输出时的输出顺序;
将具有相同输出顺序的历史画面的特征信息与应用画面的特征信息进行比对;
若存在具有相同输出顺序的历史画面的特征信息与应用画面的特征信息不匹配,则确定上述应用画面与上述图像模板不匹配。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现对上述应用画面进行图像识别,得到识别结果,包括:
对上述应用画面进行图像识别,得到上述应用画面的特征信息;
若上述应用画面的特征信息中包括关于上述目标应用程序的更新提示信息,则确定上述目标应用程序运行异常,生成指示上述目标应用程序运行异常的识别结果。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件,包括:
若检测到上述目标应用程序满足更新条件,则从上述应用画面中筛选出第一目标应用画面,该第一目标应用画面包括提示下载上述目标应用程序的提示信息;
对上述第一目标应用画面进行区域识别,得到包括下载选项所在的区域;
根据上述下载选项所在的区域下载上述目标应用程序的应用更新文件;根据上述应用更新文件生成上述目标应用程序的更新镜像文件。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现根据上述下载选项所在的区域下载上述目标应用程序的应用更新文件;包括:
对上述下载选项所在的区域执行触控操作,获取与上述触控操作和上述下载选项所在的区域关联的网络链接;
根据上述网络链接下载上述目标应用程序的应用更新文件。
可选的,上述目标应用程序的运行数据包括运行上述目标应用程序过程中所自动下载的应用更新文件;上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件,包括:
统计上述应用更新文件所包含的数据量;
若上述数据量大于数据量阈值,则确定上述目标应用程序满足更新条件;
根据上述应用更新文件生成上述目标应用程序的更新镜像文件。
可选的,上述目标应用程序的运行数据包括运行上述目标应用程序过程中输出第二目标应用画面的时间,上述目标应用程序开始运行的时间,以及自动下载的应用更新文件;上述第二目标应用画面为授权登录画面;
上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现基于上述目标应用程序的运行数据,对上述目标应用程序进行更新检测;若检测到上述目标应用程序满足更新条件,则根据上述目标应用程序的运行数据生成上述目标应用程序的更新镜像文件,包括:
确定输出上述第二目标应用画面的时间与上述目标应用程序开始运行的时间之间的第一时间间隔;
若上述第一时间间隔大于第一时间间隔阈值,则确定上述目标应用程序满足更新条件;
根据上述应用更新文件生成上述目标应用程序的更新镜像文件。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现根据上述应用更新文件生成上述目标应用程序的更新镜像文件,包括:
在运行上述目标应用程序的过程中,在上述原始镜像文件的顶部添加容器层;
将上述应用更新文件记录在上述容器层中;
在上述目标应用程序运行完成时,将包括上述应用更新文件的容器层变更为镜像层,得到上述目标应用程序的更新镜像文件。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现在上述目标应用程序运行完成时,将包括上述应用更新文件的容器层变更为镜像层,得到上述目标应用程序的更新镜像文件,包括:
获取基础镜像层,上述基础镜像层用于存储多个应用程序对应的操作***文件,上述多个应用程序中包括上述目标应用程序;
在上述目标应用程序运行完成时,对上述容器层所包括的应用更新文件与上述基础镜像层的操作***文件进行合并,得到上述目标应用程序的更新镜像文件。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现根据上述应用更新文件生成上述目标应用程序的更新镜像文件,包括:
在运行上述目标应用程序的过程中,遍历上述应用更新文件中的指令,获取特征指令以及非特征指令;
为上述应用更新文件中的各个特征指令分别创建对应的第一容器层,将各个上述特征指令分别添加至对应的第一容器层;
对上述应用更新文件中的各个非特征指令进行合并,得到合并后的非特征指令;
为上述合并后的非特征指令创建第二容器层;
将上述合并后的非特征指令添加至上述第二容器层;上述第一容器层和上述第二容器层为基础镜像层的顶部的不同层;上述基础镜像层用于存储多个应用程序对应的操作***文件,上述多个应用程序中包括上述目标应用程序;
在上述目标应用程序运行完成时,根据各个上述第一容器层的特征指令、上述第二容器层的合并后的非特征指令以及上述基础镜像层的操作***文件,生成上述目标应用程序的更新镜像文件。可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现若检测到上述目标应用程序满足更新条件,则向上述应用程序管理***中的用户终端发送关闭接口通知,上述关闭接口通知用于通知上述用户终端将上述目标应用程序的接入接口设置为关闭状态;
在将上述更新镜像文件同步至上述中间服务器之后,向上述用户终端发送开放接口通知,上述开放接口通知用于通知上述用户终端将上述目标应用程序的接入接口的关闭状态切换为开放状态。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现中间服务器将目标应用程序的原始镜像文件发送至应用服务器;上述应用服务器和上述中间服务器均属于应用程序管理***;
接收上述应用服务器所发送的上述目标应用程序的更新镜像文件;上述更新镜像文件是在上述目标应用程序满足更新条件时,根据上述目标应用程序的运行数据生成的,上述运行数据是上述应用服务器根据上述原始镜像文件运行上述目标应用程序得到的;
将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,上述边缘服务器根据上述更新镜像文件对上述目标应用程序进行更新。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现将上述更新镜像文件同步至上述应用程序管理***中的边缘服务器,包括:
获取上述应用程序管理***中的边缘服务器的属性信息;
根据上述边缘服务器的属性信息确定上述边缘服务器的重要等级;
按照上述边缘服务器的重要等级,依次向上述边缘服务器同步上述更新镜像文件。
可选的,上述处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现将目标应用程序的原始镜像文件发送至应用服务器,包括:
上述中间服务器获取上述目标应用程序的候选镜像文件,以及上述候选镜像文件的生成时间;
确定上述候选镜像文件的生成时间与当前时间之间的第二时间间隔;
将上述第二时间间隔小于第二时间间隔阈值的候选镜像文件,作为上述目标应用程序的原始镜像文件;
将上述目标应用程序的原始镜像文件发送至上述应用服务器。
本申请中,应用服务器从中间服务器中获取目标应用程序的原始镜像文件,加载该原始镜像文件,以运行该目标应用程序,获取该目标应用程序的运行数据。对该目标应用程序的运行数据进行图像检测等处理,以判断该目标应用程序是否满足更新条件,在该目标应用程序满足更新条件时,可根据该目标应用程序的运行数据生成该目标应用程序的更新镜像文件;将该更新镜像文件同步至中间服务器。这样中间服务器可以将该更新镜像文件同步至边缘服务器,边缘服务器通过加装更新镜像文件,为用户呈现更新后的目标应用程序。可见,通过对目标应用程序的运行数据进行分析,可自动实现对目标应用程序的更新检测;并根据目标应用程序的运行数据,可自动生成目标应用程序的更新镜像文件;即可自动实现对目标应用程序的更新操作,不需要人工参与,提高更新应用程序的效率,降低成本。另外,通过这种分布式架构对目标应用程序进行更新,可以避免更新目标应用程序的过程中出现网络拥堵等异常情况。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图4以及前文图9所对应实施例中对上述应用程序更新方法的描述,也可执行前文图10和图11所对应实施例中对上述应用程序更新装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的应用程序更新装置所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图4和图9对应实施例中对上述应用程序更新方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
作为示例,上述程序指令可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链网络。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁盘、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (15)

1.一种应用程序更新方法,其特征在于,包括:
应用服务器从中间服务器中获取目标应用程序的原始镜像文件,所述应用服务器和所述中间服务器均属于应用程序管理***;
根据所述原始镜像文件运行所述目标应用程序,获取所述目标应用程序的运行数据;
基于所述目标应用程序的运行数据,对所述目标应用程序进行更新检测;若检测到所述目标应用程序满足更新条件,则根据所述目标应用程序的运行数据生成所述目标应用程序的更新镜像文件;若所述目标应用程序的运行数据包括运行所述目标应用程序过程中所输出的应用画面,则所述目标应用程序满足更新条件是指:所述应用画面与图像模板不匹配;或者,若所述目标应用程序的运行数据包括运行所述目标应用程序过程中所自动下载的应用更新文件,则所述目标应用程序满足更新条件是指:所述应用更新文件所包含的数据量大于数据量阈值;所述图像模板是根据所述目标应用程序历史正常运行时所输出的画面确定的;
将所述更新镜像文件同步至所述中间服务器;所述中间服务器将所述更新镜像文件同步至所述应用程序管理***中的边缘服务器,所述边缘服务器根据所述更新镜像文件对所述目标应用程序进行更新。
2.如权利要求1所述的方法,其特征在于,所述目标应用程序的运行数据包括运行所述目标应用程序过程中所输出的应用画面,所述基于所述目标应用程序的运行数据,对所述目标应用程序进行更新检测,包括:
获取所述目标应用程序相关的图像模板,所述图像模板是根据所述目标应用程序历史正常运行时所输出的画面确定的;
将所述应用画面与所述图像模板进行比对;
若所述应用画面与所述图像模板不匹配,则确定所述目标应用程序满足更新条件。
3.如权利要求2所述的方法,其特征在于,所述图像模板为所述目标应用程序历史正常运行时所输出的授权登录画面;所述将所述应用画面与所述图像模板进行比对,包括:
对所述应用画面进行图像识别,得到所述应用画面的特征信息;对所述授权登录画面进行图像识别,得到所述授权登录画面的特征信息;
将所述应用画面的特征信息分别与所述授权登录画面的特征信息进行比对;
若任一应用画面的特征信息与所述授权登录画面的特征信息均不匹配,则确定所述应用画面与所述图像模板不匹配。
4.如权利要求3所述的方法,其特征在于,所述若检测到所述目标应用程序满足更新条件,则根据所述目标应用程序的运行数据生成所述目标应用程序的更新镜像文件,包括:
若检测到所述目标应用程序满足更新条件,则从所述应用画面中筛选出第一目标应用画面,所述第一目标应用画面包括提示下载所述目标应用程序的应用更新文件的提示信息;
对所述第一目标应用画面进行区域识别,得到包括下载选项所在的区域;
对所述下载选项所在的区域执行触控操作,获取与所述触控操作和所述下载选项所在的区域关联的网络链接;
根据所述网络链接下载所述目标应用程序的应用更新文件;根据所述应用更新文件生成所述目标应用程序的更新镜像文件。
5.如权利要求1所述的方法,其特征在于,所述目标应用程序的运行数据包括运行所述目标应用程序过程中所自动下载的应用更新文件;
所述基于所述目标应用程序的运行数据,对所述目标应用程序进行更新检测;若检测到所述目标应用程序满足更新条件,则根据所述目标应用程序的运行数据生成所述目标应用程序的更新镜像文件,包括:
统计所述应用更新文件所包含的数据量;
若所述数据量大于数据量阈值,则确定所述目标应用程序满足更新条件;
根据所述应用更新文件生成所述目标应用程序的更新镜像文件。
6.如权利要求4或5所述的方法,其特征在于,所述根据所述应用更新文件生成所述目标应用程序的更新镜像文件,包括:
在运行所述目标应用程序的过程中,在所述原始镜像文件的顶部添加容器层;
将所述应用更新文件记录在所述容器层中;
在所述目标应用程序运行完成时,将包括所述应用更新文件的容器层变更为镜像层,得到所述目标应用程序的更新镜像文件。
7.如权利要求6所述的方法,其特征在于,所述在所述目标应用程序运行完成时,将包括所述应用更新文件的容器层变更为镜像层,得到所述目标应用程序的更新镜像文件,包括:
获取基础镜像层,所述基础镜像层用于存储多个应用程序对应的操作***文件,所述多个应用程序中包括所述目标应用程序;
在所述目标应用程序运行完成时,对所述容器层所包括的应用更新文件与所述基础镜像层的操作***文件进行合并,得到所述目标应用程序的更新镜像文件。
8.如权利要求4或5所述的方法,其特征在于,所述根据所述应用更新文件生成所述目标应用程序的更新镜像文件,包括:
在运行所述目标应用程序的过程中,遍历所述应用更新文件中的指令,获取特征指令以及非特征指令;
为所述应用更新文件中的各个特征指令分别创建对应的第一容器层,将各个所述特征指令分别添加至对应的第一容器层;
对所述应用更新文件中的各个非特征指令进行合并,得到合并后的非特征指令;
为所述合并后的非特征指令创建第二容器层;
将所述合并后的非特征指令添加至所述第二容器层;所述第一容器层和所述第二容器层为基础镜像层的顶部的不同层;所述基础镜像层用于存储多个应用程序对应的操作***文件,所述多个应用程序中包括所述目标应用程序;
在所述目标应用程序运行完成时,根据各个所述第一容器层的特征指令、所述第二容器层的合并后的非特征指令以及所述基础镜像层的操作***文件,生成所述目标应用程序的更新镜像文件。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
若检测到所述目标应用程序满足更新条件,则向所述应用程序管理***中的用户终端发送关闭接口通知,所述关闭接口通知用于通知所述用户终端将所述目标应用程序的接入接口设置为关闭状态;
在将所述更新镜像文件同步至所述中间服务器之后,向所述用户终端发送开放接口通知,所述开放接口通知用于通知所述用户终端将所述目标应用程序的接入接口的关闭状态切换为开放状态。
10.一种应用程序更新方法,其特征在于,包括:
中间服务器将目标应用程序的原始镜像文件发送至应用服务器;所述应用服务器和所述中间服务器均属于应用程序管理***;
接收所述应用服务器所发送的所述目标应用程序的更新镜像文件;所述更新镜像文件是在所述目标应用程序满足更新条件时,根据所述目标应用程序的运行数据生成的,所述运行数据是所述应用服务器根据所述原始镜像文件运行所述目标应用程序得到的;若所述目标应用程序的运行数据包括运行所述目标应用程序过程中所输出的应用画面,则所述目标应用程序满足更新条件是指:所述应用画面与图像模板不匹配;或者,若所述目标应用程序的运行数据包括运行所述目标应用程序过程中所自动下载的应用更新文件,则所述目标应用程序满足更新条件是指:所述应用更新文件所包含的数据量大于数据量阈值;所述图像模板是根据所述目标应用程序历史正常运行时所输出的画面确定的;
将所述更新镜像文件同步至所述应用程序管理***中的边缘服务器,所述边缘服务器根据所述更新镜像文件对所述目标应用程序进行更新。
11.如权利要求10所述的方法,其特征在于,所述将所述更新镜像文件同步至所述应用程序管理***中的边缘服务器,包括:
获取所述应用程序管理***中的边缘服务器的属性信息;
根据所述边缘服务器的属性信息确定所述边缘服务器的重要等级;
按照所述边缘服务器的重要等级,依次向所述边缘服务器同步所述更新镜像文件。
12.一种应用程序更新装置,其特征在于,包括:
获取模块,用于从中间服务器中获取目标应用程序的原始镜像文件,应用服务器和所述中间服务器均属于应用程序管理***;所述应用服务器为部署有所述应用程序更新装置的设备;
运行模块,用于根据所述原始镜像文件运行所述目标应用程序,获取所述目标应用程序的运行数据;
检测模块,用于基于所述目标应用程序的运行数据,对所述目标应用程序进行更新检测;若检测到所述目标应用程序满足更新条件,则根据所述目标应用程序的运行数据生成所述目标应用程序的更新镜像文件;若所述目标应用程序的运行数据包括运行所述目标应用程序过程中所输出的应用画面,则所述目标应用程序满足更新条件是指:所述应用画面与图像模板不匹配;或者,若所述目标应用程序的运行数据包括运行所述目标应用程序过程中所自动下载的应用更新文件,则所述目标应用程序满足更新条件是指:所述应用更新文件所包含的数据量大于数据量阈值;所述图像模板是根据所述目标应用程序历史正常运行时所输出的画面确定的;
同步模块,用于将所述更新镜像文件同步至所述中间服务器;所述中间服务器将所述更新镜像文件同步至所述应用程序管理***中的边缘服务器,所述边缘服务器根据所述更新镜像文件对所述目标应用程序进行更新。
13.一种应用程序更新装置,其特征在于,包括:
发送模块,用于将目标应用程序的原始镜像文件发送至应用服务器;所述应用服务器和中间服务器均属于应用程序管理***;所述中间服务器为部署有所述应用程序更新装置的设备;
接收模块,用于接收所述应用服务器所发送的所述目标应用程序的更新镜像文件;所述更新镜像文件是在所述目标应用程序满足更新条件时,根据所述目标应用程序的运行数据生成的,所述运行数据是所述应用服务器根据所述原始镜像文件运行所述目标应用程序得到的;若所述目标应用程序的运行数据包括运行所述目标应用程序过程中所输出的应用画面,则所述目标应用程序满足更新条件是指:所述应用画面与图像模板不匹配;或者,若所述目标应用程序的运行数据包括运行所述目标应用程序过程中所自动下载的应用更新文件,则所述目标应用程序满足更新条件是指:所述应用更新文件所包含的数据量大于数据量阈值;所述图像模板是根据所述目标应用程序历史正常运行时所输出的画面确定的;
同步模块,用于将所述更新镜像文件同步至所述应用程序管理***中的边缘服务器,所述边缘服务器根据所述更新镜像文件对所述目标应用程序进行更新。
14.一种计算机设备,其特征在于,包括:
处理器以及存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-11任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行如权利要求1-11任一项所述的方法。
CN202110643725.2A 2021-06-09 2021-06-09 应用程序更新方法、装置及设备 Active CN113230660B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110643725.2A CN113230660B (zh) 2021-06-09 2021-06-09 应用程序更新方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110643725.2A CN113230660B (zh) 2021-06-09 2021-06-09 应用程序更新方法、装置及设备

Publications (2)

Publication Number Publication Date
CN113230660A CN113230660A (zh) 2021-08-10
CN113230660B true CN113230660B (zh) 2022-10-14

Family

ID=77139384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110643725.2A Active CN113230660B (zh) 2021-06-09 2021-06-09 应用程序更新方法、装置及设备

Country Status (1)

Country Link
CN (1) CN113230660B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2021240177A1 (en) * 2021-08-25 2023-03-16 Sensetime International Pte. Ltd. Application configuration method, apparatus and device, and computer storage medium
WO2023026085A1 (en) * 2021-08-25 2023-03-02 Sensetime International Pte. Ltd. Application configuration method, apparatus and device, and computer storage medium
CN114500722B (zh) * 2022-01-25 2023-10-17 北京百度网讯科技有限公司 一种分发应用程序镜像的方法、装置、电子设备及介质
CN114844879B (zh) * 2022-03-25 2024-04-12 网宿科技股份有限公司 镜像管理方法、电子设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170161050A1 (en) * 2011-03-06 2017-06-08 Happy Cloud Inc. Methods for Downloading and Installing Computer Software Applications on Demand
CN108156003A (zh) * 2016-12-02 2018-06-12 ***通信有限公司研究院 一种应用升级方法及终端、服务器、***
CN107766126B (zh) * 2017-11-15 2023-01-13 腾讯科技(深圳)有限公司 容器镜像的构建方法、***、装置及存储介质
CN112101304B (zh) * 2020-11-06 2021-03-23 腾讯科技(深圳)有限公司 数据处理方法、装置、存储介质及设备

Also Published As

Publication number Publication date
CN113230660A (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
CN113230660B (zh) 应用程序更新方法、装置及设备
US10873769B2 (en) Live broadcasting method, method for presenting live broadcasting data stream, and terminal
US20200312327A1 (en) Method and system for processing comment information
JP7397094B2 (ja) リソース構成方法、リソース構成装置、コンピューター機器、及びコンピュータープログラム
CN110177300B (zh) 程序运行状态的监控方法、装置、电子设备和存储介质
US20230285854A1 (en) Live video-based interaction method and apparatus, device and storage medium
US11122332B2 (en) Selective video watching by analyzing user behavior and video content
US8651951B2 (en) Game processing server apparatus
CN113181646A (zh) 游戏数据方法及装置、电子设备、存储介质
CN112887749A (zh) 提供直播内容预览的方法及装置、电子设备和介质
US11238094B2 (en) Auto-populating image metadata
CN112044078A (zh) 虚拟场景应用的接入方法、装置、设备及存储介质
CN110276404B (zh) 模型训练方法、装置及存储介质
CN112843681B (zh) 虚拟场景控制方法、装置、电子设备及存储介质
JP7202386B2 (ja) マルチプロフィールを提供する方法およびシステム
CN112044061A (zh) 游戏画面处理方法、装置、电子设备以及存储介质
CN114489892A (zh) 数据处理方法、装置、计算机可读存储介质和计算机设备
CN110413800B (zh) 一种提供小说信息的方法与设备
CN114827701A (zh) 多媒体信息互动方法、装置、电子设备以及存储介质
CN112399240A (zh) 一种数据处理方法
CN109614137B (zh) 软件版本控制方法、装置、设备和介质
CN113627534A (zh) 识别动态图像的类型的方法、装置及电子设备
CN113365090A (zh) 对象推荐方法、对象推荐装置、电子设备及可读存储介质
CN112165626A (zh) 图像处理方法、资源获取方法、相关设备及介质
CN112804312B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40051669

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant