Server (Datenverarbeitung)
Bei der Datenverarbeitung ist ein Server ein Computerprogramm oder eine Vorrichtung, die Funktionalität für andere Programme oder Vorrichtungen, sogenannte „Clients“, bereitstellt. Diese Architektur wird als Client-Server-Modell bezeichnet, und eine einzige Gesamtberechnung wird auf mehrere Prozesse oder Geräte verteilt. Server können verschiedene Funktionalitäten bereitstellen, die oft als „Dienste“ bezeichnet werden, wie z.B. die gemeinsame Nutzung von Daten oder Ressourcen für mehrere Clients oder die Durchführung von Berechnungen für einen Client. Ein einzelner Server kann mehrere Clients bedienen, und ein einzelner Client kann mehrere Server verwenden. Ein Client-Prozess kann auf demselben Gerät ausgeführt werden oder über ein Netzwerk mit einem Server auf einem anderen Gerät verbunden werden[1] Typische Server sind Datenbankserver, Dateiserver, Mailserver, Druckserver, Webserver, Spielserver und Anwendungsserver[2].
Client-Server-Systeme werden heute am häufigsten durch das Anfrage-Antwort-Modell implementiert (und oft mit diesem identifiziert): Ein Client sendet eine Anfrage an den Server, der eine Aktion ausführt und eine Antwort an den Client zurückschickt, typischerweise mit einem Ergebnis oder einer Bestätigung. Die Einstufung eines Computers als „Server-Klasse-Hardware“ bedeutet, dass er darauf spezialisiert ist, Server auf ihm auszuführen. Dies bedeutet oft, dass es leistungsfähiger und zuverlässiger ist als herkömmliche PCs, aber alternativ können große Computercluster aus vielen relativ einfachen, austauschbaren Serverkomponenten bestehen.
Historie:
Die Verwendung des Wortservers in der Informatik stammt aus der Warteschlangen-Theorie, wo er bis in die Mitte des 20. Jahrhunderts zurückreicht und vor allem in Kendall (zusammen mit dem „Service“) verwendet wird, dem Papier, das die Notation von Kendall einführte. In früheren Arbeiten, wie dem Erlang, werden konkretere Begriffe wie „[Telefon-]Betreiber “ verwendet.
Bei der Berechnung datiert „Server“ mindestens nach RFC 5, einem der frühesten Dokumente, das ARPANET (den Vorgänger des Internets) beschreibt, und wird mit „Benutzer“ verglichen, wobei zwei Arten von Hosts unterschieden werden: „Server-Host“ und „Benutzer-Host“. Die Verwendung von „serving“ datiert auch auf frühe Dokumente, wie RFC 4, im Gegensatz zu „serving-host“ und „using-host“.
Die Jargon-Datei definiert „Server“ im gesunden Sinne eines Prozesses, der Dienst für Anfragen leistet, in der Regel remote, mit der Version 1981 (1.1.0):
SERVER n. Eine Art DAEMON, das einen Dienst für den Antragsteller ausführt, der oft auf einem anderen Computer als dem, auf dem der Server läuft, läuft.
Betrieb:
Streng genommen bezieht sich der Begriff Server auf ein Computerprogramm oder einen Prozess (laufendes Programm). Durch Metonymie bezieht es sich auf ein Gerät, das für die Ausführung eines oder mehrerer Serverprogramme verwendet wird (oder ein Gerät, das für die Ausführung eines oder mehrerer Serverprogramme vorgesehen ist). In einem Netzwerk wird ein solches Gerät als Host bezeichnet. Zusätzlich zum Server werden die Wörter serve und service (als Substantiv und als Verb) häufig verwendet, nicht aber servicer und servant.[a] Das Wort service (Substantiv) kann sich entweder auf die abstrakte Form der Funktionalität beziehen, z.B. Webservice. Alternativ kann es sich auf ein Computerprogramm beziehen, das einen Computer in einen Server verwandelt, z.B. Windows-Dienst. Ursprünglich als „Server dienen den Nutzern“ (und „Nutzer nutzen die Server“), im Sinne von „gehorchen“, wird heute oft gesagt, dass „Server Daten dienen“, im gleichen Sinne wie „geben“. Beispielsweise stellen Webserver „den Benutzern Webseiten zur Verfügung“ oder „bedienen ihre Anfragen“.
Der Server ist Teil des Client-Server-Modells; in diesem Modell bedient ein Server Daten für Clients. Die Art der Kommunikation zwischen einem Client und einem Server ist die Anforderung und die Antwort. Dies steht im Gegensatz zum Peer-to-Peer-Modell, bei dem die Beziehung eine On-Demand-Reziprozität ist. Im Prinzip ist jeder computergestützte Prozess, der von einem anderen Prozess verwendet oder aufgerufen werden kann (insbesondere aus der Ferne, insbesondere um eine Ressource gemeinsam zu nutzen), ein Server, und der oder die aufrufenden Prozesse sind ein Client. Somit kann jeder an ein Netzwerk angeschlossene Mehrzweckcomputer Server hosten. Wenn beispielsweise Dateien auf einem Gerät von einem Prozess gemeinsam genutzt werden, ist dieser Prozess ein Dateiserver. Ebenso kann die Webserver-Software auf jedem fähigen Computer ausgeführt werden, so dass ein Laptop oder ein Personalcomputer einen Webserver bereitstellen kann.
Während die Anfrage-Antwort das häufigste Client-Server-Design ist, gibt es andere, wie z.B. das Publish-Subscribe-Muster. Im Veröffentlichungs-Abonnementmuster registrieren sich die Clients bei einem Pub-Subserver und abonnieren bestimmte Arten von Nachrichten; diese erste Registrierung kann durch Anforderungsantwort erfolgen. Danach leitet der Pub-Subserver übereinstimmende Nachrichten ohne weitere Anfragen an die Clients weiter: Der Server schiebt Nachrichten an den Client, anstatt dass der Client Nachrichten vom Server zieht, wie bei der Anforderungsantwort.
Zweck:
Der Zweck eines Servers ist es, Daten zu teilen, Ressourcen zu teilen und Arbeit zu verteilen. Ein Servercomputer kann auch seine eigenen Computerprogramme bedienen; je nach Szenario kann dies Teil einer quid pro quo Transaktion oder einfach eine technische Möglichkeit sein. Die folgende Tabelle zeigt mehrere Szenarien, in denen ein Server verwendet wird.
Servertyp | Zweck | Kunden |
---|---|---|
Anwendungsserver | Hosts Web-Apps (Computerprogramme, die in einem Webbrowser ausgeführt werden), die es Benutzern im Netzwerk ermöglichen, sie auszuführen und zu verwenden, ohne eine Kopie auf ihren eigenen Computern installieren zu müssen. Im Gegensatz zu dem, was der Name andeuten könnte, müssen diese Server nicht Teil des World Wide Web sein; jedes lokale Netzwerk würde dies tun. | Computer mit einem Webbrowser |
Katalog-Server | Pflegt einen Index oder ein Inhaltsverzeichnis von Informationen, die in einem großen verteilten Netzwerk gefunden werden können, wie Computer, Benutzer, auf Dateiservern freigegebene Dateien und Webanwendungen. Verzeichnisserver und Name-Server sind Beispiele für Katalogserver. | Jedes Computerprogramm, das etwas im Netzwerk finden muss, ein solches Domänenmitglied, das versucht, sich anzumelden, ein E-Mail-Programm, das nach einer E-Mail-Adresse sucht, oder ein Benutzer, der nach einer Datei sucht. |
Kommunikations server | Bietet eine Umgebung, die für einen Kommunikationsendpunkt (Benutzer oder Geräte) erforderlich ist, um andere Endpunkte zu finden und mit ihnen zu kommunizieren. Es kann ein Verzeichnis der Kommunikationsendpunkte und einen Präsenzerkennungsdienst beinhalten, je nach Offenheit und Sicherheitsparametern des Netzwerks. | Kommunikationsendpunkte (Benutzer oder Geräte) |
Rechenserver | Teilt große Mengen an Computerressourcen, insbesondere CPU und Arbeitsspeicher, über ein Netzwerk. | Jedes Computerprogramm, das mehr CPU-Leistung und RAM benötigt als ein Personalcomputer, kann es sich wahrscheinlich leisten. Der Client muss ein vernetzter Computer sein, sonst gäbe es kein Client-Server-Modell. |
Datenbankserver | Pflegt und teilt jede Form von Datenbank (organisierte Datensammlungen mit vordefinierten Eigenschaften, die in einer Tabelle angezeigt werden können) über ein Netzwerk. | Tabellenkalkulationen, Buchhaltungssoftware, Asset-Management-Software oder praktisch jedes Computerprogramm, das gut organisierte Daten verbraucht, insbesondere in großen Mengen. |
Faxserver | Freigeben eines oder mehrerer Faxgeräte über ein Netzwerk, wodurch die Schwierigkeiten beim physischen Zugriff entfallen. | Jeder beliebige Fax-Absender oder -Empfänger |
Dateiserver | Freigabe von Dateien und Ordnern, Speicherplatz für Dateien und Ordner oder beides über ein Netzwerk | Vernetzte Computer sind die vorgesehenen Clients, auch wenn lokale Programme Clients sein können. |
Spielserver | Ermöglicht es mehreren Computern oder Spielgeräten, Multiplayer-Videospiele zu spielen. | Personalcomputer oder Spielkonsolen |
Mailserver | Ermöglicht die E-Mail-Kommunikation in der gleichen Weise wie eine Poststelle die Schneckenpostkommunikation ermöglicht. | Absender und Empfänger von E-Mails |
Medienserver | Teilt digitale Videos oder digitale Audiodateien über ein Netzwerk durch Medien-Streaming (Übertragung von Inhalten auf eine Weise, dass empfangene Teile bei ihrer Ankunft angesehen oder gehört werden können, im Gegensatz zum Herunterladen einer ganzen Datei und ihrer Verwendung). | Benutzergesteuerte Personalcomputer, die mit einem Monitor und einem Lautsprecher ausgestattet sind. |
Druckserver | Freigeben eines oder mehrerer Drucker über ein Netzwerk, wodurch die Schwierigkeiten beim physischen Zugriff entfallen. | Computer, die etwas drucken müssen |
Sound-Server | Ermöglicht es Computerprogrammen, Ton einzeln oder gemeinsam abzuspielen und aufzunehmen. | Computerprogramme desselben Computers und Netzwerk-Clients. |
Proxy-Server | fungiert als Vermittler zwischen einem Client und einem Server, der eingehenden Datenverkehr vom Client entgegennimmt und an den Server sendet. Gründe dafür sind die Inhaltskontrolle und -filterung, die Verbesserung der Verkehrsleistung, die Verhinderung von unbefugtem Netzwerkzugriff oder die einfache Weiterleitung des Datenverkehrs über ein großes und komplexes Netzwerk. | Jeder vernetzte Computer |
Virtueller Server | Teilt Hard- und Software-Ressourcen mit anderen virtuellen Servern. Es existiert nur in der Form, wie es in einer spezialisierten Software namens Hypervisor definiert ist. Der Hypervisor präsentiert dem Server virtuelle Hardware, als ob es sich um reale physische Hardware handeln würde[7] Servervirtualisierung ermöglicht eine effizientere Infrastruktur. | Jeder vernetzte Computer |
Webserver | Hosten von Webseiten. Ein Webserver ist es, der das World Wide Web möglich macht. Jede Website hat einen oder mehrere Webserver. | Computer mit einem Webbrowser |
Fast die gesamte Struktur des Internets basiert auf einem Client-Server-Modell. Hochrangige Root-Nameserver, DNS und Router leiten den Datenverkehr im Internet. Es gibt Millionen von Servern, die mit dem Internet verbunden sind und ständig auf der ganzen Welt laufen[8], und praktisch jede Aktion, die ein gewöhnlicher Internetnutzer durchführt, erfordert eine oder mehrere Interaktionen mit einem oder mehreren Servern. Es gibt Ausnahmen, die keine dedizierten Server verwenden; z.B. Peer-to-Peer File Sharing, einige Implementierungen von Telefonie (z.B. Pre-Microsoft Skype).