JBoss Drools laborgyakorlat

Hasonló dokumentumok
Rendszerintegráció és -felügyelet

Szabályalapú üzleti logika

Feltörekvő technológiák: seam, drools, richfaces és társai a JBossban

Szabályalapú rendszerek, eseményfeldolgozás

Szabályalapú üzleti logika, komplex eseményfeldolgozás

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

JAVA webes alkalmazások

BASH script programozás II. Vezérlési szerkezetek

Modell alapú tesztelés mobil környezetben

Viczián István IP Systems JUM XIX szeptember 18.

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Informatikai Navigátor

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Adatbázisok elmélete 9. előadás

CLIPS (C Language Integrated Production System)

Adatbázisok elmélete 9. előadás

A Java EE 5 plattform

Adatbányászat és Perszonalizáció architektúra

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

Adatbázisok elmélete 10. előadás

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

webalkalmazások fejlesztése elosztott alapon

Komputeralgebra Rendszerek

GPRS Remote. GPRS alapú android applikáció távvezérléshez. Kezelési útmutató

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Nem roncsoló tesztelés diszkrét tomográfiával

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Bonyolultsági. mértékek erlang programokhoz. Király Roland

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

NEPTUN ID BMENET ID. Címtár BME VPN. vcenter VPN SVN. Trac Wiki. Wifi

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Vizuális adatelemzés - Gyakorlat. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

SQL DDL-2 (aktív elemek) triggerek

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Szabálykezelés a gyakorlatban

Adatbázis tartalmának módosítása

CLIPS áttekintés. Produkciós rendszerek fejlesztése

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Szoftver-modellellenőrzés absztrakciós módszerekkel

MYCIN. Szakértői rendszer

Enterprise extended Output Management. exom - Greendoc Systems Kft. 1

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Komplex feliratok készítése Maplex-el. Beke Dániel

API tervezése mobil környezetbe. gyakorlat

Objektumorientált Programozás III.

EGY NAGYBÓL HÚSZ KISEBB

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

JEE tutorial. Zsíros Levente, 2012

JavaServer Pages (JSP) (folytatás)

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

A F u z z y C L I P S a l a p j a i

A Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)

Mesterséges Intelligencia (Hasonlóságelemzés) alkalmazása az információvédelem területén. Csizmadia Attila CISA

Haladó DBMS ismeretek 1

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Új funkciók ZW3D 2017 SP.

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Bevezetés a Seam keretrendszer használatába

A FileZilla program beállítása az első belépés alkalmával

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

Zempléni gyümölcsalapú kézműves élelmiszerek fogyasztói magtartásának vizsgálata a nők körében

Sintony SAK 41. Kezelési utasíitás 8AA D0-20/10/99 - UK -

OpenBSD hálózat és NAT64. Répás Sándor

Adatmodellezés, alapfogalmak. Vassányi István

Hálózati rendszerek adminisztrációja JunOS OS alapokon

RADPLAN. A Mentum Planet, Mentum Ellipse az InfoVista bejegyzett védjegye, minden jog fenntartva!

MVC. Model View Controller

Osztályok. 4. gyakorlat

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

Hadronzápor hatáskeresztmetszetek nagy pontosságú számítása

A szerzõrõl... xi Bevezetés... xiii

Tuplet Tool Hangjegycsoport eszköz

SQLServer. SQLServer konfigurációk

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Szkriptnyelvek. 1. UNIX shell

T-AVL Nyomkövető webkliens

Jet Express 1. 1 Tartalomjegyzék

A Java Persistence API PersistenceAPI / 3

Autóipari vezérlőegységek aktív környezetállósági tesztelésének módszerei

A Z E L E K T R O N I K U S A L Á Í R Á S J O G I S Z A B Á L Y O Z Á S A.

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Intelligens Rendszerek I. Szabályalapú tudásábrázolás

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Laborgyakorlat: Virtuális memória beállítások testreszabása

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

ELTE SAP Excellence Center Oktatóanyag 1

Az SQL adatbázisnyelv: DML

Átírás:

JBoss Drools laborgyakorlat Bergmann Gábor Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Ismétlés Szabály alapú üzleti logika MVC M V C Üzleti objektumok Üzleti szabályok 2

Drools JBoss Drools nyílt forrású termékcsalád o Drools Expert szabályvégrehajtó motor o Drools Guvnor BRMS o Drools Flow jbpm 5 üzleti folyamat végrehajtó o Drools Planner megoldástér-bejárás o Drools Fusion CEP http://www.jboss.org/drools/documentation 3

Drools Expert alapok Szabályvégrehajtó motor (Java, beágyazható) Eclipse alapú fejlesztőkörnyezet o Szabály szerkesztő o Debug támogatás Szabályok bevitele o Kódolás (Java, mvel) DRL formátum o Egyszerű GUI-n (Guvnor, BRL) o Sablon alapján (rule template) Természetes nyelvű szövegből (DSL) Döntési táblából (Excel) 4

Drools Expert alapok Adottak tények / üzleti objektumok (POJO!) o Ténybázis / munkamemória (working memory, WM) Adottak produkciós szabályok ( Szabálybázis ) o When / Left hand side (LHS) / Condition Kielégítő változóbehelyettesítés (tuple) aktiváció o Then / Right hand side (RHS) / Action Szabályok tüzelése, amíg van tüzelhető o Aktivációk agenda (conflict set) o Inkrementális mintaillesztés (RETE) o Aktiváció kiválasztása (konfliktusfeloldás) tüzelés 5

Drools Expert architektúra wm agenda Drools Engine * Knowledge Base * * * (Stateless Session) Stateful Session Rule * Business Object * Activation * Substitution * LHS Variable 6

Szabály felépítés Fejléc: név o + opcionális beállítások (pl. salience) LHS: deklaratív lekérdezés o Objektumminták, attribútum-korlátozásokkal Az objektum és az attribútumai megköthetőek változóban Pl. $szilva: Szilva(suly<8, $id: id!=$masik_id) o eval(...) további kényszerek a változókra o Kvantorok: not, exists, forall (ld. később) Az aktivációban ezek lesznek behelyettesítve RHS: Java parancsok, felhasználva a változókat o WM manipulációra speciális támogatás (ld. köv. dia) 7

Working Memory kezelés Inkrementális mintaillesztés változásokra frissül o WM változtatás csak a Drools APIn keresztül o Különösen: objektumok attribútumainak módosítása! Session API: WM manipuláció o insert(obj) FactHandle o retract(fhandle), update(fhandle,newobj) RHS támogatás o insert(obj) és retract(obj) o update(obj) vagy modify(obj){setx(), } o insertlogical(obj) automatikus visszavonás 8

DEMO HelloWorld projekt 9

Drools Expert hibakeresési támogatás Audit View logelemzés o Végrehajtott szabálypéldányok o Elvégzett WM módosítások o Megjelenő / eltűnő aktivációk o Kell: Logger nyitás + lezárás, Audit nézet rákapcsolás Debug mode: Working Memory / Agenda View o Töréspontnál WM tartalom / aktivációk o session-re rá kell mutatni, hogy működjenek o Debug as Drools Application RHS töréspont is lehet 10

DEMO Debugging 11

Kvantorok Kielégíthetetlenség o not feltétel o A kvantált elemekkel sehogy se tehető igazzá Egzisztenciális kielégíthetőség o exists feltétel o Akárhány megoldása is van, csak egy aktivációt szül Univerzális állítás o forall kire mi_lesz_igaz o első feltétel kielégíthető továbbiak is kielégíthetőek Aggregáció (összeg, darabszám, átlag, stb.) Feltételek: zárójelen belül and, or használható 12

Attribútum-korlátozások Attribútum: ami getterrel látható (JavaBean) o + this Korlátozás: összehasonlítás egy kifejezéssel o Drools-változók is használhatóak o Java összehasonlítás (pl. >=, ==) + kiegészítések Drools-specifikus összehasonlító operátorok o Kollekciók elemvizsgálata memberof, not memberof, contains, not contains o Regexp illesztés stb. Zárójelezés, &&, 13

rule "Cukroz" end when then Komplex szabály $szilva: Szilva () ## a pulton van a szilva $pult: KonyhaPult (tartalom contains $szilva) ## ures a szilva not Object (this memberof $szilva.tartalom) KockaCukor $cukor = new KockaCukor(); insert($cukor); modify($szilva) { } berak($cukor); 14

Tüzelés vezérlése Több szabály aktiválódott konfliktusfeloldás o Nagyobb prioritású előbb tüzel; alapesetben 0 Szabályfejlécbe salience opció, pl. salience 100 o Agenda Group (többi szabály most nem számít) Szabályfejlécbe agenda-group opció, APIval fókuszálható o Utána kizáró vagy szabálycsoport összes aktivációjára Szabályfejlécbe activation-group opció (vigyázat, mindent deaktivál!) Végtelen ciklus elkerülése (RHS lefutás után engedélyezve maradó szabály) 1. Aktiváció automatikusan törlődik tüzelés előtt egy update() vagy modify() után újra megtalálja 2. Fejlécbe no-loop opció: utólagos törlés másik szabályból update() után mégis megtalálja viszont agenda-group esetén lock-on-active jó 3. Megbízható megoldás: aktiváció okának megszüntetése 15

Query Egyebek o nincs akció, csak kódból hívható lekérdezés Declare o Lokális ténytípus o Java osztály generálódik Globals o Kívülről beadható Java objektumok o pl. remote service, frissítendő GUI, etc. o Akciórészben használható, feltételként ellenjavallott Decision Table 16

DEMO Komplex példa 17

Példaanyag Hogyan tovább? o https://inf.mit.bme.hu/edu/courses/materials/szolgáltatásintegráció/2014- tavasz/5-gyakorlat-drools Ajánlott Drools verzió o 5.4.0.FINAL o http://download.jboss.org/drools/release/5.4.0.final/org.drools.updatesite/ Dokumentáció o http://www.jboss.org/drools/documentation o http://docs.jboss.org/drools/release/5.4.0.final/drools-expert-docs/ 18

Köszönetnyilvánítás Az oktatási anyag elkészítése az Európai Uniós és Magyarország támogatásával a TÁMOP 4.2.4.A/1-11- 1-2012-0001 azonosító számú Nemzeti Kiválóság Program Hazai hallgatói, illetve kutatói személyi támogatást biztosító rendszer kidolgozása és működtetése országos program című kiemelt projekt keretei között valósult meg.