Unter Verteilten Systemen verstehen wir vernetze Rechnerressourcen, die miteinander kooperieren. Ein klassisches Interaktionsmuster ist das Client-Server-Computing. Dieses finden wir in lokalen Netzen zwischen Client und Fileserver, aber auch im Internet bei Webapplikationen wie Suchmaschinen und sozialen Netzwerken. Voraussetzung für die Interaktion ist jeweils die Möglichkeit der Kommunikation zwischen den Rechnerressourcen. Neben dem Client-Server-Computing hat sich auch das P2P-Computing als erfolgreiches Interaktionsmuster durchgesetzt. Aktuelle Erscheinungsformen der Verteilten Systeme finden wir auch im Cloud Computing, sowie in Sensornetzen bis hin zum IoT.


Die Vorlesung behandelt Kommunikationsmodelle für Verteilte Anwendungen (socketbasierte Kommunikation, RPC, REST, Publish-Subscribe), Konzepte verteilter Dateisysteme, verteilte Algorithmen, Synchronisationsverfahren für verteilte Anwendungen sowie Konzepte zur Lastverteilung in Hochverfügbarkeits-Clustern wie Google.