Serveur informatique

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

Des serveurs empilés

Dans un réseau informatique, un serveur est à la fois un ensemble de logiciels et l'ordinateur les hébergeant dont le rôle est de répondre de manière automatique à 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.

Histoire

Jusque dans les années 1960, les traitements d'un logiciel étaient exécutés par un ordinateur unique. Celui-ci effectuait plusieurs traitements en même temps au service de plusieurs utilisateurs.

Au milieu des années 1960 sont apparus les premiers systèmes informatiques distribués, dans lesquels les traitements étaient effectuées par deux ordinateurs.

Les ordinateurs personnels sont apparus au début des années 1980, et leur usage s'est rapidement répandu dans les entreprises et les institutions.

Rapidement sont apparus les limitations liées à l'utilisation généralisée d'ordinateurs à usage personnels et isolés les uns des autres : la nécessité pour une entreprise d'acquérir une imprimante pour chaque ordinateur, la difficulté des échanges d'informations numériques entre les différents ordinateurs. Chaque usager devait copier les informations sur une disquette puis la transmettre en main propre au destinataire.

Les réseaux locaux ont permis des échanges d'informations numériques entre les usagers. Cependant les câbles seuls ne permettent pas l'utilisation en commun d'une imprimante: l'imprimante ne peut pas imprimer deux documents en même temps, or plusieurs usagers sont susceptibles de vouloir imprimer au même instant. L'imprimante a donc été branchée à un ordinateur autonome qui contrôle son utilisation: un serveur d'impression.

Les serveurs de fichiers ont facilité les échanges de fichiers entre utilisateurs. 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.

Les architectures client-serveur sont devenues populaires au début des années 1990. Les logiciels sont typiquement organisés en trois couches: une qui contient les traitements relatifs à l'affichage, une pour ce qui est relatif aux calculs, et la dernière qui est relative au stockage des informations. En client-serveur les traitements des différentes couches ont été répartis entre deux ordinateurs différents - un client et un serveur.

L'architecture trois tiers est une évolution de l'architecture client-serveur où les traitements des trois couches sont réparties entre un client et deux serveurs.

D'après le cabinet Netcraft, il y a en mars 2009 plus de 220 millions de serveurs web dans le monde, et leur nombre est en augmentation constante depuis l'invention du World Wide Web en 1995.

Technique

Une application distribuée est une application informatique dans laquelle les résultats sont obtenus par la coopération de plusieurs ordinateurs d'un réseau informatique. Un protocole de communication établit les règles selon lesquelles les ordinateurs communiquent et coopèrent.

L'architecture client/serveur est un modèle d'organisation d'une application distribuée dans laquelle 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 traite les demandes, puis envoie sa réponse au client. Le client affiche la réponse (par exemple, il 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.

Dans l'architecture client-serveur les clients vont rechercher les informations stockées dans les serveurs. Dans l'architecture pair-à-pair (anglais peer-to-peer abrégé P2P) par contre les clients vont rechercher des informations stockées dans d'autres clients, et les serveurs jouent le rôle d'intermédiaires.

Matériel

Vue interne d'un serveur

Un serveur est un ordinateur destiné à répondre aux demandes faites via un réseau. Divers constructeurs et assembleurs tels que Apple, 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 ou plusieurs interfaces 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.

Les serveurs peuvent être montés dans des racks 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 servir pour de nombreux usagers en même temps. 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.

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, pas de clavier et pas d'écran.

Utilisations

Les utilisations courantes des serveurs sont le serveur de fichiers, d'impression, de base de données, de courrier, ainsi que le serveur web, le serveur d'applications, le proxy ou le serveur de jeu.

Un serveur de fichiers (anglais file server) est utilisé pour le stockage et le partage de fichiers entre plusieurs clients. Un serveur d'impression est utilisé comme intermédiaire entre un ensemble de clients et un ensemble d’imprimantes, tandis qu'un serveur de base de données est utilisé pour stocker et manipuler des données contenues dans une ou plusieurs bases de données et partagées entre plusieurs clients.

Un serveur de courrier est utilisé pour stocker et transmettre du courrier électronique. Un serveur web stocke et manipule les pages d’un site Web et les transmets sur demande au client (voir navigateur web). Un serveur de jeu arbitre et suit l’évolution d’un jeu en mettant en communication les différents joueurs.

Un serveur d'applications effectue les traitements d’un ou plusieurs logiciels applicatif à architecture client/serveur. Un serveur mandataire (anglais proxy) reçoit des demandes, les contrôle, puis les transmet à d’autres serveurs.

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.

L’auto-hébergement consiste pour un particulier à utiliser son ordinateur personnel comme serveur, et de le mettre à disposition par l'intermédiaire de sa connexion Internet personnelle. L'usager évite ainsi les frais dus à un contrat avec un hébergeur web. Il peut ainsi avoir son propre serveur web (LAMP, WAMP, ...) et, en utilisant un DNS dynamique (en), avoir son propre nom de domaine. Certains FAI font payer les adresses IP fixes, mais elles ne sont pas indispensables.

Le démarrage et l'exécution du logiciel qui traite les demandes 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 utilisant le même protocole.

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.

Serveur d'impression

Un serveur d'impression répond à 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. JetDirect est une gamme de serveurs d'impression sous forme d'une carte d'extension à poser dans les imprimantes Hewlett Packard.

Serveur 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.

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.

Serveur de courrier

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épond é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

Un serveur web répond à des demandes de consultation de documents tels que ceux du World wide web. Chaque consultation d'un nouveau document hypertexte 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émoires 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 et HTML est le format de fichier prévu à cet effet.

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 applicatif 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

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 aux joueurs qui entrent dans la partie.

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. Chaque client entretient sa propre copie de l'état du jeu.

Le protocole est différent pour chaque jeu en ligne et 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. Dans un jeu sur navigateur web les protocoles sont ceux du web et le serveur est une application web.

Économie

Marché

Le marché des ordinateurs serveurs s'est établi à 53 milliards de dollars en 2008 (en baisse de 3,3 % sur l'année).

Fabricants

Les principaux fabricants d'ordinateurs serveurs sont (au 4 trimestre 2008, selon le cabinet d'études Gartner) :

  • 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.

En 2009, 35% des serveurs sont équipés avec les systèmes d'exploitation Windows NT, 14% sont installés avec Linux et 36% sont installés avec un autre système d'exploitation de la famille Unix. Les parts de Windows NT sur le marché des serveurs sont soutenus par la domination des systèmes d'exploitation Windows sur le marché des ordinateurs clients (plus de 80% des parts de ce marché).