CN111596932A - 一种镜像文件生成方法、装置和计算机可读存储介质 - Google Patents

一种镜像文件生成方法、装置和计算机可读存储介质 Download PDF

Info

Publication number
CN111596932A
CN111596932A CN202010571984.4A CN202010571984A CN111596932A CN 111596932 A CN111596932 A CN 111596932A CN 202010571984 A CN202010571984 A CN 202010571984A CN 111596932 A CN111596932 A CN 111596932A
Authority
CN
China
Prior art keywords
application program
data
image file
application
updated
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.)
Granted
Application number
CN202010571984.4A
Other languages
English (en)
Other versions
CN111596932B (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 CN202010571984.4A priority Critical patent/CN111596932B/zh
Publication of CN111596932A publication Critical patent/CN111596932A/zh
Application granted granted Critical
Publication of CN111596932B publication Critical patent/CN111596932B/zh
Priority to PCT/CN2021/095410 priority patent/WO2021258951A1/zh
Priority to JP2022555627A priority patent/JP7493053B2/ja
Priority to EP21828491.7A priority patent/EP4033349A4/en
Priority to KR1020227017844A priority patent/KR20220083838A/ko
Priority to US17/749,911 priority patent/US11995453B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种镜像文件生成方法、装置和计算机可读存储介质;本发明实施例在接收镜像文件生成请求后,该镜像文件生成请求携带应用程序安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件;该方案可以大大减少应用程序部署的时间。

Description

一种镜像文件生成方法、装置和计算机可读存储介质
技术领域
本发明涉及通信技术领域,具体涉及一种镜像文件生成方法、装置和计算机可读存储介质。
背景技术
近年来,随着云技术的飞速发展,越来越多的应用程序可以进行云启动。应用程序通过云技术进行部署往往需要获取包含该应用程序的镜像文件,通过加载镜像文件,就可以部署应用程序。因此,就需要提前制作或者生成应用程序的镜像文件。而现有的镜像文件生成方法往往是通过加载基础镜像文件来启动操作系统,然后,直接在操作系统上安装或更新应用程序,将安装或更新应用程序后的系统数据集合直接保存为应用程序的镜像文件。
在对现有技术的研究和实践过程中,本发明的发明人发现将系统数据集合直接保存为应用程序的镜像文件时,应用程序的镜像文件中会包含一些与应用程序无关的数据或部分临时数据,导致镜像文件的内存较大,使得部署该应用程序的时间大大延长。
发明内容
本发明实施例提供一种镜像文件生成方法、装置和计算机可读存储介质。可以减少应用程序的部署时间。
一种镜像文件生成方法,包括:
接收镜像文件生成请求,所述镜像文件生成请求携带应用程序安装文件;
根据所述镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统;
在所述操作系统中安装所述应用程序安装文件对应的应用程序,并运行所述应用程序,得到运行所述应用程序后的系统数据集合和所述应用程序的属性信息;
根据所述应用程序的属性信息,在所述系统数据集合中筛选出所述应用程序对应的应用数据;
将所述应用数据与所述基础镜像文件进行合并,以生成所述应用程序的镜像文件。
相应的,本发明实施例提供一种镜像文件生成装置,包括:
接收单元,用于接收镜像文件生成请求,所述镜像文件生成请求携带应用程序安装文件;
启动单元,用于根据所述镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统;
运行单元,用于在所述操作系统中安装所述应用程序安装文件对应的应用程序,并运行所述应用程序,得到运行所述应用程序后的系统数据集合和所述应用程序的属性信息;
筛选单元,用于根据所述应用程序的属性信息,在所述系统数据集合中筛选出所述应用程序对应的应用数据;
生成单元,用于将所述应用数据与所述基础镜像文件进行合并,以生成所述应用程序的镜像文件。
可选的,一些实施例中,所述生成单元,具体可以用于根据所述应用数据,确定所述基础镜像文件需要增加的读写层的基本信息;在所述基础镜像文件的只读层上增加所述基本信息对应的读写层;根据所述基本信息,将所述应用数据添加至所述读写层,得到所述应用程序的镜像文件。
可选的,在一些实施例中,所述生成单元,具体可以用于获取所述应用数据的属性信息;根据所述读写层的基本信息,在所述读写层中筛选出与所述应用数据的属性信息相匹配的读写层作为目标读写层;将所述应用数据添加至所述目标读写层,将添加所述应用数据的基础镜像文件作为所述应用程序的镜像文件。
可选的,在一些实施例中,所述筛选单元,具体可以用于根据所述应用程序的属性信息,遍历所述系统数据集合,得到所述应用程序安装后的初始应用数据;对所述初始应用数据进行调整,得到所述应用程序对应的应用数据。
可选的,在一些实施例中,所述筛选单元,具体可以用于获取所述系统数据集合的全局目录;根据所述应用程序的属性信息,在所述全局目录中筛选出目标目录;基于所述目标目录,在所述系统数据集合中识别出所述应用程序安装后的初始应用数据,得到初始应用数据集合。
可选的,在一些实施例中,所述筛选单元,具体可以用于在操作系统以外的区域构建第一共享数据集合,使得所述第一共享数据集合与所述初始应用数据集合共享所述初始应用数据;在所述第一共享数据集合内对所述应用数据进行调整,得到所述应用程序对应的应用数据。
可选的,在一些实施例中,所述筛选单元,具体可以用于根据第一预设识别条件,在所述应用数据内识别出异常数据和配置数据;在所述第一共享数据集合内对所述初始应用数据中的异常数据进行删除,并对所述初始应用数据中的配置数据进行更改,得到所述应用程序对应的应用数据。
可选的,在一些实施例中,所述运行单元,具体可以用于在所述应用程序安装文件中查询用于配置所述应用程序的配置信息;当存在所述配置信息时,根据所述配置信息,对所述应用程序进行配置;所述运行所述应用程序,得到运行所述应用程序后的系统数据集合和所述应用程序的属性信息,包括:在所述操作系统上运行配置后应用程序,得到运行所述配置后应用程序后的系统数据集合和所述应用程序的属性信息。
可选的,在一些实施例中,所述运行单元,具体可以用于当所配置信息为数据更新信息时,对所述应用程序中所述数据更新信息对应的内置数据进行更新;当所述配置信息为预设参数信息时,对所述应用程序中所述预设参数信息对应的参数进行设置;当所述配置信息为所述数据更新信息和预设参数信息时,对所述应用程序中所述数据更新信息对应的内置数据进行更新,并对更新后的应用程序中所述预设参数信息对应的参数进行设置。
可选的,在一些实施例中,所述镜像文件生成装置还可以包括第一更新单元,所述第一更新单元,具体可以用于当所述基础镜像文件存在更新时,获取更新后基础镜像文件;在所述更新后基础镜像文件的只读层上增加读写层;将所述应用程序对应的应用数据添加至所述读写层,得到所述应用程序的第一更新镜像文件。
可选的,在一些实施例中,所述镜像文件生成装置,还可以包括第二更新单元,所述第二更新单元,具体可以用于当所述应用程序安装文件存在更新时,获取更新后应用程序安装文件;根据所述更新后应用程序安装文件,在所述操作系统上对所述应用程序进行更新,并监控所述应用程序对应的应用数据;当所述应用数据存在更新时,提取出更新的应用数据作为所述应用程序的更新数据;将所述更新数据与所述应用程序的镜像文件进行合并,得到所述应用程序更新后的第二更新镜像文件。
可选的,在一些实施例中,所述第二更新单元,具体可以用于将所述操作系统上加载所述应用程序的镜像文件,并在所述应用程序的镜像文件上增加读写层;根据所述更新后应用程序安装文件,在所述操作系统对所述应用程序进行更新,并通过所述读写层,在所述应用程序更新过程中对所述应用程序对应的应用数据进行监控。
可选的,在一些实施例中,所述第二更新单元,具体可以用于在所述操作系统以外的区域构建第二共享数据集合,使得所述第二共享数据集合与所述更新数据共享数据内容;根据第二预设识别条件,在所述第二共享数据集合中识别出所述更新数据中的异常数据和配置数据;在所述第二共享数据集合内对所述更新数据中的异常数据进行删除,并对所述更新数据中的配置数据进行更改,得到目标更新数据;将所述目标更新数据与所述应用程序的镜像文件进行合并,得到所述应用程序更新后的第二更新镜像文件。
此外,本发明实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序实现本发明实施例提供的镜像文件生成方法。
此外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种镜像文件生成方法中的步骤。
本发明实施例在接收镜像文件生成请求后,该镜像文件生成请求携带应用程序安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件;由于该方案通过在操作系统上安装并运行应用程序,得到系统数据集合,在系统数据集合中筛选出应用程序对应的应用数据,将应用数据和基础镜像文件进行合并来生成应用程序的镜像文件,大大减小了应用程序的镜像文件的内存大小,从而可以大大减少应用程序的部署时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的镜像文件生成方法的场景示意图;
图2是本发明实施例提供的镜像文件生成方法的流程示意图;
图3是本发明实施例提供的应用程序安装和运行的流程示意图;
图4是本发明实施例提供的识别出初始应用数据的示意图;
图5是本发明实施例提供的对初始应用数据进行调整的示意图;
图6是本发明实施例提供的生成应用程序的镜像文件的示意图;
图7是本发明实施例提供的叠加读写层后的镜像文件的示意图;
图8是本发明实施例提供的对更新数据进行调整的示意图;
图9是本发明实施例提供的镜像文件生成方法的另一流程示意图;
图10是本发明实施例提供的云游戏系统的结构示意图;
图11是本发明实施例提供的云游戏页面的示意图;
图12是本发明实施例提供的镜像文件生成装置的结构示意图;
图13是本发明实施例提供的镜像文件生成装置的另一结构示意图;
图14是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种镜像文件生成方法、装置和计算机可读存储介质。其中,该镜像文件生成装置可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备。
所谓镜像文件,可以理解为一种通过镜像这种文件存储方式得到的存储的文件。在云应用程序中,用户可以直接通过应用程序的镜像文件可以直接打开和运行该应用程序,而无需在通过硬件构建运行环境安装应用程序,可以大大加快应用程序的部署时间,还可以降低运行该应用程序所需的硬件配置。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
例如,参见图1,以镜像文件生成装置集成在电子设备中为例,电子设备在接收镜像文件生成请求后,该镜像文件生成请求携带应用程序安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件。
其中,预设系统区域可以为云平台中的系统容器。所谓云平台也称云计算平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从镜像文件生成装置的角度进行描述,该镜像文件生成装置具体可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备;其中,该终端可以包括平板电脑、笔记本电脑、以及个人计算机(PC,Personal Computer)、可穿戴设备、虚拟现实设备或其他可以生成镜像文件的智能设备。
一种镜像文件生成方法,包括:
接收镜像文件生成请求,该镜像文件生成请求携带应用程序安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件。
如图2所示,该镜像文件生成方法的具体流程如下:
101、接收镜像文件生成请求。
其中,镜像文件生成请求携带应用程序安装文件。所谓应用程序安装文件可以理解为安装应用程序的所需要的安装文件,该安装文件可以包括编译的代码文件、资源文件和证书文件等。针对不同的操作系统,应用程序安装文件的格式可以不同,以Android操作系统为例,应用程序安装文件可以为Android应用程序包(Android application package,APK),即APK文件。
例如,可以直接接收镜像文件生成请求,比如,终端可以直接将应用程序安装文件添加至镜像文件生成请求,然后,将添加应用程序安装文件的镜像文件生成请求发送至镜像文件生成装置,镜像文件生成装置直接接收镜像文件生成请求,并在镜像文件生成请求中提取出应用程序安装文件。对于获取应用程序安装文件,当应用程序安装文件的内存较大或者是多个应用程序的安装文件时,还可以间接获取这些应用程序安装文件,比如,终端可以将应用程序安装文件存储在第三方数据库中,然后,将存储地址添加至镜像文件生成请求,最后,将添加存储地址的镜像文件生成请求发送至镜像文件生成装置,镜像文件生成装置在镜像文件生成请求中提取出存储地址,然后,根据存储地址在第三方数据库中获取应用程序安装文件,在获取到应用程序安装文件之后还可以向终端发送提示信息以提示终端。
102、根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统。
其中,操作系统可以运行在预设系统区域内的操作系统,该预设系统区域可以为有硬件支撑的实体操作系统中通过隔离机制运行的系统容器,比如,运行Android操作系统的容器就可以称为Android容器,每一个服务器或云服务器中可以包括多个Android容器。操作系统就可以运行在系统容器中,因此,运行在系统容器中的操作系统可以相互保持独立。
其中,基础镜像文件可以为只包含操作系统的镜像文件。因此,加载该镜像文件就可以启动操作系统。
例如,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统。比如,以操作系统为Android操作系统为例,当接收到镜像文件生成请求时,在Android容器中加载Android操作系统的Android基础镜像文件,此时,就可以在Android容器内启动Android操作系统。
103、在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息。
例如,在操作系统运行应用程序安装文件中的文件,将应用程序文件对应的应用程序安装在操作系统中,比如,以应用程序安装文件为以A应用程序的APK文件为例,在Android操作系统通过手动命令或者脚本安装的方式,运行该APK文件,将A应用程序安装至Android操作系统中。在操作系统中运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息。比如,在Android操作系统中运行安装好的应用程序,此时,将Android容器中的整个数据进行保存,得到系统数据集合,在Android操作系统中获取应用程序的属性信息,该属性信息可以为应用程序的名称、类型、安装地址、内存大小和数据列表等信息。
可选的,在运行应用程序,得到系统数据集合和应用程序的属性信息之前,还可以对安装好的应用程序进行配置,即步骤“运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息”之前,镜像文件生成方法,还可以包括:
在应用程序安装文件中查询用于配置应用程序的配置信息,当存在配置信息时,根据配置信息,对应用程序进行配置,配置完成后,在操作系统上运行配置后应用程序,得到运行配置后应用程序后的系统数据集合和应用程序的属性信息,具体可以如下:
(1)在应用程序安装文件中查询用于配置应用程序的配置信息。
其中,配置信息可以包括数据更新信息和/或预设参数信息,所谓数据更新信息可以为对应用程序内的部分或全部资源数据进行更新的信息,比如,以云游戏为例,资源数据可以为游戏里需要加载的地图或场景等资源数据,数据更新信息可以直接为这些更新的资源数据,也可以为这些资源数据的存储地址,根据这些存储地址,获取到资源数据,然后在云游戏应用程序内进行更新。预设参数信息可以为用户通过终端预设的一些操作或者设置参数,比如,还是以应用程序为云游戏为例,预设参数信息就可以为用户通过终端预设的画面帧数、常用的游戏操作参数和/或其他参数信息。
例如,在应用程序安装文件中查询用于配置应用程序的配置信息,比如,可以将数据更新信息或预设参数信息的文件名或者文件格式作为查询条件,在应用程序安装文件中查询是否存在用于配置应用程序的配置信息。
(2)当存在配置信息时,根据配置信息,对应用程序进行配置。
例如,当存在配置信息时,根据具体存在的配置信息的情况,对应用程序进行配置,比如,当配置信息为数据更新信息时,对应用程序中的数据更新信息对应的内置数据进行更新,譬如,当数据更新信息为更新数据时,在应用程序中查询到更新数据对应的内置数据,直接将内置数据替换为更新数据,具体的更新过程,可以通过手动点击或者人工智能自动识别等方法进行触发数据更新。当数据更新信息为更新数据的存储地址时,就可以根据该存储地址,获取更新数据,然后,在应用程序中查询到更新数据对应的内置数据,再将内置数据替换为更新数据即可。又比如,当配置信息为预设参数信息时,对应用程序中预设参数信息对应的参数进行设置,譬如,以预设参数信息为预设画面帧数为例,直接在应用程序的帧数设置中,将预设画面帧数设置为应用程序中的画面帧数。还比如,当配置信息为数据更新信息和预设参数信息时,对应用程序中数据更新信息对应的内置数据进行更新,并对更新后的应用程序中预设参数信息对应的参数进行设置,譬如,配置信息中即存在数据更新信息,又存在预设参数信息时,可以先判断数据更新信息是否直接包含更新数据,如果直接存在更新数据时,就可以直接在应用程序中对更新数据对应的内置数据进行替换,如果数据更新信息中只有存储地址时,就需要根据存储地址获取更新数据,然后,再对更新数据对应的内置数据进行替换,就可以得到更新后的应用程序。在更新后的应用程序中对预设参数信息对应的参数进行设置。
其中,需要说明的是,当存在配置信息时,才可以需要对应用程序进行配置,配置完成后,再运行配置后应用程序,得到运行配置后应用程序后的系统数据集合和应用程序的属性信息。如果不存在配置信息时,就可以直接在应用程序安装完成后运行该应用程序,然后,得到运行应用程序后的系统数据集合和应用程序的属性信息。因此,对于安装和运行应用程序,得到系统数据集合和应用程序的属性信息的具体过程可以如图3所示。
104、根据应用程序的属性信息,在系统数据集合中筛选出应用程序对应的应用数据。
其中,应用数据可以为与应用程序相关的数据,比如,可以为支撑应用程序运行的数据,譬如,以应用程序为XX云游戏为例,就可以为XX云游戏中的游戏数据。
例如,根据应用程序属性信息,遍历系统数据集合,得到应用程序安装后的初始应用数据,对初始应用数据进行调整,得到应用程序对应的应用数据。
具体可以如下:
S1、根据应用程序的属性信息,遍历系统数据集合,得到应用程序安装后的初始应用数据。
例如,获取系统数据集合的全局目录,比如,获取系统容器内的全局根目录,将这个全局根目录作为系统数据集合的全局目录。根据应用程序的属性信息,在全局目录中筛选出目标目录,比如,根据应用程序的属性信息,在全局目录中筛选出属性信息对应的目录,譬如,应用程序的名称对应的文件目录,将这些目录作为目标目录。基于目标目录,在系统数据集合中识别出应用程序安装后的初始应用数据,得到初始应用数据集合,比如,就可以在系统数据集合中筛选出目标目录对应的候选系统数据,在这些候选系统数据中识别出应用程序对应的初始应用数据,如图4所示,并将初始应用数据保存至初始应用数据集合中。
S2、对初始应用数据进行调整,得到应用程序对应的应用数据。
例如,可以在操作系统以外的区域构建第一共享数据集合,使得第一共享数据集合与初始应用数据集合共享初始应用数据。比如,可以将主机的上一个目录(譬如,/home/workin)挂载至系统容器的容器目录(譬如,/workin)下,该容器目录对应的数据可以为初始应用数据集合,主机的上的目录对应的数据就可以为第一共享数据集合,这样就可以使得第一共享数据集合可以与初始应用数据集合共享初始应用数据,在第一共享数据集合内对初始应用数据进行调整,得到应用程序对应的应用数据,如图5所示。比如,根据第一预设识别条件,在应用数据内识别出异常数据和配置数据。还可以通过abd命令或其他方式将初始应用数据进行传递和修改。在第一共享数据集合内对初始应用数据中的异常数据进行删除,并对初始应用数据中的配置数据进行更改,譬如,可以删除初始应用程序中的异常数据,异常数据可以包括应用程序运行中的部分临时数据和与应用程序不相关的数据,其中需要删除的临时数据可以为“/mnt/runtime/read”、“/mnt/runtime/write”、“/storage/emulated”等目录下的相关文件。还可以根据数据包的包名作为查询条件,比如数据包的包名可以为"com.tenxxx.tmgp.sgame",在全部的配置数据中查询出目标配置数据,该目标配置数据可以为“/data/system/packages.xml”、“/data/system/packages.list”等文件中的相关字段等数据,将其他的配置数据进行更改或者删除,这样做的目的主要是为保留尽可能小的应用程序的相关数据,减少与基础镜像文件的耦合性。还可以对一些应用程序在Android桌面系统的图标显示进行更改,譬如,制作镜像的时候,需要显示部分图标供用户点击,在制作完成后,需要隐藏部分图标(譬如:QQ、微信等应用程序的图标),因此需要更改相应配置文件来调整相应图标的状态,通过删除和更改就可以得到应用程序对应的应用数据。
其中,需要说明的是,在删除和更改初始应用数据的过程中,需要保证文件的属性和权限保持不变。
105、将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件。
其中,基础镜像文件至少包括一个只读层,只读层顾名思义可以为只能对数据进行读取,但不能对数据进行修改。在基础镜像文件上可以增加读写层,读写层与只读层存在的最大区别就是读写层的数据可以读取还能进行修改。
例如,根据应用数据,确定基础镜像文件需要增加的读写层的基本信息,比如,根据应用数据的数据大小和数据类型,可以确定读写层的数量、读写层的内存大小、读写层的位置和读写层的类型等基本信息。在基础镜像文件的只读层上增加基本信息对应的读写层,比如,在基础镜像文件上的只读层的特定位置上增加读写层类型、数量和内存大小对应的读写层。根据基本信息,将应用数据添加至读写层,得到应用程序的镜像文件,如图6所示,比如,获取应用数据的属性信息,根据读写层的基本信息,在读写层中筛选出与应用数据的属性信息相匹配的读写层作为目标读写层,将应用数据添加至目标读写层,将添加应用数据的基础镜像文件作为应用程序的镜像文件,譬如,可以采用Dockerfile(用于构建镜像文件的文本文件)来构建进行应用程序的镜像文件,具体方案可以如下:
创建一个Dockerfile文本,在该文本中包括构建镜像文件所需的命令和说明,比如,指定一个具体的基础镜像文本,在这里就可以指定为Android操作系统的基础镜像文件,以及通过COPY或者ADD的命令将应用程序对应的应用数据添加到Android基础镜像中,借助该文件,可以生成指定名称的应用程序的镜像文件。需要注意的是,在这个过程中,一定要保证文件的属性和权限保持不变。也可以采用其他方式将基础镜像文件和应用数据进行合并,得到应用程序的镜像文件。
可选的,还可以对于合成应用程序的镜像文件来说,还可以采用“docker run/docker cp/docker export”等命令进行镜像的合成,得到应用程序的镜像文件。
可选的,将应用程序的镜像文件部署在镜像文件运行的服务器上之后,当遇到操作系统的一些组件升级、输入法的改变以及修复运行时的漏洞等情况下,使得基础镜像文件需要更新,在这种情况下,就需要对应用程序的镜像文件进行更新,因此,镜像文件生成方法,还可以包括:
当基础镜像文件存在更新时,获取更新后基础镜像文件,在更新后基础镜像文件的只读层上增加读写层,将应用程序对应的应用数据添加至读写层,得到应用程序的第一更新镜像文件。
例如,当基础镜像文件存在更新时,获取更新后基础镜像文件,根据应用数据,确定需要在更新后基础镜像文件上增加的读写层的基本信息,在更新后基础镜像文件的只读层上增加基本信息对应的读写层,根据基本信息,将应用数据添加至读写层,得到应用程序的第一更新镜像文件。
其中,当基础镜像文件存在更新时,也可以重新加载更新后基础镜像文件,在系统容器中重新安装或更新应用程序,得到应用程序的候选应用数据,将更新后基础镜像文件和应用数据进行合并,得到应用程序的第一更新镜像文件。但是直接采用基础更新镜像文件和之前得到的应用程序的应用数据进行合并,可以加快应用程序的第一更新镜像文件的生成。
可选的,将应用程序的镜像文件部署在镜像文件运行的服务器上之后,当应用程序存在更新时,也就意味着此时应用程序的安装文件也存在更新,此时,就需要对应用程序进行更新,因此,镜像文件生成方法,还可以包括:
当应用程序安装文件存在更新时,获取更新后应用程序安装文件,根据更新后应用程序安装文件,在操作系统上对应用程序进行更新,并监控应用程序对应的应用数据,当应用数据存在更新时,提取出更新的应用数据作为应用程序的更新数据,将更新数据与应用程序的镜像文件进行合并,得到应用程序更新后的第二更新镜像文件。
例如,当应用程序安装文件存在更新时,获取更新后应用程序安装文件,比如,可以直接获取更新后应用程序安装文件,还可以先获取更新后应用程序安装文件的存储地址,然后,根据存储地址获取更新后应用程序安装文件。在操作系统上加载应用程序的镜像文件,并在应用程序的镜像文件上增加读写层,比如,在系统容器的操作系统上加载应用程序的镜像文件,此时在系统容器中的加载的镜像文件可以被定义为只读层,在只读层上叠加一个或多个读写层,此时,对容器中文件的修改,如果是在镜像文件的只读层中存在相同的文件会先将镜像文件中的只读层中的文件复制到镜像文件的读写层,之后对复制后的文件进行修改,这样就可以保证不对只读层的文件进行修改,如图7所示,这种情况下,就可以动态记录应用程序的镜像文件的变化或改变。根据更新后应用程序安装文件,在操作系统上对应用程序进行更新,并通过读写层,在应用程序更新过程中对应用程序对应的应用数据进行更新。比如,在操作系统上加载更新应用程序安装文件,就可以对应用程序进行更新,在更新过程中,可以将主机的镜像主目录挂载至系统容器中作镜像文件目录,主机的镜像主目录中可以包含应用程序的镜像文件,在更新应用程序的过程中,对应用程序的镜像文件中的数据进行修改主要是在读写层进行修改,因此,只要应用程序的镜像文件的读写层发生变化,就可以确定应用程序对应的应用数据存在更新,所以,对应用程序对应的应用数据的监控就可以在读写层完成,也可以理解为可以通过读写层,对应用程序对应的应用数据更新过程进行监控。对于应用数据更新过程进行监控还可以在系统容器内部自定义文件监控程序进行监控。
当应用数据存在更新时,提取出更新的应用数据作为应用程序的更新数据,比如,当应用程序更新完成之后,确定读写层存在变化,此时,就可以认定应用程序进行更新,然后,在系统容器中创建更新数据集合,并执行更新数据集合目录下的脚本文件,然后,遍历镜像文件目录下的应用程序的镜像文件的读写层目录,就可以获取更新数据,并将更新数据保存至更新数据集合。在操作系统以外的区域构建第二共享数据集合,使得第二共享数据集合与更新数据共享数据内容,比如,可以在操作系统存在的系统容器以外的区域构建第二共享数据集合,使得第二共享数据集合与更新数据集合可以共享更新数据的数据内容。根据第二预设识别条件,在第二共享数据集合中识别出更新数据中的异常数据和配置数据,比如,对第二共享数据集合中的更新数据进行解析,就可以识别出更新数据中的异常数据和配置数据。在第二共享数据集合中对更新数据中的异常数据进行删除,并对更新数据中的配置数据进行更改,得到目标更新数据,比如,异常数据可以为应用程序运行过程中产生的部分临时数据和与应用程序不相关的数据,可以删减部分临时数据和与应用程序不相关的数据,需要删除的临时数据可以为“/mnt/runtime/read”、“/mnt/runtime/write”、“/storage/emulated”等目录下的相关文件。还可以根据数据包的包名作为查询条件,比如,数据包的包名可以为"com.tenxxx.tmgp.sgame",在全部的配置数据中查询出目标配置数据,该目标配置数据可以为“/data/system/packages.xml”、“/data/system/packages.list”等文件中的相关字段等数据,将其他的配置数据进行更改或者删除。还可以对一些更新后应用程序内显示的配置数据进行更改,譬如,制作镜像的时候,需要显示部分图标供用户点击,在制作完成后,需要隐藏部分图标(譬如:QQ、微信等应用程序的图标),因此需要更改相应配置文件来调整相应图标的状态,通过删除和更改就可以得到目标更新数据,如图8所示。将目标更新数据与应用程序的镜像文件进行合并,得到应用程序更新后的第二更新镜像文件,比如,可以根据目标更新数据,确定镜像文件需要增加的读写层的信息,在镜像文件上叠加读写层,然后,将目标更新文件添加至镜像文件的读写层,就可以得到应用程序更新后的第二更新镜像文件,具体合并过程可以采用Dockerfile来构建,譬如,创建一个Dockerfile文本,在该文本中包括构建第二更新镜像文件所需的命令和说明,比如,指定一个具体的基础镜像文本,在这里就可以为应用程序的镜像文件,以及通过COPY或者ADD的命令将目标更新据添加到应用程序的镜像文件中,借助该文件,可以生成指定名称的应用程序的镜像文件。需要注意的是,在这个过程中,一定要保证文件的属性和权限保持不变。也可以采用其他方式将应用程序的镜像文件和目标更新数据进行合并,得到应用程序更新后的第二更新镜像文件。
其中,对于应用程序安装文件存在更新这种情况,也可以理解为应用程序需要更新,针对应用程序需要更新,也可以加载基础镜像文件,启动操作系统,在操作系统中重新安装更新后的应用程序安装文件,然后,再获取更新后的应用程序的应用数据,将应用数据和基础镜像文件进行合并,也可以得到应用程序的第二更新镜像文件。但是,为了缩短应用程序的部署时间,从而可以获取应用数据中的更新数据,将更新数据与应用程序的镜像文件进行合并,得到应用程序的第二更新镜像文件。
可选的,还可以将应用程序的镜像文件、第一更新镜像文件和第二更新镜像文件采用区块链进行存储,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
由以上可知,本申请实施例在接收镜像文件生成请求后,该镜像文件生成请求携带应用程序安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件;由于该方案通过在操作系统上安装并运行应用程序,得到系统数据集合,在系统数据集合中筛选出应用程序对应的应用数据,将应用数据和基础镜像文件进行合并来生成应用程序的镜像文件,大大减小了应用程序的镜像文件的内存大小,从而可以大大减少应用程序的部署时间。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该镜像文件装置具体集成在电子设备,电子设备为服务器,预设系统区域为系统容器为例进行说明。
如图9所示,一种镜像文件生成方法,具体流程如下:
201、服务器接收镜像文件生成请求。
例如,终端可以直接将应用程序安装文件添加至镜像文件生成请求,然后,将添加应用程序安装文件的镜像文件生成请求发送至服务器,服务器可以直接接收镜像文件生成请求,并在镜像文件生成请求中获取应用程序安装文件。当应用程序安装文件的内存较大时,终端可以将应用程序安装文件存储在第三方数据库中,然后,将存储地址添加至镜像文件生成请求,最后,将添加存储地址的镜像文件生成请求发送至服务器,服务器在镜像文件生成请求中提取出存储地址,然后,根据存储地址在第三方数据库中获取应用程序安装文件,在获取到应用程序安装文件之后还可以向终端发送提示信息以提示终端。
202、服务器根据镜像文件生成请求,在系统容器加载操作系统的基础镜像文件,以启动操作系统。
例如,服务器根据镜像文件生成请求,在系统容器内加载操作系统的基础镜像文件,以启动操作系统。比如,以操作系统为Android操作系统为例,当接收到镜像文件生成请求时,在Android容器中加载Android操作系统的Android基础镜像文件,此时,就可以在Android容器内启动Android操作系统。
203、服务器在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息。
例如,以应用程序安装文件为以A应用程序的APK文件为例,服务器在Android操作系统通过手动命令或者脚本安装的方式,运行该APK文件,将A应用程序安装至Android操作系统中。在操作系统中运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息。比如,在Android操作系统中运行安装好的应用程序,此时,将Android容器中的整个数据进行保存,得到系统数据集合,在Android操作系统中获取应用程序的属性信息,该属性信息可以为应用程序的名称、类型、安装地址、内存大小和数据列表等信息。
可选的,在运行应用程序,得到系统数据集合和应用程序的属性信息之前,服务器还可以对安装好的应用程序进行配置,即步骤“运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息”之前,镜像文件生成方法,还可以包括:
服务器在应用程序安装文件中查询用于配置应用程序的配置信息,当存在配置信息时,根据配置信息,对应用程序进行配置,配置完成后,在操作系统上运行配置后应用程序,得到运行配置后应用程序后的系统数据集合和应用程序的属性信息,具体可以如下:
(1)服务器在应用程序安装文件中查询用于配置应用程序的配置信息。
例如,服务器可以将数据更新信息或预设参数信息的文件名或者文件格式作为查询条件,在应用程序安装文件中查询是否存在用于配置应用程序的配置信息。
(2)当存在配置信息时,服务器根据配置信息,对应用程序进行配置。
例如,当配置信息为数据更新信息时,服务器对应用程序中的数据更新信息对应的内置数据进行更新,譬如,当数据更新信息为更新数据时,在应用程序中查询到更新数据对应的内置数据,直接将内置数据替换为更新数据,具体的更新过程,可以通过手动点击或者人工智能自动识别等方法进行触发数据更新。当数据更新信息为更新数据的存储地址时,就可以根据该存储地址,获取更新数据,然后,在应用程序中查询到更新数据对应的内置数据,再将内置数据替换为更新数据即可。又比如,当配置信息为预设参数信息时,对应用程序中预设参数信息对应的参数进行设置,譬如,以预设参数信息为预设画面帧数为例,直接在应用程序的帧数设置中,将预设画面帧数设置为应用程序中的画面帧数。还比如,当配置信息为数据更新信息和预设参数信息时,对应用程序中数据更新信息对应的内置数据进行更新,并对更新后的应用程序中预设参数信息对应的参数进行设置,譬如,配置信息中即存在数据更新信息,又存在预设参数信息时,可以先判断数据更新信息是否直接包含更新数据,如果直接存在更新数据时,就可以直接在应用程序中对更新数据对应的内置数据进行替换,如果数据更新信息中只有存储地址时,就需要根据存储地址获取更新数据,然后,再对更新数据对应的内置数据进行替换,就可以得到更新后的应用程序。在更新后的应用程序中对预设参数信息对应的参数进行设置。
204、服务器根据应用程序的属性信息,遍历系统数据集合,得到应用程序安装后的初始应用数据。
例如,服务器获取系统容器内的全局根目录,将这个全局根目录作为系统数据集合的全局目录。根据应用程序的属性信息,在全局目录中筛选出属性信息对应的目录,比如,应用程序的名称对应的文件目录,将这些目录作为目标目录。基于目标目录,在系统数据集合中识别出应用程序安装后的初始应用数据,得到初始应用数据集合,比如,就可以在系统数据集合中筛选出目标目录对应的候选系统数据,在这些候选系统数据中识别出应用程序对应的初始应用数据,并将初始应用数据保存至初始应用数据集合中。
205、服务器对初始应用数据进行调整,得到应用程序对应的应用数据。
例如,服务器可以将主机的上一个目录(譬如,/home/workin)挂载至系统容器的容器目录(譬如,/workin)下,该容器目录对应的数据可以为初始应用数据集合,主机的上的目录对应的数据就可以为第一共享数据集合,这样就可以使得第一共享数据集合可以与初始应用数据集合共享初始应用数据。根据第一预设识别条件,在应用数据内识别出异常数据和配置数据,在第一共享数据集合内删减应用程序运行过程中产生的异常数据,该异常数据可以包括应用程序运行中的临时数据和应用程序不相关的数据,其中,需要删除的临时数据可以为“/mnt/runtime/read”、“/mnt/runtime/write”、“/storage/emulated”等目录下的相关文件。还可以根据数据包的包名作为查询条件,比如,数据包的包名可以为"com.tenxxx.tmgp.sgame",在全部的配置数据中查询出目标配置数据,该目标配置数据可以为“/data/system/packages.xml”、“/data/system/packages.list”等文件中的相关字段等数据,将其他的配置数据进行更改或者删除,这样做的目的主要是为保留尽可能小的应用程序的相关数据,减少与基础镜像文件的耦合性。还可以对一些应用程序内显示的配置数据进行更改,譬如,制作镜像的时候,需要显示部分图标供用户点击,在制作完成后,需要隐藏部分图标(譬如:QQ、微信等应用程序的图标),因此需要更改相应配置文件来调整相应图标的状态,通过删除和更改就可以得到应用程序对应的应用数据。
206、服务器将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件。
例如,服务器创建一个Dockerfile文本,在该文本中包括构建镜像文件所需的命令和说明,比如,指定一个具体的基础镜像文本,在这里就可以指定为Android操作系统的基础镜像文件,以及通过COPY或者ADD的命令将应用程序对应的应用数据添加到Android基础镜像中,借助该文件,可以生成指定名称的应用程序的镜像文件。需要注意的是,在这个过程中,一定要保证文件的属性和权限保持不变。也可以采用其他方式将基础镜像文件和应用数据进行合并,得到应用程序的镜像文件。
可选的,还可以对于合成应用程序的镜像文件来说,还可以采用“docker run/docker cp/docker export”等命令进行镜像的合成,得到应用程序的镜像文件。
可选的,将应用程序的镜像文件部署在镜像文件运行的服务器上之后,当遇到操作系统的一些组件升级、输入法的改变以及修复运行时的漏洞等情况下,使得基础镜像文件需要更新,在这种情况下,就需要对应用程序的镜像文件进行更新,因此,镜像文件生成方法,还可以包括:
当基础镜像文件存在更新时,服务器获取更新后基础镜像文件,在更新后基础镜像文件的只读层上增加读写层,将应用程序对应的应用数据添加至读写层,得到应用程序的第一更新镜像文件。
例如,当基础镜像文件存在更新时,服务器获取更新后基础镜像文件,根据应用数据,确定需要在更新后基础镜像文件上增加的读写层的基本信息,在更新后基础镜像文件的只读层上增加基本信息对应的读写层,根据基本信息,将应用数据添加至读写层,得到应用程序的第一更新镜像文件。
可选的,将应用程序的镜像文件部署在镜像文件运行的服务器上之后,当应用程序存在更新时,也就意味着此时应用程序的安装文件也存在更新,此时,就需要对应用程序进行更新,因此,镜像文件生成方法,还可以包括:
当应用程序安装文件存在更新时,服务器获取更新后应用程序安装文件,根据更新后应用程序安装文件,在操作系统上对应用程序进行更新,并监控应用程序对应的应用数据,当应用数据存在更新时,提取出更新的应用数据作为应用程序的更新数据,将更新数据与应用程序的镜像文件进行合并,得到应用程序更新后的第二更新镜像文件。
例如,服务器可以直接获取更新后应用程序安装文件,还可以先获取更新后应用程序安装文件的存储地址,然后,根据存储地址获取更新后应用程序安装文件。在系统容器的操作系统上加载应用程序的镜像文件,此时在系统容器中的加载的镜像文件可以被定义为只读层,在只读层上叠加一个或多个读写层。在操作系统上加载更新应用程序安装文件,就可以对应用程序进行更新,在更新过程中,可以将主机的镜像主目录挂载至系统容器中作镜像文件目录,主机的镜像主目录可以包名应用程序的镜像文件,在更新应用程序的过程中,对应用程序的镜像文件中的数据进行修改或者改动主要是在读写层进行修改,因此,只要应用程序的镜像文件的读写层发生变化,就可以确定应用程序对应的应用数据存在更新,所以,对应用程序对应的应用数据的监控就可以在读写层完成,也可以理解为可以通过读写层,对应用程序对应的应用数据更新过程进行监控。对于应用数据更新过程进行监控还可以在系统容器内部自定义文件监控程序进行监控。
当应用数据存在更新时,然后,在系统容器中创建更新数据集合,并执行更新数据集合目录下的脚本文件,然后,遍历镜像文件目录下的应用程序的镜像文件的读写层目录,就可以获取更新数据,并将更新数据保存至更新数据集合。在操作系统存在的系统容器以外的区域构建第二共享数据集合,使得第二共享数据集合与更新数据集合可以共享更新数据的数据内容。对第二共享数据集合中的更新数据进行解析,就可以识别出更新数据中的异常数据和配置数据。在第二共享数据集合中可以删减更新后应用程序运行过程中产生的异常数据,异常数据可以包括应用程序运行中产生的部分临时数据和与应用程序不相关的数据,其中,需要删除的临时数据可以为“/mnt/runtime/read”、“/mnt/runtime/write”、“/storage/emulated”等目录下的相关文件。还可以根据数据包的包名作为查询条件,比如,数据包的包名可以为"com.tenxxx.tmgp.sgame",在全部的配置数据中查询出目标配置数据,该目标配置数据可以为“/data/system/packages.xml”、“/data/system/packages.list”等文件中的相关字段等数据,将其他的配置数据进行更改或者删除。还可以对一些更新后应用程序内显示的配置数据进行更改,譬如,制作镜像的时候,需要显示部分图标供用户点击,在制作完成后,需要隐藏部分图标(譬如:QQ、微信等应用程序的图标),因此需要更改相应配置文件来调整相应图标的状态,通过删除和更改就可以得到目标更新数据。根据目标更新数据,确定镜像文件需要增加的读写层的信息,在镜像文件上叠加读写层,然后,将目标更新文件添加至镜像文件的读写层,就可以得到应用程序更新后的第二更新镜像文件,具体合并过程可以采用Dockerfile来构建,譬如,创建一个Dockerfile文本,在该文本中包括构建第二更新镜像文件所需的命令和说明,比如,指定一个具体的基础镜像文本,在这里就可以为应用程序的镜像文件,以及通过COPY或者ADD的命令将目标更新据添加到应用程序的镜像文件中,借助该文件,可以生成指定名称的应用程序的镜像文件。需要注意的是,在这个过程中,一定要保证文件的属性和权限保持不变。也可以采用其他方式将应用程序的镜像文件和目标更新数据进行合并,得到应用程序更新后的第二更新镜像文件。
其中,对于应用程序安装文件存在更新这种情况,也可以理解为应用程序需要更新,针对应用程序需要更新,也可以加载基础镜像文件,启动操作系统,在操作系统中重新安装更新后的应用程序安装文件,然后,再获取更新后的应用程序的应用数据,将应用数据和基础镜像文件进行合并,也可以得到应用程序的第二更新镜像文件。但是,为了缩短应用程序的部署时间,从而可以获取应用数据中的更新数据,将更新数据与应用程序的镜像文件进行合并,得到应用程序的第二更新镜像文件。
由以上可知,本实施例服务器在接收镜像文件生成请求后,该镜像文件生成请求携带应用程序安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件;由于该方案通过在操作系统上安装并运行应用程序,得到系统数据集合,在系统数据集合中筛选出应用程序对应的应用数据,将应用数据和基础镜像文件进行合并来生成应用程序的镜像文件,大大减小了应用程序的镜像文件的内存大小,从而可以大大减少应用程序的部署时间。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该镜像文件生成方法具体应用在云游戏系统,该云游戏系统包括镜像服务器、边缘服务器和用户终端,如图10所示,镜像文件生成装置具体集成在镜像服务器,用户通过终端访问边缘服务器中的云游戏应用。
镜像服务器接收镜像文件生成请求后,该镜像文件生成请求携带云游戏安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装云游戏安装文件对应的云游戏,并运行该云游戏,得到运行云游戏后的系统数据集合和云游戏的属性信息,根据云游戏的属性信息,在系统数据集合中筛选出云游戏对应的游戏数据,将游戏数据与基础镜像文件进行合并,以生成云游戏的镜像文件,即云游戏镜像。镜像服务器将云游戏镜像部署至边缘服务器,边缘服务器启动该云游戏镜像对应的系统容器,使得云游戏镜像部署至系统容器中,比如,该系统容器可以为Android容器。当用户通过终端的客户端访问云游戏时,终端向边缘服务器发送客户端连接请求,客户端连接请求中携带云游戏标识,边缘服务器根据云游戏标识,分配相对应的系统容器与客户端建立连接,此时用户终端就通过云游戏镜像进入到该云游戏中。用户终端的客户端通过数据流的方式将输入事件(譬如,鼠标和键盘事件等)发送给相对应的系统容器,系统容器负责抓拍相应的缓冲区图像发送给相应的客户端,比如,以系统容器为Android容器为例,用户终端的客户端通过数据流的方式将鼠标和键盘事件等输入时间发送给相对应的Android容器,Android容器负责抓拍相应的缓冲区图像发送给相应的客户端,在客户端就可以显示用户在云游戏中的输入时间对应的反馈图像,如图11所示。其中,当云游戏的基础镜像文件存在更新时,就只需要将更新后的基础镜像文件与云游戏的游戏数据进行合并,得到云游戏的第一更新镜像文件,然后,将第一更新镜像文件重新部署至边缘服务器中相对应的系统容器中即可。当云游戏在运行中存在更新,即云游戏的安装文件存在更新时,就只需要获取云游戏的更新数据,将更新数据与云游戏的镜像文件进行合并,得到云游戏的第二更新镜像文件,然后,将第二更新镜像文件重新部署至边缘服务器中相对应的系统容器中即可。当用户终端发送客户端连接请求时,边缘服务器就分配更新后的云游戏的镜像文件对应的系统容器与客户端进行连接,实现用户终端通过客户端对云游戏进行操作。这样就可以简化游戏更新的步骤。
为了更好地实施以上方法,本发明实施例还提供一种镜像文件生成装置,该镜像文件生成装置可以集成在电子设备,比如服务器或终端等设备中,该终端可以包括平板电脑、笔记本电脑和/或个人计算机等。
例如,如图12所示,该镜像文件生成装置可以包括接收单元301、启动单元302、运行单元303、筛选单元304和生成单元305,如下:
(1)接收单元301;
接收单元301,用于接收镜像文件生成请求,该镜像文件生成请求携带应用程序安装文件。
例如,接收单元301,具体可以用于直接接收镜像文件生成请求,并在镜像文件生成请求中提取出应用程序安装文件。对于获取应用程序安装文件,当应用程序安装文件的内存较大或者是多个应用程序的安装文件时,还可以间接获取这些应用程序安装文件。
(2)启动单元302;
启动单元302,用于根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统。
例如,启动单元302,具体可以用于根据镜像文件生成请求,在系统容器内加载操作系统的基础镜像文件,以在系统容器内启动操作系统。
(3)运行单元303;
运行单元303,用于在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集和和应用程序的属性信息。
例如,运行单元303,具体可以用于在操作系统中加载应用程序安装文件,将应用程序安装文件对应的应用程序安装在操作系统中,并在操作系统中运行应用程序,得到运行应用程序后的系统数据集和和应用程序的属性信息。
(4)筛选单元304;
筛选单元304,用于根据应用程序的属性信息,在系统数据集合中筛选出应用程序对应的应用数据。
例如,筛选单元304,具体可以用于根据应用程序的属性信息,遍历系统数据集合,得到应用程序安装后的初始应用数据,对初始应用数据进行调整,得到应用程序对应的应用数据。
(5)生成单元305;
生成单元305,用于将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件。
例如,生成单元305,具体可以用于根据应用数据,确定基础镜像文件需要增加的读写层的基本信息,在基础镜像文件的只读层上增加基本信息对应的读写层,根据基本信息,将应用数据添加至读写层,得到应用程序的镜像文件。
可选的,镜像文件生成装置还可以包括第一更新单元306和第二更新单元307,如图13所示,具体可以如下:
第一更新单元306,用于当基础镜像文件存在更新时,获取更新后基础镜像文件,在更新后基础镜像文件的只读层上增加读写层,将应用程序对应的应用数据添加至读写层,得到所述应用程序的第一更新镜像文件。
第二更新单元307,用于当应用程序安装文件存在更新时,获取更新后应用程序安装文件,根据更新后应用程序安装文件,在操作系统上对应用程序进行更新,并监控应用程序对应的应用数据,当应用数据存在更新时,提取出更新的应用数据作为应用程序的更新数据,将更新数据与应用程序的镜像文件进行合并,得到应用程序更新后的第二更新镜像文件。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由以上可知,本实施例在接收单元301接收镜像文件生成请求后,该镜像文件生成请求携带应用程序安装文件,启动单元302根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,运行单元303在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,筛选单元304根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,生成单元305将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件;由于该方案通过在操作系统上安装并运行应用程序,得到系统数据集合,在系统数据集合中筛选出应用程序对应的应用数据,将应用数据和基础镜像文件进行合并来生成应用程序的镜像文件,大大减小了应用程序的镜像文件的内存大小,从而可以大大减少应用程序的部署时间。
本发明实施例还提供一种电子设备,如图14所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图14中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
接收镜像文件生成请求,该镜像文件生成请求携带应用程序安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件。
例如,直接接收镜像文件生成请求,并在镜像文件生成请求中提取出应用程序安装文件,还可以间接获取这些应用程序安装文件。根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统。在操作系统运行应用程序安装文件中的文件,将应用程序文件对应的应用程序安装在操作系统中,在操作系统中运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息。在应用程序安装文件中查询用于配置应用程序的配置信息,当存在配置信息时,根据配置信息,对应用程序进行配置,配置完成后,在操作系统上运行配置后应用程序,得到运行配置后应用程序后的系统数据集合和应用程序的属性信息。获取系统数据集合的全局目录,根据应用程序的属性信息,在全局目录中筛选出目标目录,基于目标目录,在系统数据集合中识别出应用程序安装后的初始应用数据,得到初始应用数据集合。在操作系统以外的区域构建第一共享数据集合,使得第一共享数据集合与初始应用数据集合共享初始应用数据。在第一共享数据集合内对初始应用数据进行调整,得到应用程序对应的应用数据。根据应用数据,确定基础镜像文件需要增加的读写层的基本信息,在基础镜像文件的只读层上增加基本信息对应的读写层,根据基本信息,将应用数据添加至读写层,得到应用程序的镜像文件。当基础镜像文件存在更新时,获取更新后基础镜像文件,在更新后基础镜像文件的只读层上增加读写层,将应用程序对应的应用数据添加至读写层,得到所述应用程序的第一更新镜像文件。当应用程序安装文件存在更新时,获取更新后应用程序安装文件,根据更新后应用程序安装文件,在操作系统上对应用程序进行更新,并监控应用程序对应的应用数据,当应用数据存在更新时,提取出更新的应用数据作为应用程序的更新数据,将更新数据与应用程序的镜像文件进行合并,得到应用程序更新后的第二更新镜像文件。
以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
由以上可知,本发明实施例在接收镜像文件生成请求后,该镜像文件生成请求携带应用程序安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件;由于该方案通过在操作系统上安装并运行应用程序,得到系统数据集合,在系统数据集合中筛选出应用程序对应的应用数据,将应用数据和基础镜像文件进行合并来生成应用程序的镜像文件,大大减小了应用程序的镜像文件的内存大小,从而可以大大减少应用程序的部署时间。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种镜像文件生成方法中的步骤。例如,该指令可以执行如下步骤:
接收镜像文件生成请求,该镜像文件生成请求携带应用程序安装文件,根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统,然后,在操作系统中安装应用程序安装文件对应的应用程序,并运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息,根据应用程序的属性信息,在系统数据集合中筛选出所应用程序对应的应用数据,将应用数据与基础镜像文件进行合并,以生成应用程序的镜像文件。
例如,直接接收镜像文件生成请求,并在镜像文件生成请求中提取出应用程序安装文件,还可以间接获取这些应用程序安装文件。根据镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统。在操作系统运行应用程序安装文件中的文件,将应用程序文件对应的应用程序安装在操作系统中,在操作系统中运行应用程序,得到运行应用程序后的系统数据集合和应用程序的属性信息。在应用程序安装文件中查询用于配置应用程序的配置信息,当存在配置信息时,根据配置信息,对应用程序进行配置,配置完成后,在操作系统上运行配置后应用程序,得到运行配置后应用程序后的系统数据集合和应用程序的属性信息。获取系统数据集合的全局目录,根据应用程序的属性信息,在全局目录中筛选出目标目录,基于目标目录,在系统数据集合中识别出应用程序安装后的初始应用数据,得到初始应用数据集合。在操作系统以外的区域构建第一共享数据集合,使得第一共享数据集合与初始应用数据集合共享初始应用数据。在第一共享数据集合内对初始应用数据进行调整,得到应用程序对应的应用数据。根据应用数据,确定基础镜像文件需要增加的读写层的基本信息,在基础镜像文件的只读层上增加基本信息对应的读写层,根据基本信息,将应用数据添加至读写层,得到应用程序的镜像文件。当基础镜像文件存在更新时,获取更新后基础镜像文件,在更新后基础镜像文件的只读层上增加读写层,将应用程序对应的应用数据添加至读写层,得到所述应用程序的第一更新镜像文件。当应用程序安装文件存在更新时,获取更新后应用程序安装文件,根据更新后应用程序安装文件,在操作系统上对应用程序进行更新,并监控应用程序对应的应用数据,当应用数据存在更新时,提取出更新的应用数据作为应用程序的更新数据,将更新数据与应用程序的镜像文件进行合并,得到应用程序更新后的第二更新镜像文件。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本发明实施例所提供的任一种镜像文件生成方法中的步骤,因此,可以实现本发明实施例所提供的任一种镜像文件生成方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种镜像文件生成方法、装置和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种镜像文件生成方法,其特征在于,包括:
接收镜像文件生成请求,所述镜像文件生成请求携带应用程序安装文件;
根据所述镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统;
在所述操作系统中安装所述应用程序安装文件对应的应用程序,并运行所述应用程序,得到运行所述应用程序后的系统数据集合和所述应用程序的属性信息;
根据所述应用程序的属性信息,在所述系统数据集合中筛选出所述应用程序对应的应用数据;
将所述应用数据与所述基础镜像文件进行合并,以生成所述应用程序的镜像文件。
2.根据权利要求1所述的镜像文件生成方法,其特征在于,所述基础镜像文件至少包括一个只读层,所述将所述应用数据与所述基础镜像文件进行合并,以生成所述应用程序的镜像文件,包括:
根据所述应用数据,确定所述基础镜像文件需要增加的读写层的基本信息;
在所述基础镜像文件的只读层上增加所述基本信息对应的读写层;
根据所述基本信息,将所述应用数据添加至所述读写层,得到所述应用程序的镜像文件。
3.根据权利要求2所述的镜像文件生成方法,其特征在于,所述根据所述基本信息,将所述应用数据添加至所述读写层,得到所述应用程序的镜像文件,包括:
获取所述应用数据的属性信息;
根据所述读写层的基本信息,在所述读写层中筛选出与所述应用数据的属性信息相匹配的读写层作为目标读写层;
将所述应用数据添加至所述目标读写层,将添加所述应用数据的基础镜像文件作为所述应用程序的镜像文件。
4.根据权利要求1所述的镜像文件生成方法,其特征在于,所述根据所述应用程序的属性信息,在所述系统数据集合中筛选出所述应用程序对应的应用数据,包括:
根据所述应用程序的属性信息,遍历所述系统数据集合,得到所述应用程序安装后的初始应用数据;
对所述初始应用数据进行调整,得到所述应用程序对应的应用数据。
5.根据权利要求4所述的镜像文件生成方法,其特征在于,所述根据所述应用程序的属性信息,遍历所述系统数据集合,得到所述应用程序安装后的初始应用数据,包括:
获取所述系统数据集合的全局目录;
根据所述应用程序的属性信息,在所述全局目录中筛选出目标目录;
基于所述目标目录,在所述系统数据集合中识别出所述应用程序安装后的初始应用数据,得到初始应用数据集合。
6.根据权利要求5所述的镜像文件生成方法,其特征在于,所述对所述初始应用数据进行调整,得到所述应用程序对应的应用数据,包括:
在操作系统以外的区域构建第一共享数据集合,使得所述第一共享数据集合与所述初始应用数据集合共享所述初始应用数据;
在所述第一共享数据集合内对所述应用数据进行调整,得到所述应用程序对应的应用数据。
7.根据权利要求6所述的镜像文件生成方法,其特征在于,所述在所述第一共享数据集合内对所述应用数据进行调整,得到所述应用程序对应的应用数据,包括:
根据第一预设识别条件,在所述应用数据内识别出异常数据和配置数据;
在所述第一共享数据集合内对所述初始应用数据中的异常数据进行删除,并对所述初始应用数据中的配置数据进行更改,得到所述应用程序对应的应用数据。
8.根据权利要求1所述的镜像文件生成方法,其特征在于,所述运行所述应用程序,得到运行所述应用程序后的系统数据集合和所述应用程序的属性信息之前,还包括:
在所述应用程序安装文件中查询用于配置所述应用程序的配置信息;
当存在所述配置信息时,根据所述配置信息,对所述应用程序进行配置;
所述运行所述应用程序,得到运行所述应用程序后的系统数据集合和所述应用程序的属性信息,包括:在所述操作系统上运行配置后应用程序,得到运行所述配置后应用程序后的系统数据集合和所述应用程序的属性信息。
9.根据权利要求8所述的镜像文件生成方法,其特征在于,所述配置信息包括数据更新信息和/或预设参数信息,所述当存在所述配置信息时,根据所述配置信息,对所述应用程序进行配置,包括:
当所配置信息为数据更新信息时,对所述应用程序中所述数据更新信息对应的内置数据进行更新;
当所述配置信息为预设参数信息时,对所述应用程序中所述预设参数信息对应的参数进行设置;
当所述配置信息为所述数据更新信息和预设参数信息时,对所述应用程序中所述数据更新信息对应的内置数据进行更新,并对更新后的应用程序中所述预设参数信息对应的参数进行设置。
10.根据权利要求1所述的镜像文件生成方法,其特征在于,还包括:
当所述基础镜像文件存在更新时,获取更新后基础镜像文件;
在所述更新后基础镜像文件的只读层上增加读写层;
将所述应用程序对应的应用数据添加至所述读写层,得到所述应用程序的第一更新镜像文件。
11.根据权利要求1所述的镜像文件生成方法,其特征在于,还包括:
当所述应用程序安装文件存在更新时,获取更新后应用程序安装文件;
根据所述更新后应用程序安装文件,在所述操作系统上对所述应用程序进行更新,并监控所述应用程序对应的应用数据;
当所述应用数据存在更新时,提取出更新的应用数据作为所述应用程序的更新数据;
将所述更新数据与所述应用程序的镜像文件进行合并,得到所述应用程序更新后的第二更新镜像文件。
12.根据权利要求11所述的镜像文件生成方法,其特征在于,所述根据所述更新后应用程序安装文件,在所述操作系统对所述应用程序进行更新,并监控所述应用程序对应的应用数据,包括:
将所述操作系统上加载所述应用程序的镜像文件,并在所述应用程序的镜像文件上增加读写层;
根据所述更新后应用程序安装文件,在所述操作系统对所述应用程序进行更新,并通过所述读写层,在所述应用程序更新过程中对所述应用程序对应的应用数据进行监控。
13.根据权利要求12所述的镜像文件生成方法,其特征在于,所述将所述更新数据与所述应用程序的镜像文件进行合并,得到所述应用程序更新后的第二更新镜像文件,包括:
在所述操作系统以外的区域构建第二共享数据集合,使得所述第二共享数据集合与所述更新数据共享数据内容;
根据第二预设识别条件,在所述第二共享数据集合中识别出所述更新数据中的异常数据和配置数据;
在所述第二共享数据集合内对所述更新数据中的异常数据进行删除,并对所述更新数据中的配置数据进行更改,得到目标更新数据;
将所述目标更新数据与所述应用程序的镜像文件进行合并,得到所述应用程序更新后的第二更新镜像文件。
14.一种镜像文件生成装置,其特征在于,包括:
接收单元,用于接收镜像文件生成请求,所述镜像文件生成请求携带应用程序安装文件;
启动单元,用于根据所述镜像文件生成请求,在预设系统区域加载操作系统的基础镜像文件,以启动操作系统;
运行单元,用于在所述操作系统中安装所述应用程序安装文件对应的应用程序,并运行所述应用程序,得到运行所述应用程序后的系统数据集合和所述应用程序的属性信息;
筛选单元,用于根据所述应用程序的属性信息,在所述系统数据集合中筛选出所述应用程序对应的应用数据;
生成单元,用于将所述应用数据与所述基础镜像文件进行合并,以生成所述应用程序的镜像文件。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至13任一项所述的镜像文件生成方法中的步骤。
CN202010571984.4A 2020-06-22 2020-06-22 一种镜像文件生成方法、装置和计算机可读存储介质 Active CN111596932B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN202010571984.4A CN111596932B (zh) 2020-06-22 2020-06-22 一种镜像文件生成方法、装置和计算机可读存储介质
PCT/CN2021/095410 WO2021258951A1 (zh) 2020-06-22 2021-05-24 一种镜像文件生成方法、装置和计算机可读存储介质
JP2022555627A JP7493053B2 (ja) 2020-06-22 2021-05-24 イメージファイル生成方法、装置及びコンピュータプログラム
EP21828491.7A EP4033349A4 (en) 2020-06-22 2021-05-24 METHOD AND APPARATUS FOR GENERATION OF A MIRROR IMAGE FILE AND COMPUTER READABLE STORAGE MEDIUM
KR1020227017844A KR20220083838A (ko) 2020-06-22 2021-05-24 미러 이미지 파일을 생성하는 방법 및 장치, 그리고 컴퓨터로 판독 가능한 저장 매체
US17/749,911 US11995453B2 (en) 2020-06-22 2022-05-20 Method and apparatus for generating image file and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010571984.4A CN111596932B (zh) 2020-06-22 2020-06-22 一种镜像文件生成方法、装置和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111596932A true CN111596932A (zh) 2020-08-28
CN111596932B CN111596932B (zh) 2021-03-02

Family

ID=72185749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010571984.4A Active CN111596932B (zh) 2020-06-22 2020-06-22 一种镜像文件生成方法、装置和计算机可读存储介质

Country Status (6)

Country Link
US (1) US11995453B2 (zh)
EP (1) EP4033349A4 (zh)
JP (1) JP7493053B2 (zh)
KR (1) KR20220083838A (zh)
CN (1) CN111596932B (zh)
WO (1) WO2021258951A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112044079A (zh) * 2020-10-14 2020-12-08 腾讯科技(深圳)有限公司 一种游戏运行方法、装置、存储介质和电子设备
CN112463165A (zh) * 2021-02-03 2021-03-09 北京并行科技股份有限公司 一种程序镜像构建方法、系统、计算设备及可读存储介质
CN113094178A (zh) * 2021-04-23 2021-07-09 北京字节跳动网络技术有限公司 内存镜像文件生成方法、装置、电子设备和存储介质
WO2021258951A1 (zh) * 2020-06-22 2021-12-30 腾讯科技(深圳)有限公司 一种镜像文件生成方法、装置和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843976A (zh) * 2017-01-25 2017-06-13 北京百度网讯科技有限公司 用于生成镜像文件的方法和装置
CN110058867A (zh) * 2019-04-29 2019-07-26 深圳市网心科技有限公司 应用程序镜像打包、安装方法及计算机装置、存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236927A1 (en) * 2002-06-19 2003-12-25 Christophe Cleraux Tool for building multiple OS images
JP2009187247A (ja) 2008-02-06 2009-08-20 Yokogawa Electric Corp イメージファイル配布システム及びイメージファイル配布方法
US8533701B2 (en) * 2010-03-15 2013-09-10 Microsoft Corporation Virtual machine image update service
CN104142847B (zh) 2013-05-06 2017-09-29 中国银联股份有限公司 云计算环境下的无状态化虚拟机及其应用
CN105760201B (zh) 2016-02-29 2019-05-28 华为技术有限公司 一种嵌入式装置的启动方法和装置
US10394541B2 (en) * 2016-07-27 2019-08-27 Optim Corporation System, method, and program for distributing container image
US10235222B2 (en) 2017-01-05 2019-03-19 Portworx, Inc. Containerized application system graph driver
CN109729121B (zh) 2017-10-31 2022-05-06 阿里巴巴集团控股有限公司 一种云存储系统及用于云存储系统中实现自定义数据处理的方法
JP6958726B2 (ja) 2018-03-23 2021-11-02 日本電気株式会社 アプリケーション実行装置、アプリケーション実行方法、およびプログラム
CN108984268A (zh) * 2018-07-13 2018-12-11 郑州云海信息技术有限公司 Docker系统中容器管理的方法和装置
CN109391688A (zh) * 2018-09-29 2019-02-26 郑州云海信息技术有限公司 云计算系统中镜像文件的获取方法和装置
CN111124598B (zh) * 2019-10-18 2024-05-28 西安雷风电子科技有限公司 一种虚拟桌面软件管理方法及系统
CN111596932B (zh) * 2020-06-22 2021-03-02 腾讯科技(深圳)有限公司 一种镜像文件生成方法、装置和计算机可读存储介质
US11960870B2 (en) * 2022-02-23 2024-04-16 International Business Machines Corporation Container image management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843976A (zh) * 2017-01-25 2017-06-13 北京百度网讯科技有限公司 用于生成镜像文件的方法和装置
CN110058867A (zh) * 2019-04-29 2019-07-26 深圳市网心科技有限公司 应用程序镜像打包、安装方法及计算机装置、存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RYAN MIAO: "理解Docker镜像分层", 《HTTPS://WWW.CNBLOGS.COM/WOSHIMRF/P/DOCKER-CONTAINER-LAWYER.HTML》 *
VRUNDESHA JOSHI: "How to write an image file in internal storage in android?", 《HTTPS://WWW.TUTORIALSPOINT.COM/HOW-TO-WRITE-AN-IMAGE-FILE-IN-INTERNAL-STORAGE-IN-ANDROID》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021258951A1 (zh) * 2020-06-22 2021-12-30 腾讯科技(深圳)有限公司 一种镜像文件生成方法、装置和计算机可读存储介质
US11995453B2 (en) 2020-06-22 2024-05-28 Tencent Technology (Shenzhen) Company Limited Method and apparatus for generating image file and computer-readable storage medium
CN112044079A (zh) * 2020-10-14 2020-12-08 腾讯科技(深圳)有限公司 一种游戏运行方法、装置、存储介质和电子设备
CN112463165A (zh) * 2021-02-03 2021-03-09 北京并行科技股份有限公司 一种程序镜像构建方法、系统、计算设备及可读存储介质
CN113094178A (zh) * 2021-04-23 2021-07-09 北京字节跳动网络技术有限公司 内存镜像文件生成方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
JP7493053B2 (ja) 2024-05-30
US20220276878A1 (en) 2022-09-01
JP2023520847A (ja) 2023-05-22
KR20220083838A (ko) 2022-06-20
EP4033349A1 (en) 2022-07-27
WO2021258951A1 (zh) 2021-12-30
US11995453B2 (en) 2024-05-28
EP4033349A4 (en) 2023-01-18
CN111596932B (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
CN111596932B (zh) 一种镜像文件生成方法、装置和计算机可读存储介质
CN109194506B (zh) 区块链网络部署方法、平台及计算机存储介质
US8122106B2 (en) Integrating design, deployment, and management phases for systems
US7590669B2 (en) Managing client configuration data
US8478850B2 (en) Platform component architecture (PCA)-based system, method and application designer
US10185549B2 (en) Updating live system with static changes
CN112486547B (zh) 多租户场景下的应用程序更新方法、装置及电子设备
WO2009098909A1 (ja) 仮想アプライアンス配備システム
CN108289098B (zh) 分布式文件系统的权限管理方法和装置、服务器、介质
TW200820075A (en) Method and apparatus for on-demand composition and teardown of service infrastructure
CN109564527A (zh) 云计算节点的安全配置
CN113168345A (zh) 云服务的流线型安全部署
CN110062041B (zh) 一种基于区块链的iot设备变更的方法及装置
CN105765533A (zh) 用于固件虚拟化的方法和装置
CN113971191A (zh) 一种数据导入方法、装置和计算机可读存储介质
US20230038226A1 (en) Network-based solution module deployment platform
CN111506657B (zh) 一种区块链节点设备部署的方法
TWI679580B (zh) 快速提供容器化軟體服務之系統及其方法
JP7177335B2 (ja) 情報処理方法、情報処理装置および情報処理プログラム
CN117908904B (zh) 一种k8s集群部署及运维管理的方法和系统
CN113535328B (zh) 一种应用实例控制方法、装置、设备及存储介质
CN114691125B (zh) 一种应用资源映射转换的方法、系统、介质和电子设备
CN112541756B (zh) 区块链合约升级方法、装置、计算机设备及可读存储介质
EP4174707A1 (en) Secure loading and execution of user-defined content on embedded remote terminal unit controller
CN113449035B (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: 40028389

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant