Einführung Flashcards

1
Q

Welche 2 Interaktionsmuster können Prozesse nutzen um Daten zu Tauschen ?

A
  1. Kooperation: Prozesse Arbeiten auf gemeinsamen Daten

2. Kommunikation: Daten werden zwischen den Prozessen ausgetauscht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind typische Beispiele für Verteilte Systeme ?

A
  • Client-Server-Anwendungen (insbesondere Webapplikationen)
  • Peer-To-Peer-Systeme
  • Computer-Cluster
  • Cloud-Computing
  • Blockchains
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Warum nutzen wir verteilte Systeme bzw welche Vorteile bringt der nutzen von verteilten Systemen ?

A
  1. Aufgaben sind von Natur aus verteilt ( Videokonferenzsystem, Internet-Telefonie,
    Fahrzeugleitsystem)
  2. Robustheit, Zuverlässigkeit, Verfügbarkeit, Unstoppbarkeit, Ausführungsgarantie: redundante Datenkopien, Stand-byRechner
  3. Wirtschaftlichkeit: mehrere schwächere Rechner billiger als ein stärkerer
  4. Nutzung brachliegender Ressourcen
  5. Lastverteilung
  6. verringerte Antwortzeiten bei Aufteilung einer Aufgabe in
    parallele Teilaufgaben
  7. Erzeugung von Vertrauen durch Konsensmechanismen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welche zusätzlichen Kosten enstehen bei einem verteilten System ?

A
  1. Kommunikationskosten (€, Latenz (latency),
    Schwankungen (Jitter))
  2. erhöhte Komplexität (und damit noch mehr €)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Inwiefern äußert sich die Komplexität eines verteilten Systems bei dem Entwurf eines solchen Systems ?

A
  1. Entscheidung für ein Verteilungsmodell
  2. Entscheidung über Kommunikationsmechanisumus, -protokolle (ideal: adaptives System)
  3. Verwendung von dezentralen, komplexen Algorithmen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Inwiefern äußert sich die Komplexität eines verteilten Systems bei der Implementierung ?

A
  • Es enstehen neue Fehlerquellen:
    • Ausbleiben einer Antwort → Timer &
      Fehlerbehandlung)
    • unerwartete Antwort → evtl. zu kurze
      Timer
  • Nebenläufigkeit: Warten auf Nachricht (Antwort) in
    separatem Thread um Parallelitätsgrad zu erhöhen →
    erfordert Thread-Synchronisation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Inwiefern äußert sich die Komplexität eines verteilten Systems beim Testen ?

A
  • Unit Tests: Simulation entfernter Komponenten inkl.
    fehlerhaftem Verhalten sehr aufwändig
  • Integrationstest:
    • Setup bei geographisch weit verteiltem System
      aufwändig
    • verteiltes Logging und Systembeobachtung
      schwierig

kombinatorische Explosion möglicher verteilter
Konfigurationen und Plattformen → nur wichtigste
Kombinationen können getestet werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Inwiefern äußert sich die Komplexität eines verteilten Systems beim Debugging ?

A
  • Fehlerreproduktion bei geographisch weit verteiltem System aufwändig
  • Anhalten an Breakpoints unmöglich, wenn entfernte
    Komponenten auf Antwort warten (Time-Outs!)
  • Erfordert Änderung der entfernten Komponenten zum
    Zweck des Debuggings → kann Reproduzierbarkeit
    verhindern (Heisenbug)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Inwiefern äußert sich die Komplexität eines verteilten Systems beim Betrieb?

A
  • Ausfall eines zentralen Rechners oder von Teilen des
    Kommunikationsnetzes kann zu Störung oder Stillstand des ganzen Systems führen
  • viele Angriffspunkte, Komponenten prinzipiell von außen erreichbar, Kommunikationswege angreifbar
  • möglicherweise schadhafte oder bösartige Knoten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Inwiefern äußert sich die Komplexität eines verteilten Systems bei Versionierung und Konfiguration ?

A
  • unterschiedliche Versionierungszyklen für einzelne
    Komponenten → System muss in unterschiedlichen
    Konfigurationen laufen
  • erfordert Vorwärts- und Rückwärtskompatibilitäten
  • Setzt Austausch von Versionsnummern in
    Kommunikationsprotokollen voraus
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was sind die Hauptziele beim Entwurf eines verteilten Systems ?

A
  1. Verteilungstransparenz

2. Skalierbarkeit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was bedeutet Verteilungstransparenz ?

A

Verteiltes System aussehen lassen wie lokales

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist die Bedeutung der Zugriffstransparenz ?

A

versteckt Unterschiede im Zugriff auf Daten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist die Bedeutung der Ortstransparenz ?

A

verbirgt, wo sich eine Ressource befindet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist die Bedeutung der Migrationstransparenz ?

A

verbirgt, dass Ressource an anderen Ort verschoben werden kann

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist die Bedeutung der Relokationstransparenz ?

A

verbirgt, dass Ressource während der Benutzung an anderen Ort verschoben werden kann

17
Q

Was ist die Bedeutung der Replikationstransparenz ?

A

verbirgt, dass mehrere Replika einer Ressource existieren

18
Q

Was ist die Bedeutung der Persistenztransparenz ?

A

verbirgt Unterschiede zwischen persistenten und transienten Ressourcen

19
Q

Was ist die Bedeutung der Nebenläufigkeitstransparenz ?

A

verbirgt, dass konkurrierende Nutzer Ressource gleichzeitig benutzen

20
Q

Was ist die Bedeutung der Fehlertransparenz ?

A

verbirgt Ausfall und Wiederherstellung einer Ressource

21
Q

Was ist Skalierbarkeit ?

A

Skalierbarkeit ist die Fähigkeit eines Systems, zu wachsen ohne das wesentliche Anpassungen der verwendeten Algorithmen und
Protokolle vorgenommen werden.

22
Q

In welche Dimensionen kann ein verteiltes System skaliert werden ?

A
  1. Größe: Einfaches Hinzufügen neuer Komponenten
  2. geographischen Verteilung: System funktioniert, egal ob verteilt innerhalb einer Institution, einer Stadt, eines Landes, eines Kontinentes oder über den Globus.
  3. administrativen Verteilung: System funktioniert auch bei Verteilung über administrative Domänen hinweg.
23
Q

Nenne Hindernisse und Vermeidungsstrategien beim Skalieren einer Anwendung in der Größe

A

Hindernisse: zentral Dienste, zentrale Daten
Vermeidung: Replikation / Verteilung

Hindernisse: zentrale Algorithmen
Vermeidung: dezentrale Algorithmen

24
Q

Nenne Hindernisse und Vermeidungsstrategien beim Skalieren einer Anwendung in der geographischen Verteilung

A

Hindernisse: Latenzzeiten
Vermeidung: Kommunikationreduktion durch
Vorverarbeitung, preemptive Fetches, asynchrone Kommunikation

25
Q

Nenne Hindernisse und Vermeidungsstrategien beim Skalieren einer Anwendung in der administrativen
Verteilung

A

Hindernisse: Sicherheitsrichtlinien
Vermeidung: Traversierungstechniken für restriktive
Richtlinien verwenden