En informatique, le client-serveur est un modèle d’architecture logicielle composé de deux parties, des systèmes clients et des systèmes serveurs, communiquant tous deux sur un réseau informatique ou sur le même ordinateur. Une application client-serveur est un système distribué composé d’un logiciel client et d’un logiciel serveur. L’application client-serveur fournit un meilleur moyen de partager la charge de travail.Le processus client initie toujours une connexion au serveur, tandis que le processus serveur attend toujours les demandes de tout client.
Lorsque le processus client et le processus serveur sont exécutés sur le même ordinateur, on parle d’une configuration à siège unique.
Un autre type d’architecture logicielle connexe est appelé peer-to-peer, parce que chaque hôte ou instance d’application peut simultanément agir en tant que client et serveur (contrairement aux serveurs centralisés du modèle client-serveur) et parce que chacun a des responsabilités et un statut équivalents. Les architectures pair-à-pair sont souvent abrégées à l’aide de l’acronyme P2P.
La relation client-serveur décrit la relation entre le client et la façon dont il fait une demande de service au serveur, et la façon dont le serveur peut accepter ces demandes, les traiter et retourner les informations demandées au client. L’interaction entre le client et le serveur est souvent décrite à l’aide de diagrammes de séquence. Les diagrammes de séquence sont normalisés dans le langage de modélisation unifié.
Les architectures client-serveur et P2P sont toutes deux largement utilisées aujourd’hui.
Le type de base de l’architecture logicielle client-serveur n’emploie que deux types d’hôtes : les clients et les serveurs. Ce type d’architecture est parfois appelé » à deux niveaux « . L’architecture à deux niveaux signifie que le client agit comme un niveau et que le processus serveur agit comme l’autre niveau.
L’architecture logicielle client-serveur est devenue l’un des modèles de base de l’informatique en réseau. De nombreux types d’applications ont été écrits en utilisant le modèle client-serveur. Les fonctions standard en réseau, telles que l’échange de courrier électronique, l’accès au Web et l’accès aux bases de données, sont basées sur le modèle client-serveur. Par exemple, un navigateur web est un programme client sur l’ordinateur de l’utilisateur qui peut accéder aux informations de n’importe quel serveur web dans le monde.