UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:      Semester:   
 
 Darstellung
 
Druckansicht

 
 
Modulbeschreibung (PDF)

 
 
 Außerdem im UnivIS
 
Vorlesungs- und Modulverzeichnis nach Studiengängen

Vorlesungsverzeichnis

 
 
Veranstaltungskalender

Stellenangebote

Möbel-/Rechnerbörse

 
 
Mathematik (Bachelor of Science) >>

Verteilte Systeme - V+Ü (VS-VU)5 ECTS
(englische Bezeichnung: Distributed Systems - L+E)
(Prüfungsordnungsmodul: Vertiefungsmodul Verteilte Systeme und Betriebssysteme)

Modulverantwortliche/r: Jürgen Kleinöder
Lehrende: Jürgen Kleinöder, Tobias Distler


Startsemester: SS 2015Dauer: 1 SemesterTurnus: jährlich (SS)
Präsenzzeit: 60 Std.Eigenstudium: 90 Std.Sprache: Deutsch

Lehrveranstaltungen:


Empfohlene Voraussetzungen:

Gute Programmierkenntnisse in Java

Inhalt:

Bestandsaufnahme, Beispiele Verteilter Systeme, Problembereiche

Eigenschaften Verteilter Systeme

  • Physikalische/logische Verteiltheit

  • Heterogenität, Nebenläufigkeit, Fehlerverarbeitung

  • Sicherheit, Offenheit, Skalierbarkeit, Transparenz

Architekturen Verteilter Systeme

Interprozesskommunikation und Fernaufrufe

  • Nachrichtenaustausch

  • IPC-Semantiken und -varianten

  • Fernaufrufe – Kommunikation und Semantikaspekte

  • Fernaufrufe – Parameterübergabe, Nachrichtenerstellung, Realisierungsaspekte

Verteilte Anwendungen und Middleware

Fehlertoleranz in Verteilten Systemen: Beispiel: FT-CORBA

  • Middleware und Replikationskonzepte

Multicast-Kommunikation

Zeit in Verteilten Systemen

  • Logische Uhren

  • Uhrensynchronisation

Verteilte Algorithmen

  • Synchronisation und gegenseitiger Ausschluss

  • Wahlverfahren

Inhalt der Übungen:
Fernaufrufsystem

  • Implementierung eines Java-RMI-ähnlichen Systems

(RMI als Anwender ausprobieren, Serialisierung in Java Threads und Synchronisierung in Java, (Dynamische) Generierung von Proxies, Rückruf/Callback, RPC-Semantiken, Replikation)

Lesen und Begutachten von Fachliteratur

Verteilte Algorithmen

  • Basisabstraktionen für verteilte Algorithmen

  • Implementierung einfacher verteilter Algorithmen

Lernziele und Kompetenzen:

Studierende, die das Modul erfolgreich abgeschlossen haben:

  • definieren charakteristische Merkmale und Eigenschaften eines verteilten Systems.

  • beschreiben grundlegende Probleme im Zusammenhang mit der Realisierung verteilter Systeme.

  • vergleichen unterschiedliche von verteilten Systemen bereitgestellte Transparenzeigenschaften.

  • stellen verschiedene Architekturelemente und -muster verteilter Systeme gegenüber.

  • erklären diverse Eigenschaften von Netzwerken und ihre Konsequenzen für die Entwicklung verteilter Systeme.

  • skizzieren unterschiedliche Methoden zur Abwicklung von Interprozesskommunikation sowie ihre Verwendung zur Realisierung von Fernaufrufen.

  • untersuchen die Unterschiede zwischen lokalen Methodenaufrufen und Fernmethodenaufrufen.

  • fassen die Grundlagen von Systemen mit verteiltem gemeinsamen Speicher zusammen.

  • vergleichen Ansätze zur Konvertierung von Nachrichten zwischen verschiedenen Datenrepräsenationen (XDR, sendeseitig, empfangsseitig).

  • beschreiben Methoden zur Behandlung verwaister Fernaufrufe.

  • konzipieren eine eigene auf Java RMI basierende Anwendung.

  • entwickeln ein eigenes Fernaufrufsystem nach dem Vorbild von Java RMI.

  • gestalten ein Modul zur Unterstützung verschiedener Fernaufrufsemantiken (Maybe, Last-of-Many) für das eigene Fernaufrufsystem.

  • beurteilen auf Basis eigener Experimente mit Fehlerinjektionen die Auswirkungen von Störeinflüssen auf verschiedene Fernaufrufsemantiken.

  • erläutern Aufbau und Funktionsweise von Middleware-Systemen am Beispiel CORBA.

  • klassifizieren Mechanismen zur Bereitstellung von Fehlertoleranz, insbesondere verschiedene Arten der Replikation (aktiv vs. passiv).

  • erklären die Realisierung diverser Fehlertoleranzmechanismen am Beispiel FT-CORBA.

  • entwickeln ein eigene aktiv replizierte Anwendung zur Erforschung der mit dieser Replikationsart verbundenen Problemstellungen (z.B. Determinismus).

  • illustrieren das Problem einer fehlenden gemeinsamen Zeitbasis in verteilten Systemen.

  • erforschen logische Uhren als Mittel zur Reihenfolgebestimmung.

  • vergleichen Methoden zur Synchronisation physikalischer Uhren (CNV, NTP).

  • unterscheiden grundlegende Zustellungs- und Ordnungsgarantien beim Multicast von Nachrichten.

  • gestalten ein Protokoll für den zuverlässigen und totalgeordneten Versand von Nachrichten in einer Gruppe von Knoten.

  • vergleichen Algorithmen zur Wahl eines Anführers auf verschiedenen Netzwerktopologien (Ring, Baum).

  • bewerten diverse verteilte Algorithmen zur Realisierung gegenseitigen Ausschlusses (z.B. zentraler Koordinator, Maekawa).

  • entwickeln einen Dienst zur Verwaltung verteilter Sperrobjekte auf Basis von Lamport-Locks.

  • bewerten die Qualität einer aktuellen Publikation aus der Fachliteratur.

  • erschließen sich typische Probleme (Nebenläufigkeit, Konsistenz) und Fehlerquellen bei der Programmierung verteilter Anwendungen.

  • können in Kleingruppen kooperativ arbeiten.

  • können ihre Entwurfs- und Implementierungsentscheidungen kompakt präsentieren und argumentativ vertreten.

  • reflektieren ihre Entscheidungen kritisch und leiten Alternativen ab.

  • können offen und konstruktiv mit Schwachpunkten und Irrwegen umgehen.

Literatur:

  • George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair. Distributed Systems: Concepts and Design. Addison Weslie, fifth edition, 2011.
  • Andrew S. Tanenbaum and Maarten van Steen. Distributed Systems: Principles and Paradigms (2Nd Edition). Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 2006.


Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan:

  1. Mathematik (Bachelor of Science)
    (Po-Vers. 2015w | Bachelorprüfung | Nebenfach Informatik | Vertiefungsmodule | Vertiefungsmodul Verteilte Systeme und Betriebssysteme)
Dieses Modul ist daneben auch in den Studienfächern "Informatik (Bachelor of Science)", "Informatik (Master of Science)", "Informations- und Kommunikationstechnik (Bachelor of Science)", "Informations- und Kommunikationstechnik (Master of Science)", "International Information Systems (IIS) (Master of Science)", "Mechatronik (Bachelor of Science)", "Mechatronik (Master of Science)" verwendbar. Details

Studien-/Prüfungsleistungen:

Verteilte Systeme (Vorlesung mit Übungen) (Prüfungsnummer: 649073)

(englischer Titel: Distributed Systems (Lecture with Exercises))

Prüfungsleistung, mehrteilige Prüfung, benotet
Anteil an der Berechnung der Modulnote: 100.0 %
weitere Erläuterungen:
Erfolgreiche Bearbeitung aller sechs Übungsaufgaben (Bewertung jeweils mit "ausreichend") und 20-minütige mündliche Prüfung.
Die Modulnote ergibt sich zu 100 % aus der Bewertung der mündlichen Prüfung.

Erstablegung: SS 2015, 1. Wdh.: WS 2015/2016
1. Prüfer: Jürgen Kleinöder

UnivIS ist ein Produkt der Config eG, Buckenhof