首页> 中国专利> 基于Module Federation技术实现的模块中心化共享系统

基于Module Federation技术实现的模块中心化共享系统

摘要

本发明公开了一种基于Module Federation技术实现的模块中心化共享系统,包括工程系统和共享系统,所述共享系统包括:模块注册部分,与工程系统通信连接;模块解析器,与模块注册部分通信连接,用于接收注册信息后,并将注册信息进行解析输出模块信息;模块处理器,与模块解析器通信连接;模块索引器,与模块处理器通信连接,用于接收处理结果后,创建模块的唯一标识与模块的静态资源的绑定关系,并将唯一标识输入到工程系统内;模块检索部分。本发明的基于Module Federation技术实现的模块中心化共享系统,通过建立一个系统内的中心化的模块共享系统,以实现在系统内的共享模块可以实现动态(运行时)导入使用。

著录项

  • 公开/公告号CN114860228A

    专利类型发明专利

  • 公开/公告日2022-08-05

    原文格式PDF

  • 申请/专利权人 杭州指令集智能科技有限公司;

    申请/专利号CN202210538742.4

  • 发明设计人 张云来;宋杨;秦钢;

    申请日2022-05-18

  • 分类号G06F8/36(2018.01);G06F8/30(2018.01);

  • 代理机构杭州品众专利代理事务所(特殊普通合伙) 33459;

  • 代理人蔡陈祥

  • 地址 310000 浙江省杭州市文一西路1号益展商务大厦A座501

  • 入库时间 2023-06-19 16:17:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-23

    实质审查的生效 IPC(主分类):G06F 8/36 专利申请号:2022105387424 申请日:20220518

    实质审查的生效

  • 2022-08-05

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及一种共享系统,更具体的说是涉及一种基于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 导入,而不必从源头导入。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号