봉 블로그

Drools 6 New Features 본문

개발환경/Drools

Drools 6 New Features

idkbj 2015. 10. 29. 16:36

Drools 5.* 에서 6.* 대로 오면서 달라진 변화들을 아래와 같이 정리한다.

1. Build & Deploy & Loading (utilization) 절차를 Maven 방식으로 변경

   - 5.* 에서는 Guvnor(6.* 에서는 Workbench 라 칭함) 에 의해 rule package (binary file) 를 build 및 자체 rule repository로 deploy 하고 Guvnor 에서 제공하는 url 를 통해 rule 을 loading 했는데, 6.* 에서는 Workbench 에서 maven project 를 생성 및 build 하고 maven repository 에 deploy 한다. Drools Workbench 에서 관리하는 maven project (Kie project 라고도 함)에는 rule, rule flow, data object 등을 포함한다.


- Drools6 Deployment -

2. Convention over Configuration(CoC) 도입

'kmodule.xml' 은 CoC기반 Kie project 를 구성할수 있게 한다. CoC는 Ruby on Rails를 통해 각광을 받았고 Spring framework 등 대부분의 프레임워크에서 기본적으로 차용하고 있는 소프트웨어 디자인 패턴이다. 쉽게 말해 configuration 기반의 소프트웨어개발 방법을 제공하고 default 설정을 제공하여 최소한의 설정 및 코드 만으로 개발 및 운영이 가능하다. 물론, 5.* 버전처럼 프로그래밍방식의 개발 및 운영도 가능하다.


3. PREAK algorithm (Lazy rule matching algorithm)

PREAK 이라는 새로운 알고리즘을 도입합으로서 대규모의 rules and facts 를 처리할수 있게됬다. AngendaGroups 을 사용하면서 성능개선이 가능해졌음. 


4. Workbench use Uberfire & Git

Workbench 의 ui 를 Uberfire 라는 web 기반 ui framework 으로 모두 변경하였다. Eclipse 에 영향을 받아 만들어진 ui framework 이라함. GWT 기반이라 java 를 통해 web기반 ui 를 만들수 있다. 그리고, 또하나의 중요한 변화는 Workbench 에서 작성하는 모든 resource들(rule, rule flow, data object 등)에 대한 버전관리를 Git을 이용한다는것이다. 5.* 버전에서는 JCR(Apache Jackrabbit) 이라는것으로 했음. Git을 적용함으로서 Workbench 와 Eclipse 등의 최신 IDE 툴과의 협업이 매우 편리해졌다.


5. KIE Execution Server

6.2.0 버전부터 추가된 놈인데 provisioning 과 원격 룰 호출을 위해 REST API 를 제공한다. 


6.2.0 버전부터 Workbench 에 Decision Tree Editor 가 추가되는 등의 기타 여러기능들이 개선되었음.