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.

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.

Peer-to-Peer-Netzwerke findet man häufig in Netzwerken, in denen der Betrieb eines zentralen Servers technisch oder 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 kaum verwundbar. Die einzelnen Nutzer bieten Musikstücke an und können gleichzeitig von anderen Nutzern, die ebenfalls an der Musiktauschbörse teilnehmen, Musikstücke herunterladen.

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.

Mainframe-Architektur

Die Mainframe-Architektur ist das älteste Architekturschema in der Computerwelt und spiegelt die früheste Form der Computerstruktur wieder: Computer sind ungemein teure und voluminöse Großrechner, so genannte Mainframes, auf denen programmierte Applikationen ausgeführt werden. Bedient werden diese Mainframes von so genannten Terminals, 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).

Der Vorteil der Mainframe-Architektur ist die Möglichkeit der zentralen Administration; Programme und Anwendungen müssen nur zentral auf dem Mainframe administriert werden. Der Nachteil ist bei so einem System jedoch ähnlich, wie in einer Client-Server-Architektur: Ein Ausfall des Mainframes bedeutet auch den sofortigen Ausfall der Terminals.

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.

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. Ist beispielsweise in einer 2-Tier-Architektur der Server sowohl der Ort für die Verarbeitung der Daten, die von einem Client geliefert werden, als auch der Ort, wo diese Daten gespeichert werden, können diese beiden Vorgänge in einer 3-Tier-Architektur auf zwei unterschiedliche Schichten verteilt werden; einem Server, der für die Ausführung der Applikation zuständig ist und ein Server, der ausschließlich Daten speichert und dem Applikationsserver zur Verarbeitung bereithält.

Zusammenfassend betrachtet ist 3-Tier beziehungsweise Multi-Tier also eine Auffächerung einer Client-Server-Architektur, um auf diese Weise komplexe Applikationen in einzelne 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

Depot
Produktinfos für das kostenlose Direkt-Depot bei Deutschlands beliebtester Bank.

Zum Beginn dieser Seite