Vous êtes sur la page 1sur 11

Architecture Client-Serveur (S26)

Introduction :
 
Client-serveur est une expression que tout informaticien utilise aujourd’hui, autant pour
afficher sa connaissance des techniques actuelles que parce qu’elle est vraiment
incontournable. Cette expression fait référence à une mosaïque de conseils qui touche de
nombreux domaines en informatique.
Au début des années 90, le monde de client-serveur n’était une réalité que pour quelques
rares entreprises à la pointe de l’innovation.
Aujourd’hui, le nom est devenu familier mais il est souvent mal employé. L’architecture
client-serveur est considérée comme l’évolution la plus fondamentale depuis l’arrivée du
micro-ordinateur.
 
I.                   Contexte d’apparition du client-serveur.
 
Les années 60 : les traitements par lot.

C’est l’époque d’une informatique de spécialistes. La saisie des données se


déroule directement sur l’ordinateur central, loin de leur source de production.
Puis la saisie se fait par l’intermédiaire de cartes perforées dans le cadre
d’ateliers de saisie, plus proche de la source de saisie mais la saisie est
toujours dissociée des services sources. L’ordinateur est le seul lieu de
traitement et de stockage de l’information.
 
   Les années 70 : les traitements transactionnels.
 
Les traitements transactionnels sont possibles grâce à l’apparition de terminaux passifs.
terminal passif serveur
slim desktop (avec carte réseau et une
mémoire EPROM + driver + protocole
TCP/IP + IP+ masque de sous réseau)

La saisie se fait directement sur le lieu de production de l’information (bureau du


comptable, guichet d’une agence). Les applications deviennent interactives et sont
accessibles via ces terminaux. De nombreux utilisateurs peuvent accéder et modifier
simultanément aux données de l’entreprise, c’est l’avènement de la technique du temps
partagé.
L’ordinateur central reste le seul lieu de traitement et de stockage de l’information.
L’amélioration de cette époque résulte de la forte baisse des temps de réponse mais il
reste que c’est une information où les écrans sont peu ergonomiques et peu conviviaux.
De plus, les dialogues homme–machine sont guidés par la machine, l’utilisateur ne peut
avoir d’initiative.
 
   Les années 80-85 : l’apparition de la micro-informatique.
 
L’apparition de la micro-informatique engendre un fort bouleversement.
Sur le micro-ordinateur :
-          la saisie des données et leur traitement se fait directement sur le bureau de
l’utilisateur.
-          l’interface homme-machine est de plus en plus conviviale, instantanément avec
l’apparition du mode graphique, qui rend plus facile l’utilisation de l’ordinateur.
Mais deux informatiques coexistent, une informatique centrale et une locale. Or il est
fréquent que les données du système central soient ressaisies sur le micro-ordinateur
pour effectuer des traitements locaux tel que des statistiques. Ceci entraîne donc une fois
multiplication des saisies et des risques d’incohérence.
 
Les années 90- ?? : l’apparition du concept de client-serveur.
 

-1-
Architecture Client-Serveur (S26)
L’apparition du concept client-serveur est due à la conciliation des avantages de
l’informatique centralisée et de l’informatique individuelle.
 
Les avantages de l’informatique centralisée :
-          la convivialité et la facilité d’utilisation.
-          la décentralisation des capacités de traitement.
Client WIN 95

Serveur NT 2000

requête

 
II.                Définition.
 
L’architecture client-serveur désigne l’ensemble des moyens matériels, logiciels et de
communication permettant de mettre en place une application conforme au modèle
client-serveur.
Le modèle client-serveur est un mode de fonctionnement théorique basé sur la
séparation des rôles. Il décrit le mode de fonctionnement des applications.
 
A.                 Est appelé client-serveur …
 
… un modèle de fonctionnement logiciel dans lequel plusieurs programmes autonomes
communiquent entre eux par échange de messages.
 
B.                 Est conforme au modèle client-serveur …
 
... tous processus utilisant des services offerts par un autre processus et communiquant
avec lui à l’aide de messages.
 
C.                 Le terme serveur fait référence à …
 
... tous processus qui reçoivent une demande de service venant d’un client via le réseau,
traite cette demande et renvoie le résultat au demandeur, c’est-à-dire le client.
 

 
Serveu
r
requête

Client

(réseau)

message

-2-
Architecture Client-Serveur (S26)
D. Fonctionnement des applications client-serveur.
C’est l’application cliente qui prend l’initiative du dialogue, le programme dit « Client »
demande, par l’envoi d’un message, un service extérieur à un autre programme dit
« Serveur ». Une fois le service rendu, le programme « Serveur » renvoie un message au
programme « Client ». Toute cette communication se fait de manière transparente.
Le modèle client-serveur est un modèle de fonctionnement coopératif entre programmes.
Une architecture client-serveur fournit des services distants (base de données,
impression, messagerie) à des clients qui peuvent utiliser de manière transparente
l’ensemble des ressources informatiques mises à leur disposition.
 
III.             Les objectifs du client-serveur.
 
Répartir les tâches entre le client et le serveur :
-          décharger le serveur de l’exploitation des données.
-          décharger la station cliente de la gestion des données.
-          réduire le trafic sur le réseau.

requête

Client Serveur

(réseau)
SGBD-R

message

Tout utilisateur connecté à un site central disposait, il n’y a pas si longtemps sur son
bureau, de deux environnements :
-          un terminal passif ou micro-ordinateur en émulation dans un environnement de
type texte.
-          un micro-ordinateur permettant d’accéder aux applications bureautiques
personnelles ou partagées sur un réseau local.
L’idée du client-serveur est d’associer ces demandes, l’informatique centralisée (le
monde des mainframes) et la micro-informatique (le monde des PC), pour que
l’utilisateur dispose d’une fenêtre unique sur les systèmes d’informations de son
organisation. Le système informatique tire ainsi parti de la convivialité du micro-
ordinateur et de la puissance des systèmes centraux.
 
IV.              Concept du client-serveur.
 
En plus des concepts déjà cités, le client-serveur est généralement associé à d’autres
concepts :
-          une application client-serveur dispose d’une interface homme-machine de type
graphique.
-          le poste client est connecté à un réseau local.
-          le serveur héberge une base de données.
-          l’infrastructure s’appuie sur des systèmes ouverts et résulte d’une tendance à la
micronisation (downsizing) visant à remplacer un site central par un réseau de
petits systèmes.

-3-
Architecture Client-Serveur (S26)

Micronisation
(jusqu’à 8 micro-ordinateurs)

=
Mini IBM

baie de disques

Remarque :

Attention le phénomène de micronisation a été durant


un certains temps encouragé mais la prise en compte
des possibilités offertes par les mainframes a tempéré
cet engouement.

-          l’infrastructure technique est définit par trois acteurs, client, serveur et
communication (réseau).

Client Serveur
Communication (réseau)

 
A.                 Le client.
 
Il se définit par un équipement matériel et un environnement logiciel. Le poste de travail
du client est un micro-ordinateur disposant d’une interface graphique (un PC dans un
environnement Microsoft Windows). Le poste client assure la gestion d’une interface
utilisateur, le traitement local des informations et l’adressage des requêtes au serveur.
L’application client est réalisée à l’aide d’un outil de développement en environnement
graphique capable d’interroger la base de données hébergée par le serveur.
Les outils de développement sont classés en trois grandes familles :
-          les outils d’info centre relationnels permettent à l’utilisateur d’extraire
directement des données à l’aide d’un éditeur graphique de requêtes dans un
environnement de travail préparé pour lui (business, object).
-          les outils bureautiques évolués permettent d’accéder à des bases de données
distantes en mode client-serveur grâce à un gestionnaire d’accès (Access, Excel
via ODBC).
-          les outils de développement des L4G (Langage de Quatrième Génération).
Ce type d’outil sollicite trois composants :
o        un composant de développement d’interface graphique utilisateur.
o        un composant de développement de la logique d’application.
o        un composant d’accès aux bases de données.
 
B.                 Le serveur.
 
C’est une machine dont la puissance varie selon la taille du système d’information (SI) et
selon la fonction du serveur au sein de ce système. Il peut s’agir d’un serveur de réseau

-4-
Architecture Client-Serveur (S26)
local dans un groupe de travail ou d’un micro-ordinateur ou encore d’un ordinateur
central dans le cadre d’un système départemental. Plusieurs serveurs peuvent coexister.
Le serveur héberge un SGBD, il s’agit dans la plupart des cas d’un SGBD-R. Il est
responsable de la gestion de la base de données en terme de sécurité et d’intégrité ainsi
que de l’expédition des réponses aux différentes demandes formulées.
 
C.                 Le réseau.
 
Il est considéré comme l’ensemble de l’infrastructure de communication permettant le
dialogue entre le client et le serveur. L’un des objectifs des architectures client-serveur
est de fonctionner dans des environnements hétérogènes (logiciel). Le dialogue à
distance est complexe entre systèmes hétérogènes d’où la nécessité de couches
intermédiaires pour gérer cette complexité et pour rendre le dialogue transparent à
l’utilisateur.
 
1.                  Introduction sur Open System Interconnexion (OSI).
 
L’Open System Interconnexion est définit par l’ISO (normes) permettant la
normalisation, ceci à cause de problèmes de compatibilité des matériels et logiciels. Ce
modèle normalise de manière conceptuelle une architecture réseau dite en couche
attribuant à chacune d’elle un rôle bien particulier. Ce modèle représente les différentes
fonctions assurées lors d’un échange en réseau.
 
Client

Serveur

Application 7 7 A

Présentation 6 Middleware 6 P

Session 5 5 S

UDP/TCP
Transport 4 (prise en charge de la connexion) 4 T

Réseau 3 IP (protocoles routables) 3 R


ARP - RARP
MAC
Liaison 2 liaison de données (méthode d’accès) 2 L
LLC

Physique 1 média physique (câble) 1 P

192.168.0.1 Protocole de conversion MAC-IP 192.168.0.2 : 80


@MAC adresse physique
socket port
@IP adresse logique

-5-
Architecture Client-Serveur (S26)
Il faut retenir qu’une « couche client » ne communique pas directement avec sa couche
de numéro équivalent au niveau du serveur, les échanges passent tous par la couche 1
en premier.
 
2.                  Découpage de l’infrastructure.
En référence au modèle OSI, l’infrastructure de communication permettant le dialogue
entre le client et le serveur peut-être le suivant.
Les couches de 1 à 3 (réseau de communication), couche 4 (protocole de transport) et de
5 à 7 (middleware orienté logiciel) :
-          au niveau des trois couches basses, se situe le réseau de communication. Dans le
cadre d’une architecture client-serveur, le réseau local (LAN) et le WAN (réseau
étendu) interviennent.
-          la couche transport fournit un service de transport transparent de bout en bout,
ce qui permet au système en correspondance de ne pas avoir à prendre en
compte les caractéristiques du ou des réseaux utilisés.
Tous les mécanismes du client-serveur vont s’appuyer sur les services de cette
couche charnière.
-          les trois couches hautes du modèle OSI constituent le middleware, il a pour but
d’assurer la liaison transparente entre le client et le serveur au travers des
réseaux de télécommunication.
 
V.                 Typologie des architectures de type client-serveur.
 
A.                 Le découpage d’une application.
 
Interface utilisateur (présentation) Gestion de l’affichage = IHM
Logique de l’application Logique fonctionnelle (architecture de
(ensemble de traitements) applicatifs l’application) procédure d’accès aux données
(code à exécuter)
Gestion des données Gestion de l’intégrité des données, accès aux
données pris en charge par le SGBD
Nous avons donc trois modules, données, traitements et présentation.
La répartition de ces composants entre le client et le serveur se fera en fonction :
-          des types d’architectures retenues.
-          de la capacité du parc machines.
-          de la capacité du réseau.
 
B.     La classification du Gartner Group.
 
Le Gartner Group est une société américaine de consultants qui a proposé une typologie
des applications client-serveur. Cette typologie est composée de cinq modèles.
Elle ne résonne plus en terme de programme (client-serveur) mais en terme de poste. La
localisation de chacune des trois composants fonctionnels sur le poste client ou serveur
détermine le type d’architecture de l’application.
requête

Client Serveur

(réseau)

message

-6-
Architecture Client-Serveur (S26)

Protocoles communs
pour dialoguer
Routable :
TCP/IP GNU (ouvert) routable
peut passer à travers les
routeurs. IPX/SPX NOVELL routable
NETBUI Microsoft non routable

Type 1 :
la présentation distribuée ou revamping (= remodelage, interface graphique).
 
 
Côté Serveur Côté Client
 données  
 traitements  
 présentation  présentation
 
Elle permet de moderniser en mode graphique l’interface utilisateur sans modifier
l’architecture de l’application existante. Le poste de travail fournit une interface
graphique évoluée à une application existante, conçue à l’origine avec un affichage en
mode caractère, ce qui améliore la présentation.
C’est ce que l’on appelle le « rhabillage » (revamping ) ou remodelage.
Cette approche permet de remplacer les terminaux par des micros. Toutefois la
présentation distribuée liée au remodelage de l’application n’est pas à proprement parler
du client-serveur. Il s’agit de déporter uniquement le module de gestion de l’affichage sur
le poste de client.
 
Les avantages :
-          il améliore l’interface utilisateur de l’application.
-          il allonge la durée de vie de l’application existante.
-          il constitue une solution intermédiaire avant le passage client-serveur.
 
Les inconvénients :
-          besoin d’un débit important sur le réseau.
-          le serveur assure seul l’ensemble des fonctions.
 
Type 2 :
la présentation distante ou déportée.
 
Côté Serveur Côté Client
 données  
 traitements  
 présentation
 
La partie présentation n’existe que sur le poste client. Toute la gestion de l’IHM est
déportée au niveau du poste client. Ce dernier 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être
qui se charge de la mise en forme à l’écran des données issues du serveur. Le cœur de
l’application et l’ensemble des données résident sur le serveur.
 
Les avantages :
-          il améliore l’interface utilisateur de l’application.
-          il préserve les investissements applicatifs.
 
Les inconvénients :
-          besoin d’un débit très important sur le réseau .

-7-
Architecture Client-Serveur (S26)
Remarque :
Ce mode est bien souvent réservé à la sphère UNIX.
 
Type 3 :
les traitements distribués.
 
Côté Serveur Côté Client
 données  
 traitements  traitements
   présentation
 
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 au serveur pour
exécuter un certain nombre de services extérieurs. Elle renvoie pour cela des requêtes
qui vont activer des traitements, appelés procédures localisées sur le serveur.
 
Les avantages :
-          ce mode évolué de client-serveur permet de limiter le trafic sur le réseau.
-          une utilisation rentable de la puissance du poste de travail.
-          une répartition équilibrée des traitements entre le client et le serveur.
 
Les inconvénients :
-          processus de développement plus complexe car les traitements devront prendre
en compte deux environnements différents.
 
Type 4 :
la gestion des données distantes (client-serveur de données).
 
Côté Serveur Côté Client
 données  
   traitements
   présentation
 
La partie cliente assure à la fois les fonctions de présentation et la logique applicative
(exécute l’ensemble de l’application de base). Le serveur héberge l’ensemble des
données et assure uniquement la gestion de ces données, le plus souvent à l’aide d’un
système de gestion de base de données relationnelles (SGBD-R). 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.
 
Les avantages :
-          une répartition claire entre le client et le serveur.
-          une offre variée et mature de SGBD-R.
-          la sécurité, la gestion et le contrôle d’intégrité des données sont pris en charge
par le serveur.
 
Les inconvénients :
-          il génère un dialogue plus important que le mode traitements distribués (mode
type 3)
-          il est non adapté aux environnements transactionnels intensifs.
 
Le client-serveur de données est le type le plus répandu puisque les SGBD-R sont prévu
pour fonctionner ainsi.
 
Type 5 :
la gestion des données distribuées.
 

-8-
Architecture Client-Serveur (S26)
 
Côté Serveur Côté Client
 données  données
 traitements
 présentation
 
Les données sont réparties entre le poste client et un ou plusieurs serveurs. Dans un tel
environnement, les données reparties doivent pouvoir être gérées comme un ensemble
unique et cohérent (base de données répartie). Le poste client devenant lui-même
serveur de données, il se crée des liens type serveur-serveur qui nécessitent une gestion
des données à grande échelle et bien souvent dans un environnement hétérogène.

A la fois client et serveur

BD

BD

BD

 
Remarque  :
il s’agit du type client-serveur le plus rarement mise en œuvre, d’une part pour des
raisons de sécurité et d’autre part, à cause de la difficulté de programmation de ce type
d’application.
 
Conclusion :
il existe des combinaisons possibles de ces différents types d’architecture. Cependant,
trois grands types se dégagent,
-          client-serveur de présentation (type 1 et 2)
-          client-serveur de procédures (type 3)
-          client-serveur de données (type 4 et 5)
 
VI.              Le middleware.
 

-9-
Architecture Client-Serveur (S26)

Il correspond aux logiciels chargés d’établir la communication entre les processus


clients et serveurs.
C’est le passage obligé entre client et serveur, considéré comme un ensemble de
briques logiciels, au dessus du protocole de transport (5, 6, 7, couches logicielles)
TCP/UDP. De plus chaque couche prend en charge une partie du dialogue et certaines
d’entre elle peuvent enrichir ce dialogue.
Le routage de requête se fait traditionnellement en SQL. Les jointures en milieu
hétérogène assurent les fonctions se rapportant aux couches 5 (session), 6
(présentation) et 7 (application).
A 7

P 6 Middleware
I
S 5 Interface
T 4 P
Processus
R 3
C
L 2 Communication
P 1

 
Les avantages :
-          il offre des services de haut niveau aux applications.
-          il rend portable les applications.
-          il prend en charge les protocoles de conversion des caractères.
-          il établit des sessions entre clients et serveurs hétérogènes.
 
Les objectifs :
-          les transports des requêtes et des réponses.
-          la simplification de la session utilisateur.
-          l’harmonisation des types de données.
-          les performances et la fiabilité.
 
D’autre part le middleware a une double mission d’interface.
Avec le réseau il assure la mise en forme de la donnée en vue de sa prise en charge par
la couche transport.
Avec le processus client ou serveur, il permet la gestion des appels de fonctions de
l’application ou la gestion du renvoi des résultats.
 
CLIENT Serveur

Application Application

I API I API

P P
(Réseau)
C C
FAP FAP

 
Ces deux missions du middleware sont en fait assurées par des composants distincts.
La couche application, partie haute du middleware, et l’ API (Application Interface
Programing) interface de programmation de haut niveau applicatif.
Son rôle est d’effectué l’interface entre l’application et le système. Elle regroupe
l’ensemble des fonctions qui peut appeler l’application cliente réclamant un service.

- 10 -
Architecture Client-Serveur (S26)
Le middleware permet d’accéder aux services du serveur indépendamment des outils et
du réseau. La norme SQL constitue l’API la plus populaire (langage normalisé de
manipulation de base de données relationnelles).
 
Les fonctions accessibles à l’application au moyen de l’API sont :
-          la connexion, la déconnexion avec le serveur.
-          la définition de l’environnement de la connexion (variable, tampon (buffer)).
-          le transfert des requêtes et la réception des résultats.
 
L’API est donc la couche logicielle du middleware, en relation avec l’application, elle
transmet les requêtes destinées au serveur ou à l’autre couche du middleware, le FAP,
qui se chargera du conditionnement du transfert sur le réseau (Format Access Protocol,
protocole d’échange et de format au niveau des données).
Son rôle est d’assuré la synchronisation du dialogue entre le client et le serveur. Il assure
également la reconnaissance du format des données échangées. Il s’en remet ensuite
aux couches inférieures, correspondant aux fonctions du réseau. Il s’agit du processus
logiciel qui est utilisé lorsque les protocoles de communication différents sont en place
entre le client et le serveur.
La fonction du FAP est d’assurer un formatage de la requête adressée par l’API (qui n’est
qu’une suite de caractères ASCII pour permettre son transport sur le réseau). +
A une extrémité, le FAP reçoit la requête, la renferme dans une trame destinée au
transport sur le réseau.
A l’arrivée sur le serveur, le FAP de celui-ci récupère la trame, la « dépaquette » et
adresse la requête à l’adaptateur, l’API pour le serveur.
Après l’exécution du traitement correspondant, la réponse est transmise sur le réseau
selon le même schéma jusqu’au client.
 
Les dialogues entre client et serveur.
 
Il existe deux modes de communication supportés par les middlewares :
-          le mode connecté, ou mode synchrone), où le client doit attendre la réponse du
serveur pour continuer de travailler.
-          le mode non connecté, ou mode asynchrone, où le poste client n’est pas bloqué
durant le traitement de sa requête par le serveur.
Les RPC (Remote Procedure Called, appel de procédures à distance), mode connecté, le
processus client invoque une procédure distante comme si elle s’exécutait sur la même
machine. Lorsque l’application client appelle une procédure à distance via un RPC, elle
accompagne sa requête des informations nécessaires à son exécution sur le serveur et
interrompt son traitement dans l’attente d’une réponse (mode synchrone). Le serveur
exécute alors la procédure demandée puis retourne le résultat à l’application cliente qui
poursuit son traitement.
Une relation client-serveur de ce type ne génère que deux messages, un à l’émission,
l’autre à la réception.
 
L’avantage :
-          il est facile à mettre en œuvre (une seule instruction suffit à la déclencher).
 
En mode non connecté, les messages dialoguent par message (mode asynchrone).
Il donne alors lieu à l’échange de plusieurs messages entre le client et le serveur :
-          un pour une demande de connexion.
-          un pour l’authentification de l’émetteur.
-          un pour l’émission de requêtes.
-          un pour la réception des résultats.
-          un pour l’émission de synchronisation et de fin de connexion.
Ce mode est particulièrement adapté à la gestion transactionnelle mais il est exigent en
ressource.
 
 

- 11 -

Vous aimerez peut-être aussi