사용자 삽입 이미지
Introduction to Complex Event Processing (CEP)


이벤트
프로세싱은 이미 십년전부터 있던 컴퓨터 시스템의 중심에 위치하고 있습니다. 모든 industry 해당하는 일반적인 문제는 고객의 시스템에서 들어오는  사용하는 전체 이벤트 데이터 필요한 것들만 추출하는 방법이었겠네요. 이에 부응하기 위하여 DW, Data Mining 등이 BI(Business Intelligence) 함께 중요한 경영 의사 결정 요소로 자리 잡아 것이 사실입니다.


제가
지금 다니고 있는 회사의 이벤트 프로세싱 엔진의 경우 메모리 내에서 pentium 4 dual processor기준으로 초당 50만건 이상을 거뜬하고 처리하고 있습니다. 사실 메모리 작업을 통해 SQL속성을 가진 query languaue 통해서 가능한데 만약 처리의 결과가 실제 database 연결되어 있다면 저러한 성능은 나오지 않을 겁니다.

이벤트 프로세싱은 데이터를 필터링하여 내가 원하는 결과값을 보기 위한 것이기 때문에 이벤트 데이터의 속성이 중요한 것이지 결과가 저장되는 data source영역이 아님을 알고 있어야 합니다.


그림
? 이벤트 프로세싱

 

사용자 삽입 이미지

그림에서 보는 것처럼 이벤트 소스는 다양한 형태로 입력될 있으며 그게 EAI, MOM 또는 SOA 통하여 얻는 방법, RFID등의 다양한 이벤트를 통해 얻는 방법 등이 있을 있습니다.

위의 정의를 CEP(Complex Event Processing)라고 이야기합니다. CEP 기본적인 목적은 시스템간에 실시간으로 수집되는 가치있는 정보를 분석하는 있습니다.

 

Introduction to Esper

 

WebLogic Event Server 존재하지만 여기서는 Esper라는 오픈소스 CEP엔진을 간략하게 보도록 합니다. Esper 자바로 쓰여졌으며 .NET 원한다면 NEsper 사용하면 .NET C# 통한 CEP 가능합니다. 다운로드는 esper.codehaus.org에서 있으며 예제와 문서가 정리되어 있습니다.

특징은 WebLogic Event Server 마찬가지로 SQL 흡사한 data query language 사용하기 때문에 손쉽게 이벤트 프로세싱을 배우실 있을 같아요.

 

: Esper Query ? 마지막 10분간의 고객의 숫자와 고객의 아이디를 찾으시오.

select customerId, count(*)

  from PayInqAck(isFound = false).win:time(10 minutes)

  group by customer

  having count(*) >= 3

 

: WebLogic Event Server Query ? GLV라는 심볼을 가진 주식 마지막 5개의 이벤트 lastPrice 트렌드(method name) 2 넘는 데이터의 정보를 추출하라.

select symbol, lastPrice, trend(lastPrice), clientTimestamp, timestamp from (select * from StockTick where symbol='GLV') retain 5 events having trend(lastPrice) > 2

 

 

그러면 저걸 어디에다 있을까요? 하루에 신용카드사로 들어오는 이벤트는 상상을 초월합니다. 그런데 여성이 신용카드를 분실했다고 가정을 해보죠. 여성은 카드를 이용해서 대부분 화장품, 패밀리 레스토랑에서 카드를 사용했습니다. 그런데 어느 카드를 잃어버리게 됩니다. 어떤 남자가 카드를 주워서 바로 유흥주점으로 놀러가 카드를 계산합니다. 이벤트 서버가 들어오는 이벤트 데이터의 패턴과 기존의 데이터를 비교하여 문제가 발생했다는 실시간으로 알린다거나 있습니다.  간단하게 예를 것이지만 정말 다양한 곳에서 이런 event processing 사용할 있습니다.


간략하게
이벤트 프로세싱을 살펴보았지만 내부의 programming model, flow 등을 보면 쉽지가 않는 영역입니다. 하지만 이런 분야도 있다는 것을 아는 중요해서 이렇게 글로 남깁니다.

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/04/09 14:54 2008/04/09 14:54
http://www.javapattern.info/trackback/58
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
[로그인][오픈아이디란?]