Verteilte Systeme

ÜBERSICHT

1. Definition eines verteilten Systems
2. Verteilungstransparenz
3. Was spricht für verteiltes System?
4. Was spricht gegen ein verteiltes System?
5. Quellen

1. Definition eines verteilten Systems

Es gibt verschiedene Definitionen für ein verteiltes System. Folgende Definition ist nicht die schlechteste.

Man stelle sich ein Netzwerk, d.h. mehrer miteinander verbundene Rechner, vor. Die Rechner sind als Knoten dargestellt.

Forderung 1: Knoten sind durch ein Verbindungsnetzwerk miteinander verbunden.

Forderung 2: Jeder Knoten arbeitet unabhängig voneinander.
Bei Ausfall eines Knoten, können andere ungehindert weiterarbeiten.

Forderung 3: Jeder Knoten hat mindestens eine CPU und Speicher.
Damit kann jeder Knoten alleine arbeiten.

Forderung 4: Die Knoten haben keinen gemeinsamen Speicher.
Diese Forderung ist nötig, da sonst die Knoten nicht unabhängig wären.

Forderung 5: kein "single point of failure"
Zentralisierte Einheiten, können beim Ausfall das komplette Netz lahm legen.

Forderung 6: Verteilungstransparenz


2. Verteilungstransparenz

Unter Verteilungstransparenz sind folgende Transparenzstufen zusammengefasst:

Zugriffstransparenz
Auf lokale oder entfernte Objekte wird auf gleicher Weise zugegriffen.

Lokationstransparenz
Auf Objekte wird zugegriffen, ohne Wissen über deren Lokation.

Replikationstransparenz
Zugriff auf Objekte ohne Wissen über eventuell existierende Replikate.

Fragmentierungstransparenz
Auf Objekte wird ohne Wissen über eventuell vorliegende Fragmentierung zugegriffen.


3. Was spricht für ein verteiltes System?

Preis-Leistung
Es ist wesentlich preiswerter mehrere Rechner mit der Gesamtleistung L zu kaufen als einen einzelnen Großrechner mit der gleichen Leistung L.

Erweiterbarkeit
Ein verteiltes System kann leicht erweitert werden. Falls z.B. eine höhere Speicherkapazität gewünscht wird, so genügt es einen Datei-Server hinzuzufügen. Falls eine Erhöhung der Rechenkapazität gewünscht wird, so kann man Prozessoren (Rechner) hinzufügen.

Verfügbarkeit
Ein verteiltes System hat redundante Funktionen und Daten. Damit kann das System auch bei Ausfall von Komponenten noch verfügbar sein.

Skalierbarkeit
Durch Vermeidung von zentralisierte Komponenten (single-point-of-failure) und der Auswahl von geeigneten Algorithmen wird hohe Skalierbarkeit erreicht.

Zuverlässigkeit
Durch Redundanz und geeignete Recovery-Algorithmen kann ein hohes Maß an Zuverlässigkeit erreicht werden.


4. Was spricht gegen ein verteiltes System?

Falls die Vorteile eines verteilten System betrachtet werden, so kann man auch einen großen Nachteil von verteilten Systemen erkennen, nämlich seine Komplexität.

Vorher unabhängig betriebene Komponenten (Datenbanksysteme, Internet, Dateisysteme, usw.) müssen in einem verteilten System zusammenarbeiten. Außerdem können Fehler sich im Netzwerk fortpflanzen. So kann der Fehler einer Komponente zum Zusammenbruch des gesamten Systems führen. Durch die Systemgröße bedingte Auswirkungen können zum Versagen des verteilten Systems führen. Grund können Komponenten oder Algorithmen sein, die schlecht Skalierbar sind und zum Flaschenhals werden. Bei Ausfall eines Knoten, müssen fehlertolerante Systeme damit umgehen können. Das sind einige Gründe, warum ein verteiltes System komplexer ist als ein zentralisiertes System.

5. Quellen

[1] Skript Grundlagen Verteilte Systeme; Prof. Dr. Kurt Rothermel - Abteilung Verteilte Systeme an der Universität Stuttgart