Complex Event Processing Wiki 요약 부분 번역

2013년 12월 26일 기준 위키피디아에 있는 Complex Event Processing에 대한 내용 번역입니다.

원문 PDF 다운받기

Event Processing
이벤트 처리(Event Processing)란 발생하는 일련의 이벤트에 관한 정보(혹은 데이터)의 흐름을 추적하고 분석(및 처리)하고, 이로부터 결과를 도출하는 방법이다. 복합 이벤트 처리(Complex Event Processing, 줄여서 CEP)는 좀 더 복잡한 상황을 제안하는 이벤트나 패턴을 추론하기 위하여 복수의 정보원으로부터 데이터를 결합하는 이벤트 처리 방법이다. CEP의 목표는 의미있는 이벤트(기회나 위협)를 도출하고 이러한 결과에 대해 가능한 빠르게 대응하는 것이다.

이러한 이벤트들은 세일즈리드(Sales leads), 주문서 및 소비자 서비스 전화 같은 조직의 여러 계층들 상에서 발생할 수 있다. 아니면 새로운 품목, 문자 메시지, 소셜미디어상의 포스트, 주식시장의 피드, 교통정보, 기상 정보 등 여러 종류의  데이터도 이벤트가 될 수 있다. 또한 측정값이 사전의 정의된 시간, 온도 등의 기타 값의 임계치를 넘었을 때 “상태의 변화”를 이벤트로 정의할 수 있다. 분석가들은 CEP가 실시간으로 패턴을 분석하고 비즈니스 관련 부서에서 IT 및 서비스 부서와 더욱 원활하게 의사소통할 수 있는 새로운 길을 조직에 제공할 수 있다고 주장한다. 이벤트에 관련하여 이용가능한 막대한 양의 정보들을 때로 이벤트 구름(event cloud)으로 표현된다.

개념적 설명
유입되는 수천의 이벤트 가운데, 예를 들면 모니터링 시스템은 다음의 3가지 정보를 동일한 정보원으로부터 받을 수 있다.

  1. 교회의 종이 울린다.
  2. 턱시도를 차려입은 남성과 넘실거리는 하얀 가운을 걸친 여성의 외모
  3. 공기 중으로 음식냄새가 흐른다.

이러한 이벤트들로부터 모니터링 시스템은 아마도 복합이벤트로 “결혼식”을 도출할 것이다. CEP는 기술로서 다른 이벤트들(1번부터 3번)을 분석하고 연관시키면서 복합이벤트를 발견하는 것을 돕는다.

CEP는 다음의 다양한 기술들을 기반으로 한다.

  • 이벤트 패턴 감지(Event-pattern detection)
  • 이벤트 추상화(Event abstraction)
  • 이벤트 필터링(Event filtering)
  • 이벤트 조합 및 변형(Event aggregation and transformation)
  • 이벤트 계층 모델링(Modeling event hierarchies)
  • 이벤트 관계 감지(Detecting relationships such as causality, membership or timing between events
  • 이벤트 기반 처리 추상화(Abstracting event-driven  process)

상용 CEP 어플리케이션이 다양한 산업군에서 존재하며 알고리즘을 활용한 주식거래, 신용카드 사기, 비즈니스 활동 모니터링 및 보안 모니터링 등을 포함한다.

역사
CEP 영역은 이산 이벤트 시뮬레이션, 활성 데이터베이스 영역과 일부 프로그래밍 언어에 그 뿌리를 드고 있다. 산업군에서의 활동은 1990년대의 연구프로젝트의 흐름을 따라 시작되었다. 범용적인 CEP 언어에 대한 길을 포장한 첫 프로젝트와 David Luckham이 주도한 스탠포드 대학의 Rapide 프로젝트에 따라서 3개의 다른 연구프로젝트가 병행되어왔다. K. Mani Chandy가 지도하는 Caltech의 Infospheres, John Bates가 이끄는 캠브리지대학의 Apama와 Opher Etzion의 IBM Haifa 연구소의 Amit이 있다. 상업용 제품들은 상기의 프로젝트 및 후속 연구 프로젝트에서 개발된 개념에 종속된다. 커뮤니티에서도 Event Processing 기술 그룹 및 후에는 ACM DEBS 컨퍼런스를 통해서 조직한 이벤트 처리 심포지움들을 통해 시작되었다. 커뮤니티의 기여 중 하나는 이벤트 처리 기준의 생산이었다.

관련 개념
CEP는 운영 인텔리전스(Operational Intelligence, OI) 솔루션에서 라이브 피드와 이벤트 데이터에 대해서 쿼리 분석을 실행함으로 비즈니스 운영에 대한 통찰력을 제공하기 위하여 사용된다. OI 솔루션은 실시간 데이터를 사용하여 현재 상황에 대한 분석과 통찰력을 제공하기 위해서 과거 데이터를 수집하여 연관시킨다. 데이터의 다양한 소스는 다양한 조직의 데이터 사일로로부터 결합된어 현재 정보를 활용하는 공통된 운영그림을 제공한다. 실시간의 통찰력이 큰 가치를 가지고 있든 없든, OI 솔루션은 정보와 필요를 제공하는데 응용될 수 있다.

네트워크, 시스템, 어플리케이션, 서비스 관리에서 사람들은 대신 주로 이벤트 연관을 참조한다. CEP 엔진으로서 이벤트 연관 엔진은(event correlator) 다량의 이벤트를 분석, 가장 중요한 이벤트를 정확히 집어서 조치를 취힌다. 그러나 대부분의 시스템은 새롭게 추론된 이벤트를 생성하지는 않는다. 대신에 그들은 고수준의 이벤트를 저수준의 이벤트와 연관시킨다.

추론 엔진(예를 들면 룰 기반의 추론 엔진)은 전형적으로 인공지능 분야에서 추론된 정보를 생산한다. 그러나 추론엔진은 복잡한 (추론된) 이벤트의 형태로 새로운 정보를 생산하지는 않는다.


생략…

타입
대부분 CEP 솔루션과 개념은 두 개의 메인 카테고리로 분류할 수 있다

  1. 집합 지향 CEP(Aggregation-oriented CEP)
  2. 감지 지향 CEP(Detection-oriented CEP)

집합 지향 CEP 솔루션은 시스템에 유입되는 이벤트 데이터에 대해서 그 반응으로 온라인 알고리즘을 실행하는데 집중된다. 간단한 예로 인바운드 이벤트에 대해서 지속적으로 평규기반의 데이터를 계산하는 것이 있다.

감지 지향 CEP 는 이벤트 패턴 혹은 상황이라고 불리는 이벤트의 조합을 감지하는 것에 집중되어 있다. 감지 상황의 간단한 예로 구체적인 이벤트의 순서를 찾는 것이다.

현재 많은 어플리케이션이 두 방식을 혼용해서 사용한다.

금용 서비스 관련
생략…

시계열 데이터베이스와의 통합
시계열 데이터베이스는 시간을 기준으로 구성된 데이터를 다루는데 최적화된 소프트웨어 시스템이다. 시계열은 유한하거나 무한한 데이터 아이템의 나열이며 각각의 아이템은 타임스탬프와 연관되어 그 순서가 내림차순이 아닌 방식으로 나열된다. 시계열 데이터는 조종 틱(tick)으로 불리기도 한다. 타임스탬프는 반드시 오름차순이지도 않은데 그 이유는 실제로 금용 데이터를 다루는 일부 시스템의 시간 측정 정밀도가 매우 낮아(밀리, 마이크로 혹은 심지어 나노 세컨드 급), 연속된 이벤트들이 동일한 타임스탬프를 가지게 될 수도 있기 때문이다.

시계열 데이터는 전형적으로 복합 이벤트 처리와 관련된 분석에 과거 문맥을 제공한다. 이는 금융권과 같은 모든 수직적 산업에 적용 가능하고 협력적으로 BPM과 같은 다른 기술들과 함께 적용될 수 있다.

미래 가격의 움직임의 통계적 임계치를 결정하기 위해서 과거 가격 변동성을 이해할 필요가 있는 금융권의 시나리오를 고려해보자. 이는 거래 모델과 매매 비용 분석 모두에 매우 유용하다.

CEP 분석의 이상적인 사례는 과거 시계열과 실시간 스트리밍 데이터를 단일한 시간연속체로 보는 것이다. 어제, 지난주 혹은 지난 달에 발생한 것은 단순이 오늘 그리고 미래에 일어날 것의 확장이다. 예로들면, 현재 시장의 크기와 과거의 크기를 비교할 수 있고, 매매실행 로직을 위한 가격와 변동성도 포함시킬 수 있다. (마지막 문장 생략)