- Serveur informatique
-
Serveur informatique
Pour les articles homonymes, voir Serveur.Dans un réseau informatique, un serveur est un ordinateur et un logiciel dont le rôle est de répondre automatiquement à des demandes envoyées par des clients — ordinateur et logiciel — via le réseau.
Les serveurs sont d'usage courant dans les centres de traitement de données, les entreprises, les institutions, et le réseau Internet, où ils sont souvent un point central et sont utilisés simultanément par de nombreux utilisateurs pour stocker, partager et échanger des informations. Les différents usagers opèrent à partir d'un client : ordinateur personnel, poste de travail, ou terminal.
Le World wide web, la messagerie électronique et le partage de fichiers sont quelques applications informatiques qui font usage de serveurs.
Sommaire
Histoire
La première génération d'ordinateurs programmables est apparue dans les années 1950. L'ordinateur se pilotait alors à l'aide d'un terminal ou d'un télétype.
Depuis les années 1970, les ordinateurs ont une puissance de calcul suffisante pour effectuer plusieurs traitements en même temps. Les constructeurs ont alors ajouté à ces ordinateurs un deuxième terminal, puis un troisième, puis beaucoup plus. Ce qui permettait de rentabiliser l'utilisation de ces ordinateurs centraux encore très coûteux.
La miniaturisation, la baisse des prix ont permis l'usage des ordinateur personnels dès les années 1980. Ceux-ci pouvaient être reliés à des ordinateurs centraux à l'aide d'un logiciel émulateur de terminal. Les utilisateurs des ordinateurs personnels s'échangeaient mutuellement des fichiers en les copiant sur des disquettes, disquettes qui étaient alors emportées jusqu'à l'ordinateur du destinataire.
En 1980 sont apparus les premiers serveurs de fichiers. Ils ont permis de faciliter les échanges de fichiers entre utilisateurs[1]. Utilisés dans les institutions, ils ont permis à plusieurs utilisateurs d'exécuter un même logiciel. Une seule copie du logiciel est stockée sur le serveur de fichier, tous les traitements du logiciel sont exécutés par le client, et le serveur ne fait que transmettre des fichiers.
Quelques années plus tard la puissance de calcul des ordinateur personnels récents dépassait celle des ordinateurs centraux installés dans les institutions.
Lorsqu'un ordinateur personnel est relié à un ordinateur central par l'intermédiaire d'un émulateur de terminal, l'ordinateur central effectue la totalité des traitements, et l'ordinateur personnel ne fait qu'afficher les résultats. Quand au contraire un serveur de fichier est utilisé, le serveur n'effectue aucun traitement - tous les traitements sont effectués par des ordinateurs personnels. L'idée est venue de partager les traitements entre l'ordinateur central et l'ordinateur personnel. L'architecture client-serveur était née.
Dans les années 1990 est apparue l'architecture trois tiers, une évolution de l'architecture client-serveur, qui consiste à séparer les traitements en 3 parties, traités conjointement par un client et deux serveurs[2].
D'après le cabinet Netcraft, il y a en mars 2009 plus de 220 millions de serveurs web dans le monde, et le nombre est en augmentation constante depuis l'invention du World wide web en 1995[3].
Technique
Une application distribuée est une application informatique dans laquelle les traitements sont répartis entre plusieurs ordinateurs d'un réseau informatique. Un protocole de communication établit les règles selon lesquelles les ordinateurs communiquent et coopèrent.
Dans une application informatique en architecture client/serveur les traitements sont effectués par l'exécution conjointe de deux logiciels différents et complémentaires placés sur des ordinateurs différents: le client et le serveur.
Le client formule des requêtes, puis les transmets au serveur. Le serveur reçoit et traite les demandes, puis envoie sa réponse au client. Le client reçoit la réponse (par exemple, présente le résultat à l'écran). Un protocole de communication établit le format des requêtes envoyées au serveur, et des réponses de celui-ci.
Le mode pair-à-pair (anglais peer-to-peer ou P2P) est l'opposé du mode client-serveur.
Utilisations
Les principales utilisations d'un serveur sont :
- Serveur de fichiers (anglais file server) : le serveur est utilisé pour le stockage et le partage de fichiers. Les fichiers placés dans les mémoire de masse du serveur peuvent être manipulés simultanément par plusieurs clients.
- Serveur d'impression : le serveur est utilisé comme intermédiaire entre un ensemble de clients, et un ensemble d'imprimantes. Chaque client peut envoyer des documents à imprimer à une des imprimantes reliée au serveur.
- Serveur de base de données : le serveur est utilisé pour stocker, et manipuler des données contenues dans une ou plusieurs bases de données et partagées entre plusieurs clients.
- Serveur de courrier : le serveur est utilisé pour stocker et transmettre du courrier électronique. Le courrier partant est transmis au serveur du destinataire. Le courrier arrivé est stocké sur le serveur et est consultable par le client.
- Serveur web : le serveur stocke et manipule les pages d'un site Web, et les transmets sur demande au client (voir navigateur web).
- Serveur de jeu : Le serveur arbitre et suit l'évolution d'un jeu. Il met en communication les différents joueurs d'un jeux en ligne multijoueur.
- Serveur d'applications : est un terme générique pour désigner un serveur qui effectue les traitements d'un ou plusieurs logiciels applicatif à architecture client/serveur.
- Serveur mandataire (anglais proxy) : le serveur reçoit des demandes, les contrôle, puis les transmets à d'autres serveurs. Il peut être utilisé pour accélérer le traitement des demandes, ou faire appliquer des règlements (censure, confidentialité, etc.)
Exemple d'utilisation sur Internet : l'application web Google fonctionne à l'aide d'environ 15 000 serveurs de bas de gamme divisés en grappes de 40 à 80 serveurs dans divers centres de traitement de données dans le monde[4].
Matériel
Est appelé serveur un ordinateur destiné à répondre à des demandes via un réseau. Divers constructeurs et assembleurs tels que HP, Sun ou IBM vendent des ordinateurs optimisés à cet effet.
Ce sont typiquement des machines haut de gamme conçues pour servir simultanément de nombreux clients. Les machines sont équipées d'un processeur puissant voire de plusieurs processeurs, de mémoires et de disque durs rapides et de grande capacité, et bien sûr d'une interface réseau.
Les serveurs fonctionnent sans intervention, 24 heures sur 24, 99,9% du temps. La durée moyenne d'arrêt des serveurs varie entre 36 minutes et 10 heures par année[5].
Les serveurs peuvent être montés dans des rack 19 pouces, ce qui permet de les empiler. Ils peuvent être équipés de dispositifs de prévention des pannes et de pertes d'informations, tels que les dispositifs RAID : les informations sont copiées sur plusieurs disques durs, en vue d'éviter leur perte irrémédiable en cas de panne d'un des disques durs.
Le regroupement de plusieurs serveurs en une grappe (en anglais cluster) permet de répartir la charge, et assure que les clients sont servis même en cas d'arrêt d'un des serveurs.
Un Network Attached Storage est un appareil clé en main, conçu spécialement comme serveur de fichier. Il existe également des appareils clé en main pour les serveurs d'impression.
Les serveurs sont parfois reliés à des réseaux de stockage : un ensemble de serveurs est relié par un réseau en fibre optique à une batterie de disques durs. L'espace de stockage de la batterie de disques durs est découpé en partitions réparties entre les serveurs.
Un appareil serveur peut exécuter plusieurs logiciels serveurs en même temps, et sert typiquement de nombreux usagers simultanément. Un serveur est rarement manipulé, et le clavier et l'écran (s'il y en a) servent principalement à des travaux de maintenance, de réparation et de contrôle.
Un serveur de base (en 2008) a une puissance électrique de 200 W ; on estime la consommation électrique de l'ensemble des serveurs informatique à environ 450 TWh pour la France et 4 000 TWh pour les États-Unis[6].
Systèmes d'exploitation
Il existe de nombreux systèmes d'exploitation optimisés pour le travail de serveur, notamment dans les familles Unix, Mac OS X et Windows NT.
Dans ces systèmes d'exploitation l'accent est mis sur la sécurité informatique, en particulier la confidentialité et la disponibilité, ainsi que la capacité d'effectuer de nombreux traitements simultanément. L'interface homme-machine est souvent peu développée, les serveurs étant rarement manipulés.
Dans les systèmes d'exploitations pour serveur, un noyau multitâche préemptif assure l'exécution simultanée de plusieurs traitements. Chaque processus est exécuté dans un espace confiné (anglais sandbox) de sorte que le crash ou le comportement inopiné de ce processus n'influence pas les autres processus.
Pour assurer la confidentialité, chaque processus est attaché à un compte utilisateur (typiquement le compte de l'utilisateur qui a lancé la demande), et chaque opération est soumise à un mécanisme de contrôle d'accès qui l'autorisera ou la refusera en fonction d'informations de permissions, de listes de contrôle d'accès ou de privilèges.
Les serveurs étant utilisés en réseau, le système d'exploitation est équipé de divers logiciels en vue de pouvoir être utilisé avec de nombreux protocoles, et de pouvoir être utilisé comme relais ou pour du routage (voir aussi proxy). Divers logiciels serveur sont inclus dans le système d'exploitation.
Les serveurs servent souvent à stocker de grandes quantités de données. Le système d'exploitation permet d'effectuer automatiquement de manière régulière des tâches de routine en traitement par lots (anglais batch). Ce sont typiquement des tâches de sauvegarde ou d'archivage des données.
D'une importance mineure, l'interface homme-machine d'un système d'exploitation pour serveur est peu développée, et les capacités multimédia sont réduites : les machines n'ont souvent pas de carte sonore. le X Window System est un logiciel d'interface homme-machine en architecture client-serveur inclus dans la quasi totalité des systèmes d'exploitation Unix[7].
Logiciels
Est appelé serveur un logiciel qui traite des demandes envoyées via un réseau. Le démarrage et l'exécution du logiciel se fait sans intervention humaine, il peut avoir lieu lors du démarrage de l'ordinateur (anglais boot), ou sur demande. Rien n'est affiché à l'écran et le logiciel est invisible (voir aussi daemon).
Un logiciel serveur donné peut co-opérer avec n'importe quel client qui utilise le même protocole. De même un logiciel client donné peut co-opérer avec n'importe quel serveur du même protocole.
Serveur de fichiers
Article détaillé : serveur de fichiers.Un serveur de fichiers répond à des demandes relatives à la création, le déplacement, la suppression, la lecture, la modification ou le verrouillage d'un fichier. Les fichiers sont stockés dans les mémoires de masse du serveur - la plupart du temps des disque durs, et manipulés selon les demandes des clients.
Les serveurs de fichiers sont souvent inclus dans les systèmes d'exploitation. CIFS est le protocole du serveur de fichier et d'impression inclus dans les systèmes d'exploitation Windows. NFS est un protocole courant des serveurs de fichiers des systèmes d'exploitation Unix. Samba est un serveur en protocole CIFS pour les systèmes d'exploitation Unix. FTP est un protocole de serveur de fichier très utilisé sur le réseau Internet.
Un NAS est un équipement matériel / logiciel clé en main prévu exclusivement pour servir de serveur de fichier. Les NAS reconnaissent plusieurs protocoles[8].
Serveur d'impression
Article détaillé : serveur d'impression.Un serveur d'impression réponds à des demandes en rapport à des travaux d'impression numérique. Les documents sont placés dans des files d'attente, puis envoyés aux imprimantes (voir spooling).
Les demandes concernent la manipulation des files d'attente (une pour chaque imprimante): lecture du contenu, ajout ou suppression de documents, mise en attente, priorités. Le serveur envoie automatiquement les documents un après l'autre à l'imprimante. Les documents peuvent subir des transformations de format en vue de les adapter aux caractéristiques de l'imprimante destinataire. PCL et PostScript sont des formats de données courant en impression numérique.
CIFS est le protocole des serveurs d'impression et de fichiers inclus dans les systèmes d'exploitation Windows. CUPS est un serveur d'impression courant sur les systèmes d'exploitation Unix[9]. JetDirect est une gamme de serveurs d'impression sous forme d'une carte d'extension à poser dans les imprimantes Hewlett Packard[10].
Serveur de base de données
Article détaillé : système de gestion de base de données.Un serveur de base de données réponds à des demandes de manipulation de données stockées dans une ou plusieurs base de données. Il s'agit typiquement de demandes de recherche, de tri, d'ajout, de modification ou de suppression de données.
Le serveur de base de données fait partie d'un système de gestion de base de données (abréviation SGBD) — logiciel qui manipule une base de données — qui comporte un logiciel client et un logiciel serveur. Les demandes de manipulation de données sont souvent créées par un logiciel de gestion sous forme de requêtes en langage SQL, puis le client les transmet au serveur en utilisant un protocole propre au SGBD[11].
Oracle, Microsoft SQL Server ou MySQL sont des SGBD qui comportent un serveur de base de données.
Une application informatique en architecture trois tiers comporte typiquement un serveur de base de données (tiers 3) avec un serveur web (tiers 2) et un navigateur web (tiers 1). L'application hébergée par le serveur web est le client du serveur de base de données[12].
Serveur de courrier
Article détaillé : Serveur de messagerie électronique.Un Serveur de courrier réponds à des demandes d'acheminement de messages électroniques. Le serveur stocke les messages arrivés, et transmet les messages en partance au destinataire (un autre serveur de courrier). Un serveur de courrier réponds également aux demandes de manipulation et de récupération des messages stockés.
SMTP est un protocole utilisé pour acheminer un message électronique entre un client et le serveur, aussi bien qu'entre un serveur et un autre serveur. POP est un protocole utilisé pour récupérer les messages stockés et les transmettre au client. IMAP est un protocole utilisé pour examiner et manipuler les messages stockés à partir d'un client.
Les messages en partance sont souvent placés dans des files d'attente, et envoyés groupés à intervalles réguliers (voir spooling).
Un webmail est une application placée sur un serveur web, qui agit comme un client sur un serveur de courrier.
Serveur web
Article détaillé : serveur HTTP.Un serveur web répond à des demandes de consultation de documents tels que ceux du World wide web. Chaque passage d'un document hypertexte à l'autre par parcours d'un hyperlien dans le logiciel client (la plupart du temps un navigateur web) provoque l'envoi d'une nouvelle demande. Chaque demande peut être envoyée à un serveur différent.
En réponse à une demande, le serveur peut envoyer un document qui est stocké en tant que fichier dans les mémoire de masse du serveur, ou exécuter un traitement puis envoyer le résultat sous forme d'un document. HTTP et HTTPS sont les protocoles des serveurs web.
Apache est un serveur web pour les systèmes d'exploitation Unix et Windows. Internet Information Services (abrégé IIS) est un serveur web inclus dans les systèmes d'exploitation Windows.
Une application web est un logiciel composé d'un ensemble de traitements qui créent des documents instantanés suite à la réception de demandes de consultation. Le webmail, le wiki, et le weblog sont des applications web.
Serveur de jeu
Article détaillé : Multi-user dungeon.Le serveur fait partie d'un logiciel de jeu en ligne multijoueur en architecture client-serveur. Il répond à des demandes de diffusion des opérations effectuées par chaque joueur. Le serveur valide les opérations de chaque joueur, arbitre le jeu, puis transmet les évolutions du jeu aux autres joueurs.
Le serveur de jeu stocke l'état du jeu en mémoire, et l'entretient. Une copie de l'état du jeu est envoyée à tout joueur quand il entre dans le jeu. Puis le logiciel client du jeu entretient sa propre copie de l'état de jeu.
Lors de la réception d'une demande — opération effectuée par un joueur — le serveur effectue divers traitements en vue de contrôler la conformité de l'opération par rapport aux règles du jeu. Puis il effectue les modifications nécessaires sur l'état du jeu qu'il stocke en mémoire. Le serveur envoie ensuite aux différents clients la liste des évolutions effectuées sur l'état du jeu. Et chaque client entretient alors sa propre copie de l'état du jeu.
Le protocole est différent pour chaque jeu en ligne. Il dépend de la vitesse d'évolution du jeu. Dans un jeu d'action comme Quake ou Half-Life le protocole est adapté à une évolution très rapide[13],[14].
Economie
Marché
Le marché des ordinateurs serveurs s'est établi à 53 milliards de dollars en 2008 (en baisse de 3,3 % sur l'année)[15].
Fabricants
Les principaux fabricants d'ordinateurs serveurs sont (au 4e trimestre 2008, selon le cabinet d'études Gartner)[16] :
- IBM : 4,4 milliards de dollars de chiffre d'affaires serveurs au quatrième trimestre 2008,
- Hewlett Packard : 3,9 milliards,
- Dell : 1,4 milliard,
- Sun Microsystems : 1,2 milliard,
- Fujitsu et Fujitsu Siemens : 0,6 milliard,
- Autres : 1,6 milliard.
Notes et références
- ↑ (en)Distributed file systems overview
- ↑ (en)Carnegie Mellon University, Software Technology Roadmap
- ↑ (en)Netcraft March 2009 Web Server Survey
- ↑ (en)The Google cluster architecture
- ↑ (en)Year 2008 Server OS Reliability Survey
- ↑ (en)Total power consumption by servers in U.S and the world
- ↑ dans X Window System, le serveur X est exécuté par l'ordinateur client
- ↑ (en)Buffalo Technology, what is NAS
- ↑ (en)An overview of CPUS
- ↑ (en)HP JetDirect print server overview
- ↑ (en)IETF Network Database Protocol Draft
- ↑ Qu'est-ce qu'une architecture 3 tiers
- ↑ (en)Technology strategies for multiplayer games
- ↑ (en)Distributed multiplayer game system
- ↑ Gartner in Les Echos, 17 mars 2009, page 24
- ↑ Gartner in Les Echos, 17 mars 2009, page 24
Voir aussi
Articles connexes
- Portail de l’informatique
Catégories : Serveur internet | Architecture logicielle | Terminologie de l'informatique | Architecture réseau | Matériel de réseau informatique
Wikimedia Foundation. 2010.