Wann macht der Einsatz einer Rule Engine Sinn?
Immer, wenn Mitarbeiter bisher nach festgelegten Kriterien Entscheidungen fällen, kann dies auch von einer Software erledigt werden. Eine Rule Base Engine macht vor allem dann Sinn, wenn Kundenanfragen zu jeder Tag- und Nachtzeit in kürzester Zeit bearbeitet werden sollen. Sie ist wichtig, wenn Entscheidungen immer konsistent und nachvollziehbar gefällt werden sollen und ein großer Bedarf an Skalierung besteht.
Häufig sind Geschäftsregeln bereits in unzähligen, vom Unternehmen selbst entwickelten Programmen kodiert. Wenn sich dann die Entscheidungsgrundlagen verändern, müssen Unternehmen an vielen Stellen Veränderungen vornehmen, was oft langwierig und fehlerträchtig ist. Mit einer zentralen Rule Engine lassen sich Anpassungen schnell und unkompliziert an einer zentralen Stelle vornehmen. Davon profitieren alle Anwendungen, die die Funktionalität der Geschäftsregelanwendung nutzen.
Wie erstelle ich eine Rule Engine?
Natürlich könnte man als Unternehmen auch selbst eine Rule Engine konzipieren und entwickeln. Das wäre jedoch aufwendig und teuer. Wesentlich effizienter ist es, auf ein Produkt eines erfahrenen Anbieters zu setzen, das alle wichtigen Kriterien erfüllt, die man an eine Rule Engine stellt.
Die verschiedenen Rule Engines unterscheiden sich dabei auch darin, wie die Regeln in das System einzugeben sind, etwa über Tabellen (Excel) oder einen grafischen Editor. Sollen die Fachabteilungen die Engine mit Regeln bestücken (und nicht die IT oder Web-Entwickler des Unternehmens), dann muss die Eingabe mit einem einfach zu bedienenden, möglichst grafisch orientierten User-Interface erfolgen. Das erstellt aus diesen Eingaben eine hoch performante Rule Engine, die die Geschäftsregeln abarbeitet.
Wie sieht eine Business Rule aus?
Eine Geschäftsregel ist ein Ablaufdiagramm mit Abfragen, Anweisungen und Funktionsaufrufen, das über einen (grafischen) Editor erstellt wird:

Sie fragt beispielsweise eine Variable wie „Customers.Margin“ ab und wählt abhängig vom Wert der Variable verschiedene Aktionen, wie etwa die Anwendung einer bestimmten Scorecard aus. Die Elemente dieses Entscheidungsmodells lassen sich per Maus zusammenstellen und per Doppelklick anpassen.
Statt nur den Inhalt einer bestimmten Variablen auszulesen, kann auch eine Machine-Learning-Komponente abgefragt werden, wie hoch die Wahrscheinlichkeit ist, dass der Kunde seinen Kredit pünktlich zurückzahlt. Abhängig vom Ergebnis führt die Regel dann verschiedene Aktionen aus.
Wofür kann ich Drools sinnvoll einsetzen (und wo nicht)?
Drools ist eine Open Source Rule Based Engine, die den Vorteil hat, dass sie als Open-Source-Software keine Lizenzkosten verursacht. Allerdings wird Drools über eine eigene Regelsprache gesteuert, die wie eine einfache, textbasierte Programmiersprache funktioniert. Drools eignet sich daher nicht für Mitarbeiter, die über keinerlei Programmiererfahrung verfügen. Die besonderen Vorteile wie bei der ACTICO Decision Management Platform, dass auch Fachanwender ohne die Unterstützung der IT-Abteilung Regeln erstellen, testen und produktiv nehmen können, kann Drools daher nicht bieten, weil das grafische User-Interface fehlt.
Welche ist die beste Java-Business-Rules-Engine?
Die meisten Rule Engines sind in Java implementiert, weil Java schlicht die Entwicklungssprache für Business-Anwendungen ist und die Anbindung an andere Geschäftsanwendungen stark vereinfacht. Wie schon bei der Frage „Welche ist die beste Rule Engine?“ ausgeführt, kommt es auf Kriterien wie Performance, einfache grafische Bedienung des Regel-Editors durch Fachanwender und große Schnittstellenvielfalt an.
Besonders wichtig ist auch eine performante Einbindung von diversen KI- und Machine-Learning-Lösungen, die häufig in Python geschrieben sind. Hierzu muss die Lösung über eine Technologie wie „Java Embedded Python (JEP)“ verfügen, die eine nahtlose Integration von Python-Skripten ermöglicht, ohne dass dafür Anpassungen am Python-Skript notwendig sind. Dazu sollte es Frameworks wie Scikit-learn und Apache Spark unterstützen.
Außerdem kommt es bei einer Business-Rules-Engine darauf an, dass externe Daten einfach angebunden werden können. Gerade im Bereich der KI müssen in der Trainingsphase große Datenmengen verarbeitet werden, die eine effiziente und schnelle Anbindung erfordern.