EDA事件驱动架构首先不是对于传统的面向业务流程,数据等各种架构模式的完全否定,而是解决传统架构下无法很好解决的一些问题。传统模式里面更加关注业务流程和业务对象,而EDA模式下将更加关注在整个业务流程中的关键状态点,已经由关键状态点触发的有明确业务含义的业务事件。
EDA架构的核心仍然是基于消息的发布订阅模式,消息的特定就是准实时,异步和彻底解耦。同时通过发布订阅模式实现事件的一对多灵活分发。不论是哪种消息中间件基本需要实现上面所谈到的核心能力。消息中间件有消息存储和持久化功能,有消息消费方的配置功能,正是由于有这些功能才谈得上消息发布方和消息接收方的彻底解耦,消息消费方对发送方而言完全透明,消息发送方只管把消息发送到消息中间件,其它事情全部不用关心,由于消息中间件中的MQ等技术,即使发送消息时候消息接收方不可用仍然可以正常发送,这才叫彻底解耦。其次一对多的发布订阅模式是另外一个核心重点,对于消息的订阅方和订阅机制可以在消息中间件灵活的进行配置和管理,而对于消息发送方和发送逻辑基本没有任何影响。
既然EDA做为一个架构模式和架构方法,那么就不是简单的一个技术层面的问题,而是以事件为核心的一套需求分析,设计,和实施的方法论。可以看到传统的方法到事件分析方法有一个完整映射,即传统的业务流程会映射到具体的事件消息链,而业务活动会映射到具体的业务事件。并不是说传统的业务流程分析方法不再适用,而是在传统的分析方法中增加了对关键状态点和业务事件的识别。大家可以看下EPC事件流程链,其中即在原有的业务流程,岗位角色基础上将业务事件融入了进来。EDA要求我们的是通过业务流程首先要识别出有价值的业务事件,这些事件符合异步实时,发布订阅等基本的事件特征;其次是对事件进行详细的分析和定义,对事件对应的消息格式进行定义,对事件的发布订阅机制进行定义等。最后才是基于消息事件模式的开发和测试等工作。
再EDA朝CEP过渡的时候,我们看到一个核心就是由单一的事件发展到了有多个事件形成的一个复杂事件链。而复杂事件链正是可以驱动企业内部的复杂端到端业务流程。单一事件有其自身价值,但是仍然是解决点到点的事件发送和消费问题,而复杂事件才能给真正完成端到端业务流程的实时驱动和信息传递。当谈到复杂事件的时候,必然需要引入的一个内容就是规则引擎,其原因我们要意识到往往一个消费方会接受多个事件,而当同时收到多个事件的时候往往在符合某个业务规则的时候通过处理需要进一步产生新的业务事件并进行事件的发布,只有这样才能形成事件消息链,只有引入规则引擎才可以更好的实现规则的灵活配置。
EDA架构将传统的轮询模式转化为了事件驱动的实时推动模式,加快了业务响应的敏捷性,减少了由于跨业务部门或业务系统消息传递而带来的时间延长,真正实现业务系统间的彻底解耦。
青春就应该这样绽放 游戏测试:三国时期谁是你最好的兄弟!! 你不得不信的星座秘密