UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 2. Elosztott rendszerek Dr. Bilicki Vilmos Szegedi Tudományegyetem.

Slides:



Advertisements
Hasonló előadás
Tamás Kincső, OSZK, Analitikus Feldolgozó Osztály, osztályvezető A részdokumentumok szolgáltatása az ELDORADO-ban ELDORADO konferencia a partnerkönyvtárakkal.
Advertisements

Első tapasztalatok az NIIFI-nél üzemelő infrastruktúra cloud szolgáltatással kapcsolatban Stefán Péter NIIFI RICOMNET Miskolc.
Nagy rendelkezésre-állású szolgáltatások virtuális környezetben Stefán Péter, Szalai Ferenc, Vitéz Gábor NIIF Intézet.
ADATBÁZISOK.
Virtualizált Biztonságos BOINC Németh Dénes Deák Szabolcs Szeberényi Imre.
Kliens-szerver architektúra
Magyarországi cloud computing megoldások, belépési területek a hazai kis- és közepes méretű vállalatok számára Riba István.
1 GTS Szerver Virtualizáció – Ügyvitel a felhőben.
Hatékonyságnövelés IT biztonsági megoldásokkal Szincsák Tamás IT tanácsadó 2012.Október 17.
Mailbox Server szerepkör haladóknak. Témák: Postafiókok méretének korlátozása: szükségessége, mértéke Rendelkezésre állás Katasztrófa utáni helyreállítás.
A Microsoft rendszermenedzsment víziója A Dynamic Systems Initiative A System Definition Model Az üzemeltetésre tervezett szoftverek A SDM jelentősége.
Spanning Tree Protocol
Műveletek logaritmussal
OSI Modell.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 7. Gyakorlat Operator overloading.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 8. Gyakorlat Operator overloading II.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 5. Gyakorlat Öröklődés, virtuális függvények,
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek.
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Address Resolution Protocol (ARP)
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 11. Szolgáltatás Integráció Dr. Bilicki Vilmos Szegedi Tudományegyetem.
Programrendszerek fejlesztése Bevezető
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
Cluster Szorosan összekapcsolt számítógépek csoportja (egy gépet alkotnak) Gyakori a LAN megoldás Céljuk: – Teljesítmény növelése – Rendelkezésre állás.
TT Kovács Sándorné.
A KFKI AFS szolgáltatás Hernáth Szabolcs MTA KFKI RMKI
WEB MES (webes gyártásirányító rendszer)
Lineáris egyenletrendszerek (Az evolúciótól a megoldáshalmaz szerkezetéig) dr. Szalkai István Pannon Egyetem, Veszprém /' /
Hibrid felhő Privát-, publikus és hoster felhők összekapcsolása
Windows Server 2012 Kiadások, licencelés, lehetőségek
Demo/teszt környezetek Szerver konszolidáció Adatközpontok alapja.
CommunityCloud Private Cloud Public Cloud Hybrid Clouds Megvalósítás módja Szolgáltatás modell Alapvető jellemzők Közös jellemzők Software as a Service.
Operációs Rendszerek II.
szakmérnök hallgatók számára
SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 4
Budapest, június 28. Ontológia kezelő modul tervezése szöveges információt kezelő informatikai rendszer számára Förhécz András BME Méréstechnika.
Topológia felderítés hibrid hálózatokban
Jövő Internet technológiák és alkalmazások kutatása Magyarországon Ács Sándor, OE-NIK Budapest,
Mobil Internet 15. előadás: Mobilitás támogatás az IP réteg felett II./II. Nováczki Szabolcs BME Híradástechnikai Tanszék 2008/2009 II. félév.
A pneumatika alapjai A pneumatikában alkalmazott építőelemek és működésük vezérlő elemek (szelepek)
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 5.4 Szolgáltatói Keretrendszerek Prof. Dr. Gyimóthy Tibor,
2006. Peer-to-Peer (P2P) hálózatok Távközlési és Médiainformatikai Tanszék.
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
Nagy teherbírású rendszerüzemeltetés a felhőben. Miről lesz szó? Cloud áttekintő Terheléstípusok és kezelésük CDN Loadbalancing Nézzük a gyakorlatban.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 4. Gyakorlat Függvény paraméterek, dinamikus.
Supervizor By Potter’s team SWENG 1Szarka Gábor & Tóth Gergely Béla.
1 Sramó András Adatbázis-technológia VII. előadás Adatbázis-technológia 7. előadás Elosztott adatbázisok.
Út a felhőbe - Azure IaaS Windows Server 2012 R2 konferencia
Enterpise JavaBeans Simon Balázs
Eszköz és identitás kezelés Korlátlan fájl szerver kapacitás Másodlagos adatközpont Korlátlanul skálázódó infrastruktúra Biztonságos DMZ Hibrid adat-
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Okostelefon köztesréteg Dr. Bilicki Vilmos Szegedi Tudományegyetem.
OKOSTELEFON KÖZÉPRÉTEG, VALÓS IDEJŰ TELJESEN ELOSZTOTT ADATFELDOLGOZÁS
Miért jó nekünk kutatóknak a felhő?
Szoftver születik Eötvös Konferencia Köllő Hanna.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék P2P protokollok és autonóm számítástechnika: szemelvények.
Megbízhatóság és biztonság tervezése
A Windows Server 2003 termékcsalád A Windows Server 2003 termékcsaládnak 4 tagja van: Windows Server 2003, Standard Edition Windows Server 2003, Enterprise.
Hálózatok a mai világban
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Okostelefon felhő Prof. Dr. Gyimóthy Tibor Szegedi Tudományegyetem.
2. Operációs rendszerek.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 3. Átszövődő vonatkozások Dr. Bilicki Vilmos Szegedi Tudományegyetem.
Piramis klaszter rendszer
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
PÁRHUZAMOS ARCHITEKTÚRÁK – 13 INFORMÁCIÓFELDOLGOZÓ HÁLÓZATOK TUDÁS ALAPÚ MODELLEZÉSE Németh Gábor.
AZURE RÉGIÓK Szoftver szolgáltatás SaaS Platform szolgáltatás PaaS Infrastruktúra szolgáltatás IaaS.
IT ALAPFOGALMAK OPERÁCIÓS RENDSZEREK.
Informatikai rendszerek lassulása - a tervszerű archiválás hiánya?
Hálózati struktúrák, jogosultságok
Előadás másolata:

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 2. Elosztott rendszerek Dr. Bilicki Vilmos Szegedi Tudományegyetem Informatikai Tanszékcsoport Szoftverfejlesztés Tanszék

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Tartalom  Bevezető  Felmerülő problémák  Alkalmazás architektúrák  Elosztott rendszer architektúrák  SOA koncepció  Virtualizációs szintek  Összefoglaló Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Valós nagy rendszerrel kapcsolatos tapasztalatok (Inktomi) Összeomlások/Merevlemez hibákÓránként Adatbázis frissítésekNaponta Szoftver frissítésekHetente/Havonta OS frissítésekKétszer Energetikai hibáknéhány Hálózat hibák11 Az egész infrastruktúra fizikai átköltöztetése 2 Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Motiváció – nem funkcionális követelmények  Rendelkezésre állás: azon idő amely alatt a komponens képes kielégíteni a funkcionális követelményekben meghatározott funkciókat azon időhöz viszonyítva amikor ezt nem tudja megtenni.  Kapacitás/Skálázhatóság: A komponens a terhelés növekedésével is képes ellátni a funkcionális követelményekben megfogalmazott feladatokat.  Párhuzamosság: A komponens a több egymással párhuzamos terhelés hatására is képes ellátni a funkcionális követelményekben megfogalmazott feladatokat.  Fejleszthetőség: A komponens új funkcionális követelményeket is el tud látni viszonylag szerény fejlesztési ráfordítással.  Együttműködési képesség: A komponens képes környezetével és a szükséges komponensekkel aránytalan plusz terhelés okozása nélkül is együttműködni.  Késleltetés: A komponens az adott funkcionális követelményben szereplő szolgáltatását adott terhelés mellett adott időtartamon belül kiszolgálja.  Karbantarthatóság: A komponensnek támogatnia kell az adott szervezetben definiált karbantartási feladatokat (pl.: backup)  Menedzselhetőség: A komponensnek támogatnia kell a megfelelő konfigurálhatósági szintet.  Monitorozhatóság: A komponensnek monitorozhatónak kell lennie.  Visszaállíthatóság: Hibás adat esetén a komponensnek támogatnia kell a megfelelő állapot visszaállítását.  Biztonság: A komponensnek a helyi biztonsági előírásoknak megfelelően kell működnie.  Konzisztencia: A komponens az adatot konzisztens állapotban tartja Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Rendelkezésre állás  Az alábbi paraméterektől függ ■Megbízhatóság: –Annak az esélye, hogy egy rendszer adott ideig hibamenetesen működik ( meghibásodási ráta) ■Karbantarthatóság:  –Annek az esélye, hogy egy meghibásodás után egy adott időtartam alatt visszaáll a működőképes állapot (  megjavítási ráta) ■A rendelkezésre állás a rendszer működőképes ideje és a teljes idő hányadosa Programrendszerek fejlesztése R(t) = e - t M(t) = 1 - e-mt A = Up-Time Up-Time + Down-Time

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Fogalmak  MTTF Mean Time To Fail:  MTBF Mean Time Between Failure:  MTTR Mean Time To Repair: Programrendszerek fejlesztése6 MTTF = B1 + B2 + B3 3 Up Down A1A3A2 t B1B2B3 MTBF = (A1 + B1) + (A2 + B2) + (A3 + B3) 3 MTTR = A1 + A2 + A3 3

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Fürdőkád görbe Programrendszerek fejlesztése7 Burn-In Useful Life Note: Failure Rate is constant Wear-Out Time Failure Rate

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Megoldás: redundancia  Aktív redundancia ■Elem/komponens duplikálás ■Rendszer duplikálás  Passzív redundancia ■Hot Standby ■Warm Standby ■Cold Standby  Soros rendszer:  Párhuzamos rendszer: Programrendszerek fejlesztése R s = p 1. p 2 ……. p n R s = 1 - q 1 q 2 ……q m q 1 = 1 - p 1 q 2 = 1 - p 2

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Példa  Amazon EC2: ■99.95% átlagos rendelkezésre állás egy év alatt ■Évi 4,38 óra leállás  Google Apps: ■99.9% havi alapon ■Évi 8,76 óra leállás, havi 0,73 óra leállás  Serveloft: ■Hálózat: 99,9%, 4 órás helyreállítási idő ■Gép: 4 órás helyreállítási idő  Rackspace: ■Hálózat: 100% (karbantartáson kívül) ■Infrastruktúra: 100% havonta (karban tartáson kívül) ■Gép: 1 órán belül csere Programrendszerek fejlesztése9

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Skálázhatóság  Adat tárolás/Feldolgozás ■Vertikális (Scale up) –Fizikai korlátai vannak (processzorok száma, JVM szemétgyűjtő, …) –Közös memória mint kommunikációs médium ■Horizontális (Scale out) –Elosztott rendszer (Leslie Lamport: „Elosztott rendszer az ahol egy addig teljesen ismeretlen számítógép hibája teszi használhatatlanná a gépünket”) –Elvileg korlátlan (elosztottságból fakadóan nem lehet ACID) –Távoli hozzáférés problematikája (érték szerint vs. referencia szerint) Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Virtualizációs rétegek Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS IaaS - Infrastruktúra mint Szolgáltatás  Valós vagy virtualizált HW ■Processzor ■Memória ■I/O ■Hálózat  Függ a fizikai eszközöktől  Példák: Programrendszerek fejlesztése12

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Virtualizáció  Absztrakt fizikiai komponensek logikai objektumok segítségével  A fizikai és logikai objektumok dinamikus kötése  Példa: ■Hálózat: VLAN, VPN, P2P ■Tárhely: SAN ■Számítógép: Virtuális Gép Programrendszerek fejlesztése13

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Fizikai vs. Virtuális gép  Fizikai HW: ■Processzor, memória, chipset, I/O busz ■A fizikai erőforrások gyakran üresjáratban vannak  Szoftver: ■Szorosan kapcsolódik a HW-hez ■Egy aktív OS kép ■Az OS vezérli a HW-t  Hardver szintű absztrakció: ■Virtuális HW: processzor, memória, chipset, I/O eszközök, … ■Magában foglalja az OS és alkalmazás állapotot  Virtualizációs SW: ■Elválasztja a HW-t és az OS-t ■A vendég OS-ek felé multiplexálja a HW-t ■Erős szeparáció ■Kezeli a fizikai erőforrásokat Programrendszerek fejlesztése14

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Típusai  Type 2: Hosztolt architektúra: ■Befogadó Oprendszer felett van futtatva ■Kicsi kontextus váltó meghajtó  Type 1: Csupasz fém architektúra ■A Hypervisort közvetlenül a HW-re telepítik  Paravirtualizáció ■Az operációs rendszer tud a Hyervisorról Programrendszerek fejlesztése15

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Magas rendelkezésre állás Programrendszerek fejlesztése16

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Konszolidált mentés Programrendszerek fejlesztése17

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Probléma: Programrendszerek fejlesztése18

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS PaaS - Gartner Programrendszerek fejlesztése19

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS PaaS Felmerülő problémák  Leslie Lamport egy igen frappáns definíciót adott az eloszotott rendszerekre:  “A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable” azaz „Elosztott rendszer az, ahol egy olyan számítógép hibája teszi használhatatlanná a saját gépünket, amiről azt sem tudtuk, hogy létezik.”  Egy szabatosabb definíció Wolfgang Emmerichtől: „Elosztott rendszernek nevezzük az autonóm, egymással hálózaton együttműködő számítógépeket, amelyek közös együttműködésén alapuló szolgáltatását a felhasználó úgy érzékeli, mintha azt egy integrált eszköz szolgáltatta volna.” Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Határok – CAP tétel (Brewer tétele)  Internet méretű elosztott rendszerek ■C – Konzisztencia (Minden csomópont ugyanazt az adatot látja adott időben) –A – Atomi –C - Konzisztens –I - Elkülönítés –D - Tartósság ■A - Rendelkezésre állás (csomópontok kiesése nem akadályozza meg a maradókat a működéstől) –X % időben elérhető ■P - Partíció tűrés (tetszőleges üzenetvesztést tolerál) –Gilber és Lynch definíciója szerint „A teljes rendszer (hálózat) hibáján kívül semmilyen hiba kombináció sem okozhatja azt, hogy a rendszer hibásan válaszol”.  Ezek közül csak kettő teljesülhet Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Nem partíció tűrő  Minden a tranzakció által érintett adat egy gépen van  Következmények: ■Vertikális skálázás Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Nincs rendelkezésreállás  Partíció esetén megvárjuk míg megszűnik: megáll az élet  Adatbázis klaszterek, elosztott zárolási protkollok  Van ahol ez elkerülhetetlen: ■Pl: Google bigtable zárolások -> Paxos szavazásos algoritumos Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Gyenge konzisztencia  Sok helyen az ACID nem kritikus  Erős konzisztencia – ACID  Inkonzisztencia-ablak ■Nem a legfrissebb adat kerül visszaadásra  Végső fokon konzisztens ■A rendszer mérete határozza meg az inkonzisztencia ablakot (replikák száma, a rendszer terhelése, hálózati késleltetés, stb.) ■Ezt valósítja meg a BASE (Basically Available Soft-state Eventually consistent) megközelítés (pl.: DNS) Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ACID vs BASE ACIDBASE Erős konzisztenciaGyenge konzisztencia (a régi adat is megengedhető időnként) IzolációRendelkezésreállás Commit-ra fókuszálLegjobb szándék szerinti Beágyazott tranzakciókA megközelítőleges válasz OK Rendelkezésreállás? Konzervatív (Pesszimista)Agresszív (optimista) Lassú evolúcióGyors evolúció Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Architektúra típusok  Monolit ■Tipikusan eljárás szintű struktúrálás  Objektum orientált ■Objektum szintű struktúrálás ■Skandináv vs. Amerikai iskola (domain model vs. újrahaszonosíthatóság) ■Alap granularitás / rétegek építőelemei  Komponens orientált ■Üzleti funkciók mentén több objektumot magába foglaló egységek. Nagyobb lépték. ■Fontos, hogy hozott anyagból is jól tudjon dolgozni (ritka a zöldmezős beruházás) ■Kritikus fontosságú a laza csatolás figyelembevétele (az OO-nál ez nem szempont) ■Gyakran saját perzisztencia megoldással bírnak az egyes komponensek.  Szolgáltatás orientált ■Futó kód az építőkő Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS A határ  Interfész két modul között ■P2P, …  Az alapvető határ: ■Metódus/Függvény hívás  A szál átlépi a határt  A két oldal azonos címtérben van Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Más címtér  Mi van akkor ha ez nem igaz? ■IPC/RPC, ….  Nem használhat referencia szerinti átadást  Mi van akkor, ha a memória egy része osztott? ■Nem minden pointerre igaz ez ■Szinkronizálni kell a kliens és a szerver között Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Megbízunk a másik oldalban?  Nincs bizalom?  Meg kell vizsgálni az argumentumokat  Nincs pointer átadás  A kernelekben ez meg van valósítva  A legtöbb rendszerben nincs ■TCP ■Web ■… Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Részleges hiba  Meghibásodhat a két rész függetlenül?  Új kivételek  Helyi erőforrások felszabadítása  Bérletek használata Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kliens Muliplexelés  Nagyszámú konkurens hozzáférés  SLA – belépés vezérlés  Kliensek kiegyensúlyozott kezelése  Audit, számlázás  Kliens elkülönítés  Határ definíció Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Határ evolúció  Frissíthetjük-e a rendszereket egymástól függetlenül?  Verziók?  Protokoll frissítés?  Visszafelé kompatibilis? Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Protokoll vs. API  A protokoll szemlélet sikeresebb mint az API  Érték szerinti átadás  Hibákra is részben fel vannak készítve  Nem akarnak helyi hívásnak tűnni  Explicit állapotgép a hívás válasz helyett Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS XML  Semmit sem old meg  Kiterjeszthető típusú RPC  Közös séma ami figyelmen kívül hagyható  Valós problémákat elfedheti Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Elosztott rendszer architektúrák  CS – Kliens szerver  P2P  N rétegű architektúra  Szorosan csatolt rendszer  Lazán csatolt rendszer (EDA) ■Esemény ■ESP ■CEP  SBA (Space Base Architecture) (PU alapú) ■Klaszter ■Felhő ■Rács ■Elosztott Objektum Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kliens - Szerver  Szerepkörök alapján határozza meg a rendszerben résztvevő entitások helyzetét.  A szerver oldal birtokolja az erőforrásokat,  Kliens oldal használja azokat.  Ezen elvek mentén működnek napjaink legnépeszerűbb protokolljai (HTTP, SMTP, DNS, stb.).  A megközelítés előnyei ■ könnyebb karbantarthatóság, és a központosítás miatt elvileg könyebb biztonságos rendszert készíteni.  Hátránya ■a skálázhatóság és a robosztusság kérdése, mivel ez csak a szerver oldalon múlik Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS P2P  A kliens szerver architektúra ellentétje a P2P architektúra, ahol egyenrangú vagy nem egyenrangú, de az erőforrások megosztásában egyaránt részt vevő entitások alkotják a rendszert.  Skype vagy a legtöbb fájlcserélő protokoll ezen az elven működik.  A kliens-szerver megoldással szemben a hátránya a komplexitásában és elosztottságában rejlik, viszont cserébe extrém skálázhatóságot nyújt.  Típusai: ■Elosztott kivonat tábla (pl.: Kademina) ■Kicsi világ (pl.: Gnutella)  Szolgáltatás primitívek: ■Store ■Load ■Search Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS N-rétegű architektúra  Megjelenítés: a társ rendszer felé nyújt interfészt (gyakran ez a felhasználói interfész), és az ehhez kapcsolódó eseményeket kezeli le. Ennek a leggyakoribb megvalósítása a weboldal és az előállító logika.  Üzleti logika: ezen réteg feladata az üzleti folyamatok futtatása, hosszú életű tranzakciók kezelése. Itt kerül sor az adatok szélesebb hatókört, több adattípust átölelő szabályainak kikényszerítése is.  Perzisztencia: az adatok tartós tárolásával foglalkozik. Itt történik meg a szűkebb hatókörrel rendelkező adatszabályok kikényszerítése és gyakran az objektum és relációs adatmodellek közötti leképezés is Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Szorosan csatolt rendszerek  A szorosan csatolt rendszerekben a komponensek (vagy ha ilyenek nincsenek, akkor az osztályok, objektumok) szinkron módon kommunikálnak egymással, szorosan követve a klasszikus függvényhívás szemantikáját.  Ebbe a kategóriába tartoznak a távoli eljárásokon alapuló rendszerek is.  A megközelítés előnye az, hogy a rendszer a klasszikus, egy processzen belül is megtalálható interkaciós paradigmákra épít, egyszerűvé téve ezzel a megvalósítást.  Ezzel a megoldással viszont nehéz robosztus, skálázható rendszereket létrehozni Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Lazán csatolt rendszerek  Egyszerű események feldolgozása: ez esetben egy atomi esemény beérkezése indít el egy feldolgozási folyamatot. Egy példa erre a különböző felhasználói interakciókat támogató keretrendszerek eseménykezelése (pl. SWING JSF, stb.)  Eseményfolyamok feldolgozása (Event Stream Processing – ESP): ezesetben eseményfolyamokat szűrnek egyszerű feltételek alapján, és az érdekes eseményekre feliratkozott vevőknek küldik ki a szűrt eseményeket. Példa lehet erre, amikor a naplózásnál csak adott szintet elérő eseményeket továbbítunk.  Komplex esemény feldolgozás (Complex Event Processing - CEP): ez esetben a valós idejű eseményfolyamon értékelünk ki olyan szabályokat, melyek figyelembe vehetik az események sorrendiségét, bekövetkeztét, számosságát és számos egyéb tulajdonságát. Erre a későbbiekben majd látunk példát a Drools-szal kapcsolatban Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SBA rendszerek  Klaszter alapú (Cluster): a feldolgozásra koncentrál, az adattárolásra különböző tervezési minták vannak, a tipikusan olvasás jellegű alkalmazásoknál igen jó skálázódást tud elérni a CAP kompromisszumai nélkül. Le tudja kezelni az írási ütközést is. Példák erre a különböző alkalmazásszerverek által nyújtott klaszterezési lehetőségek (pl. JBoss Cluster)  Felhő alapú (Cloud): a CAP paradigma mentén a skálázható adattárolást is biztosítja, tipikusan a konzisztencia rovására. Példa erre a Google App Engine.  Rács alapú (Grid): főleg a feldologzásra koncentrál, nincs igazán írási ütközés, így a feldolgozás tetszőlegesen párhuzamosítható. Ezt leginkább munkafolyamatok (Job) formájában szokták megtenni.  Elosztott objektum alapú (Distributed Objects): az eloszott objektumok gyakran a fenti architektúrák alapjait képezik. Ekkor egy-egy objektum vagy replikánsa (replikált objektum – replicated object) megjelenik azokon a helyeken, ahol használják, és a háttérben egy keretrendszer (köztes réteg) gondoskodik arról, hogy konzisztens maradjon, vagy pedig egy helyen van tárolva (élő objektum – live object), és azokon a helyszíneken, ahol szükséges megfelelő proxy objektumok képviselik az objektumot. A megosztott objektumok gyakran objektumterekbe (object spaces) vannak szervezve, melyet valamilyen köztes réteg tart karban, virtualizál (pl. Java Spaces) Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SOA koncepció Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS SOA háromszög Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS WS világ Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Összefoglaló  Bevezető  Felmerülő problémák  Alkalmazás architektúrák  Elosztott rendszer architektúrák  SOA koncepció  Virtualizációs szintek  Összefoglaló Programrendszerek fejlesztése

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS A következő előadás tartalma  Kontextus  Biztonsági kontextus  Tranzakciós kontextus  Perzisztencia kontextus Programrendszerek fejlesztése