Un article de Wikipedia.y-project.com.
(Redirigé depuis
Logiciel client)
L'architecture client-serveur désigne un mode de communication entre des ordinateurs ou des logiciels. Les mots « serveur » et « client » peuvent soit désigner les ordinateurs, on parle alors de serveur informatique et de poste client ; soit désigner les logiciels fonctionnant sur ces ordinateurs, on parle alors de logiciel serveur ou de logiciel client.
- Le serveur est à l'écoute d'un réseau informatique, prêt à répondre aux requêtes envoyées par des clients.
- Les clients sont pilotés par les utilisateurs et envoient des requêtes au serveur, puis attendent la réponse pour la donner à l'utilisateur.
- Un serveur est capable de servir plusieurs clients simultanément, jusqu'à plusieurs milliers.
L'architecture 3-Tier est une extension de l'architecture client-serveur.
[] Architectures client-serveur
| Image:Recyclage article.png | Cette page est à recycler. Sa qualité peut largement progresser en l'organisant et en la clarifiant. Vous êtes encouragés à la restructurer et à la refondre, afin d'en améliorer l'allure et le style.
|
L'architecture client/serveur correspond à la généralisation des ordinateurs de type PC dans les entreprises (dans les agences, les points de vente, ...) et est une architecture à deux niveaux :
- les règles de gestion, les traitements et les accès aux données sont réalisés sur le serveur central,
- les contrôles de saisie, les enchainements des dialogues sont effectués sur le poste client.
Ce modèle minimise les flux sur le réseau et tire partie de la puissance des machines locale et centrale.
Exemples d'architectures client-serveur :
- Le modèle le plus classique est une relation client-serveur de données typique des architectures Oracle-Unix avec traitements sur le poste client local et accès aux données (via SQL) sur le serveur central. Les interfaces (IHM) de présentation sont ceux typiques des applications Windows (fenêtrage, interface riche et interactive).
- Le système X Window est un exemple typique d'architecture client-serveur : le programme X Window est le serveur ; il fournit aux autres applications des services d'affichage graphique, tels que création et déplacement de fenêtres, gestion des boutons, des zones de saisie et des listes déroulantes... Les applications clientes peuvent alors totalement se décharger des tâches d'affichage.
- Le fonctionnement des sites Web correspond également à une architecture de type client-serveur : chaque site est hébergé sur un serveur Web ; les internautes qui consultent le site utilisent un logiciel client, le navigateur Web, pour envoyer des requêtes au serveur.
L'architecture client-serveur est courante dans les applications où de nombreux utilisateurs doivent accéder à une même base de données. On distingue, dans ces applications, plusieurs couches logicielles :
- La couche présentation (c'est-à-dire client) qui est la partie du logiciel que l'on trouve du côté de l'utilisateur final. Comme son nom l'indique, cette partie ne contient que l'interface utilisateur (le plus souvent, une interface graphique sous X Window, MS Windows ou Mac OS)
- La couche de gestion des données (le serveur), qui consiste en une base de données ou tout système de stockage des données
- La couche logique qui est le c?ur même de l'application ; elle fait le lien entre le client et le serveur, et forme ce que l'on appelle le serveur d'application.
Ce type d'architecture en trois couches est appelé architecture 3-tiers.
Cependant, la couche logique n'est pas nécessairement isolée : en effet, elle peut très bien être déplacée vers le serveur (sous forme, par exemple, de procédures stockées dans la base de données), ou vers le client (toute l'application se trouvant alors sur le poste client, on ne fait plus que demander des données au serveur, via par exemple ODBC ou SQLNet...). Une telle architecture en deux couches est appelée 2-tiers.
Des architectures n-tiers sont bien entendu possibles, en combinant un ou plusieurs serveurs d'application (offrant chacun des services distincts) et une ou plusieurs bases de données.
L'emplacement physique des différentes couches composant une telle application est tout à fait variable.
Dans une application 3-tiers, par exemple, les trois couches peuvent être :
- trois programmes distincts fonctionnant sur une même machine
- le client sur une machine, les deux autres couches sur une deuxième machine
- trois programmes fonctionnant chacun sur une machine distincte.
L'avantage théorique des applications client-serveur est la possibilité de remplacer une couche indépendamment des autres : pouvoir migrer par exemple une partie cliente de Visual Basic vers PowerBuilder sans avoir à ni la base de données, ni le serveur d'application. Mais en pratique, tout n'est pas si rose : les couches sont en réalité rarement totalement indépendantes les unes des autres, et la modification d'une couche entraîne très souvent des modifications dans les autres. D'autre part, la complexité de l'application augmente proportionnellement au nombre de couches à développer et fiabiliser. Enfin, la maintenance de telles applications est plus complexe :
- lorsqu'une erreur survient, il n'est pas toujours évident de déterminer la couche fautive.
- lorsqu'une nouvelle version de l'application doit être livrée aux utilisateurs, toutes les couches doivent être livrées simultanément pour éviter les problèmes de désynchronisation entre les versions des clients, des serveur(s) d'application et des serveur(s) de données.
Le Texte ci-dessus est disponible sous GNU Free Documentation License.
La source est wikipedia http://fr.wikipedia.org/wiki/logiciel client