Drools-tutorial: Drools Rule Engine Architectuur en voorbeelden

Wat is Drools?

Drools is een open-source Business Rules Management Software (BRMS), geschreven in Java, die 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.

Algoritmen die worden 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: Tool gebruikt voor complex 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.
  • FAQ – Het vertegenwoordigt de kennis in de Drools ecossysteem. Het slaat de vorming van de bronnen op waar regels worden gevonden.
  • 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

Hier is het werksysteem van Drools archistructuur:

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

Stap 2) Feiten worden in het werkgeheugen vastgelegd, waar ze vervolgens kunnen worden gewijzigd of ingetrokken.

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. Eenmaal gedownload, pak het uit naar uw harde schijf.

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 opnieuw op te starten eclipse.

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
inport 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 gewijzigd en geïmplementeerd zonder dat de applicatie wordt uitgeschakeld.
  • 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.
  • Moet de werking van de regelengine begrijpen om meer geheugen te verbruiken
  • Er zijn een breed scala aan regels voor een complex vertakking.

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

Samengevat

  • JBoss Drools is een Business Logic-integratieplatform (BLiP)
  • Soorten Drool-tools zijn: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • Drool helpt u applicatie te scheiden van dynamische logica.
  • Feit heeft de gegevens weergegeven die als input dienen voor regels.
  • Het werkgeheugen is een opslagplaats voor feiten, waar deze worden gebruikt voor het matchen van patronen. Het kan worden gewijzigd, ingevoegd en verwijderd.
  • Kennisbank is een component die alle bronnen bevat die nodig zijn voor de schietregel.
  • Kennissessie vertegenwoordigt de kennis in de Drools ecossysteem.
  • Kennisbank vertegenwoordigt de kennis in de Drools ecossysteem.
  • Module slaat meerdere kennisbanken op, die verschillende sessies kunnen bevatten.
  • Regels zijn delen van kennis die vaak worden uitgedrukt als: “Als er specifieke omstandigheden optreden, voer dan een aantal taken uit.”
  • Een Drools is een regelengine die een op regels gebaseerde aanpak gebruikt om een ​​Expert-systeem te implementeren.
  • Een voorwaartse ketenmotor controleert de feiten en leidt een specifieke conclusie af.
  • Een motor met achterwaartse keten heeft het gestelde doel en de motor probeert daaraan te voldoen.
  • Het Rete-algoritme is een nuttig algoritme voor patroonvergelijking waarmee u productieregelsystemen kunt implementeren.
  • Regels zijn gemakkelijk te begrijpen voor ontwikkelaars en bedrijfsanalisten.
  • Het grote nadeel van het gebruik van een regelsengine zoals Drool is dat het veel leerinspanning vereist van ontwikkelaars om deze programmeermethode te leren kennen.