Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Megbízható elosztott és decentralizált rendszerek

    A tantárgy angol neve: Reliable Distributed and Decentralized Systems 

    Adatlap utolsó módosítása: 2023. január 4.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Mérnökinformatikus mesterképzés (MSc)
    Kritikus rendszerek mellékspecializáció
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIMIMA28   2/1/0/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Kocsis Imre,
    A tantárgy tanszéki weboldala http://www.mit.bme.hu/oktatas/targyak/VIMIMA28
    4. A tantárgy előadója Dr. Kocsis Imre adjunktus, MIT
    5. A tantárgy az alábbi témakörök ismeretére épít Operációs rendszerek, számítógép hálózatok alapjai, tervezési minták, adatbázisok alapjai
    6. Előtanulmányi rend
    Kötelező:
    NEM
    (TárgyEredmény( "BMEVIMIMA02", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIMIMA02", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    7. A tantárgy célkitűzése A tantárgy célja, hogy megismertesse az elosztott és decentralizált rendszerek tervezésének és alkalmazásra tervezésének kihívásait, és bemutassa azokat a hardver és szoftver tervezési megoldásokat, amikkel ezen rendszerek nagy megbízhatósága és rendelkezésre állása garantálható.  Jellemző modern célplatformként, illetve architektúraként kiemelt figyelmet kapnak a felhő és edge architektúrák; a szolgáltatásminőségi garanciákkal támogatott kommunikáció alapú integráció; valamint az elosztott főkönyvi technológiák (mind a blokklánc, mind pedig a nem blokklánc alapú megoldások). A tárgy gyakorlatai metodológiai demonstrációkon és esettanulmányokon keresztül teremtik meg a kapcsolatot a tipikus rendszermérnöki kihívásokkal.
    8. A tantárgy részletes tematikája

    Az előadások részletes tematikája:

    1. Elosztott rendszerek. Alapvető típusok; architektúrák; alapszolgáltatások.
    2. A szolgáltatásbiztos (dependable) és helyreállásképes (resilient) számítástechnika alapfogalmai. Hiba, hibás állapot, hibahatás, hibaterjedés; alapvető attribútumok és tipikus metrikáik.
    3. Szolgáltatásbiztonságra tervezés és hibatűrő működés. A szolgáltatásbiztonság biztosításának eszközei fejlesztési és működtetési időben; a hibatűrő működés életciklus-modelljei; a szolgáltatásbiztonságra tervezés folyamata.
    4. Hibatűrő rendszerek tervezési mintái. Architekturális minták (pl. egyszerű replikáció, moduláris redundancia, helyreállítási blokkok); a hibadetektálás, -kezelés (pl. checkpoint, rollback, roll forward, failover, túlterhelés-kezelési minták) és -eltávolítás alapvető megoldásai.
    5. Önmenedzselő rendszerek. Autonóm számítástechnika; a MAPE-K modell; eljárásrend alapú menedzsment; rendszerek rendszerei (System-of-Systems, SoS).
    6. Skálázható platformok. Virtualizáció és konténerizáció; felhő, edge és fog számítástechnika. Ellenállóképesség biztosítása skálázás alapú platfomokon; chaos engineering.
    7. Valósidejű kommunikáció alapú integráció. Architekturális paradigma, tipikus követelmények és kihívások; egy modern megoldás szolgáltatásminőségi garanciákkal: az OMG Data Distribution Service (DDS).
    8. Megbízható csoportkommunikáció és elosztott döntések. Tagsági kép biztosítása elosztott rendszerekben; a multicast kommunikáció megoldásai; kétfázisú, háromfázisú commit és hibakezelésük.
    9. Hibatűrő konszenzus. Alapvető kihívások és korlátok (a CAP tétel és kiterjesztései); az állapotgép-replikációs megközelítés; a Paxos és a Raft konszenzus protokollok.
    10. Támadástűrő konszenzus. Hibatűrés nehezen detektálható (bizánci) hibák esetén; hatékony algoritmusok (a Practical Byzantine Fault Tolerance algoritmus és továbbfejlesztései).
    11. Decentralizált rendszerek. Elosztott főkönyvi rendszerek és típusaik; az elosztott állapotgép probléma blokklánc alapú megoldása; Bitcoin; Proof of Work; Ethereum.
    12. Konszenzus decentralizált rendszerekben. Decentralizált rendszerek konszenzusának kihívásai és az alapvető trade-offok; meghatározó protokollok, pl. Proof of Stake, Proof of Elapsed Time, delegált delegált bizánci hibatűrés, Proof of Authority konszenzus mechanizmusok és összehasonlításuk.
    13. Decentralizált architektúrák. Reprezentatív architektúrák: Hyperledger Fabric, R3 Corda és openCBDC. Garancia-modellek és tipikus alkalmazások összehasonlítása. Okosszerződések kezelése az egyes platformokon, decentralizált megoldások integrációja.
    14. Decentralizált rendszerek privát és auditálható számítási modelljei. Trusted computingmegoldások alkalmazása a decentralizált rendszerekben; biztonságos többszereplős számítás; homomorf titkosítás; tudásmentes bizonyítás alapú megoldások (Zero-Knowledge Proofs).

     A gyakorlatok részletes tematikája:

    1. Elosztott IT rendszerek megfigyelése (monitorozás, eseménygyűjtés, elosztott tranzakciók megfigyelése, active probing)
    2. Hibabehatárolás logikai következtetéssel - a rendszerszintű diagnosztika alapelvei és alkalmazásuk elosztott IT rendszerek diagnosztikájára
    3. Cloud kapacitásoptimalizáció: kapacitásigények empirikus módszerekkel támogatott meghatározása és erőforrás-allokáció
    4. RTI DDS alapú rendszerintegráció
    5. Bizánci hibatűrő állapotgép-replikáció alkalmazásokban (a BFT-SmaRt könyvtár példáján)
    6. Okosszerződések, programozási mintáik és elemzésük (Solidity)
    7. Centralizált alkalmazások decentralizálásának tervezési folyamata
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás és gyakorlat.
    10. Követelmények

    Szorgalmi időszakban:

    Házi feladat: meghatározott témakörben irodalomkutatás és szemináriumi dolgozat jellegű írásos munka elkészítése.
    A dolgozat elfogadásának feltétele a kitűzött témakör szisztematikus szakirodalmi forrásokat használó áttekintő bemutatása, amely alkalmas a főbb nyílt kérdések rendszerezett ismertetésére is. A szemináriumi dolgozat tipikus terjedelme 6-9 oldal.

    Vizsgaidőszakban:

    Szóbeli vizsga, mely kiterjed az elméleti alapfogalmak ismeretére és azok gyakorlati alkalmazására is.

    A félév végi osztályzatot a szóbeli vizsga alapján állapítjuk meg.

     

    11. Pótlási lehetőségek A házi feladat a pótlási hét végéig pótolható.
    12. Konzultációs lehetőségek A félév során az oktatókkal egyeztetett időpontban, személyesen vagy online.
    13. Jegyzet, tankönyv, felhasználható irodalom

    A félév során kiadott órai jegyzeteken, tudományos publikációkon és szabványokon túl:

    • VAN STEEN, Maarten; TANENBAUM, Andrew S. Distributed systems. Leiden, The Netherlands: Maarten van Steen, 2017.
    • BONDAVALLI, Andrea; BOUCHENAK, Sara; KOPETZ, Hermann (ed.). Cyber-physical systems of systems: foundations-a conceptual model and some derivations: the AMADEOS legacy. Springer, 2016.
    • HANMER, Robert S. Patterns for fault tolerant software. John Wiley & Sons, 2013.
    • BAUER, Eric; ADAMS, Randee. Reliability and availability of cloud computing. John Wiley & Sons, 2012.
    • WEINMAN, Joe. Cloudonomics: The business value of cloud computing. John Wiley & Sons, 2012.
    • CHARRON-BOST, Bernadette; PEDONE, Fernando; SCHIPER, André. Replication. LNCS, 2010, 5959: 19-40.
    • UNMESH, Joshi: Patterns of Distributed Systems, 2022, https://martinfowler.com/articles/patterns-of-distributed-systems/
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra42
    Félévközi készülés órákra14
    Felkészülés zárthelyire 
    Házi feladat elkészítése32
    Kijelölt írásos tananyag elsajátítása22
    Vizsgafelkészülés40
    Összesen150
    15. A tantárgy tematikáját kidolgozta

    Dr. Kocsis Imre adjunktus, MIT

    Dr. Pataricza András egyetemi tanár, MIT