Drools-tutorial: Drools Rule Engine Architectuur en voorbeelden
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
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 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.
Stap 2) Installeer nieuwe software
In Eclipse, selecteer Nieuwe software installeren.
Stap 3) Klik op de knop Toevoegen
Klik op de knop Toevoegen om software toe te voegen.
Stap 4) Door map bladeren
Klik in het volgende scherm op Lokaal en selecteer de map “org.drools.updatesite/” en klik vervolgens op Ok.
Stap 5) Klik op de knop Volgende
Klik op de pagina voor herstel van de installatie op de knop Volgende.
Stap 6) Accepteer de licentieovereenkomst
Accepteer de licentieovereenkomst en klik op Volgende.
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.
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.
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.
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.
- Moet de werking van de regelengine begrijpen om meer geheugen te verbruiken
- 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
Samenvatting
- 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 het Drools-ecosysteem.
- De kennisbank vertegenwoordigt de kennis in het Drools-ecosysteem.
- 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.