UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 3. Átszövődő vonatkozások Dr. Bilicki Vilmos Szegedi Tudományegyetem Informatikai Tanszékcsoport Szoftverfejlesztés Tanszék
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Összefoglaló Kontextus Biztonsági kontextus Tranzakciós kontextus Perzisztencia kontextus Menedzsment/Monitorozás Naplózás Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Szoftverfejlesztés Funkcionális követelmények Nem funkcionális követelmények Keresztülívelő problémák ■Lehet funkcionális is, de ■Leginkább nem funkcionális probléma Olyan problémák amelyek a szoftver különböző rétegeiben megjelennek, és egyfajta ortogonális kapcsolatban vannak a szoftver valós céljaival Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Átszövődő vonatkozások Nem produktív, ha ezekkel is olyan szinten kell foglalkozni mint a funkcionális követelményekkel Elosztott rendszerben ezek transzparenciája külön kihívás Néhány fontosabb ilyen aspektus: ■Kontextus ■Biztonság ■Tranzakció ■Szinkronizáció ■Perzisztencia ■Naplózás ■Kód mobilitás ■Monitorozás ■… Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Szintjei Processzen belül ■JVM, szálak, … Processzek között ■JEE megoldások Internet méretekben ■WS-* megoldások Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kontextus Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS WS-CAF 3 szabványból áll ■WS-Context, WS-Coordination keretrendszer és WS- Transaction Management ■Ezeket egymástól függetlenül is lehet használni Egy nyílt keretrendszer mely lehetővé teszi több szolgáltatást biztosító alkalmazások együttes alkalmazását (alkalmazások kombinálását) A kompozit alkalmazások közös információkat oszthatnak meg Viszonyt ad a web szolgáltatás környezethez
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS WS-Context Lehetővé teszi a kompozit alkalmazások között az információ megosztást Defines Notion of An Activity ■A munka alapegységét ■Viszony létrehozását ■A mentett adatok megosztott szkópját ■Az aktivitással asszociált alap kontextust Web szolgáltatásokat definiál a kontextus menedzselésére ■Egy aktivitás kontextusonként ■CRUD műveletek ■A konextus átadása (referencia/érték)
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS WS-Context használata Példák: ■Elosztott web viszony (többet ad a sütinél) ■Single sign-on ■Tranzakció terjedés ■…
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS A struktúrája Egy XML dokumentum mely egyedi azonosítót és az aktivitás opcionális adatai tartalmazza A SOAP fejlécben visszük át Referencia (URI) vagy érték szerint (fejléc) adható át
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS WS-Context Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kontextus kiszolgáló Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Példa User Store 1 Store 2 CTX SVC. 2 CTX SVC. 1 1: getCatalog 2: addItemToCart 3: begin 4: submitOrder 5: complete
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Biztonság AAA ■Azonosítás (authentikáció) és azonosságkezelés ■Jogosultságkezelés (authorizáció) ■Könyvelés (accounting) ■Általános adatvédelem Operációs Rendszer Futtató környezet Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Egy minta architektúra Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Egy bonyolultabb architektúra Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Azonosítás Kód alapú Személy alapú Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Megvalósítás Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Jogosultságkezelés Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Rendszerek között Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS WS-* Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Elosztott rendszer konszenzus Rendszer szinten konszenzust kell elérni a fellépő hibák ellenére is ■Adatbázis tranzakció (mehet/nem mehet) ■Vezető választás ■Állapotgép replikáció ■Atomi üzenetszórás ■… Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Tranzakciók Erőforrások konzisztens használata Atomi Tranzakció ■A - Atomi ■C - Konzisztens ■I - Elkülönítés ■D - Tartósság Hosszú Futásidejű tranzakció (Üzleti Tranzakció) ■Kompenzáció vs. Zárolás Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Tranzakció Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Tranzakció típusok Elosztott atomi tranzakció ■Kétfázisú commit –Egyszerű –Blokkol ■Háromfázisú commit –Bonyolult –Nem blokkol –Nem működik szegmentált hálózat esetén ■Paxos –Aszinkron kommunikáció esetén is garantált a konzisztencia –Fail-Restart működést is tolerál Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kétfázisú commit 2PC Naplózás tartós tárra Tranzakció vezérlő Erőforrások Protokoll ■Szavazó fázis ■Commit fázis A szavazó fázis után végtelenségig zárolhat Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Háromfázisú commit 3PC Nem blokkoló Több algoritmus Nincs formális bizonyítás, elemzés Fail-Stop model Megoldások ■Timeout ■Tartalék TP ■… Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Lesile Lamport: Paxos 2000 éves algoritmus Analitikus is bizonyított képességek Fail-Restart modell Aszinkron hálózati modell N/2 hibát tolerál Nem halad amíg vissza nem tér a szinkron kommunikáció Rosszakaratú csomópontoknál védtelen Paxos - háborúban Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Paxos Csak egy érték fogadható el Peremfeltételek ■Fail-Restart modell ■Tetszőleges késleltetés ■Üzenet duplikálás Entitások ■Javaslattevő ■Elfogadó ■Hallgató Ötlet ■Abszolút sorrend a műveletek között ■Többségi elven meghatározza az elfogadott, vagy elfogadható értéket Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Google Chubby / Yahoo Zookeeper Zárolási információ sok apró fájlban Ezek egy replikált adatbázisban vannak tárolva Adatbázis: hibatűrő naplózó réteg felett: PAXOS Cubby kliense a PAXOS vezérrel beszélnek (a replikált log olvasása/írása) Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Perzisztencia Lecsatolt objektum Referencia szerinti azonosság? Módosítás/Szinkroni záció? Hatékony összefűzés? Azonosság? … Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Perzisztencia Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Menedzsment/Monitorozás Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Naplózás JUL : a java.util.logging API ami minden JDK része. JUL Log4j : legismertebb Log4j Commons Logging : Apache megvalósítás Commons Logging SLF4J : Absztrakció SLF4J Logback : a Log4J utóda Logback TinyLog : egyszerű TinyLog … Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Összefoglaló Kontextus Biztonsági kontextus Tranzakciós kontextus Perzisztencia kontextus Menedzsment/Monitorozás Naplózás Programrendszerek fejlesztése
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS A következő előadás témája Köztesréteg ■Típusai ■Megvalósítása ■Metrikái ■Példák Web Konténer EJB konténer Apache Hadoop Programrendszerek fejlesztése