Drools-opplæring: Regelmotor ArchiTekstur og diagram

⚡ Smart oppsummering

Drools er et åpen kildekode-system for forretningsregler skrevet i Java som skiller forretningslogikk fra applikasjonskode. Denne ressursen forklarer regler, Rete-algoritmen, Drools-arkitektur og komponenter, Eclipse oppsett av plugin og et eksempel på en Hello World-regel.

  • ⚙️ Kjernedefinisjon: Drools er en Java-basert BRMS som kjører forretningsregler ved hjelp av Rete-mønstersamsvarsalgoritmen.
  • 📜 Regelstruktur: En regel følger et når-så-format, og utløser bare handlinger når betingelsene samsvarer med fakta i arbeidsminnet.
  • 🏗️ Archilære: Regler lastes inn i en regelbase, fakta går inn i arbeidsminnet, og motoren matcher og sender dem gjennom en agenda.
  • 🔌 Eclipse Oppsett: Drools-pluginen installeres i Eclipse gjennom jBPM-distribusjonens ZIP-fil og dialogboksen Installer ny programvare.
  • 🔄 Kjedemoduser: Drools støtter fremoverkjetting fra fakta til konklusjoner og bakoverkjetting fra et mål tilbake til fakta.

Drools-opplæring

Hva er Drools?

Sikler er en åpen kildekode Business Rules Management Software (BRMS) skrevet i Java som gir brukere en rekke funksjoner som Business Rule Engine, Web-redigering, Rules Management Application og kjøretidsstøtte for Decision Model og Notation-modeller. Den bruker avansert implementeringssystem for rete mønstertilpasningsalgoritme.

Drools ble utgitt under Apache License 2.0, og den er kompatibel med alle JVM og også tilgjengelig i Maven Central Repository.

Drols-verktøyet hjelper deg å skille og resonnere over logikk og data som finnes i forretningsprosesser. Den støtter forover og bakover kjeding inferensbasert sikleregler motor.

Sikler er delt i to deler:

  • Forfatter – Det innebærer utvikling av regelfiler.
  • Runtime – Det innebærer å lage arbeidsminne og håndtere aktiveringen.

Hva er regel?

Regler er deler av kunnskap ofte uttrykt som: "Når spesifikke forhold oppstår, så gjør noen oppgaver."

Den mest avgjørende delen av en regel er den når del. En gang når del er fornøyd, deretter delen utløses.

Syntaks:

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

Mønstertilpasningsmetode

Mønstertilpasningsmetoden hjelper deg å sammenligne nye eller gamle fakta med produksjonsreglene. Den fullføres av Inference Engine.

Algorithms brukt for mønstertilpasning er:

  • Rete algoritme
  • Sprang-algoritme
  • Lineær algoritme
  • Behandlingsalgoritme

Algoritmen som mest brukes av Drools er imidlertid Rete-algoritmen.

Rete algoritme

Rete-algoritmen er en nyttig mønstertilpasningsalgoritme som lar deg implementere produksjonsregelsystemer. Det hjelper deg å ofre minne for økt hastighet. Den reduserer eller eliminerer også spesifikke typer redundans ved hjelp av nodedeling. Den lagrer delvise treff mens den utfører sammenføyninger mellom ulike faktatyper.

Sikler regelmotor

Sikler regelmotor er en regelbasert tilnærming for å implementere et ekspertsystem i Drools-programvaren. Rule-motoren tilbyr ekspertsystemer som er kunnskapsbaserte systemer som hjelper deg med å ta beslutninger som hva du skal gjøre og hvordan du skal gjøre det. Den samler kunnskap til en kunnskapsbase som kan brukes til resonnement.

Dools Tools Suite

Nå i denne Drools Rule Engine-opplæringen vil vi lære om Drools Tool Suite. Her er fem typer verktøy som kommer som en del av Drools-pakken:

  • Sikler Guvnor: Det er et sentralisert depot for Drools KnowledgeBase.
  • Sikler flyt: Det tilbyr arbeidsflyt og forretningsprosesser.
  • Sikler Fusion: Verktøy som brukes for kompleks hendelsesbehandling
  • Sikler Expert eller Rules Engine: Et nyttig verktøy for å utføre resonnement.
  • Sikler Planner: Til tilbyr automatisert planlegging, som inkluderer NP-harde planleggingsproblemer.

Viktige komponenter i Drools

Nå i denne Drools-opplæringen, la oss lære om viktige komponenter i Drools.

Her er essensielle termer som brukes i Drools:

  • Fakta – Fakta representerer dataene som fungerer som input for regler
  • Arbeidsminnet – Lagring med fakta, hvor de brukes til mønstermatching. Den kan endres, settes inn og fjernes.
  • Kunnskapsøkt – Denne komponenten inneholder alle ressursene som kreves for avfyringsregelen. Her settes alle fakta inn i enkeltsesjonen, og deretter blir matchingsregler utløst.
  • Kunnskapsbase – Det representerer kunnskapen i Drools økosystem. Den lagrer dannelsen av ressursene der regler finnes.
  • Moduler – Dette er en modul som lagrer flere kunnskapsbaser som kan holde forskjellige økter

Architecture of Drools

Sikler regelmotor Architecture
Sikler regelmotor Architecture

Her er arbeidssystemet til Drools arkitektur:

Trinn 1) Reglene lastes inn i Rule Base, som er tilgjengelig hele tiden.

Trinn 2) Fakta blir lagt inn i arbeidsminnet, hvor de deretter kan modifiseres eller endres.tracted.

Trinn 3) Prosessen med å matche nye eller eksisterende fakta mot produksjonsregler kalles mønstertilpasning, som utføres av regelmotoren.

Trinn 4) Agendaen lar deg administrere utførelsen av de motstridende reglene ved hjelp av en konfliktløsningsstrategi.

Funksjoner av Dool

Her er viktige funksjoner til Drool:

  • Hjelper deg å skille applikasjon fra dynamisk logikk
  • Deklarativ programmering
  • Sentralisering av kunnskap
  • Hastighet og skalerbarhet
  • Skille logikk fra applikasjon
  • Forståelige regler

Slik legger du til Drools-plugins Eclipse

Nå i denne Drools-opplæringen, la oss lære hvordan du legger til Drools-plugin Eclipse.

Trinn 1) Klikk på "Distribusjons-zip" for jBPM-integrasjon
Gå til https://www.drools.org/download/download.html og klikk på «Distribusjons-ZIP» for jBPM-integrasjon. Når den er nedlastet, f.eks.traclast den inn på harddisken din.

Legg til Drools Plugins Eclipse

Trinn 2) Installer ny programvare
In Eclipse, velg Installer ny programvare.

Legg til Drools Plugins Eclipse

Trinn 3) Klikk på Legg til-knappen
Klikk på Legg til-knappen for å legge til en programvare.

Legg til Drools Plugins Eclipse

Trinn 4) Bla gjennom mappe
I neste skjermbilde klikker du på Lokal og velger mappen "org.drools.updatesite/" og klikker deretter OK.

Legg til Drools Plugins Eclipse

Trinn 5) Klikk på Neste-knappen
Klikk på Neste-knappen på siden for installering.

Legg til Drools Plugins Eclipse

Trinn 6) Godta lisensavtalen
Godta lisensavtalen og klikk på Neste.

Legg til Drools Plugins Eclipse

Trinn 7) Reboot Eclipse
Programvaren vil lastes ned, og du vil bli bedt om å starte eclipse på nytt.

Trinn 8) Installasjonsprosessen fullført
In Windows > Innstillinger-menyen, vil du se Sikle-alternativet som indikerer at det er installert.

Legg til Drools Plugins Eclipse

Sikler 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

Hva er bakover vs. foroverkjeding?

En fremoverlent motor sjekker fakta og trekker en spesifikk konklusjon.

La oss vurdere et scenario av det medisinske diagnosesystemet. Hvis pasientens symptomer settes som fakta inn i arbeidsminnet, så er det lett å diagnostisere ham med en lidelse.

Bakover vs. Forover kjeding

Foroverlent motor

En baklengs kjedemotor har det fastsatte målet, og motoren prøver å tilfredsstille det.

Vurder det samme scenarioet for medisinsk diagnose. Anta at en epidemi av en viss sykdom. Denne AI kan anta at et gitt individ har sykdommen og forsøke å finne ut om diagnosen er korrekt basert på tilgjengelig informasjon.

Bakover vs. Forover kjeding

Bakoverkjedet motor

Hvorfor bruke Drools Rule Engine?

Her er hovedgrunnene til å bruke Drools regelmotor:

  • Regler er enkle å forstå for utviklere og forretningsanalytikere.
  • Reglene er enkle å vedlikeholde.
  • Rule Engine bruker en Rete-algoritme som sier at ytelsen til motoren aldri avhenger av antall regler.
  • Regler kan endres og distribueres uten å ødelegge applikasjonen.
  • Eksternaliserer forretningslogikken fra den relativt statiske kodebasen.
  • Regler er utviklet i mindre kompliserte formater slik at forretningsanalytikeren enkelt kan lese og verifisere en gruppe regler.
  • Regler lar deg lage et kunnskapslager som er kjørbart i form.
  • Verktøy som Eclipse hjelpe deg med å administrere regler, få umiddelbar respons, autentisering og innholdsstøtte.

Ulemper med Rules Engine

Her er ulemper/ulemper ved å bruke regelmotor:

  • Utviklere krever mye læringsinnsats for å kunne denne programmeringsmetoden
  • Regelmotor er ikke en sikker metode for å feilsøke problemer.
  • Trenger å forstå hvordan regelmotoren fungerer for å bruke mer minne
  • Det er et bredt sett med regler for en kompleks forgrening.

Regler kan endres over tid og vil tre i kraft med kodeendringer

Spørsmål og svar

Ja. Drools er utgitt under Apache-lisens 2.0 og er helt gratis og åpen kildekode. Den kjører på alle JVM-er og er tilgjengelig gjennom Maven Central Repository for enkel prosjektintegrasjon.

Drools-regler er skrevet i DRL (Drools Rule Language), en deklarativ syntaks basert på når-så-strukturen. Regler kan også forfattes ved hjelp av beslutningstabeller, DMN-modeller eller domenespesifikke språk for forretningsbrukere.

En regelmotor eksternaliserer logikk til vedlikeholdbare regler som endres uten å distribuere applikasjonen på nytt. Hardkodet if/else-logikk er spredt gjennom kodebasen, vanskeligere å oppdatere og skalerer ikke godt etter hvert som antallet betingelser vokser.

Drools implementerer ekspertsystemer, en klassisk gren av AI, ved å kode menneskelig kunnskap som regler. Motoren resonnerer over fakta for å komme til konklusjoner, og støtter fremover- og bakoverkjeder på samme måte som symbolske AI-beslutningssystemer.

Ja. AI-assistenter kan utarbeide DRL-regler fra krav i klarspråk, oppdage motstridende eller overflødige regler og foreslå optimaliseringer. Teamene validerer fortsatt de genererte reglene for å sikre korrekt forretningslogikk og pålitelig utførelse.

Oppsummer dette innlegget med: