CN114860228A - 基于Module Federation技术实现的模块中心化共享系统 - Google Patents
基于Module Federation技术实现的模块中心化共享系统 Download PDFInfo
- Publication number
- CN114860228A CN114860228A CN202210538742.4A CN202210538742A CN114860228A CN 114860228 A CN114860228 A CN 114860228A CN 202210538742 A CN202210538742 A CN 202210538742A CN 114860228 A CN114860228 A CN 114860228A
- Authority
- CN
- China
- Prior art keywords
- module
- shared
- engineering
- information
- sharing system
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于Module Federation技术实现的模块中心化共享系统,包括工程系统和共享系统,所述共享系统包括:模块注册部分,与工程系统通信连接;模块解析器,与模块注册部分通信连接,用于接收注册信息后,并将注册信息进行解析输出模块信息;模块处理器,与模块解析器通信连接;模块索引器,与模块处理器通信连接,用于接收处理结果后,创建模块的唯一标识与模块的静态资源的绑定关系,并将唯一标识输入到工程系统内;模块检索部分。本发明的基于Module Federation技术实现的模块中心化共享系统,通过建立一个系统内的中心化的模块共享系统,以实现在系统内的共享模块可以实现动态(运行时)导入使用。
Description
技术领域
本发明涉及一种共享系统,更具体的说是涉及一种基于Module Federation 技术实现的模块中心化共享系统。
背景技术
如图1中所示,基于module federation技术搭建的appA、appB、appC三个独立工程组成的三个应用,appA导入了appB的B1模块、导入了appC的 C1模块,appB导入了appA的A1模块、导入了appC的C2模块。虽然appA、appB、appC是三个不同的工程进行独立开发、部署、发布的,但是它们之间可以实现无限制的模块共享。
然而当上述图示的应用逐渐增多之后,大量的应用都共享了自己的模块,在导入这些应用的共享模块时,需要关注该模块从哪个应用中共享出来,加大了工程开发阶段对模块检索难度,同时对低代码设计器这些类似工具来说,它们在导入素材或者原料时是不关心原料的来源的,因此增加了一些完全不必要的检索难度。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种可以有效的降低检索难度的基于Module Federation技术实现的模块中心化共享系统。
为实现上述目的,本发明提供了如下技术方案:一种基于Module Federation技术实现的模块中心化共享系统,其特征在于:包括工程系统和共享系统,所述共享系统包括:
模块注册部分,与工程系统通信连接,用于对工程系统内需要共享的模块生成注册信息;
模块解析器,与模块注册部分通信连接,用于接收注册信息后,并将注册信息进行解析输出模块信息;
模块处理器,与模块解析器通信连接,用于接收模块信息,并对模块信息进行处理后输出处理结果;
模块索引器,与模块处理器通信连接,用于接收处理结果后,创建模块的唯一标识与模块的静态资源的绑定关系,并将唯一标识输入到工程系统内;
模块检索部分,与工程系统通信连接,用于根据唯一标识检索到对应的模块。
作为本发明的进一步改进,所述模块注册部分生成注册信息的具体步骤如下:步骤一,判断工程系统内是否具有需要共享的模块;
步骤二,若有共享的模块则提取出共享模块信息输入至共享系统内,生成注册信息,并且共享系统输出回调信号至工程系统;
步骤三,工程系统根据回调结果确定是否进行工程部署和发布,回调结果为成功信号则进行工程部署和发布,若为失败信号则直接结束。
作为本发明的进一步改进,所述步骤一中判断是否具有共享的模块的具体步骤如下:
步骤一一,构建工程输出构建信号;
步骤一二,在工程构建完成以后根据构建信号对工程进行解析,分析出该工程是否有需要进行共享的模块,若有则会进行共享模块的解析工作,将解析完成之后的共享模块信息通过网络请求的方式传递至共享系统进行模块注册,若没有需要共享的模块则直接进行工程部署、发布。
作为本发明的进一步改进,所述模块检索部分检索的具体步骤如下:
步骤1,浏览器加载远程模块;
步骤2,判断是否有运行时缓存,若无则会发起网络请求到共享系统,根据模块统一地址进行从模块索引当中进行索引查询,得到模块资源地址后返回浏览器;浏览器在获得模块资源地址后进行执行,得到新运行时,之后将新运行时注入上下文完成一个远程模块的完整执行过程,完成检索,若有运行时缓存则继续下一步;
步骤3,复用上一次的运行时,注入上下文完成一个远程模块的完整执行过程。本发明的有益效果,工程系统内需要共享的模块都可以动态注册到该模块共享系统内,模块共享系统能够统一分配、管理、提供模块的导入地址,共享模块符合ECMA-262标准中的模块化规范,能够在现代化工程中以模块导入的方式自由使用;同时通过共享系统的使用,便可在工程系统中获得以下功能:
业务复用:系统内的用户登录模块可以共享给其他应用,即可实现应用内无刷新登录;系统内的权限配置模块可以共享给其他应用,即可实现应用内无跳转权限配置
静默迭代:系统内的用户登录模块和权限配置模块更新了,其他使用了该模块的应用无须再开发、部署和发布即可立即享受到该模块的最新的版本运行时复用:在一个应用内的多个地方都导入了权限配置模块,那么只有该应用内的任意一处已经载入了该权限配置模块,即可实现运行时上的共享,不需要再次载入该权限配置模块;
同时通过共享系统的应用,可以有效的降低实现下方应用场景的实现难度:庞大的中后台管理系统:是由多个子系统共同组合起来的大型系统,不同的子系统可以将子系统封装一个模块进行共享,而管理系统只需要将这些模块导入运行即可,通常这就是微前端的技术体现。
低代码设计器等工具化系统:低代码设计器只实现工具能力,而工具需要用的原料可以来自于模块共享系统,这样工具实现轻量化,这些原料可以由工具之外的开发者进行开发,实现专精分离
附图说明
图1为基于module federation技术搭建的appA、appB、appC三个独立工程的通信示意图;
图2为在图1的基础上增加了共享系统的通信示意图;
图3为共享系统的执行流程图;
图4为模块注册部分生成注册信息的流程图;
图5为模型检索部分检索的流程图。
具体实施方式
下面将结合附图所给出的实施例对本发明做进一步的详述。
参照图2至5所示,本实施例的一种基于Module Federation技术实现的模块中心化共享系统,其特征在于:包括工程系统和共享系统,所述共享系统包括:模块注册部分,与工程系统通信连接,用于对工程系统内需要共享的模块生成注册信息;
模块解析器,与模块注册部分通信连接,用于接收注册信息后,并将注册信息进行解析输出模块信息;
模块处理器,与模块解析器通信连接,用于接收模块信息,并对模块信息进行处理后输出处理结果;
模块索引器,与模块处理器通信连接,用于接收处理结果后,创建模块的唯一标识与模块的静态资源的绑定关系,并将唯一标识输入到工程系统内;
模块检索部分,与工程系统通信连接,用于根据唯一标识检索到对应的模块,通过上述结构构成的共享系统,可以实现对于模块注册、解析、处理以及索引和检索,有效的方便人们对于需要共享的模块进行检索处理。
作为改进的一种具体实施方式,所述模块注册部分生成注册信息的具体步骤如下:
步骤一,判断工程系统内是否具有需要共享的模块;
步骤二,若有共享的模块则提取出共享模块信息输入至共享系统内,生成注册信息,并且共享系统输出回调信号至工程系统;
步骤三,工程系统根据回调结果确定是否进行工程部署和发布,回调结果为成功信号则进行工程部署和发布,若为失败信号则直接结束,通过上述三个步骤的设置,便可有效的实现判断是否有需要共享的模块,同时根据判断结果确定是否进行工程部署和发布了。
作为改进的一种具体实施方式,所述步骤一中判断是否具有共享的模块的具体步骤如下:
步骤一一,构建工程输出构建信号;
步骤一二,在工程构建完成以后根据构建信号对工程进行解析,分析出该工程是否有需要进行共享的模块,若有则会进行共享模块的解析工作,将解析完成之后的共享模块信息通过网络请求的方式传递至共享系统进行模块注册,若没有需要共享的模块则直接进行工程部署、发布,通过上述两个步骤的设置,可实现进一步对需要共享的模块的信息进行处理,进而完成整体工程的部署和发布。
作为改进的一种具体实施方式,所述模块检索部分检索的具体步骤如下:
步骤1,浏览器加载远程模块;
步骤2,判断是否有运行时缓存,若无则会发起网络请求到共享系统,根据模块统一地址进行从模块索引当中进行索引查询,得到模块资源地址后返回浏览器;浏览器在获得模块资源地址后进行执行,得到新运行时,之后将新运行时注入上下文完成一个远程模块的完整执行过程,完成检索,若有运行时缓存则继续下一步;
步骤3,复用上一次的运行时,注入上下文完成一个远程模块的完整执行过程,通过上述步骤的设置,可实现避免在浏览器内已经有运行时缓冲的情况下又建立新运行时的问题,有效的增加了整体运行效率。
综上所述,本实施例的模块中心化共享系统,在appA、appB、appC之外增加了一个shared中心化应用,它充当的作用就是注册来自于appA、appB、 appC组成的系统中的共享模块,这个系统中导入共享模块的方式将从shared 导入,而不必从源头导入。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种基于Module Federation技术实现的模块中心化共享系统,其特征在于:包括工程系统和共享系统,所述共享系统包括:
模块注册部分,与工程系统通信连接,用于对工程系统内需要共享的模块生成注册信息;
模块解析器,与模块注册部分通信连接,用于接收注册信息后,并将注册信息进行解析输出模块信息;
模块处理器,与模块解析器通信连接,用于接收模块信息,并对模块信息进行处理后输出处理结果;
模块索引器,与模块处理器通信连接,用于接收处理结果后,创建模块的唯一标识与模块的静态资源的绑定关系,并将唯一标识输入到工程系统内;
模块检索部分,与工程系统通信连接,用于根据唯一标识检索到对应的模块。
2.根据权利要求1所述的基于Module Federation技术实现的模块中心化共享系统,其特征在于:所述模块注册部分生成注册信息的具体步骤如下:
步骤一,判断工程系统内是否具有需要共享的模块;
步骤二,若有共享的模块则提取出共享模块信息输入至共享系统内,生成注册信息,并且共享系统输出回调信号至工程系统;
步骤三,工程系统根据回调结果确定是否进行工程部署和发布,回调结果为成功信号则进行工程部署和发布,若为失败信号则直接结束。
3.根据权利要求2所述的基于Module Federation技术实现的模块中心化共享系统,其特征在于:所述步骤一中判断是否具有共享的模块的具体步骤如下:
步骤一一,构建工程输出构建信号;
步骤一二,在工程构建完成以后根据构建信号对工程进行解析,分析出该工程是否有需要进行共享的模块,若有则会进行共享模块的解析工作,将解析完成之后的共享模块信息通过网络请求的方式传递至共享系统进行模块注册,若没有需要共享的模块则直接进行工程部署、发布。
4.根据权利要求3所述的基于Module Federation技术实现的模块中心化共享系统,其特征在于:所述模块检索部分检索的具体步骤如下:
步骤1,浏览器加载远程模块;
步骤2,判断是否有运行时缓存,若无则会发起网络请求到共享系统,根据模块统一地址进行从模块索引当中进行索引查询,得到模块资源地址后返回浏览器;浏览器在获得模块资源地址后进行执行,得到新运行时,之后将新运行时注入上下文完成一个远程模块的完整执行过程,完成检索,若有运行时缓存则继续下一步;
步骤3,复用上一次的运行时,注入上下文完成一个远程模块的完整执行过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210538742.4A CN114860228A (zh) | 2022-05-18 | 2022-05-18 | 基于Module Federation技术实现的模块中心化共享系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210538742.4A CN114860228A (zh) | 2022-05-18 | 2022-05-18 | 基于Module Federation技术实现的模块中心化共享系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860228A true CN114860228A (zh) | 2022-08-05 |
Family
ID=82638995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210538742.4A Pending CN114860228A (zh) | 2022-05-18 | 2022-05-18 | 基于Module Federation技术实现的模块中心化共享系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860228A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686449A (zh) * | 2022-09-26 | 2023-02-03 | 广州市玄武无线科技股份有限公司 | 基于module federation的插件化架构设计方法 |
-
2022
- 2022-05-18 CN CN202210538742.4A patent/CN114860228A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686449A (zh) * | 2022-09-26 | 2023-02-03 | 广州市玄武无线科技股份有限公司 | 基于module federation的插件化架构设计方法 |
CN115686449B (zh) * | 2022-09-26 | 2023-06-02 | 广州市玄武无线科技股份有限公司 | 基于module federation的插件化架构设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104709B (zh) | 智能合约的处理方法、装置、介质及电子设备 | |
CN110351325B (zh) | 一种数据处理方法及相关设备 | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和系统 | |
CN108694221B (zh) | 数据实时分析方法、模块、设备和装置 | |
CN112559635B (zh) | 以太坊联盟链节点的业务处理方法、装置、设备及介质 | |
CN111309751A (zh) | 大数据处理方法及装置 | |
CN111782730B (zh) | 一种文件上传方法、装置及存储介质 | |
CN113467972A (zh) | 通信接口构造方法、装置以及计算机设备、存储介质 | |
CN111221852A (zh) | 基于大数据的混合查询处理方法及装置 | |
CN114860228A (zh) | 基于Module Federation技术实现的模块中心化共享系统 | |
CN105468793A (zh) | 一种仿真模型数据的自动化管理方法 | |
CN114900570A (zh) | 一种标准化数据采集传输方法及系统 | |
CN114443015A (zh) | 一种基于数据库元数据的增删改查服务接口生成方法 | |
CN116204239A (zh) | 业务处理方法、装置和计算机可读存储介质 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
CN116628066B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN109726213B (zh) | 一种程序代码转换方法、装置、介质和计算设备 | |
CN106776372A (zh) | 基于fpga的仿真数据存取方法及装置 | |
CN111221841A (zh) | 基于大数据的实时处理方法及装置 | |
KR100205039B1 (ko) | 이동통신교환기에서 신호메시지 공통화일 생성방법 | |
CN109240672B (zh) | 数字飞行器单机部件信息传输源代码的人工智能书写方法 | |
CN114020789A (zh) | 账单数据查询方法、系统、设备及存储介质 | |
CN109460296B (zh) | 一种处理器的资源分配方法、装置和存储介质 | |
CN110297898A (zh) | 异步编译方法及装置 | |
CN117170822B (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 |