Inhalte:
Programmieren und Synchronisieren von gleichzeitig laufenden Prozessen, die auf gemeinsame Ressourcen zugreifen oder über Nachrichtenaustausch interagieren.
- Nichtsequentielle Programme und Prozesse in ihren verschiedenen Ausprägungen, Nichtdeterminismus, Determinierung
- Synchronisationsmechanismen: Sperren, Monitore, Wachen, Ereignisse, Semaphore
- Nichtsequentielle Programmausführung und Objektorientierung
- Ablaufsteuerung, Auswahlstrategien, Prioritäten, Umgang mit und Vermeidung von Verklemmung
- Koroutinen, Implementierung, Mehrprozessorsysteme
- Interaktion über Nachrichten
- Programmieren und Synchronisieren von gleichzeitig laufenden Prozessen, die über Nachrichtenaustausch interagieren
- Fernaufruftechniken
- Client-Server, Peer-to-Peer
- Parallelrechnen im Netz
- Koordinierungssprachen
- Verarbeitung auf dem Server und auf dem Client, Mobilität
- Middleware, strukturierte Kommunikation, statische und dynamische Schnittstellen
- Ereignisbasierte und strombasierte Verarbeitung
- Sicherheit von Anwendungen im Netzwerk
- Ausblick auf nichtfunktionale Eigenschaften (Zeit, Speicher, Dienstgüte)
Literatur:
- Principles of Concurrent and Distributed Programming. M. Ben-Ari. Addison-Wesley.
- Distributed Systems. Concepts and Design. Fifth Edition. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. Pearson.