무선센서네트워크 (WSN, Wireless Sensor Network)

무선센서네트워크(WSN, Wireless Sensor Network)는 온도,기압 등과 같은 물리, 환경 조건을 측정하기 위하여 분산 배포된 센서 노드들, 무선을 통해 센서노드로부터 정보를 수집하여 이를 중앙 서버로 전달하는 게이트웨이(또는 싱크노드)와 수집된 정보를 저장, 관리, 분석, 활용하기 위한 사용자 인터페이스인 소프트웨어로 이루어진다.

Wireless Sensor Network 2

그림참조: http://monet.postech.ac.kr/research.html

용어적으로는 국내에서는 유비쿼터스란 개념을 덧붙여 USN(Ubiquitous Sensor Network)로 많이 불리지만 국제적으로는 WSN으로 통용된다.

Wireless Sensor Network

그림참조: http://en.wikipedia.org/wiki/File:WSN.svg

센서노드간의 무선통신에는 주로 ZigBee가 주로 사용되고, flooding을 통해서 게이트웨이까지 관측 정보를 전달한다. 센서 노드간의 네트워크 토폴로지는 주로 Star Network가 사용되며 경우에 따라서시스템 안정성 확보를 위해서는 Mesh Network, 네트워크의 범위나 거리를 증대시키기 위해서는 Tree Network가 사용된다.

WSN_topology

 

그림참조: https://lifeboat.com/ex/security.preserver

WSN_topology 2

그림참조: http://www.kanda.com/zigbee-wireless.html

 

센서네트워크 안에 배포되는 센서노드의 수는 적용대상과 범위에 따라 작게는 수십개에서 수백개 이상이 된다. 초기에는 군사감시용으로 개발되었으나 현재는 공기질, 숲, 수질 등 환경감시, 재난정보 감시 등 다양한 영역에서 활용되고 있으며 사물인터넷(M2M/IoT)기술의 발달과 더불어 기술의 적용영역이 더욱 확대되고 있다.

참조
[1] http://en.wikipedia.org/wiki/Wireless_sensor_network
[2] http://www.ni.com/white-paper/11529/ko/
[3] http://www.procon.co.kr/pdf/2009%2011/기획특집_200911_04.pdf

센서네트워크에 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)