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.

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

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.
Trin 2) Installer ny software
In Eclipse, vรฆlg Installer ny software.
Trin 3) Klik pรฅ knappen Tilfรธj
Klik pรฅ knappen Tilfรธj for at tilfรธje en software.
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.
Trin 5) Klik pรฅ knappen Nรฆste
Klik pรฅ knappen Nรฆste pรฅ siden for installationsremediering.
Trin 6) Accepter licensaftalen
Accepter licensaftalen og klik pรฅ Nรฆste.
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.
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.
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.
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









