L'environnement client–serveur désigne un mode de communication à travers un reseau entre plusieurs programmes : l'un, qualifié de client, envoie des requêtes ; l'autre ou les autres, qualifiés de serveurs, attendent les requêtes des clients et y répondent. Par extension, le client désigne également l'ordinateur ou la machine virtuelle sur lequel est exécuté le logiciel client, et le serveur, l'ordinateur ou la machine virtuelle sur lequel est exécuté le logiciel serveur. Les serveurs sont des ordinateurs généralement destinés au logiciel serveur qu'ils abritent, et dotés de capacités supérieures à celles des ordinateurs personnels en ce qui concerne la puissance de calcule les entrées-sorties et les connexions réseau. Les clients sont souvent des ordinateurs personnels ou des appareils individuels (téléphone, tablette), mais pas systématiquement. Un serveur peut répondre aux requêtes d'un grand nombre de clients. Exemple d'architecture client–serveur : deux clients font leurs requêtes à un serveur via Internet. L'organisation d'un environnement client–serveur diffère selon le type d'architecture du réseau et le type de client2. 1.1. Types d'architecture Architecture pair à pair
Une architecture pair à pair (peer-to-peer ou P2P en anglais) est un
environnement client–serveur où chaque programme connecté est susceptible de jouer tour à tour le rôle de client et celui de serveur.
Architecture à deux niveaux
Une architecture à deux niveaux ou une architecture deux tiers (two-tier architecture en anglais) est un environnement client–serveur où le client demande une ressource au serveur qui la fournit à partir de ses propres ressources. l'architecture à 2 niveaux, permettant de spécialiser les serveurs dans une tâche précise, ce qui donne un avantage de flexibilité, de sécurité et de performance : un client qui demande une ressource via une interface utilisateur (généralement un navigateur web) chargée de la présentation de la ressource ; - un serveur d'application (appelé middleware) qui fournit la ressource, mais en faisant appel aux ressources d'un autre serveur ; - un serveur de données qui fournit au serveur d'application les ressources requises pour répondre au client.
Architecture à trois niveaux
L'architecture trois tiers1, aussi appelée architecture à trois niveaux ou architecture à trois couches, est l'application du modèle plus général qu'est le multi-tiers. L'architecture logique du système est divisée en trois niveaux ou couches : • couche de présentation ; • couche de traitement ; • couche d'accès aux données. C'est une architecture basée sur l'environnement client–serveur. L'architecture trois tiers a pour objectif de répondre aux préoccupations suivantes : • l'allègement du poste de travail client (notamment vis-à-vis des architectures classiques client-serveur de données – typiques des applications dans un contexte Oracle/Unix) ; • la prise en compte de l'hétérogénéité des plates-formes (serveurs, clients, langages, etc.) ; • l'introduction de clients dits « légers » (plus liée aux technologies Intranet/HTML qu'à l'architecture trois tiers proprement dite) ; • l'amélioration de la sécurité des données, en supprimant le lien entre le client et les données. Le serveur a pour tâche, en plus des traitements purement métiers, de vérifier l'intégrité et la validité des données avant de les envoyer dans la couche d'accès aux données ; • la rupture du lien de propriété exclusive entre application et données. Dans ce modèle, la base de données peut être plus facilement normalisée et intégrée à un entrepôt de données ; • une meilleure répartition de la charge entre différents serveurs d'applications.
Notre 'application web conçu sera déployée sur une architecture 3-Tiers. Cette architecture peut être décrite par la figure ci-dessous :