Modern Concepts of Distributed Computing

Dozenten:Mutschler, C.; Otto, S.
Umfang:2 SWS (5 ECTS)
Voraussetzungen:

Anmeldung: per E-Mail an christopher.mutschler@fau.de
Scheinkriterien:

  • 45 Minuten Vortrag, Abgrenzung zu den anderen Themengebieten
  • Erstellen einer Ausarbeitung mit den wesentlichen Punkten des Vortrags (keine Folienkopien, ca 6-8 Seiten)
  • Anwesenheit bei den Vorträgen der anderen Teilnehmer
  • Fertigstellung der Folien bis spätestens einer Woche vor dem Vortragstermin, Fertigstellung der Ausarbeitung bis zum Ende des Semesters
Anmerkung:Anmeldung per E-Mail
Zielgruppe:WPF CE-BA-SEM (ab 2. Semester)
WPF CE-MA-SEM (ab 1. Semester)
WPF INF-BA-SEM (ab 2. Semester)
WPF INF-MA (ab 1. Semester)
WPF IuK-BA (ab 3. Semester)
WPF IuK-MA (ab 1. Semester)
Literatur:
  • Richard M. Fujimoto: Parallel and Distributed Simulation Systems (Wiley Series on Parallel and Distributed Computing), John Wiley & Sons
  • Pascal Felber, Christof Fetzer, Patrick Marlier, Torvald Riegel: Time-Based Software Transactional Memory. In TPDS 2008
  • Dave Dice, Ori Shalev, Nir Shavit: Transactional Locking II, In DISC 2006.
Inhalt:

Verteiltes Rechnen (Distributed Computing) vereint Techniken der Anwendungsprogrammierung wobei eine einzelne Anwendung über mehrere Prozesse verteilt ein gemeinsames Ergebnis berechnet. Programmteile werden also nicht nur auf einzelne Programmfäden (Threads), wie bei paralleler Programmierung, sondern auch auf weitere Rechenknoten verteilt, verteilte Programmierung. Diese Arbeitsverteilung, die Datenstromverteilung, Daten- bzw Dateizugriffe müssen koordiniert stattfinden. Hierfür stehen bereits generelle Konzepte aus der Informatik wie beispielsweise Remote Procedure Calls (RPC), Message Passing, oder Publish/Subscribe Services zur Verfügung. Nebenläufigkeits- und Threadingaspekte paralleler Programmierung sind oft auch auf die Verteilung über Rechenknoten hinweg gültig. Neuartige Programmiersprachen verwenden Teile dieser Konzepte nativ und können von Entwickler transparent benutzt werden.
Dieses Seminar soll die grundlegenden Konzepte sowie die aktuellen Trends im Bereich des verteilten Rechnens aufgreifen und somit einen Überblick über die Chancen sowie den Herausforderungen vermitteln. Da das Themenfeld sehr weit gefasst ist, sind eigene Themenvorschläge ebenfalls willkommen.

Die Vortraege finden am 13.07.2013 ab 10:00 in 04.150 statt!

Themen:

Thema Vortragender
0. Vorbesprechung Christopher Mutschler, Stephan Otto
Programmiersprachen und Methoden
1. Programmiersprachenunabhängige Paradigmen, Modelle, und Methoden Michael Mroz
2. Synchronization of Distributed Applications
3. Software Transactional Memory
4. Scala
5. Google Go Alexander Lupas
6. Erlang
7. Concurrency-Libs in .NET und Java Simon Grinjuks
8. Methods for Testing and Debugging of Distributed Applications
Verteiltes Datenmanagement
9. Distributed No-SQL Datastores: Übersicht und Vergleich
10. Distributed Algorithms in No-SQL Databases
11. Datenmodellierungstechniken für verteilten Datenbanken Krzysztof Mazur
12. Verteilte Dateisysteme
13. Bigtable: A Distributed Storage System for Structured Data
Frameworks
14. Apache Hadoop und MapReduce Andreas Grünwald
15. Redis
16. Apache Lucen Cosmin Bercea
17. Complex Event Processing
Praktische Umsetzung am Beispiel moderner Anwendungsarchitekturen
18. Twitter
19. Amazon EC2 Johannes Tenschert
20. Facebook

Evaluation

Die Ergebnisse der Evaluation gibt's hier.
watermark seal