Esper 开发之一

最近因为项目需要,所以对 CEP 进行研究。

 

CEP

什么是 CEP, 全称是Complex Event Processing (复杂事件处理)。 CEP 是一种新兴的基于事件流的技术,它将系统数据看作不同类型的事件,通过分析事件间的关系,建立不同的事件关系序列库,利用过滤、关联、聚合等技术,最终由简单事件产生高级事件或商业流程。CEP适合的场景包括实时风险管理、实时交易分析、网络诈欺、网络攻击、市场趋势分析等等。我们的项目是属于 RFID 领域,所以我们选择了 Esper。

 

Esper

Esper 的网址是 http://esper.codehaus.org。 我们可以访问该网站首页,有几种典型的应用最需要 Esper,我摘录如下:

 

  • Business process management and automation (process monitoring, BAM, reporting exceptions, operational intelligence) 业务处理管理和自动化(处理监控,BAM-business activity monitoring,业务活动监控,异常报告,经营智能化等等
  • Finance (algorithmic trading, fraud detection, risk management) 财务(算法交易,欺诈检查,风险管理)
  • Network and application monitoring (intrusion detection, SLA monitoring)网络及应用程序监控(入侵检测,SLA监控-Service Level Agreement)
  • Sensor network applications (RFID reading, scheduling and control of fabrication lines, air traffic) 传感器网络应用(RFID 读取,生产线调度和控制,空中交通)

 


Esper 是纯Java开源ESP/CEP引擎,可以监测事件流,并在特定事件发生时触发某些行动。Esper引擎是为了满足对事件进行分析并做出反应等这些应用需求而产生的。这些应用要求事实或接近事实处理事件(或消息)。有时候是为了应对复杂事件处理(CEP)和事件流分析的。关键要考虑这些类型应用的(高)吞吐量、(低)响应时间和需求逻辑的复杂程度(复杂计算)。

 

Esper 的中文文档很少,所以只能到官网去啃E文了。以下列举了几个我认为对初学者比较重要的章节进行介绍。

 

  • Tutorial-本篇是 Esper 的教程,主要介绍了(1)什么是Esper,它有什么优点,包括哪些component(2)什么是事件流,什么是复杂事件。(3)什么是 EPL(4)如何开发一个事件驱动的应用(5)如何设计事件(6)事件流分析(7)事件模式匹配(8)如何结合事件流分析与模式匹配
  • Quick Start - 本篇主要描述如何快速使用 Esper,包括(1)安装 (2)创建Java事件类,POJO对象作为事件(3)创建一个 Statement (4)添加一个Listener(5)发送事件(6)Esper配置
  • Articles and Presentations, 文章和报告,这里列举了某些文章和展示材料,有些sample可以下载,对于学习和熟悉很有帮助
  • Solution Patterns,解决方案模式,使用Q&A的模式,对CEP 和 Esper 进行阐述,对于整个 Esper 的背景知识,会有很大帮助
  • Short Case Study, 简短的个案研究,以传输监控为例,进行分析,
  • Longer Case Study,较大个案研究,多个事件构成一次事务,对此进行分析
  • Additional Examples,其它示例,描述了怎么在 JMS, J2EE等环境里使用
  • Technology Links,技术链接,一些参考网站的引用
  • Documentation,文档,这里有很多文档供下载到本地
  • Building Esper,介绍如何使用 Maven 来build Esper

 

 

Quick Start

使用 Esper 的基本步骤

(1)创建一个 Configuration 实例

(2)通过 EPServiceProviderManager 获得 EPServiceProvider 对象

(3)通过 EPServiceProvider 和 EPL 查询语句,创建 EPStatement

(4)创建一个 class 实现 UpdateListener 接口, 并把这个 listener 和 EPStatement 挂钩

(5)使用epService.getEPRuntime().sendEvent(event)发送事件

 

我这里举一个实例吧

(1)

----待续

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值