複雜事件處理(Complex Event Processing)

複雜事件處理

複雜事件處理(CEP,Complex Event Processing)是一種基於動態環境中事件流的分析技術,事件在這裏通常是有意義的狀態變化,通過分析事件間的關係,利用過濾、關聯、聚合等技術,根據事件間的時序關係和聚合關係制定檢測規則,持續地從事件流中查詢出符合要求的事件序列,最終分析得到更復雜的複合事件,主要用於網絡詐欺識別等防止犯罪,銀行等金融行業防止,以及風險規避和營銷決策等.

複雜事件處理面臨多方面的挑戰:

  • 減少應用存儲數據(在分析數據之前)造成的延遲
  • 能夠持續,實時地分析多個數據流
  • 能夠關聯不同數據流中的事件,從而發現新的相關情形
  • 能夠迅速響應新發現的危險或機會
  • 能夠迅速的將先前發現的規律應用到新的數據流分析模型中
  • 能夠利用已有的應用開發能力快速開放新的高性能,高擴展度的應用
  • 確保應用和系統的連貫性。

事件處理語言

事件處理語言(EPL,Event processing language)用於系統中制定和查詢感興趣的事件序列,通常是類SQL的語句,從SQL語句中擴展而來.

這裏寫圖片描述

事件關係

事件應該包含一些基本的要素:類型、發生事件以及更多的一些定義屬性

通常需要關聯多個事件進行分析處理,其中事件間的關係主要有5種:

  1. 時間關聯

  2. 空間關聯

  3. 依賴關係
    事物的狀態屬性之間彼此的依賴關係和約束關係。

  4. 因果關係

事件處理過程

複雜事件處理過程包括:

  • 格式化:將事件獲取模塊得到的事件信息轉化爲內部處理的形式
  • 預處理:將事件按照字段內容進行處理
  • 模式偵測:將數個事件復合起來,找出複合事件
  • 事件發派:將複合事件發送到相應的處理模塊
  • 執行動作:處理模型按照事件狀況執行相應的動作

以下是複雜事件處理系統中的關鍵模塊組成圖(來自《深入淺出複合事件處理》),

這裏寫圖片描述

  1. EPL解析器:複雜事件處理系統中EPL語言被解析器解析爲處理引擎能理解的語言(類SQL解析器)。
  2. 規則管理:管理EPL。
  3. 事件接入:通過SOA、ESB、MOM、讀取日誌等方式將消息接入。
  4. 預處理:將事件依據字段內容進行處理。
  5. CEP引擎:找出事件關聯。
  6. 數據模型:維護內部數據。
  7. 事件發派:將已經發現的複合事件發派到負責處理的行動模塊中。
  8. 行動模塊:對複合事件採取行動 。

如何評價一個CEP平臺:

  • 開發工具中的編程模型,是否能吸引衆多不同類型的開發人員?
  • 是否提供了高可用性和高安全性?
  • 是否可以部署在多個使用陣列配置的服務器?
  • 是否提供了監視功能?
  • 其引擎是否可以易於擴展,從而來支持公司特有的高級的邏輯?
  • 是否有恢復機制,即使一旦服務器故障,也可以防止數據丟失?
  • 進出處理引擎的消息傳遞,其機制是否可靠?
  • 它同數據庫以及其他系統能否很好的集成?
  • 這個平臺是否支持連續型實時數據管理的各個生命週期,包括分析,存儲,建模和一個新的實時分析應用的部署?

事件驅動架構

事件驅動架構(Event-Driven Architecture,EDA) 基於消息傳遞,現在主要是異步通訊的消息隊列的架構,依據“發佈/訂閱”模式,通過特定模式來對業務事件作出響應,耦合度較低.

面向服務架構

面向服務架構 (Service-Oriented Architecture, SOA) 基於“請求/響應”的形式

下面這幅圖可以較好地體現基於SOA和EDA兩種體系結構的差異處,SOA更多地是面向垂直系統的請求和響應處理,EDA則是應對橫向的系統通.

這裏寫圖片描述

資料來源:

[1]. TT SOA 技術專題之“複雜事件處理手冊”
[2]. 《事件處理中間件原理和應用》
[3]. 《深入淺出複合事件處理》

知識共享許可協議
本作品採用知識共享署名-非商業性使用-相同方式共享 3.0 中國大陸許可協議進行許可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章