Drools 튜토리얼: Drools 규칙 엔진 Archi강의 및 예시

드룰즈란 무엇인가요?

군침 오픈소스 비즈니스 규칙 관리 소프트웨어(BRMS)로 작성되었습니다. Java 사용자에게 비즈니스 규칙 엔진, 웹 작성, 규칙 관리 애플리케이션, 의사결정 모델 및 표기법 모델에 대한 런타임 지원과 같은 다양한 기능을 제공합니다. 이는 반복 패턴 일치 알고리즘의 고급 구현 시스템을 사용합니다.

Drools는 Apache License 2.0에 따라 출시되었으며 모든 JVM과 호환되며 Maven Central Repository에서도 사용할 수 있습니다.

Drools 도구는 비즈니스 프로세스에서 발견되는 논리와 데이터를 분리하고 추론하는 데 도움이 됩니다. 순방향 및 역방향 체인 추론 기반 침 규칙 엔진을 지원합니다.

Drool은 두 부분으로 나뉩니다.

  • 저작 – 규칙 파일 개발이 포함됩니다.
  • 런타임 – 작업 메모리 생성 및 활성화 처리가 포함됩니다.

규칙이란 무엇입니까?

규칙은 "특정 조건이 발생하면 몇 가지 작업을 수행합니다."로 종종 표현되는 지식의 일부입니다.

규칙의 가장 중요한 부분은 다음과 같습니다. 언제 부분. 한 번 언제 부분은 만족하고, 그때 부분이 트리거됩니다.

구문 :

When
<Condition is true>
Then
<Take desired Action>

패턴 매칭 방법

패턴 매칭 방법은 새로운 사실이나 기존 사실을 생산 규칙과 비교하는 데 도움이 됩니다. 이는 추론 엔진에 의해 완성됩니다.

Algorithms 패턴 일치에 사용되는 것은 다음과 같습니다.

  • 리테 알고리즘
  • 도약 알고리즘
  • 선형 알고리즘
  • 알고리즘 처리

그러나 Drools에서 주로 사용하는 알고리즘은 Rete Algorithm이다.

리테 알고리즘

Rete 알고리즘은 생산 규칙 시스템을 구현할 수 있는 유용한 패턴 일치 알고리즘입니다. 속도를 높이기 위해 메모리를 희생하는 데 도움이 됩니다. 또한 노드 공유를 통해 특정 유형의 중복성을 줄이거나 제거합니다. 다양한 팩트 유형 간의 조인을 수행하는 동안 부분 일치를 저장합니다.

Drools 규칙 엔진

Drools 규칙 엔진 Drools 소프트웨어에서 전문가 시스템을 구현하기 위한 규칙 기반 접근 방식입니다. 규칙 엔진은 수행할 작업 및 수행 방법과 같은 결정을 내리는 데 도움이 되는 지식 기반 시스템인 전문가 시스템을 제공합니다. 이는 추론에 사용할 수 있는 지식 기반으로 지식을 수집합니다.

Drools 도구 모음

이제 이 Drools Rule Engine 튜토리얼에서는 Drools Tool Suite에 대해 알아 보겠습니다. 다음은 Drools 제품군의 일부로 제공되는 XNUMX가지 유형의 도구입니다.

  • 침흘림 거브너: Drools KnowledgeBase의 중앙 저장소입니다.
  • 침 흘리는 흐름: 워크플로우와 비즈니스 프로세스를 제공합니다.
  • 드룰스 퓨전: 복잡한 이벤트 처리에 사용되는 도구
  • Drools Expert 또는 규칙 엔진: 추론을 수행하는 데 유용한 도구입니다.
  • Drools 플래너: NP-하드 계획 문제를 포함하는 자동화된 계획을 제공합니다.

Drools의 주요 구성 요소

이제 이번 Drools 튜토리얼에서는 Drools의 중요한 구성 요소에 대해 알아 보겠습니다.

Drools에서 사용되는 필수 용어는 다음과 같습니다.

  • 사리 – 사실은 규칙에 대한 입력으로 사용되는 데이터를 나타냅니다.
  • 메모리 작동 – 패턴 일치에 사용되는 사실이 포함된 저장소. 수정, 삽입, 제거가 가능합니다.
  • 지식 세션 – 이 구성 요소는 실행 규칙에 필요한 모든 리소스를 보유합니다. 여기에서는 모든 사실이 단일 세션에 삽입된 다음 일치하는 규칙이 실행됩니다.
  • 기술 자료 – Drools 생태계의 지식을 나타냅니다. 규칙이 발견되는 리소스의 형성을 저장합니다.
  • 모듈 – 이는 다양한 세션을 보유할 수 있는 여러 기술 자료를 저장하는 모듈입니다.

ArchiDrools의 강의

Drools 규칙 엔진 Archi강의
Drools 규칙 엔진 Archi강의

Drools 아키텍처의 작업 시스템은 다음과 같습니다.

단계 1) 규칙은 항상 사용할 수 있는 규칙 베이스에 로드됩니다.

단계 2) 사실은 작업 메모리에 입력되어 수정되거나 철회될 수 있습니다.

단계 3) 새 사실이나 기존 사실을 프로덕션 규칙과 일치시키는 프로세스를 패턴 일치라고 하며 규칙 엔진에서 수행됩니다.

단계 4) 의제를 사용하면 충돌 해결 전략을 통해 충돌하는 규칙의 실행 순서를 관리할 수 있습니다.

드롤의 특징

Drool의 중요한 기능은 다음과 같습니다.

  • 애플리케이션을 동적 로직과 분리하는 데 도움이 됩니다.
  • 선언적 프로그래밍
  • 지식의 집중화
  • 속도와 확장성
  • 애플리케이션과 로직 분리
  • 이해할 수 있는 규칙

Drools 플러그인을 추가하는 방법 Eclipse

이제 이 Drools 튜토리얼에서는 Drools 플러그인을 추가하는 방법을 알아보겠습니다. Eclipse.

단계 1) jBPM 통합을 위해 “Distribution ZIP”을 클릭하세요.
We Buy Orders 신청서를 클릭하세요. https://www.drools.org/download/download.html jBPM 통합을 위해 “Distribution ZIP”을 클릭하세요. 다운로드가 완료되면 하드 드라이브에 압축을 풉니다.

Drools 플러그인 추가 Eclipse

단계 2) 새 소프트웨어 설치
In Eclipse에서 새 소프트웨어 설치를 선택합니다.

Drools 플러그인 추가 Eclipse

단계 3) 추가 버튼을 클릭하세요
소프트웨어를 추가하려면 추가 버튼을 클릭하세요.

Drools 플러그인 추가 Eclipse

단계 4) 폴더 찾아보기
다음 화면에서 로컬을 클릭하고 “org.drools.updatesite/” 폴더를 선택한 다음 확인을 클릭하세요.

Drools 플러그인 추가 Eclipse

단계 5) 다음 버튼을 클릭하세요.
설치 수정 페이지에서 다음 버튼을 클릭합니다.

Drools 플러그인 추가 Eclipse

단계 6) 라이센스 계약에 동의
라이센스 계약에 동의하고 다음을 클릭하세요.

Drools 플러그인 추가 Eclipse

단계 7) 재부팅 Eclipse
소프트웨어가 다운로드되고, Eclipse를 재부팅하라는 메시지가 표시됩니다.

단계 8) 설치 과정이 완료되었습니다.
In Windows > 기본 설정 메뉴를 선택하면 Drools 옵션이 설치되었음을 나타내는 Drools 옵션이 표시됩니다.

Drools 플러그인 추가 Eclipse

Drools 프로그램 Hello World 예제

다음은 Hello World 프로그램에 대한 Drools의 예입니다.

package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
 when
	m : Message( status ** Message.Hello, myMessage : message )
  then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE ); 
update( m );
end
 rule "GoodBye"

when
	Message( status ** Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end

역방향 연결과 순방향 연결이란 무엇입니까?

순방향 연결 엔진은 사실을 확인하고 구체적인 결론을 도출합니다.

의료 진단 시스템의 시나리오를 생각해 봅시다. 환자의 증상이 작업 기억에 사실로 입력되면 환자의 질병을 진단하기가 쉽습니다.

역방향 대 순방향 체인

순방향 체인 엔진

역방향 연결 엔진은 설정된 목표를 갖고 있으며 엔진은 이를 충족시키려고 노력합니다.

동일한 의료 진단 시나리오를 고려하십시오. 특정 질병이 유행한다고 가정합니다. 이 AI는 특정 개인이 질병에 걸렸다고 가정하고 이용 가능한 정보를 기반으로 진단이 올바른지 판단하려고 시도할 수 있습니다.

역방향 대 순방향 체인

역방향 체인 엔진

Drools 규칙 엔진을 사용하는 이유는 무엇입니까?

Drools 규칙 엔진을 사용하는 주요 이유는 다음과 같습니다.

  • 규칙은 개발자가 이해하기 쉽고 비즈니스 분석가.
  • 규칙은 쉽게 유지 관리할 수 있습니다.
  • 규칙 엔진은 엔진의 성능이 규칙 수에 절대 좌우되지 않는다는 Rete 알고리즘을 사용합니다.
  • 애플리케이션을 중단시키지 않고도 규칙을 수정하고 배포할 수 있습니다.
  • 비교적 정적인 코드베이스에서 비즈니스 로직을 외부화합니다.
  • 규칙은 비즈니스 분석가가 규칙 그룹을 쉽게 읽고 확인할 수 있도록 덜 복잡한 형식으로 개발됩니다.
  • 규칙을 사용하면 형식으로 실행 가능한 지식 창고를 만들 수 있습니다.
  • 같은 도구 Eclipse 규칙을 관리하고 즉각적인 응답, 인증 및 콘텐츠 지원을 받는 데 도움이 됩니다.

규칙 엔진의 단점

다음은 규칙 엔진 사용의 단점/단점입니다.

  • 개발자는 이 프로그래밍 방법을 알아야 많은 학습 노력을 할 수 있습니다.
  • 규칙 엔진은 문제를 해결하는 안전한 방법이 아닙니다.
  • 더 많은 메모리를 소비하려면 규칙 엔진의 작동을 이해해야 합니다.
  • 복잡한 분기에는 광범위한 규칙이 있습니다.

규칙은 시간이 지남에 따라 변경될 수 있으며 코드 변경으로 발효됩니다.

제품 개요

  • JBoss Drools는 BLiP(비즈니스 로직 통합 플랫폼)입니다.
  • Drool 도구의 종류는 다음과 같습니다: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • Drool은 동적 로직에서 애플리케이션을 분리하는 데 도움이 됩니다.
  • 사실은 규칙에 대한 입력으로 사용되는 데이터를 나타냅니다.
  • 작업 메모리는 사실을 저장하는 저장소로, 패턴 일치에 사용됩니다. 수정, 삽입, 제거가 가능합니다.
  • 기술 자료는 실행 규칙에 필요한 모든 리소스를 보유하는 구성 요소입니다.
  • 지식 세션은 Drools 생태계의 지식을 나타냅니다.
  • 지식 기반은 Drools 생태계의 지식을 나타냅니다.
  • 모듈은 다양한 세션을 보유할 수 있는 여러 기술 자료를 저장합니다.
  • 규칙은 "특정 조건이 발생하면 몇 가지 작업을 수행합니다."로 종종 표현되는 지식의 일부입니다.
  • Drools는 전문가 시스템을 구현하기 위해 규칙 기반 접근 방식을 사용하는 규칙 엔진입니다.
  • 순방향 연결 엔진은 사실을 확인하고 구체적인 결론을 도출합니다.
  • 역방향 연결 엔진은 설정된 목표를 갖고 있으며 엔진은 이를 충족시키려고 노력합니다.
  • Rete 알고리즘은 생산 규칙 시스템을 구현할 수 있는 유용한 패턴 일치 알고리즘입니다.
  • 규칙은 개발자와 비즈니스 분석가가 쉽게 이해할 수 있습니다.
  • Drool과 같은 규칙 엔진을 사용할 때의 주요 단점은 개발자가 이러한 프로그래밍 방법을 알기 위해 필요한 많은 학습 노력이 필요하다는 것입니다.