Verteilte Systeme

Dozenten

Dipl.Inf. Philipp Schmidt
Prof. Dr.-Ing. Volker Roth

Inhalt

Einführung und Übersicht: Wozu verteilte Systeme? Problemfelder und Lösungsansätze.
Kommunikationssysteme: Klassifizierung von Kommunikationsdiensten, Kommunikationsdienste des Betriebssystems (Pipes, Message Queues, Sockets, Shared Memory)
Netzdienste im Internet: Kommunikationsdienste (TCP, UDP, SCTP, RTP), Standarddienste, Fernerzeugung von Prozessen.

Architektur verteilter Systeme: Datenfluss-Architektur versus Client/Server-Architektur versus verteilte Algorithmen.
Verteilungsabstraktion: Message passing vs. Fernaufrufe, mobiler Code, mobile Objekte, replizierte Objekte, Verteilte Dateisysteme.

Verteilte Algorithmen: Zeit und Kausalität, CAP-Theorem, Gruppenkommunikation, Auswahlalgorithmen, Sperrsynchronisation, Sondieren mit Echos, Vektoruhren.
Sicherheit und Fehlertoleranz: Terminologie und Fehlerklassifikation, Replikation mit Abstimmung (voting), Verteilte Übereinkunft, Byzantinische Fehler.

Verteilung von Berechnungen (z.B. Map-Reduce).

Termine

Vorlesung:

Tutorien:

Klausur:

Nachklausur:

Aufgaben

Alle Aufgaben sind bis auf Weiteres in Zweiergruppen zu bearbeiten. Die Abgabe besteht in der Regel aus zwei Teilen

Aufgabe 1 - Alternating Bit Protocol.

Abgabe: 26. April 2011

Material: Framework

Aufgabe 2 - Socket-Kommunikation.

Abgabe: 10. Mai 2011

Material: Framework, Musterlösung [Updated 2011-05-19, Nebenläufigkeitsproblem gefixt]
Implementierungen, die nicht in der Lage sind sich Sockets zu teilen, werden als nicht bestanden gewertet, können aber bis 14. Mai nachgereicht werden. [Update 2011-05-19]

Literaturaufgabe 1 - Zeit

Diskussion im Tutorium am 5./6. Mai 2011

Aufgabe 3 - syncrone verteilte Algorithmen.

Abgabe: 24. Mai 2011

Aufgabe 4 - GHS-Algorithmus

Abgabe: 7. Juni 2011

Material: Rumpf für die GHSNode-Klasse

Aufgabe 5 - Verteiltes Spiel die 1.

Abgabe: 14. Juni 2011
Wir werden über die nächsten Übungszettel eine kleine verteilte Peer-to-Peer Wirtschaftssimulation schreiben.
Als erster Schritt soll ein kleines Kommandozeilenprogramm implementiert werden, das in der Lage ist Befehle entgegenzunehmen, wobei für die verarbeitung der Eingabe beliebige Frameworks zugelassen sind.
Jeder Peer hat einen eindeutigen Nickname.
Es sollen zuerst zwei Befehle implementiert werden:

Aufgabe 6 - Verteiltes Spiel die 2.

Abgabe: 28. Juni 2011
Im zweiten Schritt differenzieren wir die Knoten: Jeder Knoten soll nun entweder einen Planeten, auf dem verschiedene Handelswaren angeboten werden, Auf dem Handelsschiff soll es nun folgende zwei zusätzlichen Kommandos geben:

Aufgabe 7 - Verteiltes Spiel die 2.

Abgabe: 5. Juli 2011
Im dritten Schritt erweitern dwir as Raumschiff nun um die letzten fehlenden Kommandos:

Vorlesungen

Vorlesung 1, Dienstag April 12

Themen:

Vorlesung 2, Dienstag April 19

Themen:

Vorlesung 3, Dienstag April 26

Themen:

Vorlesung 4, Dienstag Mai 03

Themen:

Vorlesung 5, Dienstag Mai 10

Themen:

Vorlesung 6, Dienstag Mai 17

Themen:

Vorlesung 7, Dienstag Mai 24

Themen:

Vorlesung 8, Dienstag Mai 31

Themen:

Vorlesung 9, Dienstag Juni 07

Themen:

Vorlesung 10, Dienstag Juni 14

Themen:

Vorlesung 11, Dienstag Juni 21

Themen:

Vorlesung 12, Dienstag Juni 28

Themen:

Vorlesung 13, Dienstag Juli 05

Themen:

Literatur

  1. Leslie Lamport,
    Time, clocks, and the ordering of events in a distributed system
    in Communications of the ACM, Volume 21, Pages 558--565, July 1978
  2. Colin J. Fidge
    Timestamps in Message-Passing Systems That Preserve the Partial Ordering.
    in Proc. of the 11th Australian Computer Science Conference (ACSC'88)
  3. Mattern, Friedemann
    Virtual Time and Global States of Distributed Systems.
    in Proc. Workshop on Parallel and Distributed Algorithms, Chateau de Bonas, France: Elsevier, pp. 215–226
  4. George Coulouris, Jean Dollimore, Tim Kindberg
    Distributed Systems - Concepts and Design forth Edition
    Addison Wesley 2005
  5. Nancy A. Lynch
    Distributed Algorithms
    Morgan Kaufmann 1997
  6. Seth Gilbert and Nancy Lynch,
    Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services
    ACM SIGACT News, Volume 33, Issue 2, June 2002
  7. Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek and Hari Balakrishnan
    Chord: A scalable peer-to-peer lookup service for internet applications
    ACM SIGCOMM Comput. Commun. Rev. 2001
  8. Author:David Karger and Matthias Ruhl
    Diminished Chord: A Protocol for Heterogeneous Subgroup Formation in Peer-to-Peer Networks
    in Book Title: LNCS: Peer-to-Peer Systems III Springer Berlin / Heidelberg 2005
  9. Petar Maymounkov and David Mazières
    Kademlia: A Peer-to-Peer Information System Based on the XOR Metric

    in LNCS Peer-to-Peer Systems
    Springer Berlin / Heidelberg 2002
  10. Jeffrey Dean and Sanjay Ghemawat
    MapReduce: Simplified Data Processing on Large Clusters
    OSDI'04: Sixth Symposium on Operating System Design and Implementation, San Francisco, CA, December, 2004.
  11. Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung
    The Google File System
    19th ACM Symposium on Operating Systems Principles, Lake George, NY, October, 2003.