Drools 튜토리얼: 규칙 엔진 Archi구조 및 도표

⚡ 스마트 요약

Drools는 오픈 소스 비즈니스 규칙 관리 시스템으로, 다음 언어로 작성되었습니다. Java 비즈니스 로직과 애플리케이션 코드를 분리하는 것입니다. 이 자료에서는 규칙, Rete 알고리즘, Drools 아키텍처 및 구성 요소에 대해 설명합니다. Eclipse 플러그인 설정 및 Hello World 규칙 예제입니다.

  • ⚙️ 핵심 정의: Drools는 JavaRete 패턴 매칭 알고리즘을 사용하여 비즈니스 규칙을 실행하는 기반 BRMS입니다.
  • 📜 규칙 구조: 규칙은 '~일 때-~라면' 형식을 따르며, 규칙의 조건이 작업 메모리의 사실과 일치할 때만 동작을 실행합니다.
  • 🏗️ Archi강의: 규칙은 규칙 기반에 로드되고, 사실은 작업 메모리에 입력되며, 엔진은 이를 일치시켜 어젠다를 통해 실행합니다.
  • 🔌 Eclipse 설정 : Drools 플러그인은 다음 위치에 설치됩니다. Eclipse jBPM 배포 ZIP 파일과 "새 소프트웨어 설치" 대화 상자를 통해 설치할 수 있습니다.
  • 🔄 연결 모드: Drools는 사실에서 결론으로 ​​이어지는 순방향 추론과 목표에서 사실로 되돌아가는 역방향 추론을 지원합니다.

침 흘리는 법 배우기

드룰즈란 무엇인가요?

군침 오픈소스 비즈니스 규칙 관리 소프트웨어(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) 사실들은 작업 기억에 입력되고, 거기서 수정되거나 재구성될 수 있다.trac테드.

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

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

드롤의 특징

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

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

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

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

단계 1) jBPM 통합을 위해 “Distribution ZIP”을 클릭하세요.
We Buy Orders 신청서를 클릭하세요. https://www.drools.org/download/download.html jBPM 통합용 "배포 ZIP"을 클릭하세요. 다운로드가 완료되면, 예를 들어trac하드 드라이브에 저장하세요.

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 규칙을 관리하고 즉각적인 응답, 인증 및 콘텐츠 지원을 받는 데 도움이 됩니다.

규칙 엔진의 단점

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

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

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

자주 묻는 질문

네. Drools는 Apache License 2.0에 따라 배포되며 완전한 무료 오픈 소스입니다. 모든 JVM에서 실행되며 Maven Central Repository를 통해 제공되므로 프로젝트에 쉽게 통합할 수 있습니다.

Drools 규칙은 when-then 구조를 기반으로 하는 선언적 구문인 Drools 규칙 언어(DRL)로 작성됩니다. 규칙은 의사결정 테이블, DMN 모델 또는 비즈니스 사용자를 위한 도메인 특화 언어를 사용하여 작성할 수도 있습니다.

규칙 엔진은 로직을 유지보수하기 쉬운 규칙으로 외부화하여 애플리케이션을 재배포하지 않고도 변경할 수 있도록 합니다. 하드코딩된 if-else 로직은 코드베이스 전체에 흩어져 있어 업데이트가 어렵고 조건 수가 증가함에 따라 확장성이 떨어집니다.

Drools는 인간의 지식을 규칙으로 인코딩하여 인공지능의 고전적인 분야인 전문가 시스템을 구현합니다. 이 엔진은 사실에 기반하여 추론하고, 기호 기반 인공지능 의사결정 시스템과 유사하게 순방향 및 역방향 추론을 지원합니다.

네. AI 어시스턴트는 일반적인 요구사항을 바탕으로 DRL 규칙을 작성하고, 충돌하거나 중복되는 규칙을 감지하며, 최적화 방안을 제안할 수 있습니다. 하지만 팀은 생성된 규칙의 비즈니스 로직이 올바르고 실행이 안정적인지 확인하기 위해 검증 작업을 수행합니다.

이 게시물을 요약하면 다음과 같습니다.