BPEL nyelvű üzleti folyamatok modellezése és formális ellenőrzése

Hasonló dokumentumok
Webszolgáltatás alapokon BPEL

Webszolgáltatás alapokon BPEL

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 implementáció

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

Modell alapú tesztelés mobil környezetben

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 implementáció

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

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

BPEL 2.0 MUNKAFOLYAMATOK FORMÁLIS VERIFIKÁCIÓJA 1

Debreceni Egyetem Informatikai Kar. Szolgáltatás-orientált programozás az Oracle-ben

Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben. Ráth István

Részletes szoftver tervek ellenőrzése

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

Részletes tervek ellenőrzése

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

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

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

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

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

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

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

Adatstruktúrák, algoritmusok, objektumok

Komputeralgebra Rendszerek

Valószínűségi modellellenőrzés Markov döntési folyamatokkal

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

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

Ráth István. DECOS Nemzeti Nap október 15. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Szoftverminőségbiztosítás

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

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

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

Alapszintű formalizmusok

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

Java II. I A Java programozási nyelv alapelemei

A Hibatűrő Rendszerek Kutatócsoport EU kutatási projektekjei

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

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

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

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

Ráth István. A fejlesztés evolúciója

Modellezés Petri hálókkal. dr. Bartha Tamás dr. Majzik István dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék

Java programozási nyelv

Modellek ellenőrzése és tesztelése

Szkriptnyelvek. 1. UNIX shell

BPEL 2.0 ALAPÚ MUNKAFOLYAMATOK KOOPERÁCIÓJÁNAK FORMÁLIS VERIFIKÁCIÓJA. Bende Tibor V. évf. Műszaki informatika

Kiterjesztések sek szemantikája

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Java II. I A Java programozási nyelv alapelemei

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

A szoftverfejlesztés eszközei

Objektumorientált paradigma és a programfejlesztés

Varró Dániel MTA doktori értekezésének bírálata. Precíz modell transzformációk tervezése és analízise a modellvezérelt fejlesztésben

Programozási nyelvek 6. előadás

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

Szoftver karbantartási lépések ellenőrzése

Zárthelyi mintapéldák. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

A C programozási nyelv II. Utasítások. A függvény.

Modell alapú tesztelés: célok és lehetőségek

Elosztott adatbázis-kezelő formális elemzése

A C# programozási nyelv alapjai

Sztochasztikus temporális logikák

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

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

Elérhetőségi probléma egyszerűsítése: Állapottér és struktúra redukció Petri-háló alosztályok

Petri-hálók és produkciós hálók közötti kapcsolat

Modellek fejlesztése

Modellek fejlesztése

Követelmények formalizálása: Temporális logikák. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Szoftverminőségbiztosítás

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Számítógép architektúra

Absztrakció a szoftvertervezésben az Alloy specifikációs nyelv segítségével

A formális módszerek szerepe

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

Programozási nyelvek (ADA)

Folyamatok rugalmas irányítása. FourCorm Kft.

Gara Péter, senior technikai tanácsadó. Identity Management rendszerek

OOP. Alapelvek Elek Tibor

Folyamatmodellezés. Budapesti Műszaki és Gazdaságtudományi Egyetem. Hibatűrő Rendszerek Kutatócsoport. Budapesti Műszaki és Gazdaságtudományi Egyetem

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Szimuláció. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics. Department of Measurement and Information Systems

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

Network front-end. Horváth Gábor. Kovács Róbert. ELTE Informatikai Igazgatóság

Objektumorientált paradigma és programfejlesztés Bevezető

Hatékony technikák modellellenőrzéshez: Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Értékáram elemzés szoftveres támogatással. Gergely Judit Lean-klub

Szoftver karbantartás

Folyamatmodellezés (BPMN) és alkalmazásai

Steps Towards an Ontology Based Learning Environment. Anita Pintér Corvinno Technologia Transzfer Kft

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

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

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

5. A kiterjesztési elv, nyelvi változók

S01-8 Komponens alapú szoftverfejlesztés 2

Szoftver-technológia I.

Átírás:

BPEL nyelvű üzleti folyamatok modellezése és formális ellenőrzése Kovács Máté, Gönczy László {kovmate,gonczy}@mit.bme.hu Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Research suported by Software Engineering for Service-Oriented Overlay Computers (SENSORIA) EU FET-IST project.

Munkafolyamatok végrehajtása Hagyományos Regisztrálás Típus besorolás Szerződés Egyenleg Papír Regisztrálás Egyenleg Elektronikus Típus besorolás Munkafolyamat végrehajtó motor Web szolgáltatás hívás Szerődés Kifizetés 2 Elutasíás Kifizetés Elutasítás

3 Munkafolyamat példa Egyszerű tevékenység A párhuzamos végrehajtás kezdete Szerződés Elágazás Elutasítás Regisztrálás Típus besorolás Vezérlési folyam Egyenleg Fizetés A párhuzamos végrehajtás vége

4 BPEL alapkoncepció

5 Web szolgáltatások

6 A BPEL elemei Process felépítése <partnerlink> - Kapcsolat két szereplő közt <partner> - partnerlink-ek halmaza <variable> - folyamat globális változói, ideértve a kimenő/bejövő üzeneteket <Activity> - folyamat lépései Egyéb elemek: <faulthandler>, <compensationhandler>, <correlationset>, <eventhandler>

7 A BPEL elemei 2. Basic activity <invoke> - Web service meghívása <receive-reply> - Web service funkcionalitás a hívó fél felé <throw> - belső hiba jelzése (kivétel) <wait> - várakozás <assign> - változók elérése/kezelése <compensate> - compensationhandler hívás sikeresen lefutott lépés visszavonása

8 A BPEL elemei 3. Structured activity <sequence> - sorosan végrehajtandó lépések <switch> - feltételes elágazás <while> - ciklus <pick> - üzenetek, alarmok kezelése <flow> - párhuzamosan végrehajtható tevékenységek

Scope Budapesti Műszaki és Gazdaságtudományi Egyetem 9 Scope Szerződés Elutasítás Regisztrálás Típus besorolás Fault Hanlder 1 Egyenleg Fizetés Fault Hanlder 2 Compensation Handler Event Handler 1 Event Handler 2

10 Hibakezelés a BPEL nyelvben 1 Scope: tevékenységek egy sorozata melyre definiálható Faulthandler Compensation handler Scope is tartalmazhaz scope-ot

11 Hibakezelés a BPEL nyelvben 2 Kivételes esemény: Fault Invoke dobja Throw tevékenység dobja Faulthandler kapja el Ha nincs megfelelő faulthandler: tartalmazott scope-ok kompenzálása a fault továbbdobása a tartalmazó scope felé Kompenzálás Sikeresen végrehajtott scope kompenzálható A compensation handler snapshot világban él Ha nincs compensation handler: A tartalmazott scope-ok kompenzálása

12 Motiváció Web szolgáltatások kompozíciója széleskörű eszköztámogatás Probléma: munkafolyamatok tesztelése Az adatok távoli adatbázisokban vannak A tesztfuttatások hatását érvényteleníteni kell Megoldás: munkafolyamatok formális analízise A munkafolyamatok formalizálása A formális modell tulajdonságainak ellenőrzése Szimuláció, Hibaszimuláció

13 Már létező megoldások W. van der Aalst: munkafolyamat modellezés Petri hálókkal Shin Nakajima: WSFL majd BPEL flow vizsgálata Sebastian Hinz et. al.: BPEL Petri háló Kovács Máté, Gönczy László: BPEL adatfolyam hálók

14 Munkafolyamatok ellenőrzése Tranzíciós rendszer Absztrakt adatok

15 Munkafolyamatok ellenőrzése Tranzíciós rendszer Absztrakt adatok Követelmények LTL: lineáris temporális logika

16 Munkafolyamatok ellenőrzése Tranzíciós rendszer Absztrakt adatok Követelmények LTL: lineáris temporális logika Modellellenőrző LTL kifejezések formális helyességellenőrzése Kimerítő állapottérbejárás

17 Munkafolyamatok ellenőrzése Tranzíciós rendszer Absztrakt adatok Modelltranszformáció VIATRA2 keretrendszer gráftranszformáció absztrakt állapotgépek Követelmények LTL: lineáris temporális logika Modellellenőrző LTL kifejezések formális helyességellenőrzése Kimerítő állapottérbejárás

18 Modellellenőrzés Ellenőrzés: Modell: tranzíciós rendszer Követelmény: lineáris temporális logikai kifejezés Eredmény: a követelmény igazságtartalma a modellen

19 Modellellenőrzés Tranzíciós rendszer: Állapotváltozók Állapot átmeneti szabályok (feltétel) értékadások; szintaktikával Az állapottér az állapotváltozók értékkészletének Descartes szorzatának azon részhalmaza, amely elérhető a kiindulási állapotból a tranzíciók mentén. Lineáris Temporális Logikai kifejezés: A nulladrendű logika + temporális operátorok: Gp: Fp: Xp: puq:

20 Változók modellezése Inicializálatlan Olvasva Írva Írva és olvasva Ellenőrzés: folyamat - G(változó /= írva);

21 Egyszerű tevékenységek modellezése Nem indítható Befejezett Indítható Változó Olvasva Ellenőrzés: folyamat - F(válasz=befejezett) OR F(visszagörgetés=befejezett)

22 Strukturált tevékenységek modellezése <sequence> <invoke name="a"/> <invoke name="b"/> </sequence> sequence=fut AND invoke_a=nem_indítható invoke_a=indítható; sequence=fut AND invoke_b=nem_indítható AND invoke_a=befejezett invoke_b=indítható; sequnece=fut AND invoke_b=befejezett sequence=befejezett; Nem indítható Befejezett Indítható Fut

23 A Scope modellezése Indítható Nem indítható Hibakezelés Hibásan befejezett Fut Kompenzálható Kompenzálás Kompenzált Minden nem indítható indítható átmenetnél ellenőrizzük, hogy az összes tartalmazó scope megfelelő állapotban van-e.

Scope állapotára vonatkozó indítási feltételek 24 AND scope_1=hibakezelés AND scope2=kompenzálás AND scope_3=fut AND

25 Hibaszimuláció A hiba terjedése változókban: két új állapot: hiba írva, hiba írva és olvasva a jelenlegi implementáció tartalmazza A vezérlés hibájának modellezése: egymásnak ellentmondó követelmények: szemantika hű leképezése hibás pozitív eredmény elkerülése

26 Megvalósítás Modelltranszformációs motor: VIATRA2 gráftranszvormációs keretrendszer deklaratív és imperatív programozási paradigmák ötvözése A kód hossza: 6077 sor +BPEL importer +WSDL importer +SAL generátor

27 Konklúzió és továbbfejlesztési lehetőségek Konklúzió: siker: gyakorlatban is alkalmazható munkafolyamat verifikációs metodika Továbbfejlesztési lehetőségek: Általános követelmények automatikus generálása: Egyetlen inicializálatlan változót sem olvasunk Szinkron munkafolyamat esetén mindenképp szolgálunk visszatérési értékkel Teljes Web szolgáltatás alapú környezet vizsgálata a folyamatok direktszorzatával "Back annotation" a munkafolyamatra

28 Köszönöm a figyelmet!