You are on page 1of 24

Le modle client-serveur

Olivier Aubert

1/24

Sources
http://www.info.uqam.ca/~obaid/INF4481/A01/Plan.htm

2/24

Historique
I architecture centralise
I terminaux passifs (un seul OS, systmes propritaires)
I traitements au niveau du serveur

3/24

Architecture rpartie
I rseaux, ordinateurs plus puissants, OS ouverts
I interfaces et API standard (RFC)
I traitement effectu en partie sur les clients
Serveur
BD

OS
Rponse

Requte

Rgles

Rseau dentreprise

Windows

Mac

Applications

Applications

UNIX
Applications

Clients

4/24

Le modle
I Client : processus demandant lexcution dune opration
un autre processus par envoi de message contenant le
descriptif de lopration excuter et attendant la rponse de
cette opration par un message en retour.
I Serveur : processus accomplissant une opration sur
demande dun client, et lui transmettant le rsultat.
I Requte : message transmis par un client un serveur
dcrivant lopration excuter pour le compte du client.
I Rponse : message transmis par un serveur un client suite
lexcution dune opration, contenant le rsultat de
lopration.

5/24

Types darchitecture client-serveur


Un client, plusieurs serveurs :

Le modle :
Application
Processus
Processus
systme
client
Systme

Systme

Hardware

Hardware

Client

Serveur

Client

Serveur

Serveur

Plusieurs clients, un serveur :


Client

Matre

Client

Un client, un serveur :
Client

Serveur

Esclave

Esclave

6/24

C/S orient client ou serveur


I Client lourd
stocke les donnes et les applications localement. Le
serveur stocke les fichiers mis jour
Le client effectue une bonne partie du traitement
Le serveur est plus allg
I Serveur lourd
On effectue plus de traitements sur le serveur :
transactions, groupware, etc
Dploiement plus ais
I Client lger
Client fonctionnalit minimale (terminaux X, priphrique
rseau (Network Appliance), ordinateur rseau (network
computer))
Beaucoup de charge sur le serveur et le rseau

7/24

Dialogue client-serveur
Primitives de service :
I SendRequest()
I ReceiveResponse()
I ReceiveRequest()
I SendResponse()
Serveur

Client
Requte
Rponse
SendRequest()

SendResponse()

ReceiveResponse()

ReceiveRequest()

Session

Session

Transport

Transport
Rseau

8/24

Messages client-serveur
I Trois grands types de message : REQ, REP et ACK
I Autres types possibles : AYA (Are You Alive), BUSY
(ordinateur temporairement occup), ERR (Erreur), etc.

9/24

change de messages
I Dans un environnement htrogne, on doit effectuer une
prsentation adquate des donnes.
I Traduction des donnes (XDR (Sun), ASN.1 (CCITT), etc)
I Assemblage des paramtres mis et des rsultats
(marshalling)
I Dsassemblage des paramtres reus et des rsultats
(unmarshalling)
Traduction
Assemblage

Traduction
Dsassemblage

Prsentation

Prsentation

Session

Session
Transport

10/24

Modes de dialogue
I Mode synchrone
nutilise pas de file dattente
les messages sont mis aussitt
mode bloquant (ex. RPC)
I Mode asynchrone
utilise une file dattente
mode non bloquant
favorise le multitche (ex. FIFO, email)

11/24

Oprations bloquantes
Le processus se bloque jusqu ce que lopration se termine.
read()

Appel
Lecture

Copie dans
le tampon
Retour

Serveur

Client

12/24

Oprations non bloquantes


Par signaux

Par vnements
read()

Appel
WOULDBLOCK
Appel

signal()

Attente des
donnes

Activer SIGIO
Retour

WOULDBLOCK
Appel
Retour

Signal SIGIO

Copie dans
le tampon

Attente des
donnes

handler()
read()

Appel
Retour

Serveur

Copie dans
le tampon

Serveur

Client
Client

13/24

Conception dune application c/s


Dans une application client-serveur, il faut dcider de
lemplacement des composantes de :
I prsentation : interfaces textuelles ou graphiques,
interactions, entre des donnes, validation, etc.
I logique dapplication : traitements associs lapplication
I accs aux donnes : stockage et accs aux donnes (base
de donnes, serveur web, etc)

14/24

Modle client-serveur deux niveaux


Modle de Gartner pour les systmes deux niveaux (2-tiers) :

Client

Prsentation

Prsentation

Prsentation

Logique

Logique

Logique

Prsentation

Prsentation

Donnes
Prsentation

Serveur

Logique

Logique

Logique

Donnes

Donnes

Donnes

Donnes

Donnes

BD
rparties
Classe 1

Donnes
distantes
Classe 2

Transactions
rparties
Classe 3

Prsentations
distantes
Classe 4

Prsentations
rparties
Classe 5

15/24

Client-serveur trois niveaux


Modle de Gartner pour les systmes trois niveaux (3-tiers) :
Prsentation

Prsentation

Client

Prsentation

Prsentation

Logique

Logique
Donnes

Serveur
de milieu

Logique

Logique

Logique

Logique
Donnes

Logique

Serveur
Donnes

Donnes

Logique
Donnes

Donnes

16/24

Le middleware
I Traduction officielle : intersticiel
I Assure les connexions entre les serveurs de donnes et les
outils de dveloppement sur les postes client
I Ensemble de services logiciels construits au dessus dun
protocole de transport afin de permettre lchange de
requtes et des rponses associes entre client et serveur de
manire transparente.
I Les services du middleware sont un ensemble de logiciels
rpartis qui existe entre lapplication, lOS et les services
rseaux sur un nud du rseau.

17/24

Types de middleware
I Gnral
Protocoles de communication, rpertoires rpartis, services
dauthentification, service de temps, RPC, etc
Services rpartis de type NOS (Networked OS) : services
de fichiers, services dimpression.
I Spcifique
de BD : ODBC, IDAPI, EDA/SQL, etc
de groupware : MAPI, Lotus Notes
dobjets : CORBA, COM/DCOM, .NET

18/24

Composantes du middleware
I Les canaux
Services de communications entre composants et
applications : RPC (synchrone), ORB (synchrone), MOM
(Message Oriented Middleware) (asynchrone)
Services de support de communication : SSL, annuaires
(LDAP)
I Les plate-formes
Serveurs dapplications qui sexcutent du ct serveur
Offrent les canaux de communication
Assurent la rpartition, lquilibrage de charge, lintgrit
des transactions, etc
Exemple : architecture web-tier

19/24

Place du middleware
Processus client

Processus serveur
Protocole Requete

Middleware client

Middleware serveur
Reponse

Services
;locaux

Services
reseau

OS et hardware

Services
;locaux
Protocole reseau

Services
reseau

OS et hardware

Exemples :
I Les services primitifs (mulateurs de terminaux, transfert de
fichier, mail, etc)
I Services de bases (RPC, etc)
I Services intgrs (DCE, OS rpartis)
I Objets distribus (CORBA, COM/DCOM, etc)
I World Wide Web

20/24

Services du middleware
Middleware de service specifique
SQL/API, TxRPC, Mail, ORB/COM
Gestion repartie
CMIP, SNMP
OS Reseau
Repertoire, RPC, NFS, Securite
Transport
TCP/IP, IPX/SPX, NetBIOS, SNA
Reseau, Liaison, Physique

21/24

Fonctions dun middleware


I
I
I
I
I
I
I
I
I
I
I
I
I

procdure dtablissement de connexion


excution des requtes
rcupration des rsultats
procdure de fermeture de connexion
initiation des processus sur diffrents sites
services de rpertoire (nommage)
accs aux donnes distance
gestion des accs concurrents
scurit et intgrit
monitoring
terminaison des processus
mise en cache des rsultats
mise en cache des requtes

22/24

Le modle RPC
RPC : Remote Procedure Call
Serveur
RPC

Client
Application
Appel
procedure

Retour
procedure
Souche client

Assemblage

Desassemblage

SendRequest()ReceiveResponse()

Procedure

Retour
procedure

Execution
procedure
Souche serveur

Assemblage

Desassemblage

SendResponse()ReceiveRequest()

23/24

Transparence
I Transparence des rseaux : support de plusieurs types de
rseaux (WAN, LAN, etc) et de protocoles (TCP/IP, SNA, etc)
I Transparence aux serveurs : support de plusieurs types de
serveur (SGBD (Oracle, Sybase, SQL Server, etc))
I Transparence des donnes : traductions des formats de
donnes (XDR, ASN.1, etc)
I Transparence de la localisation : utilisation dun service de
rpertoire

24/24

You might also like