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

Kredity 5
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. 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
Základní znalosti v oboru počítačových sítí a komunikací. Základy programování v jazyce Java.