Grundlagen und Architekturmodelle Verteilter Systeme

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 12,94 KB

Verteilte Systeme: Definition

Ein verteiltes System ist ein System aus Hard- und Software-Elementen, die über Nachrichten miteinander kommunizieren. Die Kommunikation erfolgt mithilfe von Übertragungstechniken über ein lokales oder entferntes (remote) Netzwerk.

Verteilte Anwendungen

Eine verteilte Anwendung ist eine Softwarekomponente, die auf verschiedenen Computern und sogar unterschiedlichen Architekturen läuft. Sie stellt die notwendigen Schnittstellen bereit, damit der Benutzer mit einem bestimmten System interagieren kann.

Schlüsselmerkmale Verteilter Systeme

Die wichtigsten Eigenschaften sind:

  • Heterogenität
  • Erweiterbarkeit
  • Sicherheit
  • Skalierbarkeit
  • Behandlung von Störungen (Fehlertoleranz)
  • Wettbewerb (Nebenläufigkeit)
  • Transparenz

Heterogenität

Die Heterogenität beschreibt die Vielfalt der Komponenten (Hardware, Software und Kommunikation), die in einem verteilten System realisiert werden können. Sie gilt für:

  • Netzwerke
  • Computer-Hardware
  • Betriebssysteme
  • Programmiersprachen
  • Implementierungen verschiedener Entwickler

Erweiterbarkeit

Die Erweiterbarkeit bestimmt, ob das verteilte System auf verschiedene Weise erweitert werden kann. Das System kann in Bezug auf Hard- oder Software-Erweiterungen als offen oder geschlossen betrachtet werden.

Sicherheit

Die Sicherheit trägt die Gesamtverantwortung für den Schutz von Daten und Ressourcen. Sie ist in drei Hauptkomponenten unterteilt:

  • Vertraulichkeit: Schutz vor unbefugtem Zugriff.
  • Integrität: Schutz vor Veränderung oder Korruption der Daten.
  • Verfügbarkeit: Schutz gegen Störungen, die den Zugriff auf Ressourcen verhindern.

Skalierbarkeit

Die Skalierbarkeit beschreibt die Wirksamkeit oder Performance eines verteilten Systems bei einer Erhöhung der Anzahl von Ressourcen und/oder der Anzahl der Benutzer. Sie beugt dem Überlaufen von Software-Ressourcen vor.

Behandlung von Störungen (Fehlertoleranz)

Dies bezieht sich auf verschiedene Techniken, Algorithmen und Verfahren zur Erkennung und Verhinderung von Ausfällen. Einige dieser Behandlungsansätze sind:

  • Fehlererkennung (z. B. Prüfsummen)
  • Maskierung von Ausfällen (z. B. Broadcast)
  • Fehlertoleranz (z. B. fehlertolerante Benutzer)
  • Failover (z. B. Rollback)
  • Redundanz (z. B. redundante Komponenten)

Wettbewerb (Nebenläufigkeit)

Dies bezieht sich auf die Möglichkeit des gleichzeitigen oder häufigen Zugriffs auf die Dienste, die von einem verteilten System angeboten werden.

Transparenz

Transparenz konzentriert sich darauf, den Betrieb der Komponenten eines verteilten Systems zu verbergen und dem Benutzer den Zugriff zu erleichtern, ohne die Details der internen Funktionen offenzulegen. Arten der Transparenz:

  • Zugriffstransparenz
  • Standorttransparenz (Lage)
  • Nebenläufigkeitstransparenz (Parallelität)
  • Replikationstransparenz
  • Ausfalltransparenz (vor Ausfällen)
  • Mobilitätstransparenz
  • Leistungstransparenz (Performance)

Architekturmodelle Verteilter Systeme

Die wichtigsten Architekturmodelle sind:

  • Softwareschichten (Software Layers)
  • Systemarchitekturen
  • Schnittstellen und Objekte

Definition Architekturmodelle

Architekturmodelle beziehen sich auf die Verteilung oder Platzierung der Elemente und die Beziehungen zwischen den Komponenten selbst.

Softwareschichten (Software Layers)

Dies bezieht sich auf die Strukturierung der Software als Schichten auf einem einzigen Computer.

Ebenen (Tiers)

Ebenen sind ein oder mehrere Prozesse, die sich auf denselben oder verschiedenen Computern befinden. Sie bieten Dienste an und fordern diese an.

Z

Plattform

Die Plattform ist die unterste Schicht. Sie bietet Dienste für die oberen Schichten an, wobei ihre Implementierung vom jeweiligen Computer abhängt.

Middleware

Middleware ist eine Softwareschicht, deren Zweck es ist, die Heterogenität zu maskieren und ein komfortables Programmiermodell für Anwendungsprogrammierer bereitzustellen.

Systemarchitekturen

Client-Server

Der Server kann sich auf demselben Computer wie der Client befinden oder auch nicht. Sowohl der Server als auch der Client können gleichzeitig aktiv sein.

Dienste von mehreren Servern

Server können die Menge der servicebasierten Objekte teilen und untereinander verteilen.

Proxy-Server und Cache

Ein Cache ist ein Repository von Datenobjekten, die kürzlich verwendet wurden.

Peer-to-Peer (P2P)

Alle Prozesse führen ähnliche Aufgaben aus und interagieren kooperativ als Gleichberechtigte, um eine Aktivität oder ein verteiltes Computing ohne Unterscheidung zwischen Clients und Servern durchzuführen.

Prozessschnittstelle (Process Interface)

Die Prozessschnittstelle ist die Spezifikation der Menge von Funktionen, die auf sie aufgerufen werden können.

  • In objektorientierten Sprachen kann die verteilte Verarbeitung objektorientiert konstruiert werden. Referenzen auf diese Objekte werden an andere Prozesse übergeben, die ihre Methoden aus der Ferne aufrufen können.
  • Dies ist der Ansatz, der von CORBA und Java RMI verfolgt wird.

Weitere Architekturmodelle

  • Mobile Code: Der wesentliche Anwendungscode wird als Agenten bezeichnet.
  • Mobile Agenten: Ein Programm, das sich über das Netzwerk von einem Computer zum anderen bewegt und dort eine Aufgabe ausführt.
  • Computer-Netzwerke (Grid/Cloud): Notwendige Anwendungssoftware wird von einem Remote-Server heruntergeladen.
  • Thin Clients: Der Client führt nur die Windows-basierte Oberfläche aus, während die Anwendung auf einem Remote-Server läuft, der oft sehr leistungsfähig ist (z. B. Multiprozessor-Cluster).

Anforderungen an die Architektur Verteilter Systeme

Performance (Leistung)

  • Reaktionsfähigkeit: Um gute Antwortzeiten zu erzielen, müssen die Systeme aus wenigen Softwareschichten bestehen und die Menge der übertragenen Daten muss gering sein.
  • Produktivität: Arbeit pro Zeiteinheit.
  • Lastverteilung (Load Balancing): Mehrere Server oder Computer hosten einen einzigen Dienst (z. B. über Applets).

Quality of Service (QoS)

  • QoS ist die Fähigkeit von Systemen, definierte Leistungsgrenzen zu erfüllen.
  • Die Erfüllung dieser Anforderungen hängt von der Verfügbarkeit der Ressourcen zum richtigen Zeitpunkt ab.

Aspekte der Zuverlässigkeit (Korrekte Funktionalität)

  • Richtigkeit
  • Fehlertoleranz
  • Sicherheit:
    • Vertraulichkeit
    • Integrität
    • Verfügbarkeit

Fehlertoleranz

Stabile Anwendungen sollten auch bei Störungen der Hardware, Software und Netzwerke weiterhin ordnungsgemäß funktionieren.

  • Dies wird durch Redundanz erreicht.
  • Für eine zuverlässige Kommunikation werden spezielle Protokolle und Techniken verwendet.

Sicherheit

  • Es muss sichergestellt werden, dass sensible Daten und andere Ressourcen nur auf Computern gespeichert werden, die effizient gegen Angriffe geschützt sind.

Fundamentale Modelle

Interaktionsmodell

Das Interaktionsmodell befasst sich mit der Leistung und der Schwierigkeit, Fristen in einem verteilten System einzuhalten.

Fehlermodell

Das Fehlermodell versucht, eine genaue Spezifikation der Ausfälle zu geben, die in Prozessen und Kommunikationskanälen auftreten können.

Sicherheitsmodell

Das Sicherheitsmodell beschreibt potenzielle Bedrohungen für Prozesse und Kommunikationskanäle.

Verwandte Einträge: