Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Cep 소개 - for developers

16.134 visualizaciones

Publicado el

이 슬라이드는 개발자를 대상으로 CEP(Complex Event Processing) 소개하기 위한 것입니다.

소프트웨어 공학적인 입장에서 3가지 관점, 즉 범용성, 재사용성, 즉시응답성을 기준으로 CEP의 개념과 기능을 설명하고, 이를 구현한 Data Stream Query 기반 CEP 엔진의 작동방식을 설명합니다.

CEP는 새로운 개념이 아니고, 태초(?)부터 프로그래머들이 계속 해오던 일들입니다. CEP에 대해서 공부하고자 하는 개발자들에게 도움이 되었으면 합니다.

Publicado en: Tecnología
  • DOWNLOAD THAT BOOKS/FILE INTO AVAILABLE FORMAT - (Unlimited) ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes Christian, Classics, Comics, Contemporary, Cookbooks, Art, Biography, Business, Chick Lit, Children's, Manga, Memoir, Music, Science, Science Fiction, Self Help, History, Horror, Humor And Comedy, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance,
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Download or read that Ebooks here ... ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes.........ACCESS WEBSITE Over for All Ebooks ..... (Unlimited) ......................................................................................................................... Download FULL PDF EBOOK here { https://urlzs.com/UABbn } .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

Cep 소개 - for developers

  1. 1. CEP 소개 - 개발자를 위한 - 2013.12.12 이주현 B-Platform Team Manager, Embian. (lee@embian.com, leejuhyeon@gmail.com) Embian© 2013
  2. 2. Agenda I. CEP의 시작 – 3가지 요소 II. 범용성 – CEP의 개념들 III. 재사용성 – 독립 컴포넌트의 구축 IV. 즉시응답성 – 패러다임의 변화 V. CEP Engine - 구현체들 VI. 결론 2 Embian© 2013
  3. 3. I. CEP의 시작 - 3가지 요소 3 Embian© 2013
  4. 4. 1. 두 가지 요구사항 I. CEP의 시작 1. 도대체 “지금” “무슨 일”이 일어나고 있는 거야? 2. 예상한 일이 “일어나면”, “즉시” 무엇인가 “해라” 4 Embian© 2013
  5. 5. 1. 두 가지 요구사항 I. CEP의 시작 1. 도대체 “지금” “무슨 일”이 일어나고 있는 거야? • 최근 30분 동안 로그인 고객 수의 평균은? • 모든 서버들이 잘 돌아가고 있나? • 현재 주가가 오르고 있는거야, 내려가고 있는 거야? 5 Embian© 2013
  6. 6. 1. 두 가지 요구사항 I. CEP의 시작 2. 예상한 일이 “일어나면”, “즉시” 무엇인가 “해라” • 최근 30분 동안의 로그인 고객 수의 평균을 1초 단위로 보여달라. • 작동 중이지 않는 서버가 있다면, 관리자에게 즉시 SMS를 보내라. • 주가가 오르고 있다면, 해당 주식을 즉시 팔아라/사라. 6 Embian© 2013
  7. 7. 2. 어떻게 대처하지? I. CEP의 시작 • 네트워크 모니터링  Network Monitoring Tools Ex) 서버 상태들의 모니터링 및 특정 상태에서 경고 등 • 비즈니스 모니터링  액티브 데이터베이스 or 자체 구현 Ex) 최근 30분 동안의 로그인 고객 수의 평균, 특정 웹페이지의 Hit Ratio, 고객 원장 내의 잔고 액수 등 • 알고리즘 주식 거래  특정 제품 or 자체 구현 Ex) 알고리즘 주식 거래 등 7 Embian© 2013
  8. 8. 3. 대처 방법의 문제점 I. CEP의 시작 기존 시스템으로 대처할 수 있다. 그런데, 1. 특정 도메인에는 맞다. 하지만, 범용성을 가진 것이 필요하다. 2. 이거 할 때마다 만들어야 해? 재사용 못하나? 3. 처리 속도가 느리면 안 되는데… 8 Embian© 2013
  9. 9. 4. 3가지 요소 I. CEP의 시작 1. (개념의) 범용성  도메인에 관계 없는 범용적 개념의 정립 2. (컴포넌트의) 재사용성  재사용 가능한 독립된 소프트웨어 컴포넌트의 구축 3. 즉시응답성  패러다임의 변화 9 Embian© 2013
  10. 10. 5. 3가지 요소를 만족하는 그 무엇 범용성 재사용성 I. CEP의 시작 즉시반응성 기능요소 CEP (Complex Event Processing) 도대체 “지금” “무슨 일”이 일어나고 있는 거야? 예상한 일이 “일어나면”, “즉시” 무엇인가 “해라” 비기능요소 10 Embian© 2013
  11. 11. II. 범용성 - CEP의 개념들 11 Embian© 2013
  12. 12. 0. 개요 II. 범용성 도메인에 관계 없는 범용성 추구  개념들의 추상화 1. Event 2. Event Processing 3. Complex Event 4. Complex Event Processing 12 Embian© 2013
  13. 13. 0. 개요 II. 범용성 CEP에서의 핵심 개념들 1.1. Event Type 2.1. Event Stream 1. Event 1.2. Event Instance 2.2. Event Processor 2.3. Event Processing Network 2. Event Processing 4.1. Abstraction 3. Complex Event 2.5. Window 2.6. Counting & Negation 4.2. (Simple) Event Processing 2.7. Data Extraction 4.3. Drill Down 4.4. Pattern Matching 2.4. Filtering by Event Type 4. Complex Event Processing 2.8. Filtering by Data 2.9. Aggregation 4.5. Causality 13 Embian© 2013
  14. 14. 1. Event II. 범용성 Event (I) :도메인에 상관없이, 발생되는 “무슨 일 서버 상태 메시지 (IP 주소, 측정 시간, 부하율 등) 1초 마다 로그인 성공 기록 Log in 로그인할 때 마다 (고객 ID, 로그인 시각 등) 주가 Tick (종목명, Tick 시각, 주가 등) 모든 주가 Tick마다 14 Embian© 2013
  15. 15. 1. Event II. 범용성 Event (II) : Event(I)에 감지시각(Detection Time)을 부가 - Event Stream 내에서 Event들이 감지시각을 기준으로 정렬됨 (이하에서 Event라 함은 Event(II)를 의미) 감지시각 : t-2초 감지시각 : t-1초 감지시각 : t-0초 1초 마다 감지시각 : tx Log in 감지시각 : ty 감지시각 : t0 로그인할 때 마다 감지시각 : ta 감지시각 : tb 감지시각 : tc 감지시각 : t0 모든 주가 Tick마다 15 Embian© 2013
  16. 16. 1.1. Event Type II. 범용성 Event는 Event Type으로 유형화 Event Type은 Type Name과 Attributes로 구성 Event Type 서버상태 Event Type Name IP 주소 측정 시각 CPU 사용율 Memory 사용율 부하율 로그인 Event 고객 ID 로그인 시각 주가 Event 종목명 Tick 시각 주가 Attribute OOP에서 클래스(Class)와 유사 16 Embian© 2013
  17. 17. 1.2. Event Instance II. 범용성 개별 Event는 Event Instance라고도 불림 Event Instances 주가 Event Detection Time = xxxx 종목명 = “Google” Tick 시각 = 20131210135512 주가 = $1101 Event Type 주가 Event 감지시각 주가 Event Detection Time = yyyy 종목명 = “Google” Tick 시각 = 20131210135513 주가 = $1100 종목명 Tick 시각 주가 ... Attribute 주가 Event Detection Time = zzzz 종목명 = “Google” Tick 시각 = 20131210135525 주가 = $1099 Attribute Value (Data) OOP에서 객체(Object or Instance)와 유사 17 Embian© 2013
  18. 18. 2. Event Processing II. 범용성 Event Processor 2.2. Event Processor 2.1. Event Stream Event 자체에 대한 연산 Event의 속성값에 대한 연산 2.3. Event Processing Network 2.4. Filtering by Event Type 2.5. Window 2.6. Counting & Negation • Etc. 2.7. Data Extraction (Access) 2.8. Filtering by Data 2.9. Aggregation (Min, Max, Sum, Avg, Etc.) • Etc. (Joining, Grouping, … ) 18 Embian© 2013
  19. 19. 2.1. Event Stream II. 범용성 Event들이 한 방향으로 계속 유입/유출되는 것 (감지시각에 의하여 정렬된 Event들의 무한집합) 흐름의 방향 & 감시시각 Event Stream 19 Embian© 2013
  20. 20. 2.2. Event Processor II. 범용성 Event Stream의 한쪽 방향에서 Event에 대한 연산을 수행하는 소프트웨어 컴포넌트 Event Processor 20 Embian© 2013
  21. 21. 2.3. Event Processing Network (EPN) II. 범용성 Event Processing을 위하여 Event Stream과 Event Processor의 Processing Topology를 구성한 것 21 Embian© 2013
  22. 22. 2.4. Filtering by Event Type – Event 자체에 대한 연산 II. 범용성 Event Type을 기준으로 Event들을 추출 ex) Event Stream 내의 Event 중에서 그 Type이 “로그인 Event”인 것만을 Filtering Input Stream Output Stream Event Type == 로그인 Event 22 Embian© 2013
  23. 23. 2.5. Window – Event 자체에 대한 연산 II. 범용성 Time Window now – 5sec now Event 감지시각(Event Detection Time)을 사용 Tuple Window n개 Event 카운터를 사용 23 0개 Embian© 2013
  24. 24. 2.6. Counting & Negation – Event 자체에 대한 연산 II. 범용성 • Counting : Event Stream 내의 Event들 개수를 세는 것 ex) 최근 1분 동안 웹페이지 Hit 수를 1초마다 모니터링 • Negation : Event Stream 내에 조건에 맞는 Event들이 없는 것을 판단 (count==0) ex) 1분 동안 특정 서버로부터의 상태 메시지(Event)가 수신되지 않는 경우 24 Embian© 2013
  25. 25. 2.7. Data Extraction (Access) – Event 속성에 대한 연산 II. 범용성 Event의 특정 속성의 값(Data)을 추출 Input Stream “종목명” 속성의 값을 추출 Google 25 Samsung Samsung Google Embian© 2013
  26. 26. 2.8. Filtering by Data – Event 속성에 대한 연산 II. 범용성 Event의 특정 속성의 값을 기준으로 Event를 추출 예) “주가 Event” 중에서 그 속성인 “종목명”의 값이 “google”인 Event들만 추출 Input Stream Output Stream 종목명 == “Google” 26 Embian© 2013
  27. 27. 2.9. Aggregation – Event 속성에 대한 연산 II. 범용성 Event의 속성 값에 대한 Min, Max, Sum, Avg 등의 연산 Input Stream “주가” 속성의 최대값 추출 1452 27 Embian© 2013
  28. 28. 3.1. Complex Event II. 범용성 “복잡한” 무슨 일은 어떻게 하지? Complex Event 예) “로그인 해킹 시도 이벤트”가 최근 1시간 동안 가장 많았던 고객 ID를 감지 여기서 “로그인 해킹 시도”란 동일한 고객 ID로 5초 동안에 5번 이상의 “로그인 실패 Event”가 발생한 경우로 정의한다. 28 Embian© 2013
  29. 29. 3.1. Complex Event II. 범용성 Simple Events Complex Event Abstraction 로그인 해킹 시도 Event 고객 ID = “tiger” 최초 시도 시각 시도 회수 ... Drill Down 29 Embian© 2013
  30. 30. 4. Complex Event Processing II. 범용성 4.1. Abstraction (Complex Event의 생성) 4.2. (Simple) Event Processing 4.3. Drill Down (Complex Event의 분해) 4.4. Pattern Matching 4.5. Causality 30 Embian© 2013
  31. 31. 4.1. Abstraction (Conjunction) (Simple) Events  Complex Event 1-1. 최근 5초 동안의 Window에서 “로그인 실패 Event”를 추출 now – 5sec now 1-2. “로그인 실패 Event” 의 속성인 “고객 ID”를 기준으로 Grouping하여 Event를 Count 6 2 3 1-3. 5개 이상인 경우, 해당 ID를 기준으로 “로그인 해킹 시도 Event”를 생성 로그인 해킹 시도 Event 고객 ID = “tiger” 최초 시도 시각 = xxx 시도 회수 = 6 31 Complex Event Embian© 2013
  32. 32. 4.2. (Simple) Event Processing II. 범용성 생성된 Complex Event에 대한 처리  (Simple) Event와 동일 2-1. 최근 1시간 동안의 Window에서 “로그인 해킹 시도 Event”를 추출 now – 1hour now 2-2. “로그인 해킹 시도 Event”의 속성인 “고객 ID” 별로 Grouping하여 Event를 Count 2 1 2-3. Count 결과가 최대인 Event에서 속성인 “고객 ID”의 값을 출력 tiger 32 Embian© 2013
  33. 33. 4.3. Drill Down (Disjunction) II. 범용성 Complex Event  Simple Events 로그인 해킹 시도 Event 고객 ID = “tiger” 최초 시도 시각 = xxx 시도 회수 = 6 33 Embian© 2013
  34. 34. 4.4. Pattern Matching II. 범용성 예) 총알 배송 쇼핑몰 정상적인 흐름 지연 Pattern 시스템 비정상 Pattern 34 Embian© 2013
  35. 35. 4.4. Pattern Matching II. 범용성 예) 주가 변화에서 W 패턴을 찾음 1. x초 동안의 “주가 Tick Event”에서 “주가상승 Event”와 “주가하락 Event”를 생성 2. y초 동안의 “주가 Tick Event”에서 “주가평균 Event”를 생성 3. “주가하락 Event”와 “주가상승 Event”를 조합하여 “개별 W패턴 Event”를 생성 4. “개별 W패턴 Event”에서 그 진폭이 “주가평균 Event”를 넘는 Event만 추출하여 “W패턴 Event” 생성 3 1 4 2 35 Embian© 2013
  36. 36. 5. Summary II. 범용성 범용성을 위하여 도메인을 포괄할 수 있는 개념들을 추상화 Complex Event Processing 1. Event 2. Event Processing 3. Complex Event 4. Complex Event Processing 36 Embian© 2013
  37. 37. III. 재사용성 - 독립 컴포넌트의 구축 37 Embian© 2013
  38. 38. 1. Custom-coding is Evil. III. 재사용성 기존 대응 방안들의 문제점  재사용성 미비 • 일반언어(C++, Java 등)로 구현 저수준 코딩을 초래 (CEP를 위한 데이터 구조 및 알고리즘을 하위레벨에서 직접 구현) • 해당 도메인에 특화됨 해당 도메인 외의 분야에서는 사용할 수 없는 구조적 한계 Knightmare 사건 (Knight Capital Group 사건) 고속으로 입력되는 많은 양의 고객의 주문(parent order)을 자체 알고리즘을 통해 child orders로 분할하여 자동으로 주식 매매  CEP의 한 종류 2012년 8월, 기존 알고리즘을 변경. 그러나, 코드에 Bug 존재 (이관 과정에서 Target 간 코드 불일치) 45분만에 5000억 이상의 손실 발생, 15억원의 벌금 부과, 결국 GETCO에 합병 38 Embian© 2013
  39. 39. 2. 재사용성의 확보 III. 재사용성 1. 추상화된 CEP의 개념요소들을 위한 공통의 기능을 구현  Event 생성, Filtering, Aggregation, 등 2. 구현된 기능들에 대한 인터페이스를 제공  기능들에 대한 인터페이스를 일반 언어에서 사용할 수 있는 함수 형태로 제공 또는 EPL(Event Processing Language) 형태로 제공 3. 위 기능을 독립된 소프트웨어 컴포넌트로 구축  CEP Engine들이 확산되고 있음 39 Embian© 2013
  40. 40. 3. 현재 재사용성 확보 단계 III. 재사용성 현재 EPL 표준화 진행 중 재사용성 컴포넌트 간 표준 인터페이스 확립 CEP Engine 공통 기능의 독립 컴포넌트화 공통 라이브러리의 확산 Standard SQL RDBMS 데이터 구조 및 알고리즘을 개인 라이브러리화 개별 프로그램에서 데이터 구조 및 알고리즘 직접 구현 표준화 40 Embian© 2013
  41. 41. 4. CEP Engine III. 재사용성 Legacy Systems Event Consumer Log in BAM, Mailer, Etc. CEP Engine Filtering Aggregation Abstraction Etc. 비즈니스 로직 인터페이스 EPL (Event Processing Language) EPL Statement EPL Statement EPL Statement 41 공통 기능 비즈니스 로직 (EPL 문장) Embian© 2013
  42. 42. 5. 요약 III. 재사용성 • 기존 대응 방식들은 재사용성이 미흡 • 재사용성을 확보하기 위하여 • 공통의 기능을 구현 • 인터페이스 제공 • 독립된 소프트웨어 컴포넌트로 구축 • 독립된 소프트웨어 컴포넌트로서 다양한 CEP Engine들이 구축되어 왔음 42 Embian© 2013
  43. 43. IV. 즉시응답성 - 패러다임의 변화 43 Embian© 2013
  44. 44. 1. Process Now IV. 즉시응답성 Conventional Model : Store Now, Process Later. 로그인 성공 기록 Log in Step 1. Storing Data Step 2. Batch Processing Event Processing Model : Process Now. Log in 로그인 성공 기록 Just Only 1 Step. 44 Embian© 2013
  45. 45. 2. 메모리 기반 처리 IV. 즉시응답성 • Event 탐지시간(detection time)을 최소화 • 데이터(Event)가 변하는 모든 때에 연산을 수행 So, 속도가 느린 외부 장치에 데이터를 저장하지 않음  메모리 내에서 직접 Event Processing 수행 45 Embian© 2013
  46. 46. 3. 분산 처리 IV. 즉시응답성 • 필요성 - 하나의 CEP Engine에서 처리할 수 있는 양을 초과 - Event 탐지시간을 최소화 • 현상황 - 대부분의 CEP Engine은 분산처리 지원 못함 • 대안 - Esper + Storm - 분산환경에서 Composition-operator를 활용하기 위한 Query Optimizer의 구현 46 Embian© 2013
  47. 47. 4. 요약 IV. 즉시응답성 • 즉시응답성을 위하여 기존의 “Store Now, Process Later” 모델 대신, “Process Now” 모델을 사용 • Process Now 모델을 위하여 메모리 기반 처리 • 현단계에서 대부분의 CEP Engine이 분산처리 미지원 47 Embian© 2013
  48. 48. V. CEP 엔진 - 구현체들 48 Embian© 2013
  49. 49. 1. CEP Engine의 종류 V. CEP 엔진 지원하는 EPL(Even Processing Language)에 따른 구분 • Data Stream Query 기반 CEP - Data(Event)의 Stream을 Query하기 위하여, 관계형 Query 언어를 사용 • Production Rule 기반 CEP - Production Rule Engine 내의 Working Memory를 활용 • Composition Operator 기반 CEP - 단순한 쿼리들을 조합하여 복잡한 쿼리를 수행 (Engine 별로 CEP의 개념요소들에 대한 구현 여부 및 방식이 상이함) 49 Embian© 2013
  50. 50. 2. Data Stream Query 기반 CEP V. CEP 엔진 Event Stream은 계속 변화  Event 간의 관계에 대한 연산은 불가능 t Stream { ø } 또는 { } 특정 시각 t에서 바라본 Stream 내의 Event들  따라서 특정 시각 t에서 Event들 간의 관계는 표현될 수 없음 50 Embian© 2013
  51. 51. 2. Data Stream Query 기반 CEP V. CEP 엔진 3가지의 연산을 통해 Event 간의 관계 연산 수행 Event Stream (INPUT) 1. Stream to Relation 2. Relation to Relation Event Stream (OUTPUT) 3. Relation to Stream 51 Embian© 2013
  52. 52. 2. Data Stream Query 기반 CEP V. CEP 엔진 1. Stream to Relation 연산 - Event Stream의 스냅샷을 Event Relation으로 변환 Event Stream Take a Snapshot Event Relation -대부분Window를사용하여Snapshot을생성 감지시각 Tick 시각 1386695097100 Samsung 201312100158 1451 1386695097230 Samsung 201312100158 1452 1386695098200 Google 201312100168 1015 1386695099998 52 종목명 주가 Samsung 201312100170 1451 Embian© 2013
  53. 53. 2. Data Stream Query 기반 CEP V. CEP 엔진 2. Relation to Relation 연산 - Event Relation에 대하여 Event들 간의 관계형 연산 수행 감지시각 종목명 Tick 시각 1386695097100 Samsung 201312100158 1451 1386695097230 Samsung 201312100158 1452 1386695098200 Google 201312100168 1015 1386695099998 Samsung 201312100170 1451 SELECT AVG(주가) FROM … 감지시각 1386695100000 AVG(주가) 1342 SELECT 종목명, AVG(주가) FROM … GROUP BY 종목명 감지시각 종목명 AVG(주가) 1386695100000 Google 1015 1386695100001 Samsung 주가 SELECT AVG(주가) FROM … GROUP BY 종목명 HAVING 주가 > 1400 감지시각 종목명 AVG(주가) 1451 53 1386695100001 Samsung 1451 Embian© 2013
  54. 54. 2. Data Stream Query 기반 CEP V. CEP 엔진 3. Relation to Stream 연산 - 처리된 Event Relation을 Event Stream으로 변환 감지시각 AVG(주가) 1386695100000 감지시각 1342 종목명 AVG(주가) 1386695100000 Google 1015 1386695100001 Samsung 1451 감지시각 1386695100001 종목명 Samsung AVG(주가) 1451 54 Embian© 2013
  55. 55. 3. 구현체들 V. CEP 엔진 STREAM (STanford stREam datA Manager) • Stanford 대학에서 연구 프로젝트로 개발됨. • Data Stream Query 기반의 CEP 엔진 • SQL과 유사한 문법의 CQL(Continuous Query Language) 사용 • Esper와 Coral8, Oracle Event Processing 11g 등의 기반이 됨 55 Embian© 2013
  56. 56. 3. 구현체들 V. CEP 엔진 Borealis • Brandeis 대학, Brown 대학, MIT 대학에서 개발한 연구용 CEP Engine • CEP Engine인 Aurora와 분산 스트림 처리 프로젝트인 Medusa를 결합 • Data Stream Query 기반. 그러나, Boxes-and-Arrows 접근방법을 활용 • Query 언어로서 XML을 사용 예시 쿼리 다이어그램 (출처 : Borealis Team. Borealis Application Programmer’s Guide. 2006) 56 Embian© 2013
  57. 57. 3. 구현체들 V. CEP 엔진 Esper • Esper Tech에 의하여 개발되었으며, Open Source(GPL v2) • Data Stream Query 기반. 패턴매칭 및 Composition-operator 기능 추가 • SQL과 유사한 문법의 EPL이라는 언어 제공 • Event에 대한 연산은 Event Tuple이 Engine에 입력/출력되는 모든 시점에 수 행됨 (STREAM은 정해진 시간마다 수행) 57 Embian© 2013
  58. 58. 3. 구현체들 V. CEP 엔진 Oracle Event Processing 11g • STREAM을 기반으로 BEA에 의하여 개발되고, Oracle에서 인수함 StreamBase • TIBICO에서 개발됨 Drools • Jboss Rules. • Production Rule 기반 SASE+ • University of Massachusetts Amherst의 연구 프로젝트 • Composition Operator 기반 58 Embian© 2013
  59. 59. 4. 요약 V. CEP 엔진 • CEP Engine의 종류 • Data Stream Query 기반 : STREAM, Esper, Oracle Event Process 11g 등 • Production Rule 기반 : Drools 등 • Composition Operator 기반 : SASE+ 등 • Data Stream Query 기반 CEP의 작동방식 • Stream to Relation 연산 • Relation to Relation 연산 • Relation to Stream 연산 • 구현체들 • STREAM 기반의 Esper가 주목받고 있음 59 Embian© 2013
  60. 60. VI. 결론 60 Embian© 2013
  61. 61. CEP는 새로운 것이 아니다 Complex Event Processing이 Complex Event Processing이 하는 일 갖추어야 할 요소 개념의 범용성 Event에 대한 즉각적 감지 컴포넌트로서의 재사용성 만족하는 조건에 대한 즉각적 반응 즉시응답성 처음부터 프로그래머가 원래 하던 업무 소프트웨어 발전 단계에서 자연스러운 요소 61 Embian© 2013
  62. 62. 참고자료 • • • • • David Luckham. A Brief Overview of the Concepts of CEP. (http://complexevents.com/wp-content/uploads/2008/07/overview-ofconcepts-of-cep.pdf), 2008. David Luckham. A Short History of Complex Event Processing, Part 1 & Part2. (http://complexevents.com/wpcontent/uploads/2008/02/1-a-short-history-of-cep-part-1.pdf), 2007. David Luckham, Roy Schulte. Event Processing Glossary (http://complexevents.com/wp-content/uploads/2008/08/epts-glossaryv11.pdf), 2008. Hai-Lam Bui. Survey and Comparison of Event Query Languages Using Practical Examples. (http://www.en.pms.ifi.lmu.de/publications/diplomarbeiten/Hai-Lam.Bui/DA_Hai-Lam.Bui.pdf ) 2008. Arvind Arasu, Shivnath Babu, and Jennifer Widom. The CQL Continuous Query Language: Semantic Foundations and Query Execution. Technical report, VLDB Journal, 2003. • Alexander Alves, Robin J. Smith, Lloyd Williams. Getting Started with Oracle Event Processing 11g. Packt Publishing, 2013. • Esper EQL Reference. (http://esper.sourceforge.net/esper-0.7.5/doc/reference/en/html/EQL.html) • • STREAM Homepage. (http://infolab.stanford.edu/stream/) STREAM Query Repository (http://infolab.stanford.edu/stream/sqr/) • TIBICO StreamBase Homepage (http://www.streambase.com/) • Borealis Team. Borealis Application Programmer’s Guide. 2006. Embian© 2013 62
  63. 63. 감사합니다. 63 Embian© 2013

×