Drools Fusion (CEP)
뭐하는 놈이지?
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