Drools-handleiding: Regelengine Archistructuur & diagram

โšก Slimme samenvatting

Drools is een open-source Business Rules Management System, geschreven in Java Dit scheidt de bedrijfslogica van de applicatiecode. Deze bron legt de regels, het Rete-algoritme, de Drools-architectuur en -componenten uit. Eclipse Pluginconfiguratie en een voorbeeld van een "Hello World"-regel.

  • โš™๏ธ Kerndefinitie: Kwijl is een Java-gebaseerd BRMS dat bedrijfsregels uitvoert met behulp van het Rete-patroonherkenningsalgoritme.
  • ๐Ÿ“œ Regelstructuur: Een regel volgt een 'wanneer-dan'-structuur, waarbij acties alleen worden uitgevoerd wanneer de voorwaarden overeenkomen met feiten in het werkgeheugen.
  • ???? ๏ธ Archistructuur: Regels worden in een regelbasis geladen, feiten komen in het werkgeheugen terecht en de engine koppelt ze aan een agenda en voert ze vervolgens uit.
  • ???? Eclipse Setup: De Drools-plugin wordt geรฏnstalleerd in Eclipse via het jBPM-distributie-ZIP-bestand en het dialoogvenster 'Nieuwe software installeren'.
  • ๐Ÿ”„ Koppelingsmodi: Drools ondersteunt het redeneren van feiten naar conclusies (forward chaining) en van een doel terug naar de feiten (backward chaining).

Kwijlhandleiding

Wat is Drools?

Drools is een open-source Business Rules Management Software (BRMS) waarin is geschreven Java dat gebruikers een verscheidenheid aan functies biedt, zoals Business Rule Engine, webauthoring, Rules Management Application en runtime-ondersteuning voor Decision Model- en Notation-modellen. Het maakt gebruik van een geavanceerd implementatiesysteem van het algoritme voor het matchen van rete-patronen.

Drools is uitgebracht onder Apache-licentie 2.0 en is compatibel met elke JVM en ook beschikbaar in Maven Central Repository.

De Drools-tool helpt u logica en gegevens in bedrijfsprocessen te scheiden en te beredeneren. Het ondersteunt op voorwaartse en achterwaartse ketens gebaseerde, op inferentie gebaseerde kwijlregels-engine.

Kwijlen zijn opgesplitst in twee delen:

  • authoring โ€“ Het betreft de ontwikkeling van regelbestanden.
  • Runtime โ€“ Het omvat het creรซren van werkgeheugen en het afhandelen van de activering.

Wat is regel?

Regels zijn delen van kennis die vaak worden uitgedrukt als: โ€œAls er specifieke omstandigheden optreden, voer dan een aantal taken uit.โ€

Het meest cruciale onderdeel van een regel is de regel wanneer deel. Eenmaal wanneer een deel is tevreden, harte het onderdeel wordt geactiveerd.

Syntax:

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

Patroonaanpassingsmethode

De patroonmatchingmethode helpt u nieuwe of oude feiten te vergelijken met de productieregels. Het wordt voltooid door de Inference Engine.

Algorithms gebruikt voor Pattern Matching zijn:

  • Rete-algoritme
  • Sprongen algoritme
  • Lineair algoritme
  • Behandel algoritme

Het algoritme dat Drools het meest gebruikt, is echter het Rete-algoritme.

Rete-algoritme

Het Rete-algoritme is een nuttig algoritme voor patroonvergelijking waarmee u productieregelsystemen kunt implementeren. Het helpt je geheugen op te offeren voor hogere snelheid. Het vermindert of elimineert ook specifieke soorten redundantie met behulp van het delen van knooppunten. Het slaat gedeeltelijke overeenkomsten op tijdens het uitvoeren van samenvoegingen tussen verschillende feittypen.

Drools Rule-engine

Drools Rule-engine is een op regels gebaseerde aanpak om een โ€‹โ€‹Expert-systeem in de Drools-software te implementeren. De Rule-engine biedt Expert-systemen, dit zijn op kennis gebaseerde systemen die u helpen beslissingen te nemen, zoals wat u moet doen en hoe u dat moet doen. Het verzamelt kennis in een kennisbank die kan worden gebruikt voor redeneren.

Drools Tools-suite

In deze Drools Rule Engine-tutorial leren we nu over Drools Tool Suite. Hier zijn vijf soorten tools die deel uitmaken van de Drools-suite:

  • Drools Guvnor: Het is een gecentraliseerde opslagplaats voor Drools KnowledgeBase.
  • Kwijlt stroom: Het biedt workflow- en bedrijfsprocessen.
  • Kwijlt Fusion: Hulpmiddel dat wordt gebruikt voor complexe gebeurtenisverwerking
  • Drools Expert of Rules Engine: Een handig hulpmiddel voor het uitvoeren van redeneringen.
  • Kwijlt Planner: Om geautomatiseerde planning aan te bieden, inclusief NP-harde planningsproblemen.

Belangrijke componenten in Drools

Laten we nu in deze Drools-tutorial meer leren over belangrijke componenten van Drools.

Hier zijn essentiรซle termen die worden gebruikt in Drools:

  • Feiten โ€“ Feiten vertegenwoordigen de gegevens die dienen als input voor regels
  • Werkgeheugen โ€“ Opslag met feiten, waar ze worden gebruikt voor het matchen van patronen. Het kan worden gewijzigd, ingevoegd en verwijderd.
  • Kennis Sessie โ€“ Dit onderdeel bevat alle bronnen die nodig zijn voor de schietregel. Hier worden alle feiten in รฉรฉn sessie ingevoegd en vervolgens worden de matchingregels afgevuurd.
  • kennis center โ€“ Het vertegenwoordigt de kennis in het Drools-ecosysteem. Het slaat de vorming van de bronnen op waar regels te vinden zijn.
  • Module โ€“ Dit is een module waarin meerdere kennisbanken zijn opgeslagen die verschillende sessies kunnen bevatten

Architectuur van Drools

Drools Rule-engine Architectuur
Drools Rule-engine Architectuur

Dit is het werkende systeem van de Drools-architectuur:

Stap 1) De regels worden geladen in Rule Base, die altijd beschikbaar is.

Stap 2) Feiten worden in het werkgeheugen opgeslagen, waar ze vervolgens kunnen worden aangepast of herzien.tracted.

Stap 3) Het proces van het matchen van de nieuwe of bestaande feiten met productieregels wordt patroonmatching genoemd en wordt uitgevoerd door de Rule-engine.

Stap 4) Met de agenda kunt u de uitvoeringsvolgorde van de conflicterende regels beheren met behulp van een strategie voor conflictoplossing.

Kenmerken van Kwijlen

Hier zijn belangrijke kenmerken van Drool:

  • Helpt u bij het scheiden van toepassingen en dynamische logica
  • Declaratieve programmering
  • Centralisatie van kennis
  • Snelheid en schaalbaarheid
  • Scheid logica van applicatie
  • Begrijpelijke regels

Hoe Drools-plug-ins toe te voegen Eclipse

Laten we nu in deze Drools-tutorial leren hoe we de Drools-plug-in kunnen toevoegen Eclipse.

Stap 1) Klik op โ€œDistribution ZIPโ€ voor jBPM-integratie
Ga naar https://www.drools.org/download/download.html en klik op โ€œDistribution ZIPโ€ voor jBPM-integratie. Na het downloaden, extracSla het op je harde schijf op.

Voeg Drools-plug-ins toe Eclipse

Stap 2) Installeer nieuwe software
In Eclipse, selecteer Nieuwe software installeren.

Voeg Drools-plug-ins toe Eclipse

Stap 3) Klik op de knop Toevoegen
Klik op de knop Toevoegen om software toe te voegen.

Voeg Drools-plug-ins toe Eclipse

Stap 4) Door map bladeren
Klik in het volgende scherm op Lokaal en selecteer de map โ€œorg.drools.updatesite/โ€ en klik vervolgens op Ok.

Voeg Drools-plug-ins toe Eclipse

Stap 5) Klik op de knop Volgende
Klik op de pagina voor herstel van de installatie op de knop Volgende.

Voeg Drools-plug-ins toe Eclipse

Stap 6) Accepteer de licentieovereenkomst
Accepteer de licentieovereenkomst en klik op Volgende.

Voeg Drools-plug-ins toe Eclipse

Stap 7) Reboot Eclipse
De software wordt gedownload en u wordt gevraagd om Eclipse opnieuw op te starten.

Stap 8) Installatieproces voltooid
In Windows > Voorkeurenmenu, ziet u de Drools-optie die aangeeft dat deze is geรฏnstalleerd.

Voeg Drools-plug-ins toe Eclipse

Drools Programma Hello World Voorbeeld

Hieronder ziet u een Drools-voorbeeld voor het Hello World-programma:

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

Wat is achterwaartse versus voorwaartse ketening?

Een voorwaartse ketenmotor controleert de feiten en leidt een specifieke conclusie af.

Laten we een scenario van het medische diagnosesysteem bekijken. Als de symptomen van de patiรซnt als feiten in het werkgeheugen worden opgeslagen, is het gemakkelijk om de diagnose van een aandoening bij hem te stellen.

Achterwaartse versus voorwaartse ketening

Motor met voorwaartse ketting

Een motor met achterwaartse keten heeft het gestelde doel en de motor probeert daaraan te voldoen.

Overweeg hetzelfde scenario van medische diagnose. Stel dat er sprake is van een epidemie van een bepaalde ziekte. Deze AI zou kunnen veronderstellen dat een bepaald individu de ziekte heeft en proberen te bepalen of de diagnose correct is op basis van de beschikbare informatie.

Achterwaartse versus voorwaartse ketening

Motor met achterwaartse ketting

Waarom Drools Rule Engine gebruiken?

Hier zijn de belangrijkste redenen om de Drools-regelsengine te gebruiken:

  • Regels zijn gemakkelijk te begrijpen voor ontwikkelaars en bedrijfsanalisten.
  • Regels zijn gemakkelijk te onderhouden.
  • Rule Engine maakt gebruik van een Rete-algoritme dat stelt dat de prestaties van de engine nooit afhankelijk zijn van het aantal regels.
  • Regels kunnen worden aangepast en geรฏmplementeerd zonder dat de applicatie offline raakt.
  • Externaliseert de bedrijfslogica van de relatief statische codebase.
  • Regels zijn ontwikkeld in minder ingewikkelde formaten, zodat de bedrijfsanalist een groep regels gemakkelijk kan lezen en verifiรซren.
  • Met regels kunt u een kennismagazijn creรซren dat qua vorm uitvoerbaar is.
  • Tools zoals Eclipse helpen u bij het beheren van regels, het krijgen van direct antwoord, authenticatie en inhoudelijke ondersteuning.

Nadelen van de regelsengine

Hier volgen de nadelen/nadelen van het gebruik van de regelengine:

  • Het vergt veel leerinspanning van ontwikkelaars om deze programmeermethode te kennen
  • De regelengine is geen veilige methode om problemen op te lossen.
  • Het is nodig om de werking van de regelengine te begrijpen om te weten dat er meer geheugen wordt gebruikt.
  • Er zijn veel regels voor complexe vertakkingen.

Regels kunnen in de loop van de tijd veranderen en worden van kracht als de code wordt gewijzigd

Veelgestelde vragen

Ja. Drools is uitgebracht onder de Apache License 2.0 en is volledig gratis en open source. Het draait op elke JVM en is beschikbaar via de Maven Central Repository voor eenvoudige projectintegratie.

Drools-regels worden geschreven in DRL (Drools Rule Language), een declaratieve syntaxis gebaseerd op de 'wanneer-dan'-structuur. Regels kunnen ook worden opgesteld met behulp van beslissingstabellen, DMN-modellen of domeinspecifieke talen voor zakelijke gebruikers.

Een regelengine externaliseert logica naar onderhoudbare regels die kunnen worden gewijzigd zonder dat de applicatie opnieuw hoeft te worden geรฏmplementeerd. Hardgecodeerde if-else-logica is verspreid over de codebase, moeilijker bij te werken en schaalt niet goed naarmate het aantal voorwaarden toeneemt.

Drools implementeert expertsystemen, een klassieke tak van AI, door menselijke kennis als regels te coderen. De engine redeneert over feiten om tot conclusies te komen en ondersteunt voorwaartse en achterwaartse redenering, vergelijkbaar met symbolische AI-beslissingssystemen.

Ja. AI-assistenten kunnen DRL-regels opstellen op basis van eenvoudige taalvereisten, conflicterende of redundante regels detecteren en optimalisaties voorstellen. Teams valideren de gegenereerde regels nog steeds om de juiste bedrijfslogica en betrouwbare uitvoering te garanderen.

Vat dit bericht samen met: