EDA: Event-Driven Architecture事件驱动架构

SOA的核心是:暴露然后处理 expose and handle,SOA使事件Event跨系统流动

EDA是以事件为核心:什么时候触发 然后做什么。EDA是更加松散耦合,有极强的巨大事务处理能力

ESP—Event Stream Processing:监视事件数据流,分析这些事件。
CEP—Complex Event Processing:以更加动态方式监测。

Esper是一个ESP/CEP容器或框架,实际就是一个JAR包,能整入大部分系统。

Esper的特点就是:你可以对事件进行监测,比如你设定告诉Esper,发送的事件中某个参数不能低于某值,这样,当有各种事件通过Esper发送时,Esper就会帮助你监视,如果有低于某值的,就会自动激活相应的行为,这实际类似一个大的观察者模式。

事件和消息有一些区别和联系,事件和消息可以说是从不同方面描述的同一个东西,消息是事件发生后产物,消息发送必须有发送事件发生才能实现。每次事件只发送一次消息,事件和消息是一对一的,EDA架构和JMS/ESB消息架构有一些区别,JMS/ESB只是发送简单的消息,并不处理事件流,也就是消息流,JMS/ESB只要指定发送目的地,就直接将事件消息发送那个目的,类似一个树形结构中两个节点的关系,JMS/ESB的消息机制可以组成一个业务处理网,事件在这些业务子系统之间流动,但是不对流动的消息内容进行监测。

如果发送的事件消息中某个参数低于某值,那么只有等到目的地的校验时才会报错,而Esper象事件消息拦截器可以进行动态拦截并且激活相应行为。

Esper可以和wso2 mule等SOA消息中间件融合在一起应用,相同于多了一个消息总线的监视器,在消息总线流程之外,
可以动态增加新的业务流程。
http://www.slideshare.net/prabathsiriwardena/complex-event-processing-with-esper-and-wso2-esb

Flash作为应用广泛的富客户端RIA,有一个消息中间件Blazds,通过Blazds,可以将客户端事件和服务器端联系起来,可以由服务器端将消息事件推送到客户端,也可以由客户端发送事件给服务器端,完成一个跨服务器和客户端的事件驱动架构,更好地实现各种信息内容的推和拉机制。
CEP and RIAs: Bringing Together the Bold and the Beautiful

在这个模式中引入CEP/Esper,可以实时拦截客户端发送的事件消息,可以实现媒体播放过程中激活各种其他交互动作,真正实现交互互动媒体。