Szabályalapú üzleti logika

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

Szabályalapú rendszerek, eseményfeldolgozás

JBoss Drools laborgyakorlat

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

Rendszerintegráció és -felügyelet

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

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

OpenCL - The open standard for parallel programming of heterogeneous systems

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

JAVA webes alkalmazások

Interaktív, grafikus környezet. Magasszintû alkalmazási nyelv (KAL) Integrált grafikus interface könyvtár. Intelligens kapcsolat más szoftverekkel

Alkalmazásokban. Dezsényi Csaba Ovitas Magyarország kft.

Párhuzamos és Grid rendszerek

Szabálykezelés a gyakorlatban

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

A szoftverfejlesztés eszközei

Emerald: Integrált jogi modellező keretrendszer

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

Infor PM10 Üzleti intelligencia megoldás

Informatikai Navigátor

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Átfogó megoldás a számlafolyamatok felgyorsításához ELO DocXtractor. Laczkó Kristóf ELO Digital Office Kft. Bálint András Prognax Kft.

MYCIN. Szakértői rendszer

WebService tesztelés. SOAPui Pro, GreenPepper és Confluence használatával. Verhás & Verhás Szoftver Manufaktúra KNOW-HOW

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

Folyamatmodellezés és eszközei. 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

Nagy bonyolultságú rendszerek fejlesztőeszközei

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

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

Web-fejlesztés NGM_IN002_1

Projekt beszámoló. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető Rendszer Napon belüli Kereskedéshez

Üzleti folyamatok rugalmasabb IT támogatása. Nick Gábor András szeptember 10.

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő február 20.

IT Szolgáltatás Menedzsment az oktatási szektorban - 90 nap alatt költséghatékonyan

Adatbázis rendszerek. dr. Siki Zoltán

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

Modellező eszközök, kódgenerálás

Kommunikációs rendszerek teljesítőképesség-vizsgálata

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

EGY NAGYBÓL HÚSZ KISEBB

Közösség, projektek, IDE

Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató

Az IBM WebSphere Multichannel Bank Transformation Toolkit V7.1 felgyorsítja a többcsatornás alkalmazásfejlesztést

Az Oracle Fusion szakértői szemmel

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ

Folyamatmodellezés (BPMN) és alkalmazásai

A klubnap fő témája: Alapozás

Miért jó nekünk kutatóknak a felhő? Kacsuk Péter MTA SZTAKI

A Java EE 5 plattform

Webes alkalmazások fejlesztése

Programozási nyelvek (ADA)

alkalmazásfejlesztő környezete

A szemantikus világháló oktatása

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Automatikus tesztgenerálás modell ellenőrző segítségével

Modell alapú tesztelés mobil környezetben

Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése

Üzleti szabálykezelés

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Földmérési és Távérzékelési Intézet

Nyilvántartási Rendszer

A felhőről általában. Kacsuk Péter MTA SZTAKI

Projekt beszámoló. Könyvelési Szakértői Rendszer Kifejlesztése Repetitív Könyvelési Feladatok Szabályalapú Feldolgozására

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

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Csatlakozás az IBM i rendszerhez IBM i Access for Windows: Telepítés és beállítás

Informatikai technológiák szakirány Rendszertervezés ágazat

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

Multimédiás adatbázisok

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

Adatstruktúrák, algoritmusok, objektumok

Tesztelési szintek Tesztautomatizálás

Miért is transzformáljunk modelleket? Varró Dániel

Az egységes tartalomkezelés üzleti előnyei

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

Objektumorientált paradigma és programfejlesztés Bevezető

Tartalomjegyzék. Bevezetés. 1. A.NET 3.5-keretrendszer 1. A korszerű alkalmazások felépítésének kihívásai... 2

Szoftverarchitektúrák. 12. Sorozat portál (követelmény specifikáció)

Objektumorientált paradigma és a programfejlesztés

Private Cloud architektúra keretrendszer

Rendszermodernizációs lehetőségek a HANA-val Poszeidon. Groma István PhD SDA DMS Zrt.

IBM felhő menedzsment

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

Hogyan lehet megakadályozni az üzleti modellezés és az IT implementáció szétválását? Oracle BPM Suite

Iman 3.0 szoftverdokumentáció

NAGY TELJESÍTM. Szerzők Dévai. István Automatizálási. és s Alkalmazott Informatikai Tanszék

Párhuzamos és Grid rendszerek

Programrendszerek tanúsítása szoftverminőség mérése

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

Oracle9i Alkalmazás Szerver Üzleti folyamat integráció. Molnár Balázs Vezető értékesítési konzultáns Oracle Hungary

Prolan Zrt. fejlesztéseiben. Petri Dániel

MVC. Model View Controller

Podoski Péter és Zabb László

Banki üzleti szabályok kezelésének támogatása

Átírás:

Szabályalapú üzleti logika Bergmann Gábor bergmann@mit.bme.hu Gönczy László anyagainak felhasználásával Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Tartalom Produkciós rendszerek alapfogalmai Üzleti szabályrendszerek Drools 2

Produkciós rendszerek alapfogalmai

Deklaratívan specifikált viselkedés o imperatív utasítássorozat helyett o ha-akkor szabályokkal Hol találkozunk szabály alapú viselkedéssel? o E-mail automatikus szűrőszabályok o Tűzfal konfiguráció / routing tábla / cron o MAKEFILE o Szakértő rendszerek (expert systems) o Szabály alapú működés Diagnosztika, stb

Egy lehetséges kategorizálás Szabály alapú (rule based) rendszerek Következtető gépek (inference engines) Előre láncoló / produkciós Hátra láncoló Tűzfal, stb. Tiszta logikai Üzleti szabálymotor Prolog, stb.

Szabály alapú következtető gépek Tudásbázis (knowledge base) o Ténybázis (fact base) / munkamemória (WM) Változatos felépítés o Szabálybázis (rule base) Szabályok, amelyekkel új tudást lehet kapni Ha : feltétel rész, precondition, bal oldal (LHS) Akkor : következmény rész, postcondition, jobb oldal (RHS) Végül egy következtető mechanizmus o Előre vagy hátra láncoló Előre láncoló: logikai következtetés vagy üzleti szabályok

Példák Szakértői rendszer (pl. orvosi) o Ha egy szerv gyulladt, akkor fájdalmat okozhat o Ha egy szerv gyulladt és aszpirin van a vérben, csökken a gyulladás o Fáj a lábam, mi minden okozhatja? o Ha bevennék aszpirint, mi lenne a következménye? Üzleti szabályok o Ha az ügyfél sokat roamingol, ajánljunk más tarifát o Ha a járat egyik buszvezetője a többihez képest kiugróan kevés jegyet értékesít, küldjünk rá ellenőrt 7

Következtetés Előre láncoló (deduktív/produkciós, adatvezérelt) o A tényekből újabb tényeket képez (produkciós szabály) o Egy következmény teljesítheti egy szabály feltételrészét o Analógia: generatív nyelvtan, hatáselemzés o Ilyenek például a üzleti szabályrendszerek o Logikai következtetés (vs. üzleti szabály) ha a feltétel érvénytelenné válik, a következmény is? Hátra láncoló (abduktív, igényvezérelt) o Egy cél-állítást próbál visszavezetni alaptényekre o Analógia: parser, diagnosztika o Ilyen például a Prolog és számos szakértői rendszer

Produkciós rendszer fogalomtár Munkamemória (working memory, WM) o Folyamatosan változó ténybázis Aktivált (activated, triggered) produkciós szabály o Minden feltétele ki van elégítve, tüzelhet Aktiváció o Szabály LHS egy konkrét kielégítő behelyettesítése o n-es (tuple), minden lekötetlen változóhoz egy érték Tüzelés (firing) o Szabály konkrét végrehajtása egy adott aktivációra Napirend (agenda, conflict set) o Összes (tüzelésre váró) aktiváció 9

Tipikus produkciós rendszer Szabálybázis WM Szabály Aktiváció Aktiváció Tüzelés Kiválasztás Szabály Szabály Aktiváció Aktiváció Aktiváció

Tipikus produkciós rendszer Szabálybázis WM Naiv o Sok esetben elég Inkrementális o RETE, TREAT, LEAPS, stb. Szabály Aktiváció Aktiváció Tüzelés Kiválasztás Szabály Aktiváció Aktiváció Szabály Aktiváció

Tipikus produkciós rendszer Szabálybázis WM Szempontok o Prioritás o Frissesség o Szabálycsoportok Szabály Aktiváció Aktiváció Tüzelés Kiválasztás Szabály Aktiváció Aktiváció Szabály Aktiváció

Tipikus produkciós rendszer Szabálybázis WM Ciklus o Amíg van tüzelhető szabály Szabály Aktiváció Aktiváció Tüzelés Kiválasztás Szabály Aktiváció Aktiváció Szabály Aktiváció

Üzleti szabályrendszerek

Business Rule Systems Szabály alapú üzleti logika MVC M V C Üzleti objektumok Üzleti szabályok

Üzleti logika kiszervezésére végrehajtató modell Üzleti objektumokat figyelhet, manipulálhat Felépítése: ha akkor Üzleti szabályok o ha az ügyfél 30 év alatti, emeljük 35%-al az ajánlatot o ha az ügyfél egyenlege 500Ft alá csökkent, értesítsük o ha más ügyfél korábban bejelentkezett már azonos lakcímre, nem adunk kedvezményt o ha a hallgatónak legalább húsz lezárt féléve van, nem szerzett aláírást diplomatervezésből és nem kapott köztársasági elnöki engedélyt, akkor megszüntetendő a jogviszonya, feltéve hogy ötéves képzésre jár és az ezt előíró jogszabály hatályba lépése óta kezdte tanulmányait

Üzleti szabálymotor Üzleti szabályok produkciós rendszer szemszögből o Tények üzleti objektumok o Kvázi produkciós szabályok, de RHS tetszőleges akció o Nem (feltétlen) logikai következtetés Érvénytelenné váló feltétel, akció hatása mégis megmarad Egy aktiváció többször is tüzelhet (pl. addig jár a korsó ) Üzleti szabálymotor (Business Rules Engine, BRE) o Üzleti szabályokat végrehajtó szoftver o Produkciós rendszer, a matematikai háttértől elvonatkoztatva, programozási platformként o Kapcsolat a külvilággal: WM, vagy akciók

Tipikus üzleti szabálymotor működése Szabályalapon leírt üzleti logika Következtető motor (BRE) A következtető kiértékeli a szabályokat a rendelkezésre álló tényeken Tények beillesztése Szabálybázis Mintaillesztő Ténybázis (WM) Ütközésfeloldás Tények beillesztése/módosítása Több egyidejűleg aktivált szabály Konfliktusban lévő szabályok feloldása Tények kiolvasása 18

BRE vezérlése Alapértelmezett: tüzelési ciklus o Amíg van még tüzelhető szabály o Vagy STOP szabályig Komplex rendszer: vezérlési folyam o Pl. jbpm workflow o Kiválthatja a bemutatott ciklust Eseményvezéreltség is elképzelhető o Alvó szabályok o Külön utasítás nélkül Szabály Szabálycsoport Szabály Szabály

Példa alkalmazás http://onjava.com/onjava/2007/01/17/building-enterprise-services-with-drools-rule-engine.html 20

Self-service portálok Szabálybázis: jogrendszer / üzletkötési feltételek Felhasználó kérdez o Jogosult vagyok-e EVÁra? o Mekkora K+F adókedvezményt kapok a kutatóhelyre? o Mekkora lesz a kötelező biztosításom? Bekérendő adatok meghatározása o Naiv: minden ismert ténytípust, attribútumot bekér o A kérdésből hátrafele láncolással leszűkíthető (pl. OPA) Adatok bekérése Következtetés levonása, eredményjelzés 21

BRMS BRMS = Business Rule Management System BRE + kapcsolódó szolgáltatások Számos termék o G2, JBoss Rules (Drools), IBM ILOG (J)Rules, Blaze Advisor, MS BRE, TIBCO iprocess, Oracle OPA, stb.

Szabálytár BRMS szolgáltatások o Kereshető, automatizáltan módosítható o Verziózás Végrehajtó könyvtár (BRE) végrehajtó szerver Tool support o IDE, webes felület o Template lehetőség, döntési tábla o Magasabb granularitású szabályok o Tesztelési támogatás: hatásanalízis / unit test o Üzleti szótár építése meglévő adatokból

Szabály alapú üzleti logika előnyei Dedikált szabálytár karbantarthatóság o Üzleti logika könnyebben módosítható o Pont ez változhat leggyakrabban: új rendeletek, stb. Redundancia elkerülése o Ugyanaz az üzleti logika sok modulban megjelenhet Jó esetben az üzleti döntéshozók is tudják olvasni o Sőt, akár írni is: természetes nyelvi verbalizáció, spreadsheet alapú szabálygenerálás Hatékony végrehajtás (inkrementális mintaillesztés) Cserélhető körülötte az architektúra Eszköztámogatás

Szabály alapú üzleti logika hátrányai Sorrendiség körülményesebb o V.ö. imperatív programnyelvekkel o Megoldás: integráció workflow motorral (ld. Drools)? Univerzális absztrakciós nehézségek o Túl elvont nyelv bizonyos feladatokra alkalmatlan o Nem elég elvont nem is egyszerűbb, mint a Java o Szivárgás (law of leaky abstractions) Alkalmazási tapasztalatok nem mindig pozitívak

Felhasználási területek - példák Biztosítók, bankok o Kalkulációk kiemelése o Szabályok következetes kikényszerítése o Ügyek elbírálásának támogatása E-Kormányzat o Regisztráció kiértékelése o Adó, járulékszámítás o Self-service portálok Logisztika o Szállítmányozási döntések támogatása 26

JBoss Drools

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

Drools Expert alapok Szabályvégrehajtó motor (Java, beágyazható) o WM: POJO üzleti objektumok 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) 29

Egyszerű Drools szabályok rule "We have an honest Politician" end salience 10 when exists( Politician( honest == true ) ) then insertlogical( new Hope() ); rule "Hope Lives" end salience 10 when exists( Hope() ) then System.out.println("Hurrah!!! Democracy Lives"); rule "Hope is Dead" when not( Hope() ) then System.out.println( "We are all Doomed!!! Democracy is Dead" ); end rule "Corrupt the Honest" when politician : Politician( honest == true ) exists( Hope() ) then System.out.println( "I'm an evil corporation and I have corrupted " + politician.getname() ); modify( politician ) { sethonest( false ) } end 30

Drools döntési tábla Döntési tábla forrás: spreadsheet o Sok hasonló szabály ha <30 éves és legalább 2 éve ügyfél, kapjon 25%-ot ha 31-49 éves és legalább 3 éve ügyfél, kapjon 17%-ot o Eltérő paraméterek (feltételek, akció részei) Akár kifejezés, pl. >30 o Üzleti döntéshozó által meghatározandó 31

További Drools modulok jbpm 5 workflow: Business Rule Task Drools Server o Drools Expert példány Java webalkalmazásban o Spring / WS / integráció Guvnor: a Drools BRMS rendszere o Szerveroldali modul: Java webalkalmazás o Szabályok, döntési táblák, stb. rendszerezett tárolása o Verziókezelés, hozzáférésvédelem o Kezelés webes/eclipse kliensből o Szabálybetöltés, futtatás Expert által (fájl helyett) 32

További Drools modulok Drools Fusion: CEP (Complex Event Processing) o Forrásokból heterogén események érkeznek o Kiegészített szabálynyelv: időablak, eseményviszonyok Pl. ha az elmúlt 3 percben túl sok a sikertelen tranzakció o Események automatikus megőrzése, amíg releváns Eseményforrások Eseményfeldolgozó Komplex esemény detektálása 33

További Drools modulok Drools Planner: optimalizáció o Alapállapot + változók keresési tér o Drools szabállyal Kényszerek Célok Akár a lehetséges lépések is o Kritériumok szerinti optimális megoldás megkeresése 34

Esettanulmány: szabálykiértékelés párhuzamosítása GPU felett Központi Szabálybázis Felhő kutatás-fejlesztési projekt (GOP-1.1.1-11-2012-0216, Profitexpert Kft.) Párhuzamos feldolgozásra alkalmas szabálybázis motor kutatása 37

A feladat Adott szabályvégrehajtó eszköz (Oracle Policy Automation) működését párhuzamosítani o GPU felett (CUDA) o OPA input/output feldolgozásával o OPA-val egyező eredményt adva lényegében újraírni o Szabályok feldolgozását (sorrendiség) o Input feldogozást o kiértékelést Modellalapú tervezés vs szabálykiértékelés vs párhuzamosítás vs teljesítménymérés.

CUDA röviden NVIDIA által kifejlesztett platform o Sokmagos grafikus kártyák o Saját programozói interfész Általános célú kód végrehajtása a grafikus processzoron o Nyelvi kiterjesztések használata (C,C++,Fortran, ) o Ezeket támogató speciális fordító Jelentős teljesítménynövekedés, ahol o Párhuzamos végrehajtást jól ki lehet használni o Adat-hozzáférésre és végrehajtásra nézve is jól darabolható 39

Architektúra - memória Block (0,0) Shared memory Grid Block (0,1) Shared memory Registers Registers Registers Registers Thread (0,0) Thread (0,1) Thread (0,0) Thread (0,1) Host Local Memory Local Memory Local Memory Local Memory Global memory Constant memory Texture memory

Szabálymotor funkcionalitás Java alapú kódgenerálás Szabálybázis és entitásmodell független Szabályok (attribútumok) alapján szétosztás CPU/GPU közt o Memóriaműveletek számának csökkentése Szabályok szakértői jelölése Átlátszó működés (OPA input/output)

A prototípus szabálymotor működése

CUDA kód felépítése

Felhasznált technológiák Eclipse (Java alapú, ingyenes) o EMF (adattárolás) o EMF IncQuery (mintaillesztés statikus analízishez) o XTend (kódgenerálás) o CDT (C++ fejlesztés) o NSight Eclipse Edition (CUDA) MinGW (C/C++ fordító)

A prototípus értékelése Tervezési időben többletköltség o Méretek: Mintapélda: 440.000 sor generált kód csak a szabály o Futási idő: C++ build időigényes Tesztelhetőségre o Tesztgenerátor (szabálybázishoz entitások) o OPA/CUDA kimenet összehasonlítás Futási időben megtakarítást hozhat Transzparens működés