Verteilte Systeme

Vorlesung und Übung (19536) - 2+2-stündig, ECTS: 5

Dozent:               Artur Andrzejak

Vorlesung:         Freitags 10 - 12 Uhr - Takustraße 9,  SR 005

Übung:                Dienstags 10 - 12 Uhr - Takustraße 9,  SR 046

Zeitraum:           14.04.2009 bis 17.07.2009

KVV Seite:          https://www.mi.fu-berlin.de/kvv/course.htm?cid=7920&iid=1&sid=16

 

Terminhinweise:

Am Freitag, den 17. Juli 2009 findet keine Vorlesung statt.

 

Folgende Materialien sind nur aus den Campusnetzen der HU-, FU-, TU-Berlin und vom ZIB zugänglich.

Vorlesungsfolien / slides

Übungszettel / problem sets

Daten / Code

Prüfungstermine  

 

Inhalte der Folien

1.       Organizational Matters; Motivation and Introduction; Architectures I; Parallel vs. Distributed Computing; Introduction to Data Crunching with Map-Reduce

2.        Networks – Introduction; Protocol principles; Routing basics; Internet protocols; IP addressing

3.       Concurrency and operating systems (processes and threads); Interprocess communication; Sockets and their programming

4.       Message Passing Interface (MPI); Remote Procedure Call (RPC) fundamentals; Intro to Java RMI

5.       Java RMI – examples; Older RPC systems: SUN RPC and DCE RPC; CORBA;

6.       Web services; HTTP; XML-RPC; SOAP; REST; WSDL; .NET Remoting

7.       Verteilte Algorithmen; Modelle für synchrone Algorithmen; Leader Election: LCR, Timeslice, FloodMax, OptFloodMax

8.       Aufspannende Bäume – SynchBFS; kürzeste Wege - Variation von BellmanFord; Minimaler Aufspannender Baum - SynchGHS (synchron)

9.       Modellieren von asynchronen Systemen – I/O Automaten; Asynchrone Leader Election Algorithmen; Aufspannende Bäume – Asynchron; Logische Zeit – Einführung

10.   Logische Zeit: Happened-Before Relation; Lamport-Zeit; WelchTime Transformation; Vektoruhren; Algorithmus von Ricart und Agrawala (Anwendung der Lamport-Zeit); CountMoney – Illustration eines augenblicklichen globalen Schnappschusses

11.   Arten von fehlertoleranten Algorithmen; Robuste Algorithmen; Selbststabilisierende Systeme; Dijkstra‘s Token Ring – Algorithmus und Beweis der Selbststabilisation; Stabilisation zur Postconditions; Maximales Matching

12.   (noch unvollständig) Programmieren mit Actors in Scala; Globale Schnappschüsse: Chandy-Lamport Algorithmus

 

 

Literatur: 

·         [CDK] George Coulouris, Jean Dollimore, Tim Kindberg: Distributed Systems: Concepts and Design (4th ed.), Addison-Wesley, 2005.

·         [TS] Andrew S. Tanenbaum, Maarten Van Steen: Distributed Systems: Principles and Paradigms, Prentice Hall, 2006.

·         [W] Michael Weber: Verteilte Systeme, Spektrum Akademischer Verlag, 1998.

·         [L] Nancy A. Lynch: Distributed Algorithms, Morgan Kaufmann Pub., 1997.

·         [T] Gerard Tel: Introduction to Distributed Algorithms, Cambridge University Press, 2001.

 

Software und Manuals: 

·         [Hadoop] Apache Hadoop: http://hadoop.apache.org/

·         [Scala] The Scala Programming Language, http://www.scala-lang.org/

·         [Weka] Weka 3: Data Mining Software in Java, http://www.cs.waikato.ac.nz/ml/weka/