Projet Webmaster
Gestion de projets web ntic

Du concept au projet informatique - De la maîtrise d’oeuvre à la maîtrise d’ouvrage

Web-ntic MOE MOA > Powerbuilder > Client Serveur présentation

Client Serveur présentation

jeudi 27 mars 2003, par km

Le client serveur, connaissance et présentation de l’architecture de un à n tiers.

Description :

Le Client-serveur est une architecture où un Poste client exécute une application se trouvant sur un serveur. Il y a plusieurs types d’architecture de C/S selon que les applications et les données se trouvent sur le même ordinateur que le poste client ou non. On parle d’architecture de un à trois niveaux. Internet propose lui une architecture client serveur "Multi-niveaux"

Problématique :

Le client-serveur est apparu pour répondre aux problématiques que posaient les systèmes centraux. Certains handicaps des systèmes centraux ont été comblés au niveau du SI posant d’autres problèmes et ne résolvant pas certains. Alors qu’Internet semble pouvoir permettre de jouer le rôle de client serveur universel, les systèmes mainframes ont toujours leurs place dans les SI.

Dossier

Historique :
Le client-serveur est une évolution du Mainframe et permet par l’utilisation de nouvelles méthodes et techniques de passer outre les limites que l’on connaissait avec l’environnement précédent et les systèmes propriétaires et ainsi d’améliorer l’interopérabilité, la flexibilité des systèmes.

Environnement centralisé

  • Développement en cascade
  • Traitement centralisé
  • Programmation procédurale
  • Utilisation du code

Environnement client-serveur

  • Développement itératif
  • Traitement distribué
  • Programmation événementielle
  • Réutilisation des objets

Dans un système central, la logique de traitement se situe sur la machine hôte, l’utilisateur interagissant avec celui-ci au travers d’un terminal PC ou passif en mode caractère généralement. Pour les données, le système central est basé sur une architecture de fichiers partagés, et les fichiers sont traités dans leur totalité. Les applications sont développées sans décomposer leurs trois champs d’activité (la présentation, le noyau applicatif et l’accès aux ressources) [Bénard95]

Dans une architecture client-serveur, le client est défini comme un demandeur de services auprès du serveur qui en est le fournisseur. Le système de fichier est remplacé par une base de données que l’utilisateur interroge au travers de requêtes. Les communications entre client et serveur se font soit par RPC (Appel de procédures distantes) soit par requêtes SQL.

Au niveau du SI, les systèmes centraux sont des systèmes dits "propriétaires" posant des problèmes techniques et de gestion.

Le client-serveur dit système "ouvert" répond à ces problèmes par l’ouverture :

  • par une architecture fondée sur plusieurs produits de fournisseurs différents ;
  • par nécessité d’intégrer des outils, techniques et services standards ;
  • par stratégie englobant les standards.

Les limites
Cette ouverture a néanmoins un coût, ou plus exactement des coûts. Selon [Rugy98] les coûts se repartissent en coûts d’acquisition (matériel, logiciels et extension de matériel), coûts d’administration (coûts de toutes les taches nécessaires au processus d’achat ou d’approvisionnement), coûts d’assistance à l’utilisateur (formation, déménagement ...) et coûts utilisateur (autoformation, exploitation du poste, formation informelle). L’auteur compare la période actuelle "d’informatique répartie" avec la période précédente "d’informatique atomisée" ou la décision d’achat ou d’évolution de matériel était décidée de manière locale et totalement décentralisée, participant à l’hétérogénéité des systèmes.
L’informatique répartie peut permettre de prendre conscience de ce coût et donc de prendre des mesures pour harmoniser le matériel et permettre des achats centralisés. Concernant les coûts, le Gartner Group fournit à ce niveau des chiffres depuis 1987 qui représentent certes une moyenne concernant l’Amérique du Nord mais dont le sens va dans celui de l’augmentation de ces coûts. Pour cet organisme le coût de possession d’un poste serait de 47.000 fr. par an et pour un poste connecté au réseau de 67.000 fr. par an. Le Gartner Group indique de plus que son calcul est basé sur un cycle vie du matériel de trois ans contre cinq pour 1987. Cette diminution témoigne du taux de remplacement moyen, il faudrait savoir au niveau de l’entreprise si la durée de vie est limitée par l’obsolescence du matériel, la gourmandise croissante des logiciels en temps processeur ou le désir de l’utilisateur d’avoir un matériel plus puissant, plus récent.

L’ouverture peut-être freinée par des contraintes que [Bénard95] classe en trois catégories, l’entreprise, les projets, le marché ; il explique ainsi que l’héritage informatique, composé de systèmes ; réseaux et logiciels hétérogènes, nécessite un plan d’urbanisation pour favoriser l’ouverture et faire évoluer l’héritage. Sur le plan du marché, il souligne que les multiples fournisseurs font qu’un nombre plus ou moins importants de composants techniques vont entrer dans l’entreprise (favorisant l’hétérogénéité des systèmes). Ces composants devront être matures et disponibles et capables d’évoluer et de communiquer avec d’autres produits.

Modèle du client-serveur bipartite.
L’architecture client-serveur généralement utilisée aujourd’hui repose sur un modèle d’architecture distribuée bipartite. L’interface graphique se situe sur le poste client et la base de données est localisée sur le serveur. La logique de traitement pouvant se situer sur l’une ou l’autre des parties. Dans une architecture client-serveur bipartite, les PC sont généralement connectés aux serveurs de base de données via un réseau local.
L’utilisateur final contrôle le poste client qui réalise une grande partie des traitements de l’application et sollicite des informations ou des traitements SQL de la part de un ou plusieurs serveurs [FAURE97]. Dans le modèle bipartite, une partie de la logique de gestion réside sur le serveur sous la forme de procédures stockées et de triggers. La caractéristique majeur du serveur est d’être disponible pour répondre, de préférence de manière simultanée, aux demandes de plusieurs clients [Bénard 95].. Ce type d’architecture est une bonne solution d’informatique distribuée lorsque le nombre d’utilisateurs ne dépasse pas une centaine d’utilisateurs, [SEI97] cependant il existe d’une part une limite tenant au fait que la connexion est maintenue en permanence entre le client et le serveur, même si aucun travail n’est effectué, d’autre part les procédures d’accès aux données étant spécifiques aux moteurs de base de données, la flexibilité et le choix d’une base de données sont réduites.
L’architecture tripartite permet de dépasser ces limites, et d’apporter une meilleure réactivité de l’entreprise en cas de changements.

Modèle du client-serveur tripartite.
Dans l’architecture trois tiers ou multi-tiers, un niveau supplémentaire est ajouté entre les deux niveaux précédents, permettant de séparer les traitements de l’interface graphique et du serveur de base de données. Ce niveau intermédiaire peut être implémenté de différentes manières entre moniteur transactionnel, serveur de messages, ou serveur d’application. Le dialogue peut se faire en mode synchrone ou en mode asynchrone, dans ce cas l’utilisateur est informé lors d’une nouvelle connexion du résultat de sa requête précédente. L’architecture tripartite supporte de la centaine d’utilisateurs à plusieurs milliers accédant à plusieurs serveurs répartis géographiquement [SEI97].

La division de l’application en couches distinctes, consacrées à l’interface utilisateur graphique, à la logique de gestion (partitionnée entre plusieurs processeurs) et aux traitements sur la base de données permet de faciliter l’extension et la maintenance des applications tout en offrant un moyen d’intégration des nouvelles applications aux systèmes existants. Ce gain engendre toutefois des taches plus complexes d’administration des composants de l’architecture (clients, serveurs et équipement réseau) ou du déploiement de l’application vers les serveurs. [Bénard95].

Le client-serveur "universel"
Au delà de l’architecture trois tiers, et pour répondre aux problèmes posés par l’hétérogénéité des systèmes, et notamment leur administration, le concept de client "universel" à émergé, il repose sur la technologie Internet.
A l’instar du slogan de Sun concernant son langage Java [SEI97], [Lefevre98] définit le concept de client-serveur "universel" comme l’architecture technique qui permettrait d’écrire une application une fois et de la déployer sur tous les types de serveurs, indépendamment de leur hétérogénéité..

Le concept Internet ou le n-tiers
Les bases de l’Internet aussi nommé « Réseau des réseaux » ont été définies en 1969 avec le projet ARPANET. L’Internet est aujourd’hui le premier réseau mondial accessible à toutes les entreprises. L’Internet fut longtemps réservé aux universités américaines et aux scientifiques. En 1989, Tim Berners Lee, alors ingénieur au CERN, définit le World Wide Web : une technologie qui permet à partir d’un logiciel client appelé navigateur (ou browser) d’accéder facilement à des documents stockés sur un serveur connecté à l’Internet. Avec le Web, l’Internet s’ouvre au grand public et ne nécessite plus de connaissances spécifiques en informatique. Le modèle Internet est celui du client-serveur, où un programme client permet à un utilisateur de soumettre des requêtes à un serveur Web et de visualiser le résultat, le serveur Web étant un programme qui tourne sur un ordinateur dans le but de répondre à des requêtes de logiciel client qui tournent sur d’autres ordinateurs. [Dagorn94] Un document est la plus petite unité fournie par le serveur en réponse à une requête du client [Dagorn94]. Les documents Web, qui utilisent l’hypertexte, pointent vers d’autres documents et permettent ainsi, par un clic de souris, de passer en toute transparence d’un document hébergé sur un serveur à Tokyo, à un document stocké sur un serveur à New-York.
Un document Web est appelé page. Le langage utilisé pour créer des pages est HTML. La communication entre navigateur et serveur Web se fait grâce à un protocole spécialisé dans le transport de ce type de pages : HTTP. Un programme serveur dédié à la gestion de ce protocole est au coeur de tout serveur Web. Il se charge de répondre aux demandes des navigateurs, va chercher la page désirée et la renvoie à l’utilisateur qui la consulte depuis son navigateur. Le Web permet non seulement d’accéder à des documents statiques et prédéfinis, mais aussi d’accéder dynamiquement à des informations stockées sur des systèmes de bases de données. Ainsi, le Web peut être vu comme un nouvel environnement de développement d’applications client-serveur. Créer des pages HTML dynamiquement sur le serveur permet de personnaliser les informations en fonction des interactions de l’utilisateur. Souvent, cette interactivité se traduit concrètement par un échange client-serveur avec une base de données. Dans ce cas, on ne crée donc plus un document statique, mais un document personnalisé.

Ceci pose les bases du concept d’application réelle au travers du Web.

Les références bibliographiques

  • Powerbuilder vers l’architecture distribuée Mémoire de DESS - IAE 1999
  • [Rugy 98] Alain de Rugy, "Management et gestion de parc informatique" Edition Hermes 1998
  • [SEI97] Software Engineering Institute, Handbook, CMU/SEI-97-HB-001, Janvier 1997
  • [Dagorn94] François Dagorn , "World-Wide Web",
    URL :ftp//:ftp.urec.fr/pub/reseaux/services_infos/WWW/docs/WWW.ps.Z, 1994
  • [Bénard95] Philippe Bénard, Alain Dang-Van-Mien, "L’architecture de services" Edition Addison-Wesley, Juillet 1995
  • [Lefevre98] Alain Lefevre, "Web client-serveur", CMP, 10/1998





Répondre à cet article et accéder au Forum Client Serveur présentation

Imprimer Client Serveur présentation