复杂事件处理和事件处理语言 | Ross's Page

复杂事件处理和事件处理语言

Complex Event Processing

什么是 CEP?

Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. Complex event processing, or CEP, is event processing that combines data from multiple sources to infer events or patterns that suggest more complicated circumstances. The goal of complex event processing is to identify meaningful events (such as opportunities or threats) and respond to them as quickly as possible.

Event Processing 是一种通过 监控和分析Processing)某种事件(Event)发生而导致的 信息流Data)的方法。Complex event ProcessingCEP)是组合多种数据来源,并尝试找出特定的事件或者模式来确认是否有更复杂的情况发生。CEP 的目的在于辨别出有意义的事件(比如 机会 或者 威胁)并能尽快做出反应。

CEP 依赖下面的一组技术:

  • Event-pattern detection 事件模式
  • Event abstraction 事件抽象
  • Event filter 事件过滤
  • Event aggregation and transformation 事件聚合和传输
  • Modeling event hierarchies 模型化事件层次结构
  • Detecting relationships (such as causality, membership or timing) between events 事件间关系检测(比如因果、从属或者时间先后等)
  • Abstracting event-driven processes 事件驱动过程抽象

CEP 在像信用卡防作弊、商业活动监控以及安全监控等领域都有很多商业应用。

通常提到的 Event stream processing 其实就是 CEP

CEP 的类型

大部分 CEP 的解决方案和概念可以被归结为两类:

  • Aggregation-oriented CEP 面向聚合的 CEP
  • Detection-oriented CEP 面向监测的 CEP

面向聚合的 CEP 主要通过对进入系统的事件数据执行一些在线算法并返回,比如求持续输入数据的平均值。

面向监测的 CEP 主要监测被称为 事件模式 或者 某种情况已发生 的一系列事件。比如通过对加速器、陀螺仪等传感器数据的分析确认是否设备处于自由落体状态。

CEP 相关的产品和服务有哪些?

Complex Event Processing 词条的 Notable vendors and products 部分列出了很多主流的 CEP 产品和服务,比如:

Event Processing Language

EPL 类似于 SQL 语言,举例来看

WHEN Person.Gender EQUALS "man" AND Person.Clothes EQUALS "tuxedo"
FOLLOWED-BY
  Person.Clothes EQUALS "gown" AND
  (Church_Bell OR Rice_Flying)
WITHIN 2 hours
ACTION Wedding

当监测到有人穿着正装有人穿着袍子,有教堂的铃声而且空中有洒落的米粒(西方婚礼流行撒米),就可以判断出当前场景为婚礼现场。

Github 上将 Esper 封装适配 Android 的项目 已经对 EPL 做了封装,我们可以很方便地使用其通过智能设备传感器数据特征定义事件模式,并实时分析。

-- EOF --

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: 复杂事件处理和事件处理语言

comments powered by Disqus