数据通信方法、装置、微前端系统及存储介质与流程

专利2022-06-30  109


本申请涉及微前端技术领域,具体而言,涉及一种数据通信方法、装置、微前端系统及存储介质。



背景技术:

微前端(microfrontends)是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将单页面前端应用由单一的单体应用转变为把多个小型前端应用聚合为一的应用。各个前端应用可以独立开发、独立部署。

目前,由于各小型前端应用往往具有不同的功能,各小型前端应用(各小型前端应用也可被称之为前端应用中的各个模块)之间的通信可靠性将会直接影响到整个前端架构的可靠性。因此,如何实现前端应用中不同模块间的数据安全访问就成为了亟待解决的问题。



技术实现要素:

本申请实施例的目的在于提供一种数据通信方法、装置、微前端系统及存储介质,用以实现前端应用中各模块之间的可靠性通信。

本申请实施例提供了一种微前端系统中模块间的数据通信方法,包括:

在用户登录时,主模块获取所述用户的用户信息和权限信息;所述主模块渲染所述权限信息对应的主模块页面;所述主模块页面中包括所述权限信息所对应的各子模块入口;在接收到针对任一子模块的选择指令时,将所述用户信息和与所述子模块相关的权限信息传递给所述子模块,以使所述子模块渲染所述权限信息对应的子模块页面;所述子模块页面中包括所述子模块具有的与所述权限信息对应的各操作入口。

在上述实现过程中,当用户登录时,主模块即获取用户的用户信息和权限信息,进而主模块渲染权限信息对应的主模块页面。主模块页面中包括权限信息所对应的各子模块入口,用户可以选择任意子模块入口。主模块在接收到针对任一子模块的选择指令时,将用户信息和与子模块相关的权限信息传递给子模块,以使子模块渲染权限信息对应的子模块页面。这样,即通过主模块进行控制,实现了子模块对于主模块的数据的访问,实现了数据从主模块到子模块的可靠传输,一定程度上实现了主模块和子模块之间的可靠性通信。

进一步地,所述用户信息包括所述用户在不同数据域下的角色信息;所述权限信息包括不同角色信息所对应的权限;将所述用户信息和与所述子模块相关的权限信息传递给所述子模块,包括:将所述选择指令所对应的数据域下的角色信息和所述角色信息对应的权限,传递给所述子模块。

应当理解的是,在多数据范围的复杂业务场景下,同一用户可能在不同数据域下扮演有不同的角色,而不同的角色对应有不同的权限。因此在本申请实施例中,可以将选择指令所对应的数据域下的角色信息和角色信息对应的权限,传递给子模块,以使子模块根据当前数据域下的角色信息,渲染该角色信息的权限对应的子模块页面,以适应多数据范围的复杂业务场景下,用户操作的需求。

进一步地,在所述将所述用户信息和与所述子模块相关的权限信息传递给所述子模块之前,所述方法还包括:判断已加载的子模块是否为所述选择指令指示的子模块;若已加载的子模块不是所述选择指令指示的子模块,卸载所述已加载的子模块;加载所述选择指令指示的子模块。

在上述实现过程中,在已加载的子模块不是选择指令指示的子模块时,对已加载的子模块进行卸载,进而再加载选择指令指示的子模块;而在已加载的子模块是选择指令指示的子模块时,即直接将用户信息和与该子模块相关的权限信息传递给该子模块,这样限制了子模块只能获取有相应权限的数据域,提高了本申请实施例的方案的安全性。

本申请实施例还提供了一种微前端系统中模块间的数据通信方法,应用于主模块访问子模块的过程中,所述方法包括:

所述主模块在消息总线上注册需要的数据事件,并持续监听;所述数据事件为需要待访问子模块调用后端服务进行处理的事件;在监听到所述数据事件的数据回应信息后,获取所述数据回应信息;所述数据回应信息为由所述待访问子模块调用后端服务获取,并发送给所述消息总线的信息。

在上述实现过程中,主模块通过在消息总线上注册需要的数据事件,并持续监听,进而在监听到数据事件的数据回应信息后,从消息总线上获取数据回应信息的方式,实现了对子模块的数据的访问,整个过程通过消息总线来实现数据获取,一定程度上实现了主模块和子模块之间的可靠性通信。

进一步的,所述主模块在消息总线上注册需要的数据事件包括:所述主模块以非鉴权的方式在消息总线上注册需要的数据事件。

在上述实现过程中,主模块是整个微前端系统对接外部的入口,在各模块间的数据通信过程中,其起到了中央主控作用,具有最高权限,因此主模块可以以非鉴权的方式在消息总线上注册需要的数据事件,从而提高通信效率。

本申请实施例还提供了一种微前端系统中模块间的数据通信方法,应用于子模块间的数据访问过程中,所述方法包括:

主模块在监听到第一子模块发到消息总线的目标服务数据后,根据所述目标服务数据查询出注册有所述目标服务数据对应的事件的所述第二子模块;调用鉴权中心对所述第二子模块进行鉴权;在所述第二子模块有权限获取所述目标服务数据时,向所述消息总线发送所述目标服务数据的数据地址信息,以使所述第二子模块在监听到所述数据地址信息后,按照所述数据地址信息获取所述目标服务数据。

在上述实现过程中,主模块在监听到第一子模块发到消息总线的目标服务数据后,根据目标服务数据查询出注册有目标服务数据对应的事件的第二子模块,进而调用鉴权中心对第二子模块进行鉴权,并在第二子模块有权限获取目标服务数据时,向消息总线发送目标服务数据的数据地址信息。而第二子模块会注册有目标服务数据对应的事件并监听,在监听到数据地址信息后,即可按照数据地址信息获取目标服务数据。这样,通过主模块的居中协调,实现了对于子模块间数据通信的控制,子模块想要获取到另一子模块的数据即需要由主模块来进行鉴权,从而在实现子模块之间的可靠性通信的同时,还提高了数据通信的安全性。

进一步地,所述方法还包括:所述主模块以非鉴权的方式在消息总线上注册所有跨模块访问的数据事件,并持续监听。

进一步地,主模块在监听到第一子模块发到消息总线的目标服务数据后,所述方法还包括:将所述目标服务数据存储到全局数据池中;所述目标服务数据的数据地址信息为,所述目标服务数据在所述全局数据池中的保存地址。

在上述实现过程中,将目标服务数据存储到全局数据池中,从而便于子模块获取,提升了方案实现的便利性。

本申请实施例还提供了一种微前端系统中模块间的数据通信方法,应用于子模块间的数据访问过程中,所述方法包括:

第二子模块向消息总线注册目标服务数据对应的事件,并持续监听;在监听到所述消息总线上的对应所述事件的数据地址信息后,按照所述数据地址信息获取所述目标服务数据。

在上述实现过程中,第二子模块会向消息总线注册目标服务数据对应的事件并监听,在监听到数据地址信息后,即可按照数据地址信息获取目标服务数据。这样,实现了子模块间的数据通信。

本申请实施例还提供了一种微前端系统中模块间的数据通信装置,应用于主模块中,包括:第一获取单元、渲染处理单元、传递单元;

所述第一获取单元,用于在用户登录时,获取所述用户的用户信息和权限信息;

所述渲染处理单元,用于渲染所述权限信息对应的主模块页面;所述主模块页面中包括所述权限信息所对应的各子模块入口;

所述传递单元,用于在接收到针对任一子模块的选择指令时,将所述用户信息和与所述子模块相关的权限信息传递给所述子模块,以使所述子模块渲染所述权限信息对应的子模块页面;所述子模块页面中包括所述子模块具有的与所述权限信息对应的各操作入口。

本申请实施例还提供了一种微前端系统中模块间的数据通信装置,应用于主模块中,包括:第一注册单元和第二获取单元;

所述第一注册单元,用于在消息总线上注册需要的数据事件,并持续监听;所述数据事件为需要待访问子模块调用后端服务进行处理的事件;

所述第二获取单元,用于在监听到所述数据事件的数据回应信息后,从所述消息总线上获取所述数据回应信息;所述数据回应信息由所述待访问子模块调用后端服务获取,并发送给所述消息总线。

本申请实施例还提供了一种微前端系统中模块间的数据通信装置,应用于主模块中,包括:处理单元、调用单元和发送单元;

所述处理单元,用于在监听到第一子模块发到消息总线的目标服务数据后,根据所述目标服务数据查询出注册有所述目标服务数据对应的事件的所述第二子模块;

所述调用单元,用于调用鉴权中心对所述第二子模块进行鉴权;

所述发送单元,用于在所述第二子模块有权限获取所述目标服务数据时,向所述消息总线发送所述目标服务数据的数据地址信息,以使所述第二子模块在监听到所述数据地址信息后,按照所述数据地址信息获取所述目标服务数据。

本申请实施例还提供了一种微前端系统中模块间的数据通信装置,应用于子模块中,包括:注册监听单元和第三获取单元;

所述注册监听单元,用于向消息总线注册目标服务数据对应的事件,并持续监听;

所述第三获取单元,用于在监听到所述消息总线上的对应所述事件的数据地址信息后,按照所述数据地址信息获取所述目标服务数据。

本申请实施例还提供了一种微前端系统,包括主模块以及多个子模块;

所述主模块,用于执行上述提供的第一种数据通信方法,以实现主模块到子模块的数据通信;或用于执行上述提供的第二种数据通信方法,以实现主模块对子模块数据的访问;或用于执行上述提供的第三种数据通信方法,以实现子模块间的数据通信;

所述子模块,用于执行上述提供的第四种数据通信方法,以实现子模块间的数据通信。

本申请实施例中还提供了一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的微前端系统中模块间的数据通信方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种子模块访问主模块的数据的情况的数据通信流程示意图;

图2为本申请实施例提供的一种主模块页面示意图;

图3为本申请实施例提供的一种针对主模块访问子模块的数据的情况的数据通信流程示意图;

图4为本申请实施例提供的一种针对子模块间进行数据访问的情况的数据通信流程示意图;

图5为本申请实施例提供的一种带有微前端系统的前后端系统示意图;

图6为本申请实施例提供的第一种微前端系统中模块间的数据通信装置的结构示意图;

图7为本申请实施例提供的第二种微前端系统中模块间的数据通信装置的结构示意图;

图8为本申请实施例提供的第三种微前端系统中模块间的数据通信装置的结构示意图;

图9为本申请实施例提供的第四种微前端系统中模块间的数据通信装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

实施例一:

本申请实施例所提供的方案应用于微前端系统中。所谓微前端系统,是指由多个前端应用构成一个应用的应用结构。在本申请实施例中,微前端系统中包括有主模块和多个子模块,其中主模块是整个前端应用中对接用户的门户模块,同时也承担有协调整个前端应用中各个子模块的任务。

需要理解的是,在微前端系统中,在用户登录后,存在有三种模块间的通信情况。具体而言,存在有子模块访问主模块的数据的情况,主模块访问子模块的数据的情况,以及子模块间进行数据访问的情况。在本申请实施例中,针对不同的通信情况,分别采用不同的模块间的数据通信方式来实现,从而实现微前端系统中模块间的数据通信。

针对子模块访问主模块的数据的情况,本申请实施例中所提供的模块间的数据通信方式可以参见图1所示,包括:

s101:在用户登录时,主模块获取用户的用户信息和权限信息。

应当理解的是,由于主模块是整个前端应用中对接用户的门户模块,因此用户登录后,首先接入的是主模块。在本申请实施例中,主模块可以调用相应的api(接口)从后端服务中获取到用户的用户信息和权限信息。

s102:主模块渲染该权限信息对应的主模块页面。

需要注意的是,本申请实施例中,渲染得到的主模块页面中包括权限信息所对应的各子模块入口。比如微前端系统中具有编号分别为1、2、3、4、5的五个子模块,而根据用户权限所能接入的子模块仅有编号为1、2、3的三个子模块,那么渲染得到的主模块页面中则可以仅有编号为1、2、3的三个子模块的子模块入口(例如参见图2所示),或者渲染得到的主模块页面中可以包括所有子模块的子模块入口,但是编号为4和5的子模块的子模块入口显示为不可用。

s103:在接收到针对任一子模块的选择指令时,将用户信息和与子模块相关的权限信息传递给该子模块。

需要理解的是,选择指令所选择的子模块应当是符合用户的权限信息要求的子模块。

s104:子模块渲染与该子模块相关的权限信息对应的子模块页面。

在本申请实施例中,可以获取该子模块的模块权限。所谓子模块的模块权限是指该子模块所具有的资源权限。在本申请实施例中,将用户的权限信息与选择指令所对应的子模块的模块权限取权限交集,该交集中具有的资源权限即为本次用户对于该子模块具有的资源操作权限,即前文所述的与该子模块相关的权限信息。

在本申请实施例中,子模块页面中包括子模块具有的用户有权操作的各操作入口,通过不同操作入口可以调用不同的资源。应当理解的是,不同的权限下,用户所能进行操作的资源可能不同。为此,在本申请实施例中可以仅渲染显示出用户有权限进行操作的各操作入口,或者将子模块具有的所有操作入口全部渲染显示出来,但是限制权限外的操作入口不可用。

值得注意的是,在实际应用中,存在多数据范围的复杂业务场景。在多数据范围的复杂业务场景中,同一用户可能在不同数据域下扮演有不同的角色,而不同的角色则对应有不同的权限。在本申请实施例中,可以获取用户的所有角色信息,以及各角色信息对应的角色权限,进而分别针对不同角色信息的角色权限,分别渲染对应的主模块页面。示例性的,假设微前端系统中具有编号分别为1、2、3、4、5的五个子模块,用户存在a和b两个角色,a角色下角色权限对应能接入的子模块为编号为1、2、3的三个子模块,b角色下角色权限对应能接入的子模块为编号为2、3、5的三个子模块,主模块中可以分别渲染出a角色对应的主模块页面和b角色对应的主模块页面,并提供给用户。示例性的,可以通过类似于网页的切换方式,每次显示一个角色对应的主模块页面给用户,但用户可以选择切换至其余角色对应的主模块页面。

相应的,用户在选择了某一个子模块时,即主模块在接收到针对任一子模块的选择指令时,所发送给子模块的用户信息和与该子模块相关的权限信息包括:选择指令所对应的数据域(即用户下发选择指令时所在的主模块页面所归属的数据域)下的角色信息和该角色信息对应的权限。此时子模块根据该角色信息对应的权限渲染相应的子模块页面。

值得注意的是,在本申请实施例中,用户信息除了可以包括角色信息外,还可以包括用户的基本信息,如用户姓名、用户电话、用户账号等信息中的一种或多种。

此外,在本申请实施例中,在用户登录后,为了保证用户体验,可以采用预加载模式,即对某一子模块进行预先加载。在用户下发了针对任一子模块的选择指令后,主模块可以判断已加载的子模块是否为选择指令指示的子模块。若是,则可以直接将用户信息和与该子模块相关的权限信息传递给该子模块;若否,则可以卸载已加载的子模块,并加载选择指令指示的子模块,在加载完毕之后将用户信息和与该子模块相关的权限信息传递给该子模块。

针对主模块访问子模块的数据的情况,本申请实施例中所提供的模块间的数据通信方式可以参见图3所示,包括:

s301:主模块在消息总线上注册需要的数据事件,并持续监听。

在本申请实施例中,主模块在消息总线上注册的数据事件为需要待访问子模块调用后端服务进行处理的事件。比如主模块需要获取到a数据,a数据为需要子模块1调用后端服务进行获取的数据,那么主模块可以将需要获取到a数据的事件注册到消息总线上,并持续监听该事件。

s302:在监听到所述数据事件的数据回应信息后,获取所述数据回应信息。

数据回应信息为由待访问子模块调用后端服务获取,并发送给消息总线的信息。需要理解的是,在本申请实施例中,主模块在消息总线上注册需要的数据事件后,消息总线可以不通知待访问子模块,而是由待访问子模块按照自身执行逻辑不断执行,在某一执行过程调用后端服务获取数据回应信息后,发送给消息总线。

应当理解的是,在注册监听机制中,在消息总线上注册了某一个数据事件后,后续即会持续对该数据事件进行监听。

还需要说明的是,在本申请实施例中,消息总线在收到数据事件的数据回应信息后,可以将数据回应信息存放至全局数据池中,从而使得主模块从全局数据池中获取该数据回应信息。

需要说明的是,在本申请实施例中,主模块在整个微前端系统中具有最高权限,因此在本申请实施例中,主模块在消息总线中进行数据事件的注册时,可以以非鉴权的模式进行注册,即不需要进行权限鉴定而直接在消息总线中进行数据事件的注册,同时可以直接从全局数据池中获取数据。

针对子模块间进行数据访问的情况,本申请实施例中所提供的模块间的数据通信方式可以参见图4所示,包括:

s401:第二子模块向消息总线注册目标服务数据对应的事件,并持续监听。

s402:主模块在监听到第一子模块发到消息总线的目标服务数据后,根据目标服务数据查询出注册有目标服务数据对应的事件的第二子模块。

需要说明的是,在注册监听机制中,在消息总线上注册了某一个事件后,后续才会持续对该事件进行监听。因此在本申请实施例中,第二子模块向消息总线注册了目标服务数据对应的事件后,主模块也可以注册该事件以实现对该事件的监听。需要理解的是,在本申请实施例中,主模块会对所有跨模块访问的数据事件进行注册并监听,从而确保子模块间的数据通信方式可以有效的执行下去。

s403:调用鉴权中心对第二子模块进行鉴权。

在本申请实施例中,主模块在监听到了第一子模块发到消息总线的目标服务数据后,即可对第二子模块进行鉴权,以判断第二子模块是否具有获取该目标服务数据的权限。若鉴权通过,则执行步骤s404和步骤s405;若鉴权不通过,则不执行步骤s404和步骤s405。

需要说明的是,在本申请实施例中,微前端系统可以在页面刷新或者重新加载子模块时,重新获取最新的用户信息和权限信息。此时重新获取的用户信息和权限信息可能发生变化,因此可能存在之前第二子模块进行鉴权不通过,但是在页面刷新或者重新加载子模块后,对第二子模块进行鉴权即通过的情况。

s404:在第二子模块有权限获取该目标服务数据时,向消息总线发送目标服务数据的数据地址信息。

s405:第二子模块在监听到消息总线上的对应该事件的数据地址信息后,按照该数据地址信息获取目标服务数据。

在本申请实施例中,目标服务数据可以被存储到全局数据池中,而主模块发送的数据地址信息即为目标服务数据在全局数据池中的保存地址。

需要说明的是,在本申请实施例中,消息总线、鉴权中心、全局数据池可以全部集成于主模块中,从而便于主模块调用。当然,消息总线、鉴权中心、全局数据池也可以不集成于主模块中,或部分集成于主模块中,本申请实施例中对此不作限定。

还需要说明的是,本申请实施例中所述的后端服务可以为后端微服务。本申请实施例中,前端子模块可以与后端微服务类似,都进行业务解耦,一个子模块对应一个单独的后端微服务。应理解的是,实际应用中业务比较复杂,因此可以设定一个子模块可以调用多个后端微服务,或者可以设定多个子模块可以调用同一个微服务的情况。

通过本申请实施例所提供的微前端系统中模块间的数据通信方法,不同的模块间的通信情况,可以采用不同的通信机制,即可保证通信的效率,也可保证模块间通信过程中数据的安全。

实施例二:

本实施例在实施例一的基础上,以一种在云环境中子模块访问主模块数据的情况为例,对本申请的方案进行示例说明。

参见图5所示,微前端系统包括主模块和多个子模块。主模块中集成有鉴权中心和消息总线,主模块和子模块可通过外部api网关调用各后端微服务。

在本申请实施例中,用户登录后,主模块获取用户信息和权限信息。以下为获取到的用户信息示例:

假设用户选择进入scope2(数据域2),主模块根据上述信息可以得到该用户在scope2下的角色为role2。

主模块获取该role2下的角色权限。角色权限示例如下:

主模块根据上述信息可以得到该用户在role2角色下,对于云主机拥有读取,开机,关机,重启和制作镜像的权限,对于云硬盘拥有读取,挂载,卸载和快照的权限。

假设用户在scope2(数据域2)访问了模块一,首先获取该模块的模块一权限如下:

模块一的模块权限包括主资源云主机权限以及关联资源云硬盘权限,云主机权限包括创建、读取,删除,开机,关机,重启,制作镜像,热升级,更改名字,修改密码的权限,关联资源云硬盘包括挂载和卸载的权限。

取角色权限和模块权限的交集,得到该用户在scope2的模块一中的对资源的操作权限:

即得到对云主机读取,开机,关机,重启和制作镜像的权限,对云硬盘挂载和卸载的权限。

主模块将用户信息和上述确定出的权限信息(即对云主机读取,开机,关机,重启和制作镜像的权限,对云硬盘挂载和卸载的权限)发送给模块一,模块一按照主模块传来的权限信息进行渲染,得到用户在scope2下的模块一显示界面。

实施例三:

基于同一发明构思,本申请实施例中还提供四种微前端系统中模块间的数据通信装置。请参阅图6、图7、图8和图9所示,图6示出了与图1所示的方法一一对应的数据通信装置100,图7示出了与图3所示的方法一一对应的数据通信装置200,图8示出了与图4所示的方法中主模块执行的步骤一一对应的数据通信装置300,图9示出了与图4所示的方法中第二子模块执行的步骤一一对应的数据通信装置400。应理解,数据通信装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。数据通信装置包括至少一个能以软件或固件的形式存储于存储器中或固化在数据通信装置的操作系统中的软件功能模块。具体地:

参见图6所示,数据通信装置100应用于主模块中,包括:第一获取单元101、渲染处理单元102、传递单元103。其中:

第一获取单元101,用于在用户登录时,获取用户的用户信息和权限信息;

渲染处理单元102,用于渲染权限信息对应的主模块页面;主模块页面中包括权限信息所对应的各子模块入口;

传递单元103,用于在接收到针对任一子模块的选择指令时,将用户信息和与子模块相关的权限信息传递给子模块,以使子模块渲染权限信息对应的子模块页面;子模块页面中包括子模块具有的与权限信息对应的各操作入口。

在本申请实施例的一种可行实施方式中,用户信息包括用户在不同数据域下的角色信息;权限信息包括不同角色信息所对应的权限。传递单元103具体用于将选择指令所对应的数据域下的角色信息和角色信息对应的权限,传递给子模块。

在本申请实施例的一种可行实施方式中,渲染处理单元102还用于在传递单元103将用户信息和与子模块相关的权限信息传递给子模块之前,判断已加载的子模块是否为选择指令指示的子模块;若已加载的子模块不是选择指令指示的子模块,卸载已加载的子模块;加载选择指令指示的子模块。

参见图7所示,数据通信装置200应用于主模块中,包括:第一注册单元201和第二获取单元202。其中:

第一注册单元201,用于在消息总线上注册需要的数据事件,并持续监听;数据事件为需要待访问子模块调用后端服务进行处理的事件;

第二获取单元202,用于在监听到数据事件的数据回应信息后,从消息总线上获取数据回应信息;数据回应信息由待访问子模块调用后端服务获取,并发送给消息总线。

在本申请实施例的一种可行实施方式中,第一注册单元201具体用于以非鉴权的方式在消息总线上注册需要的数据事件。

参见图8所示,数据通信装置300应用于主模块中,包括:处理单元301、调用单元302和发送单元303。其中:

处理单元301,用于在监听到第一子模块发到消息总线的目标服务数据后,根据目标服务数据查询出注册有目标服务数据对应的事件的第二子模块;

调用单元302,用于调用鉴权中心对第二子模块进行鉴权;

发送单元303,用于在第二子模块有权限获取目标服务数据时,向消息总线发送目标服务数据的数据地址信息,以使第二子模块在监听到数据地址信息后,按照数据地址信息获取目标服务数据。

在本申请实施例的一种可行实施方式中,处理单元301还用于以非鉴权的方式在消息总线上注册所有跨模块访问的数据事件,并持续监听。

在本申请实施例的一种可行实施方式中,处理单元301还用于将目标服务数据存储到全局数据池中;目标服务数据的数据地址信息为,目标服务数据在全局数据池中的保存地址。

参见图9所示,数据通信装置400应用于子模块中,包括注册监听单元401和第三获取单元402。其中:

注册监听单元401,用于向消息总线注册目标服务数据对应的事件,并持续监听;

第三获取单元402,用于在监听到消息总线上的对应事件的数据地址信息后,按照数据地址信息获取目标服务数据。

需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。

实施例四:

本实施例提供了一种微前端系统,包括主模块以及多个子模块。其中:

所述主模块,可以执行如图1所示的数据通信方法中主模块执行的步骤,以实现主模块到子模块的数据通信;也可以执行如图3所示的数据通信方法,以实现主模块对子模块数据的访问;也可以执行如图4所示的数据通信方法中主模块执行的步骤,以实现子模块间的数据通信;而子模块,则可以实施例一中各图示过程中子模块所执行的步骤。

可以理解,微前端系统还包括有消息总线、鉴权中心、全局数据池等部件。本申请实施例中,消息总线、鉴权中心、全局数据池等部件可以集成到主模块中,例如图5所示。

本实施例还提供了一种可读存储介质,如软盘、光盘、硬盘、闪存、u盘、sd(securedigitalmemorycard,安全数码卡)卡、mmc(multimediacard,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一中任一种的微前端系统中模块间的数据通信方法。在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

在本文中,多个是指两个或两个以上。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。


技术特征:

1.一种微前端系统中模块间的数据通信方法,其特征在于,包括:

在用户登录时,主模块获取所述用户的用户信息和权限信息;

所述主模块渲染所述权限信息对应的主模块页面;所述主模块页面中包括所述权限信息所对应的各子模块入口;

在接收到针对任一子模块的选择指令时,将所述用户信息和与所述子模块相关的权限信息传递给所述子模块,以使所述子模块渲染所述权限信息对应的子模块页面所述子模块页面中包括所述子模块具有的与所述权限信息对应的各操作入口。

2.如权利要求1所述的模块间的数据通信方法,其特征在于,所述用户信息包括所述用户在不同数据域下的角色信息;所述权限信息包括不同角色信息所对应的权限;

将所述用户信息和与所述子模块相关的权限信息传递给所述子模块,包括:

将所述选择指令所对应的数据域下的角色信息和所述角色信息对应的权限,传递给所述子模块。

3.如权利要求1或2所述的模块间的数据通信方法,其特征在于,在将所述用户信息和与所述子模块相关的权限信息传递给所述子模块之前,所述方法还包括:

判断已加载的子模块是否为所述选择指令指示的子模块;

若已加载的子模块不是所述选择指令指示的子模块,卸载所述已加载的子模块;

加载所述选择指令指示的子模块。

4.一种微前端系统中模块间的数据通信方法,其特征在于,应用于主模块访问子模块的过程中,所述方法包括:

所述主模块在消息总线上注册需要的数据事件,并持续监听;所述数据事件为需要待访问子模块调用后端服务进行处理的事件;

在监听到所述数据事件的数据回应信息后,从所述消息总线上获取所述数据回应信息;所述数据回应信息为由所述待访问子模块调用后端服务获取,并发送给所述消息总线的信息。

5.如权利要求4所述的模块间的数据通信方法,其特征在于,所述主模块在消息总线上注册需要的数据事件包括:

所述主模块以非鉴权的方式在消息总线上注册需要的数据事件。

6.一种微前端系统中模块间的数据通信方法,其特征在于,应用于子模块间的数据访问过程中,所述方法包括:

主模块在监听到第一子模块发到消息总线的目标服务数据后,根据所述目标服务数据查询出注册有所述目标服务数据对应的事件的第二子模块;

调用鉴权中心对所述第二子模块进行鉴权;

在所述第二子模块有权限获取所述目标服务数据时,向所述消息总线发送所述目标服务数据的数据地址信息,以使所述第二子模块在监听到所述数据地址信息后,按照所述数据地址信息获取所述目标服务数据。

7.如权利要求6所述的模块间的数据通信方法,其特征在于,所述方法还包括:

所述主模块以非鉴权的方式在消息总线上注册所有跨模块访问的数据事件,并持续监听。

8.如权利要求6或7所述的模块间的数据通信方法,其特征在于,主模块在监听到第一子模块发到消息总线的目标服务数据后,所述方法还包括:

将所述目标服务数据存储到全局数据池中;

所述目标服务数据的数据地址信息为,所述目标服务数据在所述全局数据池中的保存地址。

9.一种微前端系统中模块间的数据通信方法,其特征在于,应用于子模块间的数据访问过程中,所述方法包括:

第二子模块向消息总线注册目标服务数据对应的事件,并持续监听;

在监听到所述消息总线上的对应所述事件的数据地址信息后,按照所述数据地址信息获取所述目标服务数据。

10.一种微前端系统中模块间的数据通信装置,其特征在于,应用于主模块中,包括:第一获取单元、渲染处理单元、传递单元;

所述第一获取单元,用于在用户登录时,获取所述用户的用户信息和权限信息;

所述渲染处理单元,用于渲染所述权限信息对应的主模块页面;所述主模块页面中包括所述权限信息所对应的各子模块入口;

所述传递单元,用于在接收到针对任一子模块的选择指令时,将所述用户信息和与所述子模块相关的权限信息传递给所述子模块,以使所述子模块渲染所述权限信息对应的子模块页面;所述子模块中包括所述子模块具有的与所述权限信息对应的各操作入口。

11.一种微前端系统中模块间的数据通信装置,其特征在于,应用于主模块中,包括:第一注册单元和第二获取单元;

所述第一注册单元,用于在消息总线上注册需要的数据事件,并持续监听;所述数据事件为需要待访问子模块调用后端服务进行处理的事件;

所述第二获取单元,用于在监听到所述数据事件的数据回应信息后,从所述消息总线上获取所述数据回应信息;所述数据回应信息由所述待访问子模块调用后端服务获取,并发送给所述消息总线。

12.一种微前端系统中模块间的数据通信装置,其特征在于,应用于主模块中,包括:处理单元、调用单元和发送单元;

所述处理单元,用于在监听到第一子模块发到消息总线的目标服务数据后,根据所述目标服务数据查询出注册有所述目标服务数据对应的事件的第二子模块;

所述调用单元,用于调用鉴权中心对所述第二子模块进行鉴权;

所述发送单元,用于在所述第二子模块有权限获取所述目标服务数据时,向所述消息总线发送所述目标服务数据的数据地址信息,以使所述第二子模块在监听到所述数据地址信息后,按照所述数据地址信息获取所述目标服务数据。

13.一种微前端系统中模块间的数据通信装置,其特征在于,应用于子模块中,包括:注册监听单元和第三获取单元;

所述注册监听单元,用于向消息总线注册目标服务数据对应的事件,并持续监听;

所述第三获取单元,用于在监听到所述消息总线上的对应所述事件的数据地址信息后,按照所述数据地址信息获取所述目标服务数据。

14.一种微前端系统,其特征在于,包括:主模块以及多个子模块;

所述主模块,用于执行如权利要求1-3任一项所述的数据通信方法,以实现主模块到子模块的数据通信;或用于执行权利要求4或5所述的数据通信方法,以实现主模块对子模块数据的访问;或用于执行权利要求6-8任一项所述的数据通信方法,以实现子模块间的数据通信;

所述子模块,用于执行权利要求9所述的数据通信方法,以实现子模块间的数据通信。

15.一种可读存储介质,其特征在于,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-9中任一项所述的微前端系统中模块间的数据通信方法。

技术总结
本申请提供一种数据通信方法、装置、微前端系统及存储介质,在用户登录时,主模块即获取用户的用户信息和权限信息,进而主模块渲染权限信息对应的主模块页面。主模块页面中包括权限信息所对应的各子模块入口。在接收到针对任一子模块的选择指令时,将用户信息和与子模块相关的权限信息传递给子模块,以使子模块渲染权限信息对应的子模块页面。这样,即通过主模块进行控制,实现了子模块对于主模块的数据的访问,实现了数据从主模块到子模块的可靠传输,一定程度上实现了主模块和子模块之间的可靠性通信。

技术研发人员:梁广玮;孟繁超;杨波
受保护的技术使用者:无锡华云数据技术服务有限公司
技术研发日:2020.01.10
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-59429.html

最新回复(0)