| |
Client-/Server-Konzept
client/server
model: A common way to describe the paradigm of many network protocols. Examples
include the name-server/name-resolver relationship in DNS and the
file-server/file-client relationship in NFS. See also: client, server, Domain
Name System, Network File System. aus
RFC1983(Internet users Glossary)
Das Client/Server Modell beschreibt das wohl geläufigste
Paradigma zur Modellierung und Realisierung von verteilten Anwendungen: Ein
Dienst wird von einem Server Gerät oder Prozess zur verfügung gestellt, um auf
Anfragen eines Clients (ebenfalls Gerät oder Prozess) eine Antwort zu liefern.
Die Kommunikation läuft dabei einem Protokoll entsprechend ab.
ServerAls Anbieter eines Dienstes ist es die Aufgabe eines Servers auf
Anfragen Berechnungen durchzuführen und die Ergebnisse als Protokollkonforme
Antworten zu formulieren. Ein Server als Anbieter eines Dienstes kann sich dabei
auf dem selben Gerät auf dem der Client läuft befinden, oder auf einem anderen
über Netzwerk (oder über einen anderen Kommunikationskanal) erreichbaren Gerät
befinden. Die Entscheidung, einen Dienst als Server aus einer Anwendung
auszugliedern kann verschiedene Gründe haben:
- Performance/Rechenleistung
: Unter Umständen handelt es
sich bei den Clients um leistungsschwache Geräte, welche schnittstellen zu
leistungshungrigen Anwendungen darstellen. In diesem Fall wird die Berechnung
auf einem leistungsstärkeren Server ausgeführt. Da heutzutage Rechenleistung
sehr billig geworden ist, sind Client meist mit genügend Rechenleistung
versehen. Dieser Ansatz wird also nur noch selten (beispielsweise in der
Filmindustrie zur Animation von VR-Szenen) eingesetzt. Die Tendenz hat sich
sogar umgekehrt und man versucht möglichst viel Berechnungsaufwand auf die
Clientseite zu verschieben, um eine bessere Skalierbarkeit von Client/Server
Systemen zu erreichen.
- Zentrale Datenhaltung :
Dieser Aspekt des Client/Server Modells hat heutzutage wohl die
größte Bedeutung. Auf einem Server sind Daten gespeichert, welche von vielen
verschiedenen Clients Verwendet oder manipuliert werden. Durch die
Zentralisierung der Datenhaltung minimiert man den Aufwand zur Synchronisation
von parallelen Anfragen/Modifikationen. Dies ist nötig um eine Konsistente
Datenhaltung zu gewährleisten. Die Minimierung des Aufwands hängt ncht zuletzt
mit einer Minimierung der Redundanz von Daten zusammen. Erkauft wird diese
Eigenschaft mit dem Nachteil, daß die Datenhaltung nun einen sog. "Single
Point of Failture" darstellt: wenn der zentrale Datenhaltungsserver ausfällt,
sind sämtliche Clients davon betroffen.
Typische Beispiele für Serverdienste sind
- Fileserver : Ein Server (hier meist ein Gerät) versorgt
mehrere Clients (ebenfalls einzelne Geräte) mit einem Dateisystem. Aufgaben
des Servers sind Zugangskontrolle und Transaktionssicherung (nur ein Client
darf zu einem Zeitpunkt schreibend auf ein Datum zugreifen)
- Druckserver : Ein Server (Gerät oder Prozess) versorgt
mehrere Clients (Anwendungen, und damit Prozesse) mit dem Dienst einen (oder
auch mehrere) Drucker zu verwenden. Typische aufgaben sind hierbei das
Einordnen von Druckaufträgen in Warteschlangen, die Zugangskontrolle und
Abrechnung der Druckkosten und u.U. die Wahl des am besten geeigneten
(qualitativ oder räumlich) Druckers für den Auftrag.
- Webserver : Der
Webserver (Prozess auf einem Gerät - oder auch verteilt über mehrere Geräte)
versorgt sehr viele Clients (Webbrowser auf verschiedenen Geräten) mit
Informationen. Diese können sich entweder statisch auf dem Webserver befinden
(das verhalten ist dann ein wenig mit einem Fileserver vergleichbar) oder aber
auch dynamisch von weiteren Dienstprogrammen erzeugt werden.
|
| |
|
|