Vorlesung Verteilte Systeme Übungsblatt 1
Aufgabe 1:
Erläutern sie einige der Vor- bzw. Nachteile von Thin-Client Lösungen.
Aufgabe 2:
Welche der folgenden Aussagen sind wahr oder falsch?
a) Das UDP-Protokoll ist ein verbindungsorientiertes Protokoll.
b) Die Java Socket-Klasse nutzt TCP als Übertragungsprotokoll.
c) Bei der UDP-Übertragung werden keine Portnummern benötigt.
d) Ein Server-Socket kann an mehrere IP-Adressen gebunden werden.
e) Die bind() C API-Funktion nutzt man, um sich von einem Client auf einen Server zu verbinden.
f) Manche Formen von Sockets erlauben Broadcast-Übertragung von Daten.
g) Die accept() C-API-Funktion nutzt man bei UDP-basierten Sockets, um Datenpakete zu empfangen.
h) Die Fehlerbehandlung der C Socket-API erfolgt durch Ausnahmebehandlung (Exceptions).
i) Binäre Datenstrukturen lassen sich transparent über Sockets übertragen.
j) Wenn ein Kommunikationspartner Daten von einem Socket liest, wird nach einer gewissen Timeout-Zeit automatisch das Lesen abgebrochen, wenn der andere Kommunikationspartner keine Daten mehr sendet.
Aufgabe 3:
Erläutern Sie die wesentlichen Unterschiede (Eigenschaften) zwischen paketorientierter und verbindungsorientierter Socketkommunikation.
Aufgabe 4:
a) Was müssen Sie in einem Protokoll alles spezifizieren, um die Kommunikation über Sockets einigermaßen zu definieren?
b) Wie können sie dabei das Problem der nicht binären Transparenz von Sockets leicht umgehen?
Aufgabe 5: (Programmieraufgabe)
a) Überlegen sie sich ein einfaches text-basiertes Datenformat, mit dem sie Wetterdaten (z.B. Temperatur, Druck und Luftfeuchtigkeit) von einer Wetterstation auf einen zentralen Server übertragen können, der diese Daten in einer Datenbank speichert.
Überlegen sie sich hierzu die Struktur einer Datenbanktabelle, um diese Daten zu speichern.
b) Schreiben sie dann einen UDP-basierten Server, der Daten in ihrem Format entgegennimmt, die Daten aus den Nachrichten extrahiert und optional in eine SQL- Datenbank, z.B. mySQL, einträgt.
c) Schreiben Sie weiter einen einfachen UDP-Client, der eine Wetterstation emuliert und periodisch (z.B. alle 10 Sekunden) Messwerte generiert und an den Server sendet.
d) Testen sie dann das Ganze mit einer Instanz des Servers und mehreren parallelen Wetterstation-Clients.