Toto je tzv. shluknutý kurz. Skládá se z několika samostatných předmětů, které sdílejí výukové materiály, úkoly, testy apod. Níže si můžete zobrazit informace o jednotlivých předmětech tvořících tento shluk.

Distribuované systémy a výpočty - B6B32DSV

Hlavní kurz
Kredity 5
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky neurčen
Rozsah výuky 2P + 2L + 4D
Anotace
Předmět je zaměřen na technologie podporující distribuovaný výpočet: na mechanismy zajišťující spolehlivé, efektivní a bezpečné propojení aplikačních procesů, programová rozhraní komunikačních kanálů a současné middleware technologie. Podstatná část přednášek je věnována typickým technikám distribuovaného výpočtu: zabezpečení kauzality výpočtu, zajištění výlučného přístupu, zvládnutí zablokování, ochraně proti výpadkům, mobilitě výpočtu a bezpečnosti.
Cíle studia
Absolvent předmětu získá přehled v oboru distribuovaných systémů. Bude si vědom omezení i výhod při nasazování takovýchto systémů. Absolvent bude také schopen navrhnout a implementovat jednoduchý distribuovaný systém.
Osnovy přednášek
1. Distribuovaný výpočet, grafové algoritmy (Dijkstra), synchronní a asynchronní model
2. Komunikační systém - potvrzovací protokoly, směrování
3. Synchronní a asynchronní výměna zpráv, multicasting
4. Procedurální komunikace - IDL rozhraní, sémantika volání, asynchronní mechanismy
5. Modely distribuovaného výpočtu - client-server, peer-to-peer, subscribe-publish, cloud computing
6. Podpora distribuovaných aplikací - Java RMI, JMS, Jini; SOAP, REST
7. Čas v distribuovaných systémech - synchronizace fyzických hodin, skalární a vektorové logické hodiny
8. Sdílení prostředků, distribuované algoritmy výlučného přístupu
9. Algoritmy rozbití symetrie
10. Detekce ukončení výpočtu, zablokování - předcházení a detekce
11. Replikace dat a procesů, zajištění konzistence
12. Velké distribuované systémy: architektura a výpočty (DHT, CDN, MapReduce, PageRank, social networks)
13. Mobilita v distribuovaných systémech - rozkládání zátěže, mobilní agenti, kooperující ad-hoc systémy
14. Bezpečnost v distribuovaných systémech - Kerberos, PKI, PGP
Osnovy cvičení
1. Úvod do předmětu
2. Prostředí RPC, messaging queue
3. Prostředí SOAP
4. Prostředí REST
5. Práce na malých úlohách, konzultace
6. Práce na malých úlohách, konzultace
7. Distribuovaná aplikace - ukázka implementace
8. Distribuovaná aplikace - ukázka implementace, zadání projektu
9. Práce na projektu, konzultace
10. Práce na projektu, konzultace
11. Distribuované ukládání dat
12. Práce na projektu, konzultace
13. Vyhodnocení projektu
14. Vyhodnocení projektu, zápočet
Literatura
Janeček J.: Distribuované systémy, ES ČVUT 2001, ISBN: 8001023079.
Coulouris G., Dollimore J., Kindberg T., Blair G.: Distributed Systems: Concepts and Design (5th Edition), Addison-Wesley 2011, ISBN: 0132143011.
Tel G.: Introduction to Distributed Algorithms, Cambridge University Press 2000, ISBN: 0521794838.
Attiya H., Welch J.: Distributed Computing: Fundamentals, Simulations, and Advanced Topics, John Wiley and Sons, Inc., 2004. Second Edition, ISBN: 978-0-471-45324-6.
Požadavky
Absolvovaný předmět: Počítačové sítě
Základní znalosti v oboru počítačových sítí a komunikací. Základy programování v jazyce Java.

Distribuované systémy a výpočty - B2M32DSVA

Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P + 2C
Anotace
Předmět je zaměřen na technologie podporující distribuovaný výpočet: na mechanismy zajišťující spolehlivé, efektivní a bezpečné propojení aplikačních procesů, programová rozhraní komunikačních kanálů a současné middleware technologie. Podstatná část přednášek je věnována typickým technikám distribuovaného výpočtu: zabezpečení kauzality výpočtu, zajištění výlučného přístupu, zvládnutí zablokování, ochraně proti výpadkům, mobilitě výpočtu a bezpečnosti.
Cíle studia
Absolvent předmětu získá přehled v oboru distribuovaných systémů. Bude si vědom omezení i výhod při nasazování takovýchto systémů. Absolvent bude také schopen navrhnout a implementovat jednoduchý distribuovaný systém.
Osnovy přednášek
1. Distribuovaný výpočet, grafové algoritmy (Dijkstra), synchronní a asynchronní model
2. Komunikační systém - potvrzovací protokoly, směrování
3. Synchronní a asynchronní výměna zpráv, multicasting
4. Modely distribuovaného výpočtu - client-server, peer-to-peer, subscribe-publish, cloud computing
5. Podpora distribuovaných aplikací - Java RMI, JMS, Jini; SOAP, REST
6. Čas v distribuovaných systémech - synchronizace fyzických hodin, skalární a vektorové logické hodiny
7. Sdílení prostředků, distribuované algoritmy výlučného přístupu
8. Algoritmy rozbití symetrie
9. Detekce ukončení výpočtu, zablokování - předcházení a detekce
10. Replikace dat a procesů, zajištění konzistence
11. Velké distribuované systémy: architektura a výpočty (DHT, CDN, ...)
12. Mobilita v distribuovaných systémech - rozkládání zátěže, mobilní agenti, kooperující ad-hoc systémy
13. Bezpečnost v distribuovaných systémech - Kerberos, PKI, PGP
14. Distribuovaná decentralizovaná databáze - blockchain
Osnovy cvičení
1. Úvod do předmětu
2. Procedurální komunikace - Java RMI
3. Fronty zpráv - Java JMS
4. Komunikace pomocí REST
5. Využití technologie gRPC
6. Využití technologie RabbitMQ
7. Distribuovaná aplikace - ukázka - návrh
8. Distribuovaná aplikace - ukázka - implementace, zadání projektu
9. Práce na projektu, konzultace
10. Práce na projektu, konzultace
11. Práce na projektu, konzultace
12. Práce na projektu, konzultace
13. Vyhodnocení projektu
14. Vyhodnocení projektu, zápočet
Literatura
Janeček J.: Distribuované systémy, ES ČVUT 2001, ISBN: 8001023079.
Coulouris G., Dollimore J., Kindberg T., Blair G.: Distributed Systems: Concepts and Design (5th Edition), Addison-Wesley 2011, ISBN: 0132143011.
Tel G.: Introduction to Distributed Algorithms, Cambridge University Press 2000, ISBN: 0521794838.
Attiya H., Welch J.: Distributed Computing: Fundamentals, Simulations, and Advanced Topics, John Wiley and Sons, Inc., 2004. Second Edition, ISBN: 978-0-471-45324-6.
Santoro N.: Design and Analysis of Distributed Algorithms, Wiley-Interscience, 2006, ISBN: 978-0471719977
Požadavky
Základní znalosti v oboru počítačových sítí a komunikací. Základy programování v jazyce Java.