Drools
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énetA 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ógiaA 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 RulesA 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 BRMSA 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]
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]
PéldaEz 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
Fordítás
Hivatkozások
További információk |
Portal di Ensiklopedia Dunia