CN111475140A - 基于事件驱动架构的App组件化方法及事件驱动架构 - Google Patents
基于事件驱动架构的App组件化方法及事件驱动架构 Download PDFInfo
- Publication number
- CN111475140A CN111475140A CN202010201223.XA CN202010201223A CN111475140A CN 111475140 A CN111475140 A CN 111475140A CN 202010201223 A CN202010201223 A CN 202010201223A CN 111475140 A CN111475140 A CN 111475140A
- Authority
- CN
- China
- Prior art keywords
- component
- action
- event
- channel associated
- driven architecture
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种基于事件驱动架构的App组件化方法,基于事件驱动架构,事件驱动架构包括:事件中介和事件通道,该方法包括:事件中介在接收到第一组件发布的组件动作的情况下,将组件动作转发给与第一组件关联的事件通道;与第一组件关联的事件通道,查找与组件动作对应的第二组件,第二组件与第一组件不同;与第一组件关联的事件通道,在查找到第二组件的情况下,将组件动作发送给第二组件,以使第二组件根据组件动作执行相应的操作。在本申请中,通过以上方式可以,降低不同组件之间的依赖,提高开发效率。
Description
技术领域
本申请涉及App技术领域,特别涉及一种基于事件驱动架构的App 组件化方法及事件驱动架构。
背景技术
传统的App(Application,应用软件)一般是基于单片式架构开发, 但是单片式架构存在使整个App内部的代码没有分组、分层等划分,代 码之间相互紧耦合的问题,导致在修改一处代码时往往会牵动很多处代 码的修改,开发效率低。
为了提高开发效率,通常的解决方案是进行App的组件化,以降低 代码间的耦合。
但是,在进行App的组件化时,如何较大程度的降低组件之间的依 赖成为问题。
发明内容
为解决上述技术问题,本申请实施例提供一种基于事件驱动架构的App 组件化方法及事件驱动架构,以达到降低不同组件之间的依赖,提高开发 效率的目的,技术方案如下:
一种基于事件驱动架构的App组件化方法,基于事件驱动架构,所述事 件驱动架构包括:事件中介和事件通道,该方法包括:
所述事件中介在接收到第一组件发布的组件动作的情况下,将所述组件 动作转发给与所述第一组件关联的事件通道,所述与所述第一组件关联的事 件通道为所述事件驱动架构包括的事件通道中的其中一个事件通道;
所述与所述第一组件关联的事件通道,查找与所述组件动作对应的第二 组件,所述第二组件与所述第一组件不同;
所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况 下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件 动作执行相应的操作。
优选的,所述组件动作为路由动作,所述第二组件为路由器组件;
所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况 下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件 动作执行相应的操作,包括:
所述与所述第一组件关联的事件通道,在查找到所述路由器组件的情况 下,将所述路由动作发送给所述路由器组件,以使所述路由器组件根据所述 路由动作跳转到目标组件。
优选的,所述第二组件根据所述组件动作执行相应的操作,包括:
所述第二组件根据所述组件动作及预先设定的组件通信有限字典协议, 执行相应的操作;
所述预先设定的组件通信有限字典协议支持在设定的通信协议范围内 扩展。
优选的,所述将所述组件动作发送给所述第二组件,包括:
加载所述第二组件,并将所述组件动作发送给所述第二组件。
优选的,所述组件动作为通道绑定动作;
所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况 下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件 动作执行相应的操作,包括:
所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况 下,将所述通道绑定动作发送给所述第二组件,以使所述第二组件根据所述 通道绑定动作,建立与所述第一组件的数据传输通道,以使所述第一组件与 所述第二组件通过所述数据传输通道进行数据传输。
优选的,所述方法还包括:
所述事件中介在接收到组件动作时,将接收到的组件动作转发给监控组 件,以使所述监控组件依据接收到的组件动作进行业务监控。
优选的,所述第一组件发布的组件动作为基于所述第二组件的声明式描述确 定的。
一种事件驱动架构,包括:事件中介和事件通道;
所述事件中介用于,在接收到第一组件发布的组件动作的情况下,将所 述组件动作转发给与所述第一组件关联的事件通道,所述与所述第一组件关 联的事件通道为所述事件驱动架构包括的事件通道中的其中一个事件通道;
所述与所述第一组件关联的事件通道,用于查找与所述组件动作对应的 第二组件,所述第二组件与所述第一组件不同;
所述与所述第一组件关联的事件通道,用于在查找到所述第二组件的情 况下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组 件动作执行相应的操作。
优选的,所述组件动作为路由动作,所述第二组件为路由器组件;
所述与所述第一组件关联的事件通道,具体用于:
所述与所述第一组件关联的事件通道,在查找到所述路由器组件的情况 下,将所述路由动作发送给所述路由器组件,以使所述路由器组件根据所述 路由动作跳转到目标组件。
优选的,所述与所述第一组件关联的事件通道,具体用于:
在查找到所述第二组件的情况下,将所述组件动作发送给所述第二组 件,以使所述第二组件根据所述组件动作及预先设定的组件通信有限字典协 议,执行相应的操作;
所述预先设定的组件通信有限字典协议支持在设定的通信协议范围内 扩展。
优选的,所述与所述第一组件关联的事件通道,具体用于:
在查找到所述第二组件的情况下,加载所述第二组件,并将所述组件动 作发送给所述第二组件,以使所述第二组件根据所述组件动作执行相应的操 作。
优选的,所述组件动作为通道绑定动作;
所述与所述第一组件关联的事件通道具体用于:
在查找到所述第二组件的情况下,将所述通道绑定动作发送给所述第二 组件,以使所述第二组件根据所述通道绑定动作,建立与所述第一组件的数 据传输通道,以使所述第一组件与所述第二组件通过所述数据传输通道进行 数据传输。
优选的,所述事件中介,还用于:
在接收到组件动作时,将接收到的组件动作转发给监控组件,以使所述 监控组件依据接收到的组件动作进行业务监控。
优选的,所述第一组件发布的组件动作为基于所述第二组件的声明式描 述确定的。
与现有技术相比,本申请的有益效果为:
在本申请中,基于事件驱动架构,由事件中介与事件通道实现不同组 件间的交互,保证不同组件可以只和事件耦合,降低不同组件之间的依 赖,以此提高开发效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述 中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅 仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创 造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种基于事件驱动架构的App组件化方法实施例1 的流程图;
图2是本申请提供的一种基于事件驱动架构的App组件化方法实施例2 的流程图;
图3是本申请提供的一种基于事件驱动架构的App组件化方法实施例3 的流程图;
图4是本申请提供的一种基于事件驱动架构的App组件化方法实施例4 的流程图;
图5是本申请提供的一种基于事件驱动架构的App组件化方法实施例5 的流程图;
图6是本申请提供的一种事件驱动架构的逻辑结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案 进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实 施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本 申请保护的范围。
本申请实施例公开了一种基于事件驱动架构的App组件化方法,基于 事件驱动架构,所述事件驱动架构包括:事件中介和事件通道,该方法包括: 所述事件中介在接收到第一组件发布的组件动作的情况下,将所述组件动作 转发给与所述第一组件关联的事件通道;所述与所述第一组件关联的事件通 道,查找与所述组件动作对应的第二组件,所述第二组件与所述第一组件不 同;所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况下, 将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件动作执行相应的操作。在本申请中,可以降低组件之间的依赖。
本申请实施例公开的基于事件驱动架构的App组件化方法所基于的事 件驱动架构可以采用面向协议编程进行构造。面向协议编程可以理解为:以 各个对象之间的协作关系作为系统设计的关键的编程思想。
事件驱动架构至少可以包括:事件中介和事件通道。
事件中介可以理解为:用于组件间通信的中介。
事件中介可以用于:
(1)管理组件的注册、反注册、组件的依赖注入,其中,组件的反注 册可以理解为:组件不再加载到应用程序内,组件不再接收任何已订阅的动 作。组件的依赖注入可以理解为:组件的初始化通常会依赖一些初始化的参 数(即action里面的buildConfig),而这些参数并不是硬编码到应用程序里面 的,而是通过buildConfig(字典)的方式传递给组件来进行初始化的(注入), 以此消除硬编码造成的耦合(依赖);
(2)管理组件实例的生命周期,查询组件实例
(3)管理事件通道(channel)的初始化以及将事件通道(channel)分 配给组件
基于面向协议编程的事件中介遵循的协议可以为:
channel:HNChannel;//事件通道
factory:HNComponentFactory;//组件工厂
compontStore:HNComponentStore;//组件库保存组件工厂生成的组件 实例
regist([HNComponentMap]):void;//组件注册
unregist(String):void;//组件反注册
components(String):HNComponent;//根据组件的ID返回组件实例
事件通道可以理解为:用于接收和发送组件动作到其他组件的通道。其 中,组件动作可以理解为:组件需要执行的操作。
事件通道需要预先与组件建立关联。其中,事件通道可以共用,也可以 根据实际情况分析组件之间的关系,对组件进行分组,同一组内的组件可共 享事件通道。
事件通道可以用于:
管理组件动作的订阅、取消订阅、发布动作;发布动作可以理解为:当 需要调用某个组件的能力时,需要发布动作(Action)到事件通道 (HNChannel),事件通道会根据组件订阅的情况来分发给组件,让组件来根 据动作执行相应的处理;
管理动作和组件的映射关系,当收到动作时,通知对应的组件处理动作。
基于面向协议编程的事件通道遵循的协议可以为:
name:String;//事件通道的名称,用于区别多个通通
subscribe(HNComponentActionMap):void;//订阅动作
publish(HNActionable):void;//发布事件
componentIds(string):[String];//返回订阅了某个动作(根据动作id,字 符串型)的组件Id数组
接下来对本申请实施例公开的基于事件驱动架构的App组件化方法进 行介绍,如图1所示的,为本申请提供的一种基于事件驱动架构的App组件 化方法实施例1的流程图,可以包括以下步骤:
步骤S11、所述事件中介在接收到第一组件发布的组件动作的情况下, 将所述组件动作转发给与所述第一组件关联的事件通道。
可以理解的是,第一组件一般在需要调用某个组件的能力时或与某个组 件进行交互时,发布组件动作到事件中介,事件中介则在接收到第一组件发 布的组件动作的情况下,将组件动作转发给与第一组件关联的事件通道。
本实施例中,各个组件均可以采用声明方式描述各自组件的能力和映射 关系,实现组件之间无需了解其他组件的内部细节,只需根据声明时描述, 发布动作即可完成业务处理,具有很高的易用性;同时组件的能力抽象为声 明式描述,组件内部的修改,反映到外部只是字典描述的变化,其他组件只 需进行较小的改动,组件的维护成本低。
基于各个组件均可以采用声明方式描述各自组件的能力和映射关系,本 实施例中,第一组件发布的组件动作可以为基于第二组件的声明式描述确定 的。第二组件与第一组件不同。
所述与所述第一组件关联的事件通道为所述事件驱动架构包括的事件 通道中的其中一个事件通道
步骤S12、所述与所述第一组件关联的事件通道,查找与所述组件动作 对应的第二组件,所述第二组件与所述第一组件不同;
本实施例中,可以预先建立组件动作与组件的映射关系,组件动作与组 件的映射关系中的组件可以执行组件动作,实现相应的功能。
步骤S13、所述与所述第一组件关联的事件通道,在查找到所述第二组 件的情况下,将所述组件动作发送给所述第二组件,以使所述第二组件根据 所述组件动作执行相应的操作。
本实施例中,第二组件根据所述组件动作执行相应的操作,可以包括:
所述第二组件根据所述组件动作及预先设定的组件通信有限字典协议, 执行相应的操作;
所述预先设定的组件通信有限字典协议支持在设定的通信协议范围内 扩展。
所述预先设定的组件通信有限字典协议支持在设定的通信协议范围内 扩展,兼顾灵活性与统一性,便于维护和扩展组件通信协议。组件通信协议 基于有限字典,无需进行编解码(如json、url等),可以提升性能。有限字 典可以理解为:一种key-value的数据结构,其只能在规定的范围内扩展。 组件通信协议可以理解为:组件间进行数据交换时,约定好的数据格式。
在本申请中,基于事件驱动架构,由事件中介与事件通道实现不同 组件间的交互,保证不同组件可以只和事件耦合,降低不同组件之间的 依赖,以此提高开发效率。
作为本申请另一可选实施例,参照图2,为本申请提供的一种基于事件 驱动架构的App组件化方法实施例2的流程图,本实施例主要是对上述实施例 1描述的基于事件驱动架构的App组件化方法的细化方案,如图2所示,该方 法可以包括但并不局限于以下步骤:
步骤S21、所述事件中介在接收到第一组件发布的路由动作的情况下, 将所述路由动作转发给与所述第一组件关联的事件通道。
步骤S21为实施例1中步骤S11的一种具体实施方式。
步骤S22、所述与所述第一组件关联的事件通道,查找与所述路由动作 对应的路由器组件,所述路由器组件与所述第一组件不同。
步骤S22为实施例1中步骤S12的一种具体实施方式。
步骤S23、所述与所述第一组件关联的事件通道,在查找到所述路由器 组件的情况下,将所述路由动作发送给所述路由器组件,以使所述路由器组 件根据所述路由动作跳转到目标组件。
步骤S23为实施例1中步骤S11的一种具体实施方式。
通过组件化的路由方法,在组件的粒度为页面的级别的情况下,第一组 件为页面组件,目标组件为页面组件,实现了将页面封装为独立的组件,两 个页面之间没有直接关联,互相不知道对方的存在,仅通过动作进行通信, 可以达到最大程度的解耦的目的。
作为本申请另一可选实施例,参照图3,为本申请提供的一种基于事件 驱动架构的App组件化方法实施例3的流程图,本实施例主要是对上述实施例 1描述的基于事件驱动架构的App组件化方法的细化方案,如图3所示,该方 法可以包括但并不局限于以下步骤:
步骤S31、事件中介在接收到第一组件发布的组件动作的情况下,将所 述组件动作转发给与所述第一组件关联的事件通道。
步骤S32、所述与所述第一组件关联的事件通道,查找与所述组件动作 对应的第二组件,所述第二组件与所述第一组件不同。
步骤S31-S32的详细过程可以参见实施例1中步骤S11-S12的相关介绍, 在此不再赘述。
步骤S33、所述与所述第一组件关联的事件通道,在查找到所述第二组 件的情况下,加载所述第二组件,并将所述组件动作发送给所述第二组件, 以使所述第二组件根据所述组件动作执行相应的操作。
本实施例中,在需要第二组件执行相应操作的时候,加载第二组件,并 非在App启动时就加载,这种方式可以减少对内存的无效占用,节省内存。
作为本申请另一可选实施例,参照图4,为本申请提供的一种基于事件 驱动架构的App组件化方法实施例4的流程图,本实施例主要是对上述实施例 1描述的基于事件驱动架构的App组件化方法的细化方案,如图4所示,该方 法可以包括但并不局限于以下步骤:
步骤S41、所述事件中介在接收到第一组件发布的通道绑定动作的情况 下,将所述通道绑定动作转发给与所述第一组件关联的事件通道。
步骤S41为实施例1中步骤S11的一种具体实施方式。
步骤S42、所述与所述第一组件关联的事件通道,查找与所述通道绑定 动作对应的第二组件,所述第二组件与所述第一组件不同。
步骤S42为实施例1中步骤S12的一种具体实施方式。
步骤S43、所述与所述第一组件关联的事件通道,在查找到所述第二组 件的情况下,将所述通道绑定动作发送给所述第二组件,以使所述第二组件 根据所述通道绑定动作,建立与所述第一组件的数据传输通道,以使所述第 一组件与所述第二组件通过所述数据传输通道进行数据传输。
所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况 下,将所述通道绑定动作发送给所述第二组件,以使所述第二组件根据所述 通道绑定动作,建立与所述第一组件的数据传输通道,以使所述第一组件与 所述第二组件通过所述数据传输通道进行数据传输,实现了组件可以直接进 行数据交换,无需通过事件中介或路由,可以提升传输效率。组件间直接进 行数据交换对组件之间需要进行频繁的数据交换的业务场景尤为重要。
作为本申请另一可选实施例,参照图5,为本申请提供的一种基于事件 驱动架构的App组件化方法实施例5的流程图,本实施例主要是对上述实施例 1描述的基于事件驱动架构的App组件化方法的扩展方案,如图5所示,该方 法可以包括但并不局限于以下步骤:
步骤S51、事件中介在接收到第一组件发布的组件动作的情况下,将所 述组件动作转发给与所述第一组件关联的事件通道;
步骤S52、所述与所述第一组件关联的事件通道,查找与所述组件动作 对应的第二组件,所述第二组件与所述第一组件不同;
步骤S53、所述与所述第一组件关联的事件通道,在查找到所述第二组 件的情况下,将所述组件动作发送给所述第二组件,以使所述第二组件根据 所述组件动作执行相应的操作。
步骤S51-S53的详细过程可以参见实施例1中步骤S11-S13的相关介绍, 在此不再赘述。
步骤S54、所述事件中介在接收到组件动作时,将接收到的组件动作转 发给监控组件,以使所述监控组件依据接收到的组件动作进行业务监控。
本实施例中,预先将监控组件注册到事件中介中,监控组件订阅所有组 件动作,以保证当事件中介收到任意组件发布的组件动作时,可以自动转发 组件动作到监控组件。
监控组件依据接收到的组件动作进行业务监控,可以使业务中调试和问 题定位变得容易,提升开发效率。
监控组件依据接收到的组件动作进行业务监控的结果可以以调试日志 或业务事件流程可视化等方式进行展示。
接下来对本申请提供的事件驱动架构进行介绍,下文介绍的事件驱动 架构与上文介绍的事件驱动架构可相互对应参照。
请参见图6,事件驱动架构包括:事件中介11和事件通道12。
所述事件中介11用于,在接收到第一组件发布的组件动作的情况下, 将所述组件动作转发给与所述第一组件关联的事件通道,所述与所述第一组 件关联的事件通道为所述事件驱动架构包括的事件通道中的其中一个事件 通道;
所述与所述第一组件关联的事件通道,用于查找与所述组件动作对应的 第二组件,所述第二组件与所述第一组件不同;
所述与所述第一组件关联的事件通道,用于在查找到所述第二组件的情 况下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组 件动作执行相应的操作。
本实施例中,所述组件动作为路由动作,所述第二组件为路由器组件;
所述与所述第一组件关联的事件通道,具体可以用于:
所述与所述第一组件关联的事件通道,在查找到所述路由器组件的情况 下,将所述路由动作发送给所述路由器组件,以使所述路由器组件根据所述 路由动作跳转到目标组件。
本实施例中,所述与所述第一组件关联的事件通道,具体可以用于:
在查找到所述第二组件的情况下,将所述组件动作发送给所述第二组 件,以使所述第二组件根据所述组件动作及预先设定的组件通信有限字典协 议,执行相应的操作;
所述预先设定的组件通信有限字典协议支持在设定的通信协议范围内 扩展。
本实施例中,所述与所述第一组件关联的事件通道,具体可以用于:
在查找到所述第二组件的情况下,加载所述第二组件,并将所述组件动 作发送给所述第二组件,以使所述第二组件根据所述组件动作执行相应的操 作。
本实施例中,所述组件动作为通道绑定动作;
所述与所述第一组件关联的事件通道具体可以用于:
在查找到所述第二组件的情况下,将所述通道绑定动作发送给所述第二 组件,以使所述第二组件根据所述通道绑定动作,建立与所述第一组件的数 据传输通道,以使所述第一组件与所述第二组件通过所述数据传输通道进行 数据传输。
本实施例中,所述事件中介11,还可以用于:
在接收到组件动作时,将接收到的组件动作转发给监控组件,以使所述 监控组件依据接收到的组件动作进行业务监控。
本实施例中,所述第一组件发布的组件动作为基于所述第二组件的声明式描 述确定的。
需要说明的是,每个实施例重点说明的都是与其他实施例的不同之 处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例 而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处 参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系 术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不 一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺 序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的 包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括 那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种 过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下, 由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方 法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然, 在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了 解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样 的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可 以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质 中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设 备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实 施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种基于事件驱动架构的App组件化方法及事 件驱动架构进行了详细介绍,本文中应用了具体个例对本申请的原理及实 施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法 及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想, 在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内 容不应理解为对本申请的限制。
Claims (14)
1.一种基于事件驱动架构的App组件化方法,其特征在于,基于事件驱动架构,所述事件驱动架构包括:事件中介和事件通道,该方法包括:
所述事件中介在接收到第一组件发布的组件动作的情况下,将所述组件动作转发给与所述第一组件关联的事件通道,所述与所述第一组件关联的事件通道为所述事件驱动架构包括的事件通道中的其中一个事件通道;
所述与所述第一组件关联的事件通道,查找与所述组件动作对应的第二组件,所述第二组件与所述第一组件不同;
所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件动作执行相应的操作。
2.根据权利要求1所述的方法,其特征在于,所述组件动作为路由动作,所述第二组件为路由器组件;
所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件动作执行相应的操作,包括:
所述与所述第一组件关联的事件通道,在查找到所述路由器组件的情况下,将所述路由动作发送给所述路由器组件,以使所述路由器组件根据所述路由动作跳转到目标组件。
3.根据权利要求1所述的方法,其特征在于,所述第二组件根据所述组件动作执行相应的操作,包括:
所述第二组件根据所述组件动作及预先设定的组件通信有限字典协议,执行相应的操作;
所述预先设定的组件通信有限字典协议支持在设定的通信协议范围内扩展。
4.根据权利要求1所述的方法,其特征在于,所述将所述组件动作发送给所述第二组件,包括:
加载所述第二组件,并将所述组件动作发送给所述第二组件。
5.根据权利要求1所述的方法,其特征在于,所述组件动作为通道绑定动作;
所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件动作执行相应的操作,包括:
所述与所述第一组件关联的事件通道,在查找到所述第二组件的情况下,将所述通道绑定动作发送给所述第二组件,以使所述第二组件根据所述通道绑定动作,建立与所述第一组件的数据传输通道,以使所述第一组件与所述第二组件通过所述数据传输通道进行数据传输。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述事件中介在接收到组件动作时,将接收到的组件动作转发给监控组件,以使所述监控组件依据接收到的组件动作进行业务监控。
7.根据权利要求1所述的方法,其特征在于,所述第一组件发布的组件动作为基于所述第二组件的声明式描述确定的。
8.一种事件驱动架构,其特征在于,包括:事件中介和事件通道;
所述事件中介用于,在接收到第一组件发布的组件动作的情况下,将所述组件动作转发给与所述第一组件关联的事件通道,所述与所述第一组件关联的事件通道为所述事件驱动架构包括的事件通道中的其中一个事件通道;
所述与所述第一组件关联的事件通道,用于查找与所述组件动作对应的第二组件,所述第二组件与所述第一组件不同;
所述与所述第一组件关联的事件通道,用于在查找到所述第二组件的情况下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件动作执行相应的操作。
9.根据权利要求8所述的事件驱动架构,其特征在于,所述组件动作为路由动作,所述第二组件为路由器组件;
所述与所述第一组件关联的事件通道,具体用于:
所述与所述第一组件关联的事件通道,在查找到所述路由器组件的情况下,将所述路由动作发送给所述路由器组件,以使所述路由器组件根据所述路由动作跳转到目标组件。
10.根据权利要求8所述的事件驱动架构,其特征在于,所述与所述第一组件关联的事件通道,具体用于:
在查找到所述第二组件的情况下,将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件动作及预先设定的组件通信有限字典协议,执行相应的操作;
所述预先设定的组件通信有限字典协议支持在设定的通信协议范围内扩展。
11.根据权利要求8所述的事件驱动架构,其特征在于,所述与所述第一组件关联的事件通道,具体用于:
在查找到所述第二组件的情况下,加载所述第二组件,并将所述组件动作发送给所述第二组件,以使所述第二组件根据所述组件动作执行相应的操作。
12.根据权利要求8所述的事件驱动架构,其特征在于,所述组件动作为通道绑定动作;
所述与所述第一组件关联的事件通道具体用于:
在查找到所述第二组件的情况下,将所述通道绑定动作发送给所述第二组件,以使所述第二组件根据所述通道绑定动作,建立与所述第一组件的数据传输通道,以使所述第一组件与所述第二组件通过所述数据传输通道进行数据传输。
13.根据权利要求8所述的事件驱动架构,其特征在于,所述事件中介,还用于:
在接收到组件动作时,将接收到的组件动作转发给监控组件,以使所述监控组件依据接收到的组件动作进行业务监控。
14.根据权利要求8所述的事件驱动架构,其特征在于,所述第一组件发布的组件动作为基于所述第二组件的声明式描述确定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010201223.XA CN111475140B (zh) | 2020-03-20 | 2020-03-20 | 基于事件驱动架构的App组件化方法及事件驱动架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010201223.XA CN111475140B (zh) | 2020-03-20 | 2020-03-20 | 基于事件驱动架构的App组件化方法及事件驱动架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475140A true CN111475140A (zh) | 2020-07-31 |
CN111475140B CN111475140B (zh) | 2023-09-22 |
Family
ID=71748449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010201223.XA Active CN111475140B (zh) | 2020-03-20 | 2020-03-20 | 基于事件驱动架构的App组件化方法及事件驱动架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475140B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904763A (zh) * | 2023-01-31 | 2023-04-04 | 北京微吼时代科技有限公司 | 应用于直播系统的事件驱动方法及其系统、直播系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002059762A1 (en) * | 2001-01-26 | 2002-08-01 | Wind River Systems, Inc. | Event mediator for facilitating communication between isolated components |
CN101277213A (zh) * | 2007-03-30 | 2008-10-01 | 上海未来宽带技术及应用工程研究中心有限公司 | 基于事件驱动原理开发ipmc的系统及方法 |
US20090217299A1 (en) * | 2006-02-28 | 2009-08-27 | Telecom Italia S.P.A. | Communication Server With a Service Logic Execution Environment |
US20100153865A1 (en) * | 2008-12-15 | 2010-06-17 | Mastercard International, Inc. | Platform for Generating Composite Applications |
US20100162207A1 (en) * | 2008-12-18 | 2010-06-24 | Microsoft Corporation | Behavior-first event programming model |
US20130219361A1 (en) * | 2012-02-18 | 2013-08-22 | Software Ag | System and method for controlling the development of a software application |
US8561028B1 (en) * | 2009-05-12 | 2013-10-15 | Adobe Systems Incorporated | Methods and systems for debugging event-driven software applications |
CN103458033A (zh) * | 2013-09-04 | 2013-12-18 | 北京邮电大学 | 事件驱动、面向服务的物联网服务提供系统及其工作方法 |
CN107133042A (zh) * | 2017-05-04 | 2017-09-05 | 南京大学 | 一种基于IFML的iOS开发建模方法 |
CN108228253A (zh) * | 2017-12-29 | 2018-06-29 | 武汉璞华大数据技术有限公司 | 一种app构建方法及系统 |
US20180260819A1 (en) * | 2017-03-09 | 2018-09-13 | Capital One Services, Llc | Systems and methods for real time message processing using an event driven framework |
-
2020
- 2020-03-20 CN CN202010201223.XA patent/CN111475140B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002059762A1 (en) * | 2001-01-26 | 2002-08-01 | Wind River Systems, Inc. | Event mediator for facilitating communication between isolated components |
US20090217299A1 (en) * | 2006-02-28 | 2009-08-27 | Telecom Italia S.P.A. | Communication Server With a Service Logic Execution Environment |
CN101277213A (zh) * | 2007-03-30 | 2008-10-01 | 上海未来宽带技术及应用工程研究中心有限公司 | 基于事件驱动原理开发ipmc的系统及方法 |
US20100153865A1 (en) * | 2008-12-15 | 2010-06-17 | Mastercard International, Inc. | Platform for Generating Composite Applications |
US20100162207A1 (en) * | 2008-12-18 | 2010-06-24 | Microsoft Corporation | Behavior-first event programming model |
US8561028B1 (en) * | 2009-05-12 | 2013-10-15 | Adobe Systems Incorporated | Methods and systems for debugging event-driven software applications |
US20130219361A1 (en) * | 2012-02-18 | 2013-08-22 | Software Ag | System and method for controlling the development of a software application |
CN103458033A (zh) * | 2013-09-04 | 2013-12-18 | 北京邮电大学 | 事件驱动、面向服务的物联网服务提供系统及其工作方法 |
US20180260819A1 (en) * | 2017-03-09 | 2018-09-13 | Capital One Services, Llc | Systems and methods for real time message processing using an event driven framework |
CN107133042A (zh) * | 2017-05-04 | 2017-09-05 | 南京大学 | 一种基于IFML的iOS开发建模方法 |
CN108228253A (zh) * | 2017-12-29 | 2018-06-29 | 武汉璞华大数据技术有限公司 | 一种app构建方法及系统 |
Non-Patent Citations (3)
Title |
---|
尹忠海;褚亚男;: "基于事件逻辑的CPS组件协同模型", no. 05 * |
李厚福;韩燕波;单保华;陈旺虎;: "网格中一种事件驱动的服务动态中介机制", 计算机集成制造系统, no. 06 * |
王少林;魏仁政;张来盈;唐威;田晨璐;: "基于Android的建筑设备物联网系统终端", no. 02 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904763A (zh) * | 2023-01-31 | 2023-04-04 | 北京微吼时代科技有限公司 | 应用于直播系统的事件驱动方法及其系统、直播系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111475140B (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840429B (zh) | 智能合约部署、调用方法和装置 | |
US8386636B2 (en) | Business process system management method | |
CN112148711B (zh) | 一种批处理任务的处理方法和装置 | |
CN102395950A (zh) | 与数据存储系统的通信 | |
CN102591724A (zh) | 消息交互方法及装置 | |
CN111176801B (zh) | 一种多进程管理方法、装置、设备及存储介质 | |
CN109445841B (zh) | 接口文档管理方法、装置、服务器及存储介质 | |
US20130151571A1 (en) | Interface defined virtual data fields | |
US20230259358A1 (en) | Documentation enforcement during compilation | |
CN113064676A (zh) | 基于js入口的前端运行时远程组件共享机制的方法 | |
CN111143383B (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
CN113778477A (zh) | 文件处理方法及装置、计算机可读存储介质、电子设备 | |
CN103647811A (zh) | 一种实现应用访问后台服务的方法和装置 | |
CN111475140A (zh) | 基于事件驱动架构的App组件化方法及事件驱动架构 | |
CN112631563A (zh) | 基于框架的系统开发方法、装置、计算机设备及存储介质 | |
US8566279B1 (en) | Enhanced data collection techniques | |
CN113778725A (zh) | 一种数据校验方法和装置 | |
CN111580733A (zh) | 任务处理方法、装置、计算设备以及介质 | |
CN112711602B (zh) | 一种存储过程的运行方法、装置,数据库系统及存储介质 | |
CN112671877B (zh) | 一种数据处理方法和装置 | |
CN111427630B (zh) | 冷启动优化方法和装置、电子设备和存储介质 | |
WO2021243665A1 (zh) | 编译方法、编译装置、编译系统、存储介质与电子设备 | |
CN109857380B (zh) | 一种工作流文件编译方法及装置 | |
CN113779122A (zh) | 导出数据的方法和装置 | |
KR20170130911A (ko) | Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법 |
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 |