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