一种基于文件系统的应用运行方法及系统与流程

文档序号:14554444阅读:169来源:国知局
一种基于文件系统的应用运行方法及系统与流程

本发明涉及信息处理技术领域,特别是涉及一种基于文件系统的应用运行方法及系统。



背景技术:

随着计算机技术的不断发展,各种应用程序的功能不断地被丰富完善如图片编辑软件(photoshop,ps)的工具栏所展现的各种功能,各种游戏软件的关卡的增加等等;以及部分应用程序为了增强视觉效果,将应用程序中的所有画面渲染成3d的效果,例如3d游戏,虚拟现实等应用对各种计算资源的占用要求越来越高,例如人工智能、数学计算等对cpu处理能力的要求,图形运算对图形处理器的处理能力的要求,图片、人物模型、地图模型、大规模数据库对存储空间的要求,这都使得应用程序的功能日益复杂,数据包越来越大。

由于用户在初次使用应用程序时,需要从服务器中下载应用程序完整的软件安装包和数据包,并且需要在终端上安装应用的软件安装包才能启动应用程序,这导致下载数据包和安装软件安装包的过程往往会耗费很长的时间。为了解决该问题,目前部分公司针对自身应用程序的特点将可执行程序与资源数据分开管理,并且将资源数据如:图片、模型、内置视频等,一般按照占程序数据包大小的绝大部分配额进行拆分,模块化处理,将必要的可执行程序以及资源模块数据打包,以制作微型客户端。

而在对应用程序进行拆分的过程中,往往需要(1)分析程序初步运行需要加载的可执行文件,以及可执行文件依赖的资源文件。(2)分析多个可执行文件之间的依赖关系,以及每个可执行文件同时会依赖的资源,例如:某个功能接口会触发哪些资源,或者程序调用。(3)由于有的大型程序会依赖很多第三方的程序库,或者系统功能组件,例如3d图形引擎,数据传输库,图像视频压缩/解压库,本地操作系统硬件--cpu,显卡,磁盘,网络管理接口等,这些组件一般内部结构十分复杂而且了解相关细节需要大量的背景知识;对第三方库的解析过程需要进行大量的学习工作,了解它们在运行时访问资源的方式和特点。但是常常由于对相关机制理解不完全,会导致大量兼容性和性能问题,处理起来费时费力;可见,上述对应用程序进行拆分操作较为复杂,会引入大量的额外的人力成本和时间成本。



技术实现要素:

本发明实施例所要解决的技术问题是提供一种基于文件系统的应用运行方法,一种基于文件系统的应用原始镜像包制作方法和一种基于文件系统的应用启动镜像包制作方法,以解决现有技术中为制作微型客户端对应用程序进行拆分,造成的效率低和成本高的问题。

相应的,本发明实施例针对上述方法还提供了对应的系统,分别为:一种基于文件系统的应用运行系统,一种基于文件系统的应用原始镜像包制作系统和一种基于文件系统的应用启动镜像包制作系统,用以保证上述方法的实现及应用。

本发明实施例公开了一种基于文件系统的应用运行方法,具体包括:预先在未安装目标应用时,获取所述目标应用的启动运行包和启动镜像包,其中,所述启动运行包用于启动所述目标应用,所述启动镜像包包括所述目标应用的启动数据;通过所述启动运行包启动所述目标应用时,建立本地缓存管理器,以及建立所述本地缓存管理器与启动镜像包的第一通路,和,建立本地缓存管理器与服务器的第二通路;在本地创建第一虚拟文件系统,建立所述本地缓存管理器与所述第一虚拟文件系统的第三通路;所述本地缓存管理器通过所述第三通路接收文件访问请求,所述文件访问请求是所述第一虚拟文件系统从所述目标应用接收的;当所述文件访问请求为读请求时,所述本地缓存管理器通过所述第一通路,从所述启动镜像包获取所述读请求的第一数据;和/或,所述本地缓存管理器将通过所述第二通路,从所述服务器的原始镜像包中获取所述读请求的第一数据;其中,所述原始镜像包包括所述目标应用的启动数据和运行数据;通过所述第三通路将所述第一数据反馈给所述目标应用,以使所述目标应用运行;其中,所述启动镜像包和原始镜像包中数据集的存储目录结构,分别与所述目标应用的原始数据包中文件集的逻辑目录结构对应;所述第一通路,与启动镜像包中各数据集分别对应;所述第二通路与原始镜像包中各数据集分别对应。

对应的,本发明实施例还公开了一种基于文件系统的应用运行系统,具体包括:数据包获取模块,用于预先在未安装目标应用时,获取所述目标应用的启动运行包和启动镜像包,其中,所述启动运行包用于启动所述目标应用,所述启动镜像包包括所述目标应用的启动数据;本地缓存管理器建立模块,用于通过所述启动运行包启动所述目标应用时,建立本地缓存管理器,建立所述本地缓存管理器与启动镜像包的第一通路,和,建立本地缓存管理器与服务器的第二通路;第一虚拟文件系统建立模块,在本地创建第一虚拟文件系统,建立所述本地缓存管理器与所述第一虚拟文件系统的第三通路;第一文件访问请求接收模块,用于调用所述本地缓存管理器,通过所述第三通路接收文件访问请求,所述文件访问请求是所述第一虚拟文件系统从所述目标应用接收的;数据获取模块,用于当所述文件访问请求为读请求时,调用所述本地缓存管理器,通过所述第一通路,从所述启动镜像包获取所述读请求的第一数据;和/或,调用所述本地缓存管理器,通过所述第二通路,从所述服务器的原始镜像包中获取所述读请求的第一数据;其中,所述原始镜像包包括所述目标应用的启动数据和运行数据;数据反馈模块,用于通过所述第三通路将所述第一数据反馈给所述目标应用,以使所述目标应用运行;其中,所述启动镜像包和原始镜像包中数据集的存储目录结构,分别与所述目标应用的原始数据包中文件集的逻辑目录结构对应;所述第一通路与启动镜像包中各数据集分别对应;所述第二通路与原始镜像包中各数据集分别对应。

本发明实施例公开了一种基于文件系统的应用原始镜像包制作方法,具体包括:建立数据包制作管理器和创建空的原始镜像包;在本地创建第二虚拟文件系统,所述第二虚拟文件系统接收文件创建请求,以及创建所述第二虚拟文件系统与数据包制作管理器的第九通路;所述数据包制作管理器通过所述第九通路获取所述文件创建请求,按照所述文件创建请求在原始数据包中对应文件集的逻辑目录结构,在所述原始镜像包中创建对应的数据集;以及建立所述数据包制作管理器与所述原始镜像包中所述数据集的第十通路;所述数据包制作管理器通过所述第九通路接收写请求,以及通过第十通路,将所述写请求对应的第三数据写入所述原始镜像包的所述数据集中,其中,所述第三数据是目标应用的原始数据包包含的数据;所述第九通路和第十通路,分别与所述原始镜像包中各数据集分别对应。

对应的,本发明还公开了一种基于文件系统的应用原始镜像包制作系统,具体包括:数据包制作管理器建立模块,用于建立数据包制作管理器和创建空的原始镜像包;第二虚拟文件系统建立模块,用于在本地创建第二虚拟文件系统,所述第二虚拟文件系统接收文件创建请求,以及创建所述第二虚拟文件系统与数据包制作管理器的第九通路;原始镜像包数据集创建模块,用于所述数据包制作管理器通过所述第九通路获取所述文件创建请求,按照所述文件创建请求在原始数据包中对应文件集的逻辑目录结构,在所述原始镜像包中创建对应的数据集;以及建立所述数据包制作管理器与所述原始镜像包中所述数据集的第十通路;原始镜像包数据写入模块,用于调用所述数据包制作管理器,通过所述第九通路接收写请求,以及通过第十通路,将所述写请求对应的第三数据写入所述原始镜像包的所述数据集中,其中,所述第三数据是目标应用的原始数据包包含的数据;所述第九通路和第十通路,分别与所述原始镜像包中各数据集分别对应。

本发明实施例公开了一种基于文件系统的应用启动镜像包制作方法,具体包括:在启动目标应用时,建立本地管理器,以及建立本地管理器与原始镜像包中数据集的第十一通路;按照原始镜像包中数据集的存储目录结构,将原始数据包中的数据集拷贝至启动镜像包中,将启动镜像包中的数据集确定为基础数据集,以及建立本地管理器与所述基础数据集的第十二通路,其中,所述基础数据集的镜像文件为空;在本地创建第三虚拟文件系统,建立所述本地管理器与所述第三虚拟文件系统的第十三通路;所述本地管理器通过所述第十三通路接收文件访问请求,所述文件访问请求是所述第三虚拟文件系统从所述目标应用接收的;当所述文件访问请求为读请求时,所述本地管理器通过所述第十一通路,从所述原始镜像包中获取所述读请求对应的第四数据;以及通过所述第十二通路将所述第四数据写入所述基础数据集的镜像文件中;在所述目标应用停止运行时,停止将所述第四数据写入所述基础数据集的镜像文件中;其中,所述第十二通路与启动镜像包中各基础数据集分别对应;所述第十一通路与原始镜像包中各数据集分别对应。

对应的,本发明实施例还公开了一种基于文件系统的应用启动镜像包制作系统,具体包括:本地管理器建立模块,用于在启动目标应用时,建立本地管理器,以及建立本地管理器与原始镜像包中数据集的第十一通路;启动镜像包数据集拷贝模块,用于按照原始镜像包中数据集的存储目录结构,将原始镜像包中的数据集拷贝至启动镜像包中,将启动镜像包中的数据集确定为基础数据集,以及建立本地管理器与所述基础数据集的第十二通路,其中,所述基础数据集的镜像文件为空;第三虚拟文件系统建立模块,用于在本地创建第三虚拟文件系统,建立所述本地管理器与所述第三虚拟文件系统的第十三通路;第二文件访问请求接收模块,用于调用所述本地管理器,通过所述第十三通路接收文件访问请求,所述文件访问请求是所述第三虚拟文件系统从所述目标应用接收的;启动镜像包数据写入模块,用于当所述文件访问请求为读请求时,调用所述本地管理器通过所述第十一通路,从所述原始镜像包中获取所述读请求对应的第四数据;以及通过所述第十二通路,将所述第四数据写入所述基础数据集的镜像文件中;在所述目标应用停止运行时,停止将所述第四数据写入所述基础数据集的镜像文件中;其中,所述第十二通路与启动镜像包中各基础数据集分别对应;所述第十一通路与原始镜像包中各数据集分别对应。

与现有技术相比,本发明实施例包括以下优点:

本发明实施例在制作原始镜像包时,在本地建立第二虚拟文件系统、建立数据包制作管理器和创建空的原始镜像包后,当数据包制作管理器接收到文件创建请求时,按照该文件创建请求在原始数据包中文件集对应的逻辑目录结构,在原始镜像包中创建对应的数据集;然后接收对应的写请求,将所述写请求对应的数据写入原始镜像包中的所述数据集中;从而可以按照上述步骤,将原始数据包中文件集的数据,全部拷贝至原始镜像包的对应的数据集中;此外,本发明实施例在建立启动镜像包时,按照原始镜像包中数据集的存储目录结构建立对应的基础数据集,并将原始镜像包中的目标应用的启动数据,拷贝至启动镜像包的对应基础数据集中;因此,可以按照目标应用的原始数据包文件集的逻辑目录结构,制作原始镜像包和启动镜像包,且在制作原始镜像包和启动镜像包时,均可以免去对应用程序所依赖运行时环境的解析,以及模块化拆分工作,大大降低了人工成本和时间成本。

进一步的,在用户初次使用目标应用时,获取目标应用的启动运行包和启动镜像包后;在通过该启动运行包启动应用程序时,本地缓存管理器通过建立的第三通路获取文件访问请求,当所述文件访问请求为读请求时,所述本地缓存管理器通过所述第一通路,从所述启动镜像包获取所述读请求的第一数据;和/或,所述本地缓存管理器通过所述第二通路,从所述服务器的原始镜像包中获取所述读请求的第一数据;然后通过所述第三通路将所述第一数据反馈给所述目标应用,以使所述目标应用运行;从而实现在只获取启动运行包和启动镜像包的情况下,通过在目标应用运行的过程中,从启动镜像包和/或服务器的原始镜像包获取目标应用所需求的数据,以保证目标应用的正常运行。此外,由于启动镜像包中包含的是目标应用的启动数据,远小于目标应用的原始数据,从而大大节约了用户初次启动目标应用的时间,增强了用户的体验;另外,在目标应用长时间运行的过程中,一般情况下不会被使用到全部功能,进而只会下载部分程序数据,这样用户本地的设备存储系统的空间占用会大大降低;且由于目标应用的原始镜像包和启动镜像包中,不同类型的文件存储在不同类型的数据集中,因此,在目标应用运行的过程中,可以针对不同类型的数据,通过数据对应的通路进行优化传送:比如采用不同的压缩算法、按照数据权重优先级调整传输次序,以提高数据传输效率,在比较恶劣的网络环境中增强目标应用的响应速度,大大加速了目标应用运行的流畅性以及提高恶劣环境下的适应性。

附图说明

图1是本发明的一种基于文件系统的应用原始镜像包制作系统实施例的结构框图;

图2a是本发明的一种基于文件系统的应用原始镜像包制作方法实施例的步骤流程图;

图2b是本发明的一种基于文件系统的应用原始镜像包制作系统实施例的结构框图;

图2c是本发明的一种目标应用的原始数据包中文件集展示形式示意图;

图2d是本发明的一种原始镜像包中数据集展现形式示意图;

图3是本发明的一种基于文件系统的应用启动镜像包制作系统实施例的结构框图;

图4a是本发明的一种基于文件系统的应用启动镜像包制作方法实施例的步骤流程图;

图4b是本发明的一种基于文件系统的应用启动镜像包制作系统实施例的结构框图;

图5是本发明的一种基于文件系统的应用运行系统实施例的结构框图;

图6a是本发明的一种基于文件系统的应用运行方法实施例的步骤流程图;

图6b是本发明的一种基于文件系统的应用运行系统实施例的结构框图;

图7是本发明的另一种基于文件系统的应用运行方法实施例的步骤流程图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明实施例可以应用于终端的各种操作系统中,所述终端包括pc端和移动终端,操作系统包括pc端的操作系统如windows,linux,unix,以及虚拟机仿真系统等,还包括移动终端的操作系统如安卓、ios等。

本发明实施例中的目标应用是指软件安装包和数据包较大的应用程序,如3d游戏、ps等应用程序;其中,目标应用可以是pc端的应用程序,也可以是移动终端的应用程序(application,app);下面以移动终端为例,对本发明实施例的方法和系统进行说明。

本发明实施例提供了一种基于文件系统的应用运行系统,用于在获取目标应用对应的启动运行包和启动镜像包后,在目标应用运行时,从启动镜像包和/或服务器中的原始镜像包中,获取目标应用所需求的数据,以使目标应用正常运行;因此,需要预先制作目标应用的启动镜像包和原始镜像包,以保证目标应用的正常运行;从而,本发明实施例还提供了一种基于文件系统的应用原始镜像包制作方法与系统,用于制作目标应用的原始镜像包,和一种基于文件系统的应用启动镜像包制作方法与系统,用于制作目标应用的启动镜像包。下面将对上述三种系统和对应的方法进行详细的说明。

为了更好地对后续的实施例进行说明,首先对本发明实施例中的数据集和文件集进行解释说明。目标应用的原始数据包是以文件的形式来展现数据的,即包括目录文件,其内容是文件的目录结构;和数据文件,其内容是支持目标应用启动与运行的数据,包括每个类型的数据对应一个数据文件;其中,原始数据包中所有的文件称为文件集,一个目录文件或一个类型数据文件称为一个文件集,原始数据包中的文件集以树型的目录结构存储。原始镜像包和启动镜像包中所有的文件称为数据集,一个目录文件以及包括各种不同类型数据的文件称为一个数据集,原始镜像包和启动镜像包中数据集是以平级展开的目录结构存储的。为了区分原始数据包和镜像包(包括原始镜像包和启动镜像包)中的目录结构,将原始数据包中的目录存储结构称为逻辑目录结构,将镜像包中的结构称为存储目录结构;其中,数据集和文件集存在映射关系。

实施例一

参照图1,示出了本发明的一种基于文件系统的应用原始镜像包制作系统实施例的结构框图,所述的系统具体可以包括:数据包制作管理器建立模块101,第二虚拟文件系统建立模块102,原始镜像包数据集创建模块103和原始镜像包数据写入模块104,其中,

数据包制作管理器建立模块101,用于建立数据包制作管理器和创建空的原始镜像包。

第二虚拟文件系统建立模块102,用于在本地创建第二虚拟文件系统,所述第二虚拟文件系统接收文件创建请求,以及创建所述第二虚拟文件系统与数据包制作管理器的第九通路。

原始镜像包数据集创建模块103,用于所述数据包制作管理器通过所述第九通路获取所述文件创建请求,按照所述文件创建请求在原始数据包中对应文件集的逻辑目录结构,在所述原始镜像包中创建对应的数据集;以及建立所述数据包制作管理器与所述原始镜像包中所述数据集的第十通路。

原始镜像包数据写入模块104,用于调用所述数据包制作管理器,通过所述第九通路接收写请求,以及通过第十通路,将所述写请求对应的第三数据写入所述原始镜像包的所述数据集中,其中,所述第三数据是目标应用的原始数据包包含的数据;所述第九通路和第十通路,分别与所述原始镜像包中各数据集分别对应。

本发明实施例中,第二虚拟文件系统建立模块102部署在移动终端中,数据包制作管理器建立模块101,原始镜像包数据集创建模块103和原始镜像包数据写入模块104可以均部署在移动终端中,也可以均部署在服务器上,其中,所述移动终端中已安装目标应用和目标应用的原始数据包,且目标应用可以在所述移动终端中正常运行,如移动终端安装了游戏a的app;此外,本发明实施例提供的一种基于文件系统的应用原始镜像包制作系统,在所述移动终端中有对应的控制面板,控制面板启动后,通过控制对应的控制模块启动对应的进程,以控制上述四个模块。当接收用户在移动终端对所述控制面板的操作时,控制模块获取移动终端中目标应用的配置信息,其中,所述配置信息包括:目标应用名称、原始数据包大小等内容描述信息;并启动应用原始镜像包制作进程,该进程启动后,数据包制作管理器建立模块101建立数据包制作管理器;控制模块将获取的所述配置信息发送至所述数据包制作管理器,数据包制作管理器根据该配置信息,创建一个空的原始镜像包,该原始镜像包的容量大于目标应用的原始数据包的容量,如游戏a的原始数据包的容量为4gb,则游戏a的原始镜像包的容量可以为4.2gb;创建的空的原始镜像包中包括已设置好格式的配置文件,数据包制作管理器将目标应用的配置信息添加至所述配置文件中。

然后,控制模块启动文件系统创建进程,通过第二虚拟文件系统建立模块102在该移动终端中创建第二虚拟文件系统,并通过系统的应用程序接口(applicationprogramminginterface,api)通知操作系统对创建的第二虚拟文件系统进行识别;其中,不同的操作系统识别虚拟文件系统的过程可能存在差异,本发明实施例不限定操作系统识别虚拟文件系统的方法。操作系统识别虚拟文件系统后,为第二虚拟文件系统创建一个挂载点如/apps/app_id,此时,该第二虚拟文件系统可以被访问。当第二虚拟文件系统接收到目标应用的文件创建请求时,第二虚拟文件系统建立模块102按照原始数据包中所述文件创建请求对应文件集的逻辑目录结构,在所述第二虚拟文件系统中创建所述文件创建请求对应的文件集,并创建第二虚拟文件系统中本次建立的文件集与数据包制作管理器之间的第九通路;其中,在第二虚拟文件系统中创建的文件集目录结构,与原始数据包中文件集的逻辑目录结构相同;相对于目标应用而言,第二虚拟文件系统中的文件集与原始数据包中的文件集,均是可见的目录及文件展开效果。第二虚拟文件系统为本次创建的各文件集,分别建立一条对应的第九通路。其中,每次根据所述文件创建请求,创建的文件集可以是一个,也可以是多个。

第九通路建立完成后,所述第二虚拟文件系统通过第九通路,将所述文件创建请求发送至所述数据包制作管理器;原始镜像包数据集创建模块103调用所述数据包制作管理器,接收所述文件创建请求;数据包制作管理器接收到所述文件创建请求后,确定所述文件创建请求在目标应用的原始数据包中对应文件集对应的逻辑目录结构;然后,按照所述逻辑目录结构与存储目录结构的映射关系,在原始镜像包中创建对应的数据集,具体创建数据集的步骤在后续进行详细的论述;并建立本次创建的数据集与数据包制作管理器之间的第十通路;其中,本次创建的各数据集,分别对应一条第十通路。在第十通路创建完成后,控制模块启动数据拷贝进程,以使将原始数据包中的数据通过第九通路和第十通路写入原始镜像包对应的数据集中;具体的,原始镜像包数据写入模块104调用所述数据包制作管理器,通过所述第九通路接收写请求,然后根据获取的写请求,调用所述数据包制作管理器将所述写请求对应的第三数据,通过所述第十通路写入上述在原始镜像包中创建的所述数据集中;在将原始数据包写入原始镜像包的过程中,对于每条文件创建请求,均按照在原始数据包中该文件创建请求对应的文件集的逻辑目录结构,在第二虚拟文件系统中创建文件集,和原始镜像包中创建对应的数据集;并根据每个文件创建请求后续的写请求,将写请求对应的第三数据写入对应的数据集中;从而,可以将原始数据包中的数据全部拷贝至所述原始镜像包的数据集中。

以上即完成了原始镜像包的制作,若数据包制作管理器建立模块101,原始镜像包数据集创建模块103和原始镜像包数据写入模块104均部署在服务器上时,则移动终端中目标应用的原始数据包的数据,被拷贝至服务器的原始镜像包中;若数据包制作管理器建立模块101,原始镜像包数据集创建模块103和原始镜像包数据写入模块104均部署在移动终端上时,则可以将制作完成的原始镜像包上传至服务器中,以方便不同的用户在运行目标应用时使用。

实施例二

参照图2a和2b,在上述实施例一的基础上,对一种基于文件系统的应用原始镜像包制作系统对应的方法进行说明。

本发明实施例中的数据包制作管理器m2可以包括:第二应用管理器m2a、第二存储栈m2b和第二文件管理器m2c,其中,第二应用管理器m2a可以包括第二配置管理器m20;第二存储栈m2b可以包括:第二文件模拟器m21,第二增量数据管理器m22和第二镜像缓存管理器m23,以上述数据包制作管理器m2包括的管理器和存储栈为例,对制作原始镜像包的具体步骤进行详细的说明。

步骤201、建立数据包制作管理器和创建空的原始镜像包。

由于原始镜像包的大小和数据的配置信息,是根据目标应用的原始数据包确定的;因此,在已安装目标应用的移动终端中,根据用户的操作,启动第二控制面板m24,第二控制模块m25通过启动配置信息获取进程,对移动终端的目标应用的原始数据包m26进行扫描,获取目标应用的原始数据包m26的配置信息,所述配置信息包括:目标应用的名称、原始数据包大小等内容描述信息。同时,第二控制模块m25还可以启动应用原始镜像包制作进程,调用数据包制作管理器建立模块101建立数据包制作管理器m2;具体的,数据包制作管理器建立模块101启动第二应用管理器m2a,建立第二文件管理器m2c,第二文件模拟器m21、第二增量数据管理器m22和第二镜像缓存管理器m23;此时,第二应用管理器m2a中的第二配置管理器m20也被启动,其中,所述第二文件管理器m2c用于管理原始镜像包中数据集的打开、关闭,数据集中数据的读写,以及数据集的创建与删除等操作。数据包制作管理器m2建立完成后,第二应用管理器m2a获取目标应用对应的配置信息,并将获取的配置信息保存在第二配置管理器m20中;然后根据该配置信息,创建一个空的原始镜像包m27,该原始镜像包m27的容量大于原始数据包m26的容量;其中,空的原始镜像包m27中包括已设置好格式的空配置文件;再调用第二配置管理器m20,将目标应用对应的配置信息,添加至已设置好格式的空配置文件中。

步骤202、在本地创建第二虚拟文件系统,所述第二虚拟文件系统接收文件创建请求,以及创建所述第二虚拟文件系统与数据包制作管理器的第九通路。

在建立完所述数据包制作管理器m2与所述原始镜像包m27后,第二控制模块m25启动文件系统创建进程,通过第二虚拟文件系统建立模块102在该移动终端中创建第二虚拟文件系统m28,然后移动终端的操作系统为第二虚拟文件系统创建挂载点,操作系统中的进程可以通过该挂载点,对第二虚拟文件系统m28进行访问。操作系统中存在与所述第二虚拟文件系统,对应的第二虚拟文件系统io模拟器m29,用于识别针对第二虚拟文件系统m28的文件访问操作。第二虚拟文件系统m28可以被操作系统识别后,第二控制模块m25启动数据拷贝进程,以将目标应用的原始数据包m26中的数据,拷贝至原始镜像包m27中;具体的,拷贝进程启动后,该拷贝进程向所述第二虚拟文件系统m28发送文件创建请求,第二虚拟文件系统m28接收到所述文件创建请求后,确定该文件创建请求在原始数据包m26中对应文件集的逻辑目录结构,在所述第二虚拟文件系统m28中创建对应的文件集。

具体的,在第二虚拟文件系统m28中建立文件集的过程是,根据原始数据包中文件集的逻辑目录结构,判断第二虚拟文件系统m28中文件创建请求对应的文件集,是否存在父节点,当不存在时,再向上逐级判断父节点是否存在父节点,即从当前节点一直回溯到最后一个存在父节点的节点;当确定某一级的节点存在父节点时,则逐级向下创建文件集对应节点的文件描述符。可参照图2c对在第二虚拟文件系统m28中建立文件集的流程进行说明,图2c示出了原始数据包中文件集的展现形式,原始数据包中的根节点root下包括a1和a2两个文件集,a1文件集包括b1、b2和b3三个文件集,a2文件集包括b4和b5两个文件集;b1包括c1和c2,b2包括c3,b3包括c4和c5,b4包括c6、c7和c8,b5包括c9;当第二虚拟文件系统m28接收到创建c4的文件创建请求时,先判断第二虚拟文件系统m28中c4是否存在父节点;确定c4不存在父节点b3时,再判断b3是否存在父节点;确定b3不存在父节点a1时,再根据root与a1对应的逻辑目录结构,创建文件集a1的文件描述符,并在root中记录与a1的父子关系;然后根据a1与b3对应的逻辑目录结构,创建文件集b3的文件描述符,并在a1中记录与b3的父子关系;再根据b3与c4对应的逻辑目录结构,创建文件集c4的文件描述符,并在b3中记录与c4的父子关系;从而完成了第二虚拟文件系统m28中该文件创建请求对应的文件集的创建;创建完文件集a1、b3和c4后,第二虚拟文件系统中文件集root下a1、b3和c4的展现方式,和图2c中文件集a1、b3和c4的展现方式相同。然后创建所述第二虚拟文件系统m28与第二文件模拟器m21的第九通路s9,具体的,分别创建第二虚拟文件系统m28中本次创建的各文件集,与第二文件模拟器m21的第九通路s9;根据每次文件创建请求创建的文件集可能是一个,也可能是多个,因此,在创建文件集后,创建的第九通路可能是一条,也可能是多条;例如,如上述所述,文件创建请求是创建c4的请求,则本次创建的文件集有3个,创建的第九通路s9对应有3条。

步骤203、所述数据包制作管理器通过所述第九通路获取所述文件创建请求,按照所述文件创建请求在原始数据包中对应文件集的逻辑目录结构,在所述原始镜像包中创建对应的数据集;以及建立所述数据包制作管理器与所述原始镜像包中所述数据集的第十通路。

第二虚拟文件系统io模拟器m29识别到所述文件创建请求后,通过第九通路s9,将所述文件创建请求转发至所述第二文件模拟器m21,第二文件模拟器m21获取所述文件创建请求后,将所述文件创建请求发送至第二文件管理器m2c;由于原始数据包的逻辑目录结构和原始镜像包中的存储目录结构存在映射关系,因此,第二文件管理器m2c可以控制第二增量数据管理器m22,在原始镜像包m27中创建对应的数据集。在所述原始镜像包m27中创建数据集的过程,与上述在第二虚拟文件系统m28中创建文件集的过程类似,但在创建完数据集后,各数据集均存储在原始镜像包m27的同一级目录中。以图2c为例,对在原始镜像包中创建数据集的过程进行说明;当所述文件创建请求是创建c4的请求时,确定原始镜像包m27中c4不存在父节点b3,b3不存在父节点a1,a1存在父节点root,因此,在原始镜像包m27中打开一个数据集bnode_2对应原始数据包的根节点root;然后在bnode_2中以字符串的形式,存储a1与root的目录结构关系如“a1”,再创建a1对应的数据集bnode_3;然后在bnode_3中存储a1与b3的目录结构关系如“b3”,再创建b3对应的数据集bnode_4;然后在bnode_4中存储c4与b3的目录结构关系如“c4”,再创建c4对应的数据集bnode_5;bnode_5是空的数据集;从而完成了原始镜像包的数据集的创建;其中,bnode_2、bnode_3、bnode_4和bnode_5在原始镜像包中存储的形式如图2d所示,所有的数据集存储在同一级,其中,“20××/××/××××:××”为数据集的创建时间。然后,建立第二文件管理器m2c与原始镜像包m27之间的第十通路s10,具体的,原始镜像包中本次创建的各数据集,与第二文件管理器m2c之间分别建立一条第十通路s10;根据每次文件创建请求创建的数据集可能是一个,也可能是多个,因此,在创建数据集后,创建的第十通路可能是一条,也可能是多条;例如,如上述所述,文件创建请求是创建c4的请求,则本次创建的数据集有3个,创建的第十通路s10对应有3条;其中,创建的每条第九通路s9和第十通路s10是一一对应的。此外,在原始镜像包中创建的数据集包括目录型数据集和数据型数据集,其中,所述目录型数据集存储的是该数据集与下一级数据集的逻辑目录结构,如上述bnode_2、bnode_3和bnode_4,所述目录结构是在数据集的镜像文件中存储的。数据型数据集是用于存储原始数据包中用于支持目标应用启动和运行的数据的;如bnode_5;因此,在创建数据型数据集时,可以创建一个空的镜像文件,用于存储数据。

具体建立各条第十通路s10的过程如下:(1)第二镜像缓存管理器m23创建并打开原始镜像包m27中的镜像文件,并初始化配置文件中相关的内容描述信息,其中,第二镜像缓存管理器m23是用于管理原始镜像包m27中对应的数据集;(2)第二增量数据管理器m22创建一个文件流实例,建立与第二镜像缓存管理器m23之间的数据通路,以通过第二镜像缓存管理器m23打开原始镜像包m27中的镜像文件;(3)在原始镜像包m27中创建属性描述块文件和校验和数据库文件,并打开对应的文件流实例;其中,所述属性描述块文件和校验和数据库文件可以是一个联合文件,也可以是两个独立的文件;(4)第二文件管理器m2c打开第二增量数据管理器m22创建的文件流实例,建立与第二增量数据管理器m22之间的数据通路,其中,第二增量数据管理器m22将第二文件模拟器m21的请求直接转发至第二镜像缓存管理器m23。

步骤204、所述数据包制作管理器通过所述第九通路接收写请求,以及通过第十通路将所述数据写请求对应的第三数据,写入所述原始镜像包的所述数据集中。

所述拷贝进程在向第二虚拟文件系统m28发送所述文件创建请求后,再发送对应的写请求,所述第二虚拟文件系统io模拟器m29识别所述写请求后,通过第九通路s9发送至第二文件模拟器m21,第二文件模拟器m21再将所述写请求发送至第二文件管理器m2c,所述第二文件管理器m2c根据所述写请求,从目录型数据集如bnode_2、bnode_3和bnode_4对应的第十通路s10,读取目录结构,以确定所述写请求对应的数据型数据集如bnode_5;然后再通过确定的数据型数据集对应的第十通路s10,将所述写请求对应的第三数据,写入所述数据型数据集中。此外,还可以将原始镜像包m27中目录型数据集和数据型数据集的属性描述块信息,如数据集类型,数据类型,创建时间等,分别写入对应的数据集中对应的属性描述块文件中。

按照上述步骤201-204,针对所述拷贝进程的每个文件创建请求,在第二虚拟文件系统中创建文件集,以及在原始镜像包中创建对应的数据集;再针对所述各文件创建请求对应的后续写请求,将目标应用的原始数据包m26中的第三数据,拷贝至所述原始镜像包m27中,直至将目标应用的原始数据全部拷贝至所述原始镜像包m27中。在拷贝进程结束后,第二虚拟文件系统中文件集的展现形式,和原始数据包中文件集的展现形式相同,如图2c所示。

此外,将目标应用的原始数据全部拷贝至所述原始镜像包后,第二虚拟文件系统建立模块102调用操作系统api关闭第二虚拟文件系统m28,并卸载挂载点,断开第二虚拟文件系统m28与数据包制作管理器m2之间的第九通路s9;数据包制作管理器建立模块101断开数据包制作管理器m2与所述原始镜像包m27的第十通路s10;并生成目标应用对应的启动运行包即启动运行器;其中,所述启动运行包中包含启动目标应用的最基本的文件,在移动终端利用所述启动运行包运行对应的应用时,所述启动运行包完成目标应用在安装过程中,基本的组件安装与配置及目标应用与终端的交互动作。同时,控制模块m25启动配置进程,使得数据包制作管理器建立模块101调用第二应用管理器m2a,逐块扫描原始镜像包m27中各数据集中的镜像文件,为原始镜像包m27的各数据集中镜像文件的每个数据块生成对应的校验和,其中,数据块的大小可以是连续8kb、16kb、64kb,每个数据集中镜像文件至少包括一个数据块;然后将各数据集中镜像文件的每个数据块对应的校验和,保存至对应数据集的校验和数据库文件中;然后,扫描各数据集的校验和数据库文件,生成数据库的md5;将md5,以及制作原始镜像包时各数据块的特征信息如下载优先级,更新至原始镜像包的配置文件中。可见,原始镜像包包括配置文件和数据集,所述数据集包括目录型数据集和数据型数据集;其中,各目录型数据集和数据型数据集分别包括镜像文件、校验和数据库文件和属性描述块文件。

上述提供的一种基于文件系统的应用原始镜像包制作系统及方法,可以用于制作各种大型的应用程序的原始镜像包,以减少应用程序的开发成本,例如3d游戏,ps等;以3d游戏为例,说明利用上述基于文件系统的应用原始镜像包制作系统,制作该3d游戏的原始镜像包的方法,具体的:移动终端上已经安装了该3d游戏,并且该移动终端中已存储支持该3d游戏运行的原始数据包,可以在该移动终端上创建3d游戏的原始镜像包,在将3d游戏的原始数据包的数据,拷贝至3d游戏的原始镜像包时,在原始镜像包中建立与原始数据包中文件集对应的数据集,并将数据拷贝至对应的数据集中;待数据拷贝完成后,该原始镜像包中镜像文件中的数据包含支持3d游戏启动与正常运行的数据;在数据拷贝完成之后,再为该3d游戏生成对应的applauncher;用户可以通过applauncher,启动该3d游戏。

本发明实施例在制作原始镜像包时,在本地建立第二虚拟文件系统、建立数据包制作管理器和创建空的原始镜像包后,当数据包制作管理器接收到文件创建请求时,按照该文件创建请求在原始数据包中文件集对应的逻辑目录结构,在原始镜像包中创建对应的数据集;然后接收对应的写请求,将所述写请求对应的数据写入原始镜像包中的所述数据集中;从而可以按照上述步骤,将原始数据包中文件集的数据,全部拷贝至原始镜像包的对应的数据集中;从而,在制作原始镜像包时,可以免去对应用程序所依赖运行时环境的解析,以及模块化拆分工作,大大降低了人工成本和时间成本。

实施例三

目标应用的启动运行包和原始镜像包创建后,若移动终端中未存储目标应用的启动运行包,则可以从服务器中下载;若移动终端中存储了目标应用的启动运行包,则可以直接在本地获取所述启动运行包,然后通过该启动运行包启动目标应用;在目标应用的启动的过程中,目标应用所需要的数据可以从原始镜像包中获取,由于目标应用启动时需要的数据较多,若目标应用的原始镜像包存储在服务器中,会导致用户在初次启动目标应用时需要等待较长的时间,为了减少用户初次启动目标应用时等待的时间,可以预先制作目标应用对应的启动镜像包,该启动镜像包包括目标应用的启动数据;移动终端在获取启动运行包的同时,获取该启动镜像包,则当目标应用启动时,可以直接在本地获取启动对应的数据,这大大减少了目标应用启动的时间。

因此,参照图3,示出了本发明的一种基于文件系统的应用启动镜像包制作系统实施例的结构框图,具体可以包括:本地管理器建立模块301、启动镜像包数据集拷贝模块302、第三虚拟文件系统建立模块303、第二文件访问请求接收模块304和启动镜像包数据写入模块305;其中,

本地管理器建立模块301,用于在启动目标应用时,建立本地管理器,以及建立本地管理器与原始镜像包中数据集的第十一通路。

启动镜像包数据集拷贝模块302,用于按照原始镜像包中数据集的存储目录结构,将原始镜像包中的数据集拷贝至启动镜像包中,将启动镜像包中的数据集确定为基础数据集,以及建立本地管理器与所述启动镜像包中所述基础数据集的第十二通路,其中,所述基础数据集的镜像文件为空。

第三虚拟文件系统建立模块303,用于在本地创建第三虚拟文件系统,建立所述本地管理器与所述第三虚拟文件系统的第十三通路。

第二文件访问请求接收模块304,用于调用所述本地管理器通过所述第十三通路接收文件访问请求,所述文件访问请求是所述第三虚拟文件系统从所述目标应用接收的。

启动镜像包数据写入模块305,用于当所述文件访问请求为读请求时,调用所述本地管理器通过所述第十一通路,从所述原始镜像包中获取所述读请求对应的第四数据;以及通过所述第十二通路将所述第四数据写入所述基础数据集的镜像文件中;在所述目标应用停止运行时,停止将所述第四数据写入所述基础数据集的镜像文件;其中,所述第十二通路与启动镜像包中各数据集分别对应;所述第十一通路与原始镜像包中各数据集分别对应。

本发明实施例中,本地管理器建立模块301、启动镜像包数据集拷贝模块302、第三虚拟文件系统建立模块303、第二文件访问请求接收模块304和启动镜像包数据写入模块305均部署在移动终端上。

本发明实施例可以通过启动运行包启动目标应用,也可以通过控制面板启动目标应用,其中控制面板和启动运行包均对应不同的控制模块;在目标应用启动时,控制模块从启动运行包中获取目标应用对应的标识如appid;并启动数据制作进程,使得本地管理器建立模块301建立本地管理器,然后控制模块将目标应用的标识发送至本地管理器;若目标应用的原始镜像包存储在本地缓存中,则本地管理器查找与目标应用的标识对应的原始镜像包,再建立本地管理器与原始镜像包之间的第十一通路;若目标应用的原始镜像包存储在服务器中,则本地管理器根据目标应用的标识,与服务器中与目标应用的标识对应的原始镜像包建立第十一通路;其中,与上述实施例相同,为原始镜像包中各数据集,分别创建一条与本地管理器之间的第十一通路;并从原始镜像包中获取与目标应用对应的配置信息。启动镜像包数据集拷贝模块302根据获取的配置信息先创建空的启动镜像包;该启动镜像包的容量,等于原始镜像包的容量;再将原始镜像包中的数据集拷贝至启动镜像包中;具体的,将原始镜像包中目录型数据集和对应的内容拷贝至启动镜像包中;将原始镜像包中数据型数据集、所述数据型数据集中包含的各文件以及各文件的内容拷贝至启动镜像包中,并将数据型数据集中镜像文件的内容清除,其他文件的内容保留;还将原始镜像包中配置文件拷贝至启动镜像包中;其中,将启动镜像包中的数据集确定为基础数据集;可见,启动镜像包包括配置文件和基础数据集,所述基础数据集包括目录型基础数据集和数据型基础数据集;其中,各目录型基础数据集和数据型基础数据集分别包括镜像文件、校验和数据库文件和属性描述块文件;其中,所述数据型基础数据集的镜像文件为空。在数据集的拷贝过程中,按照原始镜像包中数据集的存储目录结构,逐个将各数据集拷贝至启动镜像包中,以得到基础数据集。在数据集的拷贝过程中,本地管理器还可以为各数据型基础数据集创建第二增量数据集,所述第二增量数据集用于存储在目标应用运行的过程中,操作系统和/或目标应用产生的数据;在创建各基础数据集后,再建立本地管理器与所述启动镜像包中所述基础数据集的第十二通路,其中,在建立第十二通路时,分别为启动镜像包中的各基础数据集中的镜像文件,建立一条与本地管理器之间的第十二通路;以及分别为所述数据型基础数据集中各第二增量数据集,建立一条与本地管理器之间的第十二通路。

然后第三虚拟文件系统建立模块303在本地创建第三虚拟文件系统,在创建第三虚拟文件系统时,按照启动镜像包中基础数据集的存储目录结构,在创建的第三虚拟文件系统中,依据映射关系建立对应的文件集,即按照启动镜像包中目录型基础数据集,在第三虚拟文件系统中建立对应的文件集文件描述符,在文件集的文件描述符初始化时,其内容从启动镜像包中对应的属性描述块文件中读取出来,并建立其与父文件集文件描述符的父子关系;例如,将图2d中bnode_3、bnode_4和bnode_5;映射为图2c中a1、b3和c4的过程。然后建立所述本地管理器与所述第三虚拟文件系统中各文件集的文件描述符的第十三通路;操作系统为所述第三虚拟文件系统创建对应的挂载点后,第二文件访问请求接收模块304可以调用所述本地管理器,通过所述第十三通路接收文件访问请求;启动镜像包数据写入模块305确定所述文件访问请求为读请求时,调用所述本地管理器,通过所述第十一通路从所述原始镜像包中获取所述读请求对应的第四数据;以及通过所述第十二通路将所述第四数据写入所述启动镜像包中,即写入所述启动镜像包中基础数据集的镜像文件中;同时,本地管理器将获取的第四数据,通过第十三通路,返回给目标应用。

在所述目标应用停止运行时,停止将所述第四数据写入所述基础数据集的镜像文件中。本发明实施例中目标应用停止运行时,可以是目标应用刚刚启动时,也可以是目标应用启动后的较短时间内,以保证启动镜像包中的数据只占原始镜像包的小部分。优选的,所述启动镜像包的数据量小于原始镜像包的数据量的5%,如目标应用启动后30分钟;从而保证移动终端在获取启动镜像包时的时间较短。例如,在移动终端试玩20分钟的游戏a,可以玩到游戏a的第6关,则游戏a的启动镜像包中包含游戏a从启动到第6关的数据。例如,若启动镜像包存储的数据可能只占原始镜像包的3%;如游戏a的原始镜像包为4.3gb,则游戏a的启动镜像包的容量为4.3gb,启动镜像包存储的数据占4.3gb的3%;即启动镜像包真正占用的存储空间只有4.3gb*3%=0.129gb,优选的,还可以对启动镜像包通过压缩算法进一步处理,可以使得启动镜像包更小。

实施例四

参照图4a和4b,在上述实施例三的基础上,对一种基于文件系统的应用启动镜像包制作系统对应的方法进行说明。

本发明实施例中的本地管理器m4可以包括:第三应用管理器m4a、第三存储栈m4b和第三文件管理器m4c,其中,第三应用管理器可以包括第三配置管理器m40;第三存储栈m4b可以包括:第三文件模拟器m41,第三增量数据管理器m42、第三镜像缓存管理器m43和第三分流器m44;以下以上述本地管理器包括的管理器和存储栈对制作应用的启动镜像包进行详细的说明。

步骤401、在启动目标应用时,建立本地管理器,以及建立本地管理器与原始镜像包中数据集的第十一通路。

步骤402、按照原始镜像包中数据集的存储目录结构,将原始镜像包中的数据集拷贝至启动镜像包中,将启动镜像包中的数据集确定为基础数据集,以及建立本地管理器与所述基础数据集的第十二通路,其中,所述基础数据集的镜像文件为空。

本发明实施例通过目标应用的启动运行包,或,第三控制面板m45启动目标应用对应的启动程序p2时,本地管理器建立模块301建立本地管理器m4,具体的,第三控制模块m46启动第三应用管理器m4a,以及建立第三文件管理器m4c、第三文件模拟器m41,第三增量数据管理器m42、第三镜像缓存管理器m43和第三分流器m44;其中,第三应用管理器m4a中的第三配置管理器m40也被启动;所述第三文件管理器m4c用于管理启动镜像包中基础数据集的打开、关闭,以及基础数据集中数据的读写;若目标应用的原始镜像包m47存储在本地,则建立本地管理器m4与本地的原始镜像包m47的第十一通路;若目标应用的原始镜像包m47存储在服务器中。优选的,建立本地管理器m4与服务器se上原始镜像包m47的第十一通路可以包括:建立第三应用管理器m4a与配置服务器se1的通路s111,以获取原始镜像包的配置信息;以及建立第三分流器m44与数据服务器se2的通路s112,以获原始镜像包中各数据集的数据,其中,通路s111与原始镜像包中配置文件对应,通路s112与原始镜像包中数据集分别对应。在第三文件管理器m4c获取原始镜像包中配置信息后,按照配置信息建立容量与原始镜像包容量相同的空的启动镜像包;然后通过通路s112将原始镜像包中的数据集拷贝至启动镜像包中,在拷贝的过程中,除了无需将原始镜像包中数据型数据集中镜像文件的内容,拷贝至启动镜像包中数据型基础数据集的镜像文件外,将所述原始镜像包中数据集的文件和对应的内容,全部拷贝至启动镜像包的基础数据集中。在拷贝数据集的过程中,还可以在数据型基础数据集中建立第二增量数据集,其中,所述第二增量数据集中文件可以以镜像文件的形式存储。此外,还可以将原始镜像包中的配置文件,拷贝至启动镜像包中。

然后启动镜像包数据集拷贝模块302建立本地管理器m4与启动镜像包m48之间的第十二通路s12,具体的,(1)第三镜像缓存管理器m43打开启动镜像包m48中基础数据集的镜像文件以及初始化内容描述信息;(2)第三分流器m44将初始化一个文件流实例,建立第三分流器m44与原始镜像包m47中对应数据集镜像文件的通路,以获取原始镜像包m47中镜像文件的数据,并与第三镜像缓存管理器m43打开的所述基础数据集的镜像文件实例建立数据通路;(3)第三增量数据管理器m42将创建一个文件流实例,建立与第三分流器m44中文件流实例的通路,以及打开第二增量数据集的镜像文件,检查初始化脏数据分布,在内存中建立描述信息;(4)在启动镜像包m48中打开属性描述块文件和校验和数据库文件对应的文件流实例;其中,所述属性描述块文件和校验和数据库文件可以是一个联合文件,也可以是两个独立的文件;(5)通过第三文件管理器m4c打开第三增量数据管理器m42创建的文件流实例。其中,启动镜像包中各基础数据集的镜像文件,分别与第三文件管理器m4c建立一条第十二通路s12;数据型基础数据集中各第二增量数据集,分别与第三增量数据管理器m42建立一条第十二通路s12。

步骤403、在本地创建第三虚拟文件系统,建立所述本地管理器与所述第三虚拟文件系统的第十三通路。

在建立完第十一通路(包括s111和s112)和第十二通路s12后,第三控制模块m46启动文件系统创建进程,通过第三虚拟文件系统建立模块303在该移动终端中创建第三虚拟文件系统m49,第三虚拟文件系统m49中文件集是按照启动镜像包中数据集的存储目录结构创建的;所述第三虚拟文件系统中文件集,与启动镜像包中的数据集一一对应;然后创建所述第三虚拟文件系统m49与第三文件模拟器m41的第十三通路s13,第三虚拟文件系统m49中各文件集分别对应一条第十三通路,从而,第十二通路和第十三通路一一对应;然后移动终端的操作系统为第三虚拟文件系统m49创建挂载点,操作系统中的进程可以通过该挂载点,对第三虚拟文件系统进行访问。此外,操作系统中,存在与所述第三虚拟文件系统m49对应的第三虚拟文件系统io模拟器m410,用于识别针对第三虚拟文件系统m49的文件访问操作。

步骤404、所述本地管理器通过所述第十三通路接收文件访问请求,所述文件访问请求是所述第三虚拟文件系统从所述目标应用接收的。

目标应用启动和运行的过程中,可以访问第三虚拟文件系统m49,以通过第三虚拟文件系统m49获取所需要的数据;第三虚拟文件系统io模拟器m410获取到目标应用的文件访问请求后,通过第十三通路s13将所述文件访问请求转发给第三文件模拟器m41;第二文件访问请求接收模块304调用所述第三文件模拟器m41通过第十三通路s13,获取所述文件访问请求。

步骤405、当所述文件访问请求为读请求时,调用所述本地管理器通过所述第十一通路,从所述原始镜像包中获取所述读请求对应的第四数据;以及通过所述第十二通路将所述第四数据写入所述基础数据集的镜像文件中;在所述目标应用停止运行时,停止将所述第四数据写入所述基础数据集的镜像文件中。

所述第三文件模拟器m41将所述文件访问请求转发至所述第三文件管理器m4c,所述第三文件管理器m4c再将所述文件访问请求发送至第三增量数据管理器m42;当所述第三增量数据管理器m42确定所述文件访问请求为读请求时,启动镜像包数据写入模块305调用第三增量数据管理器m42,根据创建的文件流实例,将所述读请求转发给所述第三分流器m44,所述第三分流器m44从原始镜像包m47的数据型数据集的镜像文件中,获取所述读请求对应的第四数据;获取所述第四数据后,为第四数据的数据块生成对应的校验和a;确定第四数据在启动镜像包中对应的数据型基础数据集,在所述数据型基础数据集的校验和数据库文件中,查找所述第四数据对应的数据块的校验和b;将所述的校验和a和校验和b进行对比;当两者匹配时,将所述第四数据保存在启动镜像包中对应的数据型基础数据集的镜像文件中,并将第四数据对应数据块的第二位标识设为第三状态;当两者不匹配时,重新从原始镜像包m47获取第四数据,并重复上述校验和匹配操作;若第四数据的校验和多次匹配不成功,可以先将第四数据保存在启动镜像包中对应的数据型基础数据集中,并将第四数据对应数据块的第二位标识设为第四状态;可待下次目标应用启动时,再次从原始镜像包中获取所述第四数据。其中,所述第二位标识是,数据型基础数据集的镜像文件中数据块的标识;所述第三状态是,所述数据型基础数据集的镜像文件中数据块的有效状态;所述第四状态是,所述数据型基础数据集的镜像文件中数据块的无效状态。

此外,第三分流器m44通过文件流实例,将数据块对应的第二位标识为第三状态的第四数据,返回至第三增量数据管理器m42,第三增量数据管理器m42将所述第四数据返回至第三文件管理器m4c,第三文件管理器m4c再将所述第四数据转发给第三文件模拟器m41,第三文件模拟器m41通过所述第十三通路s13,将所述第四数据返回至目标应用。

在所述目标应用运行一段时间后,停止运行时,停止将所述第四数据写入所述启动镜像包m48;此时,即完成了启动镜像包m48的制作;为了使更多的移动终端获取目标应用的启动镜像包m48,可以将制作完成的启动镜像包上传至数据服务器中。

此外,在目标应用运行的过程中,操作系统或目标应用本身会产生写操作;因此,在启动镜像包制作的过程中,本地管理器可以根据接收的文件创建请求,在启动镜像包中创建第一增量数据集;然后当接收到的文件访问请求为写请求时,可以在第一增量数据集中,或第二增量数据集中写入所述写请求对应的数据。

上述提供的一种基于文件系统的应用启动镜像包制作系统及方法,可以用于为3d游戏,ps等应用程序制作启动镜像包;由于启动镜像包远小于原始镜像包,因此,可以减少用户在初次使用3d游戏、ps时的等待时间;以3d游戏为例,说明利用上述基于文件系统的应用启动镜像包制作系统,制作该3d游戏的启动镜像包的方法,具体的:可以在已获取该3d游戏的applauncher的移动终端上,通过启动applauncher试玩该3d游戏;3d游戏启动后;系统将创建3d游戏的启动镜像包,启动镜像包中的基础数据集,与原始镜像包中数据集相同;然后建立上述第十一通路、第十二通路和第十三通路;然后系统将通过第十一通路从原始镜像包中获取该3d游戏所需要的数据;通过第十三通路返回给该3d游戏,以保证3d游戏正常的运行;然后通过第十二通路,将从原始镜像包中获取的数据,写入启动镜像包中;待试玩20~30分钟左右,此时,3d游戏已被启动,且运行到前几个关卡;然后关闭3d游戏,此时,启动镜像包中包含了3d游戏的启动数据,和前几个关卡的数据;这样,app下次启动时,直接可以从本地启动镜像包获取启动数据以及前几个关卡的资源数据,试玩的时间以及内容可以根据3d游戏的大小或者游戏模式来确定,此外,对于不同类型的游戏,试玩的时间也可以不同,例如即时战略型游戏、人物角色扮演型游戏。

本发明实施例在建立启动镜像包时,按照原始镜像包中数据集的存储目录结构,将原始镜像包中的数据集拷贝至启动镜像包中,将启动镜像包中的数据集确定为基础数据集,拷贝数据集的过程包括拷贝数据集中的内容;使得原始镜像包中的数据集和启动镜像包中基础数据集一一对应,从而在创建启动镜像包时,也可以免去对应用程序所依赖运行时环境的解析,以及模块化拆分工作,大大降低了人工成本和时间成本;此外,在目标应用运行一段时间后,停止对启动镜像包数据的写入,使得启动镜像包中包括目标应用原始数据包的小部分数据,从而,大大减少了移动终端获取启动镜像包的时间。

实施例五

参照图5,示出了本发明的一种基于文件系统的应用运行系统实施例的结构框图,所述系统具体包括:数据包获取模块501、本地缓存管理器建立模块502、第一虚拟文件系统建立模块503、第一文件访问请求接收模块504、数据获取模块505和数据反馈模块506,其中,

数据包获取模块501,用于预先在未安装目标应用时,获取所述目标应用的启动运行包和启动镜像包,其中,所述启动运行包用于启动所述目标应用,所述启动镜像包包括所述目标应用的启动数据。

本地缓存管理器建立模块502,用于通过所述启动运行包启动所述目标应用时,建立本地缓存管理器,建立所述本地缓存管理器与启动镜像包的第一通路,和,建立本地缓存管理器与服务器的第二通路。

第一虚拟文件系统建立模块503,在本地创建第一虚拟文件系统,建立所述本地缓存管理器与所述第一虚拟文件系统的第三通路。

第一文件访问请求接收模块504,用于调用所述本地缓存管理器,通过所述第三通路接收文件访问请求,所述文件访问请求是所述第一虚拟文件系统从所述目标应用接收的。

数据获取模块505,用于当所述文件访问请求为读请求时,调用所述本地缓存管理器,通过所述第一通路,从所述启动镜像包获取所述读请求的第一数据;和/或,调用所述本地缓存管理器,通过所述第二通路,从所述服务器的原始镜像包中获取所述读请求的第一数据;其中,所述原始镜像包包括所述目标应用的启动数据和运行数据。

数据反馈模块506,用于通过所述第三通路将所述第一数据反馈给所述目标应用,以使所述目标应用运行;其中,所述启动镜像包和原始镜像包中数据集的存储目录结构,分别与所述目标应用的原始数据包中文件集的逻辑目录结构对应;所述第一通路与启动镜像包中各数据集分别对应;所述第二通路与原始镜像包中各数据集分别对应。

本发明实施例中,数据包获取模块501、本地缓存管理器建立模块502、第一虚拟文件系统建立模块503、第一文件访问请求接收模块504、数据获取模块505和数据反馈模块506,均部署在移动终端上,且可以在各个不同的移动终端上部署基于文件系统的应用运行系统,即可以在各移动终端上运行目标应用。若运行目标应用的移动终端,与上述实施例三或实施例四中制作目标应用的启动镜像包的移动终端为同一个时,则本发明实施例中第一通路、第二通路和第三通路,分别与实施例三或实施例四的第十二通路、第十一通路和第十三通路为同一通路,第一虚拟文件系统和第三虚拟文件系统为同一虚拟文件系统;若实施例五与实施例三的移动终端不同,则本发明实施例中第一通路、第二通路和第三通路,分别与实施例三或实施例四的第十二通路、第十一通路和第十三通路不是同一通路,第一虚拟文件系统和第三虚拟文件系统都不是同一虚拟文件系统。

数据包获取模块501在预先未安装目标应用时,可以从本地获取所述目标应用的启动运行包和启动镜像包;也可以从服务器中获取启动运行包和启动镜像包,由于目标应用的启动运行包和启动镜像包均比较小,因此,大大节约了用户的等待时间。用户在安装目标应用的启动运行包后,可以通过启动运行包,启动目标应用程序;本地缓存管理器建立模块502在目标应用程序启动后,建立本地缓存管理器;然后调用本地缓存管理器查找与所述启动运行包对应的启动镜像包;再建立所述本地缓存管理器与启动镜像包的第一通路,和,建立本地缓存管理器与服务器的第二通路;在第一通路和第二通路建立完成后,第一虚拟文件系统建立模块503在本地创建第一虚拟文件系统,建立所述本地缓存管理器与所述第一虚拟文件系统的第三通路;第一文件访问请求接收模块504调用所述本地缓存管理器,通过所述第三通路接收文件访问请求,所述文件访问请求是所述第一虚拟文件系统从所述目标应用接收的;这里本地缓存管理器建立模块502、第一虚拟文件系统建立模块503和第一文件访问请求接收模块504,分别与实施例三中本地管理器建立模块301、第三虚拟文件系统建立模块303和第二文件访问请求接收模块304的作用相同,在此不再赘述。数据获取模块505在所述文件访问请求为读请求时,调用所述本地缓存管理器,通过所述第一通路,从所述启动镜像包获取所述读请求的第一数据;或者,调用所述本地缓存管理器,通过所述第二通路,从所述服务器的原始镜像包中获取所述读请求的第一数据;或者,从启动镜像包和原始镜像包中获取第一数据;数据反馈模块506通过所述第三通路将所述第一数据反馈给所述目标应用,以使所述目标应用运行。

此外,可以是在目标应用初次启动时,也可以是在目标应用每次启动时,本地缓存管理器建立模块502建立本地缓存管理器,建立所述本地缓存管理器与启动镜像包的第一通路,和,建立本地缓存管理器与服务器的第二通路;以及第一虚拟文件系统建立模块503在本地创建第一虚拟文件系统,建立所述本地缓存管理器与所述第一虚拟文件系统的第三通路。

实施例六

参照图6a和6b,在上述实施例五的基础上,以下针对与一种基于文件系统的应用运行系统对应的方法进行说明。

根据上述实施例可知,原始镜像包包括配置文件和数据集,所述数据集包括镜像文件、校验和数据库文件和属性描述块文件,所述数据集分为目录型数据集和数据型数据集,其中,所述目录型数据集中镜像文件用于存储文件集的逻辑目录结构,所述数据型数据集的镜像文件用于存储原始数据包中支持目标应用启动和运行的数据。启动镜像包包括配置文件和基础数据集,其中,启动镜像包的配置文件和原始镜像包的配置文件的内容相同;目录型基础数据集与原始镜像包中目录型数据集中包含的文件及内容相同;数据型基础数据集与原始镜像包中数据型数据集除镜像文件外,其他的文件及内容均相同;此外,数据型基础数据集还包括第二增量数据集,用于存储在目标应用运行的过程中操作系统或目标应用产生的数据。

本发明实施例中的本地缓存管理器m6可以包括:第一应用管理器m6a、第一存储栈m6b和第一文件管理器m6c,其中,第一应用管理器m6a可以包括第一配置管理器m60;第一存储栈m6b可以包括:第一文件模拟器m61,第一增量数据管理器m62、第一镜像缓存管理器m63和第一分流器m64。

步骤601、预先在未安装目标应用时,获取所述目标应用的启动运行包和启动镜像包,其中,所述启动运行包用于启动所述目标应用,所述启动镜像包包括所述目标应用的启动数据。

在任一未安装目标应用的移动终端中运行目标应用,需要预先从本地获取所述目标应用的启动运行包m65和启动镜像包m68;若本地不存在所述目标应用的启动运行包m65和启动镜像包m68,则从服务器中获取启动运行包m65和启动镜像包m68,并保存在本地。获取启动运行包m65和启动镜像包m68成功后,当用户点击启动运行包m65时,移动终端直接打开启动运行包m65,完成启动目标应用基本组件的安装,以及运行对应的启动程序p6,以启动对应的目标应用。所述获取的启动镜像包m68包含的启动数据,可以是目标应用从关闭状态到完全启动状态过程中,目标应用需要的数据;也可以是从关闭状态到完全启动状态后运行一段时间的过程中,目标应用需要的数据;这取决于上述实施例中目标应用的启动镜像包在制作时,目标应用运行的时间。

步骤602、通过所述启动运行包启动所述目标应用时,建立本地缓存管理器,以及建立所述本地缓存管理器与启动镜像包的第一通路,和,建立本地缓存管理器与服务器的第二通路。

本地缓存管理器建立模块502,在目标应用启动时,建立本地缓存管理器m6,具体的,第一控制模块m66调用建立本地缓存进程,启动第一应用管理器m6a,以及控制第一应用管理器m6a建立第一文件管理器m6c、第一文件模拟器m61,第一增量数据管理器m62、第一镜像缓存管理器m63和第一分流器m64;其中,第一应用管理器m6a中的第一配置管理器m60也被启动。然后再建立本地缓存管理器m6与启动镜像包m68的第一通路,和建立本地缓存管理器m6与服务器的第二通路。

步骤603、在本地创建第一虚拟文件系统,建立所述本地缓存管理器与所述第一虚拟文件系统的第三通路。

步骤604、所述本地缓存管理器通过所述第三通路接收文件访问请求,所述文件访问请求是所述第一虚拟文件系统从所述目标应用接收的。

步骤603与步骤604,分别与上述步骤403和404相同,这里不再赘述。

步骤605、当所述文件访问请求为读请求时,所述本地缓存管理器通过所述第一通路,从所述启动镜像包中获取所述读请求的第一数据;和/或,所述本地缓存管理器通过所述第二通路,从所述服务器的原始镜像包中获取所述读请求的第一数据;其中,所述原始镜像包包括所述目标应用的启动数据和运行数据。

在建立完第一通路和第二通路后,第一控制模块m66启动文件系统创建进程,通过第一虚拟文件系统建立模块503在该移动终端中创建第一虚拟文件系统m69;操作系统对所述第一虚拟文件系统m69识别后,按照上述第三虚拟文件系统m49中文件集的创建方式,为所述第一虚拟文件系统m69,创建与所述启动镜像包中基础数据集对应的文件集;再创建所述第一虚拟文件系统m69与第一文件模拟器m61的第三通路s3;第一虚拟文件系统m69中各文件集,分别与一条第三通路s3对应;从而,第一通路和第三通路是一一对应的;然后移动终端的操作系统为第一虚拟文件系统m69创建挂载点,操作系统中的进程可以通过该挂载点,对第一虚拟文件系统进行访问。此外,操作系统中,存在与所述第一虚拟文件系统m69对应的第一虚拟文件系统io模拟器m610,用于识别针对第一虚拟文件系统m69的文件访问操作。

所述第一文件模拟器m61将所述文件访问请求转发至第一文件管理器m6c,第一文件管理器m6c通过查询文件流实例,将所述文件访问请求通过查询的对应通路转发给第一增量数据管理器m62;由第一增量数据管理器m62判断所述文件访问请求是读请求,还是写请求;当第一增量数据管理器m62确定所述文件访问请求为读请求时,则将该读请求发送给第一分流器m64;第一分流器m64接收到该读请求后,首先通过第一通路判断本地存储的启动镜像包中,是否存在该读请求对应的第一数据;若存在,则判断第一数据是否是有效的;若该第一数据是有效的,则可以通过第一通路从本地启动镜像包m68中获取所述第一数据。若本地存储的启动镜像包m68中不存在第一数据,或者,所述第一数据在本地启动镜像包中的状态是无效的状态,则第一分流器可以通过第二通路从服务器中原始镜像包m67中获取所述第一数据。若本地存储的启动镜像包中存在所述第一数据中部分数据是有效的,则从启动镜像包中获取所述第一数据中的有效部分的数据,再从数据服务器se2的原始镜像包m67中获取第一数据中其他部分的数据。

步骤606、通过所述第三通路将所述第一数据反馈给所述目标应用,以使所述目标应用运行。

第一分流器m64将获取的第一数据返回至第一增量数据管理器m62,第一增量数据管理器m62将所述第一数据,通过第一文件管理器m6c再转发给第一文件模拟器m61;第一文件模拟器m61通过对应的第三通路s3返回至第一虚拟文件系统m69,第一虚拟文件系统m69将所述第一数据通过第一虚拟文件系统io模拟器m610反馈给目标应用。

本发明实施例中在用户初次使目标应用时,获取目标应用的启动运行包和启动镜像包后;在通过该启动运行包启动应用程序时,本地缓存管理器通过建立的第三通路获取文件访问请求,当所述文件访问请求为读请求时,所述本地缓存管理器通过所述第一通路,从所述启动镜像包获取所述读请求的第一数据;和/或,所述本地缓存管理器通过所述第二通路,从所述服务器的原始镜像包中获取所述读请求的第一数据;然后通过所述第三通路将所述第一数据反馈给所述目标应用,以使所述目标应用运行;从而实现在只获取启动运行包和启动镜像包的情况下,通过在目标运行的过程中,从启动镜像包和/或服务器的原始镜像包中获取目标应用所需求的数据,以保证目标应用的正常运行。此外,由于启动镜像包中包含的是目标应用的启动数据,远小于目标应用的原始数据,从而大大节约了用户初次启动目标应用的时间,增强了用户的体验;另外,在目标应用长时间运行的过程中,一般情况下不会被使用到全部功能,进而只会下载部分程序数据,这样用户本地的设备存储系统的空间占用会大大降低;且由于目标应用的原始数据包和启动镜像包中,不同类型的文件集存储在不同的数据集中,因此,在目标应用运行的过程中,可以针对不同类型的数据,通过数据对应的通路进行优化传送:比如采用不同的压缩算法、按照数据权重优先级调整传输次序,以提高数据传输效率,在比较恶劣的网络环境中增强目标应用的响应速度,大大加速了目标应用运行的流畅性以及提高恶劣环境下的适应性。

实施例七

参照图7和6b,在上述实施例六的基础上,针对第一增量数据管理器m62获取到所述文件访问请求后的处理过程进行详细说明。

本发明实施例中建立第一通路包括通过第一增量数据管理器m62、第一镜像缓存管理器m63和第一分流器m64,建立基础数据集的镜像文件与第一文件管理器m6c之间的通路s1a,和建立基础数据集的第二增量数据集和第一增量数据管理器m62之间的通路s1b,以使第一增量数据管理器m62将数据写入启动镜像包m68中基础数据集中的第二增量数据集中。可见,所述第一通路与启动镜像包中基础数据集分别对应。

步骤701、判断所述文件访问请求是否为文件创建请求,若是,则执行步骤702;若否,则执行步骤704。

目标应用运行的过程中,目标应用除了需要读取启动镜像包中的数据,以保证目标应用的正常运行外,还需要根据系统的操作,将系统修改或新增的数据保存至本地的启动镜像包中,如人物模型的改变,或者新增的用户信息等,因此,在目标应用运行的过程中,目标应用向第一虚拟文件系统m69发送文件访问请求,其中,所述文件访问请求包括:文件创建请求、写请求和读请求;本地缓存管理器m6接收到请求后,针对不同的请求对应的处理方式不同。当文件访问请求是文件创建请求,第一增量数据管理器m62可以在启动镜像包m68中创建第一增量数据集,即执行步骤702。当第一增量数据管理器m62接收到的所述文件访问请求为写请求时,为了不破坏启动镜像包m68中支持目标应用正常运行的数据,第一增量数据管理器m62可以将写请求对应的数据写入启动镜像包m68的第二增量数据集中;或将写请求对应的数据写入所述第一增量数据集中。当所述文件访问请求为读请求时,第一增量数据管理器m62可以将所述读请求发送至第一分流器m64,第一分流器m64从启动镜像包m68,和/或,原始镜像包m67中读取对应的数据,即执行步骤709-步骤722。

步骤702、依据所述文件创建请求,在所述启动镜像包中创建第一增量数据集。

步骤703、创建所述第一增量数据集与所述本地缓存管理器的第四通路,然后执行结束的步骤。

第一虚拟文件系统m69在接收目标应用的文件创建请求时,在第一虚拟文件系统m69中创建对应的文件集文件描述符,并创建该文件集文件描述符与第一文件模拟器m61之间的通路;再通过所述通路将所述文件创建请求转发至第一文件模拟器m61。第一文件模拟器m61通过第一文件管理器m6c将所述文件创建请求发送至第一增量数据管理器m62;当第一增量数据管理器m62根据文件创建请求确定需要创建增量数据集时,在所述启动镜像包m68中创建第一增量数据集,然后创建所述第一增量数据集与本地缓存管理器m6的第四通路s4,所述第四通路用于将写请求对应的第二数据写入第一增量数据集中,以及将读请求对应的第一数据从所述第一增量数据集中读出;其中,启动镜像包中各第一增量数据集,分别对应一条第四通路。此外,各第一增量数据集中均还包括属性描述块文件,用于描述第一增量数据集的属性,每次写入第二数据后,均更新属性描述块文件中对应参数。

步骤704、判断所述文件访问请求是否为写请求;若是,则执行步骤705;若否,则执行步骤709。

步骤705、判断是否将所述第二数据写入第一增量数据集,若是,则执行步骤706;若否,则执行步骤707。

第一增量数据管理器m62确定所述文件访问请求为写请求时,将所述写请求对应的数据确定为第二数据;如果所述写请求对应的数据内容属于基础数据集对应文件集的数据范围,则第一增量数据管理器m62通过第一通路,从启动镜像包的基础数据集,和/或,服务器原始镜像包的数据集中读取第二数据对应的数据块,将第二数据对应的数据块放在内存中,否则,直接在内存中分配与第二数据对应数据块大小一致的空的内存数据块,第一增量数据管理器m62根据所述写请求,更新与所述第二数据对应数据块对应的内存数据块。由于启动镜像包m68包含两种增量数据集:第一增量数据集和第二增量数据集;因此,第二数据更新完成后,需要判断所述第二数据写入的增量数据集为哪个数据集;当确定需要将所述第二数据写入第一增量数据集时,则执行步骤706;否则,执行步骤707。

步骤706、通过所述第四通路将所述第二数据,写入所述第一增量数据集中,然后执行结束的步骤。

当确定需要将所述第二数据写入第一增量数据集时,则通过第一增量数据集与第一增量数据管理器m62之间的第四通路,将所述第二数据写入第一增量数据集中。

步骤707、通过所述第一通路将所述第二数据,写入对应的第二增量数据集中。

当确定需要将所述第二数据写入第二增量数据集时,则通过第二增量数据集与第一增量数据管理器m62之间的第一通路,将所述第二数据写入第二增量数据集中。

步骤708、设置所述第二增量数据集中第二数据对应数据块的第一位标识为第一状态,然后执行结束的步骤。

第一增量数据管理器m62在更新第二数据对应的数据块时,可能更新成功,也可能更新不成功;当确定将第二数据写入第一增量数据集时,则只将更新成功的第二数据对应的数据块写入第一增量数据集中;而当确定将第二数据写入第二增量数据集时,则将更新成功和更新不成功的数据均写入第二增量数据集中;并将更新成功的数据块的第一位标识设置为第一状态如1;以及将更新失败的数据块的第一位标识设置为第二状态如0。其中,所述第一位标识为第二增量数据集数据块的标识,第一状态为数据块更新成功的状态,第二状态为数据块未更新成功的状态。

当第一增量数据管理器m62确定所述文件访问请求为读请求时,将该读请求发送给所述第一分流器m64;第一分流器m64可以从本地启动镜像包m68中,和/或,数据服务器se2中获取所述读请求对应的数据;具体的,第一增量数据管理器m62从本地启动镜像包m68中获取第一数据,包括从启动镜像包m68的基础数据集中获取,或从第一增量数据集中获取;从基础数据集中获取第一数据包括从镜像文件中和/或第二增量数据集中获取,具体步骤如下:

步骤709、判断第一增量数据集中是否存在第一数据;若是,则执行步骤710,若否,则执行步骤711。

步骤710、通过所述第四通路,从所述第一增量数据集中获取所述第一数据对应的数据块,然后执行步骤722。

由于第一数据对应数据块,可能全部存在于第一增量数据集中,也可能全部存在于启动镜像包的基础数据集和/或原始镜像包的数据集中;因此,当第一文件管理器m6c接收到读请求后,判断第一增量数据集中是否存在第一数据对应的全部数据块,若第一增量数据集中只存在第一数据对应的部分数据块,则返回失败的信息至目标应用,执行结束的步骤;当第一增量数据集中存在第一数据对应的全部数据块时,通过第四通路,从第一增量数据集中获取第一数据对应的全部数据块。

当第一增量数据集中不存在第一数据对应的任一数据块时,可以从启动镜像包的基础数据集和/或原始镜像包的数据集中获取所述第一数据,具体的第一数据的获取步骤如下:

步骤711、判断所述第二增量数据集中是否存在所述第一数据;若存在,则执行步骤712;若不存在,则执行步骤714。

判断启动镜像包的基础数据集的第二增量数据集中是否存在所述第一数据对应的数据块,若存在,则执行步骤712;当所述第二增量数据集中不存在第一数据对应的数据块时,则执行步骤714。

步骤712、判断第二增量数据集中第一数据对应数据块的第一位标识的状态是否为第一状态,若是,则执行步骤713;若否,则执行步骤714。

当第二增量数据集中存在第一数据对应的数据块时,根据第二增量数据集中数据块对应第一位标识,确定第一数据对应的数据块是否被成功更新。当数据块的第一位标识的状态为第一状态时,确定该数据块中的数据被成功更新,执行步骤713;当数据块的第一位标识的状态为第二状态时,确定该数据块中的数据未被成功更新,执行步骤714。第一数据对应的数据块可能是一个,也可能是多个;第一数据可能包括每个数据块的全部数据,也可能是每个数据块的部分数据。

步骤713、从所述第二增量数据集中获取所述第一数据,然后执行步骤722。

当第一位标识的状态为第一状态时,从所述第二增量数据集中获取所述第一数据。由于第一数据可能包括多个数据块,当第一数据包括的多个数据块中的几个数据块,在第二增量数据集中的第一位标识为第一状态时,则从第二增量数据集中获取这几个数据块的数据;针对第一位标识的状态为第二状态的其他几个数据块,执行步骤714。

当第一位标识的状态为第二状态时,从基础数据集的镜像文件中读取所述第一数据,具有步骤如下:

步骤714、判断基础数据集的镜像文件中是否存在所述第一数据,当存在时,则执行步骤715,当不存在时,则执行步骤717。

第一分流器m64在从镜像文件中读取第一数据之前,需要先判断镜像文件中是否存在所述第一数据,当存在时,则执行步骤715,当不存在时,则执行步骤717。

步骤715、判断所述第一数据对应的数据块的第二位标识的状态是否为第三状态,若是,则执行步骤716;若否,则执行步骤717。

当镜像文件中存在第一数据对应的数据块时,需要判断第一数据对应数据块中的数据是否有效,以保证反馈至目标应用的第一数据,可以支持目标应用的正常运行。具体的,可以根据镜像文件中数据块的第二位标识的状态,判断镜像文件中第一数据对应的数据块是否有效;当第二位标识的状态为第三状态时,则确定对应数据块中数据有效;当第二位标识的状态为第四状态时,则确定对应数据块中数据无效。

步骤716、从所述镜像文件中获取所述第一数据,然后执行步骤722。

当数据块对应的第二位标识的状态为第三状态时,从所述镜像文件中获取所述第一数据。由于第一数据可能包括多个数据块,当第一数据包括的多个数据块中的几个数据块,在镜像文件中的第二位标识为第三状态时,则从镜像文件中获取这几个数据块的数据;针对第二位标识的状态为第四状态的其他几个数据块,执行步骤717。

步骤717、从所述服务器的原始镜像包中获取所述第一数据。

当第一分流器m64确定移动终端的本地缓存中,启动镜像包m68的基础数据集中不存在所述第一数据,或,存在部分所述第一数据,或,所述第一数据无效时,则可以从数据服务器se2的原始镜像包m67中获取所述第一数据。

步骤718、计算所述第一数据对应数据块的第一校验和,并在所述校验和数据库文件中查询所述第一数据对应数据块的第二校验和。

步骤719、将所述第一校验和与第二校验和进行匹配。

由于网络的不稳定性,或者其他因素,导致从服务器中获取的第一数据可能是错误的,或者是不完整的;当从数据服务器的原始镜像包m67中获取到所述第一数据后,第一分流器m64需要对获取的第一数据进行校验,以判断从数据服务器中获取的第一数据是否正确;因此,计算获取的第一数据对应的数据块的第一校验和;并且在启动镜像包m68的校验和数据库文件中查找,与所述第一数据对应的数据块的第二校验和。将第一校验和与第二校验和进行匹配,根据匹配的结果,判断从原始镜像包m67中获取的第一数据是否正确。

步骤720、判断第一校验和与第二校验和是否匹配成功,若是,则执行步骤721,若否,则执行步骤717。

判断第一校验和与第二校验和是否匹配成功,若匹配成功,则可以执行步骤721,若匹配不成功,则需要执行步骤717,即再次从服务器中获取所述第一数据,若多次从服务器获取的第一数据的第一校验和,与第二校验和匹配不成功时,则返回失败的信息至目标应用,执行结束的步骤。

步骤721、将所述第一数据保存至所述镜像文件中,并设置所述第一数据对应数据块的第二位标识为第三状态。

第一分流器m64将获取的第一数据返回至第一增量数据管理器m62之前,将第一数据保存至基础数据集的镜像文件中;并设置所述第一数据对应数据块的第二位标识为有效的状态,即第三状态。

步骤722、将所述第一数据反馈给所述目标应用。

第一分流器m64从启动镜像包m68中获取第一数据,或,从原始镜像包中获取所述第一数据后,均通过所述第一数据对应的通路,将第一数据返回至第一增量数据管理器m62;第一增量数据管理器m62将第一数据返回至第一文件管理器m6c,第一文件管理器m6c将获取的第一数据发送至第一文件模拟器m61;第一文件模拟器m61通过第三通路s3,将所述读请求对应的第一数据反馈给目标应用。

优选的,本发明实施例中,服务器se包括配置服务器se1和数据服务器se2,其中,配置服务器se1和数据服务器se2,分别与原始镜像包m67连接;因此,可以分别建立本地缓存管理器m6和配置服务器se1的通路s21,以及建立本地缓存管理器m6和数据服务器se2的通路s22;原始镜像包包含的各数据集,分别对应一条通路s22,其中,所述配置服务器se1存储与原始镜像包相关的配置信息,所述数据服务器se2存储原始镜像包中支持目标应用启动和运行的数据,可见,所述通路s22与原始镜像包中各数据集分别对应。

优选的,本发明实施例建立所述第一通路之前,具体步骤包括:第一应用管理器m6a根据启动运行包m65对应的目标应用的标识,在本地缓存中查找与该目标应用的标识对应的启动镜像包m68,确定与目标应用对应的启动镜像包后,获取启动镜像包中的配置信息;将该配置信息与从配置服务器se1中获取的配置信息进行匹配,以确定第一应用管理器m6a在本地查找的启动镜像包m68是否正确。确定查找的启动镜像包是正确时,则可以建立本地缓存管理器m6与启动镜像包m68之间的第一通路,其中,启动镜像包中的各基础数据集对应一条第一通路;具体方式与上述步骤402相同,此处不再赘述。

本发明实施例所述第一数据、第二数据等相关数据,可以,以固定大小(8kb、16kb、64kb等)数据块集合的形式实现,也可以,以数据范围的形式实现,比如建立数据描述符记录数据起始偏移(startoffset),数据大小(size)来描述该数据对应的范围。

本发明实施例中,若目标应用需要升级时,只需按照上述实施例中制作原始镜像包m27的过程,将目标应用需要升级的所有的数据,拷贝至升级原始镜像包中;然后按照上述目标应用启动镜像包m48的制作过程,制作升级数据的升级启动镜像包;当用户在移动终端中选择升级时,移动终端只需从服务器中直接下载升级启动镜像包;在目标应用启动时,除了建立上述数据通路外,再建立本地缓存管理器与升级启动镜像包的第七通路;以及建立本地缓存管理器与服务器中升级原始镜像包的第八通路;在目标应用运行的过程中,若文件访问请求为读请求时,先从本地的升级启动镜像包和/或升级原始镜像包中获取读请求对应的数据;当本地缓存管理器在升级启动镜像包和/或升级原始镜像包中,没有获取到对应的数据,或者只能获取部分数据时;则从本地启动镜像包和/或原始镜像包获取对应的数据;具体的,从本地的升级启动镜像包和/或升级原始镜像包中,获取对应的数据的步骤与上述步骤相同,此处不再赘述。

若后续目标应用升级的次数较多时,可以将所有升级的原始数据生成一个升级原始镜像包,也可以将所有升级的数据和原始数据合并,将合并的数据包作为原始数据包,然后重新制作原始镜像包和启动镜像包。

优选的,由于目标应用的原始数据包中,包含的文件集的数量较多,使得在终端上建立的通路的数量也较多;因此,在后续的制作过程中,可以将原始数据包中,文件类型相同的文件集整合到一个文件集中,以减少终端上运行目标应用时通路的数量。

各种大型的应用程序如网游等,可以利用本发明实施例的一种基于文件系统的应用运行系统和方法,可以在未安装该应用程序的移动终端上启动并运行,以网游a为例,具体的,在未安装网游a的移动终端上,获取网游a的applauncher,以及网游a的启动镜像包,启动镜像包中只包含网游a启动时的数据和网游a运行至第5个关卡时的数据;用户可以通过点击applauncher启动网游a,在启动网游a时,建立本地缓存管理器和创建第一虚拟文件系统;以及建立上述第一通路、第二通路和第三通路,当用户在网游a中进行注册时,网游a向第一虚拟文件系统发送文件创建请求,和,写请求;本地缓存管理器通过第三通路获取所述文件创建请求时,建立第一增量数据集;在接收到写请求时,将用户注册的信息写入启动镜像包的第二增量数据集,或者,写入创建的第一增量数据集中;在网游a启动并运行至第5关时,本地缓存管理器通过第一通路,从启动镜像包中获取网游a所需要的所有数据,并通过第三通路将获取的数据反馈给网游a;当网游a运行至第6关时,则本地缓存管理器通过第二通路,从服务器的原始镜像包中获取第6关的数据,并通过第三通路将获取的数据反馈给网游a;并将第6关的数据保存在启动镜像包中;从而实现了在网游a运行的同时,制作网游a的启动镜像包。当再一次启动网游a后,网游a运行至第6关时,本地缓存管理器可以从本地的启动镜像包中获取网游a的第6关所需的数据。若对网游a的第1、5、10关进行了升级;则可以将网游a的第1、5、10关对应的升级后的数据,制作成升级原始镜像包,以及对应的升级启动镜像包;将升级原始镜像包存储在服务器上,将升级启动镜像包存储在,具有网游a的启动镜像包的移动终端上;此时,在该移动终端上可以运行升级后的网游a。

本发明实施例可以在目标运行的过程中,一方面可以通过从启动镜像包和/或原始镜像包中获取数据,以保证目标应用的正常运行;另一方面可以将从原始镜像包中获取的数据保存在启动镜像包中,从而在目标应用下次运行需要该数据时,可以从本地缓存中的启动镜像包中直接获取数据,保证了目标应用运行的流畅性。此外,在目标应用升级时,只需获取升级原始镜像包和升级启动镜像包,在运行目标应用时,即可完成目标应用的升级,大大提高了目标应用升级的效率,节约了成本。

本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在终端设备时,可以使得该终端设备执行本申请实施例中各方法步骤的指令(instructions)。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种基于文件系统的应用运行方法和一种基于文件系统的应用运行装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1