Bachelor Computerwetenschappen, Vrije Universiteit Brussel
Titularis: Tom Van Cutsem
Vragen? Contacteer mij.
Dit vak behandelt een algemene inleiding tot Gedistribueerde Systemen. Topics die zullen besproken worden omvatten:
Als medium tijdens de oefeningensessies gebruiken we hoofdzakelijk Java.
Datum | Topic |
---|---|
12/2 | Inleiding + korte inleiding Java |
19/2 | Client-server programma's, sockets |
26/2 | Concurrency en threading in Java |
05/3 | OS concepten en Multithreaded servers |
12/3 | Networking |
19/3 | RPC Opgave project |
26/3 | Indirecte Communicatie |
02/4 | Naming, Peer-to-peer systemen |
09/4 | Vakantieperiode |
16/4 | Vakantieperiode |
23/4 | Webtechnologie |
30/4 | Security |
07/5 | Synchronisatie en klokken |
14/5 | Gedistribueerde transacties + consensus |
21/5 | Deadline project |
21/5 | Geen Hoorcollege |
23/6 | Schriftelijk Examen |
26-27/6 | Projectverdediging |
Slides worden beschikbaar gesteld op Pointcarre.
Aanbevolen aanvullend studiemateriaal:
Distributed Systems: Concepts and Design, Fifth Edition (George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair) |
Wie niet vertrouwd is met Java vindt een massa aan materiaal op het internet. Hieronder een paar nuttige links:
Er wordt verwacht dat je de lessen actief volgt. Ook voor de oefeningen wordt een actieve deelname in de labsessies verwacht. De assistent kan je vragen om bepaalde oefeningen verplicht op te lossen en in te dienen als taak. Dit zal duidelijk gecommuniceerd worden.
De practica worden finaal beoordeeld door een individueel programmeerproject (50% van de eindscore). De projectopgave zal via Pointcarré beschikbaar worden gesteld en bevat alle details omtrent het indienen. Het project wordt vergezeld van een kort verslag. Er volgt een mondelinge projectverdediging tijdens de zittijd.
Er volgt een schriftelijk examen (gesloten boek) in de zittijd waarin voornamelijk de theorie wordt getoest (overige 50% van de eindscore). Een overzicht van alle te kennen topics voor het examen vind je hier.
Studenten dienen deel te nemen aan zowel het project, de projectverdediging als het schriftelijk examen om te slagen voor dit vak.
Relevante secties in aanbevolen handboek: hoofdstuk 1.
Client-server voorbeeldprogramma's: Java broncode (incl. de multi-threaded client-server voorbeeld-programmas van Les 4).
Cursusnotas sockets [Bron: Paul Krzyzanowski, Rutgers U.]
Relevante secties in aanbevolen handboek: secties 4.1, 4.2.
Cursusnotas (Enkel Secties 2, 6, 7 en 9) [Bron: Dan Grossman, U. Washington]
Threads en locks voorbeeldprogramma's: Java broncode.
Client-server voorbeeldprogramma's: zie de code uit Les 2.
Relevante secties in aanbevolen handboek: secties 7.4, 7.7.
Relevante secties in aanbevolen handboek: hoofdstuk 3 (uitgezonderd sectie 3.5).
Cursusnotas Java RMI [Bron: Paul Krzyzanowski, Rutgers U.]
Java RMI voorbeeldprogramma: Java broncode.
Relevante secties in aanbevolen handboek: sectie 4.3, hoofdstuk 5.
Relevante secties in aanbevolen handboek: hoofdstuk 6.
Cursusnotas Naming [Bron: Paul Krzyzanowski, Rutgers U.]
Relevante secties in aanbevolen handboek: secties 13.1, 13.2, 13.3.
Cursusnotas Distributed Hash Tables [Bron: Paul Krzyzanowski, Rutgers U.]
Relevante secties in aanbevolen handboek: hoofdstuk 10 (uitgezonderd 10.5, 10.6).
Cursusnotas klok-synchronisatie (uitgezonderd sectie over fysieke klokken). Zie ook: toekennen van Lamport en Vector timestamps. [Bron: Paul Krzyzanowski, Rutgers U.]
Relevante secties in aanbevolen handboek: secties 14.1, 14.2, 14.4.
Cursusnotas gedistribueerde transacties en consensus. [Bron: Paul Krzyzanowski, Rutgers U.]
Relevante secties in aanbevolen handboek: secties 15.1, 15.5, 17.1, 17.3, 17.6, 21.5.2.
Relevante secties in aanbevolen handboek: secties 1.6, 5.2, 9.1, 9.2, 9.3.
Relevante secties in aanbevolen handboek: hoofdstuk 11 (uitgezonderd sectie 11.6).