봉 블로그

Drools Fusion (CEP) 본문

개발환경/Drools

Drools Fusion (CEP)

idkbj 2015. 12. 10. 16:38

뭐하는 놈이지?

Drools Fusion은 CEP(Complex Event Processing) 처리를 위해 Drools에서 제공하는 기능이다. 별도의 컴포넌트로 제공되지 않는다.  별도의 컴포넌트가 필요없는것이, CEP 의 use case 대부분이 이미 Drools 의 use case 와 다르지 않기 때문이다. Drools 는 이미 Complex Event 를 rule로서 처리해왔으며 여기에 event stream processing 기능을 추가하여 Drools Fusion을 만들었다. 


어떻게 사용하지?


STREAM mode 설정

Drools 는 CLOUD mode 가 default 로 사용된다. Drools Fusion 기능을 사용하기 위해서는 아래와 같이 STREAM mode 로 설정한다.

또는 kmodule.xml 의 eventProcessMode를 설정한다.

또는 아래와 같이 system property 를 설정할수도 있다.


Event 정의 및 Time window 사용

위 예시는 하루동안 (window:time(24h)) status 가 Message.HELLO 인 Message event 의 개수가 3개이상일때 해당 event 개수를 출력하는 rule sample 이다.  window:time(24h) 와 함께 사용할 event 는 상단에 @role(event) 로서 정의되어야 한다.


Length window

time window 대신 최근 발생한 event 개수를 기준으로 처리할수도 있다. 

아래는 'RHT'라는 회사의 가장 최근 10개의 StockTick event 를 가져온다.


실행 방법은

여기를 참고 : http://idkbj.tistory.com/119


미래의 event 는 지금보다 훨씬 복잡한 이벤트 처리가 요구되어질것이다. Drools Fusion 은 이미 그 준비가 되어 있다 하겠다.


참고 url:

http://docs.jboss.org/drools/release/6.3.0.Final/drools-docs/html_single/index.html#DroolsComplexEventProcessingChapter