Drools

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel oder Abschnitt ist nicht allgemeinverständlich formuliert. Die Mängel sind unter Diskussion:Drools beschrieben. Wenn du diesen Baustein entfernst, begründe dies bitte auf der Artikeldiskussionsseite und ergänze den automatisch erstellten Projektseitenabschnitt Wikipedia:Unverständliche Artikel#Drools um {{Erledigt|1=~~~~}}.

Folgendes sollte noch verbessert werden: Hier ist kein Satz ohne Deppenleerzeichen, es wird nichts klarer, je länger man liest, desto unklarer wird alles. Fachsprech dreht sich um sich selbst. Schon in der Einleitung, die allgemeinverständlich sein muss, killen Sätze wie „Ein Produktionsregelsystem ist Turing komplett (???) und hat seinen Fokus auf Wissensrepräsentation propositionaler Logik.“ Das versteht niemand, der nicht schon weiß, worum es geht. --Drahreg01 (Diskussion) 22:29, 13. Jun. 2017 (CEST)

Drools
Entwickler Red Hat
Aktuelle Version 7.7.0
(4. April 2018)
Betriebssystem Cross-platform
Programmiersprache Java
Kategorie Business-Rule-Engine
Lizenz ASL 2
http://www.drools.org/

Drools ist ein Business-Rule-Management-System (BRMS) oder auch Produktionsregelsystem genannt, welches in Java geschrieben wurde und für das Implementieren von Expertensystemen verwendet wird. Hierfür verwendet Drools einen regelbasierten Ansatz. Dies bedeutet, dass anhand von vordefinierten Regeln, das System selbst auf unterschiedliche Ereignisse reagieren kann.

Das Business-Rule-Management-System verwendet den JSR-94 Standard für den Bau, die Wartung und Durchsetzung von Geschäftsprozessen innerhalb von Organisationen. Dieser Standard definiert eine einfache Programmierschnittstelle um eine Rule-Engine mit einer Java Plattform zu verknüpfen.

JBoss Enterprise BRMS[Bearbeiten | Quelltext bearbeiten]

JBoss Enterprise BRMS ist eine umfassende Plattform für das Business-Rules-Management. Ziel ist die Optimierung von Unternehmensressourcen und die komplexe Ereignisverarbeitung (CEP). Es ermöglicht den Unternehmen eine anspruchsvolle Entscheidungslogik in Geschäftsanwendungen, da sich die zugrundeliegenden Business-Rules, durch Aussagenlogik, schnell den Marktgegebenheiten anpassen können.[1]

KIE (Knowledge is Everything) ist der Schirm unter dem Drools und andere verwandte Produkte wie OptaPlanner, jBPM, Guvnor, Drools WB, KIE WB und UberFire von JBoss gesammelt werden. KIE wird auch als Sammelbegriff der gemeinsamen Aspekte des Systems verwendet; Einheitlicher Bau, Bereitstellung und Nutzung für Geschäftsprozesse.

Komponenten der Enterprise-Version:[2]

  • JBoss Rule Engine - Drools Expert verwendet den Rete Algorithmus und die Drools Rule Language (DRL)
  • Complex Event Processing (Drools Fusion) - Verwendet für komplexe Ereignissteuerungen
  • Drools Workbench mit BPM Anwendungsmöglichkeiten
  • Business Resource Planner (OptaPlanner) - Optimiert automatisiertes Planen der Business Rules.
  • Developer Tools
  • Business Rule Management und Monitoring

Komponenten der Community-Version:[3]

  • Drools Workbench
  • Drools Expert (Business-Rule-Management)
  • Drools Fusion - Verwendet für komplexe Ereignissteuerungen
  • jBPM - Prozesse und Workflow
  • OptaPlanner - Optimiert automatisiertes Planen

Drools[Bearbeiten | Quelltext bearbeiten]

Drools ist eine Business-Rule-Management-System (BRMS) Software-Lösung. Es stellt eine Grundausstattung einer Business-Rule-Engine (BRE), eine Webanwendung (Drools Workbench) und ein Eclipse IDE Plugin für die Entwicklung zur Verfügung.[4]

Was sind Regeln?[Bearbeiten | Quelltext bearbeiten]

Regeln besitzen eine "Wenn.. Dann.." - Struktur und bestehen aus Bedingung und Konsequenz. Sie besitzen daher eine Prämisse und Konklusion; Left-Hand-Side (LHS) und Right-Hand-Side (RHS).[5] Die Konsequenz einer Regel wird als Aktion bezeichnet. Die Bedingung einer Regel prüft Fakten, über welche die Regel angewendet wird. Wird eine Bedingung bestätigt, spricht man über das "Feuern" einer Regel.

Werden solche Regeln ohne die Verwendung von Business-Rule-Management-Systemen direkt im Quellcode implementiert, führt dies zu Problemen in der Wartung und Lesbarkeit der Software. Um diesen Problemen vorzubeugen und auch eine Konfliktlösung zu realisieren, werden Business-Rule-Management-Systeme verwendet. Klare Vorteile einer Business-Rule-Engine sind die explizit formulierten Regeln mit Hilfe der Aussagenlogik, sowie die deklarative Herangehensweise der Business-Rule-Engine.

Bedingung:
Mensch.hunger = true;

Konsequenz:
Mensch.essen();

Drools Rule Language[Bearbeiten | Quelltext bearbeiten]

Drools besitzt eine eigene "native" Regelsprache.[6] Die Grammatik dieser Sprache ist einfach zu verstehen und bezieht sich nur auf die Abfrage von Regeln und Bedingungen eines Objektes.

Eine Regeldatei ist eine Datei mit einer .drl-Erweiterung. In einer .drl-Datei können sich mehrere Regeln, Abfragen und Funktionen sowie einige Ressourcendeklarationen wie Importe, sowie globale und lokale Attribute befinden. Es ist auch möglich Regeln über mehrere .drl-Dateien zu verbreiten. Eine Aufteilung von Regeln über mehrere Dateien kann bei der Verwaltung einer großen Anzahl von Regeln helfen.

Eine .drl-Datei ist eine einfache Textdatei mit folgendem Aufbau:

package
package-name


imports


globals


functions


queries


rules

Eine Drools-Regel besteht aus einem Namen, Attributen (optional) und den Bestandteilen einer Regel (LHS und RHS). Attribute sind Hinweise darauf, wie sich eine Regel verhalten soll. LHS ist der bedingte Teil einer Regel, die einer bestimmten Grammatik folgt. RHS ist grundsätzlich ein Block, der den dialektspezifischen Code ausführt, sobald eine Regel "feuert".

rule
"name"


attributes

    when

LHS

    then

RHS

end

Drools - Beispiel[Bearbeiten | Quelltext bearbeiten]

Dieses Beispiel[7] zeigt eine einfache Regel über die Zulassung einer Person zu einer Fahrprüfung. Es untersucht eine Bedingung der Instanz Applicant und setzt die Variable valid je nach Ergebnis der Bedingung true oder false.

public class Applicant {
    private String name;
    private int age;
    private boolean valid;
    // getter and setter methods here
}
package com.company.license

rule "Is of valid age"
when
    $a : Applicant( age < 18 )
then
    $a.setValid( false );
end

Zuerst muss die Klasse Applicant erstellt werden. Nachdem das Datenmodell erstellt ist, wird eine Regel formuliert. Diese Regel besagt, dass eine Person die unter 18 Jahre alt ist, den Wert false zugewiesen bekommt.

Wenn eine Instanz von Applicant in die Business-Rule-Engine eingefügt wird, wird sie gegen die Einschränkungen der Regeln ausgewertet. In diesem Fall gibt es zwei Einschränkungen für eine Regel. Es sind zwei, da der Typ Applicant die erste Objekttypeinschränkung und Alter < 18 die zweite Feldbeschränkung ist.

Eine Objekttypbeschränkung inklusive ihrer Feldbeschränkungen wird als Muster bezeichnet. Wenn eine eingefügte Instanz sowohl die Objekttypbeschränkung als auch alle Feldbeschränkungen erfüllt, wird angenommen, dass sie übereinstimmt. Das $a ist eine Bindungsvariable, die es uns erlaubt, auf das übereinstimmende Objekt zu verweisen. Das Dollarzeichen $ ist optional, aber es hilft Variablennamen von Feldnamen zu unterscheiden.

Zusammenhängende Systeme[Bearbeiten | Quelltext bearbeiten]

Dieser Artikel oder Abschnitt bedarf einer Überarbeitung: falsche Sprache
Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Produkt Übersicht
  2. JBoss Enterprise BRMS Component Details am 13. Mai 2017
  3. - Drools Website
  4. Drools - Drools - Business Rules Management System (Java™, Open Source). Abgerufen am 13. Mai 2017 (englisch).
  5. Rainer Endl: Regelbasierte Entwicklung betrieblicher Informationssysteme: Gestaltung flexibler Informationssysteme durch explizite Modellierung der Geschäftslogik. BoD – Books on Demand, 2004, ISBN 978-3-89936-263-3 (google.de [abgerufen am 13. Mai 2017]).
  6. Drools Documentation. Abgerufen am 15. Mai 2017.
  7. Chapter 6. User Guide - The Basics

Weblinks[Bearbeiten | Quelltext bearbeiten]