Drools Tutorial: Drools Rule Engine Architecture & Példák

Mi az a Drools?

Nyálok egy nyílt forráskódú Üzleti Szabálykezelő Szoftver (BRMS), amely be van írva Java amely számos szolgáltatást kínál a felhasználóknak, mint például az üzleti szabálymotor, a webes készítés, a szabálykezelő alkalmazás, valamint a döntési modell és a jelölési modellek futásidejű támogatása. A rete mintaillesztési algoritmus fejlett implementációs rendszerét használja.

A Drools Apache License 2.0 alatt jelent meg, és kompatibilis bármely JVM-mel, és elérhető a Maven Central Repository-ban is.

A Drools eszköz segít elkülöníteni és érvelni az üzleti folyamatokban található logikát és adatokat. Támogatja az előre és hátra láncolást, a következtetés alapú drools szabályok motorját.

A nyáladzás két részre oszlik:

  • Szerzői készítés – Szabályfájlok fejlesztését foglalja magában.
  • Runtime – Ez magában foglalja a munkamemória létrehozását és az aktiválás kezelését.

Mi az a szabály?

A szabályok a tudás részei, amelyeket gyakran a következőképpen fejeznek ki: „Amikor bizonyos körülmények lépnek fel, végezzen el néhány feladatot”.

A szabály legfontosabb része az amikor rész. Egyszer amikor része elégedett, akkor az alkatrész kioldódik.

Syntax:

When
<Condition is true>
Then
<Take desired Action>

Mintaillesztési módszer

A mintaillesztési módszer segít az új vagy a régi tények összehasonlításában a gyártási szabályokkal. Ezt az Inference Engine teszi teljessé.

Algorithms A mintaillesztéshez a következőket használják:

  • Rete algoritmus
  • Leaps algoritmus
  • Lineáris algoritmus
  • Kezelési algoritmus

A Drools által leggyakrabban használt algoritmus azonban a Rete Algorithm.

Rete algoritmus

A Rete algoritmus egy hasznos mintaillesztő algoritmus, amely lehetővé teszi a termelési szabályrendszerek megvalósítását. Segít feláldozni a memóriát a nagyobb sebesség érdekében. A csomópont-megosztás segítségével csökkenti vagy megszünteti az egyes redundanciákat. Részleges egyezéseket tárol, miközben összekapcsolja a különböző ténytípusokat.

Drools Rule Engine

Drools Rule Engine egy szabály alapú megközelítés egy Expert rendszer megvalósításához a Drools szoftverben. A szabálymotor szakértői rendszereket biztosít, amelyek tudásalapú rendszerek, amelyek segítenek döntéseket hozni, például, hogy mit és hogyan tegyünk. A tudást tudásbázisba gyűjti, amelyet érvelésre lehet használni.

Drools Tools Suite

Ebben a Drools Rule Engine oktatóanyagban a Drools Tool Suite-ról fogunk tanulni. Íme ötféle eszköz, amelyek a Drools csomag részét képezik:

  • Drools Guvnor: Ez a Drools KnowledgeBase központosított tárháza.
  • Drools Flow: Munkafolyamatot és üzleti folyamatokat kínál.
  • Drools Fusion: Összetett eseményfeldolgozáshoz használt eszköz
  • Drools Expert vagy Rules Engine: Hasznos eszköz az érvelés végrehajtásához.
  • Drools Planner: Az automatizált tervezést kínálja, amely magában foglalja az NP-nehéz tervezési problémákat is.

A Drools fontos összetevői

Most ebben a Drools oktatóanyagban ismerkedjünk meg a Drools fontos összetevőivel.

Íme a Droolsban használt alapvető kifejezések:

  • Tények – A tények azok az adatok, amelyek a szabályok bemeneteként szolgálnak
  • Munka memória – Tárolás tényekkel, ahol mintaillesztésre használják őket. Módosítható, beilleszthető és eltávolítható.
  • Tudásülés – Ez az összetevő tartalmazza az égetési szabályhoz szükséges összes erőforrást. Itt minden tény bekerül az egyetlen munkamenetbe, majd a megfelelő szabályok aktiválódnak.
  • Tudástár – A Drools ökoszisztéma tudását képviseli. Tárolja az erőforrások képződését, ahol szabályok találhatók.
  • Modulok – Ez egy olyan modul, amely több tudásbázist tárol, amelyek különböző munkameneteket tarthatnak

ArchiDrools tectúrája

Drools Rule Engine Architectúra
Drools Rule Engine Architectúra

Íme a Drools architektúra működő rendszere:

Step 1) A szabályok betöltődnek a szabálybázisba, amelyek mindig elérhetők.

Step 2) A tények bekerülnek a munkamemóriába, ahol azután módosíthatók vagy visszavonhatók.

Step 3) Az új vagy meglévő tények gyártási szabályokkal való egyeztetésének folyamatát mintaillesztésnek nevezzük, amelyet a szabálymotor hajt végre.

Step 4) A napirend lehetővé teszi az ütköző szabályok végrehajtási sorrendjének a konfliktusfeloldó stratégia segítségével történő kezelését.

A Drool jellemzői

Íme a Drool fontos tulajdonságai:

  • Segít elválasztani az alkalmazást a dinamikus logikától
  • Deklaratív programozás
  • A tudás központosítása
  • Sebesség és skálázhatóság
  • Külön logika az alkalmazástól
  • Érthető szabályok

Drools bővítmények hozzáadása Eclipse

Ebben a Drools oktatóanyagban megtudjuk, hogyan adhatunk hozzá Drools beépülő modult Eclipse.

Step 1) Kattintson a „Distribution ZIP” elemre a jBPM integrációhoz
Ugrás https://www.drools.org/download/download.html és kattintson a „Distribution ZIP” elemre a jBPM integrációhoz. A letöltés után bontsa ki a merevlemezre.

Adjon hozzá Drools beépülő modulokat Eclipse

Step 2) Telepítse az új szoftvert
In Eclipse, válassza az Új szoftver telepítése lehetőséget.

Adjon hozzá Drools beépülő modulokat Eclipse

Step 3) Kattintson a Hozzáadás gombra
Szoftver hozzáadásához kattintson a Hozzáadás gombra.

Adjon hozzá Drools beépülő modulokat Eclipse

Step 4) Tallózás a mappában
A következő képernyőn kattintson a Helyi elemre, válassza ki az „org.drools.updatesite/” mappát, majd kattintson az OK gombra.

Adjon hozzá Drools beépülő modulokat Eclipse

Step 5) Kattintson a Tovább gombra
A telepítés javítási oldalán kattintson a Tovább gombra.

Adjon hozzá Drools beépülő modulokat Eclipse

Step 6) Fogadja el a licencszerződést
Fogadja el a licencszerződést, és kattintson a Tovább gombra.

Adjon hozzá Drools beépülő modulokat Eclipse

Step 7) Reboot Eclipse
A szoftver letöltődik, és a rendszer felkéri az eclipse újraindítására.

Step 8) A telepítési folyamat befejeződött
In Windows > Beállítások menüben látni fogja a Drools opciót, amely jelzi, hogy telepítve van.

Adjon hozzá Drools beépülő modulokat Eclipse

Drools Program Hello World Példa

Az alábbiakban egy Drools példa látható a Hello World programhoz:

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

Mi az a hátra és előre láncolás?

Egy előre láncolt motor ellenőrzi a tényeket, és levon egy konkrét következtetést.

Tekintsük az orvosi diagnosztikai rendszer forgatókönyvét. Ha a páciens tünetei tényként kerülnek be a munkamemóriába, akkor könnyű betegséget diagnosztizálni.

Visszafelé vs. előre láncolás

Előre láncolt motor

A hátrafelé láncoló motornak megvan a kitűzött célja, és a motor igyekszik ezt teljesíteni.

Vegye figyelembe az orvosi diagnózis ugyanazt a forgatókönyvét. Tételezzük fel, hogy egy bizonyos betegség járványa. Ez a mesterséges intelligencia feltételezheti, hogy egy adott egyénben volt a betegség, és a rendelkezésre álló információk alapján megpróbálhatja meghatározni, hogy a diagnózis helyes-e.

Visszafelé vs. előre láncolás

Hátra láncolt motor

Miért használja a Drools Rule Engine-t?

Íme, a Drools szabálymotor használatának fő okai:

  • A szabályok könnyen érthetők a fejlesztők és üzleti elemzők.
  • A szabályok könnyen karbantarthatók.
  • A Rule Engine egy Rete algoritmust használ, amely kimondja, hogy a motor teljesítménye soha nem függ a szabályok számától.
  • A szabályok az alkalmazás leállítása nélkül módosíthatók és telepíthetők.
  • Externalizálja az üzleti logikát a viszonylag statikus kódbázisból.
  • A szabályokat kevésbé bonyolult formátumokban fejlesztették ki, így az üzleti elemző könnyen elolvashatja és ellenőrizheti a szabályok egy csoportját.
  • A szabályok lehetővé teszik egy olyan tudásraktár létrehozását, amely formában végrehajtható.
  • Szerszámok, mint Eclipse segít a szabályok kezelésében, azonnali válaszadásban, hitelesítésben és tartalomtámogatásban.

A szabályok motorjának hátrányai

Íme a szabálymotor használatának hátrányai/hátrányai:

  • Sok tanulási erőfeszítést igényel a fejlesztőktől, hogy ismerjék ezt a programozási módszert
  • A szabálymotor nem biztonságos módszer a problémák hibaelhárítására.
  • Meg kell értenie a szabálymotor működését, hogy több memóriát használjon
  • Az összetett elágazásokra számos szabály létezik.

A szabályok idővel változhatnak, és a kódmódosításokkal lépnek életbe

Összegzésként

  • A JBoss Drools egy Business Logic integrációs platform (BLiP)
  • A Drool eszközök típusai a következők: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • A Drool segít elkülöníteni az alkalmazást a dinamikus logikától.
  • A tény azokat az adatokat jelentette, amelyek a szabályok bemeneteként szolgálnak.
  • A munkamemória egy Tényekkel ellátott tároló, ahol mintaillesztésre használják őket. Módosítható, beilleszthető és eltávolítható.
  • A tudásbázis egy olyan összetevő, amely tartalmazza az összes, az aktiválási szabályhoz szükséges erőforrást.
  • A tudásszekció a Drools ökoszisztéma tudását képviseli.
  • A tudásbázis a Drools ökoszisztéma tudását képviseli.
  • A modul több tudásbázist tárol, amelyek különböző foglalkozásokat tarthatnak.
  • A szabályok a tudás részei, amelyeket gyakran a következőképpen fejeznek ki: „Amikor bizonyos körülmények lépnek fel, végezzen el néhány feladatot”.
  • A Drools egy szabálymotor, amely szabályalapú megközelítést alkalmaz egy Expert rendszer megvalósításához.
  • Egy előre láncolt motor ellenőrzi a tényeket, és levon egy konkrét következtetést.
  • A hátrafelé láncoló motornak megvan a kitűzött célja, és a motor igyekszik ezt teljesíteni.
  • A Rete algoritmus egy hasznos mintaillesztési algoritmus, amely lehetővé teszi a termelési szabályrendszerek megvalósítását.
  • A szabályok könnyen érthetők a fejlesztők és az üzleti elemzők számára.
  • A Drool-hoz hasonló szabálymotorok használatának fő hátránya az, hogy a fejlesztők számára sok tanulási erőfeszítésre van szükség ahhoz, hogy ismerjék ezt a programozási módszert.