Introduction : pourquoi le Client-Serveur ?
Architectures Client-Serveur
Evolution des organisations :
Bernard ESPINASSE
1980-1990
1985-1995
1995-2000
Professeur l'Universit d'Aix-Marseille
2011
Introduction : pourquoi le C/S, les enjeux
Dcoupage d'une application
Dialogue entre client et serveur : le middleware (IPC = API+FAP)
Types de Middleware : RPC, APPC / RDA, Message queuing
Le schma du Gartner Group : C/S de prsentation, de donnes,
de traitements
L'offre en middlewares
Les performances du Client-Serveur
Bernard ESPINASSE - Architecture Client-Serveur
hirarchique
hirarchique
rparti
et centralis
et dcentralis
(entreprise virtuelle)
Bernard ESPINASSE - Architecture Client-Serveur
Pourquoi le Client-Serveur ?
Pourquoi le Client-Serveur ?
Inversion de la pyramide :
volution des besoins : production, informationnel, communication
volution des techniques : micro-informatique + rseaux locaux
PILOTAGE PAR LE CENTRAL
contraintes des architectures hierachiques : rseau centralis, htrognit des
postes de travail, rigidit des applications, ...
serveur
central
central
serveur
dept.
! le client-serveur :
gestion
rseau
principes gnraux :
poste de travail multi-fonction
possibilit d'accs multi-serveur
localisation des donnes
rpartition des traitements
pilotage par l'utilisateur
consquences :
serveur
local
Dept.
Dept.
Dept.
gestion
rseau
poste de
travail
dfinition de relation Client - Fournisseur
transformation des mtiers
volution des responsabilits
une mutation dlicate
PILOTAGE PAR L'UTILISATEUR
Bernard ESPINASSE - Architecture Client-Serveur
Bernard ESPINASSE - Architecture Client-Serveur
Enjeux stratgiques du Client-Serveur ?
Dcoupage d'une application: 3 niveaux
Enjeux stratgiques :
gestion de la
prsentation
productivit individuelle (micro)
performance collective : communication, disponibilit du patrimoine
d'information personnalisable
ractivit : rduction des dlais, flexibilit des applications
Prsentation
logique de la
prsentation
coeur de l'application
Enjeux organisationnels :
logique des
traitelents
souplesse organisationnelle par banalisation du couple "homme-machine"
et "polyvalence" du personnel
fluidit de l'information
communication inter-services et inter-personnes
Traitements
gestion des
traitements
Enjeux humains :
logique des
donnes
usage intuitif, appropriation de l'outil, enrichissement des tches,
initiative, moindre rsistance au changement, communication,...
Donnes
gestion des
donnes
Enjeux techniques :
cohrence technique : libres changes des applications et des
informations,
dfinition d'architectures modulaires : serveurs, poste de travail,
dification de normes et standards : chartes, guides, rgles d'hygine ,
Bernard ESPINASSE - Architecture Client-Serveur
l'interface avec l'utilisateur
1 la gestion de l'affichage : concerne le fentrage (li un
env. graphique d'exploitation (Window, XWindow,...))
2 la logique de l'affichage : transmet la gestion de
l'affichage la description des lments de prsentation
les traitements
3 la logique des traitements : contient l'arborescence
algorithmique de l'application ( ! lancement des procdures
de la couche 4)
4 la gestion des traitements : procdures de traitements
contenant des requtes SQL de manipulation de donnes)
les donnes
5 la logique des donnes : garantit le respect de la rgle
CRUDE pour les objets de la BD mis jour par les
procdures
6 la gestion des donnes : slections ou mises jour des
enregistrements (gnralement pris en charge par le SGBD)
Modules 2 et 3 insparables : coeur de l'application !!!
5
Dcoupages d'une application
Bernard ESPINASSE - Architecture Client-Serveur
Dialogue entre client et serveur
1 application en traitements coopratifs :
permettre l'change de la demande et du rsultat cette demande
! module de logique de traitement :
s'effectue travers le rseau qui relie les 2 machines :
! dialogue interprocessus : Inter Process Communication (IPC) qui
s'appuie ct client et ct serveur sur :
clat sur plusieurs processeurs
rsidant sur plusieurs machines
API : Application Programming Interfaces (interface de
programmation au niveau applicatif)
2 application en client/serveur :
FAP : Format And Protocols (protocoles de communication et
formats de donnes)
! un ou plusieurs modules sont dports sur un serveur :
IPC = Middleware = ensemble des couches logicielles qui s'interposent
entre l'application et le rseau
Ex: le module de gestion des donnes est transform en
service et hberg par un serveur (serveur de donnes)
Bernard ESPINASSE - Architecture Client-Serveur
Bernard ESPINASSE - Architecture Client-Serveur
Inter Process Communication (IPC) ou
Middleware
Exemple de dialogue C/S
SELECT libell, date, sujet FROM dossiers WHERE responsable = mon_user
application
interface de programmation (API)
l'application construit la requte et fait appel des fonctions de l'API pour
l'envoyer au serveur :
Middleware
fonction 1: remise zro de la zone tampon
protocoles de communication et formats (FAP)
fonction 2: criture du message de requte, premire partie
fonction 3: criture du message de requte, seconde partie mettre la suite du prcdent
fonction 4: fermeture de la zone tampon, le message est complet
Protocoles de transports (lis au rseau)
fonction 5: vrification de la syntaxe de la requte (analyse du message par l'API (phrase en ASCII))
FAP (Format And Protocols) pilote les changes travers le rseau :
si OK : fonction 6: passer la main au FAP pour envoi du message au serveur. L'application se met en
attente de la rponse ou effectue une autre tche en attendant de consulter l'API pour rcuprer le
rsultat
synchronisation des changes selon un protocole de communication
mise en forme des donnes changes selon un format connu de part et d'autre
l'API passe la main au FAP :
formatage du message : encapsulation du message dans une trame rseau (valise)
API (Application Programming Interfaces) :
les fonctions encapsules dans l'API permettent l'application de faire appel aux
services proposs par le serveur
Bernard ESPINASSE - Architecture Client-Serveur
envoi du message format au serveur : selon le protocole de communication
son arriv, le rsultat subit le mme l'opration inverse
10
Bernard ESPINASSE - Architecture Client-Serveur
Types de Middleware
RPC : dialogue synchrone sans cession
caractrise la nature du dialogue :
le client fait une RPC et reste "suspendu" en attendant la rponse du serveur
conversation synchrone trs simple :
le message d'appel contient tous les lments ncessaires au serveur (nom de la
synchrone / asynchrone : obligation (/ou non) pour le client d'attendre la
rponse du serveur aprs chaque envoi
avec connexion / sans connexion (ou avec session): ncessit (/ou non)
d'tablir une connexion entre le client et le serveur
procdure et paramtres associs, donnes d'identification de l'appelant (pour vrifier
autorisation))
le message en retour, en un seul flot, contient toute la rponse attendue par le
programme client
client
Dialogue ...
sans session
avec session
synchrone
RPC
APPC ou RDA
asynchrone
message queuing
APPC ou RDA
serveur
programme client
appel de la procdure distante
message d'appel
prise en compte
de la demande
rveil du serveur
rception du rsultat et
poursuite de l'excution
RPC : Remote Procedure Call ou appels de procdure distance (ex: DCE =
IPC bas sur RPC)
APPC : Application Program to Communication (l'APPC = lment de SNA
d'IBM)
RDA : Remote Data Access : norme de l'ISO pour l'accs distant aux BdD
Bernard ESPINASSE - Architecture Client-Serveur
rseau
11
message de rponse
excution procdure
! Inconvnients :
synchrone
fiabilit mdiocre (si l'mission initiale choue, le client n'est pas averti et pas de
mcanisme de reprise interne au protocole sous-jacent),
pas de resynchronisation possible entre C et S
pas de gestion de flux de retour (tjs un seul flot)
Bernard ESPINASSE - Architecture Client-Serveur
12
APPC/RDA : dialogue asynchrone avec session
APPC/RDA : dialogue asynchrone avec session
la demande de connexion mise par le programme client
l'change de points de synchronisation (principalement C!S) permet de garantir un
tat stable au contexte du client
si le serveur accepte la connexion ! cration d'un contexte propre au programme
client sur le serveur
durant toute la conversation asynchrone, client et serveur vont changer 3 types de
messages : requtes, rsultats, points de synchronisation
client
serveur
rseau
programme client
message d'appel
demande de connexion
l'applicatif client dfini et pilote les phases successives de l'change
serveur garantit le contexte tel qu'il est peru par le client
un ordre Commit ou Rollback du client conduira un point de synchronisation
un dbut ou une fin de transaction client conduira un point de synchronisation
prise en compte de la demande et
cration d'un contexte
Avantages:
mission de requtes
rception des rsultats
point de synchronisation
mission de requtes
! gestion de l'change plus facile mettre en oeuvre qu'avec les RPC
excution des
requtes et
gestion de la
synchronisation
Inconvnients :
! plus coteux en ressources que les RPC car tout au long de l'change :
rception des rsultats
- communication C/S maintenue
point de synchronisation
dconnexion
- le serveur cre et conserve le contexte
fin du contexte
13
Bernard ESPINASSE - Architecture Client-Serveur
APPC/RDA : dialogue asynchrone avec session
change Client-Serveur utilisant IPC fournit par un diteur de SGBDR (typiquement APISQL et FAP RDA) :
Application cliente
14
Bernard ESPINASSE - Architecture Client-Serveur
Message queuing : dialogue asynchrone et
sans session
Echanges fondamentalement asynchrones :
le client envoie un message un destinataire (le service) dsign par un nom (plutt
qu'une adresse ou une localisation) sans se soucier de sa disponibilit
Processeur serveur (SGBDR)
application cliente
l'application veut adresser une requte SQL de type
SELECT
tablissement de la connexion
cration du curseur (notion de contexte propre au client
connect)
mission de la requte
compilation de la requte
IN
OUT
service
IN
OUT
excution de la requte, message de bonne fin
demande de la structure du rsultat
envoi du descriptif de la structure du rsultat
demande des n premires lignes composant le rsultat
envoi des n premires lignes
demande des n lignes suivantes composant le rsultat
envoi des n lignes suivantes composant le rsultat
demande des n lignes suivantes composant le rsultat
rponse : plus de lignes envoyer
fin de connexion
destruction du curseur
Bernard ESPINASSE - Architecture Client-Serveur
15
Avantages :
grande simplicit car l'API repose sur les 2 verbes {envoyer, recevoir}
la technique "stocker et propager" (store and forward) garantit, quels que
soit les vnements, que le service appel sera effectu une et une seule
fois (utile dans applications financires)
Inconvnients :
manque de contrle sur le dlai d'obtention d'une rponse
Bernard ESPINASSE - Architecture Client-Serveur
16
Exemples d'IPC possibles
Le schma du Gartner Group
APPLICATION
SQL
CPI-C
RPC
SQL
RPC
interface de programmation
RDA
APPC
DCE
RDA
APPC
protocole de communication
IPX
SNA
TCP-IP
TCP-IP
Netbios
exemple 3
exemple 4
exemple 5
exemple 1
exemple 2
exemple 1
protocoles de com. et formats des
donnes changes aussi
(s'inspire souvent de la norme
RDA (ISO))
protocole IPX pour accder au
serveur disposant d'un mme IPC
FAP
protocole de transport
Gestion
distante des
donnes
Bases de
donnes
distribues
Revamping
X-Window
procdures
catalogues
R.D.A
R.D.A
distribu
Donnes
Donnes
Donnes
Traitements
API : CPI-C (Common
Programming Interface
Communication - ISO (origine
IBM))
l'application a recours des appels
de procdures distance
protocole APPC (Application
Program to Program
Communication)
DCE (Distributed Computing Env.
quasi standard)
Traitements
API : de type RPC
RDA avec un transport TCP-IP
Prsentation
17
Client-Serveur de prsentation
ne peut tre
considr comme
C/S
Donnes
Prsentation
terminal X
SNA (protocole de transport LU6.2)
C/S de
prsentation
Traitements
Traitements
Traitements
Prsentation
Prsentation
Prsentation
C/S de
traitement
suppose de pouvoir sparer la gestion de l'affichage de la
logique de l'affichage
X-Window
le C/S de prsentation ncessite un gestionnaire de
fentres
! interface ne s'appuyant pas sur un gestionnaire de fentres et reposant
sur le systme d'exploitation : par exemple Windows de Microsoft
gestion de
l'affichage
terminal X
poste client
Bernard ESPINASSE - Architecture Client-Serveur
18
logique de l'affichage
logique de
l'affichage
donnes
serveur d'application
et de donnes
gestion de l'affichage
rception et excution de la requte, mission d'un accus
de rception
l'utilisateur dplace et redimentionne la fentre
l'utilisateur clique sur un des boutons de la fentre
mission : vnements de type "click" sur l'objet "bouton_1"
rception du message, prise en compte de l'vnement,
prparation de la requte suivante
mission : affichage d'un dialogue...
Window A
Client 1
serveur X
C/S de
donnes
distribues
mission : affichage d'une fentre avec telles dimensions,
telles caractristiques et tel emplacement initial
X-Window = C/S de prsentation en mode natif = serveur
d'affichage ou "serveur X"
client
le plus connu et le
plus rpandu
Bernard ESPINASSE - Architecture Client-Serveur
poste client
! interface s'appuyant sur un gestionnaire de fentres (Window Manager) :
par exemple Motif sous Unix s'appuie sur le gestionnaire de fentre XWindow
Window B
Client 2
C/S de donnes
Client-Serveur de prsentation
serveur
Prsentation
Donnes
Prsentation
exemple 3
Bernard ESPINASSE - Architecture Client-Serveur
Traitements
Traitement
distribu
Traitements
! attention : toutes les combinaisons ne sont pas toujours possibles et toutes celles
qui sont possibles n'ont pas ncessairement une implmentation disponible ...
Donnes
Prsentation
dporte
Donnes
exemple 2
API : type SQL fournies par les
diteurs de SGBD (Oracle,
Sybase, ...)
API
Prsentation
distribue
Appli A
Appli B
X Client 1
X Client 2
! avantages : indpendance entre logique de prsentation et l'interface graphique
utilise (les standards X11 et NFS)
! inconvnients : trafic rseau gnr par le protocole X11 important, X11 pas une
norme, stabilit?
serveur d'application
19
Bernard ESPINASSE - Architecture Client-Serveur
20
Client-Serveur de donnes
serveur
R.D.A
Client-Serveur de donnes
le serveur abrite la gestion des donnes
trs tt les SGBDR ont propos des IPC pour accder leurs
donnes (Oracle, Ingres, ...1985)
1 - requte utilisateur
6 - affichage des rsultats
appli
cliente
3 - recherche
tuples.
2 - requte
SGBDR
5 - rsultats
le serveur assure aussi l'intgrit des donnes
Donnes
poste client
les SGBD modernes proposent des mcanismes permettant de
dclencher des traitements de contrle :
client 1
application
IPC
Dos+LAN
s'assurant de la validit des mises jour des BD,
client 2
application
IPC
Dos+LAN
4 - tuples
serveur
Serveur
SGBD
B.D
LAN + OS + IPC
indpendamment des applications
incontournables
Traitements
Prsentation
Avantages :
! prservation de la cohrence des donnes
facile mettre en oeuvre,
largement disponible,
bien adapt aux utilisateurs de type consultation/dcision
! plus d'efficacit
! moins de maintenance
client
Inconvnients :
! plus de scurit
pas compltement normalis,
inadapt aux exigences du transactionnel intensif
21
Bernard ESPINASSE - Architecture Client-Serveur
Client-Serveur de traitements
Client-Serveur de traitements
serveur
procdures
catalogues
Donnes
Traitements
meilleure rpartition des traitements sur le client et le serveur
! charge plus faible sur le rseau
ncessite un dcoupage fin du noyau de l'application,
demande beaucoup de savoir-faire pour sa mise en oeuvre !
encore peu rpandu
logique
fonctionnelle
et affichage
poste client
Traitements
Prsentation
client
logique des
traitements
Rpartition du processus :
Charge sur le rseau
(trafic sur le rseau : nb et volu me de messages changs)
serveur de fichiers
C/S de prsentation
(X-Window)
donnes
C/S de donnes
serveur d'application
et de donnes
le module "logique fonctionnelle" de l'application client envoie
des requtes SQL mais aussi des appels de procdures
(procdures catalogues) au serveur qui les excute et
renvoie les rsultats
sur le serveur, le module d'excution des procdures n'est pas
obligatoirement associ aux modules d'intgrit et de gestion
des donnes
peut tre mis en oeuvre avec un mcanisme de type RCP entre
client et serveur
Bernard ESPINASSE - Architecture Client-Serveur
22
Bernard ESPINASSE - Architecture Client-Serveur
23
C/S de traitements
poste client
serveur
Avantages :
meilleures performances,
trafic rseau rduit
Inconvnients :
ncessite un dveloppement ct serveur,
ne convient pas pour les applications "haddock" type infocentre
Bernard ESPINASSE - Architecture Client-Serveur
24
C.- S. : a r c h i t e c t u r e s c e n t r a l i s e s ( d s 1 9 7 0 )
C.- S. : architectures centralises (ds 1980)
Client serveur de Premire Gnration
Client serveur de Deuxime Gnration
LAN
Serveur
WAN
Base de
donnes
Ordinateur
hote
Rseau
propritaire
Base de
donnes
Serveur
LAN
Routeur
Serveur
Base de
donnes
terminaux passifs pas ergonomiques
Client : gestion prsentation
Serveur : ralisation
25
Bernard ESPINASSE - Architecture Client-Serveur
C.- S.: architectures centralises (ds 1990)
Base de
donnes
terminaux ergonomiques
LAN : Large Area Network - WAN : Wide Area Network
Client : gestion prsentation + Portage traitements applicatifs
Serveur : gestion accs BD
26
Bernard ESPINASSE - Architecture Client-Serveur
Le middleware en dtail
Client serveur de Troisime Gnration
application
serveur
middleware
Intranet
Base de
donnes
Serveur
rseau
Firewall
Serveur Web
Serveur
middleware (=IPC) = intelligence du rseau
permet d'unifier pour les applications l'accs et la manipulation de l'ensemble des
services disponibles sur le rseau
Client Internet
Clients
Base de
donnes
Base de
donnes
application
Internet
Firewall
interface de programmation (API)
Middleware
protocoles de communication et formats (FAP)
Clients (Unix, Windows, ) : gestion prsentation
Serveur applicatif : lien entre client et plusieur serveurs de BD
Serveur de donnes : gestion accs BD
Protocoles de transports (lis au rseau)
! middleware = cl de l'interoprabilit : largir les fonctionnalits et aller vers les
standards
Bernard ESPINASSE - Architecture Client-Serveur
27
Bernard ESPINASSE - Architecture Client-Serveur
28
Le middleware en dtail
Couche
API
Les types de middlewares
Fonction
interface de programmation
Exemple
Fonctions assures :
Elmentaire
point d'entre unique pour les applications
gre l'ordonnancement de l'change : ouvrir
une connexion, envoyer une requte,
rcuprer rsultats, crer les messages ->
transport
FAP
transport
protocole de transport
insre les messages et les insre dans une
trame qui circulera sur le rseau
mthode d'accs au
mdia
protocole d'accs au mdia
TCP-IP
Netbios
...
Ethernet
TokenRing
Middleware et couche ISO :
couche 7 : application
couche 6 : reprsentation
couche 5 : session
couche 4 : transport
couche 3 : rseau
couche 2 : liaison
couche 1 : physique
Intermdiaire
gestion du protocole de
communication
transfert des requtes et
des rsultats
transmission des codes
d'erreurs et de statut
protocole de communication
API
catalogue complet des
donnes
pas de catalogue des
support total des appels de
donnes
fonctions
support limit des appels
transparences de la
de fonctions
localisation des donnes
administration restreinte du administration complte
ou des serveurs
des serveurs et des
services associs
scurit tendue
(d'aprs A. Lefebvre)
Marketing :
proposs par les diteurs de serveurs (SGBD (oracle, ...))
proposs par les diteurs de middleware (ex: Sequelink,...)
proposs par les constructeurs (DRDA/IBM, DDA/Bull, ...)
FAP
ex : TCP-IP
ex : accs mdia
ex : coaxial
29
Bernard ESPINASSE - Architecture Client-Serveur
Les performances
Sequelink (indpendant) :
(Source : tude Dipro )
serveur
client
application
SGBDR
API Sequelink
Interface SGBDR
Noyau Sequelink
Noyau Sequelink
Interface rseau
Interface rseau
protocole de transport rseau
(application : C sous Windows; requte SQL lecture; SGBD Ingres sur HP9000 (unix):
dcisionnel
transactionnel
50
45
40
35
30
Sybase (propritaire) : Open Client & Open Server
25
20
CLIENTS
OpenClient
OpenClient
30
Bernard ESPINASSE - Architecture Client-Serveur
L'offre en Middlewares
OpenClient
Etendue
passerelles vers SGBD
15
10
5
SQLserver
SQLserver
(sous VM ou MPE)
OpenServer (net gateway)
serveur
transport
IPC
application
! le serveur consomme la plupart du temps ncessaire
l'excution complte d'une requte (simple ou complexe)
(sous Unix ou Netware)
SERVEURS
DB2 & CICS
Bernard ESPINASSE - Architecture Client-Serveur
31
Bernard ESPINASSE - Architecture Client-Serveur
32
Les performances
Performances d!une application cliente dpendent de 3 critres :
le dbit : (rseau: de SNA, DSA = 9,6 kb/s; ...64 kb/s...) doubler le dbit des
liaison amliore les temps de rponse de 30%
l'affichage : performance de l'environnement graphique
l'excution procdurale : vitesse d'excution du langage
Importance relative des critres :
procdural
(5%)
affichage
(30%)
dbit
(65%)
Nb d'utilisateurs :
temps de rponse en secondes
35
30
25
20
15
10
5
3 utilisateurs
2 utilisateurs
1 utilisateur
9,6Kb/s
Bernard ESPINASSE - Architecture Client-Serveur
16 Kb/s
38,4Kb/s
64Kb/s
33