Client-Server-Architektur

Client-Server-Architektur

Das Client-Server-Modell beschreibt das Prinzip der Kommunikation zwischen zwei Teilnehmern in einem Netzwerk. Man spricht manchmal auch von einer Architektur, dem Prinzip oder einem Server-basierten Netzwerk.
Innerhalb der Kommunikation haben die beiden Teilnehmer unterschiedliche Rollen. In Protokollen ist der Ablauf der Kommunikation und der Interaktion definiert.

Die Interaktion zwischen Client und Server sieht vor, dass der Client eine Anfrage (Request) an den Server stellt. Der Server wertet die Anfrage aus und liefert eine Antwort bzw. die Daten zurück (Response oder Reply).

Server-basiertes Netzwerk

Die Kommunikation zwischen Clients gestaltet sich schwierig. Zu viele Widrigkeiten muss ein Kommunikationsprotokoll dabei berücksichtigen. Deshalb ist das Client-Server-Modell ein oft verwendetes Architekturkonzept, in dem der Server die zentrale Rolle spielt.
Man spricht dann von einem Server-basierten Netzwerk. Hier werden die Daten auf einem oder mehreren zentralen Computern, den Servern, gespeichert und verwaltet. Man spricht von dedizierten Servern, auf denen keine regulären Anwendungsprogramme, sondern spezielle Server-Software und -Dienste ausgeführt werden. Dabei muss der Server durchgängig laufen und immer verfügbar sein. Während dessen dürfen die Clients abgeschaltet werden.
Eine Kommunikation zwischen Clients sieht immer den Austausch von Informationen über den Server vor.

Client-Server-Betriebssystem

Client-Server-Betriebssystem

Sogenannte Netzwerk-Betriebssysteme sind darauf ausgelegt, dass die Kommunikation zwischen unterschiedlichen Prozessen in einem Client-Server-Modell abläuft. Das Client-Server-Modell ist eine Abstraktion, die sowohl für eine einzelne Maschine als auch für ein Netzwerk von Maschinen genutzt werden kann.

In der Praxis kann man dann den Client und den Server auf unterschiedliche Maschinen laufen lassen und über ein Netzwerk miteinander verbinden. Der Server kann dann ein zentraler Dienst in einem dezentralen Netzwerk sein, den sich mehrere Clients teilen.

Client-Server-Kommunikation

Client-Server-Kommunikation

Die Kommunikation zwischen Client und Server unterscheidet zwischen der Anwender- bzw. Benutzerseite und der Anbieter- bzw. Dienstleisterseite. Der Anwender betreibt auf seinem Computer Anwendungsprogramme (Client), die die Ressourcen des Servers auf der Anbieterseite zugreifen. Hier werden die Ressourcen zentral verwaltet, aufgeteilt und zur Verfügung gestellt.

Innerhalb eines Client-Server-Protokolls sieht die Interaktion zwischen Client und Server vor, dass zu einem Request immer auch ein Response gehört. Den Ablauf der Kommunikation kann man auf unterschiedliche Art und Weise gestalten.

  • Synchron: Bei einer synchronen Kommunikation stellt der Client seinen nächsten Request erst dann, wenn er den Response darauf erhalten hat.
  • Pipeline: Eine Variante davon ist die Pipeline. Der Client sendet mehrere Requests hintereinander. Er erwartet aber den Eingang der Responses.
  • Asynchron: Bei der asynchronen Kommunikation schickt der Client an den Server mehrere Requests. Die Responses kommen aber nicht in der selben Reihenfolge und auch zu unterschiedlichen Zeitpunkte beim Client an.

Client-Server-Protokolle

Der Ablauf einer Kommunikation bzw. die Interaktion zwischen Client und Server (Anfrage/Antwort) ist in einem Protokoll geregelt. Ein Client-Server-Protokoll sieht vor, dass immer nur der Client die Verbindung zum Server aufbaut, nie umgekehrt.

Viele Internet-Protokolle arbeiten nach dem Client-Server-Prinzip. Zum Beispiel HTTP und HTTPS für das World Wide Web oder SMTP, IMAP und POP für die E-Mail-Kommunikation. Im einfachsten Fall stellt der Client eine Anfrage (Request) an den Server. Der wertet die Anfrage aus und liefert eine Antwort (Response) bzw. die Daten zurück.

Typische Clients

  • Desktop-PC
  • Thin-Client
  • Notebook
  • Tablet
  • Smartphone

Typische Server

  • File-Server
  • Webserver
  • Mail-Server
  • Nameserver
  • Datenbank-Server
  • Proxy-Server

Serverless Computing

Serverless Computing ist ein weitgefasstes Konzept zur Nutzung und Bereitstellung von Anwendungen und Diensten aus der Cloud. Oft ordnet man die bereitgestellten Dienste auch Function as a Service (FaaS) zu.

Weitere verwandte Themen:

Teilen

Produktempfehlungen

Alles was Sie über Netzwerke wissen müssen.

Netzwerktechnik-Fibel

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!

Alles was Sie über Netzwerke wissen müssen.

Netzwerktechnik-Fibel

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!