Host-Architekturen

netplanet Werbung

Datenübertragung bedeutet immer Kommunikation zwischen zwei Systemen, um ein bestimmtes Ziel zu erreichen. Mit verschiedenen Host-Architekturen wird grundlegend die Arbeit zwischen beiden Kommunikationspartnern in einer Datenübertragung aufgeteilt. Die richtige Wahl einer Architektur ist in jedem Übertragungsprotokoll tief verankert.

Peer-to-Peer

Bei dieser Architektur kommunizieren Rechner gleichwertig miteinander (der Begriff "Peer" wird ins Deutsche mit "Gleichberechtigter" übersetzt). Peers arbeiten auf gleicher Protokollebene miteinander und jeder Peer arbeitet im Netzwerk sowohl als Server, als auch als Client. In der Regel nutzen alle Peers auch die gleiche Software, zumindest aber ein einheitliches Übertragungsprotokoll, das von Hause aus damit umgehen kann, dass das Peer-to-Peer-Netzwerk keine Zentrale kennt und die Knoten darin sich weitgehend selbst organisieren müssen.

Ein Peer-to-Peer-Netzwerk hat den Vorteil, dass darin kein zentraler, eigenständiger Server notwendig ist und die Datenverarbeitung bei geringer und mittlerer Belastung in der Regel sehr schnell und effizient ablaufen kann. Steigt jedoch die Last für einzelne Peers stark an, belastet dies sehr schnell das gesamte Netzwerk bis hin zum Totalausfall. Solche Ausfälle lassen sich auch nur sehr schwer steuern, da es keine zentrale Steuerinstanz in einem Peer-to-Peer-Netzwerk gibt, die eingreifen könnte. Gegen solche Phänomene gibt es verschiedene Lösungsansätze, beispielsweise mit so genannten „Superknoten“, die mehr organisatorische Informationen tragen und austauschen können und als eine Art „flexible Leuchttürme“ fungieren.

Peer-to-Peer-Netzwerke findet man häufig in Netzwerken, in denen der Betrieb eines zentralen Servers technisch oder auch rechtlich nicht möglich ist. Beispielsweise sind die meisten Musiktauschbörsen in einer Peer-to-Peer-Architektur aufgebaut (der häufig verwendete Begriff "P2P" ist nichts anderes als eine Abkürzung für "Peer-to-Peer") und damit technisch nur sehr schwer zu bekämpfen, da man eben nicht einfach nur einen Server ausschalten muss, sondern letztendlich viele einzelne Knoten. Die einzelnen Nutzer bieten Musikstücke an und können gleichzeitig von anderen Nutzern, die ebenfalls an der Musiktauschbörse teilnehmen, Musikstücke herunterladen.

Peer-to-Peer ist jedoch viel mehr als nur eine Architektur für mehr oder weniger legale Tauschbörsen. Müssen beispielsweise sehr große Daten zur Verfügung gestellt werden, ist ein einzelner Server oder auch eine Serverfarm schnell damit überlastet. Im Internet kennt man solche Phänomene beispielsweise dann, wenn von großen Softwareherstellern Updates veröffentlicht werden und Downloadserver kurz nach der Veröffentlichung kaum zu erreichen sind. Würde solche Software via Peer-to-Peer angeboten werden, können in so einem Netzwerk die Knoten, die schon einen Teil der Updatesoftware heruntergeladen haben, diese Teile auch selbst wieder anderen Knoten zur Verfügung stellen.

Auch in vielen kleinen Unternehmens- oder Heimnetzwerken ist Peer-to-Peer die übliche Architektur in der Zusammenarbeit. Der hier notwendige Datenverkehr zur Selbstorganisation der Gerätschaften untereinander wird dabei in Kauf genommen, da dieser Datenverkehr von den meisten Internet-Routern getrennt behandelt und nicht ins Internet weitergeleitet wird.

Client-Server

Architektur der so genannten verteilten Intelligenz, bei der der Rechner des Anwenders (der Client) für eine Anwendung das "Front End" bereitstellt und der Rechner des Anbieters (der Server) das "Back End". Der Server stellt also die Ressourcen zur Verfügung, die der Client zur Ausführung einer Aufgabe benötigt, die der Anwender an den Anbieter gestellt hat, der den Server betreibt.

Die Client-Server-Architektur hat den Vorteil, dass die Ressourcen gesammelt auf einem zentralen, dedizierten Server untergebracht werden können und den Clients zur Verfügung stehen. Die Idee dabei ist, dass der Server die rechenintensiven Vorgänge übernehmen soll, während der Client buchstäblich nur das Fenster für die Anwendung darstellen soll. die Bei hoher Belastung ist die Leistungsfähigkeit im Prinzip nur von der Belastungsgrenze des Servers abhängig. Eine solche Lösung ist also bei Bedarf relativ einfach (und Kosten sparend) erweiterbar. Allerdings ist eine Client-Server-Architektur insofern empfindlich, wenn der Server ausfällt, da ein Client ohne einen dazugehörigen Server keinerlei Funktion hat.

Die Client-Server-Architektur ist für viele neuere Internet-Protokolle die Basis ihrer Architektur, zum Beispiel für das World Wide Web mit seinem Transportprotokoll HTTP: Hier ist der Webbrowser der Client, der eine Anfrage des Benutzers an den entsprechenden Webserver sendet. Der Server interpretiert die Anfrage, und sendet den gewünschten Inhalt an den Client zurück, der diese dann entsprechend dem Benutzer anzeigt.
Im Normalfall fordert ein Client Daten von einem Server an. Es gibt jedoch zwei Ausnahmefälle:

  • Client-Push
    Hier ist der Übertragungsweg genau umgekehrt, der Client schickt Daten an einen Server. Dies ist zum Beispiel der Fall, wenn in einem Webbrowser ein Formular ausgefüllt und diese Daten an den Server übermittelt werden.
  • Server-Push
    Diese Ausnahme schert etwas aus der Client-Server-Architektur heraus, da hier ein Server unaufgefordert Daten an einen Client schickt, beispielsweise in Form eines Client-Programms, das nach dem Start regelmäßig Börsendaten von einem Server empfängt. Ein anderes Beispiel für Server-Push ist das so genannte Media Streaming. Der Benutzer fordert hierbei mit einem entsprechenden Client einen so genannten Stream ("(Daten)Strom") an, der dann an ihn so lange geliefert wird, bis er mit seinem Client eine Unterbrechungsanforderung schickt.

Client- bzw. Server-Push hat vor allem mit dem Aufkommen des Mobile Computing rasant an Fahrt aufgenommen. Viele Anwendungen auf Smartphones und Tablets sind so angelegt, dass sie weitgehend nur die Interaktion zum Benutzer übernehmen, alle anfallenden Datenbankinteraktionen dann aber auf die Server des Anbieters auslagern und – wenn überhaupt – Daten nur sehr kurzfristig lokal auf dem Gerät vorhalten. Zum einen werden so auch größere Datenbestände nutzbar, ohne dass diese jedes Mal komplett auf das mobile Gerät geladen werden müssen und zum anderen ist mit einer zentralen Speicherung von Daten auf einem Server erst eine regelmäßige Synchronisierung mit mehreren Geräten gleichzeitig möglich, ohne dass es zu asynchronen Datenbeständen kommt.

Während technisch ein Client- und Server-Push kein Problem darstellt, war es doch lange Zeit vor allem ein administratives; eine ständige Internet-Verbindung war teuer und Internet auch bei weitem nicht überall verfügbar. Heutzutage versorgen moderne Mobilfunknetze ganze Regionen flächendeckend mit leistungsfähigen Internet-Zugängen zu erschwinglichen Preisen, so dass über so Infrastrukturen Smartphones und Tablets problemlos ständig mit dem Internet verbunden sein und darüber Daten austauschen können.

Eine Weiterentwicklung des Server-Prinzips ist das so genannte Cloud Computing (siehe hierzu auch Cloud Computing - Datenwolken im Internet). Hier ist die Verarbeitung und Speicherung von Daten nicht mehr an einen physisch vorhandenen Server gebunden, sondern in einer "Wolke" von zur Verfügung gestellten Ressourcen. Dies wird bewerkstelligt durch eine Loslösung von Hard- und Software, in dem auf Cloud-Systemen das Betriebssystem nicht direkt auf der Hardware installiert ist, sondern auf einer dazwischen liegenden Softwareschicht. Dementsprechend flexibel können Anwendungen zwischen Servern und selbst zwischen Rechenzentren verschoben und bei Bedarf erweitert werden.

Mainframe-Architektur

Die Mainframe-Architektur ist das älteste Architekturschema in der Computerwelt und spiegelt die früheste Form der Computerstruktur wieder: Computer waren einst ungemein teure und voluminöse Großrechner, so genannte Mainframes, auf denen programmierte Applikationen ausgeführt werden konnten. Bedient werden Mainframes von so genannten Terminals aus, die in der einfachsten Form aus einem Bildschirm und einer Tastatur bestehen, die mit dem Mainframe verbunden sind. So ein Terminal ist die Ein- und Ausgabeschnittstelle zwischen Benutzer und Mainframe.

Wo sind die Unterschiede dieser Architektur zur Client-Server-Architektur? Nun, während ein Client mit allen Servern kommunizieren kann, die mit der erforderlichen Serversoftware versehen sind, stellen Mainframe und ein angeschlossener Terminal eine Einheit dar. Eingaben im Terminal werden direkt auf dem Mainframe verarbeitet und die Ergebnisse auf dem Terminal wieder angezeigt (in so einem Fall spricht man von "dummen" Terminals, in späteren Mainframe-Systemen waren Terminals auch in der Lage Vorberechnungen auszuführen). Es gilt aber das Prinzip, dass ein Mainframe nur über ein Terminal zu bedienen ist und dass ein Terminal ohne angeschlossenes Mainframe weitgehend nutzlos ist.

Der Vorteil der Mainframe-Architektur ist die Möglichkeit der zentralen Administration; Programme und Anwendungen müssen nur zentral auf dem Mainframe administriert werden, weil sie letztendlich auch nur dort verarbeitet werden. Dennoch gehört die Mainframe-Architektur weitgehend zur Computer-Historie, da sie für moderne Netzwerknutzung schlicht zu unflexibel und zu teuer ist.

Multi-Tier Architekturen

Tier-Architekturen ("Tier" ist hierbei der englische Begriff für Schicht, Ebene und wird genau wie das Tier ausgesprochen) sind Modelle, die den Aufbau von Schichtenmodellen in der Software-Architektur bezeichnen. Man spricht hierbei von 1-Tier-, 2-Tier- und 3-Tier- beziehungsweise Multi-Tier-Architekturen. 1-Tier und 2-Tier sind hierbei relativ einfach, da ersteres die Mainframe-Architektur und letzteres die Client-Server-Architektur bezeichnet. Sprich: Bei 1-Tier gibt es nur eine Ausführungsebene (eben nur die Verarbeitung auf dem Mainframe) und bei 2-Tier zwei Ebenen, bei der auf dem Client die Anwendungen (Anwendungsschicht) betrieben werden und auf dem Server die Daten gespeichert (Datenschicht).

Bei 3-Tier beziehungsweise Multi-Tier wird eine Anwendung in drei beziehungsweise mehrere Schichten aufgeteilt. Dies ist beispielsweise der Fall, wenn eine Applikation, die auf einer Client-Server-Architektur basiert, aus Gründen der Performanz serverseitig auf verschiedene Ebenen aufgeteilt wird. Häufig passiert dies server-seitig mit der Aufteilung einer Anwendung auf mehrere Komponenten, so dass eine server-seitige Anwendung auf einer Ebene betrieben wird, die notwendige Datenspeicherung aber auf getrennten Systemen, die eben auch nur zur Datenspeicherung eingesetzt werden.

Diese Art der Schichtentrennung hat neben der Lastverteilung auch Vorteile bei der räumlichen Verteilung von Daten, beispielsweise wenn Datenbestände in mehreren, räumlich voneinander getrennt stationierten Rechenzentren permanent synchron gehalten werden müssen oder eine global zur Verfügung gestellte Anwendung möglichst nahe beim Anwender betrieben werden soll.

Zusammenfassend betrachtet ist 3-Tier beziehungsweise Multi-Tier also eine Auffächerung einer Client-Server-Architektur, um auf diese Weise komplexe Applikationen in einzelne, technisch eigenständig laufenden Komponenten zu unterteilen und die betreffende Applikation dadurch performanter und ausfallsicherer zu gestalten. Von Multi-Tier wird übrigens häufig gesprochen, wenn damit eine Architektur mit mehr als zwei Schichten gemeint ist.

WERBUNG
Zum Beginn dieser Seite