Einführung
Das Verständnis der Verteilungsplattformen setzt ein gewisses Vorwissen von Verteilten Systemen voraus. So behandelt diese Ausarbeitung als erstes die Grundlagen von Verteilten Systemen; anschließend widmet es sich der Definition von Verteilungsplattformen und deren Charakteristika. Abschließend wird eine vergleichende Analyse der gängigsten Komponentenmodelle aufgestellt.
Alle Darstellungen sind selbst entworfen.
Definition von Verteilten Systemen
Die Fachliteratur verwendet eine Vielzahl von Definition, die ungefähr folgendermaßen zusammengefasst werden können.
„Ein Verteiltes System ist ein informationsverarbeitendes System mit vernetzten autonomen Einheiten, welche mittels Nachrichtenaustausch ein (gemeinsames) Ziel verfolgen.“
Abbildung in dieser Leseprobe nicht enthalten
Der Begriff der autonomen Einheit ist bewusst abstrakt gewählt, weil man darin einerseits die physikalische Sicht, das heißt die Rechner, aber auch die logische Sicht auf Anwendungsebene, zum Beispiel gemeinsam kooperierende Prozesse, zu verstehen hat.
Der Gegenstand der Verteilung kann über Zustände hinaus auch Verhalten beinhalten. So ist die Verteilung und Bereitstellung von Programmlogik durch entsprechende Funktionen oder Prozesse ein wichtiges Merkmal.
Vorteile von Verteilten Systemen
Die Verstreuung autonomer Programmteile oder Daten über ein Netzwerk führt zu einer starken Dezentralisierung und je nachdem zu einem hohen Grad an Redundanz. Die Vorteile dieser Redundanz liegen in einer höheren Verfügbarkeit. Zu erledigende Aufgaben von Einheiten, die vorübergehend nicht funktionstüchtig sind, können auf andere Einheiten verlagert werden.
Die kooperative Arbeit von Einheiten insbesondere bei rechenintensiven Anwendungen resultiert in immenser Leistungssteigerung. Durch Parallelisierung der Prozesse kann Rechenleistung nahezu linear gesteigert werden.
Verteilte Systeme unterstützen die Abbildung wirtschaftlicher Prozesse und Kommunikationkanäle zwischen Unternehmen und Unternehmensbereichen. Durch Nachrichtenaustausch zwischen Rechnern können betriebliche Abläufe durch guten Datenfluss und der Vermeidung von Medienbrüchen effizienter durchgeführt werden. Diese Tatsache deckt sich auch mit der Forderung nach Wirtschaftlichkeit durch die Unternehmensziele.
Charakteristisch für Verteilte Systeme ist auch deren Skalierbarkeit. Bei Definition einheitlicher Schnittstellen lassen sich Teile des Systems ohne großen Aufwand anfügen, ersetzen oder entfernen. Mitunter gestalten sich solche Operationen sogar einfacher als auf manchen lokalen Systemen.
Nachteile von Verteilten Systemen:
Neben den Vorteilen hat die Verteilung aber auch eine Reihe von nachteiligen Effekten aufzuweisen. Je granulierter das Verteilte System nämlich gestrickt ist, desto mehr potentielle Fehlerquellen birgt das System als Ganzes. Denn mit jedem neuen Element vergrößert sich die Angriffsfläche und der Aufwand, Fehler oder Sicherheitslücken zu finden und zu beheben, sofern dies möglich ist.
Aus der Redundanz resultiert für die Datenverwaltung das Problem der Datenkonsistenz. Existieren Daten, die einen gleichen Sachverhalt modellieren, an mehreren Stellen im System, so ist im Falle einer Datenänderung an einer Stelle eine Aktualisierung an sämtlichen anderen Stellen vorzunehmen. Überschneiden sich jedoch Aktualisierungsvorgänge, kann es zu Konflikten oder Verfälschungen kommen.
Letztlich ist das Phänomen der Heterogenität in Verteilten Systemen gegenwärtig. Da sich verschiedenste Systeme im Bereich der Rechnerarchitekturen und auf Betriebs- und Anwendungsebene im Markt etabliert haben, werden die Stimmen einer Integration dieser immer lauter. Gerade Verteilte Systeme leiden aufgrund ihres integrativen Charakters an der Vielzahl von unterschiedlichen Technologien und Plattformen. Kommunikation, und das ist nichts neues, basiert nun mal auf Vereinbarungen (z.B. Sprache, Codierungsregeln, u.s.w.)
Das Klient/Server Modell
Um gängige Kommunikationsprozesse zu erfassen, hat sich das Klient/Server Modell besonders bewährt. Es sieht vor, allen Kommunikationsteilnehmern die Rolle eines Klienten oder eines Servers zuzuordnen. In diesem Zusammenhang stellt der Server dem Klienten bestimmte Dienste zur Verfügung, welcher ohne weiteres auch selber die Rolle eines Klienten einnehmen kann. Äquivalent zu Verteilten Systemen ist auch hier die Hardwareebene ebenso relevant wie die Softwareebene.
Abbildung in dieser Leseprobe nicht enthalten
Das Klient/Server Modell hat seine Ursprünge in der Mikro-Kernel Architektur, wo der Mikrokernel als Server fungiert und die Klientprozesse im Benutzermodus auf die Dienste des Kernels zugreifen. Man spricht auch häufig von dem aktiven und dem passiven Teil.
Klassifikation der Nachrichtenkommunikation
Der Nachrichtenaustausch zwischen zwei Kommunikationspartnern lässt sich grundlegend wie folgt klassifizieren:
- Mitteilungsorientierte Kommunikation
- Unidirektionale Nachrichtenversand
- Klassische Rollenverteilung in Quelle und Senke
- Der Nachrichtenempfang wird nicht bestätigt
- Auftragsorientierte Kommunikation
- Bidirektionaler Nachrichtenaustausch
- Beide Partner sind Quelle und Senke zugleich
- Empfänger quittiert den Empfang einer Nachricht an den Sender
- Synchrone Kommunikation:
- Sender wartet (bleibt passiv oder blockiert), bis Nachricht vollständig empfangen ist
- Asynchrone Kommunikation:
- Sender wartet nicht auf den vollständigen Empfang der Nachricht durch den Empfänger. Es kann beispielsweise schon eine zweite Verbindung aufbauen.
- Problem: Sender kann schneller Nachrichten schneller versenden, als der Empfänger empfangen kann. Lösung: Nachrichtenpuffer
- Sehr gut zur Parallelisierung in Verteilten Systemen geeignet, da Flaschenhälse umgangen werden
Fehlervarianten in der Kommunikation
Mit Blick auf die oben erwähnten Kommunikationsmechanismen ergeben sich mehrere Fehlerkategorien, die an dieser Stelle nicht fehlen dürfen.
- Nachrichtenverlust bei der asynchronen auftragsorientierten Kommunikation
Abbildung in dieser Leseprobe nicht enthalten
- Möglichkeiten:
- Klient nimmt an, dass die Auftragsnachricht verloren gegangen ist
- Ist die Auftragsnachricht tatsächlich verloren gegangen, so ist ein erneutes Verschicken nicht problematisch
- Ist aber die Ergebnisnachricht verloren gegangen, kommt es zu einer doppelten Auftragsanforderung
- Klient nimmt an, dass die Ergebnisnachricht verloren gegangen ist
- Ist die Ergebnisnachricht verloren gegangen, so ist das Nichtstun nicht weiter problematisch
- Ist die Auftragsnachricht jedoch verloren gegangen, so wurde der Auftrag nicht ausgeführt.
- Ausfall des Servers inmitten einer Transaktion
Abbildung in dieser Leseprobe nicht enthalten
- Wurde eine Transaktion zur Manipulation von Datenbeständen durchgeführt, so kann dies zur Verfälschungen der Daten führen; die Datenintegrität ist gefährdet
- Ausfall des Klienten
Abbildung in dieser Leseprobe nicht enthalten
- Auch hier können unter Umständen Daten verfälscht werden
- Man spricht von einem verwaisten Aufruf
Behandlung von Fehlern
Maßnahmen und Mechanismen zur Behandlung von Fehlern werden unter den sogenannten Fehlersemantiken zusammengefasst.
- Exactly-Once-Semantik
- Unvollständig ausgeführte Aufträge werden durch die Einführung atomarer Transaktionen verhindert
- „Die atomare Transaktion“ gibt in der Praxis leider nicht
- Maybe-Semantik
- Diese Variante wird auch als die „best-effort“ - Semantik bezeichnet. Sie beinhaltet keinerlei Sicherungsmaßnahmen
- Eine hohe Fehlerhäufigkeit ist vorprogrammiert
- At-least-Once-Semantik
- Im Falle eines Verlustes einer Nachricht wird diese wiederholt gesendet.
- Die Abfrage soll auf jeden Fall mindestens einmal ausgeführt werden
- Einzusetzen bei idempotenten Aufrufen
- At-Most-Once-Semantik
- Die Abfrage darf höchstens einmal ausgeführt werden
- Es bedarf an komplexer Mechanismen zur Erfüllung dieses strengen Kriteriums
Kommunikations- und Koordinationsmechanismen in Verteilten Systemen
Verteilte Systeme kann man auf unterschiedlichen Abstraktionsgraden realisieren. Meist entscheidet der Anwendungsbereich über die konkrete Ausprägung. Nachfolgend sind die Techniken aufgelistet.
- Message Passing
Abbildung in dieser Leseprobe nicht enthalten
- Dies ist die einfachste Form der Datenübermittlung. Es handelt sich um eine simple mitteilungsorientierte Nachrichtenübertragung.
- Die Übertragung findet synchron oder asynchron zwischen einem Klienten und dem Server statt.
- Quote paper
- Masroor Ahmad (Author), 2003, Grundlagen von Verteilungsplattformen, Munich, GRIN Verlag, https://www.grin.com/document/108109
-
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X.