Drools-Tutorial: Regel-Engine ArchiArchitektur & Diagramm

โšก Intelligente Zusammenfassung

Drools ist ein Open-Source-Business-Rules-Management-System, das in โ€ฆ geschrieben ist. Java Diese Ressource trennt die Geschรคftslogik vom Anwendungscode. Sie erlรคutert Regeln, den Rete-Algorithmus, die Drools-Architektur und -Komponenten. Eclipse Plugin-Einrichtung und ein Beispiel fรผr eine Hello-World-Regel.

  • โš™๏ธ Kerndefinition: Drools ist ein Java-basiertes BRMS, das Geschรคftsregeln mithilfe des Rete-Mustererkennungsalgorithmus ausfรผhrt.
  • ๐Ÿ“œ Regelstruktur: Eine Regel folgt einem Wenn-Dann-Format und lรถst Aktionen nur dann aus, wenn ihre Bedingungen mit Fakten im Arbeitsspeicher รผbereinstimmen.
  • ???? ๏ธ ArchiStruktur: Regeln werden in eine Regelbasis geladen, Fakten gelangen in den Arbeitsspeicher, und die Engine gleicht sie ab und fรผhrt sie รผber eine Agenda aus.
  • ???? Eclipse Fahrwerks-Konfiguration: Das Drools-Plugin installiert sich in Eclipse รผber die jBPM-Distributions-ZIP-Datei und den Dialog โ€žNeue Software installierenโ€œ.
  • ๐Ÿ”„ Verkettungsmodi: Drools unterstรผtzt die Vorwรคrtsverkettung von Fakten zu Schlussfolgerungen und die Rรผckwรคrtsverkettung von einem Ziel zurรผck zu den Fakten.

Sabber-Tutorial

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 modifiziert oder neu formuliert werden kรถnnen.tracted.

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
Zurรผck Nach https://www.drools.org/download/download.html und klicken Sie auf โ€žDistribution ZIPโ€œ fรผr die jBPM-Integration. Nach dem Herunterladen, z. B.tracFรผge es deiner Festplatte hinzu.

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.
  • Um mehr Speicherplatz zu verbrauchen, muss die Funktionsweise der Regel-Engine verstanden werden.
  • Fรผr eine komplexe Verzweigung gibt es zahlreiche Regeln.

Regeln kรถnnen sich im Laufe der Zeit รคndern und werden mit Codeรคnderungen wirksam

Hรคufig gestellte Fragen

Ja. Drools wird unter der Apache-Lizenz 2.0 verรถffentlicht und ist vollstรคndig kostenlos und Open Source. Es lรคuft auf jeder JVM und ist รผber das Maven Central Repository fรผr die einfache Projektintegration verfรผgbar.

Drools-Regeln werden in DRL (Drools Rule Language) geschrieben, einer deklarativen Syntax, die auf der Wenn-Dann-Struktur basiert. Regeln kรถnnen auch mithilfe von Entscheidungstabellen, DMN-Modellen oder domรคnenspezifischen Sprachen fรผr Geschรคftsanwender erstellt werden.

Eine Regel-Engine lagert Logik in wartungsfreundliche Regeln aus, die sich รคndern lassen, ohne dass die Anwendung neu bereitgestellt werden muss. Fest codierte Wenn-Dann-Logik ist รผber den gesamten Quellcode verteilt, schwieriger zu aktualisieren und skaliert mit zunehmender Anzahl an Bedingungen nicht gut.

Drools implementiert Expertensysteme, einen klassischen Zweig der KI, indem es menschliches Wissen in Regeln kodiert. Die Engine analysiert Fakten, um zu Schlussfolgerungen zu gelangen, und unterstรผtzt Vorwรคrts- und Rรผckwรคrtsverkettung รคhnlich symbolischen KI-Entscheidungssystemen.

Ja. KI-Assistenten kรถnnen DRL-Regeln aus Anforderungen in Klartextform erstellen, widersprรผchliche oder redundante Regeln erkennen und Optimierungen vorschlagen. Die Teams validieren die generierten Regeln weiterhin, um korrekte Geschรคftslogik und zuverlรคssige Ausfรผhrung sicherzustellen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: