CN113067831B - 通信方法、通信装置及通信系统 - Google Patents
通信方法、通信装置及通信系统 Download PDFInfo
- Publication number
- CN113067831B CN113067831B CN202110330712.XA CN202110330712A CN113067831B CN 113067831 B CN113067831 B CN 113067831B CN 202110330712 A CN202110330712 A CN 202110330712A CN 113067831 B CN113067831 B CN 113067831B
- Authority
- CN
- China
- Prior art keywords
- event
- application
- custom
- source application
- sub
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 157
- 238000004891 communication Methods 0.000 title claims abstract description 156
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000004913 activation Effects 0.000 claims abstract description 11
- 238000012544 monitoring process Methods 0.000 claims description 64
- 230000006870 function Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 11
- 230000003213 activating effect Effects 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 10
- 238000001994 activation Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种通信方法、通信装置及通信系统,涉及信息安全技术领域。该通信方法包括注册自定义事件;接收目标应用订阅自定义事件的事件订阅通知;根据事件订阅通知通过事件总线实例发布自定义事件及传递数据信息;接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知。本发明基于事件总线通过发布和订阅事件传递数据,提高微前端模式下应用间通信的安全性;对数据信息的格式和长度及应用类型和数量无限制,扩大了微前端模式下应用间通信的适用场景。子应用在初次激活后存储事件总线实例,可实时响应源应用通过事件总线实例发布的自定义事件,提高微前端模式下应用间通信的时效性。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及通信方法、通信装置及通信系统。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着WEB开发技术的不断发展及页面性能、用户体验的不断追求,WEB开发的架构模式也由传统的多页面应用(MPA)逐渐演变为单页面应用(SPA)。随着各类React、Vue和Angular等常见前端开发框架的出现、以及NodeJS、Webpack等前端工程化工具的不断出现,SPA开发模式得到了快速发展并逐渐流行开来。SPA开发模式下,随着应用规模的不断发展,单体应用在团队间开发协作困难、代码仓库维护效率低下、工程化编译构建耗时过长及应用变更部署灵活度低等问题逐渐显现。
随着微服务理念的不断发展,将微服务理念应用于浏览器端的微前端架构应运而生,微前端(Micro-Frontends)是一种类似于微服务的架构,将微服务的理念应用于浏览器端,即Web应用由单体应用转变为多个小型前端应用(子应用)聚合为一的应用。但是,由于微前端架构下主应用及子应用的开发、部署都是独立的,因此主应用和所有子应用彼此间是相互隔离的,这种隔离性导致应用间无法进行消息通信,进而对应用系统间的数据同步及安全运行存在严重的影响,所以实现应用间的消息通信是保证和实现微前端模式在生产环境安全运行亟需解决的问题之一。
目前常见的技术方案主要是基于URL(Uniform Resource Locator,统一资源定位器)参数传递的消息传递,微前端模式下子应用的激活和切换主要是通过监听URL的改变实现。该方案通过将需要传递的消息数据作为参数与URL进行拼接,在子应用激活或切换时通过解析URL获取相关信息。该方案实现起来虽然相对简单,但该方案通过将参数拼接值URL上,URL具有的用户可见性会导致敏感数据暴露,所以该方案对于一些非敏感或安全要求性不高的信息数据的传递和同步具有一定的应用场景,而对于敏感性或安全性较高的信息数据传递则受到较大的限制,容易导致敏感数据信息安全性问题。其次,由于通过URL参数数据信息传递,过多的数据拼接可能造成URL的过度冗长,所以数据信息传递大小存在限制;通过URL参数对传递数据的格式也具有一定的限制和要求。最后,由于微前端模式下通过URL的改变激活和切换子应用,所以通过URL进行参数传递仅能实现应用间的两两通信,通过URL传递信息在多应用和跨应用通信上存在一定的限制。
发明内容
本发明实施例提供一种通信方法,应用于源应用,用以提高微前端模式下应用间通信的安全性及扩大微前端模式下应用间通信的适用场景,该通信方法包括:
注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
接收目标应用在监听到源应用注册自定义事件后订阅自定义事件的事件订阅通知;
根据目标应用的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知;
通信方法还包括:
主应用根据监听到的URL变化激活和切换子应用。
本发明实施例还提供一种通信装置,应用于源应用,用以提高微前端模式下应用间通信的安全性及扩大微前端模式下应用间通信的适用场景,该通信装置包括:
事件注册模块,用于注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
订阅接收模块,用于接收目标应用在监听到源应用注册自定义事件后订阅自定义事件的事件订阅通知;
事件发布模块,用于根据目标应用的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
接收通知接收模块,用于接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知;
还包括:
激活切换模块,用于主应用根据监听到的URL变化激活和切换子应用。
本发明实施例还提供一种通信方法,应用于目标应用,用以提高微前端模式下应用间通信的安全性及扩大微前端模式下应用间通信的适用场景,该通信方法包括:
在监听到源应用注册自定义事件后,订阅源应用注册的自定义事件及反馈事件订阅通知至源应用;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
监听源应用通过主应用建立的事件总线实例发布的自定义事件;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
在监听到源应用通过主应用建立的事件总线实例发布的自定义事件后,接收源应用传递的数据信息及反馈数据信息接收通知至源应用;
通信方法还包括:
主应用根据监听到的URL变化激活和切换子应用。
本发明实施例还提供一种通信装置,应用于目标应用,用以提高微前端模式下应用间通信的安全性及扩大微前端模式下应用间通信的适用场景,该通信装置包括:
事件订阅模块,用于在监听到源应用注册自定义事件后,订阅源应用注册的自定义事件及反馈事件订阅通知至源应用;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
事件发布监听模块,用于监听源应用通过主应用建立的事件总线实例发布的自定义事件;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
数据接收反馈模块,用于在监听到源应用通过主应用建立的事件总线实例发布的自定义事件后,接收源应用传递的数据信息及反馈数据信息接收通知至源应用;
还包括:
激活切换模块,用于主应用根据监听到的URL变化激活和切换子应用。
本发明实施例还提供一种通信方法,用以提高微前端模式下应用间通信的安全性及扩大微前端模式下应用间通信的适用场景,该通信方法包括:
源应用注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
目标应用在监听到源应用注册自定义事件后,订阅源应用注册的自定义事件及反馈事件订阅通知至源应用;
源应用接收目标应用在监听到源应用注册自定义事件后订阅自定义事件的事件订阅通知;
源应用根据目标应用的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
目标应用监听源应用通过主应用建立的事件总线实例发布的自定义事件;
目标应用在监听到源应用通过主应用建立的事件总线实例发布的自定义事件后,接收源应用传递的数据信息及反馈数据信息接收通知至源应用;
源应用接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知;
通信方法还包括:
主应用根据监听到的URL变化激活和切换子应用。
本发明实施例还提供一种通信系统,用以提高微前端模式下应用间通信的安全性及扩大微前端模式下应用间通信的适用场景,该通信系统包括源应用及目标应用。其中,
源应用用于注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
目标应用用于在监听到源应用注册自定义事件后,订阅源应用注册的自定义事件及反馈事件订阅通知至源应用;
源应用还用于接收目标应用在监听到源应用注册自定义事件后订阅自定义事件的事件订阅通知;
源应用还用于根据目标应用的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
目标应用还用于监听源应用通过主应用建立的事件总线实例发布的自定义事件;
目标应用还用于在监听到源应用通过主应用建立的事件总线实例发布的自定义事件后,接收源应用传递的数据信息及反馈数据信息接收通知至源应用;
源应用还用于接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知;
还包括:
激活切换模块,用于主应用根据监听到的URL变化激活和切换子应用。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述通信方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述通信方法的计算机程序。
本发明实施例中,注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;接收目标应用在监听到源应用注册自定义事件后订阅自定义事件的事件订阅通知;根据目标应用的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知。本发明实施例基于事件总线通过发布和订阅事件传递数据,提高微前端模式下应用间通信的安全性;此外对数据信息的格式和长度及应用类型和数量无限制,扩大了微前端模式下应用间通信的适用场景。另外,子应用在初次激活后存储事件总线实例,后续可实时响应源应用通过事件总线实例发布的自定义事件,提高微前端模式下应用间通信的时效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例提供的通信方法的实现流程图;
图2为本发明实施例提供的通信装置的功能模块图;
图3为本发明实施例提供的通信方法的另一实现流程图;
图4为本发明实施例提供的通信装置的另一功能模块图;
图5为本发明实施例提供的通信方法的又一实现流程图;
图6为本发明实施例提供的通信系统的结构框图;
图7为本发明实施例提供的通信方法的再一实现流程图;
图8为本发明实施例提供的通信装置的再一功能模块图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
图1示出了本发明实施例提供的通信方法的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
如图1所示,通信方法,应用于源应用601,其包括:
步骤101,注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用602的事件订阅对象;
步骤102,接收目标应用602在监听到源应用601注册自定义事件后订阅自定义事件的事件订阅通知;
步骤103,根据目标应用602的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
步骤104,接收目标应用602监听源应用601发布自定义事件及接收数据信息后反馈的数据信息接收通知。
事件总线是一种基于观察者模式(发布-订阅)的事件中心实例,提供事件发布、订阅、删除等功能,进而允许不同组件或应用间进行通信。在微前端架构下主要包括主应用及子应用。微前端模式下应用间的通信包括主应用与子应用间的通信及子应用与子应用间的通信。此处为描述方便,我们将传递数据消息的应用称为源应用601(注册事件和发布事件的应用),将接收数据信息的应用称为目标应用602(订阅事件的应用)。
其中,微前端模式下应用间在进行通信前,主应用首先建立事件总线实例(EventBus),该事件总线实例具备事件注册(register),事件订阅(subscribe),事件发布(release)及事件维护功能,并完成公共事件(语言切换及应用主题切换等)的注册。另外,主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件(如事件注册)。
在完成上述准备工作后,源应用601注册自定义事件(Custom Event)。具体的,源应用601基于事件总线实例的事件注册功能注册自定义事件。其中,自定义事件包括事件名称(Event Name)及事件订阅对象(TargeArr),事件订阅对象反映订阅自定义事件的目标应用602。目标应用602的数量可以是一个,也可以是多个。
EventBus.Register('customEventName',['target1','target2',...])
进而,目标应用602监听源应用601注册自定义事件,并在监听到源应用601注册自定义事件后订阅源应用601注册的自定义事件,反馈订阅自定义事件的事件订阅通知至源应用601。同时进行事件响应逻辑的定义,例如调用相关处理函数:
EventBus.Subscribe('eventName',callBackFunction)
源应用601接收目标应用602反馈的订阅自定义事件的事件订阅通知后,根据该事件订阅通知通过主应用建立的事件总线实例发布自定义事件,源应用601在发布自定义事件的同时传递数据信息。目标应用602监听源应用601发布自定义事件,在监听到源应用601发布自定义事件后接收源应用601传递的数据信息,在接收数据信息后反馈数据信息接收通知至源应用601,以此实现源应用601与目标应用602之间数据信息的通信。
在本发明实施例中,注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用602的事件订阅对象;接收目标应用602在监听到源应用601注册自定义事件后订阅自定义事件的事件订阅通知;根据目标应用602的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;接收目标应用602监听源应用601发布自定义事件及接收数据信息后反馈的数据信息接收通知。本发明实施例基于事件总线通过发布和订阅事件传递数据,提高微前端模式下应用间通信的安全性;此外对数据信息的格式和长度及应用类型和数量无限制,扩大了微前端模式下应用间通信的适用场景。另外,子应用在初次激活后存储事件总线实例,后续可实时响应源应用601通过事件总线实例发布的自定义事件,提高微前端模式下应用间通信的时效性。
本发明实施例还提供一种应用于源应用601的通信装置,如下面的实施例所述。由于这些装置解决问题的原理与应用于源应用601的通信方法相似,因此这些装置的实施可以参见方法的实施,重复之处不再赘述。
图2示出了本发明实施例提供的通信的功能模块,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
参考图2,所述通信所包含的各个模块用于执行图1对应实施例中的各个步骤,具体请参阅图1以及图1对应实施例中的相关描述,此处不再赘述。本发明实施例中,通信装置应用于源应用601,所述通信装置包括事件注册模块201、订阅接收模块202、事件发布模块203及接收通知接收模块204。
事件注册模块201,用于注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用602的事件订阅对象。
订阅接收模块202,用于接收目标应用602在监听到源应用601注册自定义事件后订阅自定义事件的事件订阅通知。
事件发布模块203,用于根据目标应用602的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件。
接收通知接收模块204,用于接收目标应用602监听源应用601发布自定义事件及接收数据信息后反馈的数据信息接收通知。
在本发明实施例中,事件注册模块201注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用602的事件订阅对象;订阅接收模块202接收目标应用602在监听到源应用601注册自定义事件后订阅自定义事件的事件订阅通知;事件发布模块203根据目标应用602的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;接收通知接收模块204接收目标应用602监听源应用601发布自定义事件及接收数据信息后反馈的数据信息接收通知。本发明实施例基于事件总线通过发布和订阅事件传递数据,提高微前端模式下应用间通信的安全性;此外对数据信息的格式和长度及应用类型和数量无限制,扩大了微前端模式下应用间通信的适用场景。另外,子应用在初次激活后存储事件总线实例,后续可实时响应源应用601通过事件总线实例发布的自定义事件,提高微前端模式下应用间通信的时效性。
图3示出了本发明实施例提供的通信方法的另一实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
如图3所示,通信方法,应用于目标应用602。通信方法包括:
步骤301,在监听到源应用601注册自定义事件后,订阅源应用601注册的自定义事件及反馈事件订阅通知至源应用601;自定义事件包括反映订阅自定义事件的目标应用602的事件订阅对象;
步骤302,监听源应用601通过主应用建立的事件总线实例发布的自定义事件;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
步骤303,在监听到源应用601通过主应用建立的事件总线实例发布的自定义事件后,接收源应用601传递的数据信息及反馈数据信息接收通知至源应用601。
事件总线是一种基于观察者模式(发布-订阅)的事件中心实例,提供事件发布、订阅、删除等功能,进而允许不同组件或应用间进行通信。在微前端架构下主要包括主应用及子应用。微前端模式下应用间的通信包括主应用与子应用间的通信及子应用与子应用间的通信。此处为描述方便,我们将传递数据消息的应用称为源应用601(注册事件和发布事件的应用),将接收数据信息的应用称为目标应用602(订阅事件的应用)。
其中,微前端模式下应用间在进行通信前,主应用首先建立事件总线实例(EventBus),该事件总线实例具备事件注册(register),事件订阅(subscribe),事件发布(release)及事件维护功能,并完成公共事件(语言切换及应用主题切换等)的注册。另外,主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件(如事件注册)。
在完成上述准备工作后,源应用601注册自定义事件(Custom Event)。具体的,源应用601基于事件总线实例的事件注册功能注册自定义事件。其中,自定义事件包括事件名称(Event Name)及事件订阅对象(TargeArr),事件订阅对象反映订阅自定义事件的目标应用602。目标应用602的数量可以是一个,也可以是多个。
EventBus.Register('customEventName',['target1','target2',...])
进而,目标应用602监听源应用601注册自定义事件,并在监听到源应用601注册自定义事件后订阅源应用601注册的自定义事件,反馈订阅自定义事件的事件订阅通知至源应用601。同时进行事件响应逻辑的定义,例如调用相关处理函数:
EventBus.Subscribe('eventName',callBackFunction)
源应用601接收目标应用602反馈的订阅自定义事件的事件订阅通知后,根据该事件订阅通知通过主应用建立的事件总线实例发布自定义事件,源应用601在发布自定义事件的同时传递数据信息。目标应用602监听源应用601发布自定义事件,在监听到源应用601发布自定义事件后接收源应用601传递的数据信息,在接收数据信息后反馈数据信息接收通知至源应用601,以此实现源应用601与目标应用602之间数据信息的通信。
在本发明实施例中,在监听到源应用601注册自定义事件后,订阅源应用601注册的自定义事件及反馈事件订阅通知至源应用601,监听源应用601通过主应用建立的事件总线实例发布的自定义事件,在监听到源应用601通过主应用建立的事件总线实例发布的自定义事件后,接收源应用601传递的数据信息及反馈数据信息接收通知至源应用601。本发明实施例基于事件总线通过发布和订阅事件传递数据,提高微前端模式下应用间通信的安全性;此外对数据信息的格式和长度及应用类型和数量无限制,扩大了微前端模式下应用间通信的适用场景。另外,子应用在初次激活后存储事件总线实例,后续可实时响应源应用601通过事件总线实例发布的自定义事件,提高微前端模式下应用间通信的时效性。
本发明实施例还提供一种应用于目标应用602的通信装置,如下面的实施例所述。由于这些装置解决问题的原理与应用于目标应用602的通信方法相似,因此这些装置的实施可以参见方法的实施,重复之处不再赘述。
图4示出了本发明实施例提供的通信装置的另一功能模块,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
参考图4,所述通信装置所包含的各个模块用于执行图3对应实施例中的各个步骤,具体请参阅图3以及图3对应实施例中的相关描述,此处不再赘述。本发明实施例中,通信装置应用于目标应用602,所述通信装置包括事件订阅模块401、事件发布监听模块402及数据接收反馈模块403。
事件订阅模块401,用于在监听到源应用601注册自定义事件后,订阅源应用601注册的自定义事件及反馈事件订阅通知至源应用601;自定义事件包括反映订阅自定义事件的目标应用602的事件订阅对象。
事件发布监听模块402,用于监听源应用601通过主应用建立的事件总线实例发布的自定义事件;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件。
数据接收反馈模块403,用于在监听到源应用601通过主应用建立的事件总线实例发布的自定义事件后,接收源应用601传递的数据信息及反馈数据信息接收通知至源应用601。
在本发明实施例中,事件订阅模块401在监听到源应用601注册自定义事件后,订阅源应用601注册的自定义事件及反馈事件订阅通知至源应用601,监听源应用601通过主应用建立的事件总线实例发布的自定义事件,事件发布监听模块402在监听到源应用601通过主应用建立的事件总线实例发布的自定义事件后,数据接收反馈模块403接收源应用601传递的数据信息及反馈数据信息接收通知至源应用601。本发明实施例基于事件总线通过发布和订阅事件传递数据,提高微前端模式下应用间通信的安全性;此外对数据信息的格式和长度及应用类型和数量无限制,扩大了微前端模式下应用间通信的适用场景。另外,子应用在初次激活后存储事件总线实例,后续可实时响应源应用601通过事件总线实例发布的自定义事件,提高微前端模式下应用间通信的时效性。
图5示出了本发明实施例提供的通信方法的又一实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
如图5所示,通信方法,其包括:
步骤101,源应用601注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用602的事件订阅对象;
步骤201,目标应用602在监听到源应用601注册自定义事件后,订阅源应用601注册的自定义事件及反馈事件订阅通知至源应用601;
步骤102,源应用601接收目标应用602在监听到源应用601注册自定义事件后订阅自定义事件的事件订阅通知;
步骤103,源应用601根据目标应用602的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
步骤202,目标应用602监听源应用601通过主应用建立的事件总线实例发布的自定义事件;
步骤203,目标应用602在监听到源应用601通过主应用建立的事件总线实例发布的自定义事件后,接收源应用601传递的数据信息及反馈数据信息接收通知至源应用601;
步骤104,源应用601接收目标应用602监听源应用601发布自定义事件及接收数据信息后反馈的数据信息接收通知。
本发明实施例提供的通信方法的具体实施过程,具体请参见上述图1及其对应实施例,以及图3及其对应实施例的描述,此处不在详细阐述。
本发明实施例还提供一种通信系统,如下面的实施例所述。由于这些系统解决问题的原理与通信方法相似,因此这些系统的实施可以参见方法的实施,重复之处不再赘述。
图6示出了本发明实施例提供的通信系统的功能模块,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
参考图6,所述通信系统所包含的各个模块用于执行图5对应实施例中的各个步骤,具体请参阅图5以及图5对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述通信系统包括源应用601及目标应用602。其中:
源应用601用于注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用602的事件订阅对象;
目标应用602用于在监听到源应用601注册自定义事件后,订阅源应用601注册的自定义事件及反馈事件订阅通知至源应用601;
源应用601还用于接收目标应用602在监听到源应用601注册自定义事件后订阅自定义事件的事件订阅通知;
源应用601还用于根据目标应用602的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
目标应用602还用于监听源应用601通过主应用建立的事件总线实例发布的自定义事件;
目标应用602还用于在监听到源应用601通过主应用建立的事件总线实例发布的自定义事件后,接收源应用601传递的数据信息及反馈数据信息接收通知至源应用601;
源应用601还用于接收目标应用602监听源应用601发布自定义事件及接收数据信息后反馈的数据信息接收通知。
本发明实施例提供的通信方法的具体实施过程,具体请参见上述图2及其对应实施例,以及图4及其对应实施例的描述,此处不在详细阐述。
图7示出了本发明实施例提供的通信方法的再一实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,事件总线实例至少具备事件注册、事件订阅、事件发布及公共事件注册功能,源应用601包括子应用。为了进一步提高微前端模式下应用间通信的安全性及时效性,如图7所示,通信方法,在上述方法步骤的基础上,通信方法还包括:
步骤701,在源应用601为子应用时通过事件总线实例的事件注册功能注册自定义事件。
鉴于子应用被主应用初次激活后存储了事件总线实例,此处在源应用601为子应用时,可以通过存储的事件总线实例的事件注册功能注册自定义事件,以提高微前端模式下应用间通信的安全性及时效性。
在本发明的一实施例中,为了提高微前端模式下应用间通信切换的灵活性,如图7所示,通信方法,在上述方法步骤的基础上,通信方法还包括:
步骤702,主应用根据监听到的URL变化激活和切换子应用。
主应用在激活和切换子应用时监听URL变化,并基于监听到的URL变化激活和切换子应用,以提高微前端模式下应用间通信切换的灵活性。
在本发明实施例中,在源应用601为子应用时通过事件总线实例的事件注册功能注册自定义事件,能够进一步提高微前端模式下应用间通信的安全性及时效性;主应用根据监听到的URL变化激活和切换子应用,能够提高微前端模式下应用间通信切换的灵活性。
图8示出了本发明实施例提供的通信装置的再一功能模块,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,事件总线实例至少具备事件注册、事件订阅、事件发布及公共事件注册功能,源应用601包括子应用。为了进一步提高微前端模式下应用间通信的安全性及时效性,参考图8,所述通信装置的所包含的各个模块用于执行图7对应实施例中的各个步骤,具体请参阅图7以及图7对应实施例中的相关描述,此处不再赘述。本发明实施例中,在上述功能模块的基础上,所述通信装置还包括子应用事件注册模块801。
子应用事件注册模块801,用于在源应用601为子应用时通过事件总线实例的事件注册功能注册自定义事件。
在本发明的一实施例中,为了提高微前端模式下应用间通信切换的灵活性,在上述功能模块的基础上,所述通信装置还包括激活切换模块802。
激活切换模块802,用于主应用根据监听到的URL变化激活和切换子应用。
在本发明实施例中,在源应用601为子应用时通过事件总线实例的事件注册功能注册自定义事件,能够进一步提高微前端模式下应用间通信的安全性及时效性;主应用根据监听到的URL变化激活和切换子应用,能够提高微前端模式下应用间通信切换的灵活性。
需要说明的是,本发明实施例提供的通信方法、通信装置及通信系统,可用于金融领域,还可用于除金融领域之外的其它应用领域,本发明对通信方法、通信装置及通信系统的应用领域不作限定。
本发明基于观察者软件设计模式,通过设计和实现事件总线实例,同时通过主应用将该事件总线实例在子应用的激活和切换过程中进行共享;事件总线实例自身提供事件订阅、发布和退订等功能,进而实现主、子应用通过事件总线进行数据信息的传递。本发明有效解决了微前端模式下应用间通讯问题,同时由于本发明通过发布和订阅事件进行数据信息的传递,相较于基于URL进行数据传递,本发明在数据传递的安全性、便捷性、数据信息结构复杂性及多应用和跨应用通讯上具有一定的优势。
本发明提供了微前端模式下应用间的一种安全、快捷的消息通讯方式,实现应用间的消息和数据的有效同步,保证了微前端模式下应用系统的安全运行。本发明基于观察者模式支持各应用对相关事件的自主发布、订阅、退订等功能,实现应用对相关事件的按需使用。本发明通过应用间的内部消息通讯方式,相较于URL参数传输等方式有效避免了敏感数据的泄露风险,消息通讯过程中数据安全保护的系数更高。
值得注意的是,现有技术中的事件总线:window的Custom Event对象确实提供了一种自定义事件的派发和监听功能,但是由于非浏览器环境下不存在window对象,所以这种基于window对象的事件总线无法适用于非浏览器环境下的通信,如应用需要进行服务端渲染时,由于应用页面的部分生命周期需要在服务端进行,以Vue应用为例,beforecrate和created生命周期函数会在服务端渲染期间执行,若在上述两个生命周期环境中需要执行相关事件的订阅和发布逻辑时,基于window对象的事件总线是无法进行的,所以基于window对象的事件总线在使用场景范围上存在一定的不足。本发明基于原生JS实现的事件总线,不受限于特定对象(如window)和特定运行场景(浏览器端、node服务端)。
其次,现有技术中微前端模式下应用间通信均是在子应用激活过程中通过传递的参数属性进行通讯,不涉及激活后的应用通讯途径。另外,现有技术中微前端模式下应用间通信模式是以主应用(管理控制台应用)作为一个中转站,源应用601在发布事件到目标应用602后,只有在目标应用602被激活后(处于活动状态)才会进行事件的响应。与现有技术不同的是,本发明通过事件总线实例共享的方式(即主应用在初次激活子应用后将事件总线实例共享被初次激活子应用),当子应用首次激活后且保存了事件总线实例后可以实时响应任何应用通过事件总线发布的自定义事件,相比于现有技术,在消息的及时安全同步方面具有更好的表现。假设存在这样一种情形,源应用601和目标应用602都已经被主应用加载,当源应用601发布相关主题事件,但目标应用602未处于活动状态,此时目标应用602无法进行响应,但是若此时用户退出了系统,则目标应用602最终无法对源应用601发出的信息进行同步,所以现有技术在信息同步方面仍存在一定的安全隐患。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述通信方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述通信方法的计算机程序。
综上所述,本发明实施例中,注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用602的事件订阅对象;接收目标应用602在监听到源应用601注册自定义事件后订阅自定义事件的事件订阅通知;根据目标应用602的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;接收目标应用602监听源应用601发布自定义事件及接收数据信息后反馈的数据信息接收通知。本发明实施例基于事件总线通过发布和订阅事件传递数据,提高微前端模式下应用间通信的安全性;此外对数据信息的格式和长度及应用类型和数量无限制,扩大了微前端模式下应用间通信的适用场景。另外,子应用在初次激活后存储事件总线实例,后续可实时响应源应用601通过事件总线实例发布的自定义事件,提高微前端模式下应用间通信的时效性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种通信方法,其特征在于,应用于源应用,包括:
注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
接收目标应用在监听到源应用注册自定义事件后订阅自定义事件的事件订阅通知;
根据目标应用的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知;
通信方法还包括:
主应用根据监听到的URL变化激活和切换子应用。
2.一种通信装置,其特征在于,应用于源应用,包括:
事件注册模块,用于注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
订阅接收模块,用于接收目标应用在监听到源应用注册自定义事件后订阅自定义事件的事件订阅通知;
事件发布模块,用于根据目标应用的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
接收通知接收模块,用于接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知;
还包括:
激活切换模块,用于主应用根据监听到的URL变化激活和切换子应用。
3.一种通信方法,其特征在于,应用于目标应用,包括:
在监听到源应用注册自定义事件后,订阅源应用注册的自定义事件及反馈事件订阅通知至源应用;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
监听源应用通过主应用建立的事件总线实例发布的自定义事件;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
在监听到源应用通过主应用建立的事件总线实例发布的自定义事件后,接收源应用传递的数据信息及反馈数据信息接收通知至源应用;
通信方法还包括:
主应用根据监听到的URL变化激活和切换子应用。
4.一种通信装置,其特征在于,应用于目标应用,包括:
事件订阅模块,用于在监听到源应用注册自定义事件后,订阅源应用注册的自定义事件及反馈事件订阅通知至源应用;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
事件发布监听模块,用于监听源应用通过主应用建立的事件总线实例发布的自定义事件;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
数据接收反馈模块,用于在监听到源应用通过主应用建立的事件总线实例发布的自定义事件后,接收源应用传递的数据信息及反馈数据信息接收通知至源应用;
还包括:
激活切换模块,用于主应用根据监听到的URL变化激活和切换子应用。
5.一种通信方法,其特征在于,包括:
源应用注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
目标应用在监听到源应用注册自定义事件后,订阅源应用注册的自定义事件及反馈事件订阅通知至源应用;
源应用接收目标应用在监听到源应用注册自定义事件后订阅自定义事件的事件订阅通知;
源应用根据目标应用的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
目标应用监听源应用通过主应用建立的事件总线实例发布的自定义事件;
目标应用在监听到源应用通过主应用建立的事件总线实例发布的自定义事件后,接收源应用传递的数据信息及反馈数据信息接收通知至源应用;
源应用接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知;
通信方法还包括:
主应用根据监听到的URL变化激活和切换子应用。
6.一种通信系统,其特征在于,包括源应用及目标应用,其中:
源应用用于注册自定义事件;自定义事件包括反映订阅自定义事件的目标应用的事件订阅对象;
目标应用用于在监听到源应用注册自定义事件后,订阅源应用注册的自定义事件及反馈事件订阅通知至源应用;
源应用还用于接收目标应用在监听到源应用注册自定义事件后订阅自定义事件的事件订阅通知;
源应用还用于根据目标应用的事件订阅通知,通过主应用建立的事件总线实例发布自定义事件及传递数据信息;主应用在初次激活子应用时将事件总线实例共享给被激活的子应用;被激活的子应用存储事件总线实例及订阅公共事件;
目标应用还用于监听源应用通过主应用建立的事件总线实例发布的自定义事件;
目标应用还用于在监听到源应用通过主应用建立的事件总线实例发布的自定义事件后,接收源应用传递的数据信息及反馈数据信息接收通知至源应用;
源应用还用于接收目标应用监听源应用发布自定义事件及接收数据信息后反馈的数据信息接收通知;
还包括:
激活切换模块,用于主应用根据监听到的URL变化激活和切换子应用。
7.如权利要求1或3或5所述的通信方法,其特征在于,事件总线实例至少具备事件注册、事件订阅、事件发布及公共事件注册功能,源应用包括子应用,通信方法还包括:
在源应用为子应用时通过事件总线实例的事件注册功能注册自定义事件。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1或3或5或7任一所述通信方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1或3或5或7任一所述通信方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110330712.XA CN113067831B (zh) | 2021-03-26 | 2021-03-26 | 通信方法、通信装置及通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110330712.XA CN113067831B (zh) | 2021-03-26 | 2021-03-26 | 通信方法、通信装置及通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113067831A CN113067831A (zh) | 2021-07-02 |
CN113067831B true CN113067831B (zh) | 2022-11-04 |
Family
ID=76564019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110330712.XA Active CN113067831B (zh) | 2021-03-26 | 2021-03-26 | 通信方法、通信装置及通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113067831B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113962650A (zh) * | 2021-10-20 | 2022-01-21 | 北京沃东天骏信息技术有限公司 | 一种信息处理方法及装置、存储介质 |
CN115580642A (zh) * | 2022-09-21 | 2023-01-06 | 北京智能建筑科技有限公司 | 应用间的通信方法及装置、非易失性存储介质、处理器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968586A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 分布式事务处理方法及装置 |
CN112217847A (zh) * | 2019-07-11 | 2021-01-12 | 北京京东尚科信息技术有限公司 | 微服务平台及其实现方法、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103891249B (zh) * | 2011-08-18 | 2017-12-12 | 瑞典爱立信有限公司 | 用于确定事件实例的方法和设备 |
US10445157B2 (en) * | 2017-05-18 | 2019-10-15 | Sap Se | Concurrent services caching |
-
2021
- 2021-03-26 CN CN202110330712.XA patent/CN113067831B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968586A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 分布式事务处理方法及装置 |
CN112217847A (zh) * | 2019-07-11 | 2021-01-12 | 北京京东尚科信息技术有限公司 | 微服务平台及其实现方法、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
"微前端化微应用管理控制台";刘一田等;《计算机系统应用》;20200915(第09期);第3.2-3.3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN113067831A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113067831B (zh) | 通信方法、通信装置及通信系统 | |
US9612959B2 (en) | Distributed and optimized garbage collection of remote and exported table handle links to update propagation graph nodes | |
CN112527528A (zh) | 基于消息队列的数据传输方法、装置及存储介质 | |
CN102591724B (zh) | 消息交互方法及装置 | |
EP3837604A1 (en) | In situ triggered function as a service within a service mesh | |
CN102035893A (zh) | 一种服务器主动推送数据的方法和系统 | |
WO2017143909A1 (zh) | 网页中的数据处理方法、装置及系统 | |
CN101808051B (zh) | 应用整合网关及其控制方法 | |
CN102314510A (zh) | 一种浏览器控件执行方法及系统 | |
CN112363857B (zh) | 微前端架构的应用系统、同步方法、存储介质和设备 | |
CN101917394B (zh) | 在手机设备上进行数据共享的中间件系统及工作方法 | |
CN102955717A (zh) | 在分布式消息处理系统中的消息管理设备和方法 | |
CN102981911A (zh) | 一种分布式消息处理系统及其中的设备和方法 | |
CN105677536A (zh) | 一种任务消息的实现方法及实现该任务消息的任务系统 | |
CN113965628B (zh) | 消息调度方法、服务器和存储介质 | |
CN108780409B (zh) | 通用通知流水线 | |
CN114217921A (zh) | 一种分布式并行计算方法、计算设备及存储介质 | |
CN107391274A (zh) | 离线消息的处理方法及装置 | |
CN110569135A (zh) | 一种基于发布订阅模式的进程间通信方法及系统 | |
CN113556389A (zh) | 一种rpc式的云边端通信方法、系统及存储介质 | |
Osrael et al. | Axis2-based replication middleware forweb services | |
CN115543574A (zh) | 应用于视频类数字藏品生成中的任务调度方法和系统 | |
CN115361382A (zh) | 基于数据群组的数据处理方法、装置、设备和存储介质 | |
CN115378937A (zh) | 任务的分布式并发方法、装置、设备和可读存储介质 | |
CN114020453A (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 |