====== Drools ====== **Drools** - Silnik regul biznesowych. Implementuje on JSR-94 (Java Specification Request for a Java Rules Engine API - standard określający spójny interfejs do komunikacji z silnikiem reguł, mechanizm dostępu do poszczególnych faktów z poziomu programu, oraz wymagania, które muszą być spełnione przez silniki reguł jak i ograniczenia i limity stawiane kompilatorom). Drools wykorzystuje algorytm RETE, który na podstawie reguł buduje drzewo warunków w pamięci produkcyjnej i umożliwia przetwarzanie faktów umieszczonych w pamięci podręcznej. **BRMS** (Business Rules Management System) czyli System do zarządzania regułami biznesowymi. BRMS jest aplikacja web’ową, dostęp do niej jest możliwy za pomocą cienkiego klienta czyli zwykłej przeglądarki internetowej, co daje możliwość dostępu dla wielu użytkowników równocześnie. Przeznaczona jest do użytkowników nie pracujących w żadnym IDE czy edytorze tekstowym. BRMS jest komponentem Jboss Rules, który umożliwia zarządzanie, składowanie, edycje reguł. BRMS - służy również do uruchamiania reguł tzn. jest RuleAgent'em do którego "wrzucamy" fakty, które on następnie przetwarza dostępnymi regułami. BRMS może być centralnym silnikiem regułowym dla wielu aplikacji. ===== Konfiguracja w IA ===== Na serwerze borg uruchomiony jest Jboss Aplication Server w wersji 4.2.2GA. Jboss AS nasłuchuje na porcie 3729. __**Przeglądarka MUSI!! mieć włączoną obsługe JAvaScript oraz Cookies**__ ===== Dostęp ===== Dostęp do aplikacji BRMS po utworzeniu tunelu ssh z forwardowaniem portów ssh -L localhost:3729:149.156.111.172:3729 borg.ia.agh.edu.pl [[http://localhost:3729/drools-jbrms|http://localhost:3729/drools-jbrms]] ===== Przykładowe aplikacje ===== Dostęp na borgu: [[http://localhost:3729/insurance/|http://localhost:3729/insurance/]] __**Insurance Company Risk Factor and Policy price (BRMS)**__ (Dokumentacja drools [[http://downloads.jboss.com/drools/docs/4.0.4.17825.GA/html/ch10.html#d0e8283|Insurance example]]) Przykładowa aplikacja do obliczania wysokości ubezpieczenia za samochód. Proszę pozmieniać parametry aby zobaczyć jak obliczana jest wysokość ubezpieczenia. Zmieniając reguły w BRMS zmieniamy sposób obliczania ubezpieczenia. Nie wymaga to żadnej ingerencji w aplikacji klienckiej. Aby zmiany reguł zostały zaczytane przez aplikacje kliencka należy: - Zalogować się do BRMS - Przejście do **Packages** - Wybieramy pakiet **org.acme.insurance.base** - Przejście do **Build, validate and deploy** - **Build a package** - **Create a snapshot for deployment.** - **Choose or create snapshot name:** wybieramy **InsuranceDemo** a następnie **Create new snapshot**, powinnien pojawić sie komunikat o powodzeniu przy budowaniu snapshota Po wykonaniu tych kroków zmiany w regułach zostaną już odczytane przez aplikacje kliencką. W sekcji **Deployment** - po wybraniu pakietu **org.acme.insurance.base** a następnie przy **InsuranceDemo** wybieramy **Open**. Ekran będzie zawierał podstawowe informacje na temat zbudowanego pakietu. Najważniejsze to adres pod jakim adresem dostępny jest zbudowany pakiet: '' Package URI: http://149.156.111.172:3729/drools-jbrms/org.drools.brms.JBRMS/package/org.acme.insurance.base/InsuranceDemo'' ===== Dodawanie własnych przykładów ===== **Import z pliku DRL** - Zalogowanie do BRMS - Utworzenie nowej kategorii - //Admin->Create new category// np. DroolsHelloWorld - Utworzenie nowego pakietu - //Packages// wybieramy z górnego meny ikonke dodania pakietu a następnie import z pliku drl. (Przykładowy plik drl {{:student:sampledrl.zip|Plik DRL}} import utworzy pakiet com.sample) W kolejnych krokach można zbudowac pakiet i snapshot tak jak jest to opisane wyżej. Aplikaja kliencka ...