ETH Zurich :
Computer Science :
Pervasive Computing :
Distributed Systems :
Education :
DS HS2012
Verteilte Systeme
Prof. Dr. Friedemann Mattern
Prof. Dr. Roger Wattenhofer
Zeit und Ort:
|
Montag
Freitag
|
9:15 – 12:00
9:15 – 12:00
|
|
(Vorlesung, fallweise auch Übung) |
Inhalt:
Einführung (Charakteristika und Konzepte), verteilte Kontrollalgorithmen
(Flooding- / Echo-Verfahren, wechselseitiger Ausschluss, logische Uhren),
Basis-Kommunikationsmodelle (Remote Procedure Call, Client-Server-Modelle,
synchrone und asynchrone Kommunikation, Socket-Programmierschnittstelle),
abstraktere Kommunikationsprinzipien (Broadcast, Ereignisse, Tupelräume),
Namensverwaltung, Middleware und Techniken offener Systeme,
Infrastruktur für spontan vernetzte Systeme (Jini),
Sicherheits- und Schutzmechanismen, Fehlertoleranz (Modelle, Consensus,
Agreement), Replikation (Primary Copy, 2PC, 3PC, Paxos, Quorum-Systeme),
Multi-Prozessor-Programmierung.
Selbständige Arbeit:
Parallel zur Vorlesung findet ein Praktikum in Form von mehrwöchigen
Aufgaben statt, welches in die Note eingehen wird.
Ziel ist es, praxisbezogene Aspekte verteilter Systeme zu vermitteln. Hierzu
dient Android auf dem HTC Desire als mobile, verteilte Programmierplattform.
Ausgezeichnete Praktikumsprojekte:
Am Ende dieses Kurses haben wir ausgezeichnete Projekte prämiert und auf unserer
Webseite veröffentlicht.
Vorlesungsunterlagen:
Folienkopien der Vorlesung werden (in mehreren Teilen) im Laufe
des Semesters hier bereitgestellt.
Übungen:
Im Rahmen der Vorlesung wird es praktische Übungen in Form von
Programmieraufgaben und theoretische Übungen in Form von
schriftlichen Aufgaben geben.
Praktische Übungen:
Die hier erbrachte Leistung wird zu 20% in die Prüfungsnote eingehen. Details zum Praktikum gibt es auf unserer Android-Seite. Die Abgaben können über die Submission Page eingereicht werden.
Aufgabe |
Termin |
Abgabe |
Aufgabenblatt |
Kommentar |
- |
24.09.2012 |
01.10.2012 |
– |
Einführung, Einrichten der Entwicklungsumgebung |
1 |
01.10.2012 |
12.10.2012 |
HS2012.Assignment1.pdf |
Android Tutorial, GUI- und Hardwareprogrammierung |
2 |
12.10.2012 |
26.10.2012 |
HS2012.Assignment2.pdf |
HTTP, REST, Cloud-Services |
3 |
26.10.2012 |
12.11.2012 |
HS2012.Assignment3.pdf |
Verteilter Chat, Logische Zeit (Lamport & Vektorzeit) |
4 |
09.11.2012 |
17.12.2012 |
Folien |
Freies Projekt |
Theoretische Übungen:
Zum ersten Teil (Mattern) gibt es ein Übungsblatt zur Vorbereitung auf die schriftliche Prüfung.
Die Aufgaben sind freiwillig und werden nicht korrigiert.
Lösungsvorschläge werden zu einem späteren Zeitpunkt veröffentlicht.
Verantwortlicher Assistent ist Matthias Kovatsch <kovatsch@inf.ethz.ch>.
Im zweiten Teil (Wattenhofer) werden regelmässig Übungen zur Vorlesung gehalten. Sie gehen nicht in die Prüfungsnote ein.
Literatur:
- G. Coulouris, J. Dollimore, T. Kindberg: Distributed Systems: Concepts and Design, Addison-Wesley
- A. Tanenbaum, M. van Steen: Distributed Systems: Principles and Paradigms, Prentice-Hall
- Mullender (Ed.): Distributed Systems, 2nd Edition, Addison-Wesley
- M. Weber: Verteilte Systeme, Spektrum-Verlag
- B. Schneier: Applied Cryptography, Wiley
- M. Herlihy, N. Shavit: The Art of Multiprocessor Programming, Morgan Kaufmann, 2008
|