Eine Client-Server-Architektur ist eine Systemarchitektur für verteilte Anwendungssysteme bei der Subsysteme („Server“) bestimmte Dienste anbieten, die von anderen Subsystemen („Clients“) nutzbar sind.
Begriffsbestimmung
Folgende Merkmale zeichnet eine Client-Server-Architektur aus [Rautenstrauch, Schulze 2002, S. 177f.; Schmitt 1993, S. 38f.]:
-
Das Anwendungssystem wird in mindestens zwei Subsysteme aufgeteilt.
-
Mindestens ein Subsystem bietet über eine Schnittstelle verschiedene Dienste an. Diese Subsysteme werden Server genannt.
-
Mindestens ein Subsystem fragt die Dienste nach, die von Servern angebotenen werden. Diese Subsysteme werden als Clients bezeichnet.
-
Die Kommunikation zwischen einem Client und einem Server erfolgt nachrichtenorientiert und wird über Protokolle geregelt.
-
Die Nutzung der Dienste eines Servers geht immer vom Client aus. Der Server kann eigenständig entscheiden, welche Nutzungsanfragen in welcher Reihenfolge bearbeitet werden.
Interaktionen bei einer Client-Server-Architektur
Abbildung 1 veranschaulicht eine typische Interaktionsfolge zwischen einem Client und einem Server [Niemann 1999]:
-
Auftrag: In einem ersten Schritt erteilt ein Client einem Server einen Auftrag zur Bearbeitung durch einen Dienst.
-
Bearbeitung: Nachdem der Server den Auftrag entgegen genommen hat, wird dieser vom Server bearbeitet.
-
Antwort: Nach Bearbeitung des Auftrags wird ein eventuelles Ergebnis an den Client zurückgemeldet.
Abb. 1: Interaktionen bei einer Client-Server-Architektur
Besonderheiten
Bei einer Client-Server-Architektur werden die verschiedenen Subsysteme häufig auf unterschiedliche Rechner verteilt, die über ein Netzwerk verbunden sind. Laufen auf einem Rechner ausschließlich Clients (Server) wird dieser Rechner auch als dedizierter Client (Server) bezeichnet. Insbesondere im praktischen Sprachgebrauch werden die Termini „Client“ bzw. „Server“ häufig im Sinne eines dezidierten Clients bzw. dezidierten Servers gebraucht.
Eine Client-Server-Architektur wird als mehrstufig bezeichnet, wenn ein Server seinerseits wiederum Dienste eines weiteren Servers benötigt. In diesem Fall tritt das entsprechende Subsystem sowohl in der Rolle eines Servers als auch in der Rolle eines Clients auf.
Literatur
Niemann, Klaus D.: Client/Server-Architektur – Organisation und Methodik der Anwendungsentwicklung. Vieweg : Wiesbaden, 1999.
Rautenstrauch, Claus ; Schulze, Thomas: Informatik für Wirtschaftswissenschaftler und Wirtschaftsinformatiker. Springer : Berlin et al., 2002.
Schmitt, Hans-Jochen: Client-Server Architekturen – Architekturmodelle für eine neue informationstechnische Infrastruktur. Lang : Frankfurt a. M. et al., 1993.