Drools-Tutorial: Drools-Regel-Engine Architektur & Beispiele

Was sind Drools?

Drools ist eine Open-Source Business Rules Management Software (BRMS) geschrieben in Java das Benutzern eine Vielzahl von Funktionen bietet, wie z. B. Business Rule Engine, Web-Authoring, Rules Management Application und Laufzeitunterstützung für Decision Model und Notation-Modelle. Es verwendet ein erweitertes Implementierungssystem für einen Rete-Pattern-Matching-Algorithmus.

Drools wurde unter der Apache-Lizenz 2.0 veröffentlicht und ist mit jeder JVM kompatibel und auch im Maven Central Repository verfügbar.

Das Drools-Tool hilft Ihnen, Logik und Daten in Geschäftsprozessen zu trennen und zu analysieren. Es unterstützt die Vorwärts- und Rückwärtsverkettung einer inferenzbasierten Drools-Regel-Engine.

Drools sind in zwei Teile geteilt:

  • Authoring – Es beinhaltet die Entwicklung von Regeldateien.
  • Laufzeit – Dabei geht es um den Aufbau des Arbeitsgedächtnisses und die Handhabung der Aktivierung.

Was ist Regel?

Regeln sind Teile des Wissens, die oft ausgedrückt werden als: „Wenn bestimmte Bedingungen eintreten, dann erledigen Sie einige Aufgaben.“

Der wichtigste Teil einer Regel ist sie wann Teil. Einmal wann Teil ist zufrieden, dann Das Teil wird ausgelöst.

Syntax:

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

Mustervergleichsmethode

Mithilfe der Mustervergleichsmethode können Sie neue oder alte Fakten mit den Produktionsregeln vergleichen. Es wird durch die Inference Engine vervollständigt.

Algorithms Für den Mustervergleich werden verwendet:

  • Rete-Algorithmus
  • Sprungalgorithmus
  • Linearer Algorithmus
  • Behandeln Sie den Algorithmus

Der von Drools am häufigsten verwendete Algorithmus ist jedoch der Rete-Algorithmus.

Rete-Algorithmus

Der Rete-Algorithmus ist ein nützlicher Mustervergleichsalgorithmus, mit dem Sie Produktionsregelsysteme implementieren können. Es hilft Ihnen, Speicher für höhere Geschwindigkeit zu opfern. Mithilfe der Knotenfreigabe werden außerdem bestimmte Arten von Redundanz reduziert oder eliminiert. Es speichert Teilübereinstimmungen, während Verknüpfungen zwischen verschiedenen Faktentypen durchgeführt werden.

Drools-Regel-Engine

Drools-Regel-Engine ist ein regelbasierter Ansatz zur Implementierung eines Expertensystems in der Drools-Software. Die Regel-Engine stellt Expertensysteme bereit, bei denen es sich um wissensbasierte Systeme handelt, die Ihnen dabei helfen, Entscheidungen zu treffen, z. B. darüber, was zu tun ist und wie es zu tun ist. Es sammelt Wissen in einer Wissensdatenbank, die für Überlegungen verwendet werden kann.

Drools Tools Suite

In diesem Tutorial zur Drools Rule Engine lernen wir nun die Drools Tool Suite kennen. Hier sind fünf Arten von Tools, die Teil der Drools-Suite sind:

  • Drools Guvnor: Es handelt sich um ein zentrales Repository für die Drools KnowledgeBase.
  • Sabber fließen: Es bietet Workflow- und Geschäftsprozesse.
  • Sabber Fusion: Tool zur komplexen Ereignisverarbeitung
  • Drools Expert oder Rules Engine: Ein nützliches Werkzeug für die Argumentation.
  • Drools-Planer: Bietet automatisierte Planung, die NP-schwere Planungsprobleme umfasst.

Wichtige Bestandteile in Drools

In diesem Drools-Tutorial lernen wir nun die wichtigen Komponenten von Drools kennen.

Hier sind wesentliche Begriffe, die in Drools verwendet werden:

  • Fakten – Fakten repräsentieren die Daten, die als Eingabe für Regeln dienen
  • Arbeitsspeicher – Speicherung mit Fakten, wo diese zum Mustervergleich verwendet werden. Es kann geändert, eingefügt und entfernt werden.
  • Wissenssitzung – Diese Komponente enthält alle für die Auslösungsregel erforderlichen Ressourcen. Hier werden alle Fakten in die einzelne Sitzung eingefügt und dann werden entsprechende Regeln ausgelöst.
  • Knowledge Base – Es stellt das Wissen im Drools-Ökosystem dar. Es speichert die Bildung der Ressourcen, in denen Regeln zu finden sind.
  • Modul – Dies ist ein Modul, das mehrere Wissensdatenbanken speichert, die verschiedene Sitzungen abhalten können

ArchiTextur von Drools

Drools-Regel-Engine Architektur
Drools-Regel-Engine Architektur

Hier ist das Arbeitssystem der Drools-Architektur:

Schritt 1) Die Regeln werden in die Regelbasis geladen, die jederzeit verfügbar ist.

Schritt 2) Fakten werden im Arbeitsgedächtnis gespeichert, wo sie dann geändert oder zurückgezogen werden können.

Schritt 3) Der Prozess des Abgleichs der neuen oder vorhandenen Fakten mit Produktionsregeln wird als Mustervergleich bezeichnet und von der Regel-Engine durchgeführt.

Schritt 4) Mit der Agenda können Sie mithilfe einer Konfliktlösungsstrategie die Ausführungsreihenfolge der widersprüchlichen Regeln verwalten.

Eigenschaften von Drool

Hier sind wichtige Funktionen von Drool:

  • Hilft Ihnen, Anwendungen von dynamischer Logik zu trennen
  • Deklarative Programmierung
  • Zentralisierung des Wissens
  • Geschwindigkeit und Skalierbarkeit
  • Trennen Sie Logik von Anwendung
  • Verständliche Regeln

So fügen Sie Drools-Plugins hinzu Eclipse

In diesem Drools-Tutorial lernen wir nun, wie man das Drools-Plugin hinzufügt Eclipse.

Schritt 1) Klicken Sie auf „Distribution ZIP“ für die jBPM-Integration
Gehe zu https://www.drools.org/download/download.html und klicken Sie auf „Distribution ZIP“ für die jBPM-Integration. Extrahieren Sie es nach dem Herunterladen auf Ihre Festplatte.

Fügen Sie Drools-Plugins hinzu Eclipse

Schritt 2) Neue Software installieren
In Eclipse, wählen Sie „Neue Software installieren“.

Fügen Sie Drools-Plugins hinzu Eclipse

Schritt 3) Klicken Sie auf die Schaltfläche „Hinzufügen“.
Klicken Sie auf die Schaltfläche „Hinzufügen“, um eine Software hinzuzufügen.

Fügen Sie Drools-Plugins hinzu Eclipse

Schritt 4) Ordner durchsuchen
Klicken Sie im nächsten Bildschirm auf „Lokal“, wählen Sie den Ordner „org.drools.updatesite/“ aus und klicken Sie dann auf „OK“.

Fügen Sie Drools-Plugins hinzu Eclipse

Schritt 5) Klicken Sie auf die Schaltfläche Weiter
Klicken Sie auf der Seite „Installationskorrektur“ auf die Schaltfläche „Weiter“.

Fügen Sie Drools-Plugins hinzu Eclipse

Schritt 6) Akzeptieren Sie die Lizenzvereinbarung
Akzeptieren Sie die Lizenzvereinbarung und klicken Sie auf Weiter.

Fügen Sie Drools-Plugins hinzu Eclipse

Schritt 7) rebooten Eclipse
Die Software wird heruntergeladen und Sie werden aufgefordert, Eclipse neu zu starten.

Schritt 8) Installationsvorgang abgeschlossen
In Windows Im Menü „Einstellungen“ sehen Sie die Option Drools, die anzeigt, dass sie installiert ist.

Fügen Sie Drools-Plugins hinzu Eclipse

Beispiel für das Drools-Programm „Hello World“.

Unten finden Sie ein Drools-Beispiel für das Hello World-Programm:

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

Was ist Rückwärts- oder Vorwärtsverkettung?

Eine Vorwärtsverkettungsmaschine prüft die Fakten und leitet daraus eine konkrete Schlussfolgerung ab.

Betrachten wir ein Szenario des medizinischen Diagnosesystems. Wenn die Symptome des Patienten als Fakten im Arbeitsgedächtnis gespeichert werden, ist es einfach, bei ihm eine Krankheit zu diagnostizieren.

Rückwärts- oder Vorwärtsverkettung

Vorwärtsverkettender Motor

Eine Rückwärtsverkettungsmaschine hat das gesetzte Ziel und die Maschine versucht, dieses zu erreichen.

Stellen Sie sich das gleiche Szenario einer medizinischen Diagnose vor. Gehen Sie von einer Epidemie einer bestimmten Krankheit aus. Diese KI könnte davon ausgehen, dass eine bestimmte Person an der Krankheit leidet, und anhand der verfügbaren Informationen versuchen, festzustellen, ob die Diagnose korrekt ist.

Rückwärts- oder Vorwärtsverkettung

Rückwärtsverkettender Motor

Warum Drools Rule Engine verwenden?

Hier sind die Hauptgründe für die Verwendung der Drools-Regel-Engine:

  • Regeln sind für Entwickler leicht verständlich und Wirtschaftsanalytiker.
  • Regeln sind leicht zu pflegen.
  • Rule Engine verwendet einen Rete-Algorithmus, der besagt, dass die Leistung der Engine niemals von der Anzahl der Regeln abhängt.
  • Regeln können geändert und bereitgestellt werden, ohne dass die Anwendung zum Absturz gebracht wird.
  • Externalisiert die Geschäftslogik aus der vergleichsweise statischen Codebasis.
  • Regeln werden in weniger komplizierten Formaten entwickelt, sodass der Geschäftsanalyst eine Gruppe von Regeln leicht lesen und überprüfen kann.
  • Mit Regeln können Sie ein Wissenslager erstellen, das in einer ausführbaren Form vorliegt.
  • Tools wie Eclipse helfen Ihnen bei der Verwaltung von Regeln, erhalten eine sofortige Antwort, Authentifizierung und Inhaltsunterstützung.

Nachteile der Rules Engine

Hier sind die Nachteile/Nachteile der Verwendung der Regel-Engine:

  • Für Entwickler ist ein großer Lernaufwand erforderlich, um diese Programmiermethode zu kennen
  • Die Regel-Engine ist keine sichere Methode zur Fehlerbehebung.
  • Muss die Funktionsweise der Regel-Engine verstehen, um mehr Speicher zu verbrauchen
  • Für eine komplexe Verzweigung gibt es zahlreiche Regeln.

Regeln können sich im Laufe der Zeit ändern und werden mit Codeänderungen wirksam

Zusammenfassung

  • JBoss Drools ist eine Business Logic Integration Platform (BLiP)
  • Arten von Drool-Tools sind: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • Drool hilft Ihnen, Anwendungen von dynamischer Logik zu trennen.
  • Fakten stellen die Daten dar, die als Eingabe für Regeln dienen.
  • Der Arbeitsspeicher ist ein Speicher mit Fakten, wo diese zum Mustervergleich verwendet werden. Es kann geändert, eingefügt und entfernt werden.
  • Die Wissensdatenbank ist eine Komponente, die alle für die Auslösung von Regeln erforderlichen Ressourcen enthält.
  • Die Wissenssitzung stellt das Wissen im Drools-Ökosystem dar.
  • Die Wissensdatenbank stellt das Wissen im Drools-Ökosystem dar.
  • Das Modul speichert mehrere Wissensdatenbanken, die verschiedene Sitzungen abhalten können.
  • Regeln sind Teile des Wissens, die oft ausgedrückt werden als: „Wenn bestimmte Bedingungen eintreten, dann erledigen Sie einige Aufgaben.“
  • Ein Drools ist eine Regel-Engine, die einen regelbasierten Ansatz zur Implementierung eines Expertensystems verwendet.
  • Eine Vorwärtsverkettungsmaschine prüft die Fakten und leitet daraus eine konkrete Schlussfolgerung ab.
  • Eine Rückwärtsverkettungsmaschine hat das gesetzte Ziel und die Maschine versucht, dieses zu erreichen.
  • Der Rete-Algorithmus ist ein nützlicher Mustervergleichsalgorithmus, mit dem Sie Produktionsregelsysteme implementieren können.
  • Regeln sind für Entwickler und Geschäftsanalysten leicht verständlich.
  • Der größte Nachteil der Verwendung einer Regel-Engine wie Drool besteht darin, dass Entwickler viel Lernaufwand benötigen, um diese Programmiermethode zu beherrschen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: