cep 소개 - for developers

63
CEP 소개 2013.12.12 이주현 B-Platform Team Manager, Embian. ([email protected], [email protected]) Embian© 2013 - 개발자를 위한 -

Upload: juhyeon-lee

Post on 05-Dec-2014

2.682 views

Category:

Technology


0 download

DESCRIPTION

이 슬라이드는 개발자를 대상으로 CEP(Complex Event Processing) 소개하기 위한 것입니다. 소프트웨어 공학적인 입장에서 3가지 관점, 즉 범용성, 재사용성, 즉시응답성을 기준으로 CEP의 개념과 기능을 설명하고, 이를 구현한 Data Stream Query 기반 CEP 엔진의 작동방식을 설명합니다. CEP는 새로운 개념이 아니고, 태초(?)부터 프로그래머들이 계속 해오던 일들입니다. CEP에 대해서 공부하고자 하는 개발자들에게 도움이 되었으면 합니다.

TRANSCRIPT

Page 1: Cep 소개 - for developers

CEP 소개

2013.12.12

이주현B-Platform Team Manager, Embian.

([email protected], [email protected])

Embian© 2013

- 개발자를위한 -

Page 2: Cep 소개 - for developers

I. CEP의시작 – 3가지요소

II. 범용성 – CEP의개념들

III. 재사용성 – 독립컴포넌트의구축

IV. 즉시응답성 – 패러다임의변화

V. CEP Engine - 구현체들

VI. 결론

Embian© 20132

Agenda

Page 3: Cep 소개 - for developers

I. CEP의시작- 3가지요소

Embian© 20133

Page 4: Cep 소개 - for developers

1. 도대체 “지금” “무슨일”이일어나고있는거야?

2. 예상한일이 “일어나면”, “즉시” 무엇인가 “해라”

Embian© 20134

1. 두 가지 요구사항 I. CEP의 시작

Page 5: Cep 소개 - for developers

1. 도대체 “지금” “무슨일”이일어나고있는거야?

• 최근 30분동안로그인고객수의평균은?

• 모든서버들이잘돌아가고있나?

• 현재주가가오르고있는거야, 내려가고있는거야?

Embian© 20135

1. 두 가지 요구사항 I. CEP의 시작

Page 6: Cep 소개 - for developers

2. 예상한일이 “일어나면”, “즉시” 무엇인가 “해라”

• 최근 30분동안의로그인고객수의평균을 1초단위로보여달라.

• 작동중이지않는서버가있다면, 관리자에게즉시 SMS를보내라.

• 주가가오르고있다면, 해당주식을즉시팔아라/사라.

Embian© 20136

1. 두 가지 요구사항 I. CEP의 시작

Page 7: Cep 소개 - for developers

• 네트워크모니터링 Network Monitoring ToolsEx) 서버상태들의모니터링및특정상태에서경고등

• 비즈니스모니터링액티브데이터베이스 or 자체구현Ex) 최근 30분동안의로그인고객수의평균, 특정웹페이지의 Hit Ratio,

고객원장내의잔고액수등

• 알고리즘주식거래특정제품 or 자체구현Ex) 알고리즘주식거래등

Embian© 20137

2. 어떻게 대처하지? I. CEP의 시작

Page 8: Cep 소개 - for developers

기존시스템으로대처할수있다.

그런데,

1. 특정도메인에는맞다. 하지만, 범용성을가진것이필요하다.

2. 이거할때마다만들어야해? 재사용못하나?

3. 처리속도가느리면안되는데…

Embian© 20138

3. 대처 방법의 문제점 I. CEP의 시작

Page 9: Cep 소개 - for developers

1. (개념의) 범용성도메인에관계없는범용적개념의정립

2. (컴포넌트의) 재사용성재사용가능한독립된소프트웨어컴포넌트의구축

3. 즉시응답성패러다임의변화

Embian© 20139

4. 3가지 요소 I. CEP의 시작

Page 10: Cep 소개 - for developers

Embian© 201310

5. 3가지 요소를 만족하는 그 무엇 I. CEP의 시작

범용성 재사용성 즉시반응성

CEP(Complex Event Processing)

도대체 “지금” “무슨일”이일어나고있는거야? 예상한일이 “일어나면”, “즉시” 무엇인가 “해라”

기능요소

비기능요소

Page 11: Cep 소개 - for developers

II. 범용성- CEP의개념들

Embian© 201311

Page 12: Cep 소개 - for developers

Embian© 201312

0. 개요 II. 범용성

1. Event

2. Event Processing

3. Complex Event

4. Complex Event Processing

도메인에관계없는범용성추구개념들의추상화

Page 13: Cep 소개 - for developers

Embian© 201313

0. 개요 II. 범용성

1.1. Event Type

2.2. Event Processor

2.4. Filtering by Event Type

2.1. Event Stream

1.2. Event Instance

1. Event

2. Event Processing

3. Complex Event

4. Complex Event Processing

CEP에서의핵심개념들

4.2. (Simple) Event Processing

4.3. Drill Down

4.4. Pattern Matching

4.5. Causality

2.6. Counting & Negation

2.7. Data Extraction

2.8. Filtering by Data

2.9. Aggregation

2.5. Window4.1. Abstraction

2.3. Event Processing Network

Page 14: Cep 소개 - for developers

Embian© 201314

1. Event II. 범용성

Event (I) :도메인에상관없이, 발생되는 “무슨일

Log in

1초마다

로그인할때마다

모든주가 Tick마다

서버상태메시지(IP 주소, 측정시간, 부하율등)

로그인성공기록(고객 ID, 로그인시각등)

주가 Tick(종목명, Tick 시각, 주가등)

Page 15: Cep 소개 - for developers

Embian© 201315

1. Event II. 범용성

Event (II) : Event(I)에감지시각(Detection Time)을부가- Event Stream 내에서 Event들이감지시각을기준으로정렬됨

(이하에서 Event라함은 Event(II)를의미)

Log in

1초마다

로그인할때마다

모든주가 Tick마다

감지시각 : t-2초 감지시각 : t-1초 감지시각 : t-0초

감지시각 : tx 감지시각 : ty 감지시각 : t0

감지시각 : ta 감지시각 : tc 감지시각 : t0감지시각 : tb

Page 16: Cep 소개 - for developers

서버상태 Event

IP 주소측정시각CPU 사용율Memory 사용율부하율

Embian© 201316

1.1. Event Type II. 범용성

Event Type

Type Name

Attribute

Event는 Event Type으로유형화Event Type은 Type Name과 Attributes로구성

로그인 Event

고객 ID로그인시각

주가 Event

종목명Tick 시각주가

OOP에서클래스(Class)와유사

Page 17: Cep 소개 - for developers

개별 Event는 Event Instance라고도불림

Embian© 201317

1.2. Event Instance II. 범용성

주가 Event

종목명Tick 시각주가

Event Instances

Attribute Value(Data)

. . .

Attribute

주가 EventDetection Time = yyyy

종목명 = “Google”Tick 시각 = 20131210135513주가 = $1100

주가 EventDetection Time = xxxx

종목명 = “Google”Tick 시각 = 20131210135512주가 = $1101

주가 EventDetection Time = zzzz

종목명 = “Google”Tick 시각 = 20131210135525주가 = $1099

감지시각

Event Type

OOP에서객체(Object or Instance)와유사

Page 18: Cep 소개 - for developers

Embian© 201318

2. Event Processing II. 범용성

2.3. Event Processing Network2.4. Filtering by Event Type2.5. Window2.6. Counting & Negation• Etc.

2.7. Data Extraction (Access)

2.8. Filtering by Data2.9. Aggregation (Min, Max, Sum, Avg, Etc.)

• Etc. (Joining, Grouping, … )

Event 자체에대한연산 Event의속성값에대한연산

Event Processor

2.1. Event Stream2.2. Event Processor

Page 19: Cep 소개 - for developers

Event들이한방향으로계속유입/유출되는것(감지시각에의하여정렬된 Event들의무한집합)

Embian© 201319

2.1. Event Stream II. 범용성

Event Stream

흐름의방향 & 감시시각

Page 20: Cep 소개 - for developers

Event Stream의한쪽방향에서 Event에대한연산을수행하는

소프트웨어컴포넌트

Embian© 201320

2.2. Event Processor II. 범용성

Event Processor

Page 21: Cep 소개 - for developers

Event Processing을위하여 Event Stream과 Event Processor의Processing Topology를구성한것

Embian© 201321

2.3. Event Processing Network (EPN) II. 범용성

Page 22: Cep 소개 - for developers

Event Type을기준으로 Event들을추출ex) Event Stream 내의 Event 중에서그 Type이 “로그인 Event”인것만을 Filtering

Embian© 201322

2.4. Filtering by Event Type – Event 자체에 대한 연산 II. 범용성

Input Stream Output Stream

Event Type == 로그인 Event

Page 23: Cep 소개 - for developers

Embian© 201323

2.5. Window – Event 자체에 대한 연산 II. 범용성

now – 5sec now

0개n개

Time Window

Tuple Window

Event 감지시각(Event Detection Time)을사용

Event 카운터를사용

Page 24: Cep 소개 - for developers

• Counting : Event Stream 내의 Event들개수를세는것

ex) 최근 1분동안웹페이지 Hit 수를 1초마다모니터링

• Negation : Event Stream 내에조건에맞는 Event들이없는것을판단 (count==0)

ex) 1분동안특정서버로부터의상태메시지(Event)가수신되지않는경우

Embian© 201324

2.6. Counting & Negation – Event 자체에 대한 연산 II. 범용성

Page 25: Cep 소개 - for developers

Event의특정속성의값(Data)을추출

Embian© 201325

2.7. Data Extraction (Access) – Event 속성에 대한 연산 II. 범용성

Input Stream

Google Samsung Samsung Google

“종목명” 속성의값을추출

Page 26: Cep 소개 - for developers

Event의특정속성의값을기준으로 Event를추출예) “주가 Event” 중에서그속성인 “종목명”의값이 “google”인 Event들만추출

Embian© 201326

2.8. Filtering by Data – Event 속성에 대한 연산 II. 범용성

Input Stream Output Stream

종목명 == “Google”

Page 27: Cep 소개 - for developers

Event의속성값에대한 Min, Max, Sum, Avg 등의연산

Embian© 201327

2.9. Aggregation – Event 속성에 대한 연산 II. 범용성

Input Stream

1452

“주가” 속성의최대값추출

Page 28: Cep 소개 - for developers

“복잡한” 무슨일은어떻게하지?

예) “로그인해킹시도이벤트”가최근 1시간동안가장많았던고객 ID를감지

여기서 “로그인해킹시도”란동일한고객 ID로 5초동안에 5번이상의 “로그인실패 Event”가발생한경우로정의한다.

Embian© 201328

3.1. Complex Event II. 범용성

Complex Event

Page 29: Cep 소개 - for developers

Embian© 201329

3.1. Complex Event II. 범용성

. . .

고객 ID = “tiger”

최초시도시각시도회수

로그인해킹시도 Event

Simple Events Complex Event

Abstraction

Drill Down

Page 30: Cep 소개 - for developers

4.1. Abstraction (Complex Event의생성)

4.2. (Simple) Event Processing

4.3. Drill Down (Complex Event의분해)

4.4. Pattern Matching

4.5. Causality

Embian© 201330

4. Complex Event Processing II. 범용성

Page 31: Cep 소개 - for developers

Embian© 201331

4.1. Abstraction (Conjunction)

6 2 3

고객 ID = “tiger”

최초시도시각 = xxx시도회수 = 6

로그인해킹시도 Event

1-1. 최근 5초동안의 Window에서 “로그인실패 Event”를추출

1-2. “로그인실패 Event” 의속성인 “고객 ID”를기준으로 Grouping하여 Event를 Count

1-3. 5개이상인경우, 해당 ID를기준으로 “로그인해킹시도 Event”를생성

Complex Event

now – 5sec now

(Simple) Events Complex Event

Page 32: Cep 소개 - for developers

Embian© 201332

4.2. (Simple) Event Processing II. 범용성

2-1. 최근 1시간동안의 Window에서 “로그인해킹시도 Event”를추출

2-2. “로그인해킹시도 Event”의속성인 “고객 ID” 별로 Grouping하여 Event를 Count

2 1

2-3. Count 결과가최대인 Event에서속성인 “고객 ID”의값을출력

now – 1hour now

생성된 Complex Event에대한처리 (Simple) Event와동일

tiger

Page 33: Cep 소개 - for developers

Embian© 201333

4.3. Drill Down (Disjunction) II. 범용성

Complex Event Simple Events

고객 ID = “tiger”

최초시도시각 = xxx시도회수 = 6

로그인해킹시도 Event

Page 34: Cep 소개 - for developers

Embian© 201334

4.4. Pattern Matching II. 범용성

예) 총알배송쇼핑몰

정상적인흐름

지연 Pattern 시스템비정상 Pattern

Page 35: Cep 소개 - for developers

Embian© 201335

4.4. Pattern Matching II. 범용성

예) 주가변화에서 W 패턴을찾음

1. x초동안의 “주가 Tick Event”에서 “주가상승 Event”와 “주가하락 Event”를생성2. y초동안의 “주가 Tick Event”에서 “주가평균 Event”를생성3. “주가하락 Event”와 “주가상승 Event”를조합하여 “개별 W패턴 Event”를생성4. “개별 W패턴 Event”에서그진폭이 “주가평균 Event”를넘는 Event만추출하여 “W패턴 Event” 생성

2

1

3

4

Page 36: Cep 소개 - for developers

범용성을위하여

도메인을포괄할수있는개념들을추상화

Embian© 201336

5. Summary II. 범용성

1. Event

2. Event Processing

3. Complex Event

4. Complex Event Processing

Complex Event Processing

Page 37: Cep 소개 - for developers

III. 재사용성- 독립컴포넌트의구축

Embian© 201337

Page 38: Cep 소개 - for developers

기존대응방안들의문제점재사용성미비

• 일반언어(C++, Java 등)로구현저수준코딩을초래 (CEP를위한데이터구조및알고리즘을하위레벨에서직접구현)

• 해당도메인에특화됨해당도메인외의분야에서는사용할수없는구조적한계

Embian© 201338

1. Custom-coding is Evil. III. 재사용성

Knightmare 사건 (Knight Capital Group 사건)

고속으로입력되는많은양의고객의주문(parent order)을자체알고리즘을통해 child orders로분할하여자동으로주식매매 CEP의한종류

2012년 8월, 기존알고리즘을변경. 그러나, 코드에 Bug 존재 (이관과정에서 Target 간코드불일치)45분만에 5000억이상의손실발생, 15억원의벌금부과, 결국 GETCO에합병

Page 39: Cep 소개 - for developers

1. 추상화된 CEP의개념요소들을위한공통의기능을구현 Event 생성, Filtering, Aggregation, 등

2. 구현된기능들에대한인터페이스를제공기능들에대한인터페이스를일반언어에서사용할수있는함수형태로제공또는 EPL(Event Processing Language) 형태로제공

3. 위기능을독립된소프트웨어컴포넌트로구축 CEP Engine들이확산되고있음

Embian© 201339

2. 재사용성의 확보 III. 재사용성

Page 40: Cep 소개 - for developers

Embian© 201340

3. 현재 재사용성 확보 단계 III. 재사용성

개별프로그램에서데이터구조및알고리즘

직접구현

데이터구조및알고리즘을개인라이브러리화

공통라이브러리의확산

공통기능의독립컴포넌트화

컴포넌트간표준인터페이스확립

RDBMS

Standard SQL

표준화

재사용성

현재 EPL 표준화진행중

CEP Engine

Page 41: Cep 소개 - for developers

Embian© 201341

4. CEP Engine III. 재사용성

Log in

Legacy Systems

CEP Engine

Event Consumer

BAM, Mailer, Etc.

공통기능

EPLStatement

EPLStatement

EPLStatement

Filtering

EPL (Event Processing Language) 비즈니스로직인터페이스

비즈니스로직 (EPL 문장)

Etc.Aggregation Abstraction

Page 42: Cep 소개 - for developers

• 기존대응방식들은재사용성이미흡

• 재사용성을확보하기위하여• 공통의기능을구현

• 인터페이스제공

• 독립된소프트웨어컴포넌트로구축

• 독립된소프트웨어컴포넌트로서다양한 CEP Engine들이구축되어왔음

Embian© 201342

5. 요약 III. 재사용성

Page 43: Cep 소개 - for developers

IV. 즉시응답성- 패러다임의변화

Embian© 201343

Page 44: Cep 소개 - for developers

Embian© 201344

1. Process Now IV. 즉시응답성

Log in

Conventional Model : Store Now, Process Later.

Event Processing Model : Process Now.

로그인성공기록

Log in로그인성공기록

Step 1. Storing Data Step 2. Batch Processing

Just Only 1 Step.

Page 45: Cep 소개 - for developers

• Event 탐지시간(detection time)을최소화

• 데이터(Event)가변하는모든때에연산을수행

So,

속도가느린외부장치에데이터를저장하지않음

메모리내에서직접 Event Processing 수행

Embian© 201345

2. 메모리 기반 처리 IV. 즉시응답성

Page 46: Cep 소개 - for developers

• 필요성- 하나의 CEP Engine에서처리할수있는양을초과

- Event 탐지시간을최소화

• 현상황- 대부분의 CEP Engine은분산처리지원못함

• 대안- Esper + Storm

- 분산환경에서 Composition-operator를활용하기위한 Query Optimizer의구현

Embian© 201346

3. 분산 처리 IV. 즉시응답성

Page 47: Cep 소개 - for developers

• 즉시응답성을위하여

기존의 “Store Now, Process Later” 모델대신,

“Process Now” 모델을사용

• Process Now 모델을위하여메모리기반처리

• 현단계에서대부분의 CEP Engine이분산처리미지원

Embian© 201347

4. 요약 IV. 즉시응답성

Page 48: Cep 소개 - for developers

V. CEP 엔진- 구현체들

Embian© 201348

Page 49: Cep 소개 - for developers

지원하는 EPL(Even Processing Language)에따른구분

• Data Stream Query 기반 CEP- Data(Event)의 Stream을 Query하기위하여, 관계형 Query 언어를사용

• Production Rule 기반 CEP- Production Rule Engine 내의 Working Memory를활용

• Composition Operator 기반 CEP- 단순한쿼리들을조합하여복잡한쿼리를수행

(Engine 별로 CEP의개념요소들에대한구현여부및방식이상이함)

Embian© 201349

1. CEP Engine의 종류 V. CEP 엔진

Page 50: Cep 소개 - for developers

{ ø } 또는 { }

Event Stream은계속변화

Event 간의관계에대한연산은불가능

Embian© 201350

2. Data Stream Query 기반 CEP V. CEP 엔진

Stream

특정시각 t에서바라본 Stream 내의 Event들

t

따라서특정시각 t에서 Event들간의관계는표현될수없음

Page 51: Cep 소개 - for developers

3가지의연산을통해 Event 간의관계연산수행

Embian© 201351

2. Data Stream Query 기반 CEP V. CEP 엔진

Event Stream (INPUT)

1. Stream to Relation

2. Relation to Relation

3. Relation to Stream

Event Stream (OUTPUT)

Page 52: Cep 소개 - for developers

1. Stream to Relation 연산

- Event Stream의스냅샷을 Event Relation으로변환

Embian© 201352

2. Data Stream Query 기반 CEP V. CEP 엔진

Event Stream

감지시각 종목명 Tick 시각 주가

1386695097100 Samsung 201312100158 1451

1386695097230 Samsung 201312100158 1452

1386695098200 Google 201312100168 1015

1386695099998 Samsung 201312100170 1451

Event RelationTake a Snapshot-대부분Window를사용하여Snapshot을생성

Page 53: Cep 소개 - for developers

2. Relation to Relation 연산- Event Relation에대하여 Event들간의관계형연산수행

Embian© 201353

2. Data Stream Query 기반 CEP V. CEP 엔진

감지시각 종목명 Tick 시각 주가

1386695097100 Samsung 201312100158 1451

1386695097230 Samsung 201312100158 1452

1386695098200 Google 201312100168 1015

1386695099998 Samsung 201312100170 1451

SELECT AVG(주가) FROM …SELECT 종목명, AVG(주가)

FROM …GROUP BY 종목명

SELECT AVG(주가) FROM …GROUP BY 종목명

HAVING 주가 > 1400

감지시각 AVG(주가)

1386695100000 1342

감지시각 종목명 AVG(주가)

1386695100000 Google 1015

1386695100001 Samsung 1451

감지시각 종목명 AVG(주가)

1386695100001 Samsung 1451

Page 54: Cep 소개 - for developers

3. Relation to Stream 연산- 처리된 Event Relation을 Event Stream으로변환

Embian© 201354

2. Data Stream Query 기반 CEP V. CEP 엔진

감지시각 AVG(주가)

1386695100000 1342

감지시각 종목명 AVG(주가)

1386695100000 Google 1015

1386695100001 Samsung 1451

감지시각 종목명 AVG(주가)

1386695100001 Samsung 1451

Page 55: Cep 소개 - for developers

STREAM (STanford stREam datA Manager)

• Stanford 대학에서연구프로젝트로개발됨.

• Data Stream Query 기반의 CEP 엔진

• SQL과유사한문법의 CQL(Continuous Query Language) 사용

• Esper와 Coral8, Oracle Event Processing 11g 등의기반이됨

Embian© 201355

3. 구현체들 V. CEP 엔진

Page 56: Cep 소개 - for developers

Borealis

• Brandeis 대학, Brown 대학, MIT 대학에서개발한연구용 CEP Engine

• CEP Engine인 Aurora와분산스트림처리프로젝트인 Medusa를결합

• Data Stream Query 기반. 그러나, Boxes-and-Arrows 접근방법을활용

• Query 언어로서 XML을사용

Embian© 201356

3. 구현체들 V. CEP 엔진

예시쿼리다이어그램 (출처 : Borealis Team. Borealis Application Programmer’s Guide. 2006)

Page 57: Cep 소개 - for developers

Esper

• Esper Tech에의하여개발되었으며, Open Source(GPL v2)

• Data Stream Query 기반. 패턴매칭및 Composition-operator 기능추가

• SQL과유사한문법의 EPL이라는언어제공

• Event에대한연산은 Event Tuple이 Engine에입력/출력되는모든시점에수행됨 (STREAM은정해진시간마다수행)

Embian© 201357

3. 구현체들 V. CEP 엔진

Page 58: Cep 소개 - for developers

Oracle Event Processing 11g• STREAM을기반으로 BEA에의하여개발되고, Oracle에서인수함

StreamBase• TIBICO에서개발됨

Drools• Jboss Rules.

• Production Rule 기반

SASE+• University of Massachusetts Amherst의연구프로젝트

• Composition Operator 기반

Embian© 201358

3. 구현체들 V. CEP 엔진

Page 59: Cep 소개 - for developers

• CEP Engine의종류• Data Stream Query 기반 : STREAM, Esper, Oracle Event Process 11g 등

• Production Rule 기반 : Drools 등

• Composition Operator 기반 : SASE+ 등

• Data Stream Query 기반 CEP의작동방식• Stream to Relation 연산

• Relation to Relation 연산

• Relation to Stream 연산

• 구현체들• STREAM 기반의 Esper가주목받고있음

Embian© 201359

4. 요약 V. CEP 엔진

Page 60: Cep 소개 - for developers

VI. 결론

Embian© 201360

Page 61: Cep 소개 - for developers

Embian© 201361

CEP는 새로운 것이 아니다

Complex Event Processing이

하는일Complex Event Processing이

갖추어야할요소

Event에대한즉각적감지개념의범용성

만족하는조건에대한즉각적반응

컴포넌트로서의재사용성

즉시응답성

처음부터프로그래머가원래하던업무

소프트웨어발전단계에서자연스러운요소

Page 62: Cep 소개 - for developers

Embian© 2013 62

참고자료

• David Luckham. A Brief Overview of the Concepts of CEP. (http://complexevents.com/wp-content/uploads/2008/07/overview-of-concepts-of-cep.pdf), 2008.

• David Luckham. A Short History of Complex Event Processing, Part 1 & Part2. (http://complexevents.com/wp-content/uploads/2008/02/1-a-short-history-of-cep-part-1.pdf), 2007.

• David Luckham, Roy Schulte. Event Processing Glossary (http://complexevents.com/wp-content/uploads/2008/08/epts-glossary-v11.pdf), 2008.

• Hai-Lam Bui. Survey and Comparison of Event Query Languages Using Practical Examples. (http://www.en.pms.ifi.lmu.de/publications/diplomarbeiten/Hai-Lam.Bui/DA_Hai-Lam.Bui.pdf ) 2008.

• Arvind Arasu, Shivnath Babu, and Jennifer Widom. The CQL Continuous Query Language: Semantic Foundations and Query Execution. Technical report, VLDB Journal, 2003.

• Alexander Alves, Robin J. Smith, Lloyd Williams. Getting Started with Oracle Event Processing 11g. Packt Publishing, 2013.

• Esper EQL Reference. (http://esper.sourceforge.net/esper-0.7.5/doc/reference/en/html/EQL.html)

• STREAM Homepage. (http://infolab.stanford.edu/stream/)• STREAM Query Repository (http://infolab.stanford.edu/stream/sqr/)

• TIBICO StreamBase Homepage (http://www.streambase.com/)

• Borealis Team. Borealis Application Programmer’s Guide. 2006.

Page 63: Cep 소개 - for developers

감사합니다.

Embian© 201363