VI. Les réseaux client-serveur▲
VI-1. L'apparition du modèle client-serveur▲
Le modèle client-serveur s'oppose aux vieux systèmes informatiques centralisés autour d'un gros ordinateur, basés sur une architecture propriétaire. Le système central traite la requête d'un terminal, puis lui envoie la réponse. Le modèle client-serveur s'oppose également au mode autonome de travail des réseaux PEER to PEER.
Dans une organisation de type égal à égal (ou poste à poste), les fichiers sont répartis sur les disques durs de tous les ordinateurs (c'est la pagaille décentralisée) et tous les utilisateurs « voient » les autres ordinateurs qui sont connectés en même temps, c'est ainsi qu'ils peuvent savoir si une ressource localisée sur telle machine est accessible ou non.
Par contre, dans une organisation de type client-serveur, les fichiers sont généralement centralisés sur un serveur, et les utilisateurs « voient » le serveur mais ne « voient » pas les autres machines utilisateur, tout passe par l'intermédiaire du serveur. Dans un réseau de type client-serveur, les ordinateurs ne devront jamais avoir besoin des ressources d'une autre station, parce qu'ils ne pourront simplement pas y accéder. La totalité de l'architecture du réseau repose sur un ou plusieurs serveurs dédiés.
Dans certains réseaux client-serveur plus complexes, certaines stations peuvent faire office de clients et de serveurs (comme par exemple un réseau client-serveur basé sur un serveur NetWare et des clients Windows 95 en mode égal à égal). Le réseau est dit « bi-protocoles » (IPX et NetBEUI) ou « dual stack ». C'est souvent le cas quand le serveur NetWare sert de serveur d'impression.
Le modèle client-serveur est apparu grâce aux progrès technologiques qui ont permis de transformer les terminaux dépourvus d'intelligence, en de véritables ordinateurs avec une véritable capacité de traitement, de stockage, de présentation et de communication... Pour autant, quand un client fait appel à un serveur de base de données, par exemple, le serveur ne transmet pas toute la base de données au client (même si cela est envisageable, cette solution encombrerait beaucoup le réseau). En réalité, la situation la plus courante est que le client et le serveur se partagent le travail.
Les serveurs peuvent être dédiés à plusieurs tâches spécialisées :
- Les serveurs d'authentification
- Les serveurs de fichiers
- Les serveurs d'applications
- Les serveurs d'impression
- Les serveurs de messagerie
- Les serveurs Internet
- Les serveurs proxy
- Les serveurs RAS pour les connexions des utilisateurs à distance
- Les serveurs de sauvegarde
VI-2. Les avantages du modèle client-serveur▲
Les avantages du modèle client-serveur :
- Le réseau : L'architecture réseau la plus répandueUne plate-forme relativement bon marchéUne capacité de traitement comparable aux grands systèmesLe traitement d'un grand nombre de requêtes simultanéesLa réduction du trafic réseauLa répartition des tâches entre les clients et les serveurs exploite plus efficacement les ressources du réseau dans son ensembleLe stockage des données sur une ou quelques machines améliore leur sécurité
- L'administration : Une configuration personnalisableL'installation d'un grand nombre d'applications partagées, notamment les serveurs de base de donnéesLa centralisation de l'administration, de la stratégie de sécurité, de la maintenance, des sauvegardes, ...La centralisation des fichiersL'utilisation des serveurs d'applications qui réduisent le coût des licences d'exploitation (à partir de plus 20 stations utilisant la même application, il n'est plus rentable d'avoir 20 licences, et 20 fois le même logiciel...)
- Le matériel : L'économie en mémoire RAM et ROM sur les ordinateurs clientsLa concentration de la puissance sur les serveurs
- Les qualités intrinsèques : La souplesse et la puissance...L'indépendance et la centralisation...
VI-3. Le processus d'une requête SQL en client-serveur▲
L'application la plus utilisée en mode client-serveur est la base de données. Les bases de données permettent d'organiser fonctionnellement un très grand nombre d'informations, et de les trier au fur et à mesure des besoins. Le modèle client-serveur permet de centraliser les informations de la base de données et de répondre à un grand nombre de requêtes simultanées de la part des clients. Le langage pour exprimer une requête auprès de la plupart des bases de données est le SQL (Structured Query Language). Le langage SQL est un « langage d'interrogation structuré » qui a été conçu par la société IBM. SQL est devenu une norme, un standard dans le monde des bases de données. Le processus d'une requête SQL en client-serveur :
- L'utilisateur émet une demande
- La commande est traduite en SQL
- Le redirecteur intercepte la requête SQL et l'envoie à la carte réseau qui la transmet au support de communication
- La requête circule sur le réseau jusqu'au serveur de base de données
- Le serveur de base de données accepte la requête, la traite (recherche, extrait et trie les informations contenues dans les tables de la base de données) et envoie une réponse (un enregistrement SQL)
- La réponse circule sur le réseau
- Le client reçoit la réponse du serveur
- L'utilisateur visualise la réponse
L'application de base de données MICROSOFT ACCESS possède son propre langage SQL, mais son interface utilisateur permet d'interroger la plupart des autres bases de données.
VI-4. Le Client et le Serveur▲
Les composants d'un modèle client-serveur sont le client (aussi appelé le frontal, le FRONT END) et le serveur (aussi appelé le dorsal ou le BACK END). Les tâches sont réparties entre le client et le serveur (le client affiche, tandis que le serveur calcule).
L'outil VISUAL BASIC permet de programmer des frontaux et de personnaliser les accès et les requêtes auprès d'une base de données.
L'application MICROSOFT SQL SERVER permet à d'autres clients que ceux de MICROSOFT d'accéder à une base de données, sans avoir besoin d'installer un client supplémentaire.
VI-5. Le client▲
L'ordinateur client exécute une application cliente (le frontal) localement qui lui présente des fenêtres et s'occupe de la traduction des demandes en SQL :
- Une interface graphique utilisateur
- Des formulaires de demande (des clés de recherche)
- L'application formate les demandes de l'utilisateur en requêtes SQL
- L'application convertie et affiche les résultats (les enregistrements) renvoyés par le serveur
VI-6. Le serveur▲
Le serveur exécute l'application de base de données (le dorsal) localement, mais n'exécute pas d'application pour gérer l'interface utilisateur. Le serveur supporte la charge des requêtes des utilisateurs, et généralement stocke les informations de toute la base de données. Les données de la base peuvent être éventuellement stockées sur un ou plusieurs autres ordinateurs.
Le serveur de base de données s'occupe également de l'enregistrement des modifications (ajouts, suppressions, ...) des données, mais aussi de la conservation et de la consolidation de la base.
Quand il y a plusieurs serveurs sur le réseau pour la même base de données, la synchronisation des bases doit s'effectuer régulièrement. Quand les données de la base sont stockées sur plusieurs ordinateurs, il est possible de centraliser la base sur un DATA WAREHOUSE qui contient toute la base tandis que les autres ordinateurs n'en contient qu'une partie (généralement les données les plus fréquemment demandées).
Les procédures stockées (Stored Procedures) sont de petites routines préprogrammées qui permettent de simplifier les traitements les plus courants et d'obtenir plus rapidement les réponses. Une procédure peut être appelée par plusieurs clients en même temps.
VI-7. Les spécifications techniques pour un serveur▲
En général, les ordinateurs hébergeant un serveur dédié sont très puissants. Il faut que l'accès aux données stockées sur le serveur depuis le réseau soit acceptable pour toutes les stations clientes (qui peuvent émettre des requêtes en même temps). C'est pourquoi, les spécifications techniques d'un serveur sont hors du commun :
- Le bus de la carte mère rapide (nombre de bits transférés en parallèle d'un composant vers un autre, et la fréquence à laquelle ces bits sont transférés)
- Un ou plusieurs processeurs rapides
- Une quantité de mémoire vive importante
- Un ou plusieurs disques durs rapides et volumineux. Le temps d'accès aux disques (en lecture et en écriture) appelé le débit entrée / sortie (« throughput » en anglais) doit être très rapide, parce que c'est ce qui ralentit l'accès aux données pour le client.
- Une ou plusieurs cartes réseaux rapides
- Un câblage à haut débit