Inhalte: Einführung und Übersicht: Wozu verteilte Systeme? Problemfelder und Lösungsansätze. Kommunikationssysteme: Kommunikationsnetze, -dienste und -protokolle, Klassifizierung von Kommunikations- diensten, Kommunikationsdienste des Betriebssystems (Pipes, Message Queues, Sockets), Kommunikationsplatt- formen (PVM, MPI). 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).