SoSe 2014













Submodulnummer Veranstaltungsform Name LP SWS / Prüfungsdauer
0086cA.1.5.1 Vorlesung Nichtsequentielle und verteilte Programmierung 0 4.0
0086cA.1.5.2 Übung Nichtsequentielle und verteilte Programmierung 0 2.0
0086cA.1.5.3 Modulprüfung Nichtsequentielle und verteilte Programmierung 9 120 min
Zugangsvoraussetzungen: Erfolgreiche Absolvierung des Moduls Objektorientierte Programmierung für Studentinnen und Studenten mit Programmierkenntnissen oder des Moduls Objektorientierte Programmierung für Studentinnen und Studenten ohne Programmierkenntnisse Qualifikationsziele: Die Studentinnen und Studenten verstehen die Grundbegriffe der nichtsequentiellen und verteilten Programmierung mit gemeinsamen Speicher und Nachrichtenaustausch. Sie können und verteilte Programme mit Prozessen/Threads/aktiven Objekten geeignet strukturieren und durch geeignete Synchronisationsverfahren unerwünschte nichtdeterministische Effekte sowie Verklemmungen vermeiden. Sie kennen und verstehen Sicherheitsrisiken, die in nichtsequentiellen Programmen entstehen können und können Methoden einsetzen, diese zu vermeiden. Sie können Eigenschaften von Prozessen und Threads formal spezifizieren und diese exemplarisch verifizieren. Die Studentinnen und Studenten können relevante Interaktionsparadigmen wie Client/Server und Peer-to-Peer unterscheiden und eigene Anwendungen nach diesen Paradigmen geeignet einordnen und verteilte Systeme auf der Basis von Interprozesskommunikation und Fernaufrufen konstruieren. Sie können Webanwendungen, Kunde/Dienstleister-Anwendungen, Peer to Peer Anwendungen geeignet entwerfen, strukturieren und realisieren und verteilte Systeme mit Hilfe geeigneter Middleware entwickeln.

Inhalte: Programmieren und synchronisieren von gleichzeitig laufenden Prozessen, die auf gemeinsamen Speicher 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, Sicherheitsaspekte von Anwendungen im Netzwerk - Programmieren und synchronisieren von gleichzeitig laufenden Prozessen, die über Nachrichtenaustausch interagieren. - Fernaufruftechniken - Client-Server, Peer-to-Peer - Parallelrechnen im Netz - Koordinierungssprachen, Orchestrierung, Choreographie - 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, Absicherung der Protokolle - Ausblick auf nichtfunktionale Eigenschaften (Zeit, Speicher, Dienstgüte)