====== X36DSV: Distribuované systémy a výpočty ====== ===== Manažerské shrnutí ===== Předmět je zaměřen na technologie podporující distribuovaný výpočet: na mechanismy zajišťujícím spolehlivé, efektivní a bezpečné propojení aplikačních procesů, programová rozhraní komunikačních kanálů a moderní 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 a zvládnutí zablokování, ochraně proti výpadkům, mobilitě výpočtu a bezpečnosti.\\ Předmět se též přednáší ve verzi pro [[vyuka:x36dsv:cviceni:2013-14-b:kombinovane-pm|kombinované studium]]. [[https://www.fel.cvut.cz/education/rozvrhy-ng.B132/public/cz/predmety/11/66/p11664604.html|Rozvrh]] přednášek a cvičení.\\ Garantem předmětu je [[lide:janecek|doc. Ing. Jan Janeček, CSc.]]. ===== Přednášky ===== Přednáší: [[lide:macejko|Peter Macejko]] ^ # ^ Téma ^ Materiály ^ | 1 | Úvod, komunikační mechanismy, Java RMI. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.01_v1.1.pdf|pr.01}} | | 2 | WWW technologie - applety, servlety, JSP, AJAX. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.02_v1.1.pdf|pr.02}} | | 3 | Technologie RPC, XML-RPC. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.03_v1.0.pdf|pr.03}} | | 4 | Technologie SOAP. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.04_v1.0.pdf|pr.04}} | | 5 | Technologie CORBA. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.05_v1.2.pdf|pr.05}} | | 6 | Synchronní a asynchronní model výpočtu, algoritmy pro komunikaci. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.06_v1.4.pdf|pr.06}} | | 7 | Formy komunikace, konzistentní snímky, logický čas. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.07_v1.5.pdf|pr.07}} | | 8 | Distribuované zajištění výlučného přístupu, rozbití symetrie. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.08_v1.6.pdf|pr.08}} | | 9 | Detekce a prevence uváznutí výpočtu (deadlock), ukončení výpočtu. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.09_v1.6.pdf|pr.09}} | | 10 | Ukončení výpočtu, quora. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.10_v1.7.pdf|pr.10}} | | 11 | Sdílení a replikace dat. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.11_v1.1.pdf|pr.11}} | | 12 | P2P, DHT - Chord, Pastry, Tapestry, CAN. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.12_v1.3.pdf|pr.12}} | | 13 | Mobilita v distribuovaných systémech. | {{:vyuka:x36dsv:prednasky:x36dsv_pr.13_v1.0.pdf|pr.13}} | ===== Literatura ===== * Janeček J.: Distribuované systémy. ES ČVUT 2000. {{:vyuka:x36dsv:prednasky:x36dsv_skripta_2000.pdf|pdf}} * Janeček J., Kubr J., Červený M.: Distribuované systémy - cvičení. ES ČVUT 2000. * Coulouris G., Dellimore J., Kindberg T.: Distributed Systems: Concepts and Design. Addison-Wesley 1995. * Tel G.: Introduction to Distributed Algorithms. Cambridge Press 1994. * Další materiály: * staré [[https://dsn.felk.cvut.cz/education.cz/X36DSV/|stránky]] předmětu * vizualizace vybraných algoritmů - {{:vyuka:x36dsv:prednasky:alg_vis_swf_v1.0.zip|}} ===== Cvičení ===== ==== Teoretická cvičení ==== ^#^Téma^ |1|Úvod do předmětu, seznámení s prostředím učebny.| |2|Technologie Java RMI.| |3|Aktivní prvky web technologií, XML parsing, AJAX.| |4|Technologie XML-RPC. Zadání projektu.| |5|Konzultační hodina.| |6|Technologie SOAP, WSDL.| |7|Spolupráce Java - CORBA.| |8|Samostatná práce na projektu, konzultace.| |9|Samostatná práce na projektu, konzultace.| |10|Samostatná práce na projektu, konzultace.| |11|Samostatná práce na projektu, konzultace.| |12|Samostatná práce na projektu, konzultace.| |13|Vyhodnocení projektu.| |14|Test, vyhodnocení projektu, zápočet.| ==== Programovací úlohy ==== * Z každé probírané technologie bude //malý// domácí úkol * Semestrální práce Odevzdání na service.felk.cvut.cz ([[http://service.felk.cvut.cz/pubguide/|návod]], odevzdávejte do složky ''courses/X36DSV/prj/_vas_login_'' ).\\ Odevzdání ve specifickém formátu - {{vyuka:cviceni:x36dsv:ukladane_soubory_v1.2.pdf|formát odevzdávaných úloh}}. [[vyuka:cviceni:x36dsv:rady|Rady a řešení možných problémů]] z minulých let. ==== Požadavky na zápočet ==== - odevzdání všech //malých// úloh v termínu - obhajoba semestrální práce v termínu ==== Stránky jednotlivých skupin ==== ^Termín^Cvičící^Odkaz^ |Dálkaři|Peter Macejko|[[vyuka:x36dsv:cviceni:2013-14-b:kombinovane-pm|Info]]| ===== Zkouška ===== Zkouška má 2 části - //písemnou// a //ústní//. * //Písemná// část je na 60 minut. Skládá se ze 3 otázek (přičemž první otázka je nutnou, ale nikoliv postačující podmínkou pro úspěšné složení zkoušky) - {{:vyuka:x36dsv:zkousky:x36dsv_zk_01b.pdf|ukázka}}. * V rámci //ústní// části je opravována písemka a jsou pokládány případné doplňující otázky. ==== Požadavky ==== Je vyžadována znalost v rozsahu tématických okruhů MSZZ (viz [[http://www.fel.cvut.cz/education/master/topicsVT.html|stránky FEL]]) * **Mechanismy distribuovaného výpočtu** * synchronní a asynchronní výpočet * mechanismy potvrzování * směrování a řízení toku * výměna zpráv * distribuovaná sdílená paměť * procedurální mechanismy CORBA, Java RMI a SOAP * mobilita * **Distribuované algoritmy** * logický čas * sdílení prostředků * výlučný přístup * zablokování * ukončení výpočtu * replikace dat a procesů * konzistence * odolnost proti chybám * quorum mechanismy * stabilizační algoritmy Součástí celkového hodnocení je hodnocení ze cvičení (25% z celkového hodnocení). ==== Termíny ==== ^ datum ^ čas ^ místnost ^ kapacita ^ poznámka ^ | [[vyuka:x36dsv:zkousky:2014.05.28|28.5.2014]] | 15:00| KN:E-xxx | 0+5| v KOSu| | [[vyuka:x36dsv:zkousky:2014.06.12|12.6.2014]] | 09:30| KN:E-xxx | 0+10| v KOSu| Známkování - [[http://geraldine.fjfi.cvut.cz/WORK/BK/zmeny_SZR_CVUT.pdf|info]] ---- Informace pro vyučující - [[interni:vyuka:x36dsv:start|zde]].