Die Protokoll- oder Client-Server- Umgebung bezeichnet einen Transaktionsmodus (oft über ein Netzwerk ) zwischen mehreren Programmen oder Prozessen : einer, der als Client bekannt ist , sendet Anfragen; der andere, der als Server bezeichnet wird , wartet auf Client-Anfragen und antwortet darauf. Der Server bietet hier dem Client einen Dienst an. Als Erweiterung bezieht sich der Client häufig auf den Computer, auf dem die Client-Software ausgeführt wird, und den Server, den Computer, auf dem die Server-Software ausgeführt wird. Servermaschinen haben in der Regel mehr Kapazität als Personalcomputer in Bezug auf Rechenleistung , Eingabe/Ausgabe und Netzwerkverbindungen , sodass sie effektiv auf eine große Anzahl von Clients reagieren können. Clients sind oft PCs oder einzelne Endgeräte (Telefon, Tablet), aber nicht immer. Ein Server kann auf Anfragen von mehreren Clients antworten. Manchmal können sich Client und Server auf demselben Computer befinden.
Es gibt eine Vielzahl von Servern und Clients, abhängig von den Anforderungen oder zu erbringenden Diensten: Ein Webserver veröffentlicht Webseiten, die von Webbrowsern angefordert werden ; ein E-Mail-Server übermittelt E-Mails an E-Mail- Clients ; ein Dateiserver ermöglicht die gemeinsame Nutzung von Dateien in einem Netzwerk mit den Maschinen, die sie anfordern; Ein Datenbankserver ermöglicht es Clients, in einer Datenbank gespeicherte Daten abzurufen usw.
Der Client und der Server müssen natürlich auf der Transportschicht des OSI-Modells das gleiche Kommunikationsprotokoll verwenden . Wir sprechen oft von einem Dienst, um die von einem Serverprozess angebotene Funktionalität zu bezeichnen. Achtung, obwohl oft verwechselt, unterscheiden sich die Konzepte von Programm- oder Clientprozess und Programm- oder Serverprozess von denen der Maschine. Tatsächlich kann ein einzelner Computer sowohl ein Serverprogramm als auch ein Clientprogramm ausführen. Diese Konfiguration wird eher zu Testzwecken verwendet oder ist in der Linux- Welt durchaus üblich .
Eigenschaften eines Serverprogramms :
Eigenschaften eines Client- Programms :
Merkmale ihres Austauschprotokoll :
Die Organisation eines Client - Server - Umgebung unterscheidet sich je nach Art der Netzwerk - Architektur und der Art des Client .
Eine Peer-to-Peer- Architektur ( Peer-to-Peer oder P2P auf Englisch) ist eine Client-Server-Umgebung, in der jedes verbundene Programm wahrscheinlich abwechselnd die Rolle des Clients und die des Servers spielt. Das Programm ist ein Client, wenn es Daten anfordert und abruft, und wird ein Server, wenn es Daten bereitstellt.
Zweistufige ArchitekturGrundsätzlich besteht die Beziehung zwischen einem Client und einem Server zwischen zwei Prozessen, zwei Software oder zwei Maschinen. Man kann von einer Two-Tier-Architektur oder einer Two-Tier-Architektur ( Two-Tier-Architektur auf Englisch) sprechen . In diesem Fall fordert der Client eine Ressource vom Server an, der sie direkt aus seinen eigenen Ressourcen versorgt, ohne andere Maschinen anzufordern.
Eine dreischichtige Architektur oder eine dreischichtige Architektur ( dreischichtige Architektur Englisch) fügt eine Ebene hinzu, um Server zu spezialisieren, was einen Vorteil in Bezug auf Flexibilität, Sicherheit und Leistung bietet:
Dabei ist zu beachten, dass der Anwendungsserver hier ein Client des Datenservers ist.
N- Level- ArchitekturEine Architektur-N-Ebene oder eine Architektur-Third-N ( N-Tier-Architektur Englisch) fügt der 3-Tier-Architektur hinzu, führte jedoch den Begriff des Objekts ein, der die Möglichkeit bietet, Dienste auf 3 Ebenen gemäß N-Schichten zu verteilen, wodurch es möglich wird die Server feiner zu spezialisieren.
Anwendungsclients sind Software, die auf den Computern oder Terminals der Benutzer ausgeführt wird. Es lassen sich 3 Haupttypen unterscheiden.
Light-ClientEin Thin Client ist eine Anwendung, bei der die Verarbeitung von Client-Anfragen (meist ein Webbrowser, mit Webseiten, die wenig oder kein clientseitiges JavaScript verwenden , Terminaldienste- Terminals , Secure Shell , Apple Remote Desktop , Citrix XenApp , TeamViewer usw.) vollständig vom Server erledigt wird, ist der Client damit zufrieden, die vom Server berechneten und gesendeten Antworten zu empfangen und zu formatieren, um sie anzuzeigen. Einige Vorteile:
Ein Heavy Client ist eine Anwendung (Desktop-Anwendungen, mobile Anwendungen), bei der die Verarbeitungsvorgänge hauptsächlich auf dem als Client bezeichneten lokalen Computer ausgeführt werden. Der Server ist hauptsächlich damit zufrieden, auf Datenanforderungen des Clients zu antworten.
Einige Vorteile:
Ein Rich Client ist eine Anwendung, bei der die Verarbeitung von Clientanforderungen (Webanwendungen, die viel clientseitiges JavaScript verwenden) hauptsächlich vom Server ausgeführt wird, wobei der Client "halbfertige" Antworten erhält und diese abschließt. Es handelt sich um einen fortschrittlicheren Thin Client, der die Implementierung von Funktionen ermöglicht, die mit denen eines Thick Client vergleichbar sind. Es ist ein Kompromiss zwischen Thin- und Heavy-Clients.
Bevor die Client-Server-Umgebung auftauchte, wurden Computernetzwerke um einen zentralen Computer ( Mainframe in Englisch) herum konfiguriert, an den passive Terminals angeschlossen waren (Bildschirm, der an eine Tastatur ohne Zentraleinheit angeschlossen war und keine Verarbeitung durchführte. ). Alle Benutzer waren dann mit derselben Zentraleinheit verbunden.