Drools
Ezt a szócikket át kellene olvasni, ellenőrizni a szöveg helyesírását és nyelvhelyességét, a tulajdonnevek átírását. Esetleges további megjegyzések a vitalapon. |
Drools | |
Fejlesztő | Red Hat |
Legfrissebb stabil kiadás | 7.24.0 Final (2019. július 19.) |
Programozási nyelv | Java |
Operációs rendszer | keresztplatformos |
Platform | Java virtuális gép |
Kategória | szabálymotor |
Licenc | ASL 2 |
A Drools weboldala |
A Drools egy üzleti szabálymenedzselő rendszer (BRMS). Fő része egy előrefelé következtetéseken alapuló szabálymotor, ismertebb nevén termelési szabályrendszer. A feladatok végrehajtására a RETE algoritmus egy fejlesztett változatát használja.
Üzleti szabálymotorja és enterprise keretrendszere támogatja a JSR-94 szabványt a készítéshez, karbantartáshoz és az üzleti stratégia betartásához egy szervezetben, alkalmazásban vagy szolgáltatásban.
Történet
[szerkesztés]A Drools Projektet Bob McWhirter indította 2001-ben, a SourceForge oldalon regisztrálva. A Drools 1.0-t sosem adták ki, mivel nagyon hamar kiderültek a nyers erő módszer alapú lineáris keresés korlátai, s így elkezdtek dolgozni a Drools 2.0-n, melyet a RETE algoritmusra építettek, a projektet pedig áthelyezték a Codehaus oldalra. A 2.0 fejlesztési ciklusa során a Codehaus-nál Nobi Y lett a projektvezető. Az ő nevéhez fűződik a végleges 2.0 kiadás. Ezen a ponton lett a projekt vezető a Java alapú nyílt forráskódú szabálymotorok között, erős közösséggel. Ekkor kezdődött az igény a kereskedelmi szolgáltatásokra is. 2005 októberében a Drools beolvadt a JBoss rendszerbe, mint a JEMS ajánlásuk része és átnevezték JBoss Rules-ra. 2006-ban a JBoss-t magát megvette a Red Hat. A JBoss-ból származó pénzügyi háttérrel lehetségessé vált a JBoss Rules újraírása egy teljes és fejlettebb RETE implementációval és grafikus felülettel. 2007 közepén visszakapta a Drools nevet, mivel az emberek még két év után is következetesen Drools-nak hívták és zavaró volt úgy hivatkozni rá, mint "Drools a.k.a. JBoss Rules" vagy "Drools (JBoss Rules)". [forrás?] A Drools 5.0-t 2009. május 19-én adták ki. Fő célja az volt, hogy megvalósítsa a komplex eseményfeldolgozást (egy Fusion nevű modulban) és a munkafolyamat képességeket (egy Flow nevű modulban).[1]
Technológia
[szerkesztés]A Drools egy szabálymotor, mely Charles Forgy RETE algoritmusára alapul, a Java nyelvre szabva. A RETE algoritmus adaptálása objektumorientált felülettel lehetőséget ad az üzleti szabályok természetesebb kifejezésére az üzleti objektumok tekintetében. A Drools-t Java nyelven írták, de képes futni mind Java-n, mind .NET-en.
Úgy tervezték, hogy lehetőséget adjon más nyelvi implementációk csatlakoztatásához. Jelenleg szabályokat Java, MVEL, Python és Groovy nyelveken lehet írni. A Drools emellett lehetőséget ad deklaratív programozásra és elég rugalmas ahhoz, hogy összekapcsolja a problématér szemantikáját a szakterület-specifikus nyelvvel. Ehhez XML-t használ, amit egy, a problématérre definiált séma ír le. A szakterület-specifikus nyelvek XML elemei és attribútumai reprezentálják a problémateret.
JBoss Rules
[szerkesztés]A JBoss Rules egy előrefelé következtető szabálymotort tartalmazó következtető motor, mely a Drools-on alapul. A JBoss Rules a Drools üzleti változata. Ez azt jelenti, hogy az adott ágra vonatkozó több éves terméktámogatást tartalmaz, hibajavításokkal és bővítésekkel. Egy ideig el is hagyták a Drools nevet, hogy megpróbálják a JBoss Rules márkát alapítani mind a projektnek, mind a termék. Azonban két évvel később a közösség még mindig Drools-nak hívta, így a projekt nevét visszaszerezte a közösség. A termék neve megmaradt JBoss Rules. [forrás?]
JBoss Enterprise BRMS
[szerkesztés]A JBoss Enterprise BRMS egy üzleti szabálykezelő rendszer (BRMS) és következtető motor üzleti stratégiák és szabályok megtekintésére, fejlesztésére és a változások kezelésére.[2] A JBoss Enterprise BRMS a Drools egy üzleti kiadása, vállalati szintű terméktámogatással. A JBoss Rules ugyan szintén üzleti változat, de igazán a JBoss Enterprise BRMS tekinthető a zászlóshajónak.[3]
Az enterprise változat részei:[4]
- JBoss Enterprise Web Platform – a szoftver infrastruktúra, csak BRMS komponensek futtatásához
- JBoss Enterprise Application Platform vagy JBoss Enterprise SOA Platform - a szoftver infrastruktúra, csak BRMS komponensek futtatásához
- Business Rules Engine - Drools Expert a RETE algoritmus és a Drools Rule Language felhasználásával[5]
- Business Rules Manager – Drools Guvnor
- Business Rules Repository – Drools Guvnor
A Drools és a Guvnor nyílt JBoss közösségi projektek. Mivel elég érett rendszerek, betették őket az üzleti csomagba.
A JBoss közösségi változat részei:[6]
- Drools Guvnor (üzleti szabály menedzselő) – központi tárhely a Drools Knowledge Bases számára
- Drools Expert (szabálymotor) – a szabályok használatával következtet
- Drools Flow (folyamat/munkafolyamat), vagy jBPM 5 – munkafolyamatok és üzleti folyamatok számára
- Drools Fusion (eseményfeldolgozás/időbeli következtetés) – komplex eseményfeldolgozáshoz
- Drools Planner (automata tervező) – optimalizálja az automata tervezést, beleértve az NP-nehéz problémákat.
Példa
[szerkesztés]Ez a példa[7] egy egyszerű szabályt mutat be (pl. egy .java.drl fájlból), ami egy Drools-ban megvalósított Fibonacci számítás része. A szabály bemenete a Fibonacci osztály egy példánya, tartalmaz feltételt és a feltétel következményét. Érdemes megjegyezni, hogy a Java kód közvetlenül beírható a következmény szakaszba a szabály szintaxisán belül. Ezt a Java Szemantikus Modul és a Janino teszi lehetővé.
<rule name="Recurse" salience="10">
<parameter identifier="f">
<class>Fibonacci</class>
</parameter>
<java:condition>f.getValue() == -1</java:condition>
<java:consequence>
System.err.println( "recurse for " + f.getSequence() );
drools.assertObject( new Fibonacci( f.getSequence() - 1 ) );
</java:consequence>
</rule>
Kapcsolódó rendszerek
[szerkesztés]- CLIPS: szabad hozzáférésű szoftvereszköz szakértői rendszerek készítéséhez.
- d3web: ingyenes, nyílt forráskódú platform tudás alapú rendszerekhez (szakértői rendszerek).
- JESS: szabálymotor a Java platformhoz. A CLIPSprogramozási nyelv bővítménye.
- Prolog: általános célú logikai programozási nyelv.
Fordítás
[szerkesztés]- Ez a szócikk részben vagy egészben a Drools című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Hivatkozások
[szerkesztés]- ↑ What is new in Drools 5.0 (angol). JBoss Community
- ↑ JBoss Enterprise BRMS (angol). Red Hat
- ↑ JBoss Enterprise BRMS: Answers to frequently asked questions (angol). JBoss Community
- ↑ JBoss Enterprise BRMS Platform 5.1 (angol). Red Hat. [2011. március 18-i dátummal az eredetiből archiválva]. (Hozzáférés: 2011. március 1.)
- ↑ JBoss Enterprise BRMS datasheet (angol). Red Hat
- ↑ Drools 5 - The Business Logic integration Platform (angol). JBoss Community
- ↑ Archivált másolat. [2011. július 25-i dátummal az eredetiből archiválva]. (Hozzáférés: 2011. április 28.)