...


Henry Kingston
Diese Lernkarten behandeln verteilte Systeme auf Universitätsniveau und konzentrieren sich auf Themen wie Server, Clients, Threads, Ressourcen und Kommunikation. Sie decken die Dezentralisierung von Daten, Diensten und Funktionalitäten, Skalierbarkeit, Transparenz und die Verwendung von Java für Serialisierung ab. Besonders nützlich sind sie für Studierende und Entwickler, die sich mit verteilten Systemen und deren Implementierung in der Praxis auseinandersetzen möchten.
Cartes-fiches
62
Utilisateurs
1
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
12.04.2014 / 17.07.2014

Cartes-fiches

  • Erläutern sie die Unterschiede zwischen client und server?
    • Clients initiieren die Kommunikation
    • Server werten auf Clients
  • Laufzeit
    • Server sind dauerhaft verfügbar
    • Clients existieren idR nru zur Laufzeit der zugehöriger Applikationen
    • Beispiel: E-Mail-Programm, FTP-Client, Remote Desktop Verbindung
  • Rollen von Clients und Server können Wechseln

Asymmetrie: Clients sind aktiv und Server passiv

 

Beschreiben Sie das Request-Response-Modell

  • Server wartet auf anfrage
  • Client sendet anfrage
  • Server empfängt anfrage und verrichtet Dienst
  • Server sendet Antwort

Synchron: Client wartet auf Antwort

Asynchron: Client wartet nicht und wird vom Server über Verfügbarkeit Antwort benachrichtigt

Wie Sieht ein GET Request aus?

GET /website.html

HTTP/1.1

Host:

www.server.com

Welche Weiteren HTTP-Anfragen gibt es neben GET?

  • POST: Übermittlung von Daten an den Server 
  • HEAD: Wie GET, aber ohne eigentliche Übermittlung der Ressource 
  • PUT: Übermittlung einer Ressource an den Server 
  • DELETE: Löschen einer Ressource auf dem Server Verwendung bei REST oder WEBDAV 
  • TRACE: Server liefert eigene Anfrage zurück Wurde eigene Anfrage verändert (Debugging) 
  • OPTIONS: Liste mit unterstützten Methoden und Features 
  • CONNECT: Verwendung in SSL-Tunnels 

 

Wie funktioniert Authentifizierung?

  • Server: Statuscode "401 Unauthorized"
  • Client: Header mit WWW-Authenticate und User + Passwort (Base64-codiert) an Server

Was bedeutet Multi-Request?

Mehrere Request-Response-Paare pro Kommunikation -> Evtl. Verbindungskontext erforderlich (bsp: client zu server server zu server)

Was bedeutet Multi-Client?

Angebot eines Dienstes für nur einen Client idR nicht Sinnvoll

Server bedient mehrere Clients gleichzeitig

Wie können mit Multiplen Anfragen komplexe Dienste aufgebaut werden?

  • Server verwendet zu Beantwortung einer Client Anfrage weitere Dienste (Server wird zum client für anderen Server)
  • erhöhter Kommunikationsaufwand
  • Synchronisierungsaufwand bei gängiger gleichzeitiger Subienst-Ausführung

Nennen Sie Eigenschaften der Verteilung

  • Zugriff: Unterschiede in der Art des Datenzugriffs an verschiedenen Orten 
  • Benennung/Ort: Unterschiede in der Benennung der Daten an verschiedenen Orten 
  • Migration: Unterschiede beim Daten- oder Ressourcen-Transfer je nach Quell- und Zielort 
  • Relokation: Verschiebung von Ressourcen zwischen Orten während Zugriff 
  • Persistenz: Unterscheidung zwischen transienten und persistenten Daten 
  • Replikation: Unterschiede beim Zugriff auf Originale oder Datenkopien 
  • Fehler: Ausnahmebehandlung beim Datenzugriff an verschiedenen, insb. entfernten Orten 

 

Was versteht man unter Verteilungstransparenz?

System ist im Bezug auf Verteilung transparend wenn Eigenschaftsunterschiede für Anwener nicht wahrnehmbar sind (unsichtbar -> transparent)

Verteiltes System sieht aus wie lokales System

Wie kann Transparentz für die einzelnen Eigenschaften erreicht werden?

d

Nennen Sie Einflussfaktoren auf Transparenz

  • Zeitaufwand für Kommunikation
  • Unvorhersehbare Ausnahmen bei der Kommunikation
  • Kommunikationsgegenstelle antwortet nicht
    • Unterscheidung zw. langsamer od. ausgefallener Gegenstelle idR nicht möglich 
    • Massnahmen 
      • Mehrere Kommunikationsversuche 
      • Timer für Wartezeit mit langen Fristen 

Was ist ein Skalierbares System?

Lässt sich beliebig ausdehnen ohne Algorithmen, oder Protokolle zu ändern.

Welche Typen der Skalierbarkeit gibt es?

  • Größe: Erweiterung durch Komponenten oder Teilnehmer
  • Geographie: Erweiterung durch Standorte
  • Administration: Erweiterung durch administrative Domänen

Wieso sind Zentralisierte Elemente in verteilten Systemen ein Problem?

  • Zentraliesierte Elemente reduzieren die Größenskalierbarkeit

Welche Probleme hat man mit zentralen Daten, Diensten und Funktionalitäten?

  • Daten: Hoher lokaler Speicherbedarf, lange Bearbeitungsdauer bei anfragen, lokaler Flaschenhals bei Kommunikation
  • Diensten: Überlastung bei gleichzeitigem Zugriff
  • Funktionalitäten: Fehlendes Wissen über Gesamtsystem

Wie kann man zentrale Elemente in einem Verteilten System dezentralisiren?

  • Partitionierung
    • Aufteilung der Ressourcen auf verschiedene Rechner (einzelner rechner für Anfragen -> weiterleitung an rechner nach ressourcen)
  • Replikation
    • Prinzip: Replikation aller Ressourcen auf alle Rechner, jeder Rechner kann jede Anfrage beantworten

Was versteht man unter Server Load Balancing?

Dezentraler verteilungs ansatz mit mehreren Rechnern die jede Anfragen beantworten können. Eine Zentralinstanz ist Lastverteiler (Load Balancer)

Wie können Daten, Dienste und Funktionalitäten mit Replikation dezentralisiert werden?

  • Daten: Redundante Speicherung von Daten
  • Dienste: Mehrfachangebot von Diensten (beinhaltet idR Daten-Replikation)
  • Keine Lösung, da replizierte Funktionen i.A. nicht addressierbar oder auffindbar sind

Wie können zentralisierte Daten, Dienste und Funktionen in einem verteiltem System dezentralisiert werden?

  • Daten: Partionierung der Daten auf verschiedenen Rechnern -> Lastverteilung und Datenspeicherung nahe am Zugriffsort
  • Dienste: Dienstaufteilung auf verschiedene Rechner (beinhaltet idR Daten-Verteilung)
  • Funktionen: Einzelne Funktionskomponenten auf verschiedenen Rechnern haben nur eingeschränkte Sicht (bsp routing algorithmen -> zentrale Verfahren kennen gesamtes Netz, dezentrale Verfahren kennen nur anligende)

Welche Probleme treten bei geografischer Skalierung auf?

  • Latenz: Verlängerung der Übertragungswege erhöht Kommunikationsdauer
  • Nachrichtenreplikation: Multicast oder Broadcast überflutet immer mehr Teilnehmer und überlastet Gesamtsystem

Wie können die Probleme bei Geographischer Skalierung gelöst werden?

  • Vorverarbeitung
    • Gemeinsamer Versand mehrerer Anfragen
    • Kein Versand inkorrekter Anfragen -> Validierung vor Versand
    • Nachrichtenreplikation nur im lokalen Umfeld
  • Ausnutzen von Wartezeiten: Asynchrone Kommunikation reduziert Wartezeiten auf Antworten

Study