Skizzieren / Beschreiben Sie das allgemeinste Modell einer Ende-zu-Ende-Kommunikation (z.B. nach Shannon-Weaver) und erläutern Sie die einzelnen Komponenten und Einflussfaktoren.
Im Modell nach Shannon-Weaver sollen Informationen von einem Sender an einen Empfänger über einen Übertragungskanal übertragen werden.
Komponenten:
Sender: Informationsquelle, gibt Nachricht mit Informationen (umgewandelt in Signal) auf Kanal
Kanal: über Kanal kann Signal übertragen werden (z.B. Licht, Kabel)
Störeinfluss: Übertragung kann durch verschiedene Störquellen (Noise Sources) beeinträchtigt werden
Empfänger: Adressat der Nachricht des Senders
Wie regeln Protokolle Synchronisation?
zustandsbehaftete Protokolle (z.B. Statuscodes)
Handshakes: stellen Verbindung sicher
Reihenfolge von Nachrichten kann über Sequenznummern erhalten werden
Warum ist es sinnvoll, Schichtenmodelle zu verwenden? Nennen Sie außerdem je 2 Vorteile und Nachteile.
Unterteilung in Schichten führt zu handhabbarer Komplexität aus Programmierersicht
Verantwortungsbereiche werden so isoliert, dass Sie dem Verhalten in der echten Welt nachempfunden werden, um das Verständnis zu erleichtern (Separation of Concerns)
Vorteile:
eine Schicht muss nicht die Details der Implementierung anderer Schichten kennen
Modularität vereinfacht Anpassung / Austausch einzelner Schichten
Nachteile:
erhöhter Overhead (fast jede Schicht fügt versendeter Nachricht einen eigenen Header hinzu)
Implementierung eines Schichtenmodells ist deutlich komplexer (mehr Protokolle)
Bei beliebten MMORPGs kommt es in den Startphasen bei der Erscheinung einer neuen Spielerweiterung oder eines neuen Spiels oft zu Problemen. Viele der Probleme scheinen auf einen hohen Andrang von Spielern zurückzuführen sein.
Handelt es sich dabei um ein Kommunikationsproblem und wenn ja, um welches? Erläutern Sie.
Wie könnte man dieses Problem ggf lösen? Erläutern und begründen Sie.
Problem des quadratischen Kommunikationswachstum:
jeder ist mit jedem verbunden
wenn viele Spieler auf derselben (neuen) Plattform: hoher Kommunikationsaufwand
lässt sich durch Methoden wie “Phasing” lösen (oder SPOF bei login queues)
Welche Parameterübergabe (call-by-reference, call-by-move, call-by-visit) schlafen Sie für die folgenden Problemstellungen vor?
ein Produktkatalog, der von verschiedenen Rechnern nebenläufig bearbeitet wird und dabei einen konsistenten Zustand behalten soll
auf einem Objekt mit Konstruktionsbezeichnungen über ein Elektroauto soll eine Folge von Operationen ausgeführt werden
ein Formulardokument soll von mehreren Instanzen an unterschiedlichen Orten in einer strikten Folge bearbeitet werden
call-by-reference:
alle Benutzer arbeiten auf derselben Objektinstanz => Sicherstellung einer konsistenten Bearbeitung
call-by-move:
lokale Bearbeitung, dann Weitergabe
Abwägen, ob Datenmenge bei Migration des Objektes nicht die Datenmenge übersteigt, die aus einem entfernten Aufruf der Methoden auf dem Objekt resultieren würde => dann call-by-reference
Weitergabe des Dokuments an nächsten Bearbeiter mit call-by-move bzw call-by-reference
call-by-move: ermöglicht lokale Verarbeitung
wenn Datenmenge des Dokuments zu groß: call-by-reference
In Client-Server-Systemen stellen zentrale Server oft einen Bottleneck dar. Superserver bieten einen Ansatz, wie dieses Problem zumindest in Teilen umgangen werden kann. Schlagen Sie vor, wie man einen Superserver verbessern könte, damit es nicht zu einem Single-Point-of-Failure kommt und beurteilen Sie, ob das immer möglich ist.
Superserver nimmt Anfragen entgegen und erzeugt Arbeiter, welche die Aufgaben abarbeiten
Aufgabenannehmer ist SPOF
Abhilfe: mehrere Superserver entnehmen Aufgaben aus einem Data Lake / mehreren Queues
ultimativer SPOF kann NIE ganz vermieden werden!
Erklären Sie den Einfluss von unterschiedlichen Graphtopologien auf die Anzahl maximal benötigter Nachrichten im Falle von simplen Broadcasts und einfacher Ende-zu-Ende-Kommunikation.
simpler Broadcast: allg max #Neighbours
Pfadgraph: 2
Sterngraph: n-1
vollvernetzt: n-1 (worst, best, avg)
Ende-zu-Ende:
Pfadgraph: n-1
Sterngraph: 2
vollvernetzt: 1
Welche Probleme können in vollvermaschten Netzen auftreten?
Broadcast Storms
bei iterativem Broadcast
alle Knoten erhalten von allen Knoten Nachricht und leiten sie an alle Knoten weiter
Kommunikationsaufwand wächst exponentiell bzw bricht irgendwann zusammen, weil sie die Kapazität des Netzes / der Knoten übersteigt
Welche Netzwerktopologien würden den höchsten / geringsten Kommunikationsaufwand (Gesamtzahl der Nachrichten) bedeuten?
simpler Broadcast:
geringster Aufwand: Pfadgraph (nur höchstens 2 Nachbarn)
höchster Aufwand: vollvermascht (n-1 Nachrichten)
Ende-zu-Ende-Kommunikation:
geringster Aufwand: vollvermascht (1 Nachricht, direkte Verbindung)
höchster Aufwand: Pfadgraph (im worst case n-1)
Begründen Sie, ob und warum es sinnvoller wäre, jeweils synchrone oder asynchrone Kommunikation zu verwenden:
Amazon Produktkatalog
World of Warcraft Multiplayer Spiel
Rundenbasiertes Online-Schach
Wettervorhersageseite
3D-Drucker-System
synchron: Blockierung nötig, da sonst evtl andere Produkte in anderer Sitzung ausverkauft werden (begrenzte Ressource vorhanden)
asynchron: Server soll nicht für alle anderen Spieler blockieren, wenn ein Spieler eine Aktion ausführt
synchron: Spieler A darf keinen Zug machen, wenn Spieler B am Zug ist
asynchron: wenn aktuelle Meldung zum Wetter vorhanden, wird die Information geliefert. Blockierung ist nicht nötig
synchron: Fehlermeldungen in Echtzeit, interaktive Steuerung nötig, …
Im Gespräch bittet die Firma Amerzon Sie, den Verteilten Produktkatalog der Firma im Hinblick auf das CAP-Theorem zu optimieren. Dabei sind die üblichen Erwartungen der Nutzer eines beliebten Onlineshops zu berücksichtigen.
Ordnen Sie die Parameter nach ihrer Wichtigkeit und begründen Sie, auf was die Firma besonders achten muss.
Availability:
Kunde muss responsiv einkaufen können, Katalog sollte nach Möglichkeit ständig abrufbar sein
Partitionstoleranz:
Shop basiert auf großem verteilten Netzwerk (für Verfügbarkeit); einzelne Stationen müssen auch getrennt voneinander noch antworten müssen, um verfügbar zu bleiben
Consistency: nicht so wichtig (aktualisierter Preis kann warten, Produkt kann auch nachträglich storniert werden)
Zuletzt geändertvor 10 Monaten