Contents:

This course will introduce how to derive a formal model of distributed systems and will discuss challenges that lead to design principles.

The main topic of the course is the discussion and analysis of distributed algorithms for leader election, mutual exclusion, distributed snapshot, distributed resource allocation and distributed consensus.

 

 

 

Inhalt:

Einführung und Übersicht: Wozu verteilte Systeme? Problemfelder und Lösungsansätze. Kommunikationssysteme: Kommunikationsnetze, -dienste und -protokolle, Klassifizierung von Kommunikationsdiensten, Kommunikationsdienste des Betriebssystems (Pipes, Message Queues, Sockets), Kommunikationsplattformen (PVM, MPI).

Aufbauend auf den Inhalten von ALP IV werden wir vorwiegend Algorithmen für verteilte Systeme und deren Eigenschaften studieren. Wir sehen uns wichtige Eigenschaften verteilter Systeme an und Algorithmen für Leader Election, Resourcenzuteilung, verteilten Konsens und Konsistenz.

Die folgenden Themen werden am Rand einfließen, sind aber nicht Kern dieser Veranstaltung:

Netzdienste im Internet: Standarddienste, Fernerzeugung von Prozessen. Architektur verteilter Systeme: Datenfluss-Architektur versus Client/Server-Architektur versus verteilte Algorithmen. Verteilte Algorithmen: Zeit und Kausalität, Gruppenkommunikation, Auswahlalgorithmen, Sperrsynchronisation, Sondieren mit Echos, Routing im Internet.

Verteilte Datenverwaltung: Replikation, Konsistenz (verschiedene Varianten), Caching, verteilter virtueller Speicher, Object Caching, verteilte Transaktionen.

Fehlertoleranz: Terminologie und Fehlerklassifikation, Replikation mit Abstimmung (voting), Verteilte Übereinkunft, Byzantinische Fehler.

Verteilungsabstraktion: Fernaufrufe (Prinzipien, Java RMI, .NET Remoting), mobiler Code, mobile Objekte, replizierte Objekte. Verteilte Verzeichnisdienste (NIS, DNS). Middleware: Sun RPC, COMANDOS, COM/DCOM, CORBA, .NET, WWW, Webdienste, nachrichtenorientierte Middleware (IBM MQSeries, CORBA Notification Service, Java Message Service, SIENA).

 

Literatur

 

  • Nicola Santoro: Design and Analysis of Distributed Algorithms
  • Vijay K Garg: Elements of Distributed Computing.
  • A.S. Tanenbaum, M. v.Steen: Distributed Systems.
  • G. Coulouris et al.: Distributed Systems - Concepts and Design.
  • M. Weber: Verteilte Systeme

 

Zusätzliche Informationen

 

Voraussetzungen

Grundkenntnisse im Bereich Betriebssysteme