252-0213-00L  Verteilte Systeme

SemesterHerbstsemester 2014
DozierendeF. Mattern, R. Wattenhofer
Periodizitätjährlich wiederkehrende Veranstaltung
LehrspracheDeutsch


KurzbeschreibungVerteilte Kontrollalgorithmen (wechselseitiger Ausschluss, logische Uhren), Kommunikationsmodelle (RPC, synchrone/asynchrone Kommunikation, Broadcast, Ereignisse, Tupelräume), Middleware, Service- und Ressourcen-orientierte Architekturen (SOAP, REST), Sicherheit, Fehlertoleranz (Modelle, Consensus), Replikation (Primary Copy, 2PC, 3PC, Quorum-Systeme), Shared Memory (Spin Locks, Concurrency).
LernzielKennenlernen von wesentlichen Technologien und Architekturen verteilter Systeme.
InhaltWir geben eine Einführung in verteilte Systeme (Charakteristika und Konzepte) und diskutieren sodann verteilte Kontrollalgorithmen (Flooding-Verfahren, wechselseitiger Ausschluss, logische Uhren), Basis-Kommunikationsmodelle (Remote-Procedure-Call, Client-Server-Strukturen, synchrone und asynchrone Kommunikation), abstraktere Kommunikationsprinzipien (Broadcast, Ereignisse, Tupelräume), Namensverwaltung, Middleware und Techniken offener Systeme (z.B. REST, SOAP), Infrastruktur für spontan vernetzte Systeme (JINI), Cloud-Computing sowie Sicherheits- und Schutzmechanismen. Da partielle Systemausfälle charakteristisch für verteilte Systeme sind, werden auch Fehlermodelle und Fehlertoleranz-Algorithmen zum systematischen Umgang mit Fehlersituationen besprochen. Wir diskutieren dazu Fehlertoleranzaspekte (Modelle, Consensus, Agreement) sowie Replikationsaspekte (Primary Copy, 2PC, 3PC, Paxos, Quorum-Systeme, verteilter Speicher) und Probleme bei asynchronen Multiprozesssystemen (Shared Memory, Spin Locks, Concurrency). Parallel zur Vorlesung werden einige der Übungen in Form praktischer mehrwöchiger Aufgaben durchgeführt, wobei die Teilnehmer mit der Programmierung von mobilen Plattformen (smartphones) und nachrichtenbasierten Kommunikationsprinzipien vertraut werden.