Prof. Dr. Jochen Rethmann
Hochschule Niederrhein
Fachbereich Elektrotechnik und Informatik
Reinarzstraße 49
47805 Krefeld
Fon: 0 21 51 / 8 22 - 46 33
Fax: 0 21 51 / 8 22 - 46 66
E-Mail: jochen.rethmann(at)hsnr.de
Letzte Änderung: 5.2.2020
Verteilte Systeme
Bachelor Informatik
3. Semester
Termine und Allgemeines im Wintersemester 2019/20
Eine Abgabe des Projekts ist auch im kommenden Semester noch möglich.
Voraussetzungen: |
Praktikum EPR |
Vorkenntnisse: |
C/C++-Programmierung, Betriebssysteme, Linux |
Vorlesung: |
Montag, 10:15 Uhr bis 12:00 Uhr, Raum F 303 |
Übung: |
Montag, 8:15 Uhr bis 9:45 Uhr, Raum B 120
Donnerstag, 10:15 Uhr bis 11:45 Uhr, Raum B 322
Mittwoch, 8:15 Uhr bis 9:45 Uhr, Raum B 120 |
Hinweise:
- zur Übung: Bringen Sie bitte ein Notebook oder Tablet mit.
- zur Klausur: Es sind keine Hilfsmittel zugelassen.
Inhalt
- Einführung
- Motivation
- Zielsetzung
- Konzepte
- Programmiermodelle und Entwurfsmuster
- Nachrichtenbasiert: Sockets
- Auftragsorientiert: RPC (remote procedure call)
- Objektbasiert: Java RMI und Corba
- Web-Services
- Architekturmodelle
- Client/Server-Strukturen
- Peer-To-Peer-Netzwerke
- Verteilte Algorithmen
- Logische Ordnung von Ereignissen
- Wechselseitiger Ausschluss (Konkurenzdienst)
- Wahlalgorithmen
- Konsensalgorithmen
- Dienste
- Namensdienst (DNS, DCE Directory Service)
- Verzeichnisdienst (LDAP)
- File-Dienst (NFS, DFS)
- Transaktionsdienst (2 Phase Commit Protocol)
- Zeitdienst (NTP)
- Sicherheit (SSL, Kerberos)
Literatur
- G. Coulouris, J. Dollimore, T. Kindberg:
Verteilte Systeme. Pearson Studium.
- A. Schill, T. Springer:
Verteilte Systeme. Springer Verlag.
- Günter Bengel:
Verteilte Systeme. Vieweg Verlag.
- Ulrike Hammerschall:
Verteilte Systeme und Anwendungen. Pearson Studium.
- A. Tanenbaum, M. van Steen:
Verteilte Systeme. Pearson Studium.
- P. Mahlmann, C. Schindelhauer:
Peer-to-Peer-Netzwerke. Springer Verlag.
- A. Tanenbaum:
Moderne Betriebssysteme. Pearson Studium.
- R. Stones, N. Matthew:
Linux Programmierung. MITP-Verlag.
Folien
aus dem letzten Jahr, aber immer noch aktuell:
vorgestellte Programme
- Paralleler Server in C++ mit Thread-per-Request Kommunikation:
socket.hpp,
socket.cpp,
tokenizer.hpp,
tokenizer.cpp,
dispatcher.hpp,
dispatcher.cpp,
client.cpp,
server.cpp
- Server in C++ mit Kommunikationsverwaltung durch select:
socket.hpp,
socket.cpp,
emitter.cpp,
receiver.cpp,
server.cpp
- ggT berechnen, Primzahltest und Get zum Auslesen einer Datei
mittel Remote Procedure Call:
Makefile,
ggT.x,
server.c,
client.c
- Java RMI:
Phonebook.java,
Server.java,
Client.java,
java.policy.test
- Java RMI mit Callback (alt):
IServer.java,
Server.java,
IClient.java,
Client.java,
java.policy.test
README
- Java RMI mit Callback:
IServer.java,
Server.java,
IClient.java,
Client.java,
README
- Das Adressbuch mittels
thrift,
RPC und
omniORB.
- XMLRPC
Übungen
Um die vielfältigen Kompetenzen zu erwerben, die die Gesellschaft
für Informatik von Informatikerinnen und Informatikern erwartet, soll
die Übung in Form eines Projektes durchgeführt werden.
Außerdem soll so der Lernprozess unterstützt werden.
Konfuzius:
Sage es mir, und ich vergesse es.
Zeige es mir, und ich erinnere mich.
Lass es mich tun, und ich verstehe es.
In den Übungen soll an den Projekten gearbeitet werden.
Probleme können in der Gruppe besprochen werden.
Projektvorschläge finden Sie hier.
Um das in der Vorlesung vorgestellte Wrapper-Konzept besser zu
verstehen, und um Sockets auch auf anderen Betriebssystemen als Linux
nutzen zu können, haben wir eine plattform-unabhängige Klasse
UniSocket implementiert. Informationen dazu finden Sie in dem
PDF-Dokument DokuUniSocket.pdf.
Die Klassen, Bibliotheken und Skripte zum Übersetzen der Beispiele
finden Sie in der Zip-Datei uniSocket.zip.
Leider sind keine GUI-Bibliotheksfunktionen in der Standardbibliothek
von C++ enthalten, und viele GUI-Bibliotheken sind sehr umfangreich und
daher nur mit viel Einarbeitungsaufwand erlernbar. Falls Sie in Ihrem
Projekt gerne eine GUI verwenden wollen, empfehlen wir Ihnen das
GUI-Framework fltk »Fast Light Tool Kit« zur Erstellung
von einfachen grafischen Benutzeroberflächen. In der Datei
DokuChatFltk.pdf finden Sie eine
Beschreibung und ein kleines Beispielprojekt
dazu.
zurück zur Startseite