CN113821194A - 一种微前端系统 - Google Patents

一种微前端系统 Download PDF

Info

Publication number
CN113821194A
CN113821194A CN202111063475.1A CN202111063475A CN113821194A CN 113821194 A CN113821194 A CN 113821194A CN 202111063475 A CN202111063475 A CN 202111063475A CN 113821194 A CN113821194 A CN 113821194A
Authority
CN
China
Prior art keywords
sub
application
applications
main
micro
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111063475.1A
Other languages
English (en)
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.)
Shanghai Yunzhou Information Technology Co ltd
Original Assignee
Shanghai Yunzhou Information Technology 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 Shanghai Yunzhou Information Technology Co ltd filed Critical Shanghai Yunzhou Information Technology Co ltd
Priority to CN202111063475.1A priority Critical patent/CN113821194A/zh
Publication of CN113821194A publication Critical patent/CN113821194A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • 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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)

Abstract

本申请的目的是提供一种微前端系统。所述微前端系统包括若干个主应用,每个所述主应用包括若干个子应用。与现有技术相比,本申请在开发阶段,每个所述子应用由多webpack进程并发构建,每个所述子应用采用不同的端口启动,所述主应用直接加载编译后的代码,从而极大地提高所述微前端系统的开发构建速度。进一步地,所述微前端系统的子应用对外暴露生命周期函数,供对应的主应用调用,从而方便主应用加卸载子应用,提高系统效率。进一步地,本申请通过read‑on‑write方式代理所述主应用的window对象并传递给所述子应用,在哈希化时为每个所述子应用添加特殊前缀,从而有效地避免内存冲突问题。

Description

一种微前端系统
技术领域
本申请涉及信息技术领域,尤其涉及一种微前端技术。
背景技术
随着计算机技术的蓬勃发展,各个网站的用户交互界面愈加复杂,单个站点的代码行数动辄几十万行,甚至百万行。为了保证编译速度和开发效率,微前端方案应运而生。具体地,微前端是一种设计思想,在实践上可以采用MPA、IFrame、Single-SPA等多种方式。微前端解决的是超大型项目的开发问题,负责开发单个子应用的团队规模可以很小,甚至可以是单人。现在的前端技术在开发阶段一般采用ES6或者TS,经过webpack构建后在浏览器端运行,开发采用的代码和编译后的代码差异非常大。如果采用单一webpack进行构建,当代码量超过10万行时,构建速度会显著变慢,严重影响开发速度。
发明内容
本申请的一个目的是提供一种微前端系统。
根据本申请的一个方面,提供了一种微前端系统,其中,所述系统包括若干个主应用,每个所述主应用包括若干个子应用;
在开发阶段,每个所述子应用由多webpack进程并发构建,每个所述子应用采用不同的端口启动,所述主应用直接加载编译后的代码。
进一步地,每个所述主应用中的若干个所述子应用共用一个DOM节点。
进一步地,在主路由中根据预设规则加载所述子应用,将路由事件透传给所述子应用,让所述子应用选择需要加载的子页面。
进一步地,所述子应用对外暴露生命周期函数,供所述主应用调用。
进一步地,所述生命周期函数包括:bootstrap函数,用于构建子应用的容器;mount函数,用于渲染子应用;unmount函数,用于清理子应用。
进一步地,通过read-on-write方式代理所述主应用的window对象并传递给所述子应用。
进一步地,在哈希化时,为每个所述子应用添加特殊前缀。
进一步地,在所述主应用中引入公共库,并在所述子应用的webpack配置中迁出所述公共库的代码。
进一步地,所述子应用之间通过消息总线进行通信。
进一步地,所述主应用包含一级导航及公共模块,所述子应用包含二级导航及自身独有的业务逻辑。
本申请提供的方案中,所述微前端系统包括若干个主应用,每个所述主应用包括若干个子应用。与现有技术相比,本申请在开发阶段,每个所述子应用由多webpack进程并发构建,每个所述子应用采用不同的端口启动,所述主应用直接加载编译后的代码,从而极大地提高所述微前端系统的开发构建速度。进一步地,所述微前端系统的子应用对外暴露生命周期函数,供对应的主应用调用,从而方便主应用加卸载子应用,提高系统效率。进一步地,本申请通过read-on-write方式代理所述主应用的window对象并传递给所述子应用,在哈希化时为每个所述子应用添加特殊前缀,从而有效地避免内存冲突问题。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其他特征、目的和优点将会变得更明显:
图1是根据本申请实施例的一种微前端系统结构示意图;
图2是根据本申请实施例的一种应用异步加载示意图;
图3是根据本申请实施例的一种基于Single-SPA的路由交互示意图;
图4是根据本申请实施例的一种微前端与后端通信示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的装置或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请实施例提供了一种微前端系统。在实际场景中,实现该微前端系统的设备可以是用户设备、网络设备或者用户设备与网络设备通过网络相集成所构成的设备。其中,所述用户设备包括但不限于智能手机、平板电脑、个人计算机(PC)等终端设备,所述网络设备包括但不限于网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图1是根据本申请实施例的一种微前端系统结构示意图。所述微前端系统包括若干个主应用,每个所述主应用包括若干个子应用。
例如,基于微前端方案,可以将百万行代码级别的主应用拆分为多个子应用,每个子应用的代码行数不超过2万行,并能通过主应用进行调度,从而保证编译速度和开发效率。
所述微前端系统有如下一些特点:所有的应用都通过webpack编译,编译结果可以作为npm分发;主应用通过history API根据不同的路由条件来加载子应用;子应用对外暴露mount、unmount方法,供主应用调度;主应用和子应用可以通过yarn workspace做开发时依赖共享;子应用通过配置webpack external可以共享主应用的依赖,比如react、react-dom;所有的应用可以通过vscode workspace来统一管理、开发,也可以独立开发;应用间的公共函数和组件,以额外package的方式分发,通过rollup进行编译;主应用与子应用,以及应用间的通信通过eventBus总线;子应用不限技术栈,可以采用react、vue、angular等技术栈;子应用和主应用之间的相同变量,通过基于Proxy的沙箱进行隔离;子应用和主应用的相同样式,通过css module来hash化区分;为了保证CI/CD,主应用和子应用公用一个repo,采用巨石项目结构;子应用支持独立开发、编译、部署、测试,可插拔;单个子应用加载失败,不会影响其他子应用。
与现有技术相比,本申请实施例在开发阶段,每个所述子应用由多webpack进程并发构建,每个所述子应用采用不同的端口启动,所述主应用直接加载编译后的代码。
例如,本申请实施例可以实现应用异步加载,在开发阶段每个子应用可以多webpack进程并发构建,每个子应用采用不同的端口启动,而主应用直接加载编译后的代码,因此开发A应用时无须编译B应用。经过实践验证,应用本申请实施例之后,50万行代码的开发构建速度由原来的6分钟降低为20秒。
例如,如图2所示,每个应用其实都是html、js、css以及assets(如icon、image、video等)的集合,在iframe中,开发人员只需要制定一个url和一个iframe容器,浏览器会自动加载指定的页面去填充iframe。参考iframe的实现,也可以通过fetch去获取指定子应用的html content,然后分析html拿到root节点插入到主应用的子应用root节点,分析内外联的css插入到主应用中,最后分析内外联的JS并通过eval执行,从而可以实现与iframe相同的效果。
在一些实施例中,如图2所示,所述主应用包含一级导航及公共模块,所述子应用包含二级导航及自身独有的业务逻辑。
在一些实施例中,每个所述主应用中的若干个所述子应用共用一个DOM节点。
例如,微前端在实践上可以采用MPA、IFrame、Single-SPA等多种方式,本申请实施例主要采用Single-SPA方式。基于Single-SPA的微前端系统可以让多个子应用共用一个主DOM节点,在应用切换时无须重新加载整个页面,页面的快速响应可以带来更好的用户体验。
在一些实施例中,在主路由中根据预设规则加载所述子应用,将路由事件透传给所述子应用,让所述子应用选择需要加载的子页面。
例如,为了让不同的库(如React、VUE等)协同工作,如访问/app1加载React子应用,访问/app2加载VUE子应用;在SPA中,无论是React还是VUE都会监听history事件,根据不同的路径去加载页面。本申请实施例主要采用基于Single-SPA的微前端系统,Single-SPA的核心是在最外层引入路由守护,拦截window.history.popState事件,即先在主路由中根据预先设置的规则加载子应用,再把路由事件透传给子应用,让子应用自己决定加载哪个子页面。从而解决路由监听冲突的问题,让多个子应用能在同一个页面运行。以Single-SPA结合React-Router为例,具体交互方式如图3所示。
在一些实施例中,所述子应用对外暴露生命周期函数,供所述主应用调用。
例如,所有的子应用被对应的主应用托管,需要对外提供一系列钩子函数方便主应用加卸载。在此,所述钩子函数可以简单分为三个生命周期函数:bootstrap、mount、unmount。
在一些实施例中,所述生命周期函数包括:bootstrap函数,用于构建子应用的容器;mount函数,用于渲染子应用;unmount函数,用于清理子应用。
例如,bootstrap、mount、unmount三个函数是生命周期函数,也是异步函数。子应用对外暴露bootstrap、mount、unmount三个函数,供主应用调用。其中,bootstrap函数负责构建子应用的容器(container),只会执行一次;mount函数负责子应用渲染,每次匹配路由都会执行;unmount函数负责清理子应用。具体的示例代码如下:
Figure BDA0003257320670000051
Figure BDA0003257320670000061
在一些实施例中,通过read-on-write方式代理所述主应用的window对象并传递给所述子应用。
例如,子应用的DOM、CSS、JS等会被插入到主应用中运行。假设主应用中定义了一个全局变量如CurrentUser,如果子应用也定义相同的变量CurrentUser,就会引发冲突。同理,CSS也会遇到这样的冲突问题,浏览器不同的tab页、iframe等都是内存隔离的,这种机制被称为沙箱(如图4所示)。本申请实施例主要采用基于Single-SPA的微前端系统,可以带来极致的用户体验,同时也必须解决内存冲突问题,避免出现页面加载错乱、程序报错等情况。
为解决内存冲突问题,本申请实施例针对JS的隔离,采用ES6中的Proxy特性,以read on write的方式代理主应用的window对象并传递给子应用,那么子应用接受的是代理过的window对象,无论如何改写都不会影响主应用的window对象。具体的示例代码如下:
Figure BDA0003257320670000071
在一些实施例中,在哈希化时,为每个所述子应用添加特殊前缀。
例如,沙箱可以解决JS的全局变量冲突;针对CSS的冲突问题,可以采用cssmodule hash化类名的方式,在哈希(hash)化时,每个子应用会添加特殊前缀,以避免生成的哈希(hash)名相同。
在一些实施例中,在所述主应用中引入公共库,并在所述子应用的webpack配置中迁出所述公共库的代码。
例如,微前端可以加载不同的架构。在实际场景中,微前端可能需要采用统一的技术栈(如React),不同的子应用可能会采用相同的第三方库(如React、React-Router、Antd等);为了避免公共依赖库重复打包,减少最终构建包的大小,本申请实施例采用webpack提供的external方案,在主应用中引入所有的公共库,并在子应用的webpack配置中用external迁出公共库的代码。具体的示例代码如下:
//主应用配置
import*as g_lodash from'lodash'
import*as g_react from'react'
import*as g_react_dom from'react-dom'
import*as g_moment from'moment'
import*as g_antd from'antd'
import*as g_bizcharts from'bizcharts'
import*as g_react_router from'react-router'
...
window.g_lodash=g_lodash
window.g_react=g_react
window.g_react_dom=g_react_dom
window.g_moment=g_moment.default
window.g_antd=g_antd
window.g_bizcharts=g_bizcharts
window.g_react_router=g_react_router
...
//webpack配置
config.externals={
lodash:'g_lodash',
react:'g_react',
'react-dom':'g_react_dom',
moment:'g_moment',
antd:'g_antd',
bizcharts:'g_bizcharts',
'react-router':'g_react_router'
...
}
在一些实施例中,所述子应用之间通过消息总线进行通信。
例如,应用间的通信可以分为主应用与子应用间的通信和子应用之间的通信。由于主应用与子应用共享内存空间,本申请实施例用一个简单的消息总线就可以实现应用间的通信。具体的示例代码如下:
Figure BDA0003257320670000091
综上所述,所述微前端系统包括若干个主应用,每个所述主应用包括若干个子应用。与现有技术相比,本申请实施例在开发阶段,每个所述子应用由多webpack进程并发构建,每个所述子应用采用不同的端口启动,所述主应用直接加载编译后的代码,从而极大地提高所述微前端系统的开发构建速度。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,本申请的一些实施例提供了一种计算设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行前述本申请的多个实施例的方法和/或技术方案。
此外,本申请的一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现前述本申请的多个实施例的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (10)

1.一种微前端系统,其中,所述系统包括若干个主应用,每个所述主应用包括若干个子应用;
在开发阶段,每个所述子应用由多webpack进程并发构建,每个所述子应用采用不同的端口启动,所述主应用直接加载编译后的代码。
2.根据权利要求1所述的系统,其中,每个所述主应用中的若干个所述子应用共用一个DOM节点。
3.根据权利要求2所述的系统,其中,在主路由中根据预设规则加载所述子应用,将路由事件透传给所述子应用,让所述子应用选择需要加载的子页面。
4.根据权利要求1所述的系统,其中,所述子应用对外暴露生命周期函数,供所述主应用调用。
5.根据权利要求4所述的系统,其中,所述生命周期函数包括:
bootstrap函数,用于构建子应用的容器;
mount函数,用于渲染子应用;
unmount函数,用于清理子应用。
6.根据权利要求1至5中任一项所述的系统,其中,通过read-on-write方式代理所述主应用的window对象并传递给所述子应用。
7.根据权利要求1至6中任一项所述的系统,其中,在哈希化时,为每个所述子应用添加特殊前缀。
8.根据权利要求1至7中任一项所述的系统,其中,在所述主应用中引入公共库,并在所述子应用的webpack配置中迁出所述公共库的代码。
9.根据权利要求1至8中任一项所述的系统,其中,所述子应用之间通过消息总线进行通信。
10.根据权利要求1至9中任一项所述的系统,其中,所述主应用包含一级导航及公共模块,所述子应用包含二级导航及自身独有的业务逻辑。
CN202111063475.1A 2021-09-10 2021-09-10 一种微前端系统 Pending CN113821194A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111063475.1A CN113821194A (zh) 2021-09-10 2021-09-10 一种微前端系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111063475.1A CN113821194A (zh) 2021-09-10 2021-09-10 一种微前端系统

Publications (1)

Publication Number Publication Date
CN113821194A true CN113821194A (zh) 2021-12-21

Family

ID=78922073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111063475.1A Pending CN113821194A (zh) 2021-09-10 2021-09-10 一种微前端系统

Country Status (1)

Country Link
CN (1) CN113821194A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986226A (zh) * 2021-12-28 2022-01-28 中国电子科技网络信息安全有限公司 一种基于qiankun和Web Component的微前端架构及其构建方法
CN115277637A (zh) * 2022-09-26 2022-11-01 中企云链(北京)金融信息服务有限公司 基于微前端架构的多域名项目的管理平台及高度聚合部署方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241191A (zh) * 2018-09-13 2019-01-18 华东交通大学 一种分布式数据源异构同步平台及同步方法
US20200364857A1 (en) * 2019-04-26 2020-11-19 California Institute Of Technology Tracking biological objects over time and space
CN112114784A (zh) * 2020-09-21 2020-12-22 广东电网有限责任公司电力科学研究院 一种基于Single-Spa的前端微服务化系统
CN112230918A (zh) * 2020-10-15 2021-01-15 四川长虹电器股份有限公司 一种使用iframe内嵌网页的web端开发方法
CN112965736A (zh) * 2021-03-04 2021-06-15 北京锐安科技有限公司 代码处理方法、装置、电子设备及介质
CN112988153A (zh) * 2021-03-17 2021-06-18 薪得付信息技术(上海)有限公司 基于微前端的数据处理方法及框架
CN113254237A (zh) * 2021-06-11 2021-08-13 海尔数字科技(青岛)有限公司 前端应用调用方法、设备、存储介质及程序产品

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241191A (zh) * 2018-09-13 2019-01-18 华东交通大学 一种分布式数据源异构同步平台及同步方法
US20200364857A1 (en) * 2019-04-26 2020-11-19 California Institute Of Technology Tracking biological objects over time and space
CN112114784A (zh) * 2020-09-21 2020-12-22 广东电网有限责任公司电力科学研究院 一种基于Single-Spa的前端微服务化系统
CN112230918A (zh) * 2020-10-15 2021-01-15 四川长虹电器股份有限公司 一种使用iframe内嵌网页的web端开发方法
CN112965736A (zh) * 2021-03-04 2021-06-15 北京锐安科技有限公司 代码处理方法、装置、电子设备及介质
CN112988153A (zh) * 2021-03-17 2021-06-18 薪得付信息技术(上海)有限公司 基于微前端的数据处理方法及框架
CN113254237A (zh) * 2021-06-11 2021-08-13 海尔数字科技(青岛)有限公司 前端应用调用方法、设备、存储介质及程序产品

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986226A (zh) * 2021-12-28 2022-01-28 中国电子科技网络信息安全有限公司 一种基于qiankun和Web Component的微前端架构及其构建方法
CN113986226B (zh) * 2021-12-28 2022-04-22 中国电子科技网络信息安全有限公司 一种基于qiankun和Web Component的微前端架构及其构建方法
CN115277637A (zh) * 2022-09-26 2022-11-01 中企云链(北京)金融信息服务有限公司 基于微前端架构的多域名项目的管理平台及高度聚合部署方法
CN115277637B (zh) * 2022-09-26 2023-01-13 中企云链(北京)金融信息服务有限公司 基于微前端架构的多域名项目的管理平台及高度聚合部署方法

Similar Documents

Publication Publication Date Title
US9906622B2 (en) Automated service interface optimization
EP3984197B1 (en) Web server request identification
US10574724B2 (en) Automatic discovery of management nodes and generation of CLI using HA module
CN113821194A (zh) 一种微前端系统
US10834059B2 (en) Secure message handling of an application across deployment locations
US7721278B2 (en) Modular server architecture for multi-environment HTTP request processing
JP5886450B2 (ja) ハイブリッドのエミュレーション及びカーネル関数処理のシステム及び方法
CN111309432B (zh) 一种故障演练方法、装置及系统
US11494184B1 (en) Creation of transportability container files for serverless applications
CN113064676A (zh) 基于js入口的前端运行时远程组件共享机制的方法
CN107276998A (zh) 一种基于OpenSSL的性能优化方法及装置
CN113449216A (zh) 一种文件处理方法、装置及存储介质
CN113835748B (zh) 基于html5的应用程序的打包方法、系统和可读介质
US10146885B1 (en) Method and system for deciding on ordering of scripting language source code for dependency resolution
CN112199080B (zh) vuejs项目webpack构建方法及设备
Bhat et al. Understanding docker volumes
US10603583B1 (en) Entity-component architecture with components having multiple configurations
US11733974B2 (en) Method and system for automatically creating instances of containerized servers
US20230409716A1 (en) Shared library customization
US20230409628A1 (en) Static and dynamic nbmp function image retrieval and scale ranking
US20200409987A1 (en) Static and dynamic nbmp function image retrieval and scale ranking
CN116126334A (zh) 文件生成方法、装置、电子设备及计算机可读存储介质
CN116303309A (zh) 文件挂载方法、装置和电子设备
De Clercq Lightweight container alternatives for deploying
Ward et al. SQL Server Big Data Clusters

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