Client-Server-Architektur

Concept

Was ist das?

In einer Client-Server-Architektur ist die Logik (oder der Code), aus dem eine Anwendung besteht, auf zwei oder mehr Komponenten aufgeteilt: einen Client, der eine Aufgabe anfordert (z. B. die Gmail-Webanwendung, die in deinem Webbrowser läuft), und einen oder mehrere Server, die diese Aufgabe erfüllen (z. B. der Dienst "E-Mail senden", der auf den Computern von Google in der Cloud läuft). In diesem Beispiel werden ausgehende E-Mails, die du schreibst, vom Client (der Webanwendung, die in deinem Webbrowser läuft) an einen Server gesendet (die Computer von Google Mail, die deine ausgehenden E-Mails an die Empfänger weiterleiten).

Dies steht im Gegensatz zu eigenständigen Anwendungen (wie z. B. Desktop-Anwendungen), die die gesamte Arbeit an einem Ort erledigen. Ein Textverarbeitungsprogramm wie Microsoft Word kann zum Beispiel komplett auf deinem Computer installiert und ausgeführt werden.

Probleme, die damit gelöst werden

Eine Client-Server-Architektur löst eine große Herausforderung, die in sich geschlossene Anwendungen mit sich bringen: regelmäßige Aktualisierungen. Bei einer eigenständigen Anwendung müssten die Nutzer/innen für jedes Update die neueste Version herunterladen und installieren. Man stelle sich vor, man müsste den gesamten Produktkatalog von Amazon auf den eigenen Computer herunterladen, bevor man ihn durchsehen könnte!

Wie es hilft

Durch die Implementierung der Anwendungslogik in einem entfernten Server oder Dienst können die Betreiber diese aktualisieren, ohne die Logik auf der Client-Seite ändern zu müssen. Das bedeutet, dass Aktualisierungen viel häufiger vorgenommen werden können. Durch die Speicherung von Daten auf dem Server können viele Clients dieselben Daten sehen und gemeinsam nutzen. Betrachte den Unterschied zwischen einer Online-Textverarbeitung und einer herkömmlichen Offline-Textverarbeitung. Im ersten Fall liegen deine Dateien auf dem Server und können mit anderen Nutzern geteilt werden, die sie einfach vom Server herunterladen. In der alten Welt mussten die Dateien auf Wechselmedien (Disketten!) kopiert und an Einzelpersonen weitergegeben werden.