...
-
- 1 / 62
-
Flashcards
- 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
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