Drools Tutorial: Drools Rule Engine Architecture & eksempler

Hvad er Drools?

drools er en open source Business Rules Management Software (BRMS) skrevet i Java der giver brugerne en række funktioner såsom Business Rule Engine, Web-authoring, Rules Management Application og runtime-understøttelse af Decision Model og Notation-modeller. Det bruger avanceret implementeringssystem med rete mønstermatching-algoritme.

Drools blev udgivet under Apache License 2.0, og den er kompatibel med enhver JVM og også tilgængelig i Maven Central Repository.

Drools-værktøjet hjælper dig med at adskille og ræsonnere over logik og data, der findes i forretningsprocesser. Det understøtter frem- og baglæns kædeslutningsbaseret savleregler-motor.

Savler er opdelt i to dele:

  • Forfatter – Det involverer udvikling af regelfiler.
  • Runtime – Det involverer oprettelse af arbejdshukommelse og håndtering af aktiveringen.

Hvad er regel?

Regler er dele af viden, der ofte udtrykkes som: "Når specifikke forhold opstår, så lav nogle opgaver."

Den mest afgørende del af en regel er den hvornår en del. Enkelt gang hvornår del er tilfreds, derefter delen udløses.

Syntaks:

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

Mønstertilpasningsmetode

Mønstertilpasningsmetoden hjælper dig med at sammenligne nye eller gamle fakta med produktionsreglerne. Det fuldendes af Inference Engine.

Algorithms brugt til mønstermatchning er:

  • Rete algoritme
  • Spring algoritme
  • Lineær algoritme
  • Behandlingsalgoritme

Den algoritme, der oftest bruges af Drools, er Rete Algorithm.

Rete algoritme

Rete-algoritmen er en nyttig mønstertilpasningsalgoritme, som giver dig mulighed for at implementere produktionsregelsystemer. Det hjælper dig med at ofre hukommelse for øget hastighed. Det reducerer eller eliminerer også specifikke typer redundans ved hjælp af nodedeling. Den gemmer delvise matches, mens den udfører sammenføjninger mellem forskellige faktatyper.

Drools Rule Engine

Drools Rule Engine er en regelbaseret tilgang til at implementere et ekspertsystem i Drools-softwaren. Regelmotoren leverer ekspertsystemer, som er videnbaserede systemer, der hjælper dig med at træffe beslutninger som f.eks. hvad du skal gøre, og hvordan du gør det. Den samler viden til en videnbase, der kan bruges til ræsonnement.

Drools Tools Suite

Nu i denne Drools Rule Engine-tutorial lærer vi om Drools Tool Suite. Her er fem typer værktøjer, der kommer som en del af Drools-pakken:

  • Savler Guvnor: Det er et centraliseret lager for Drools KnowledgeBase.
  • Savler Flow: Det tilbyder workflow og forretningsprocesser.
  • Drools Fusion: Værktøj brugt til kompleks hændelsesbehandling
  • Savler Expert eller Rules Engine: Et nyttigt værktøj til at udføre ræsonnement.
  • Drools Planner: Til tilbyder automatiseret planlægning, som inkluderer NP-hårde planlægningsproblemer.

Vigtige komponenter i Drools

Lad os nu i denne Drools-tutorial lære om vigtige komponenter i Drools.

Her er vigtige udtryk, der bruges i Drools:

  • Fakta – Fakta repræsenterer de data, der tjener som input til regler
  • Arbejde hukommelse – Opbevaring med fakta, hvor de bruges til mønstermatchning. Det kan ændres, indsættes og fjernes.
  • Vidensession – Denne komponent rummer alle de ressourcer, der kræves til affyringsreglen. Her bliver alle fakta sat ind i den enkelte session, og så affyres matchningsregler.
  • Vidensdatabase – Det repræsenterer viden i Drools økosystem. Det gemmer dannelsen af ​​de ressourcer, hvor reglerne findes.
  • Moduler – Dette er et modul, der gemmer flere vidensbaser, som kan holde forskellige sessioner

Architecture of Drools

Drools Rule Engine Architecture
Drools Rule Engine Architecture

Her er arbejdssystemet for Drools arkitektur:

Trin 1) Reglerne indlæses i Rule Base, som er tilgængelige hele tiden.

Trin 2) Fakta hævdes i arbejdshukommelsen, hvor de derefter kan ændres eller trækkes tilbage.

Trin 3) Processen med at matche de nye eller eksisterende fakta mod produktionsregler kaldes mønstermatching, som udføres af regelmotoren.

Trin 4) Dagsordenen giver dig mulighed for at styre udførelsesordren for de modstridende regler ved hjælp af en konfliktløsningsstrategi.

Funktioner af Drool

Her er vigtige funktioner ved Drool:

  • Hjælper dig med at adskille applikation fra dynamisk logik
  • Deklarativ programmering
  • Centralisering af viden
  • Hastighed og skalerbarhed
  • Adskil logik fra applikation
  • Forståelige regler

Sådan tilføjer du Drools plugins Eclipse

Lad os nu i denne Drools-tutorial lære, hvordan du tilføjer Drools-plugin Eclipse.

Trin 1) Klik på "Distribution ZIP" for jBPM-integration
Gå til https://www.drools.org/download/download.html og klik på "Distribution ZIP" for jBPM-integration. Når det er downloadet, skal du udpakke det til din harddisk.

Tilføj Drools Plugins Eclipse

Trin 2) Installer ny software
In Eclipse, vælg Installer ny software.

Tilføj Drools Plugins Eclipse

Trin 3) Klik på knappen Tilføj
Klik på knappen Tilføj for at tilføje en software.

Tilføj Drools Plugins Eclipse

Trin 4) Gennemse mappe
På det næste skærmbillede skal du klikke på Lokal og vælge mappen "org.drools.updatesite/" og derefter klikke på Ok.

Tilføj Drools Plugins Eclipse

Trin 5) Klik på knappen Næste
Klik på knappen Næste på siden for installationsremediering.

Tilføj Drools Plugins Eclipse

Trin 6) Accepter licensaftalen
Accepter licensaftalen og klik på Næste.

Tilføj Drools Plugins Eclipse

Trin 7) Genstart Eclipse
Softwaren downloades, og du bliver bedt om at genstarte eclipse.

Trin 8) Installationsprocessen er fuldført
In Windows > Præferencemenu, vil du se indstillingen Drools, der indikerer, at den er installeret.

Tilføj Drools Plugins Eclipse

Savler Program Hello World Eksempel

Nedenfor er et Drools-eksempel for Hello World-programmet:

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

Hvad er Backward vs Forward Chaining?

En fremadkædende motor kontrollerer fakta og udleder en specifik konklusion.

Lad os overveje et scenarie for det medicinske diagnosesystem. Hvis patientens symptomer sættes som fakta i arbejdshukommelsen, så er det nemt at diagnosticere ham med en lidelse.

Baglæns vs. Forlæns kæde

Fremadkædende motor

En baglæns kædemotor har det fastsatte mål, og motoren forsøger at tilfredsstille det.

Overvej det samme scenarie for medicinsk diagnose. Antag, at en epidemi af en bestemt sygdom. Denne AI kunne antage, at en given person havde sygdommen og forsøge at afgøre, om dens diagnose er korrekt baseret på tilgængelig information.

Baglæns vs. Forlæns kæde

Bagudkædet motor

Hvorfor bruge Drools Rule Engine?

Her er de vigtigste grunde til at bruge Drools regelmotor:

  • Regler er nemme at forstå for udviklere og forretningsanalytikere.
  • Reglerne er lette at vedligeholde.
  • Rule Engine bruger en Rete-algoritme, som siger, at motorens ydeevne aldrig afhænger af antallet af regler.
  • Regler kan ændres og implementeres uden at ødelægge applikationen.
  • Eksternaliserer forretningslogikken fra den forholdsvis statiske kodebase.
  • Regler er udviklet i mindre komplicerede formater, så forretningsanalytikeren nemt kan læse og verificere en gruppe regler.
  • Regler giver dig mulighed for at skabe et lager af viden, som er eksekverbart i form.
  • Værktøjer som Eclipse hjælpe dig med at administrere regler, få et øjeblikkeligt svar, godkendelse og indholdssupport.

Ulemper ved Rules Engine

Her er ulemper/ulemper ved at bruge regelmotor:

  • En masse læringsindsats kræver af udviklere at kende denne metode til programmering
  • Regelmotor er ikke en sikker metode til fejlfinding af problemer.
  • Behov for at forstå, hvordan regelmotoren fungerer for at bruge mere hukommelse
  • Der er et bredt sæt regler for en kompleks forgrening.

Reglerne kan ændre sig over tid og træder i kraft med kodeændringer

Resumé

  • JBoss Drools er en Business Logic integration Platform (BLiP)
  • Typer af Savlværktøj er: 1) Savler Guvnor 2) Savler Flow 3) Savler Fusion 4) Savler Expert 5) Savler, Planlægger.
  • Savl hjælper dig med at adskille applikation fra dynamisk logik.
  • Fakta har repræsenteret de data, der tjener som input til regler.
  • Arbejdshukommelse er et lager med Fakta, hvor de bruges til mønstermatchning. Det kan ændres, indsættes og fjernes.
  • Vidensbase er en komponent, som rummer alle de ressourcer, der kræves til affyringsreglen.
  • Vidensession repræsenterer viden i Drools økosystem.
  • Vidensbase repræsenterer viden i Drools økosystem.
  • Modulet gemmer flere vidensbaser, som kan holde forskellige sessioner.
  • Regler er dele af viden, der ofte udtrykkes som: "Når specifikke forhold opstår, så lav nogle opgaver."
  • En Drools er en regelmotor, som bruger en regelbaseret tilgang til at implementere et ekspertsystem.
  • En fremadkædende motor kontrollerer fakta og udleder en specifik konklusion.
  • En baglæns kædemotor har det fastsatte mål, og motoren forsøger at tilfredsstille det.
  • Rete-algoritmen er en nyttig mønstertilpasningsalgoritme, som giver dig mulighed for at implementere produktionsregelsystemer.
  • Reglerne er nemme at forstå for udviklere og forretningsanalytikere.
  • Den største ulempe ved at bruge regelmotor som Drool er, at det kræver en masse læringsindsats, der kræves af udviklere at kende denne programmeringsmetode.