• Like
  • Save
Building Real-time CEP Application with Open Source Projects
Upcoming SlideShare
Loading in...5
×
 

Building Real-time CEP Application with Open Source Projects

on

  • 2,455 views

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

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

Statistics

Views

Total Views
2,455
Views on SlideShare
1,051
Embed Views
1,404

Actions

Likes
6
Downloads
51
Comments
0

5 Embeds 1,404

http://tedwon.com 722
http://dev.nkia.net 527
http://cms.nkia.net 144
http://115.68.2.182 6
http://221.141.145.136 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Building Real-time CEP Application with Open Source Projects Building Real-time CEP Application with Open Source Projects Presentation Transcript

    • Complex Event Processing with EsperReal-time Event Stream & Complex Event Processing 
오픈
    •   소스로
    •   구현하는
    •   Real-time
    •   CEP
    •   데이터지능팀 I 원종석
    • About
    •   Me
    •   원종석
    •   @tedwon
    •   한국
    •   JBoss
    •   User
    •   Group
    •   커뮤니티
    •   부운영자
    •   JBoss
    •   RHQ
    •   Contributor
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   데이터
    •   분석
    •   플랫폼
    •   DAISY
    •   운영
    •   /
    •   개발
    •   중
    •   Love
    •   Classical
    •   Music
    •   Developer
    •   
    •   채널
    •   추천
    •   
    • CEP
    •   소개
    •   01오픈
    •   소스
    •   Esper
    •   활용
    •   하기
    •   02Index
    • IndexCEP
    •   소개
    •   01
    •   Event의
    •   정의
    •   02
    •   Real-time
    •   이란?
    •   03
    •   CEP
    •   적용
    •   분야와
    •   상용
    •   제품
    •   04
    •   오픈
    •   소스
    •   Esper
    •   활용하기
    •   05
    •   EPL과
    •   Adapter
    •   개발
    •   06
    •   CEP
    •   개발
    •   전략
    •   07
    •   
    • CEP
    •   소개
    •   01
    •   §  Concept
    •   of
    •   CEP
    •   §  CEP
    •   적용
    •   사례
    •   §  CEP
    •   기술적
    •   이해
    •   §  EDA
    •   소개
    •   §  EDA
    •   처리
    •   스타일
    •   3
    •   가지
    •   §  ESP
    •   vs.
    •   CEP
    •   §  CEP
    •   Language
    •   Style
    •   
    • C E P01 CEP 소개
    • Complex Event Processing01 CEP 소개
    • 01 CEP 소개 Concept
    •   of
    •   CEP
    •   교회에서...
    •   벨이
    •   울린다.
    •   턱시도를
    •   입은
    •   남자와
    •   꽃을
    •   든
    •   여자가
    •   함께
    •   걷는다.
    •   두
    •   사람
    •   위로
    •   꽃
    •   잎이
    •   날리고
    •   푹죽이
    •   터진다.
    •   
    • Concept
    •   of
    •   CEP
    •   CEP
    •   기술은
    •   이러한
    •   복합적인
    •   Event를
    •   참조하여
    •   결혼식이라는
    •   패턴을
    •   알아
    •   차린다.
    •   01 CEP 소개
    • 알고리즘
    •   주식
    •   트레이딩
    •   
    • Algorithmic
    •   Stock-Trading
    •   대표적인
    •   CEP
    •   적용
    •   사례
    •   주식
    •   알고리즘
    •   트레이딩
    •   실시간
    •   주식
    •   틱
    •   모니터링
    •   실시간
    •   자동
    •   주식
    •   매도
    •   /
    •   매수
    •   01 CEP 소개
    • 온라인
    •   주문
    •   실시간
    •   통계
    •   상품별
    •   주문
    •   Top10
    •   상품
    •   카테고리별
    •   주문
    •   Top10
    •   지역별
    •   주문
    •   비율
    •   01 CEP 소개
    • 이마트
    •   매장에서
    •   
    • 이마트 매장에서전국
    •   지점별
    •   매장
    •   내
    •   고객
    •   현황
    •   실시간
    •   통계
    •   매장
    •   내
    •   이동
    •   중
    •   자동으로
    •   실시간
    •   쿠폰
    •   발행
    •   카트
    •   모니터를
    •   통해
    •   실시간
    •   타겟팅
    •   광고
    •   /
    •   추천
    •   01 CEP 소개
    • CEP
    •   좀
    •   더
    •   디테일하게
    •   알아볼까요?
    •   01 CEP 소개
    • CEP의
    •   기술적
    •   이해
    •   1990년
    •   중반부터
    •   학계로
    •   부터
    •   연구가
    •   시작됨
    •   실시간
    •   이벤트
    •   처리
    •   기술
    •   수많은
    •   Event
    •   에서
    •   의미있는
    •   이벤트
    •   찾아내고
    •   필터링
    •   01 CEP 소개
    • CEP의
    •   기술적
    •   이해
    •   (계속)
    •   EDA(Event-driven
    •   architecture)
    •   기반
    •   시스템
    •   Intelligence
    •   System
    •   Loosely-coupled
    •   구조적
    •   특징
    •   Asynchronous
    •   Style
    •   처리
    •   패러다임
    •   
    •   01 CEP 소개
    • Asynchronous
    •   Style
    •   CEP Style01 CEP 소개 •  Source: Event Processing in Action
    • Event
    •   Driven
    •   Architecture
    •   Event의
    •   생산,
    •   감지,
    •   소모,
    •   반응을
    •   위한
    •   아키텍처
    •   패턴
    •   EDA
    •   소개
    •   
    •   01 CEP 소개
    • 사람의
    •   감각
    •   기관
    •   및
    •   반응
    •   구조와
    •   유사
    •   EDA
    •   소개
    •   (계속)
    •   눈, 귀 등의 감각 기관 생각, 판단 손, 발의 반응01 CEP 소개
    • 웹
    •   애플리케이션
    •   Architecture
    •   Synchronous
    •   interactions
    •   Request
    •   에
    •   대한
    •   Response
    •   구조
    •   선저장
    •   후처리
    •   패러다임
    •   01 CEP 소개
    • 선처리
    •   후저장
    •   패러다임
    •   Asynchronous
    •   Style
    •   Processing
    •   Response
    •   가
    •   아닌
    •   Reaction
    •   하는
    •   시스템
    •   CEP가
    •   이러한
    •   스타일을
    •   그대로
    •   물려
    •   받음
    •   EDA
    •   이벤트
    •   처리
    •   패러다임
    •   
    •   01 CEP 소개
    • EDA의
    •   Event
    •   처리
    •   스타일
    •   3가지
    •   01 CEP 소개 SEP
    •   -
    •   Simple
    •   Event
    •   Processing
    •   
    •   ESP
    •   -
    •   Event
    •   Stream
    •   Processing
    •   CEP
    •   -
    •   Complex
    •   Event
    •   Processing
    •   JMS(Java
    •   Message
    •   Service)가
    •   대표적인
    •   예
    •   Message를
    •   전달하는
    •   Event
    •   처리
    •   
    • ESP
    •   vs.
    •   CEP
    •   ESP
    •   -
    •   일반적인
    •   모든
    •   Event
    •   스트림
    •   계산
    •   기능
    •   
    •   Filtering,
    •   Aggregation,
    •   Join
    •   
    •   “지난
    •   30분간의
    •   구글
    •   주식
    •   평균값
    •   계산”
    •   CEP
    •   -
    •   ESP
    •   &
    •   패턴
    •   감지
    •   기능
    •   01 CEP 소개
    • Complex
    •   Event
    •   Processing
    •   Detect
    •   patterns
    •   among
    •   events
    •   Define
    •   event
    •   correlation:
    •   이벤트간의
    •   인과관계
    •   
    •   
    •   
    •   
    •   
    •   
    •   “야후!
    •   주식이
    •   10%이상
    •   떨어진
    •   이후,
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   
    •   구글
    •   주식이
    •   5%이상
    •   2번
    •   연속으로
    •   오른다면…⋯”
    •   01 CEP 소개
    • 대표적인
    •   오픈
    •   소스
    •   프로젝트
    •   2
    •   가지
    •   존재
    •   ü  EsperTech
    •   Esper
    •   SQL-like
    •   Script
    •   언어
    •   제공
    •   ü JBoss
    •   Drools
    •   Fusion
    •   Rule
    •   Script
    •   언어
    •   제공
    •   Complex
    •   Event
    •   Processing
    •   01 CEP 소개
    • CEP
    •   소개
    •   01
    •   §  Concept
    •   of
    •   CEP
    •   §  CEP
    •   적용
    •   사례
    •   §  CEP
    •   기술적
    •   이해
    •   §  EDA
    •   소개
    •   §  EDA
    •   처리
    •   스타일
    •   3
    •   가지
    •   §  ESP
    •   vs.
    •   CEP
    •   §  CEP
    •   Language
    •   Style
    •   
    • Event의
    •   정의
    •   02
    •   §  Event의
    •   정의
    •   §  Event
    •   Examples
    •   §  Event
    •   Stream의
    •   개념
    •   
    • What
    •   is
    •   Event?
    •   02 Event의 정의 Event란
    •   무엇인가?
    •   무엇을
    •   Event로
    •   정의
    •   할
    •   수
    •   있는가?
    •   
    • Event의
    •   정의
    •   02 Event의 정의 Something
    •   that
    •   happens
    •   실제로
    •   발생한
    •   사건,
    •   일,
    •   메세지
    •   
    • Event란
    •   어떤
    •   것의
    •   변화이다!
    •   Event의
    •   정의
    •   (계속)
    •   02 Event의 정의
    • 변화한다는
    •   것은
    •   어떠한
    •   상태를
    •   가지고
    •   있다는
    •   의미
    •   상태를
    •   가지고
    •   변화하는
    •   모든
    •   것이
    •   Event로
    •   정의될
    •   수
    •   있다.
    •   이
    •   세상의
    •   모든
    •   것은
    •   변화한다.
    •   Event의
    •   정의
    •   (계속)
    •   02 Event의 정의
    • Event
    •   Examples
    •   (계속)
    •   Stock
    •   tick
    •   비밀번호
    •   변경
    •   10초마다
    •   실내
    •   온도
    •   측정
    •   위치
    •   이동
    •   이벤트
    •   02 Event의 정의
    • Event
    •   Stream의
    •   개념
    •   정해진
    •   Channel을
    •   통해
    •   
    •   시간의
    •   순서대로
    •   연속되는
    •   Event의
    •   흐름
    •   시작과
    •   끝이
    •   없는
    •   Event의
    •   연속된
    •   흐름
    •   Examples:
    •   
    •   수도관의
    •   물의
    •   흐름
    •   
    •    
    •   
    •   차도의
    •   자동차의
    •   흐름
    •   02 Event의 정의
    • Event의
    •   정의
    •   02
    •   §  Event의
    •   정의
    •   §  Event
    •   Examples
    •   §  Event
    •   Stream의
    •   개념
    •   
    • Real-time
    •   이란?
    •   03
    •   §  Real-time
    •   시스템의
    •   정의
    •   §  Real-time
    •   3
    •   Class
    •   
    • Real-time
    •   시스템의
    •   정의
    •   낮은
    •   수준의
    •   지연
    •   시간:
    •   Low
    •   latency
    •   일정한
    •   응답
    •   속도의
    •   보장:
    •   Regularities
    •   in
    •   Response
    •   time
    •   예측
    •   가능한
    •   성능
    •   제공:
    •   Providing
    •   predictable
    •   performance
    •   결국 낮은 지연 시간을 일정하게 최대한 오래 유지 시켜주는 것이 핵심03 Real-time 이란?
    • Real-time
    •   3
    •   Class
    •   Near Real-time구체적인 범위 정의는 비즈니스 SLA 요구 수준에 따라 결정됨03 Real-time 이란? Real Real-timeReal-time
    • Real-time
    •   3
    •   Class
    •   Near Real-timeü Seconds
    •   수준의
    •   지연
    •   시간
    •   보장
    •   Real-timeü Milliseconds
    •   수준
    •   보장
    •   Real Real-timeü Microseconds
    •   수준
    •   보장
    •   03 Real-time 이란?
    • Real-time
    •   이란?
    •   03
    •   §  Real-time
    •   시스템의
    •   정의
    •   §  Real-time
    •   3
    •   Class
    •   
    • CEP
    •   적용
    •   분야와
    •   상용
    •   제품
    •   04
    •   §  CEP
    •   적용
    •   분야
    •   §  CEP
    •   상용
    •   제품
    •   
    • CEP
    •   적용
    •   분야
    •   분야 설명Finance Algorithmic Stock-Trading 금융 관리, fraud detectionOI 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 적용 분야와 상용 제품
    • 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 적용 분야와 상용 제품
    • 이제,
    •   실제
    •   구현의
    •   비밀에
    •   
    •   좀
    •   더
    •   가까이
    •   다가가
    •   볼까요?
    •   CEP
    • 오픈
    •   소스
    •   Esper
    •   활용하기
    •   05
    •   §  Esper
    •   소개
    •   §  오픈
    •   소스
    •   Esper
    •   §  Esper
    •   Architecture
    •   §  Input
    •   /
    •   Output
    •   Adapters
    •   §  Esper
    •   Runtime
    •   선택
    •   §  Virgo
    •   OSGi
    •   Server
    •   추천
    •   
    • Esper
    •   소개
    •   가장
    •   유명한
    •   CEP
    •   오픈
    •   소스
    •   프로젝트
    •   2004년
    •   토마스
    •   버나드(Thomas
    •   Bernhardt)가
    •   시작
    •   Quick
    •   Start
    •   Project
    •   테스트
    •   추천
    •   ü  https://github.com/tedwon/cep-esper-quick-start
    •   05 오픈 소스 Esper 활용하기
    • Esper
    •   Quick
    •   Start
    •   Project
    •   05 오픈 소스 Esper 활용하기
    • Esper
    •   Quick
    •   Start
    •   Project
    •   05 오픈 소스 Esper 활용하기
    • EsperTech
    •   Esper
    •   05 오픈 소스 Esper 활용하기
    • 오픈
    •   소스
    •   Esper
    •   ESP/CEP
    •   Engine
    •   제공
    •   EPL(Event
    •   Processing
    •   Language)
    •   제공
    •   잘
    •   정리된
    •   Reference
    •   Documentation
    •   05 오픈 소스 Esper 활용하기
    • 오픈
    •   소스
    •   Esper
    •   (계속)
    •   In-memory
    •   기반
    •   시스템
    •   Lightweight
    •   &
    •   Embeddable
    •   No
    •   Runtime
    •   Support
    •   !!
    •   05 오픈 소스 Esper 활용하기 우리의 공수가 필요한 부분
    • Esper
    •   Architecture
    •   05 오픈 소스 Esper 활용하기
    • Esper
    •   Architecture
    •   (계속)
    •   CEP
    •   애플리케이션
    •   아키텍처
    •   심플
    •   뷰
    •   05 오픈 소스 Esper 활용하기
    • Esper
    •   Architecture
    •   (계속)
    •   CEP
    •   애플리케이션
    •   아키텍처
    •   심플
    •   뷰
    •   05 오픈 소스 Esper 활용하기
    • Esper
    •   Architecture
    •   (계속)
    •   CEP
    •   애플리케이션
    •   아키텍처
    •   심플
    •   뷰
    •   05 오픈 소스 Esper 활용하기
    • Input
    •   /
    •   Output
    •   Adapters
    •   CSV File Reader Input CSV File Writer OutputSocket Reader Input Socket Writer OutputHTTP Reader Input HTTP Reader OutputJDBC Jabber Output AdapterEmail (IMAP) Reader Input Email SenderHadoop HDFS Input Adapter Hadoop HDFS Output AdapterTwitter JMS Publish/SubscribeXML File Writer Output XML over HTTP Writer Output05 오픈 소스 Esper 활용하기
    • Esper
    •   Architecture
    •   Hadoop FileSystem API 구현Thrift Server 구현ETL EPL 작성(Extract, Transform, Load)05 오픈 소스 Esper 활용하기 대용량
    •   로그
    •   실시간
    •   처리
    •   CEP
    •   애플리케이션
    •   아키텍처
    •   사례
    •   ü  실시간
    •   ETL
    •   처리
    •   후
    •   HDFS
    •   저장
    •   
    • Esper
    •   Architecture
    •   UpdateListener
    •   인터페이스를
    •   구현하여
    •   Output
    •   Adapter
    •   구현
    •   05 오픈 소스 Esper 활용하기 1N
    • UpdateListener
    •   API
    •   UpdateListener
    •   인터페이스를
    •   구현하여
    •   Output
    •   Adapter
    •   구현
    •   05 오픈 소스 Esper 활용하기
    • Esper
    •   Runtime
    •   선택
    •   임베디드
    •   모드
    •   or
    •   스탠드
    •   얼론
    •   모드
    •   선택
    •   필요
    •   1.  Esper
    •   +
    •   Java
    •   EE
    •   Platform
    •   2.  Java
    •   Standalone
    •   Instance
    •   3.  Esper
    •   +
    •   OSGi
    •   Server
    •   05 오픈 소스 Esper 활용하기
    • Esper
    •   Runtime
    •   선택
    •   Esper + Java EE Platform도입
    •   및
    •   유지보수
    •   용이
    •   
    •   성능
    •   최적화
    •   어려움
    •   Java Standalone Instance가장
    •   가볍고
    •   최적화된
    •   구조로
    •   적용
    •   가능
    •   
    •   복잡한
    •   CEP
    •   서비스
    •   구현에서
    •   한계
    •   Esper + OSGi ServerEsper와
    •   최적의
    •   궁합:
    •   Life
    •   cycle
    •   일치
    •   
    •   라이브러리
    •   OSGi
    •   번들링
    •   이슈
    •   해결이
    •   관건
    •   05 오픈 소스 Esper 활용하기
    • Runtime:
    •   Esper
    •   +
    •   OSGi
    •   Server
    •   05 오픈 소스 Esper 활용하기 Zero-downtime
    •   구현
    •   가능
    •   
    • Virgo
    •   OSGi
    •   Server
    •   추천
    •   가장
    •   완성도
    •   높은
    •   오픈
    •   소스
    •   Enterprise
    •   OSGi
    •   Server
    •   Spring
    •   F/W
    •   와
    •   통합
    •   용이
    •   Kernel,
    •   Tomcat,
    •   Jetty
    •   OSGi
    •   서버
    •   버전
    •   제공
    •   SpringSource
    •   유료
    •   기술
    •   지원
    •   05 오픈 소스 Esper 활용하기
    • Virgo
    •   OSGi
    •   Server
    •   추천
    •   05 오픈 소스 Esper 활용하기
    • 오픈
    •   소스
    •   Esper
    •   활용하기
    •   05
    •   §  Esper
    •   소개
    •   §  Esper
    •   Architecture
    •   §  Input
    •   /
    •   Output
    •   Adapters
    •   §  Esper
    •   Runtime
    •   선택
    •   §  Virgo
    •   OSGi
    •   Server
    •   추천
    •   
    • EPL과
    •   Adapter
    •   개발
    •   06
    •   §  EPL
    •   소개
    •   §  EPL
    •   기능
    •   §  EPL의
    •   외부
    •   리소스
    •   참조
    •   기능
    •   §  RFID
    •   도메인
    •   예제
    •   §  EPL
    •   등록
    •   및
    •   Output
    •   Adapter
    •   구현하기
    •   §  Input
    •   Adapter
    •   구현하기
    •   
    • EPL
    •   소개
    •   06 EPL과 Adapter 개발 SQL
    •   형식의
    •   Event
    •   처리
    •   스크립트
    •   언어
    •   Data
    •   windows
    •   제공
    •   Pattern
    •   matching
    •   기능
    •   제공
    •   
    • OrderEventEPL
    •   소개
    •   온라인
    •   쇼핑몰
    •   지난
    •   30분간의
    •   실시간
    •   주문
    •   통계
    •   .win:time(30 min)fromgroup by itemIdselect itemId, count(*) as cntTop
    •   10
    •   limit 1006 EPL과 Adapter 개발
    • EPL
    •   소개
    •   Continuous queryOrderEvent .win:time(30 min)fromgroup by itemIdselect itemId, count(*) as cntlimit 1006 EPL과 Adapter 개발
    • 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
    •   
    • 다양한
    •   외부
    •   리소스(RDBMS)와
    •   동시에
    •   조인
    •   가능
    •   EPL의
    •   외부
    •   리소스
    •   참조
    •   기능
    •   06 EPL과 Adapter 개발
    • 장소 이름 마스터 테이블MySQL 네이티브 쿼리EPL 조인 조건06 EPL과 Adapter 개발 고객 마스터 정보상품 추천 정보 등등…from LR.std:unique(assetId).win:time(1 hour) as lr,sql:db[select zone_name from ZoneNamewhere zone=${lr.zone}]최근
    •   1시간내
    •   강남역에서
    •   사용자가
    •   찾은
    •   where zone in (‘강남역 code’)“장소의
    •   이름!!”
    •   select assetId, zone_name
    • 06 EPL과 Adapter 개발 활용
    •   예제!!
    •   좀
    •   더
    •   봅시다!!
    •   
    • RFID
    •   도메인
    •   예제
    •   실시간으로
    •   Asset의
    •   움직임을
    •   추적하는
    •   예제
    •   위치
    •   이동(LocationReport)
    •   이벤트
    •   정의
    •   
    •   asset
    •   id
    •   속성 
    •   :
    •   asset
    •   고유
    •   아이디
    •   
    •   zone
    •   
    •   
    •   
    •   
    •   속성 
    •   :
    •   변화된
    •   위치
    •   값
    •   06 EPL과 Adapter 개발
    • 위치 이동 이벤트 정의public class LocationReport {private String assetId; // Asset 아이디private int zone; // 위치 값…} POJO
    •   스타일
    •   이벤트
    •   타입
    •   정의
    •   06 EPL과 Adapter 개발
    • 시나리오
    •   “Asset이
    •   서로
    •   다른
    •   Zone으로
    •   이동
    •   후
    •   
    •   10초
    •   이상
    •   머무르면,
    •   06 EPL과 Adapter 개발 경보를
    •   알려라”
    •   
    • 시나리오
    •   “Asset이
    •   서로
    •   다른
    •   Zone으로
    •   이동
    •   후
    •   
    •   
    •    
    •   10초
    •   이상
    •   머무르면,
    •   경보를
    •   알려라”
    •   06 EPL과 Adapter 개발
    • 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 개발
    • 06 EPL과 Adapter 개발 구조를
    •   이해하고
    •   
    •   활용하면
    •   됩니다!
    •   
    • EPL
    •   구조
    •   “Asset이
    •   서로
    •   다른
    •   Zone으로
    •   이동
    •   후
    •   
    •   
    •    
    •   10초
    •   이상
    •   머무르면,
    •   경보를
    •   알려라”
    •   select * from pattern [ ] expression 06 EPL과 Adapter 개발
    • EPL
    •   구조
    •   “Event
    •   B가
    •   발생하고
    •   Event
    •   C가
    •   발생한
    •   이후에,
    •   
    •   Event
    •   A가
    •   발생한”
    •   패턴!
    •   followed
    •   
    •   by
    •   Event
    •   Correlation,
    •   인과
    •   관계의
    •   정의
    •   from pattern [ A -> (B and C)] 06 EPL과 Adapter 개발
    • EPL
    •   구조
    •   “Asset이
    •   서로
    •   다른
    •   Zone으로
    •   이동
    •   후
    •   
    •   
    •    
    •   10초
    •   이상
    •   머무르면,
    •   경보를
    •   알려라”
    •   asset 부분 집합 zone ->( not (nothing or asset 전체 집합) and 10초 유지 ) 06 EPL과 Adapter 개발
    • 그렇다면
    •   
    •   
    •   코딩은
    •   어떻게?
    •   EPL
    •   등록
    •   및
    •   Output
    •   Adapter
    •   구현
    •   쉽게!
    •   간단하게!
    •   3
    •   Step!
    •   06 EPL과 Adapter 개발
    • EPL
    •   등록
    •   및
    •   Output
    •   Adapter
    •   구현
    •   // Step 1. CEP 엔진 인스턴스 초기화 EPServiceProvider epEngine =EPServiceProviderManager.getProvider(“MyID”, config);Engine 아이디 등록Engine 튜닝 값 정의06 EPL과 Adapter 개발
    • EPL
    •   등록
    •   및
    •   Output
    •   Adapter
    •   구현
    •   // Step 2. EPL 등록하기 EPStatement statement =epEngine.getEPAdministrator().createEPL(“…”);EPL 등록06 EPL과 Adapter 개발
    • EPL
    •   등록
    •   및
    •   Output
    •   Adapter
    •   구현
    •   // Step 3. Output Adapter 구현하기statement.addListener(new UpdateListener() {public void update(EventBean[] newEvents) {// 이벤트 처리 코드 file writing, email 발송등…}}); EPL 결과 처리 코드06 EPL과 Adapter 개발
    • Input
    •   Adapter
    •   구현하기
    •   Engine으로 Event 전달06 EPL과 Adapter 개발 // Step 2. 이벤트 생성 및 전달 LocationReport event =new LocationReport(assetId, x, y, zone);epEngine.getEPRuntime().sendEvent(event);
    • EPL과
    •   Adapter
    •   개발
    •   06
    •   §  EPL
    •   소개
    •   §  EPL
    •   기능
    •   §  EPL의
    •   외부
    •   리소스
    •   참조
    •   기능
    •   §  RFID
    •   도메인
    •   예제
    •   §  EPL
    •   등록
    •   및
    •   Output
    •   Adapter
    •   구현하기
    •   §  Input
    •   Adapter
    •   구현하기
    •   
    • CEP
    •   개발
    •   전략
    •   07
    •   §  CEP
    •   개발
    •   프로세스
    •   §  CEP
    •   개발
    •   주요
    •   포인트
    •   §  HTTP
    •   Input
    •   Adapter
    •   선택
    •   기준
    •   예시
    •   §  CEP
    •   Monitoring
    •   방안
    •   §  Performance
    •   측정
    •   기준
    •   
    • CEP
    •   개발
    •   프로세스
    •   이벤트
    •   정의
    •   12 345 핵심
    •   과정
    •   07 CEP 개발 전략 이벤트
    •   타입(포맷)
    •   정의
    •   EPL
    •   정의
    •   Output
    •   Adapter
    •   개발
    •   /
    •   등록
    •   Input
    •   Adapter
    •   개발
    •   /
    •   등록
    •   
    • CEP
    •   개발
    •   주요
    •   포인트
    •   Runtime
    •   환경
    •   결정
    •   Zero-downtime
    •   지원
    •   여부
    •   결정
    •   Runtime시
    •   EPL
    •   업데이트
    •   지원
    •   여부
    •   결정
    •   Event의
    •   타입과
    •   용량
    •   결정
    •    성능과 밀접한 연관Biz 요건과 연관07 CEP 개발 전략
    • CEP
    •   개발
    •   주요
    •   포인트
    •   CEP
    •   Engine
    •   성능
    •   튜닝
    •   성능
    •   모니터링
    •   방안
    •   Input
    •   /
    •   Output
    •   Adapter
    •   성능
    •   고려
    •   Input
    •   Adapter의
    •   통신
    •   protocol
    •   결정
    •   중요
    •   07 CEP 개발 전략 멀티 thread 카운트 조절병목 현상발생 방지
    • 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 개발 전략
    • CEP
    •   Monitoring
    •   방안
    •   Real-time
    •   시스템은
    •   장애에도
    •   즉각적으로
    •   대응이
    •   중요
    •   주요
    •   모니터링
    •   팩터
    •   ü  Availability
    •   ü  Total
    •   Input
    •   Event
    •   Count
    •   ü  Throughput
    •   ü  Latency
    •   07 CEP 개발 전략
    • 모니터링까지
    •   개발하라구???
    •   07 CEP 개발 전략 배보다
    •   배꼽이
    •   커지는
    •   수가
    •   있다구!!
    •   
    • JBoss RHQ 추천07 CEP 개발 전략
    • JBoss RHQ 추천 (계속)07 CEP 개발 전략
    • CEP Monitoring 방안07 CEP 개발 전략
    • 이제
    •   서비스
    •   론칭만
    •   남았다!!
    •   07 CEP 개발 전략 Wait!!
    •   뭔가
    •   빠진
    •   이
    •   느낌은
    •   뭐지??
    •   실시간
    •   서비스
    •   수준은
    •   정의했는가?
    •   
    • Latency
    •   statistics
    •   측정
    •   ü  Throughput
    •   고정
    •   ü  CPU
    •   Usage
    •   100%
    •   수준까지
    •   진행
    •   ü  성능
    •   수준
    •   결정:
    •   SLA
    •   정의
    •   Performance 측정 기준07 CEP 개발 전략 Throughput
    •   ü  events/sec
    •   Latency
    •   ü  us/event
    •   or
    •   ms/event
    •   
    •   
    • Latency statisticsLatency
    •   정규
    •   분포
    •   통계
    •   계산
    •   Throughput 995900 (active 0 pending 0)5 µs 수준의 성능07 CEP 개발 전략 나노세컨드 단위 측정
    • CEP
    •   개발
    •   전략
    •   07
    •   §  CEP
    •   개발
    •   프로세스
    •   §  CEP
    •   개발
    •   주요
    •   포인트
    •   §  HTTP
    •   Input
    •   Adapter
    •   선택
    •   기준
    •   예시
    •   §  CEP
    •   Monitoring
    •   방안
    •   §  Performance
    •   측정
    •   기준
    •   
    • CEP
    •   그리고
    •   
    •   Big
    •   Data
    •   시대
    •   마무리
    • 로그
    •   수집
    •   및
    •   분배
    •   기술
    •   마무리 진정한
    •   Big
    •   Data
    •   시대의
    •   기술
    •   요소
    •   통합
    •   기술
    •   대용량
    •   데이터의
    •   배치
    •   처리
    •   및
    •   분석
    •   기술
    •   실시간
    •   이벤트
    •   처리
    •   기술
    •   
    • 마무리 진정한
    •   Big
    •   Data
    •   시대의
    •   기술
    •   요소
    •   Scribe,
    •   Flume
    •   분산
    •   로그
    •   수집기
    •   개발자의
    •   기술력
    •   Hadoop
    •   분산
    •   파일
    •   처리
    •   시스템
    •   CEP
    •   Esper
    •   &
    •   분산
    •   ESP
    •   S4,
    •   Storm
    •   
    • Hadoop
    •   끝 진정한
    •   Big
    •   Data
    •   시대의
    •   기술
    •   요소
    •   CEP
    •   Esper
    •   분산
    •   ESP
    •   S4,
    •   Storm
    •   
    • q  http://en.wikipedia.org/wiki/Complex_event_processingq  http://en.wikipedia.org/wiki/Event-driven_architectureq  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/LodWeq  EDA – ESP & CEP ... with Java http://goo.gl/KW72pq  Event Processing in Java A Financial Services Case Study http://goo.gl/6iPbtq  실시간 빅 데이터(Real-time Big Data) 프로세싱 맛보기 http://goo.gl/IGaHBq  Esper Documentation http://goo.gl/isNb6q  JBoss Drools Fusion http://goo.gl/XIoGJq  Applying CEP Drools Fusion http://goo.gl/MsYCHq  JBoss RHQ https://docs.jboss.org/author/display/RHQReferences
    • 감사합니다.개발실 / 데이터지능팀 / 원종석 tedwon@kthcorp.com@tedwon