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

2009-09-24 17:28
5
 异步编程      软件架构      EDA事件驱动     
 

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,可以实时拦截客户端发送的事件消息,可以实现媒体播放过程中激活各种其他交互动作,真正实现交互互动媒体。

 
 
 
   
 异步编程(98)     软件架构(224)     EDA事件驱动(104)    
 
 

12306铁路售票系统核心开源中间件Geode介绍

Geode是一个提供实时且高一致性的 分布式 数据管理平台,典型案例是中国铁路12306售票系统使用Geode管理10个集群节点,在内存中管理2T的热点数据....

最新文章

  1. Lesson 24 It could be worse
  2. mysql数据库的导入导出
  3. Execution Order of Event Functions
  4. OS X EI Capitan 系统 安装cocoapod
  5. 关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(二)
  6. HTML布局与框架
  7. js插入动态脚本
  8. ClassLoader加载
  9. iOS viewController 和 view 的创建消失生命周期总结
  10. 常用的JQuery UI框架
  11. jquery常用方法以及详解
  12. TCP Keepalive HOWTO
  13. 零基础怎么学java
  14. scrapy 爬取糗事百科
  15. C# Note33: 总结C# 6.0/7.0 新特性
  16. Codeforces Round #408 (Div. 2) 题解【ABCDE】
  17. appium+python+unittest+HTMLRunner编写UI自动化测试集
  18. linux ubuntu 18.04 无线网卡 rtl8821ce的安装
  19. Angular4.+ ngx-bootstrap Pagination 自定义分页组件
  20. 查看内核页表kernel_page_tables (aarch32)

热门文章

  1. 百度地图api---实现新建地图
  2. TF400511: Your team has not defined any iterations to use as sprints
  3. arcgis10.5.1 对齐要素
  4. java中Double类数字太大时页面正常显示而不要用科学计数法
  5. oracle表复制
  6. Android NDK:Aborting..Stop的处理方法
  7. 通用的Bitmap压缩算法,进一步节约内存(推荐)
  8. HTML5 本地文件操作之FileSystemAPI实例(二)
  9. unix时间戳time_t与UTC时区的关系
  10. MAT(Memory Analyzer Tool)内存分析工具的使用