Drools Tutorial: Regelmotor ArchiTekstur og diagram

โšก Smart opsummering

Drools er et open source-system til styring af forretningsregler skrevet i Java der adskiller forretningslogik fra applikationskode. Denne ressource forklarer regler, Rete-algoritmen, Drools-arkitektur og komponenter, Eclipse plugin-opsรฆtning og et eksempel pรฅ et Hello World-regel.

  • ๐Ÿ‡ง๐Ÿ‡ท Kernedefinition: Drools er en Java-baseret BRMS, der kรธrer forretningsregler ved hjรฆlp af Rete-mรธnstermatchningsalgoritmen.
  • ๐Ÿ“œ Regelstruktur: En regel fรธlger et nรฅr-sรฅ-format, der kun udlรธser handlinger, nรฅr dens betingelser matcher fakta i arbejdshukommelsen.
  • ๐Ÿ—๏ธ Archilรฆre: Regler indlรฆses i en regelbase, fakta indtastes i arbejdshukommelsen, og systemet matcher og sender dem gennem en dagsorden.
  • ๐Ÿ”Œ Eclipse Opsรฆtning: Drools-pluginnet installeres i Eclipse via jBPM-distributions-ZIP'en og dialogboksen Installer ny software.
  • ๐Ÿ”„ Kรฆdetilstande: Drools understรธtter fremadrettet kรฆdefรธring fra fakta til konklusioner og bagudrettet kรฆdefรธring fra et mรฅl tilbage til fakta.

Drools-vejledning

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 overfรธres til arbejdshukommelsen, hvor de derefter kan modificeres eller รฆndres.tracted.

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 den er downloadet, f.eks.tracoverfรธr den 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.
  • Skal 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

Ofte Stillede Spรธrgsmรฅl

Ja. Drools er udgivet under Apache-licensen 2.0 og er fuldstรฆndig gratis og open source. Det kรธrer pรฅ enhver JVM og er tilgรฆngeligt via Maven Central Repository for nem projektintegration.

Drools-regler er skrevet i DRL (Drools Rule Language), en deklarativ syntaks baseret pรฅ hvornรฅr-sรฅ-strukturen. Regler kan ogsรฅ forfattes ved hjรฆlp af beslutningstabeller, DMN-modeller eller domรฆnespecifikke sprog til forretningsbrugere.

En regelmotor eksternaliserer logik til vedligeholdelige regler, der รฆndres uden at applikationen skal implementeres igen. Hรฅrdkodet if-else-logik er spredt i kodebasen, svรฆrere at opdatere og skalerer ikke godt, efterhรฅnden som antallet af betingelser vokser.

Drools implementerer ekspertsystemer, en klassisk gren af โ€‹โ€‹AI, ved at kode menneskelig viden som regler. Motoren rรฆsonnerer over fakta for at nรฅ frem til konklusioner og understรธtter fremadrettet og bagudrettet kรฆdedannelse svarende til symbolske AI-beslutningssystemer.

Ja. AI-assistenter kan udarbejde DRL-regler ud fra krav i letforstรฅelige sprog, registrere modstridende eller redundante regler og foreslรฅ optimeringer. Teams validerer stadig de genererede regler for at sikre korrekt forretningslogik og pรฅlidelig udfรธrelse.

Opsummer dette indlรฆg med: