Gedistribueerde Systemen

2013-2014

Bachelor Computerwetenschappen, Vrije Universiteit Brussel

Titularis: Tom Van Cutsem

Vragen? Contacteer mij.

Cursusinhoud

Dit vak behandelt een algemene inleiding tot Gedistribueerde Systemen. Topics die zullen besproken worden omvatten:

Oefeningenreeksen.

Als medium tijdens de oefeningensessies gebruiken we hoofdzakelijk Java.

2013-2014 Lessenrooster

DatumTopic
12/2Inleiding + korte inleiding Java
19/2Client-server programma's, sockets
26/2Concurrency en threading in Java
05/3OS concepten en Multithreaded servers
12/3Networking
19/3RPC
Opgave project
26/3Indirecte Communicatie
02/4Naming, Peer-to-peer systemen
09/4Vakantieperiode
16/4Vakantieperiode
23/4Webtechnologie
30/4Security
07/5Synchronisatie en klokken
14/5Gedistribueerde transacties + consensus
21/5Deadline project
21/5Geen Hoorcollege
23/6Schriftelijk Examen
26-27/6Projectverdediging

Cursusmateriaal

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:

Beoordeling en Examen

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.

Les 1: Inleiding

Relevante secties in aanbevolen handboek: hoofdstuk 1.

Les 2: Client-server programma's

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.

Les 3: Concurrency

Cursusnotas (Enkel Secties 2, 6, 7 en 9) [Bron: Dan Grossman, U. Washington]

Threads en locks voorbeeldprogramma's: Java broncode.

Les 4: Ondersteuning van besturingssystemen en Multithreaded Servers

Client-server voorbeeldprogramma's: zie de code uit Les 2.

Relevante secties in aanbevolen handboek: secties 7.4, 7.7.

Les 5: Networking

Cursusnotas (Uitgezonderd secties over ATM, sockets in C) [Bron: Paul Krzyzanowski, Rutgers U.]

Relevante secties in aanbevolen handboek: hoofdstuk 3 (uitgezonderd sectie 3.5).

Les 6: Remote Procedure Calls

Cursusnotas RPC (Secties over Sun RPC, DCE RPC, DCOM, CORBA en Appendix A zijn optioneel) [Bron: Paul Krzyzanowski, Rutgers U.]

Cursusnotas Java RMI [Bron: Paul Krzyzanowski, Rutgers U.]

Java RMI voorbeeldprogramma: Java broncode.

Relevante secties in aanbevolen handboek: sectie 4.3, hoofdstuk 5.

Les 7: Indirecte Communicatie

Relevante secties in aanbevolen handboek: hoofdstuk 6.

Les 8: Naming

Cursusnotas Naming [Bron: Paul Krzyzanowski, Rutgers U.]

Relevante secties in aanbevolen handboek: secties 13.1, 13.2, 13.3.

Les 9: Peer-to-peer systemen

Cursusnotas Distributed Hash Tables [Bron: Paul Krzyzanowski, Rutgers U.]

Relevante secties in aanbevolen handboek: hoofdstuk 10 (uitgezonderd 10.5, 10.6).

Les 10: Synchronisatie en klokken

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.

Les 11: Consensus en Gedistribueerde Transacties

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.

Les 12: Webtechnologie

Relevante secties in aanbevolen handboek: secties 1.6, 5.2, 9.1, 9.2, 9.3.

Les 13: Security

Cursusnotas Cryptografie (enkel secties Introduction to cryptography, Communication, Digital Signatures, Diffie-hellman, MD5, SHA, DES, Secure Sockets Layer) [Bron: Paul Krzyzanowski, Rutgers U.]

Relevante secties in aanbevolen handboek: hoofdstuk 11 (uitgezonderd sectie 11.6).