複合事件處理(Complex Event Processing)介紹

來源:互聯網
上載者:User

【轉載】原文連結:http://www.cnblogs.com/shanyou/archive/2010/09/16/cep.html

近年來,面向服務架構 SOA一直是熱門的議題。面向服務架構SOA
使用了比組件、程式(procedure)層次更高的服務做為處理單元,通過開放格式交換標準例如XML、Web Service
來交換資料,避免不同平台間的差異帶來的不便,達到在異構IT 環境中有效且彈性的組合企業邏輯,並且更快速的產生響應,期望達到所謂即時化的企業。

事件驅動架構(Event-Driven Architecture,
EDA)以面向服務架構為基礎,將面向服務中的服務進一步轉化成以事件作為單位來處理,當某一個事件產生即觸發下一個事件。事件驅動架構不僅可以依訊息發
送端決定目的,更可以動態依據訊息內容決定後續流程。更能靈活符合日益複雜的商業邏輯架構。

一個事件可以看作是在一個系統中可觀察到的狀態改變。例如下一筆訂單、RFID
感應器回報的資訊。在事件驅動架構中包含了兩個部份,事件產生者、事件消費者。事件產生者發布資訊給管理者,而事件消費者則向管理者訂閱資訊,事件則觸發
了下一個事件或是服務(services),當某個事件發生時,系統及做出相對應的動作。

事件驅動架構中也包含了SOA 的概念,稱為SOA2.0(reference),同時也是非同步軟體架構。

  1. 簡單事件處理(Simple event processing) :簡單事件處理可看作是訊息導向處理的架構,主
    要處理單一事件,其中事件則定義為可直接觀察到的改變。在這個架構中,簡單事件處理只做兩件事情,過濾(filtering)和路由(routing)
    。過濾功能決定事件是否應該被傳送出去,路由則決定事件應該傳給誰。例如,溫度感應器感測到了某個時間變化,就把事件發生直接透過事件處理引擎傳給訂閱
    者,一切的工作流程都是即時的。如此一來,使用者將大大的減少了時間跟成本。
  2. 複合事件處理(Complex event processing):複合事件是由史丹佛大學的David
    Luckham 與Brian Fraseca 所提出,David Luckham 與Brian Fraseca
    於1990年提出複合事件架構,使用模式比對、事件的相互關係、事件間的彙總關係,目的從事件雲(event cloud)中找出有意義的事件,使得IT
    架構可以更能彈性使用事件驅動架構,並且能使企業更能快速的開發出更複雜的邏輯架構。在事件驅動架構下,結合簡單事件、事件串流處理(Event
    streaming processing)以及複合事件(Complex
    event)。相較於簡單事件,複雜事件處理不僅處理單一的事件,也處理由多個事件所組成的複合事件。複雜事件處理監測分析事件流(Event
    streaming),當特定事件發生時去觸發某些動作。

    複雜事件處理可看作一種處理串流(Streaming)的資料庫處理。在關聯式資料庫中所處理的資料是有許多行(Row)的資料表(table),複
    雜事件處理將事件串流當作是資料表來處理,事件類型裡的屬性相當於資料表的欄位。以往使用關聯式資料庫的時候是將資料先存入關係型資料庫後,再用SQL
    文法將資料庫裡的資料表做處理。使用複雜事件處理則把處理資料的過程往前,不用通過儲存的動作就在串流中將事件做處理。因此在處理事件的方式上採用
    SQL-Like
    的語言。複雜事件處理中除了過濾和路由之外,還有模式比對的能力。找出事件集合的各種活動,事件彙總,過去曆史中的各種因果關係,邏輯以及運算等等,觸發
    新的事件反應。在複雜事件處理中,為了要達到高輸送量(throughput)、高度利用性(availability)、以及低度延遲
    (latency),讓企業能夠達到即時決策,因此使用事件串流處理(event streamprocessing)。使用EPL(Event
    Processing Language)為SQL-LIKE
    的語言,可以方便的對事件串流提供複雜的邏輯處理,使事件串流在記憶體中做模式比對處理,及查詢的動作。這些過程中,都在記憶體內進行,不須經由儲存裝置。

  3. StreamInsight 是 SQL Server 2008 R2 中的新模組,它提供了複雜事件處理(CEP, Complex Event Processing)的功能。 

    園子裡的相關文章:【原】StreamInsight 淺入淺出(一)、【原】StreamInsight 淺入淺出(二)—— 流與事件、 【原】StreamInsight 淺入淺出(三)—— 適配器

  4. 相關開源項目

    Esper – Complex Event Processing

    http://esper.codehaus.org/

    JBoss – Drools Fusion

    http://www.jboss.org/drools/drools-fusion.html

    Open ESB IEP SE

    http://wiki.open-esb.java.net/Wiki.jsp?page=IEPSE

    ActiveInsight

    http://www.activeinsight.net/

    其他產品或開源項目,可以參考:Complex Event Processing Vendors 

  5. 參考資料

    深入淺出複合事件處理(CEP)

    輕鬆理解複合事件處理

    Esper:CEP Engine

    Complex Event Processing:An attempt at clarity on an often confusing topic

    Sybase CEP:新穎的資料流分析平台

  6. 我的微博主題 http://t.qq.com/k/StreamInsight

【轉載】原文連結:http://www.cnblogs.com/shanyou/archive/2010/09/16/cep.html

近年來,面向服務架構 SOA一直是熱門的議題。面向服務架構SOA
使用了比組件、程式(procedure)層次更高的服務做為處理單元,通過開放格式交換標準例如XML、Web Service
來交換資料,避免不同平台間的差異帶來的不便,達到在異構IT 環境中有效且彈性的組合企業邏輯,並且更快速的產生響應,期望達到所謂即時化的企業。

事件驅動架構(Event-Driven Architecture,
EDA)以面向服務架構為基礎,將面向服務中的服務進一步轉化成以事件作為單位來處理,當某一個事件產生即觸發下一個事件。事件驅動架構不僅可以依訊息發
送端決定目的,更可以動態依據訊息內容決定後續流程。更能靈活符合日益複雜的商業邏輯架構。

一個事件可以看作是在一個系統中可觀察到的狀態改變。例如下一筆訂單、RFID
感應器回報的資訊。在事件驅動架構中包含了兩個部份,事件產生者、事件消費者。事件產生者發布資訊給管理者,而事件消費者則向管理者訂閱資訊,事件則觸發
了下一個事件或是服務(services),當某個事件發生時,系統及做出相對應的動作。

事件驅動架構中也包含了SOA 的概念,稱為SOA2.0(reference),同時也是非同步軟體架構。

  1. 簡單事件處理(Simple event processing) :簡單事件處理可看作是訊息導向處理的架構,主
    要處理單一事件,其中事件則定義為可直接觀察到的改變。在這個架構中,簡單事件處理只做兩件事情,過濾(filtering)和路由(routing)
    。過濾功能決定事件是否應該被傳送出去,路由則決定事件應該傳給誰。例如,溫度感應器感測到了某個時間變化,就把事件發生直接透過事件處理引擎傳給訂閱
    者,一切的工作流程都是即時的。如此一來,使用者將大大的減少了時間跟成本。
  2. 複合事件處理(Complex event processing):複合事件是由史丹佛大學的David
    Luckham 與Brian Fraseca 所提出,David Luckham 與Brian Fraseca
    於1990年提出複合事件架構,使用模式比對、事件的相互關係、事件間的彙總關係,目的從事件雲(event cloud)中找出有意義的事件,使得IT
    架構可以更能彈性使用事件驅動架構,並且能使企業更能快速的開發出更複雜的邏輯架構。在事件驅動架構下,結合簡單事件、事件串流處理(Event
    streaming processing)以及複合事件(Complex
    event)。相較於簡單事件,複雜事件處理不僅處理單一的事件,也處理由多個事件所組成的複合事件。複雜事件處理監測分析事件流(Event
    streaming),當特定事件發生時去觸發某些動作。

    複雜事件處理可看作一種處理串流(Streaming)的資料庫處理。在關聯式資料庫中所處理的資料是有許多行(Row)的資料表(table),複
    雜事件處理將事件串流當作是資料表來處理,事件類型裡的屬性相當於資料表的欄位。以往使用關聯式資料庫的時候是將資料先存入關係型資料庫後,再用SQL
    文法將資料庫裡的資料表做處理。使用複雜事件處理則把處理資料的過程往前,不用通過儲存的動作就在串流中將事件做處理。因此在處理事件的方式上採用
    SQL-Like
    的語言。複雜事件處理中除了過濾和路由之外,還有模式比對的能力。找出事件集合的各種活動,事件彙總,過去曆史中的各種因果關係,邏輯以及運算等等,觸發
    新的事件反應。在複雜事件處理中,為了要達到高輸送量(throughput)、高度利用性(availability)、以及低度延遲
    (latency),讓企業能夠達到即時決策,因此使用事件串流處理(event streamprocessing)。使用EPL(Event
    Processing Language)為SQL-LIKE
    的語言,可以方便的對事件串流提供複雜的邏輯處理,使事件串流在記憶體中做模式比對處理,及查詢的動作。這些過程中,都在記憶體內進行,不須經由儲存裝置。

  3. StreamInsight 是 SQL Server 2008 R2 中的新模組,它提供了複雜事件處理(CEP, Complex Event Processing)的功能。 

    園子裡的相關文章:【原】StreamInsight 淺入淺出(一)、【原】StreamInsight 淺入淺出(二)—— 流與事件、 【原】StreamInsight 淺入淺出(三)—— 適配器

  4. 相關開源項目

    Esper – Complex Event Processing

    http://esper.codehaus.org/

    JBoss – Drools Fusion

    http://www.jboss.org/drools/drools-fusion.html

    Open ESB IEP SE

    http://wiki.open-esb.java.net/Wiki.jsp?page=IEPSE

    ActiveInsight

    http://www.activeinsight.net/

    其他產品或開源項目,可以參考:Complex Event Processing Vendors 

  5. 參考資料

    深入淺出複合事件處理(CEP)

    輕鬆理解複合事件處理

    Esper:CEP Engine

    Complex Event Processing:An attempt at clarity on an often confusing topic

    Sybase CEP:新穎的資料流分析平台

  6. 我的微博主題 http://t.qq.com/k/StreamInsight

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.