Drools handledning: Regelmotor ArchiStruktur och diagram
โก Smart sammanfattning
Drools รคr ett system fรถr hantering av affรคrsregler med รถppen kรคllkod skrivet i Java som skiljer affรคrslogik frรฅn applikationskod. Denna resurs fรถrklarar regler, Rete-algoritmen, Drools arkitektur och komponenter, Eclipse plugin-installation och ett exempel pรฅ en Hello World-regel.

Vad รคr Drools?
dreglar รคr en รถppen kรคllkod fรถr Business Rules Management Software (BRMS) skriven i Java som ger anvรคndarna en mรคngd olika funktioner som Business Rule Engine, webbredigering, Rules Management Application och runtime-stรถd fรถr beslutsmodeller och notationsmodeller. Den anvรคnder ett avancerat implementeringssystem fรถr rete mรถnstermatchningsalgoritm.
Drools slรคpptes under Apache License 2.0 och den รคr kompatibel med alla JVM och รคven tillgรคnglig i Maven Central Repository.
Drools-verktyget hjรคlper dig att separera och resonera รถver logik och data som finns i affรคrsprocesser. Den stรถder framรฅt och bakรฅt kedjade slutledningsbaserade dreglande reglermotor.
Dreglar รคr uppdelade i tvรฅ delar:
- Fรถrfattarskap โ Det handlar om utveckling av regelfiler.
- Runtime โ Det handlar om att skapa arbetsminne och hantera aktiveringen.
Vad รคr regel?
Regler รคr delar av kunskap som ofta uttrycks som "Nรคr specifika fรถrhรฅllanden uppstรฅr, gรถr dรฅ nรฅgra uppgifter."
Den mest avgรถrande delen av en regel รคr den nรคr del. En gรฅng nรคr del รคr nรถjd, sedan delen utlรถses.
Syntax:
When <Condition is true> Then <Take desired Action>
Mรถnstermatchningsmetod
Mรถnstermatchningsmetoden hjรคlper dig att jรคmfรถra nya eller gamla fakta med produktionsreglerna. Den kompletteras av Inference Engine.
Algorithms som anvรคnds fรถr mรถnstermatchning รคr:
- Rete Algorithm
- Leaps Algoritm
- Linjรคr algoritm
- Behandlingsalgoritm
Den algoritm som oftast anvรคnds av Drools รคr Rete Algorithm.
Rete Algorithm
Rete-algoritmen รคr en anvรคndbar mรถnstermatchningsalgoritm som lรฅter dig implementera produktionsregelsystem. Det hjรคlper dig att offra minne fรถr รถkad hastighet. Det minskar eller eliminerar ocksรฅ specifika typer av redundans med hjรคlp av noddelning. Den lagrar partiella matchningar samtidigt som den utfรถr kopplingar mellan olika faktatyper.
Dreglar hรคrskarmotor
Dreglar hรคrskarmotor รคr ett regelbaserat tillvรคgagรฅngssรคtt fรถr att implementera ett expertsystem i programvaran Drools. Regelmotorn tillhandahรฅller expertsystem som รคr kunskapsbaserade system som hjรคlper dig att fatta beslut som vad du ska gรถra och hur du ska gรถra det. Den samlar kunskap till en kunskapsbas som kan anvรคndas fรถr resonemang.
Drools Tools Suite
Nu i denna Drools Rule Engine-handledning kommer vi att lรคra oss om Drools Tool Suite. Hรคr รคr fem typer av verktyg som kommer som en del av Drools-sviten:
- Dreglar Guvnor: Det รคr ett centraliserat arkiv fรถr Drools KnowledgeBase.
- Dreglar Flรถde: Det erbjuder arbetsflรถde och affรคrsprocesser.
- Dreglar Fusion: Verktyg som anvรคnds fรถr komplex hรคndelsebearbetning
- Dreglar Expert eller Rules Engine: Ett anvรคndbart verktyg fรถr att utfรถra resonemang.
- Dreglar Planner: Till erbjuder automatiserad planering, som inkluderar NP-hรฅrda planeringsproblem.
Viktiga komponenter i Drools
Lรฅt oss nu i denna Drools-handledning lรคra oss om viktiga komponenter i Drools.
Hรคr รคr viktiga termer som anvรคnds i Drools:
- Fakta โ Fakta representerar de uppgifter som fungerar som indata fรถr regler
- Arbetsminnet โ Fรถrvaring med fakta, dรคr de anvรคnds fรถr mรถnstermatchning. Den kan modifieras, infogas och ta bort.
- Kunskapssession โ Den hรคr komponenten innehรฅller alla resurser som krรคvs fรถr avfyrningsregel. Hรคr infogas all fakta i den enstaka sessionen och sedan avfyras matchningsregler.
- Kunskapsbas โ Det representerar kunskapen i Drools ekosystem. Den lagrar bildandet av resurserna dรคr reglerna finns.
- Modulerna โ Det hรคr รคr en modul som lagrar flera kunskapsbaser som kan hรฅlla olika sessioner
Architecture of Drools

Hรคr รคr arbetssystemet fรถr Drools arkitektur:
Steg 1) Reglerna laddas in i Rule Base, som รคr tillgรคngliga hela tiden.
Steg 2) Fakta registreras i arbetsminnet dรคr de sedan kan modifieras eller omformas.tracted.
Steg 3) Processen att matcha nya eller befintliga fakta mot produktionsregler kallas mรถnstermatchning, som utfรถrs av regelmotorn.
Steg 4) Dagordningen lรฅter dig hantera exekveringsordningen fรถr de motstridiga reglerna med hjรคlp av en konfliktlรถsningsstrategi.
Funktioner hos Dregla
Hรคr รคr viktiga egenskaper hos Drool:
- Hjรคlper dig att skilja applikation frรฅn dynamisk logik
- Deklarativ programmering
- Centralisering av kunskap
- Hastighet och skalbarhet
- Separera logik frรฅn applikation
- Fรถrstรฅliga regler
Hur man lรคgger till Drools plugins i Eclipse
Nu i denna Drools-handledning, lรฅt oss lรคra oss hur man lรคgger till Drools-plugin Eclipse.
Steg 1) Klicka pรฅ "Distribution ZIP" fรถr jBPM-integration
Gรฅ till https://www.drools.org/download/download.html och klicka pรฅ โDistribution ZIPโ fรถr jBPM-integration. Nรคr nedladdningen รคr klar, t.ex.tracรถver den till din hรฅrddisk.
Steg 2) Installera ny programvara
In Eclipse, vรคlj Installera ny programvara.
Steg 3) Klicka pรฅ knappen Lรคgg till
Klicka pรฅ knappen Lรคgg till fรถr att lรคgga till en programvara.
Steg 4) Blรคddra i mapp
Pรฅ nรคsta skรคrm, klicka pรฅ Lokal och vรคlj mappen "org.drools.updatesite/" och klicka sedan pรฅ Ok.
Steg 5) Klicka pรฅ knappen Nรคsta
Klicka pรฅ knappen Nรคsta pรฅ installationssidan.
Steg 6) Acceptera licensavtalet
Acceptera licensavtalet och klicka pรฅ Nรคsta.
Steg 7) omstart Eclipse
Programvaran kommer att laddas ner och du blir ombedd att starta om Eclipse.
Steg 8) Installationsprocessen รคr klar
In Windows > Instรคllningar-menyn kommer du att se alternativet Drools som indikerar att det รคr installerat.
Dreglar Program Hello World Exempel
Nedan รคr ett Drols-exempel fรถr 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
Vad รคr Backward vs Forward Chaining?
En framรฅtkedjemotor kontrollerar fakta och drar en specifik slutsats.
Lรฅt oss รถvervรคga ett scenario av det medicinska diagnossystemet. Om patientens symtom sรคtts in som fakta i arbetsminnet, dรฅ รคr det lรคtt att diagnostisera honom med en รฅkomma.
Framkedjemotor
En bakรฅtkedjemotor har det satta mรฅlet, och motorn fรถrsรถker tillfredsstรคlla det.
Tรคnk pรฅ samma scenario fรถr medicinsk diagnos. Antag att en epidemi av en viss sjukdom. Denna AI skulle kunna anta att en given individ hade sjukdomen och fรถrsรถka avgรถra om dess diagnos รคr korrekt baserat pรฅ tillgรคnglig information.
Bakรฅtkedjande motor
Varfรถr anvรคnda Drools Rule Engine?
Hรคr รคr de frรคmsta anledningarna till att anvรคnda Drools regelmotor:
- Reglerna รคr lรคtta att fรถrstรฅ fรถr utvecklare och affรคrsanalytiker.
- Reglerna รคr lรคtta att underhรฅlla.
- Rule Engine anvรคnder en Rete-algoritm som sรคger att motorns prestanda aldrig beror pรฅ antalet regler.
- Regler kan รคndras och distribueras utan att ta bort applikationen.
- Externaliserar affรคrslogiken frรฅn den jรคmfรถrelsevis statiska kodbasen.
- Regler รคr utvecklade i mindre komplicerade format sรฅ att affรคrsanalytikern enkelt kan lรคsa och verifiera en grupp regler.
- Regler lรฅter dig skapa ett kunskapslager som รคr kรถrbart i form.
- Verktyg som Eclipse hjรคlpa dig att hantera regler, fรฅ ett omedelbart svar, autentisering och innehรฅllsstรถd.
Nackdelar med Rules Engine
Hรคr รคr nackdelarna/nackdelarna med att anvรคnda regelmotor:
- En hel del inlรคrningsinsatser krรคver av utvecklare fรถr att kunna denna programmeringsmetod
- Regelmotor รคr inte en sรคker metod fรถr att felsรถka problem.
- Behรถver fรถrstรฅ hur regelmotorn fungerar fรถr att fรถrbruka mer minne
- Det finns en bred uppsรคttning regler fรถr en komplex fรถrgrening.
Reglerna kan รคndras med tiden och kommer att trรคda i kraft med kodรคndringar









