Katalog
concept#Architektur#Softwareentwicklung#Integration#Plattform

Client–Server-Modell

Architekturmuster, das Systeme in Clients (Anforderer) und Server (Dienstleister) trennt, mit klaren Zuständigkeiten für Präsentation, Verarbeitung und Speicherung.

Das Client–Server-Modell trennt vernetzte Anwendungen in Dienstanbieter (Server) und Anforderer (Clients) und definiert Rollen für Verarbeitung, Speicherung und Darstellung.
Etabliert
Mittel

Klassifikation

  • Mittel
  • Technisch
  • Architektur
  • Fortgeschritten

Technischer Kontext

API-Gateways und Reverse ProxiesAuthentifizierungsdienste (OAuth, OpenID Connect)Monitoring- und Observability-Tools

Prinzipien & Ziele

Klare Trennung von Anliegen (Separation of Concerns) zwischen Client und Server.Schnittstellen explizit und stabil gestalten (Versionierung).Zentralisierung von sensiblen Geschäftsregeln und Daten auf dem Server.
Umsetzung
Unternehmen, Domäne, Team

Use Cases & Szenarien

Kompromisse

  • Überlastung zentraler Dienste bei Traffic-Spitzen.
  • Tight coupling durch unsaubere API-Designs.
  • Sicherheitslücken am Server haben breite Auswirkungen.
  • API-Versionierung und rückwärtskompatible Änderungen sicherstellen.
  • Serverseitige Validierung und Autorisierung zentral implementieren.
  • Caching und CDNs zur Entlastung des Servers nutzen.

I/O & Ressourcen

  • Anforderungsprofil und Nutzungsstatistiken
  • Spezifikation der API-Endpunkte
  • Skalierungs- und SLA-Anforderungen
  • Definierte Client‑Server-Schnittstellen
  • Betriebsreife Serverkomponenten
  • Monitoring- und Alerting-Metriken

Beschreibung

Das Client–Server-Modell trennt vernetzte Anwendungen in Dienstanbieter (Server) und Anforderer (Clients) und definiert Rollen für Verarbeitung, Speicherung und Darstellung. Es bildet die Grundlage vieler Internet- und Unternehmensanwendungen, erlaubt zentrale Ressourcenverwaltung und unabhängige Weiterentwicklung der Clients. Es beeinflusst Entscheidungen zu Skalierung, Ausfallsicherheit und Protokollwahl.

  • Einfache Verantwortungszuweisung zwischen Komponenten.
  • Ermöglicht zentrale Skalierung und Sicherheit.
  • Clients können schlank gehalten und unabhängig weiterentwickelt werden.

  • Single Point of Failure bei zentralen Servern ohne Redundanz.
  • Skalierung kann komplex und kostspielig werden (Datenbank, Serverstate).
  • Netzwerk-Latenz beeinflusst wahrgenommene Performance der Clients.

  • Antwortlatenz (p95)

    Messung der 95. Perzentil-Latenz für Serverantworten an Clients.

  • Fehlerrate (HTTP 5xx)

    Anteil von Serverfehlern, die Clients beeinträchtigen.

  • Durchsatz (Requests pro Sekunde)

    Anzahl verarbeiteter Anfragen pro Zeiteinheit.

Typische Web-Architektur (Browser ↔ API-Server)

Browser-Clients verwenden HTTP-APIs eines zentralen Servers, der Datenbank und Geschäftslogik hostet.

E-Mail-System (Mail-Client ↔ Mail-Server)

E-Mail-Clients kommunizieren mit Mail-Servern (IMAP/SMTP) zur Nachrichtenverwaltung und Zustellung.

Datenanalyse-Tool mit zentraler Verarbeitungsinstanz

Leichte Analyse-Clients senden Aufgaben an einen leistungsfähigen Server, der Aggregation und Speicherung übernimmt.

1

Architekturziele und Anforderungen erfassen.

2

Schnittstellendesign (API) und Versionierungsstrategie definieren.

3

Serverkomponenten implementieren, testen und deployen.

4

Monitoring, Logging und Ausfallsicherheitsmechanismen einführen.

⚠️ Technische Schulden & Engpässe

  • Enge Kopplung zwischen Servermodulen ohne Abstraktion.
  • Unzureichend versionierte APIs, die Refactoring blockieren.
  • Monolithische Datenbankstruktur ohne Migrationsstrategie.
DatenbankzugriffeNetzwerk-LatenzServer-CPU/Memory
  • Alle Verarbeitung strikt auf einen einzigen Server legen ohne Redundanz.
  • Clients direkte DB-Zugriffe erlauben statt über APIs zu gehen.
  • Fehlende Ratenbegrenzung, die zu DoS-ähnlichem Verhalten führt.
  • Unterschätzung von Latenz- und Netzwerkfehlern in der Client-Logik.
  • Ignorieren von Konsistenzanforderungen bei verteilten Daten.
  • Übermäßiger Serverzustand, der horizontale Skalierung verhindert.
Netzwerkprotokolle und HTTP-GrundlagenAPI-Design und VersionierungServerbetrieb, Skalierung und Sicherheit
Skalierbarkeit von ServerkomponentenSicherheits- und Compliance-AnforderungenLatenzanforderungen und Verfügbarkeit
  • Protokollbegrenzungen (z. B. HTTP-Overhead)
  • Vorhandene Legacy-Clients mit festen Schnittstellen
  • Regulatorische Anforderungen an zentrale Datenhaltung