Système d'information de Gestion Architecture Client-Serveur Table des matières LES PRINCIPES DE BASE ........................................................................................................................... 1 Présentation distribuée-Revamping ..........................................................................................................................................2 Présentation distante ................................................................................................................................................................3 Traitements distribués ..............................................................................................................................................................3 Gestion des données distantes-RD ..........................................................................................................................................4 Gestion des données distribuées-RDA distribué ......................................................................................................................4 L'ARCHITECTURE WEB 3 TIER.................................................................................................................... 5 QU'EST CE QU'UN SERVEUR ?...................................................................................................................... 6 Serveur d'applications...............................................................................................................................................................6 Serveur de fichiers....................................................................................................................................................................6 L'architecture client/serveur désigne un mode de communication entre des ordinateurs et des logiciels Les mots « serveur » et « client » désignent les logiciels de type serveur et client dans cette architecture. On parle d'Architecture Client Serveur à plusieurs niveaux. En anglais niveau est traduit par « Tier », ce qui engendre une certaine confusion dans la langue française quand on entend parler les informaticiens d'Architecture 2 tier ou 3 tier. Dans l'architecture Client/Serveur : • • • • Le serveur est à l'écoute, prêt à répondre aux requêtes envoyées par des clients. Les clients sont généralement pilotés par des utilisateurs. Ils prennent l'initiative d'envoyer des requêtes au serveur, puis attendent la réponse pour la donner, le cas échéant, à l'utilisateur. Un serveur est capable de servir plusieurs clients simultanément, jusqu'à plusieurs milliers. Le serveur et le client utilisent le même protocole de communication. L'architecture trois tier est une extension de l'architecture client-serveur. L'architecture client/serveur correspond à 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 les postes client. Ce modèle minimise les flux sur le réseau et tire partie de la puissance des machines locale et centrale. Les principes de base Le client/Serveur repose sur une communication d’égal à égal entre les applications. La Communication est réalisée par dialogue entre processus deux à deux : Un processus est le client, l’autre le serveur. Les processus ne sont pas identiques mais forment plutôt un système coopératif. Le résultat de cette coopération se traduit par un échange de données, le client réceptionne les résultats finaux délivrés par le serveur. Le client initie l’échange, le serveur est à l’écoute d’une requête cliente éventuelle. Le modèle client/serveur constitue un système coopératif sans distinction à priori entre les différents membres du réseau. Chaque membre peut alternativement : • être client et/ou serveur ; © Jacques Chambon 1/6 19-COURS_SI_Client-Serveur Système d'information de Gestion Architecture Client-Serveur • demander un service ; • réaliser un service donné pour un ou plusieurs autres membres du réseau. L'exécution d'un service nécessite beaucoup de ressources machine (CPU, mémoire résidente, mémoire secondaire, …) On peut décomposer fonctionnellement une application informatique en trois parties : la première concerne l’interface utilisateur, c’est à dire tout ce qui à trait au dialogue entre l’utilisateur et l’application (Présentation). La seconde partie représente l’ensemble des traitements et leur enchaînement logique (Logique Applicative). Enfin la troisième porte sur la gestion des données proprement dite. Le gartner group, cabinet d’étude nord-américain, a publié une classification des différents modes client-serveur reposant sur cette décomposition applicative. On y retrouve ces trois composants fonctionnels appelés respectivement « Présentation », « Logique applicative », et « Gestion des données ». Classification des modes client-serveurs (source Gartner Group) en architecture 2 tier : Serveur Présentation Distribuée Présentation Déportée Logique Distribuée Gestion de Données Déportées Gestion de Données Distribuées Gestion des Données Gestion des Données Gestion des Données Gestion des Données Gestion des Données Logique d'application Logique d'application Logique d'application Présentation Gestion des Données Client Présentation Logique d'application Logique d'application Logique d'application Présentation Présentation Présentation Dans cette classification, on ne raisonne plus seulement en termes de programmes, client ou serveur, mais en termes de postes. Ainsi, la localisation de chacun des trois composants fonctionnels sur le poste client ou sur le poste serveur détermine le type d’architecture de l’application. Présentation distribuée-Revamping Le premier mode, appelé « Présentation Distribuée », est plus connu sous le terme de rhabillage (ou revamping). Cette opération permet d’ajouter à une application existante une interface graphique évoluée. Il s’agit généralement d’une application centralisée sur un gros ou moyen système, dont on veut améliorer la présentation. La Présentation distribuée sert à : ● améliorer la qualité de l’interface applicative, ● préserver les investissements en allongeant la durée de vie d’applications existantes, ● offrir une solution intermédiaire avant le passage au client-serveur. © Jacques Chambon 2/6 19-COURS_SI_Client-Serveur Système d'information de Gestion Architecture Client-Serveur Par contre elle n’offre aucune amélioration fonctionnelle de l’application ni de gain de performance, le serveur assurant seul l’ensemble des traitements, de plus elle induit une charge réseau élevée. Présentation distante Dans le second mode, la « Présentation Distante », la partie présentation de l’application n’existe que sur le poste client. Celui-ci est conçu pour prendre en charge l’ensemble des tâches liées à l’affichage : il dispose pour cela d’un gestionnaire de fenêtres qui se charge de la mise en formes à l’écran des données issues du serveur. Ce type de modèle se retrouve dans deux environnements. Sur les plateformes Unix, ce système permet de présenter l'environnement système en mode graphique, et dans un environnement Web, le navigateur est chargé de l'affichage des pages qui lui sont fournies par le serveur. Traitements distribués Dans le cas des « Traitements Distribués », appelés aussi « Client-serveur de procédures », les traitements de l’application sont répartis entre le poste client et le poste serveur. . La partie cliente contient la logique fonctionnelle de base et fait appel à des serveurs pour exécuter un certain nombre de services extérieurs. Elle envoie pour cela des requêtes qui vont activer des traitements, appelés procédures, localisés sur les serveurs. C'est dans l'environnement Web qu'on trouve aujourd'hui l'illustration de ce modèle. Sur un site à vocation commerciale, le contrôle de présence des données obligatoires sur un formulaire sera vérifié sur le poste client, tandis que la recherche des produits sur le catalogue sera traitée par le serveur. © Jacques Chambon 3/6 19-COURS_SI_Client-Serveur Système d'information de Gestion Architecture Client-Serveur Gestion des données distantes-RD Dans la « Gestion des Données Distantes » ou « Client-serveur de données », la partie cliente assure à la fois les fonctions de présentation et de logique applicative. Le serveur assure uniquement la gestion des données, le plus souvent à l’aide d’un système de gestion de base de données relationnelle. Dans ce modèle, l’application cliente envoie les requêtes au serveur de données, qui envoie en retour les données demandées, ou informe le client du résultat obtenu. La mise en place d’une application de ce type est facilitée à la fois par une répartition claire des fonctions entre le client et le serveur, et par les produits tels que les SGBD relationnels qui peuvent aussi ajouter le contrôle d’intégrité. Il s’ensuit une sécurité accrue dans la gestion des données, mais aussi une amélioration sensible des performances, car les requêtes de contrôle n’ont pas à transiter du poste client vers le serveur de données. Gestion des données distribuées-RDA distribué Enfin, dans la « Gestion des Données Distribuées », les données sont réparties entre le poste client et un ou plusieurs postes serveurs. Dans un tel environnement, les données réparties doivent être gérées comme un ensemble unique et cohérent. Le poste client devenant lui-même serveur de données, il se crée des liens de type serveur-serveur qui nécessite une gestion des données à grande échelle et, bien souvent, dans un environnement hétérogène (machines, systèmes d’exploitation, réseaux et SGBD distincts). Ce modèle correspond en théorie au modèle idéal de répartition car il permet d’agencer les données de manière avantageuse pour l’entreprise (cohérence du système par la globalisation des ressources hétérogènes) et pour l’utilisateur (proximité des données, rapidité de traitements). Mais sa mise en oeuvre demeure complexe car il y a peu de produits capables d’assurer, en environnement distribué, la gestion, la sécurité (gestion des accès) et l’intégrité des données réparties sur plusieurs postes clients et serveurs. Ce modèle reste un domaine nouveau et les enjeux sont tels qu’ils engagent l’entreprise toute entière s’il est mis en œuvre à grande échelle. © Jacques Chambon 4/6 19-COURS_SI_Client-Serveur Système d'information de Gestion Architecture Client-Serveur L'architecture Web 3 tier L'architecture 3 tier est utilisée dans les sites Web dits dynamiques, c'est à dire ceux qui nécessitent l'interrogation d'une base de Données. L'application la plus connue est le site commercial. Au premier niveau, on trouve le client Web, au deuxième le serveur applicatif qui offre une vision métier de l'application et au troisième niveau les Données exploitées par le serveur applicatif. L'utilisateur (le client au sens strict du terme) interroge un site web commercial via son navigateur : 1. le client envoie la requête http://www.site_voyage.com. 2. Le serveur Web répond en envoyant une page au client. 3. Le client fait un choix parmi les diverses destinations proposées. 4. Le serveur Web en fonction du choix du client, lance une requête dans la Base de Données pour vérifier les opportunités à offrir 5. Le serveur Base de Données répond au serveur Web qui met en page les offres possibles 6. et envoie le résultat au Client qui l'affiche dans son navigateur. 7. Etc... Les outils nécessaires pour faire fonctionner l'architecture précédente : Sur le poste de Travail Un logiciel de Client Universel : un navigateur ( Internet Explorer, Firefox, Opéra, ...) Un langage de programmation : JavaScript, pour faire des contrôles en local. Sur le serveur Web Un logiciel serveur de pages Web (Apache ou IIS ) Un langage de traitement des pages (Java, PHP, ASP...) Sur le Serveur de Gestion des Données Un logiciel de Gestion de Base de données Un langage de Manipulation des Données : SQL © Jacques Chambon 5/6 19-COURS_SI_Client-Serveur Système d'information de Gestion Architecture Client-Serveur Qu'est ce qu'un serveur? Serveur d'applications Serveur hébergeant les applications destinées à être utilisées dans un réseau distribué. En comparaison au serveur de fichier qui abrite les données destinées à être téléchargées et traitées par le poste client, le serveur d'applications assume une partie du traitement. Serveur de fichiers Un serveur de fichiers permet de partager des données à travers un réseau. Le terme désigne souvent l'ordinateur (serveur) hébergeant le service applicatif. Il possède généralement une grande quantité d'espace disque où sont déposés des fichiers. Les utilisateurs peuvent ensuite les récupérer au moyen d'un protocole de partage de fichier. On utilise généralement l'un des trois protocoles suivant : • FTP (File Transfer Protocol) • CIFS (Common Internet File System) • NFS (Network File System) Le choix du protocole dépend princialement de la méthode d'accès des utilisateurs. CIFS est utilisé par les systèmes d'exploitation Microsoft Windows, NFS est répandu dans le milieu UNIX. Toutefois des implémentations de ces protocoles sont disponibles pour tout type de système. Ces deux protocoles permettent d'établir des liaisons permanentes entre le client et le serveur. FTP est utilisé pour des connexions ponctuelles lorsque le client n'a pas besoin d'être connecté en permanence au serveur de fichier. © Jacques Chambon 6/6 19-COURS_SI_Client-Serveur