CN106874357B - 一种Web应用的资源定制方法和装置 - Google Patents
一种Web应用的资源定制方法和装置 Download PDFInfo
- Publication number
- CN106874357B CN106874357B CN201611238106.0A CN201611238106A CN106874357B CN 106874357 B CN106874357 B CN 106874357B CN 201611238106 A CN201611238106 A CN 201611238106A CN 106874357 B CN106874357 B CN 106874357B
- Authority
- CN
- China
- Prior art keywords
- resource
- container
- customized
- user
- web application
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种Web应用的资源定制方法和装置,所述方法应用于资源定制装置,所述资源定制装置位于容器内部,所述容器内部还安装有Web应用,所述方法包括:在容器的运行过程中,接收用户针对所述Web应用上传的定制资源;根据预设的存储规则分别将接收的定制资源保存到容器外部的持久化资源库中以及容器内部;当容器再次实例化时,将所述持久化资源库中保存的定制资源加载到容器内部;根据加载到容器内部的定制资源,为所述用户提供定制化的Web应用界面。这一方法不需要再为用户特意建立带有特定定制资源的镜像文件,并且在对Web应用进行升级时,也不需要对定制资源进行额外的迁移工作,提高了Web应用的可维护性。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种Web应用的资源定制方法和装置。
背景技术
随着云计算和容器技术的发展,越来越多的Web应用开始向容器化迈进。
Web应用的开发者,只需将Web应用和其依赖的软件包打入镜像文件,容器平台就可以使用镜像文件在其上生成一个运行着的容器,容器内安装有Web应用。Web应用的内容由镜像文件决定。同一个镜像文件,不管底层情况如何,都会生成完全相同的容器,以及都会部署完全相同的Web应用。
正是因为这种特点,当需要部署可定制化的Web应用时,便需要创建不同的容器镜像文件来进行部署。这样一方面会导致成本过高,每次定制都需要针对Web应用重新建立镜像文件,会消耗较大的空间和时间代价;另一方面会影响Web应用的可维护性,如果Web应用出了新版本需要升级,但开发方提供的升级镜像文件中一般不会包含用户自定义的定制资源,从而需要对定制资源进行额外的迁移工作。
发明内容
有鉴于此,本申请提供一种Web应用的资源定制方法和装置,用以降低定制Web应用的成本,以及提高定制效率和Web应用的可维护性。
具体地,本申请是通过如下技术方案实现的:
本申请第一方面,提供了一种Web应用的资源定制方法,所述方法应用于资源定制装置,所述资源定制装置位于容器内部,所述容器内部还安装有Web应用,所述方法包括:
在容器的运行过程中,接收用户针对所述Web应用上传的定制资源;
根据预设的存储规则分别将接收的定制资源保存到容器外部的持久化资源库中以及容器内部;
当容器再次实例化时,将所述持久化资源库中保存的定制资源加载到容器内部;
根据加载到容器内部的定制资源,为所述用户提供定制化的Web应用界面
本申请第二方面,提供了一种资源定制装置,所述资源定制装置位于容器内部,所述容器内部还安装有Web应用,所述装置包括:
资源接收模块,用于在容器的运行过程中,接收用户针对所述Web应用上传的定制资源;
资源保存模块,用于根据预设的存储规则将接收的定制资源保存到容器内部;
持久化模块,用于根据预设的存储规则将接收的定制资源保存到容器外部的持久化资源库中;以及,当容器再次实例化时,将所述持久化资源库中保存的定制资源加载到容器内部;
Web应用服务模块,用于根据加载到容器内部的定制资源,为所述用户提供定制化的Web应用界面。
本申请提供的方案,通过在容器外部对定制资源进行持久化,当容器再次实例化时,只需将已持久化的定制资源加载到容器内部,后续即可基于加载到容器内部的定制资源,提供个性化的Web应用界面。这一方法不需要再为用户特意建立带有特定定制资源的镜像文件,并且在对Web应用进行升级时,也不需要对定制资源进行额外的迁移工作,提高了Web应用的可维护性。
附图说明
图1是本申请一示例性实施例示出的一种容器的运行环境示意图;
图2是本申请一示例性实施例示出的一种Web应用的资源定制方法的流程图;
图3是本申请一示例性实施例示出的一种资源定制装置的功能模块框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合说明书附图和各实施例对本申请技术方案进行说明。
Web应用的资源定制,即根据各个用户上传的定制资源,为不同的用户提供不同的界面风格,例如界面的外观、字体、控件的布局、图标样式等内容。
本申请提出了一种Web应用的资源定制方法和装置,通过在容器外部对定制资源进行持久化,当容器再次实例化时,只需将已持久化的定制资源加载到容器内部,后续即可基于加载到容器内部的定制资源,提供个性化的Web应用界面。这一方法不需要再为用户特意建立带有特定定制资源的镜像文件,并且在对Web应用进行升级时,也不需要对定制资源进行额外的迁移工作,提高了Web应用的可维护性。
下面通过图1对容器的运行环境进行简单描述:
参见图1,容器运行在容器平台上,容器平台安装在服务器的操作系统中,所以容器可以减少或解除Web应用对操作系统和底层硬件的直接依赖。
容器的内容基于镜像文件解压得到。容器可以理解为一个轻量级的运行环境,其中安装有Web应用以及Web应用所依赖的各种软件包,常见的有jdk,python环境等。一个容器内可以安装一个或多个Web应用,每个Web应用可以服务多个用户。本申请中,容器内部还安装有资源定制装置。
所述资源定制装置主要用于:将上传到容器内部的定制资源另存一份到容器外部的持久化资源库中,从而对定制资源进行持久化操作;当因该资源定制装置所在的容器再次实例化,导致之前上传到容器内部的定制资源丢失时,将持久化资源库中保存的定制资源重新加载到容器内部;以及根据接收到的Web应用访问请求返回对应的定制资源,提供定制化的Web应用界面。
上述提及的持久化资源库位于容器平台的外部,具体可以是数据库或者文件系统。定制资源在持久化资源库中可以长久保存。
需要说明的是,不同容器可以共用一个持久化资源库,也可以各自使用一个持久化资源库。
容器平台用于根据镜像文件在本平台上生成运行着的容器,在生成容器时容器平台会为生成的容器分配服务器上的内存和硬盘,上传到容器内部的定制资源便保存在容器平台为该容器分配的服务器硬盘中。常用的容器平台有docker平台。同一个镜像文件,不管底层情况如何,都会生成完全相同的容器。所以,Web应用的开发者只需将Web应用和其依赖的软件包打入镜像文件,就可以在各种不同的环境中部署自己的Web应用。以图1为例,镜像文件1、2、3中分别导入了Web应用1、2、3,从而根据镜像文件1、2、3生成的容器1、2、3内也分别安装有Web应用1、2、3。本申请中,镜像文件中还预先置入了资源定制装置。
下面通过图2,说明本申请提供的一种Web应用的资源定制方法。所述方法应用于资源定制装置,所述资源定制装置位于容器内部,所述容器内部还安装有Web应用。容器的内容基于镜像文件解压得到,本申请预先将资源定制装置导入了镜像文件。所述方法可包括以下步骤:
步骤201:在容器的运行过程中,资源定制装置接收用户针对Web应用上传的定制资源。
所述定制资源可以包括但并不限于图像文件、资源串文件(即字符串文件)、层叠样式表(Cascading Style Sheets,CSS)和音视频文件中的至少一种。
定制资源可以通过资源定制装置提供的外部接口上传至资源定制装置。该外部接口可以是网页(web)界面、命令行界面、人机接口或者其它形式的接口。
步骤202:资源定制装置根据预设的存储规则分别将接收的定制资源保存到容器外部的持久化资源库中以及容器内部。
持久化资源库具体可以是数据库或者文件系统。
可选的,若持久化资源库为数据库,则可以预先在镜像文件中写入数据库的地址、登录名及登陆密码,从而资源定制装置可以利用该登录名及登陆密码与该地址指向的数据库建立连接,并将接收的定制资源发送至数据库。后续,当容器再次实例化时,资源定制装置也可以从该地址指向的数据库上获取定制资源。
若持久化资源库为文件系统,则可以预先在配置文件(用于配置镜像文件启动时的参数,如端口号、通信协议等)或镜像文件中写入该持久化资源库所在物理硬盘的路径,从而资源定制装置可以直接将接收的定制资源发送至该路径指向的物理硬盘。以及后续,当容器再次实例化时,资源定制装置也可以从该路径指向的物理硬盘上获取定制资源。
步骤203:当容器再次实例化时,资源定制装置将所述持久化资源库中保存的定制资源加载到容器内部。
实际应用中,Web应用崩溃或者容器所在的服务器集群中的某台服务器故障,都有可能导致容器再次实例化。由于容器的内容是基于镜像文件解压出来的,每当容器实例化,其内容都会恢复到镜像文件刚解压出的状态,因此根据镜像文件新生成的容器将不再拥有之前用户上传的定制资源。
而本申请中,资源定制装置预先将用户上传的定制资源持久化到了容器外的位置,因此定制资源不会丢失。每次容器实例化时,容器内部的资源定制装置只需将定制资源从容器外部的持久化资源库加载到容器内部,之后用户的Web访问请求即可直接在容器内部获得相应的定制资源。
步骤204:资源定制装置根据加载到容器内部的定制资源,为所述用户提供定制化的Web应用界面。
为用户提供定制化的Web应用界面的过程,就是根据用户的Web应用访问请求,在容器内部找到该用户需要的定制资源,并把找到的定制资源包含在响应中返回给用户的过程。
为了能够快速地找到用户需要的定制资源,步骤202中,当定制资源上传完毕后,资源定制装置可以使用预设的存储规则,定义定制资源在容器内部以及持久化资源库上的存储位置。这样一方面,当用户访问Web应用时,资源定制装置可以通过使用同一存储规则,在容器内部快速找到待加载的定制资源;另一方面,当因容器再次实例化时,资源定制装置可以将持久化资源库上保存的定制资源连同其在持久化资源库上的存储位置一同映射到容器中,使得容器再次实例化之后仍可以通过同一存储规则,在容器内部快速找到待加载的定制资源。
这里的存储规则,可以作为存放和读取定制资源的依据,类似于“路由表”,在容器中起到“地图”的作用。通过存储规则,资源定制装置可以为不同用户的定制资源设定不同的存储位置,使得同一容器可以为不同的用户分别提供定制化的Web应用界面。
以下依次说明如何根据预设的存储规则将定制资源保存到容器内部和持久化资源库上。
在一个可选的实施例中,可以通过如下方式将定制资源保存到容器内部:
1、步骤201中,资源定制装置接收用户针对所述Web应用上传的定制资源的同时,还接收该定制资源的资源信息,所述资源信息包括所述用户的用户标识。
所述用户标识可以是所述用户的个人标识符(ID),也可以是所述用户的类别ID,如在学校的门户网站中,用户类别可分为老师和学生。
每个用户都有唯一的个人ID,和至少一个类别ID。
2、当定制资源上传完毕后,资源定制装置根据预设的存储规则,生成与所述用户标识相关的保存路径。
例如,存储规则可以规定存放定制资源的根目录,以及规定在存放定制资源的根目录下建立以用户标识为名称的文件夹,每个用户的定制资源分别保存在以其用户标识为名称的文件夹下。进一步的,存储规则还可以规定在上述建立的以用户标识为名称的文件夹下继续根据存放的定制资源的类型建立子文件夹,用于存放同一用户上传的不同类型的定制资源。
以下简单列举一种实现方式,说明如何根据预设的存储规则,生成与用户标识相关的保存路径。
在资源定制装置收到的资源信息中还可以包括定制资源在Web应用界面上的显示位置ID,显示位置ID用于标识定制资源在Web应用界面上的显示位置。
资源定制装置在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述资源信息包括的显示位置ID对应的子保存路径。
这一映射关系可以预先写在镜像文件中,从而当容器实例化时,这一映射关系可以从镜像文件解压到容器的内存中。映射关系的示例可以参见表1所示。其中,定制资源的显示位置ID与子保存路径之间存在一一对应的关系。
表1
根据表1可知,可以创建/images/dashboard这一子目录用于存放Web应用首页(dashboard)的图像(images),该图像在/images/dashboard目录下的文件名为a.png。以及,可以创建/css/dashboard这一子目录用于存放Web应用首页的CSS文件,该文件在/css/dashboard目录下的文件名为b.css。
另外,利用这一映射关系还可以灵活调整Web应用的界面布局。以表1为例,若要互换图像a.png与图像c.png在Web应用界面上的显示位置,只需在上述映射关系中,将图像a.png的显示位置ID由A修改为C,将图像c.png的显示位置ID由C修改为A,整个过程无需用户重新上传图像资源。若容器运行过程中,显示位置ID与子保存路径之间的映射关系发生了变化,则可以将这一映射关系也保存到持久化资源库中。后续,当容器再次实例化时,可以将持久化资源库中保存的上述映射关系连同定制资源一起加载到容器中。
资源定制装置在找到与显示位置ID对应的子保存路径之后(或之前),可以根据预设的根目录和资源信息中包括的用户标识,生成与该用户标识相关的根保存路径。
例如,若规定容器内部存放定制资源的根目录为/opt/web,用户标识为123,则可以得到根保存路径为/opt/web/123。
最后,资源定制装置将生成的根保存路径添加到查找到的子保存路径的前面,即可得到完整的保存路径。
例如,若查找到的子保存路径为/images/dashboard/a.png,生成的根保存路径为/opt/web/123,则对二者进行拼接,即可得到完整的保存路径为:/opt/web/123/images/dashboard/a.png。
根据上述存储规则,对于不同用户上传的携带相同显示位置ID的定制资源,其保存路径除了用户标识不同以外,其它路径都是相同的。
例如,假设容器内部存放定制资源的根目录为/opt/web,用户A的个人ID为123,用户B的个人ID为456,那么根据上表1,由用户A上传的显示位置ID为A的定制资源,其在容器内部的保存路径为:/opt/web/123/images/dashboard/a.png;由用户B上传的显示位置ID为A的定制资源,其在容器内部的保存路径为:/opt/web/456/images/dashboard/a.png。这两个保存路径中只有以用户标识为名称的文件夹不同,其它部分均相同。
同理,对于某一类用户使用同一种定制资源的情况,可以使用用户的类别ID来定义定制资源的保存路径。比如用户的类别ID为789,存放定制资源的根目录为opt/web,那么可以建立/opt/web/789这一目录用于存放类别ID为789的用户上传的定制资源。进一步地,在/opt/web/789这一目录下可以继续根据存放的定制资源的类型建立子文件夹,比如在/opt/web/789这一目录下继续创建/css/dashboard子文件夹用于存放这一类别的用户上传的Web应用首页的CSS文件。
3、资源定制装置在容器内部建立与得到的完整的保存路径对应的目录,并把接收的定制资源保存到在容器内部建立的目录下。
例如,若某图像在容器内部的保存路径为/opt/web/123/images/dashboard/a.png,则资源定制装置可以在容器内部建立/opt/web/123/images/dashboard这一目录,把该图像保存在该目录下,并把该图像的文件名重命名为a.png。
以上描述了定制资源在容器内部的保存方式。至于如何将定制资源保存到持久化资源库,具体与持久化资源库的存储形式有关。
如前文所述,持久化资源库的存储形式可以有文件系统和数据库两种。持久化资源的存储形式不同,将定制资源保存到持久化资源库时采取的保存方式也不同。
在一个可选的实施例中,当持久化资源库为文件系统时,资源定制装置将定制资源保存到持久化资源库时采取的保存方式,可以与上述将定制资源保存到容器内部时采取的保存方式相同。即:定制资源装置可以根据预设的存储规则生成与资源信息中包括的用户标识相关的保存路径,然后在容器外部的持久化资源库中建立与生成的保存路径对应的目录,并将接收的定制资源保存到在持久化资源库中建立的目录下。其中,一种生成与用户标识相关的保存路径的可选方式可以是:在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述资源信息包括的显示位置ID对应的子保存路径;根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径。具体实施细节可以参照上文相关描述,这里不再赘述。
但需要注意的是,同一个定制资源在容器内部和在持久化资源库上的保存路径可以相同,也可以不同。在不同的情况下,主要表现为保存路径的根目录不同。例如,某图像在容器内部的保存路径可以为/opt/web/123/images/dashboard/a.png,该图像在持久化资源库上的保存路径可以为C:/123/images/dashboard/a.png,这两个保存路径仅根目录不同,根目录下的以用户标识为名称的文件夹以及该以用户标识为名称的文件夹下的子文件夹均是相同的。在这种情况下,后续当资源定制装置从持久化资源库加载定制资源时,可以根据定制资源在持久化资源库上的保存路径,在容器内部建立对应的目录,并在建立对应的目录时根据预设的根目录映射关系将定制资源在持久化资源库上的根目录修改成指定的根目录,然后把加载的定制资源保存到在容器内部建立的对应目录下。
在一个可选的实施例中,当持久化资源库为数据库时,资源定制装置可以根据预设的存储规则将接收的定制资源保存到持久化资源库内的数据表中。具体地,可以将接收的定制资源、以及所述存储规则中规定的与定制资源在容器内部的保存路径相关的元素一同保存到持久化资源库的数据表中,例如,该元素可以包括所述定制资源的资源信息中的用户标识,从而相应的所述数据表的字段可以包括用户标识和定制资源的数据内容。后续,当资源定制装置从持久化资源库加载定制资源时,遍历数据表,根据从数据表中读取的用户标识以及所述存储规则在容器内部生成与用户标识相关的保存路径,根据读取的定制资源的内容生成定制资源文件,并将生成的定制资源文件保存到生成的保存路径下。
当资源定制装置接收到用户的Web应用访问请求时,资源定制装置可以从该Web应用访问请求中读取出用户的用户标识和待显示定制资源的显示位置ID;然后再根据预先设置的显示位置ID与子保存路径之间的映射关系,查找与所述待显示定制资源的显示位置ID对应的子保存路径;以及根据预设的根目录和用户标识,生成与该用户标识相关的根保存路径;通过将生成的根保存路径添加到查找到的子保存路径的前面,可以得到完整的保存路径;接下来,根据得到的完整的保存路径,从容器内部读取所述待显示定制资源;并将读取的待显示定制资源包含在响应中返回给用户。
可选的,用户的Web应用访问请求中可以携带多种用户标识,如可以同时携带用户的个人ID和类别ID。资源定制装置可以预先约定这两种用户标识的优先级,如可以约定用户的个人ID的优先级大于用户的类别ID的优先级。那么,当资源定制装置根据查找定制资源时,可以首先查找与该用户的个人ID对应的定制资源,若查找到则返回给用户,若未查找到则继续查找与该用户的类别ID对应的定制资源。
特别的,对于定制资源中的资源串文件,由于资源串文件主要以页面显示文字为主,占用空间不大,因此在实际应用中一般将资源串文件加载到Web应用的缓存中,以减少磁盘I/O(输入/输出)操作,提高读取效率。但目前的实现方式中,资源串文件只在容器重启时进行一次更新,不能做到实时更新。针对这一情况,本申请还提出了一种资源串实时修改方案,具体实现过程如下:
1、在容器的运行过程中,资源定制装置接收用户针对Web应用的资源串修改请求,所述请求中可以包括所述用户的用户标识、修改后的资源串字段、所述修改后的资源串字段在Web应用界面上的显示位置ID、以及所述修改后的资源串字段在资源串文件中的字段位置。
2、资源定制装置在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述修改后的资源串字段的显示位置ID对应的子保存路径;以及,根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;然后,将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径。
3、资源定制装置根据得到的完整的保存路径,从容器内部读取待修改的资源串文件。
4、资源定制装置将待修改的资源串文件中的所述字段位置处的内容,替换成所述修改后的资源串字段,得到修改后的资源串文件。
5、资源定制装置按照配置的更新策略将上述修改后的资源串文件更新到Web应用的缓存中以及容器外部的持久化资源库中。
典型的更新策略有如下两种:
第一种,立即将所述修改后的资源串文件分别更新到Web应用的缓存中以及容器外部的持久化资源库中。
第二种,当预设的循环定时器到期后,将所述修改后的资源串文件分别更新到Web应用的缓存中以及容器外部的持久化资源库中。比如,使用时长为5分钟的循环定时器,当循环定时器到期后,将在上一个5分钟内所有被修改过的资源串文件一起更新到Web应用的缓存中以及容器外部的持久化资源库中,并将该循环定时器的剩余时间重置为5分钟。
上述第一种更新策略适用于修改频度低的资源串文件和资源定制装置,第二种更新策略适用于修改频度高的资源串文件和资源定制装置。实际应用中可以根据资源定制装置的运行情况和用户行为来指定使用哪种更新策略。本申请提供的资源串实时修改方案使得用户可以随时定制Web应用界面上的文字资源。
综上所述,本申请提供的技术方案通过在容器外部对定制资源进行持久化,便于定制资源的备份与恢复。当容器再次实例化时,只需将已持久化的定制资源加载到容器内部,后续即可基于加载到容器内部的定制资源,提供个性化的Web应用界面。这一方法不需要再为用户特意建立带有特定定制资源的镜像文件。并且,在对Web应用进行升级时,也不需要对定制资源进行额外的迁移工作,提高了Web应用的可维护性。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述。
参见图3,该图为本申请实施例提供的一种资源定制装置的功能模块框图,该装置位于容器内部,所述容器内部还安装有Web应用。所述装置可以包括:
资源接收模块301,用于在容器的运行过程中,接收用户针对所述Web应用上传的定制资源。
资源保存模块302,用于根据预设的存储规则将接收的定制资源保存到容器内部。
持久化模块303,用于根据预设的存储规则将接收的定制资源保存到容器外部的持久化资源库中;以及,当容器再次实例化时,将所述持久化资源库中保存的定制资源加载到容器内部。
Web应用服务模块304,用于根据加载到容器内部的定制资源,为所述用户提供定制化的Web应用界面。
可选的,所述资源接收模块301,具体用于接收用户针对所述Web应用上传的定制资源和资源信息,所述资源信息包括所述用户的用户标识。
所述装置还可以包括:
资源调度模块305,用于根据预设的存储规则生成与所述用户标识相关的保存路径。
所述资源保存模块302,具体用于在容器内部建立与所述资源调度模块305生成的保存路径对应的目录,并将接收的定制资源保存到在容器内部建立的目录下。
所述持久化模块303,具体用于当所述持久化资源库为文件系统时,在容器外部的持久化资源库中建立与所述资源调度模块305生成的保存路径对应的目录,并将接收的定制资源保存到在持久化资源库中建立的目录下;当所述持久化资源库为数据库时,根据预设的存储规则将接收的定制资源保存到持久化资源库内的数据表中,所述数据表的字段包括所述用户标识和所述定制资源的数据内容。
可选的,所述资源信息还可以包括所述定制资源在Web应用界面上的显示位置标识符ID。
相应的,在根据预设的存储规则生成与所述用户标识相关的保存路径时,所述资源调度模块305,具体用于在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述资源信息包括的显示位置ID对应的子保存路径;根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径。
可选的,所述Web应用服务模块304,具体用于接收所述用户的Web应用访问请求,所述请求中包括所述用户的用户标识,以及待显示定制资源的显示位置ID。
所述资源调度模块305,还用于在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述待显示定制资源的显示位置ID对应的子保存路径;根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径。
所述Web应用服务模块304,还用于根据所述资源调度模块305得到的完整的保存路径,从所述容器内部读取所述待显示定制资源;将读取的所述待显示定制资源包含在响应中返回给所述用户。
可选的,所述定制资源可以包括资源串文件。
所述装置还可以包括:
资源串修改模块306,用于在容器的运行过程中,接收所述用户针对所述Web应用的资源串修改请求,所述请求中包括所述用户的用户标识、修改后的资源串字段、所述修改后的资源串字段在Web应用界面上的显示位置ID、以及所述修改后的资源串字段在资源串文件中的字段位置。
所述资源调度模块305,还用于在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述修改后的资源串字段的显示位置ID对应的子保存路径;根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径。
所述资源串修改模块306,还用于根据所述资源调度模块305得到的完整的保存路径,从所述容器内部读取待修改的资源串文件;将待修改的资源串文件中的所述字段位置处的内容,替换成所述修改后的资源串字段,得到修改后的资源串文件;立即将所述修改后的资源串文件分别更新到Web应用的缓存中以及容器外部的持久化资源库中,或者,当预设的循环定时器到期后,将所述修改后的资源串文件分别更新到Web应用的缓存中以及容器外部的持久化资源库中。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种Web应用的资源定制方法,其特征在于,所述方法应用于资源定制装置,所述资源定制装置位于容器内部,所述容器内部还安装有Web应用,所述方法包括:
在容器的运行过程中,接收用户针对所述Web应用上传的定制资源和资源信息,所述资源信息包括所述用户的用户标识;根据预设的存储规则分别将接收的定制资源保存到容器外部的持久化资源库中以及容器内部;
所述根据预设的存储规则,将接收的定制资源保存到容器内部,包括:
根据预设的存储规则生成与所述用户标识相关的保存路径;
在容器内部建立与生成的保存路径对应的目录,并把接收的定制资源保存到在容器内部建立的目录下;当容器再次实例化时,将所述持久化资源库中保存的定制资源加载到容器内部;
根据加载到容器内部的定制资源,为所述用户提供定制化的Web应用界面。
2.如权利要求1所述的方法,其特征在于,所述接收用户针对所述Web应用上传的定制资源,包括:
接收用户针对所述Web应用上传的定制资源和资源信息,所述资源信息包括所述用户的用户标识;
所述根据预设的存储规则,将接收的定制资源保存到容器外部的持久化资源库中,包括:
当所述持久化资源库为文件系统时,根据预设的存储规则生成与所述用户标识相关的保存路径;在容器外部的持久化资源库中建立与生成的保存路径对应的目录,并将接收的定制资源保存到在持久化资源库中建立的目录下;
当所述持久化资源库为数据库时,根据预设的存储规则将接收的定制资源保存到持久化资源库内的数据表中,所述数据表的字段包括所述用户标识和所述定制资源的数据内容。
3.如权利要求1或2所述的方法,其特征在于,所述资源信息还包括所述定制资源在Web应用界面上的显示位置标识符ID;
所述根据预设的存储规则生成与所述用户标识相关的保存路径,包括:
在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述资源信息包括的显示位置ID对应的子保存路径;
根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;
将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径。
4.如权利要求3所述的方法,其特征在于,所述根据加载到容器内的定制资源,为所述用户提供定制化的Web应用界面,包括:
接收所述用户的Web应用访问请求,所述请求中包括所述用户的用户标识,以及待显示定制资源的显示位置ID;
在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述待显示定制资源的显示位置ID对应的子保存路径;
根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;
将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径;
根据得到的完整的保存路径,从所述容器内部读取所述待显示定制资源;
将读取的所述待显示定制资源包含在响应中返回给所述用户。
5.如权利要求3所述的方法,其特征在于,所述定制资源包括资源串文件;
所述方法还包括:
在容器的运行过程中,接收所述用户针对所述Web应用的资源串修改请求,所述请求中包括所述用户的用户标识、修改后的资源串字段、所述修改后的资源串字段在Web应用界面上的显示位置ID、以及所述修改后的资源串字段在资源串文件中的字段位置;
在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述修改后的资源串字段的显示位置ID对应的子保存路径;
根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;
将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径;
根据得到的完整的保存路径,从所述容器内部读取待修改的资源串文件;
将待修改的资源串文件中的所述字段位置处的内容,替换成所述修改后的资源串字段,得到修改后的资源串文件;
立即将所述修改后的资源串文件分别更新到Web应用的缓存中以及容器外部的持久化资源库中;或,当预设的循环定时器到期后,将所述修改后的资源串文件分别更新到Web应用的缓存中以及容器外部的持久化资源库中。
6.一种资源定制装置,其特征在于,所述资源定制装置位于容器内部,所述容器内部还安装有Web应用,所述装置包括:
资源接收模块,用于在容器的运行过程中,接收用户针对所述Web应用上传的定制资源;
所述资源接收模块,具体用于接收用户针对所述Web应用上传的定制资源和资源信息,所述资源信息包括所述用户的用户标识;
所述装置还包括:
资源调度模块,用于根据预设的存储规则生成与所述用户标识相关的保存路径;
资源保存模块,具体用于在容器内部建立与所述资源调度模块生成的保存路径对应的目录,并将接收的定制资源保存到在容器内部建立的目录下;
资源保存模块,用于根据预设的存储规则将接收的定制资源保存到容器内部;
持久化模块,用于根据预设的存储规则将接收的定制资源保存到容器外部的持久化资源库中;以及,当容器再次实例化时,将所述持久化资源库中保存的定制资源加载到容器内部;
Web应用服务模块,用于根据加载到容器内部的定制资源,为所述用户提供定制化的Web应用界面。
7.如权利要求6所述的装置,其特征在于,
所述资源接收模块,具体用于接收用户针对所述Web应用上传的定制资源和资源信息,所述资源信息包括所述用户的用户标识;
所述装置还包括:
资源调度模块,用于根据预设的存储规则生成与所述用户标识相关的保存路径;
所述持久化模块,具体用于当所述持久化资源库为文件系统时,在容器外部的持久化资源库中建立与所述资源调度模块生成的保存路径对应的目录,并将接收的定制资源保存到在持久化资源库中建立的目录下;当所述持久化资源库为数据库时,根据预设的存储规则将接收的定制资源保存到持久化资源库内的数据表中,所述数据表的字段包括所述用户标识和所述定制资源的数据内容。
8.如权利要求6或7所述的装置,其特征在于,所述资源信息还包括所述定制资源在Web应用界面上的显示位置标识符ID;
在根据预设的存储规则生成与所述用户标识相关的保存路径时,所述资源调度模块,具体用于在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述资源信息包括的显示位置ID对应的子保存路径;根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径。
9.如权利要求8所述的装置,其特征在于,
所述Web应用服务模块,具体用于接收所述用户的Web应用访问请求,所述请求中包括所述用户的用户标识,以及待显示定制资源的显示位置ID;
所述资源调度模块,还用于在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述待显示定制资源的显示位置ID对应的子保存路径;根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径;
所述Web应用服务模块,还用于根据所述资源调度模块得到的完整的保存路径,从所述容器内部读取所述待显示定制资源;将读取的所述待显示定制资源包含在响应中返回给所述用户。
10.如权利要求8所述的装置,其特征在于,所述定制资源包括资源串文件;
所述装置还包括:
资源串修改模块,用于在容器的运行过程中,接收所述用户针对所述Web应用的资源串修改请求,所述请求中包括所述用户的用户标识、修改后的资源串字段、所述修改后的资源串字段在Web应用界面上的显示位置ID、以及所述修改后的资源串字段在资源串文件中的字段位置;
所述资源调度模块,还用于在预设的显示位置ID与子保存路径之间的映射关系中,查找与所述修改后的资源串字段的显示位置ID对应的子保存路径;根据预设的根目录和所述用户标识,生成与所述用户标识相关的根保存路径;将生成的根保存路径添加到查找到的子保存路径的前面,得到完整的保存路径;
所述资源串修改模块,还用于根据所述资源调度模块得到的完整的保存路径,从所述容器内部读取待修改的资源串文件;将待修改的资源串文件中的所述字段位置处的内容,替换成所述修改后的资源串字段,得到修改后的资源串文件;立即将所述修改后的资源串文件分别更新到Web应用的缓存中以及容器外部的持久化资源库中,或,当预设的循环定时器到期后,将所述修改后的资源串文件分别更新到Web应用的缓存中以及容器外部的持久化资源库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611238106.0A CN106874357B (zh) | 2016-12-28 | 2016-12-28 | 一种Web应用的资源定制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611238106.0A CN106874357B (zh) | 2016-12-28 | 2016-12-28 | 一种Web应用的资源定制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106874357A CN106874357A (zh) | 2017-06-20 |
CN106874357B true CN106874357B (zh) | 2020-02-11 |
Family
ID=59164485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611238106.0A Active CN106874357B (zh) | 2016-12-28 | 2016-12-28 | 一种Web应用的资源定制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874357B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019081B (zh) * | 2017-07-20 | 2023-04-07 | 中兴通讯股份有限公司 | 数据持久化处理方法、装置、系统及可读存储介质 |
CN107679220A (zh) * | 2017-10-19 | 2018-02-09 | 深圳中兴网信科技有限公司 | Web资源的定制适配方法、定制适配系统 |
CN108881390A (zh) * | 2018-05-18 | 2018-11-23 | 深圳壹账通智能科技有限公司 | 电子账户服务的云端平台部署方法、装置及设备 |
CN110659100B (zh) * | 2018-06-29 | 2022-05-24 | 华为技术有限公司 | 容器管理方法、装置和设备 |
CN111488254A (zh) * | 2019-01-25 | 2020-08-04 | 顺丰科技有限公司 | 一种机器学习模型的部署与监控装置和方法 |
CN111131497B (zh) * | 2019-12-31 | 2022-08-26 | 五八有限公司 | 文件传输方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810012A (zh) * | 2008-10-24 | 2014-05-21 | 思杰系统有限公司 | 用于在组合的计算环境中给可修改的机器基本映像提供个性化桌面环境的方法和系统 |
-
2016
- 2016-12-28 CN CN201611238106.0A patent/CN106874357B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810012A (zh) * | 2008-10-24 | 2014-05-21 | 思杰系统有限公司 | 用于在组合的计算环境中给可修改的机器基本映像提供个性化桌面环境的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106874357A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874357B (zh) | 一种Web应用的资源定制方法和装置 | |
CN107967159B (zh) | 一种配置文件应用的方法以及服务器 | |
EP3188009B1 (en) | Development, delivery, deployment and operation of an application | |
JP2019517043A (ja) | ハイブリッドアプリケーションの自動更新 | |
CN109831540B (zh) | 分布式存储方法、装置、电子设备及存储介质 | |
CN109684282B (zh) | 一种构建元数据缓存的方法及装置 | |
CN105426223B (zh) | 应用加载方法和装置 | |
CN108776587B (zh) | 数据获取方法、装置、计算机设备以及存储介质 | |
CN102520995B (zh) | 软件远程流式加载方法及系统 | |
CN111897623B (zh) | 一种集群管理方法、装置、设备及存储介质 | |
CN105867903A (zh) | 代码库拆分的方法及装置 | |
CN108681550B (zh) | 页面刷新方法、装置以及页面刷新的控制方法、装置 | |
CN115480801A (zh) | 一种基于Vue框架的多项目开发部署运行方法和系统 | |
CN113791765A (zh) | 云服务的资源编排方法、装置、设备及存储介质 | |
CN111045780A (zh) | 一种适用于跨kubernetes集群的应用迁移方法 | |
CN114546563B (zh) | 一种多租户页面访问控制方法和系统 | |
CN112100552A (zh) | 页面渲染方法、装置、设备及计算机可读存储介质 | |
US8719812B1 (en) | Methods, systems, and computer readable media for dynamically modifying and utilizing a software package description for software installation | |
CN114461209A (zh) | 页面配置与切换方法、装置、设备及存储介质 | |
CN113918096B (zh) | 一种算法镜像包的上传方法、装置及应用 | |
CN115293365A (zh) | 机器学习模型的管理方法、装置、管理平台和存储介质 | |
CN113127430B (zh) | 镜像信息处理方法、装置、计算机可读介质及电子设备 | |
CN114116030A (zh) | 操作系统的运行方法、装置、电子设备、存储介质 | |
CN107783837A (zh) | 一种进行存储扩展的方法、装置及电子设备 | |
CN114676372B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |