Drools - Wprowadzenie
Dowolną aplikację Java na poziomie przedsiębiorstwa można podzielić na trzy części -
- UI - interfejs użytkownika (frontend)
- Warstwa usług, która z kolei jest połączona z bazą danych
- Warstwa biznesowa
Mamy wiele frameworków, które obsługują razem interfejs użytkownika i warstwę usług, na przykład Spring i Struts. Jednak nie mieliśmy standardowego sposobu obsługi logiki biznesowej, dopóki nie powstał Drools.
Co to jest Drools?
Drools to Business Logic integration Platform (BLiP). Jest napisany w Javie. Jest to projekt open source wspierany przez JBoss i Red Hat, Inc. Rozszerza i implementuje algorytm dopasowywania wzorców Rete.
Mówiąc prościej, Drools to zbiór narzędzi, które pozwalają nam na rozdzielanie i wnioskowanie na podstawie logiki i danych znajdujących się w procesach biznesowych. Dwa ważne słowa kluczowe, na które musimy zwrócić uwagę, toLogic i Data.
Drools jest podzielony na dwie główne części: Authoring i Runtime.
Authoring - Proces tworzenia obejmuje tworzenie plików reguł (plików .DRL).
Runtime - Obejmuje tworzenie pamięci roboczej i obsługę aktywacji.
Co to jest mechanizm reguł?
Drools to silnik reguł lub system reguł produkcyjnych, który wykorzystuje podejście oparte na regułach do wdrażania i system ekspercki. Systemy ekspertowe to systemy oparte na wiedzy, które wykorzystują reprezentację wiedzy do przetwarzania zdobytej wiedzy w bazę wiedzy, którą można wykorzystać do wnioskowania.
System reguł produkcyjnych jest kompletny Turing, z naciskiem na reprezentację wiedzy, aby wyrazić logikę zdań i pierwszego rzędu w zwięzły, jednoznaczny i deklaratywny sposób.
Mózgiem systemu reguł produkcyjnych jest plik Inference Enginektóre można skalować do wielu zasad i faktów. Silnik wnioskowania dopasowuje fakty i dane do reguł produkcyjnych - nazywanych równieżProductions Lub tylko Rules - wyciągać wnioski, które skutkują działaniami.
Reguła produkcyjna to dwuczęściowa struktura, która wykorzystuje logikę pierwszego rzędu do rozumowania zamiast reprezentacji wiedzy. Silnik reguł biznesowych to system oprogramowania, który wykonuje jedną lub więcej reguł biznesowych w produkcyjnym środowisku wykonawczym.
Mechanizm reguł pozwala zdefiniować „What to Do" i nie "How to do it. ”
Co to jest reguła?
Reguły są kawałki wiedzy często wyrażane jako „ Kiedy występują pewne warunki, a następnie wykonać kilka zadań.”
When
<Condition is true>
Then
<Take desired Action>
Najważniejszą częścią reguły jest jej whenczęść. Jeśliwhen część jest spełniona, plik then część jest wyzwalana.
rule <rule_name>
<attribute> <value>
when
<conditions>
then
<actions>
end
Dopasowywanie wzorców
Proces dopasowywania nowych lub istniejących faktów do reguł produkcyjnych nazywa się dopasowywaniem wzorców, które jest wykonywane przez mechanizm wnioskowania. Istnieje wiele algorytmów używanych do dopasowywania wzorców, w tym -
- Linear
- Rete
- Treat
- Leaps
Drools Implementuje i rozszerza algorytm Rete. Implementacja Drools Rete nazywa się ReteOO, co oznacza, że Drools ma ulepszoną i zoptymalizowaną implementację algorytmu Rete dla systemów obiektowych.
Zalety mechanizmu reguł
Programowanie deklaratywne
Reguły ułatwiają wyrażanie rozwiązań trudnych problemów, a także weryfikację rozwiązań. W przeciwieństwie do kodów, Reguły są napisane w mniej złożonym języku; Analitycy biznesowi mogą łatwo odczytać i zweryfikować zestaw reguł.
Logika i separacja danych
Dane znajdują się w obiektach domeny, a logika biznesowa znajduje się w regułach. W zależności od rodzaju projektu ten rodzaj oddzielenia może być bardzo korzystny.
Szybkość i skalowalność
Algorytm Rete OO, na którym napisano Drools, jest już sprawdzonym algorytmem. Z pomocą Drools Twoja aplikacja staje się bardzo skalowalna. W przypadku częstych żądań zmian można dodawać nowe reguły bez konieczności modyfikowania istniejących.
Centralizacja wiedzy
Korzystając z Reguł, tworzysz repozytorium wiedzy (bazę wiedzy), która jest wykonywalna. To pojedynczy punkt prawdy dotyczący polityki biznesowej. W idealnym przypadku Reguły są tak czytelne, że mogą również służyć jako dokumentacja.
Integracja narzędzi
Narzędzia takie jak Eclipse zapewniają sposoby edytowania reguł i zarządzania nimi oraz uzyskiwania natychmiastowych informacji zwrotnych, walidacji i pomocy dotyczącej treści. Dostępne są również narzędzia do inspekcji i debugowania.