센서네트워크에 CEP를 적용할 수 있을까?

이 글은 센서네트워크 시스템에서 실시간으로 이벤트를 처리하는 CEP 기술이 어떤 의미를 가지는가에 대해서 간략하게 서술할 목적으로 썼다. CEP에 대한 자세한 설명이 필요하다면 위키피디아의 설명을 번역한 다음 글 “Complex Event Processing Wiki 요약 부분 번역” 을 참조하기 바란다

sensor network

 출처: ISN 컨퍼런스

CEP(Complex Event Processing) 기술은 초당 수십~수백만건의 이벤트(데이터)가 발생하는 시스템에서 실시간으로 사용자에게 유의미한 정보를 검출, 이에 대하여 적절한 대응을 하기 위해 사용된다. 따라서 아주 짧은 시간의 resolution과 대용량의 데이터가 발생하는 금융권이 CEP의 대표적인 적용분야이다. CEP의 오픈소스로는 대표적으로 EsperDrools Fusion이 있다.

Esper building blocks

 출처: Esper 사이트

사용자가 원하는 이벤트 검출을 정의하는데는 EPL(Event Processing Language)이 사용된다. EPL SQL의 문법 구조와 유사한 형태 1를 갖고 있으며 기본적인 이벤트 처리와 복합이벤트처리를 EPL을 통해서 구현한다. 구현된 EPL문장을 패턴 혹은 룰이라 표현하기도 하며, 이벤트가 시스템에 입력될 때에 실시간으로 시스템의 운영 중에도(on-the-fly) 다양한 EPL을 적용할 수 있다.

그렇다면 고용량, 고속의 데이터로부터 실시간으로 이벤트를 검출하는 CEP 기술이 과연 센서네트워크에 적합한가?

표면적으로는 적합하지 않을 수 있다. 기본적으로 센서네트워크에서 발생시키는 이벤트의 양이 그다지 많지 않기 때문이다. 2 또한 비즈니스 영역만큼 시간에 민감하게 실시간 분석과 대응이 필요한 것도 아니기 때문이다. 즉, 센서네트워크에 CEP를 적용하는 것은 닭 잡는데 소 잡는 칼을 쓰는 격처럼 보인다.

그러나 다음의 세 가지 이유 때문에 센서네트워크에서 CEP기술은 의미를 가질 수 있다.

1. EDA(Event Driven Architecture)
CEP는 근본적으로 이벤트 기반 아키텍쳐에 뿌리를 두고 있다. 이전에는 분산환경에서 웹상의 자원들을 서비스 관점으로 인식하며 요청/응답 방식의 통신을 하는 SOA가 있었다. EDA는 전통적인 요청/응답 방식이 아닌 데이터의 발생을 이벤트로 정의,이벤트 기반의 비동기적인 통신 아키텍쳐이다.

EDA

 출처: Event Processing In Action 6p

센서네트워크에서는 각 센서들이 주기적으로 데이터를 발생시켜 전송하기 때문에 요청/응답 방식보다 전형적으로 EDA에 적합하다. 중앙에서 일일이 센서데이터 수신여부를 관리, 감독할 필요 없이 비동기적으로 센서에서 보내는 데이터를 이벤트 형태로 받아들이기만 하면 된다.

2. Event Stream
센서네트워크에서는 데이터의 발생량은 많지 않지만 이벤트를 발생시키는 센서별 스트림의 숫자는 결코 적지 않아 관리에 어려움이 따른다. 그러나 CEP에서는 어댑터를 통해서 다양한 형식의 데이터를 스트림으로 입력 받을 수 있다. 동일 센서네트워크 내에서 관측 특성을 달리하는 복수의 스트림이나 여러 도메인의 센서네트워크 스트림의 이벤트를 실시간으로 동시에 모니터링 하면서 유의미한 정보를 검출할 수 있다.

3. EPL(Event Processing Language)
마지막으로 CEP에서는 EPL을 통해서 이벤트 연산 및 복합 이벤트 검출을 구현할 수 있다. EPL의 사용이 센서네트워크에서 의미를 가지는 이유는 센서네트워크의 관리자 및 사용자가 각자의 필요에 맞게 EPL로 필요한 이벤트 패턴이나 복합이벤트를 정의하고 유연하게 시스템의 중지 없이 실시간으로 적용하여 결과를 얻을 수 있다.

CEP와 센서네트워크와의 연계는 향후에는 더욱 발전할 가능성이 있다. 앞으로 IoT(Internet of Things)를 넘어 IoE(Internet of Everything) 3 세상이 오면 무수한 센서 스트림으로부터 이벤트 발생하게 될 것이다. 이러한 환경에 대응할 수 있는 기술로 EDA(Event Driven Architecture)와 CEP는 분명 센서기반의 빅데이터에서 의미가 날로 증대될 것이다.

 

Notes:

  1. Select-From-Where절의 문법 구조를 차용하여 SQL과 비슷하게 구현되어 있음
  2. 물론 아주 조밀하게 센서를 배포하여 국가적인 단위로 센서네트워크를 정의하면 다를 수도 있지만 이는 차원이 다른 문제이다.
  3. 비슷한 개념으로 CPS(Cyber Physical System)