109
Complex Event Processing with Esper Real-time Event Stream & Complex Event Processing 오픈 소스로 구현하는 Real-time CEP 데이터지능팀 I 원종석

Building Real-time CEP Application with Open Source Projects

  • Upload
    ted-won

  • View
    2.986

  • Download
    22

Embed Size (px)

DESCRIPTION

오픈 소스로 구현하는 Real-time CEP

Citation preview

Page 1: Building Real-time CEP Application with Open Source Projects

Complex Event Processing with Esper Real-time Event Stream & Complex Event Processing

오픈����������� ������������������  소스로����������� ������������������  구현하는����������� ������������������  Real-time����������� ������������������  CEP����������� ������������������  

데이터지능팀 I 원종석

Page 2: Building Real-time CEP Application with Open Source Projects

About����������� ������������������  Me����������� ������������������  

원종석����������� ������������������  @tedwon����������� ������������������  

한국����������� ������������������  JBoss����������� ������������������  User����������� ������������������  Group����������� ������������������  커뮤니티����������� ������������������  부운영자����������� ������������������  

JBoss����������� ������������������  RHQ����������� ������������������  Contributor����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  데이터����������� ������������������  분석����������� ������������������  플랫폼����������� ������������������  DAISY����������� ������������������  운영����������� ������������������  /����������� ������������������  개발����������� ������������������  중����������� ������������������  

Love����������� ������������������  Classical����������� ������������������  Music����������� ������������������  Developer����������� ������������������  ����������� ������������������  채널����������� ������������������  추천����������� ������������������  

Page 3: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  소개����������� ������������������  01

오픈����������� ������������������  소스����������� ������������������  Esper����������� ������������������  활용����������� ������������������  하기����������� ������������������  02

Index

Page 4: Building Real-time CEP Application with Open Source Projects

Index

CEP����������� ������������������  소개����������� ������������������  01����������� ������������������  

Event의����������� ������������������  정의����������� ������������������  02����������� ������������������  

Real-time����������� ������������������  이란?����������� ������������������  03����������� ������������������  

CEP����������� ������������������  적용����������� ������������������  분야와����������� ������������������  상용����������� ������������������  제품����������� ������������������  04����������� ������������������  

오픈����������� ������������������  소스����������� ������������������  Esper����������� ������������������  활용하기����������� ������������������  05����������� ������������������  

EPL과����������� ������������������  Adapter����������� ������������������  개발����������� ������������������  06����������� ������������������  

CEP����������� ������������������  개발����������� ������������������  전략����������� ������������������  07����������� ������������������  

Page 5: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  소개����������� ������������������  01����������� ������������������  § Concept����������� ������������������  of����������� ������������������  CEP����������� ������������������  § CEP����������� ������������������  적용����������� ������������������  사례����������� ������������������  § CEP����������� ������������������  기술적����������� ������������������  이해����������� ������������������  § EDA����������� ������������������  소개����������� ������������������  § EDA����������� ������������������  처리����������� ������������������  스타일����������� ������������������  3����������� ������������������  가지����������� ������������������  § ESP����������� ������������������  vs.����������� ������������������  CEP����������� ������������������  § CEP����������� ������������������  Language����������� ������������������  Style����������� ������������������  

Page 6: Building Real-time CEP Application with Open Source Projects

C E P

01 CEP 소개

Page 7: Building Real-time CEP Application with Open Source Projects

Complex Event Processing

01 CEP 소개

Page 8: Building Real-time CEP Application with Open Source Projects

01 CEP 소개

Concept����������� ������������������  of����������� ������������������  CEP����������� ������������������  

교회에서...����������� ������������������  

벨이����������� ������������������  울린다.����������� ������������������  

턱시도를����������� ������������������  입은����������� ������������������  남자와����������� ������������������  꽃을����������� ������������������  든����������� ������������������  여자가����������� ������������������  함께����������� ������������������  걷는다.����������� ������������������  

두����������� ������������������  사람����������� ������������������  위로����������� ������������������  꽃����������� ������������������  잎이����������� ������������������  날리고����������� ������������������  푹죽이����������� ������������������  터진다.����������� ������������������  

Page 9: Building Real-time CEP Application with Open Source Projects

Concept����������� ������������������  of����������� ������������������  CEP����������� ������������������  

CEP����������� ������������������  기술은����������� ������������������  이러한����������� ������������������  복합적인����������� ������������������  Event를����������� ������������������  참조하여����������� ������������������  

결혼식이라는����������� ������������������  패턴을����������� ������������������  알아����������� ������������������  차린다.����������� ������������������  

01 CEP 소개

Page 10: Building Real-time CEP Application with Open Source Projects

알고리즘����������� ������������������  주식����������� ������������������  트레이딩����������� ������������������  

Page 11: Building Real-time CEP Application with Open Source Projects

Algorithmic����������� ������������������  Stock-Trading����������� ������������������  

대표적인����������� ������������������  CEP����������� ������������������  적용����������� ������������������  사례����������� ������������������  

주식����������� ������������������  알고리즘����������� ������������������  트레이딩����������� ������������������  

실시간����������� ������������������  주식����������� ������������������  틱����������� ������������������  모니터링����������� ������������������  

실시간����������� ������������������  자동����������� ������������������  주식����������� ������������������  매도����������� ������������������  /����������� ������������������  매수����������� ������������������  

01 CEP 소개

Page 12: Building Real-time CEP Application with Open Source Projects

온라인����������� ������������������  주문����������� ������������������  실시간����������� ������������������  통계����������� ������������������  

상품별����������� ������������������  주문����������� ������������������  Top10����������� ������������������  

상품����������� ������������������  카테고리별����������� ������������������  주문����������� ������������������  Top10����������� ������������������  

지역별����������� ������������������  주문����������� ������������������  비율����������� ������������������  

01 CEP 소개

Page 13: Building Real-time CEP Application with Open Source Projects

이마트����������� ������������������  매장에서����������� ������������������  

Page 14: Building Real-time CEP Application with Open Source Projects

이마트 매장에서

전국����������� ������������������  지점별����������� ������������������  매장����������� ������������������  내����������� ������������������  고객����������� ������������������  현황����������� ������������������  실시간����������� ������������������  통계����������� ������������������  

매장����������� ������������������  내����������� ������������������  이동����������� ������������������  중����������� ������������������  자동으로����������� ������������������  실시간����������� ������������������  쿠폰����������� ������������������  발행����������� ������������������  

카트����������� ������������������  모니터를����������� ������������������  통해����������� ������������������  실시간����������� ������������������  타겟팅����������� ������������������  광고����������� ������������������  /����������� ������������������  추천����������� ������������������  

01 CEP 소개

Page 15: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  좀����������� ������������������  더����������� ������������������  디테일하게����������� ������������������  알아볼까요?����������� ������������������  

01 CEP 소개

Page 16: Building Real-time CEP Application with Open Source Projects

CEP의����������� ������������������  기술적����������� ������������������  이해����������� ������������������  

1990년����������� ������������������  중반부터����������� ������������������  학계로����������� ������������������  부터����������� ������������������  연구가����������� ������������������  시작됨����������� ������������������  

실시간����������� ������������������  이벤트����������� ������������������  처리����������� ������������������  기술����������� ������������������  

수많은����������� ������������������  Event����������� ������������������  에서����������� ������������������  의미있는����������� ������������������  이벤트����������� ������������������  찾아내고����������� ������������������  필터링����������� ������������������  

01 CEP 소개

Page 17: Building Real-time CEP Application with Open Source Projects

CEP의����������� ������������������  기술적����������� ������������������  이해����������� ������������������  (계속)����������� ������������������  

EDA(Event-driven����������� ������������������  architecture)����������� ������������������  기반����������� ������������������  시스템����������� ������������������  

Intelligence����������� ������������������  System����������� ������������������  

Loosely-coupled����������� ������������������  구조적����������� ������������������  특징����������� ������������������  

Asynchronous����������� ������������������  Style����������� ������������������  처리����������� ������������������  패러다임����������� ������������������  

����������� ������������������  

01 CEP 소개

Page 18: Building Real-time CEP Application with Open Source Projects

Asynchronous����������� ������������������  Style����������� ������������������  

CEP Style

01 CEP 소개

•  Source: Event Processing in Action

Page 19: Building Real-time CEP Application with Open Source Projects

Event����������� ������������������  Driven����������� ������������������  Architecture����������� ������������������  

Event의����������� ������������������  생산,����������� ������������������  감지,����������� ������������������  소모,����������� ������������������  반응을����������� ������������������  위한����������� ������������������  아키텍처����������� ������������������  패턴����������� ������������������  

EDA����������� ������������������  소개����������� ������������������  ����������� ������������������  

01 CEP 소개

Page 20: Building Real-time CEP Application with Open Source Projects

사람의����������� ������������������  감각����������� ������������������  기관����������� ������������������  및����������� ������������������  반응����������� ������������������  구조와����������� ������������������  유사����������� ������������������  

EDA����������� ������������������  소개����������� ������������������  (계속)����������� ������������������  

눈, 귀 등의 감각 기관 생각, 판단 손, 발의 반응

01 CEP 소개

Page 21: Building Real-time CEP Application with Open Source Projects

웹����������� ������������������  애플리케이션����������� ������������������  Architecture����������� ������������������  

Synchronous����������� ������������������  interactions����������� ������������������  

Request����������� ������������������  에����������� ������������������  대한����������� ������������������  Response����������� ������������������  구조����������� ������������������  

선저장����������� ������������������  후처리����������� ������������������  패러다임����������� ������������������  

01 CEP 소개

Page 22: Building Real-time CEP Application with Open Source Projects

선처리����������� ������������������  후저장����������� ������������������  패러다임����������� ������������������  

Asynchronous����������� ������������������  Style����������� ������������������  Processing����������� ������������������  

Response����������� ������������������  가����������� ������������������  아닌����������� ������������������  Reaction����������� ������������������  하는����������� ������������������  시스템����������� ������������������  

CEP가����������� ������������������  이러한����������� ������������������  스타일을����������� ������������������  그대로����������� ������������������  물려����������� ������������������  받음����������� ������������������  

EDA����������� ������������������  이벤트����������� ������������������  처리����������� ������������������  패러다임����������� ������������������  ����������� ������������������  

01 CEP 소개

Page 23: Building Real-time CEP Application with Open Source Projects

EDA의����������� ������������������  Event����������� ������������������  처리����������� ������������������  스타일����������� ������������������  3가지����������� ������������������  

01 CEP 소개

SEP����������� ������������������  -����������� ������������������  Simple����������� ������������������  Event����������� ������������������  Processing����������� ������������������  

����������� ������������������  

ESP����������� ������������������  -����������� ������������������  Event����������� ������������������  Stream����������� ������������������  Processing����������� ������������������  

CEP����������� ������������������  -����������� ������������������  Complex����������� ������������������  Event����������� ������������������  Processing����������� ������������������  

JMS(Java����������� ������������������  Message����������� ������������������  Service)가����������� ������������������  대표적인����������� ������������������  예����������� ������������������  

Message를����������� ������������������  전달하는����������� ������������������  Event����������� ������������������  처리����������� ������������������  

Page 24: Building Real-time CEP Application with Open Source Projects

ESP����������� ������������������  vs.����������� ������������������  CEP����������� ������������������  

ESP����������� ������������������  -����������� ������������������  일반적인����������� ������������������  모든����������� ������������������  Event����������� ������������������  스트림����������� ������������������  계산����������� ������������������  기능����������� ������������������  

����������� ������������������  Filtering,����������� ������������������  Aggregation,����������� ������������������  Join����������� ������������������  

����������� ������������������  “지난����������� ������������������  30분간의����������� ������������������  구글����������� ������������������  주식����������� ������������������  평균값����������� ������������������  계산”����������� ������������������  

CEP����������� ������������������  -����������� ������������������  ESP����������� ������������������  &����������� ������������������  패턴����������� ������������������  감지����������� ������������������  기능����������� ������������������  

01 CEP 소개

Page 25: Building Real-time CEP Application with Open Source Projects

Complex����������� ������������������  Event����������� ������������������  Processing����������� ������������������  

Detect����������� ������������������  patterns����������� ������������������  among����������� ������������������  events����������� ������������������  

Define����������� ������������������  event����������� ������������������  correlation:����������� ������������������  이벤트간의����������� ������������������  인과관계����������� ������������������  ����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

“야후!����������� ������������������  주식이����������� ������������������  10%이상����������� ������������������  떨어진����������� ������������������  이후,����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  구글����������� ������������������  주식이����������� ������������������  5%이상����������� ������������������  2번����������� ������������������  연속으로����������� ������������������  오른다면…⋯”����������� ������������������  

01 CEP 소개

Page 26: Building Real-time CEP Application with Open Source Projects

대표적인����������� ������������������  오픈����������� ������������������  소스����������� ������������������  프로젝트����������� ������������������  2����������� ������������������  가지����������� ������������������  존재����������� ������������������  

ü  EsperTech����������� ������������������  Esper����������� ������������������  SQL-like����������� ������������������  Script����������� ������������������  언어����������� ������������������  제공����������� ������������������  

ü JBoss����������� ������������������  Drools����������� ������������������  Fusion����������� ������������������  Rule����������� ������������������  Script����������� ������������������  언어����������� ������������������  제공����������� ������������������  

Complex����������� ������������������  Event����������� ������������������  Processing����������� ������������������  

01 CEP 소개

Page 27: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  소개����������� ������������������  01����������� ������������������  § Concept����������� ������������������  of����������� ������������������  CEP����������� ������������������  § CEP����������� ������������������  적용����������� ������������������  사례����������� ������������������  § CEP����������� ������������������  기술적����������� ������������������  이해����������� ������������������  § EDA����������� ������������������  소개����������� ������������������  § EDA����������� ������������������  처리����������� ������������������  스타일����������� ������������������  3����������� ������������������  가지����������� ������������������  § ESP����������� ������������������  vs.����������� ������������������  CEP����������� ������������������  § CEP����������� ������������������  Language����������� ������������������  Style����������� ������������������  

Page 28: Building Real-time CEP Application with Open Source Projects

Event의����������� ������������������  정의����������� ������������������  02����������� ������������������  § Event의����������� ������������������  정의����������� ������������������  § Event����������� ������������������  Examples����������� ������������������  § Event����������� ������������������  Stream의����������� ������������������  개념����������� ������������������  

Page 29: Building Real-time CEP Application with Open Source Projects

What����������� ������������������  is����������� ������������������  Event?����������� ������������������  

02 Event의 정의

Event란����������� ������������������  무엇인가?����������� ������������������  

무엇을����������� ������������������  Event로����������� ������������������  정의����������� ������������������  할����������� ������������������  수����������� ������������������  있는가?����������� ������������������  

Page 30: Building Real-time CEP Application with Open Source Projects

Event의����������� ������������������  정의����������� ������������������  

02 Event의 정의

Something����������� ������������������  that����������� ������������������  happens����������� ������������������  

실제로����������� ������������������  발생한����������� ������������������  사건,����������� ������������������  일,����������� ������������������  메세지����������� ������������������  

Page 31: Building Real-time CEP Application with Open Source Projects

Event란����������� ������������������  어떤����������� ������������������  것의����������� ������������������  변화이다!����������� ������������������  

Event의����������� ������������������  정의����������� ������������������  (계속)����������� ������������������  

02 Event의 정의

Page 32: Building Real-time CEP Application with Open Source Projects

변화한다는����������� ������������������  것은����������� ������������������  어떠한����������� ������������������  상태를����������� ������������������  가지고����������� ������������������  있다는����������� ������������������  의미����������� ������������������  

상태를����������� ������������������  가지고����������� ������������������  변화하는����������� ������������������  모든����������� ������������������  것이����������� ������������������  Event로����������� ������������������  정의될����������� ������������������  수����������� ������������������  있다.����������� ������������������  

이����������� ������������������  세상의����������� ������������������  모든����������� ������������������  것은����������� ������������������  변화한다.����������� ������������������  

Event의����������� ������������������  정의����������� ������������������  (계속)����������� ������������������  

02 Event의 정의

Page 33: Building Real-time CEP Application with Open Source Projects

Event����������� ������������������  Examples����������� ������������������  (계속)����������� ������������������  

Stock����������� ������������������  tick����������� ������������������  

비밀번호����������� ������������������  변경����������� ������������������  

10초마다����������� ������������������  실내����������� ������������������  온도����������� ������������������  측정����������� ������������������  

위치����������� ������������������  이동����������� ������������������  이벤트����������� ������������������  

02 Event의 정의

Page 34: Building Real-time CEP Application with Open Source Projects

Event����������� ������������������  Stream의����������� ������������������  개념����������� ������������������  

정해진����������� ������������������  Channel을����������� ������������������  통해����������� ������������������  ����������� ������������������  

시간의����������� ������������������  순서대로����������� ������������������  연속되는����������� ������������������  Event의����������� ������������������  흐름����������� ������������������  

시작과����������� ������������������  끝이����������� ������������������  없는����������� ������������������  Event의����������� ������������������  연속된����������� ������������������  흐름����������� ������������������  

Examples:����������� ������������������  ����������� ������������������  수도관의����������� ������������������  물의����������� ������������������  흐름����������� ������������������  

����������� ������������������   ����������� ������������������  ����������� ������������������  차도의����������� ������������������  자동차의����������� ������������������  흐름����������� ������������������  

02 Event의 정의

Page 35: Building Real-time CEP Application with Open Source Projects

Event의����������� ������������������  정의����������� ������������������  02����������� ������������������  § Event의����������� ������������������  정의����������� ������������������  § Event����������� ������������������  Examples����������� ������������������  § Event����������� ������������������  Stream의����������� ������������������  개념����������� ������������������  

Page 36: Building Real-time CEP Application with Open Source Projects

Real-time����������� ������������������  이란?����������� ������������������  03����������� ������������������  § Real-time����������� ������������������  시스템의����������� ������������������  정의����������� ������������������  § Real-time����������� ������������������  3����������� ������������������  Class����������� ������������������  

Page 37: Building Real-time CEP Application with Open Source Projects

Real-time����������� ������������������  시스템의����������� ������������������  정의����������� ������������������  

낮은����������� ������������������  수준의����������� ������������������  지연����������� ������������������  시간:����������� ������������������  Low����������� ������������������  latency����������� ������������������  

일정한����������� ������������������  응답����������� ������������������  속도의����������� ������������������  보장:����������� ������������������  Regularities����������� ������������������  in����������� ������������������  Response����������� ������������������  time����������� ������������������  

예측����������� ������������������  가능한����������� ������������������  성능����������� ������������������  제공:����������� ������������������  Providing����������� ������������������  predictable����������� ������������������  performance����������� ������������������  

결국 낮은 지연 시간을 일정하게 최대한 오래 유지 시켜주는 것이 핵심

03 Real-time 이란?

Page 38: Building Real-time CEP Application with Open Source Projects

Real-time����������� ������������������  3����������� ������������������  Class����������� ������������������  

Near Real-time

구체적인 범위 정의는 비즈니스 SLA 요구 수준에 따라 결정됨

03 Real-time 이란?

Real Real-time

Real-time

Page 39: Building Real-time CEP Application with Open Source Projects

Real-time����������� ������������������  3����������� ������������������  Class����������� ������������������  

Near Real-time ü Seconds����������� ������������������  수준의����������� ������������������  지연����������� ������������������  시간����������� ������������������  보장����������� ������������������  

Real-time ü Milliseconds����������� ������������������  수준����������� ������������������  보장����������� ������������������  

Real Real-time ü Microseconds����������� ������������������  수준����������� ������������������  보장����������� ������������������  

03 Real-time 이란?

Page 40: Building Real-time CEP Application with Open Source Projects

Real-time����������� ������������������  이란?����������� ������������������  03����������� ������������������  § Real-time����������� ������������������  시스템의����������� ������������������  정의����������� ������������������  § Real-time����������� ������������������  3����������� ������������������  Class����������� ������������������  

Page 41: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  적용����������� ������������������  분야와����������� ������������������  상용����������� ������������������  제품����������� ������������������  04����������� ������������������  § CEP����������� ������������������  적용����������� ������������������  분야����������� ������������������  § CEP����������� ������������������  상용����������� ������������������  제품����������� ������������������  

Page 42: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  적용����������� ������������������  분야����������� ������������������  

분야 설명

Finance Algorithmic Stock-Trading 금융 관리, fraud detection

OI Operational Intelligence 장비 고장 예측 SLA 모니터링, 침입 탐지

Analytics Real-time analytics 데이터 분석

Predictive analytics 예측 분석

EBPM Event-driven business process management BPM 자동화

BAM Business Activity Monitoring 프로세스 모니터링

Computing Stream computing 스트림 컴퓨팅

ETL Extract, Transform, Load 데이터 전처리 작업

기존의����������� ������������������  영역에����������� ������������������  첨가됨으로써����������� ������������������  보다����������� ������������������  인텔리전트한����������� ������������������  시스템으로����������� ������������������  발전����������� ������������������  

04 CEP 적용 분야와 상용 제품

Page 43: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  상용����������� ������������������  제품����������� ������������������  

벤더 제품명 설명

TIBCO TIBCO BusinessEvents 업계 최고 제품

StreamBase Systems StreamBase CEP 정교한 CEP 제품

SAP Sybase Event Stream Processor Sybase 제품 인수

Oracle Oracle CEP Esper 기반

IBM InfoSphere Streams 테러 방지 목적으로 시작 멀티미디어 스트림 프로세싱 가능

WebSphere Business Events -

Microsoft StreamInsight -

Informatica RulePoint -

대부분의����������� ������������������  메이저����������� ������������������  벤더����������� ������������������  CEP����������� ������������������  제품����������� ������������������  보유����������� ������������������  

CEP����������� ������������������  제품은����������� ������������������  모두����������� ������������������  단순한����������� ������������������  동일한����������� ������������������  구조를����������� ������������������  가짐����������� ������������������  

04 CEP 적용 분야와 상용 제품

Page 44: Building Real-time CEP Application with Open Source Projects
Page 45: Building Real-time CEP Application with Open Source Projects

이제,����������� ������������������  실제����������� ������������������  구현의����������� ������������������  비밀에����������� ������������������  ����������� ������������������  

좀����������� ������������������  더����������� ������������������  가까이����������� ������������������  다가가����������� ������������������  볼까요?����������� ������������������  

CEP

Page 46: Building Real-time CEP Application with Open Source Projects

오픈����������� ������������������  소스����������� ������������������  Esper����������� ������������������  활용하기����������� ������������������  05����������� ������������������  § Esper����������� ������������������  소개����������� ������������������  § 오픈����������� ������������������  소스����������� ������������������  Esper����������� ������������������  § Esper����������� ������������������  Architecture����������� ������������������  §  Input����������� ������������������  /����������� ������������������  Output����������� ������������������  Adapters����������� ������������������  § Esper����������� ������������������  Runtime����������� ������������������  선택����������� ������������������  § Virgo����������� ������������������  OSGi����������� ������������������  Server����������� ������������������  추천����������� ������������������  

Page 47: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  소개����������� ������������������  

가장����������� ������������������  유명한����������� ������������������  CEP����������� ������������������  오픈����������� ������������������  소스����������� ������������������  프로젝트����������� ������������������  

2004년����������� ������������������  토마스����������� ������������������  버나드(Thomas����������� ������������������  Bernhardt)가����������� ������������������  시작����������� ������������������  

Quick����������� ������������������  Start����������� ������������������  Project����������� ������������������  테스트����������� ������������������  추천����������� ������������������  

ü  https://github.com/tedwon/cep-esper-quick-start����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 48: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Quick����������� ������������������  Start����������� ������������������  Project����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 49: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Quick����������� ������������������  Start����������� ������������������  Project����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 50: Building Real-time CEP Application with Open Source Projects

EsperTech����������� ������������������  Esper����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 51: Building Real-time CEP Application with Open Source Projects

오픈����������� ������������������  소스����������� ������������������  Esper����������� ������������������  

ESP/CEP����������� ������������������  Engine����������� ������������������  제공����������� ������������������  

EPL(Event����������� ������������������  Processing����������� ������������������  Language)����������� ������������������  제공����������� ������������������  

잘����������� ������������������  정리된����������� ������������������  Reference����������� ������������������  Documentation����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 52: Building Real-time CEP Application with Open Source Projects

오픈����������� ������������������  소스����������� ������������������  Esper����������� ������������������  (계속)����������� ������������������  

In-memory����������� ������������������  기반����������� ������������������  시스템����������� ������������������  

Lightweight����������� ������������������  &����������� ������������������  Embeddable����������� ������������������  

No����������� ������������������  Runtime����������� ������������������  Support����������� ������������������  !!����������� ������������������  

05 오픈 소스 Esper 활용하기

우리의 공수가 필요한 부분

Page 53: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Architecture����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 54: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Architecture����������� ������������������  (계속)����������� ������������������  

CEP����������� ������������������  애플리케이션����������� ������������������  아키텍처����������� ������������������  심플����������� ������������������  뷰����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 55: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Architecture����������� ������������������  (계속)����������� ������������������  

CEP����������� ������������������  애플리케이션����������� ������������������  아키텍처����������� ������������������  심플����������� ������������������  뷰����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 56: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Architecture����������� ������������������  (계속)����������� ������������������  

CEP����������� ������������������  애플리케이션����������� ������������������  아키텍처����������� ������������������  심플����������� ������������������  뷰����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 57: Building Real-time CEP Application with Open Source Projects

Input����������� ������������������  /����������� ������������������  Output����������� ������������������  Adapters����������� ������������������  

CSV File Reader Input CSV File Writer Output

Socket Reader Input Socket Writer Output

HTTP Reader Input HTTP Reader Output

JDBC Jabber Output Adapter

Email (IMAP) Reader Input Email Sender

Hadoop HDFS Input Adapter Hadoop HDFS Output Adapter

Twitter JMS Publish/Subscribe

XML File Writer Output XML over HTTP Writer Output

05 오픈 소스 Esper 활용하기

Page 58: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Architecture����������� ������������������  

Hadoop FileSystem API 구현 Thrift Server 구현

ETL EPL 작성 (Extract, Transform, Load)

05 오픈 소스 Esper 활용하기

대용량����������� ������������������  로그����������� ������������������  실시간����������� ������������������  처리����������� ������������������  CEP����������� ������������������  애플리케이션����������� ������������������  아키텍처����������� ������������������  사례����������� ������������������  

ü 실시간����������� ������������������  ETL����������� ������������������  처리����������� ������������������  후����������� ������������������  HDFS����������� ������������������  저장����������� ������������������  

Page 59: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Architecture����������� ������������������  

UpdateListener����������� ������������������  인터페이스를����������� ������������������  구현하여����������� ������������������  Output����������� ������������������  Adapter����������� ������������������  구현����������� ������������������  

05 오픈 소스 Esper 활용하기

1 N

Page 60: Building Real-time CEP Application with Open Source Projects

UpdateListener����������� ������������������  API����������� ������������������  UpdateListener����������� ������������������  인터페이스를����������� ������������������  구현하여����������� ������������������  Output����������� ������������������  Adapter����������� ������������������  구현����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 61: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Runtime����������� ������������������  선택����������� ������������������  

임베디드����������� ������������������  모드����������� ������������������  or����������� ������������������  스탠드����������� ������������������  얼론����������� ������������������  모드����������� ������������������  선택����������� ������������������  필요����������� ������������������  

1.  Esper����������� ������������������  +����������� ������������������  Java����������� ������������������  EE����������� ������������������  Platform����������� ������������������  

2.  Java����������� ������������������  Standalone����������� ������������������  Instance����������� ������������������  

3.  Esper����������� ������������������  +����������� ������������������  OSGi����������� ������������������  Server����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 62: Building Real-time CEP Application with Open Source Projects

Esper����������� ������������������  Runtime����������� ������������������  선택����������� ������������������  

Esper + Java EE Platform 도입����������� ������������������  및����������� ������������������  유지보수����������� ������������������  용이����������� ������������������  

����������� ������������������  성능����������� ������������������  최적화����������� ������������������  어려움����������� ������������������  

Java Standalone Instance 가장����������� ������������������  가볍고����������� ������������������  최적화된����������� ������������������  구조로����������� ������������������  적용����������� ������������������  가능����������� ������������������  

����������� ������������������  복잡한����������� ������������������  CEP����������� ������������������  서비스����������� ������������������  구현에서����������� ������������������  한계����������� ������������������  

Esper + OSGi Server Esper와����������� ������������������  최적의����������� ������������������  궁합:����������� ������������������  Life����������� ������������������  cycle����������� ������������������  일치����������� ������������������  

����������� ������������������  라이브러리����������� ������������������  OSGi����������� ������������������  번들링����������� ������������������  이슈����������� ������������������  해결이����������� ������������������  관건����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 63: Building Real-time CEP Application with Open Source Projects

Runtime:����������� ������������������  Esper����������� ������������������  +����������� ������������������  OSGi����������� ������������������  Server����������� ������������������  

05 오픈 소스 Esper 활용하기

Zero-downtime����������� ������������������  구현����������� ������������������  가능����������� ������������������  

Page 64: Building Real-time CEP Application with Open Source Projects

Virgo����������� ������������������  OSGi����������� ������������������  Server����������� ������������������  추천����������� ������������������  

가장����������� ������������������  완성도����������� ������������������  높은����������� ������������������  오픈����������� ������������������  소스����������� ������������������  Enterprise����������� ������������������  OSGi����������� ������������������  Server����������� ������������������  

Spring����������� ������������������  F/W����������� ������������������  와����������� ������������������  통합����������� ������������������  용이����������� ������������������  

Kernel,����������� ������������������  Tomcat,����������� ������������������  Jetty����������� ������������������  OSGi����������� ������������������  서버����������� ������������������  버전����������� ������������������  제공����������� ������������������  

SpringSource����������� ������������������  유료����������� ������������������  기술����������� ������������������  지원����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 65: Building Real-time CEP Application with Open Source Projects

Virgo����������� ������������������  OSGi����������� ������������������  Server����������� ������������������  추천����������� ������������������  

05 오픈 소스 Esper 활용하기

Page 66: Building Real-time CEP Application with Open Source Projects

오픈����������� ������������������  소스����������� ������������������  Esper����������� ������������������  활용하기����������� ������������������  05����������� ������������������  § Esper����������� ������������������  소개����������� ������������������  § Esper����������� ������������������  Architecture����������� ������������������  §  Input����������� ������������������  /����������� ������������������  Output����������� ������������������  Adapters����������� ������������������  § Esper����������� ������������������  Runtime����������� ������������������  선택����������� ������������������  § Virgo����������� ������������������  OSGi����������� ������������������  Server����������� ������������������  추천����������� ������������������  

Page 67: Building Real-time CEP Application with Open Source Projects

EPL과����������� ������������������  Adapter����������� ������������������  개발����������� ������������������  06����������� ������������������  § EPL����������� ������������������  소개����������� ������������������  § EPL����������� ������������������  기능����������� ������������������  § EPL의����������� ������������������  외부����������� ������������������  리소스����������� ������������������  참조����������� ������������������  기능����������� ������������������  § RFID����������� ������������������  도메인����������� ������������������  예제����������� ������������������  § EPL����������� ������������������  등록����������� ������������������  및����������� ������������������  Output����������� ������������������  Adapter����������� ������������������  구현하기����������� ������������������  §  Input����������� ������������������  Adapter����������� ������������������  구현하기����������� ������������������  

Page 68: Building Real-time CEP Application with Open Source Projects

EPL����������� ������������������  소개����������� ������������������  

06 EPL과 Adapter 개발

SQL����������� ������������������  형식의����������� ������������������  Event����������� ������������������  처리����������� ������������������  스크립트����������� ������������������  언어����������� ������������������  

Data����������� ������������������  windows����������� ������������������  제공����������� ������������������  

Pattern����������� ������������������  matching����������� ������������������  기능����������� ������������������  제공����������� ������������������  

Page 69: Building Real-time CEP Application with Open Source Projects

OrderEvent

EPL����������� ������������������  소개����������� ������������������  

온라인����������� ������������������  쇼핑몰����������� ������������������  

지난����������� ������������������  30분간의����������� ������������������  실시간����������� ������������������  주문����������� ������������������  통계����������� ������������������  

.win:time(30 min) from group by itemId

select itemId, count(*) as cnt

Top����������� ������������������  10����������� ������������������  

limit 10

06 EPL과 Adapter 개발

Page 70: Building Real-time CEP Application with Open Source Projects

EPL����������� ������������������  소개����������� ������������������  

Continuous query

OrderEvent .win:time(30 min) from group by itemId

select itemId, count(*) as cnt

limit 10

06 EPL과 Adapter 개발

Page 71: Building Real-time CEP Application with Open Source Projects

Event����������� ������������������  filtering����������� ������������������  

EPL����������� ������������������  기능����������� ������������������  

06 EPL과 Adapter 개발

Sliding����������� ������������������  data����������� ������������������  windows����������� ������������������  and����������� ������������������  aggregation����������� ������������������  

Grouped����������� ������������������  windows����������� ������������������  and����������� ������������������  output����������� ������������������  rate����������� ������������������  limiting����������� ������������������  

Joins����������� ������������������  and����������� ������������������  Outer����������� ������������������  Joins����������� ������������������  

Subquery����������� ������������������  

Historical����������� ������������������  or����������� ������������������  reference����������� ������������������  data����������� ������������������  

Page 72: Building Real-time CEP Application with Open Source Projects

다양한����������� ������������������  외부����������� ������������������  리소스(RDBMS)와����������� ������������������  동시에����������� ������������������  조인����������� ������������������  가능����������� ������������������  

EPL의����������� ������������������  외부����������� ������������������  리소스����������� ������������������  참조����������� ������������������  기능����������� ������������������  

06 EPL과 Adapter 개발

Page 73: Building Real-time CEP Application with Open Source Projects

장소 이름 마스터 테이블

MySQL 네이티브 쿼리

EPL 조인 조건

06 EPL과 Adapter 개발

고객 마스터 정보

상품 추천 정보 등등…

from LR.std:unique(assetId).win:time(1 hour) as lr, sql:db[select zone_name from ZoneName

where zone=${lr.zone}]

최근����������� ������������������  1시간내����������� ������������������  강남역에서����������� ������������������  사용자가����������� ������������������  찾은����������� ������������������  

where zone in (‘강남역 code’)

“장소의����������� ������������������  이름!!”����������� ������������������  

select assetId, zone_name

Page 74: Building Real-time CEP Application with Open Source Projects

06 EPL과 Adapter 개발

활용����������� ������������������  예제!!����������� ������������������  좀����������� ������������������  더����������� ������������������  봅시다!!����������� ������������������  

Page 75: Building Real-time CEP Application with Open Source Projects

RFID����������� ������������������  도메인����������� ������������������  예제����������� ������������������  

실시간으로����������� ������������������  Asset의����������� ������������������  움직임을����������� ������������������  추적하는����������� ������������������  예제����������� ������������������  

위치����������� ������������������  이동(LocationReport)����������� ������������������  이벤트����������� ������������������  정의����������� ������������������  

����������� ������������������  asset����������� ������������������  id����������� ������������������  속성 ����������� ������������������  :����������� ������������������  asset����������� ������������������  고유����������� ������������������  아이디����������� ������������������  ����������� ������������������  zone����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  속성 ����������� ������������������  :����������� ������������������  변화된����������� ������������������  위치����������� ������������������  값����������� ������������������  

06 EPL과 Adapter 개발

Page 76: Building Real-time CEP Application with Open Source Projects

위치 이동 이벤트 정의

public class LocationReport { private String assetId; // Asset 아이디 private int zone; // 위치 값

… }

POJO����������� ������������������  스타일����������� ������������������  이벤트����������� ������������������  타입����������� ������������������  정의����������� ������������������  

06 EPL과 Adapter 개발

Page 77: Building Real-time CEP Application with Open Source Projects

시나리오����������� ������������������  

“Asset이����������� ������������������  서로����������� ������������������  다른����������� ������������������  Zone으로����������� ������������������  이동����������� ������������������  후����������� ������������������  ����������� ������������������  

10초����������� ������������������  이상����������� ������������������  머무르면,����������� ������������������  

06 EPL과 Adapter 개발

경보를����������� ������������������  알려라”����������� ������������������  

Page 78: Building Real-time CEP Application with Open Source Projects

시나리오����������� ������������������  “Asset이����������� ������������������  서로����������� ������������������  다른����������� ������������������  Zone으로����������� ������������������  이동����������� ������������������  후����������� ������������������  ����������� ������������������  

����������� ������������������   ����������� ������������������  10초����������� ������������������  이상����������� ������������������  머무르면,����������� ������������������  경보를����������� ������������������  알려라”����������� ������������������  

06 EPL과 Adapter 개발

Page 79: Building Real-time CEP Application with Open Source Projects

EPL����������� ������������������  작성����������� ������������������  

“Asset이����������� ������������������  서로����������� ������������������  다른����������� ������������������  Zone으로����������� ������������������  이동����������� ������������������  후����������� ������������������  ����������� ������������������  

����������� ������������������   ����������� ������������������  10초����������� ������������������  이상����������� ������������������  머무르면,����������� ������������������  경보를����������� ������������������  알려라”����������� ������������������  

select Part.zone from pattern [ every Part=CountZone(cnt in (1, 2)) -> ( not CountZone(zone=Part.zone, cnt in (0, 3)) and timer:interval(10 sec) )]

06 EPL과 Adapter 개발

Page 80: Building Real-time CEP Application with Open Source Projects

06 EPL과 Adapter 개발

구조를����������� ������������������  이해하고����������� ������������������  ����������� ������������������  

활용하면����������� ������������������  됩니다!����������� ������������������  

Page 81: Building Real-time CEP Application with Open Source Projects

EPL����������� ������������������  구조����������� ������������������  

“Asset이����������� ������������������  서로����������� ������������������  다른����������� ������������������  Zone으로����������� ������������������  이동����������� ������������������  후����������� ������������������  ����������� ������������������  

����������� ������������������   ����������� ������������������  10초����������� ������������������  이상����������� ������������������  머무르면,����������� ������������������  경보를����������� ������������������  알려라”����������� ������������������  

select * from pattern [ ] expression

06 EPL과 Adapter 개발

Page 82: Building Real-time CEP Application with Open Source Projects

EPL����������� ������������������  구조����������� ������������������  

“Event����������� ������������������  B가����������� ������������������  발생하고����������� ������������������  Event����������� ������������������  C가����������� ������������������  발생한����������� ������������������  이후에,����������� ������������������  ����������� ������������������  

Event����������� ������������������  A가����������� ������������������  발생한”����������� ������������������  패턴!����������� ������������������  

followed����������� ������������������  ����������� ������������������  by����������� ������������������  

Event����������� ������������������  Correlation,����������� ������������������  인과����������� ������������������  관계의����������� ������������������  정의����������� ������������������  

from pattern [ A -> (B and C)]

06 EPL과 Adapter 개발

Page 83: Building Real-time CEP Application with Open Source Projects

EPL����������� ������������������  구조����������� ������������������  

“Asset이����������� ������������������  서로����������� ������������������  다른����������� ������������������  Zone으로����������� ������������������  이동����������� ������������������  후����������� ������������������  ����������� ������������������  

����������� ������������������   ����������� ������������������  10초����������� ������������������  이상����������� ������������������  머무르면,����������� ������������������  경보를����������� ������������������  알려라”����������� ������������������  

asset 부분 집합 zone -> ( not (nothing or asset 전체 집합) and 10초 유지 )

06 EPL과 Adapter 개발

Page 84: Building Real-time CEP Application with Open Source Projects

그렇다면����������� ������������������  

����������� ������������������  ����������� ������������������  코딩은����������� ������������������  어떻게?����������� ������������������  

EPL����������� ������������������  등록����������� ������������������  및����������� ������������������  Output����������� ������������������  Adapter����������� ������������������  구현����������� ������������������  

쉽게!����������� ������������������  간단하게!����������� ������������������  3����������� ������������������  Step!����������� ������������������  

06 EPL과 Adapter 개발

Page 85: Building Real-time CEP Application with Open Source Projects

EPL����������� ������������������  등록����������� ������������������  및����������� ������������������  Output����������� ������������������  Adapter����������� ������������������  구현����������� ������������������  

// Step 1. CEP 엔진 인스턴스 초기화

EPServiceProvider epEngine =

EPServiceProviderManager.getProvider(“MyID”, config);

Engine 아이디 등록

Engine 튜닝 값 정의

06 EPL과 Adapter 개발

Page 86: Building Real-time CEP Application with Open Source Projects

EPL����������� ������������������  등록����������� ������������������  및����������� ������������������  Output����������� ������������������  Adapter����������� ������������������  구현����������� ������������������  

// Step 2. EPL 등록하기

EPStatement statement =

epEngine.getEPAdministrator().createEPL(“…”);

EPL 등록

06 EPL과 Adapter 개발

Page 87: Building Real-time CEP Application with Open Source Projects

EPL����������� ������������������  등록����������� ������������������  및����������� ������������������  Output����������� ������������������  Adapter����������� ������������������  구현����������� ������������������  

// Step 3. Output Adapter 구현하기

statement.addListener(new UpdateListener() {

public void update(EventBean[] newEvents) { // 이벤트 처리 코드 file writing, email 발송등…

}

});

EPL 결과 처리 코드

06 EPL과 Adapter 개발

Page 88: Building Real-time CEP Application with Open Source Projects

Input����������� ������������������  Adapter����������� ������������������  구현하기����������� ������������������  

Engine으로 Event 전달

06 EPL과 Adapter 개발

// Step 2. 이벤트 생성 및 전달

LocationReport event = new LocationReport(assetId, x, y, zone);

epEngine.getEPRuntime().sendEvent(event);

Page 89: Building Real-time CEP Application with Open Source Projects

EPL과����������� ������������������  Adapter����������� ������������������  개발����������� ������������������  06����������� ������������������  § EPL����������� ������������������  소개����������� ������������������  § EPL����������� ������������������  기능����������� ������������������  § EPL의����������� ������������������  외부����������� ������������������  리소스����������� ������������������  참조����������� ������������������  기능����������� ������������������  § RFID����������� ������������������  도메인����������� ������������������  예제����������� ������������������  § EPL����������� ������������������  등록����������� ������������������  및����������� ������������������  Output����������� ������������������  Adapter����������� ������������������  구현하기����������� ������������������  §  Input����������� ������������������  Adapter����������� ������������������  구현하기����������� ������������������  

Page 90: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  개발����������� ������������������  전략����������� ������������������  07����������� ������������������  § CEP����������� ������������������  개발����������� ������������������  프로세스����������� ������������������  § CEP����������� ������������������  개발����������� ������������������  주요����������� ������������������  포인트����������� ������������������  § HTTP����������� ������������������  Input����������� ������������������  Adapter����������� ������������������  선택����������� ������������������  기준����������� ������������������  예시����������� ������������������  § CEP����������� ������������������  Monitoring����������� ������������������  방안����������� ������������������  § Performance����������� ������������������  측정����������� ������������������  기준����������� ������������������  

Page 91: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  개발����������� ������������������  프로세스����������� ������������������  

이벤트����������� ������������������  정의����������� ������������������  1

2

3

4

5

핵심����������� ������������������  과정����������� ������������������  

07 CEP 개발 전략

이벤트����������� ������������������  타입(포맷)����������� ������������������  정의����������� ������������������  

EPL����������� ������������������  정의����������� ������������������  

Output����������� ������������������  Adapter����������� ������������������  개발����������� ������������������  /����������� ������������������  등록����������� ������������������  

Input����������� ������������������  Adapter����������� ������������������  개발����������� ������������������  /����������� ������������������  등록����������� ������������������  

Page 92: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  개발����������� ������������������  주요����������� ������������������  포인트����������� ������������������  

Runtime����������� ������������������  환경����������� ������������������  결정����������� ������������������  

Zero-downtime����������� ������������������  지원����������� ������������������  여부����������� ������������������  결정����������� ������������������  

Runtime시����������� ������������������  EPL����������� ������������������  업데이트����������� ������������������  지원����������� ������������������  여부����������� ������������������  결정����������� ������������������  

Event의����������� ������������������  타입과����������� ������������������  용량����������� ������������������  결정����������� ������������������   성능과 밀접한 연관

Biz 요건과 연관

07 CEP 개발 전략

Page 93: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  개발����������� ������������������  주요����������� ������������������  포인트����������� ������������������  

CEP����������� ������������������  Engine����������� ������������������  성능����������� ������������������  튜닝����������� ������������������  

성능����������� ������������������  모니터링����������� ������������������  방안����������� ������������������  

Input����������� ������������������  /����������� ������������������  Output����������� ������������������  Adapter����������� ������������������  성능����������� ������������������  고려����������� ������������������  

Input����������� ������������������  Adapter의����������� ������������������  통신����������� ������������������  protocol����������� ������������������  결정����������� ������������������  중요����������� ������������������  

07 CEP 개발 전략

멀티 thread 카운트 조절

병목 현상 발생 방지

Page 94: Building Real-time CEP Application with Open Source Projects

HTTP����������� ������������������  Input����������� ������������������  Adapter����������� ������������������  선택����������� ������������������  기준����������� ������������������  예시����������� ������������������  

Asynchronous����������� ������������������  non-blocking����������� ������������������  Http����������� ������������������  Web����������� ������������������  Server����������� ������������������  

Synchronous����������� ������������������  Blocking����������� ������������������  Http����������� ������������������  Web����������� ������������������  Server����������� ������������������  

Apache����������� ������������������  HttpCore����������� ������������������  NIO����������� ������������������  모듈����������� ������������������  추천����������� ������������������  

ü  https://github.com/tedwon/async-non-blocking-http-server����������� ������������������  

고성능����������� ������������������  확보의����������� ������������������  어려움����������� ������������������  

07 CEP 개발 전략

Page 95: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  Monitoring����������� ������������������  방안����������� ������������������  

Real-time����������� ������������������  시스템은����������� ������������������  장애에도����������� ������������������  즉각적으로����������� ������������������  대응이����������� ������������������  중요����������� ������������������  

주요����������� ������������������  모니터링����������� ������������������  팩터����������� ������������������  

ü  Availability����������� ������������������  ü  Total����������� ������������������  Input����������� ������������������  Event����������� ������������������  Count����������� ������������������  

ü  Throughput����������� ������������������  ü  Latency����������� ������������������  

07 CEP 개발 전략

Page 96: Building Real-time CEP Application with Open Source Projects

모니터링까지����������� ������������������  개발하라구???����������� ������������������  

07 CEP 개발 전략

배보다����������� ������������������  배꼽이����������� ������������������  커지는����������� ������������������  수가����������� ������������������  있다구!!����������� ������������������  

Page 97: Building Real-time CEP Application with Open Source Projects

JBoss RHQ 추천 07 CEP 개발 전략

Page 98: Building Real-time CEP Application with Open Source Projects

JBoss RHQ 추천 (계속) 07 CEP 개발 전략

Page 99: Building Real-time CEP Application with Open Source Projects

CEP Monitoring 방안 07 CEP 개발 전략

Page 100: Building Real-time CEP Application with Open Source Projects

이제����������� ������������������  서비스����������� ������������������  론칭만����������� ������������������  남았다!!����������� ������������������  

07 CEP 개발 전략

Wait!!����������� ������������������  뭔가����������� ������������������  빠진����������� ������������������  이����������� ������������������  느낌은����������� ������������������  뭐지??����������� ������������������  

실시간����������� ������������������  서비스����������� ������������������  수준은����������� ������������������  정의했는가?����������� ������������������  

Page 101: Building Real-time CEP Application with Open Source Projects

Latency����������� ������������������  statistics����������� ������������������  측정����������� ������������������  

ü  Throughput����������� ������������������  고정����������� ������������������  

ü CPU����������� ������������������  Usage����������� ������������������  100%����������� ������������������  수준까지����������� ������������������  진행����������� ������������������  

ü 성능����������� ������������������  수준����������� ������������������  결정:����������� ������������������  SLA����������� ������������������  정의����������� ������������������  

Performance 측정 기준 07 CEP 개발 전략

Throughput����������� ������������������  

ü  events/sec����������� ������������������  Latency����������� ������������������  

ü  us/event����������� ������������������  or����������� ������������������  ms/event����������� ������������������  ����������� ������������������  

Page 102: Building Real-time CEP Application with Open Source Projects

Latency statistics Latency����������� ������������������  정규����������� ������������������  분포����������� ������������������  통계����������� ������������������  계산����������� ������������������  

Throughput 995900 (active 0 pending 0)

5 µs 수준의 성능

07 CEP 개발 전략

나노세컨드 단위 측정

Page 103: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  개발����������� ������������������  전략����������� ������������������  07����������� ������������������  § CEP����������� ������������������  개발����������� ������������������  프로세스����������� ������������������  § CEP����������� ������������������  개발����������� ������������������  주요����������� ������������������  포인트����������� ������������������  § HTTP����������� ������������������  Input����������� ������������������  Adapter����������� ������������������  선택����������� ������������������  기준����������� ������������������  예시����������� ������������������  § CEP����������� ������������������  Monitoring����������� ������������������  방안����������� ������������������  § Performance����������� ������������������  측정����������� ������������������  기준����������� ������������������  

Page 104: Building Real-time CEP Application with Open Source Projects

CEP����������� ������������������  그리고����������� ������������������  ����������� ������������������  Big����������� ������������������  Data����������� ������������������  시대����������� ������������������  

마무리

Page 105: Building Real-time CEP Application with Open Source Projects

로그����������� ������������������  수집����������� ������������������  및����������� ������������������  분배����������� ������������������  기술����������� ������������������  

마무리

진정한����������� ������������������  Big����������� ������������������  Data����������� ������������������  시대의����������� ������������������  기술����������� ������������������  요소����������� ������������������  

통합����������� ������������������  기술����������� ������������������  

대용량����������� ������������������  데이터의����������� ������������������  배치����������� ������������������  처리����������� ������������������  및����������� ������������������  분석����������� ������������������  기술����������� ������������������  

실시간����������� ������������������  이벤트����������� ������������������  처리����������� ������������������  기술����������� ������������������  

Page 106: Building Real-time CEP Application with Open Source Projects

마무리

진정한����������� ������������������  Big����������� ������������������  Data����������� ������������������  시대의����������� ������������������  기술����������� ������������������  요소����������� ������������������  

Scribe,����������� ������������������  Flume����������� ������������������  분산����������� ������������������  로그����������� ������������������  수집기����������� ������������������  

개발자의����������� ������������������  기술력����������� ������������������  

Hadoop����������� ������������������  분산����������� ������������������  파일����������� ������������������  처리����������� ������������������  시스템����������� ������������������  

CEP����������� ������������������  Esper����������� ������������������  &����������� ������������������  분산����������� ������������������  ESP����������� ������������������  S4,����������� ������������������  Storm����������� ������������������  

Page 107: Building Real-time CEP Application with Open Source Projects

Hadoop����������� ������������������  

진정한����������� ������������������  Big����������� ������������������  Data����������� ������������������  시대의����������� ������������������  기술����������� ������������������  요소����������� ������������������  

CEP����������� ������������������  Esper����������� ������������������  

분산����������� ������������������  ESP����������� ������������������  S4,����������� ������������������  Storm����������� ������������������  

Page 108: Building Real-time CEP Application with Open Source Projects

q  http://en.wikipedia.org/wiki/Complex_event_processing

q  http://en.wikipedia.org/wiki/Event-driven_architecture

q  Complex Event Processing Blog http://www.complexevents.com/

q  thecepblog http://www.thecepblog.com/

q  Event Processing in Action http://www.manning.com/etzion/

q  ESP and CEP with Esper http://goo.gl/LodWe

q  EDA – ESP & CEP ... with Java http://goo.gl/KW72p

q  Event Processing in Java A Financial Services Case Study http://goo.gl/6iPbt

q  실시간 빅 데이터(Real-time Big Data) 프로세싱 맛보기 http://goo.gl/IGaHB

q  Esper Documentation http://goo.gl/isNb6

q  JBoss Drools Fusion http://goo.gl/XIoGJ

q  Applying CEP Drools Fusion http://goo.gl/MsYCH

q  JBoss RHQ https://docs.jboss.org/author/display/RHQ

References

Page 109: Building Real-time CEP Application with Open Source Projects

감사합니다. 개발실 / 데이터지능팀 / 원종석

[email protected] @tedwon