• Keine Ergebnisse gefunden

Verteilte Systeme

N/A
N/A
Protected

Academic year: 2022

Aktie "Verteilte Systeme"

Copied!
22
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. Oliver Haase

Verteilte Systeme

Einführung

1

(2)

Definition

“A distributed system is a collection of independent

computers that appears to its users as a single coherent system.” - Andrew Tanenbaum

“A distributed system is a collection of independent

computers that are used jointly to perform a single task or to provide a single service.” - Kuz, Chakravarty, Heiser

Zu ambitioniert, heutiges Verständnis eher wie folgt:

(3)

Definition

3

Im Gegensatz zu einer zentralen Anwendung, die von einem oder mehreren Prozessen auf genau einem Rechner aus-

geführt wird, besteht eine verteilte Anwendung aus mehreren Prozessen, die – zumindest zum Teil – auf verschiedenen, mit-

einander vernetzten Rechnern laufen.

Prozess 1

Prozess 2

Rechner A

Prozess 3

Rechner B

(4)

Interaktion

Um ihre gemeinsame Aufgabe zu erfüllen, müssen diese

Prozesse miteinander interagieren, um Daten auszutauschen.

Es gibt 2 Interaktionsmuster:

1. Kooperation

2. Kommunikation

gemeinsame Daten Befehle

Prozess 1

Befehle Prozess 2

Daten

Befehle Daten

Befehle Daten

Prozess 1 Prozess 2

(5)

Interaktion

Kooperation symetrisch

Kommunikation asymmetrisch: 1 Sender, n Empfänger

Kooperation hauptsächlich verwendet für lokale Prozesse (shared memory)

es gibt aber auch verteilte Kooperation (Linda, JavaSpaces)

verteilte Kooperation intern durch Kommunikation realisiert

5

(6)

Typische Arten Verteilter Systeme

Webapplikationen

Gridcomputing

Cloudcomputing

Peer-To-Peer-Systeme

Die meisten modernen Anwendungen sind verteilt, zentrale Desktop-Applikationen sind vergleichsweise die Ausnahme.

(7)

Warum verteilen?

verteilte Aufgabe: Videokonferenzsystem, Internet-Telefonie, Fahrzeugleitsystem, ...

Robustheit, Zuverlässigkeit, Verfügbarkeit: redundante Datenkopien, Stand-by-Rechner

Teile müssen auf bestimmten Rechern laufen: spezielle Hardware, Zugriff auf entfernte Daten, Preispolitik

Wirtschaftlichkeit: mehrere schwächere Rechner billiger als ein stärkerer

7

(8)

Warum verteilen?

Nutzung brachliegender Ressourcen: Grid-Computing, seti@home (730 TFLOPS), <others>@home, BOINC- Plattform (6,3 PFLOPS)

Lastverteilung

verringerte Antwortzeiten bei Aufteilung einer Aufgabe in parallele Teilaufgaben

Manche Anwendungen müssen, andere können verteilt sein.

(9)

Aber...

Kommunikationskosten: €, Latenz (latency), Schwankungen (Jitter)

erhöhte Komplexität in allen Phasen des Software- Lebenszyklus’ (und damit noch mehr €)

9

...verteilte Systeme haben zusätzliche Kosten, nämlich...

(10)

erhöhte Komplexität

Entwurf:

Verteilungsmodell

Kommunikationsmechanismus, -protokolle

-

abhängig von Kanälen

-

können a priori unbekannt sein oder dynamisch variieren

-

ideal: adaptives System

(11)

erhöhte Komplexität

Implementierung

neue Fehlerquellen

-

Ausbleiben einer Antwort → Timer & Fehlerbehandlung

-

unerwartete Antwort → mögliche Fehlerquelle: zu kurze Timer

-

Fehlerbehandlung hängt vom Zusammenspiel der

Komponenten ab → z.B. Sender informieren & verteiltes Error Recovery anstoßen oder ignorieren

Nebenläufigkeit: Warten auf Nachricht (Antwort) in separatem Thread um Parallelitätsgrad zu erhöhen → erfordert Thread-Synchronisation

11

(12)

erhöhte Komplexität

Testen

Unit Tests: Simulation entfernter Komponenten inkl.

fehlerhaftem Verhalten sehr aufwändig

Integrationstests

-

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

(13)

erhöhte Komplexität

Debugging

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)

13

(14)

erhöhte Komplexität

Betrieb

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

(15)

erhöhte Komplexität

Versionierung und Konfiguration

i.a. unterschiedliche Versionierungszyklen für einzelne Komponenten → System muss in unterschiedlichen Konfigurationen laufen

erfordert Vorwärts- und Rückwärtskompatibilitäten (Server 3.0 kann Anfragen von Client 2.1 bearbeiten und muss

unbekannte Anfragen von Client 4.0 ignorieren)

Setzt Austausch von Versionsnummern in Kommunikationsprotokollen voraus

15

(16)

Entwurfsziele

Verteilungstransparenz

Skalierbarkeit

Entwurf eines verteilten Systems wird geleitet durch zwei Hauptziele:

(17)

Verteilungstransparenz

17

Bedeutung: Verteiltes System aussehen lassen wie lokales

Transparenz: System ist transparent bzgl. Eigenschaft, wenn diese für den Benutzer unsichtbar (transparent) ist

vollständige Verteilungstransparenz schwer erreichbar, aber:

keine binäre Eigenschaft, sondern verschiedene Transparenzaspekte

(18)

Verteilungstransparenz

Transparenz Bedeutung

Zugriffs- versteckt Unterschiede im Zugriff auf Daten Orts- verbirgt, wo sich eine Ressource befindet

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

verschoben werden kann

Replikations- verbirgt, dass mehrere Replika einer Ressource existieren

Persistenz- verbirgt Unterschiede zwischen persistenten und transienten

(19)

Skalierbarkeit

Neben der Verteilungstransparenz zweites wichtiges Entwurfsziel eines verteilten Systems.

Internet und World Wide Web: nicht denkbar ohne dezentrale, skalierbare Struktur ohne globale

Kontrollinstanzen.

19

Skalierbarkeit ist die Fähigkeit eines Systems, zu wachsen ohne wesentliche Anpassungen der verwendeten Algorithmen und

Protokolle.

(20)

Skalierbarkeit

Skalierbarkeit betrifft drei verschiedene Dimensionen:

Größe: Einfaches Hinzufügen neuer Komponenten

geographischen Verteilung: System funktioniert, egal ob

verteilt innerhalb einer Insitution, einer Stadt, eines Landes, eines Kontinentes oder über den Globus

administrativen Verteilung: System funktioniert auch bei Verteilung über administrative Domänen hinweg.

Für jede Dimension gibt es Hindernisse, die die Skalierbarkeit erschweren, sowie Techniken und Strategien, diese zu

(21)

Skalierbarkeit

21

Dimension Hindernis Vermeidungsstrategie zentral Dienste

Replikation / Verteilung Größe zentrale Daten Replikation / Verteilung zentrale Algorithmen dezentrale Algorithmen geographische

Verteilung Latenzzeiten Kommunikationreduktion durch

Vorverarbeitung, preemptive Fetches

asynchrone Kommunikation

administrative

Verteilung Sicherheitsrichtlinien Traversierungstechniken für restriktive Richtlinien verwenden

(22)

Zusammenfassung

Verteiltes System ist Zusammenfassung unabhängiger Rechner, die miteinander interagieren, um gemeinsame Aufgabe zu erledigen.

Interaktion → Kommunikation oder Kooperation

manche System können, andere müssen verteilt sein

Verteilte Systems sind komplexer in allen Phasen des Software-Lebenszyklus

wichtigste Entwurfsziele:

Verteilungstransparenz

Referenzen

ÄHNLICHE DOKUMENTE

– Repräsentieren eine (interaktive) Session für einen Client – Können nicht zwischen Clients geteilt werden. – Beenden mit

Ein User-Interface für Start und Auswertung, welches die zu faktorisierende Zahl entgegen- nimmt, an die Worker verteilt und das Ergebnis (= die vollständige Primfaktorzerlegung sowie

 Ressourcen stehen temporär nicht zur Verfügung.  Notwendigkeit

17 - Skizziere die Funktion eines Lanzenventils, das in einen Heizkörper eingebaut ist.. 18 - Welche Funktion erfüllt

Ich habe 10 Bücher mehr als in mein Bücherregal passen. Um dieses und ein weiteres Problem zu lösen verschenke ich die 10 Bücher an zwei meiner Bekannten, da mir nichts besser

Wahrscheinlichkeitstheorie für Informatiker und Lehramt GS Tutorium, WS 2013/14, M... Wahrscheinlichkeitstheorie für Informatiker und Lehramt GS Tutorium, WS

In jeder Spalte können wir die Verteilung der Basen auf Abweichungen von der &#34;normalen Basenverteilung&#34; in einer Sequenz untersuchen... W elche dieser Matrizen

fetus (tierpathogen) sind gramnegative Stäbchenbakterien, welche eine Infektion durch kontaminierte Lebensmittel (v.a. 500 Keime reichen aus, um sich