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
Í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.
Step 2) Telepítse az új szoftvert
In Eclipse, válassza az Új szoftver telepítése lehetőséget.
Step 3) Kattintson a Hozzáadás gombra
Szoftver hozzáadásához kattintson a Hozzáadás gombra.
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.
Step 5) Kattintson a Tovább gombra
A telepítés javítási oldalán kattintson a Tovább gombra.
Step 6) Fogadja el a licencszerződést
Fogadja el a licencszerződést, és kattintson a Tovább gombra.
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.
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.
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.
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.