Академический Документы
Профессиональный Документы
Культура Документы
applications client-serveur
UE RSX 102
-1-
BIBLIOGRAPHIE
Les RFC UNIX/INTERNET
Les serveurs WEB ...
Coulouris , Dollimore "Distributed systems concepts and
design" Addison Wesley 2000"
S. Natkin, "Les protocoles de scurit de l'Internet" Dunod
2002.
Ed. Krol, The whole Internet, OReilly, 1992
R Orfali, D Harkey, J. Edwards, "The essential Client
Server Survival Guide" Wiley 1995
En francais "Client-Serveur Guide de survie".
G Gardarin, O Gardarin, "Le client-serveur"
1996 Eyrolles
-2-
Introduction
Notions gnrales
-3-
Introduction
Situation actuelle
-4-
Systmes disponibles
On dispose prix accessible pour les
entreprises et le grand public de calculateurs
puissants munis :
- de systmes d'exploitation volus
- d'interfaces graphiques volues
- de capacits de stockage normes
- de moyens d'interconnexion "rseaux
locaux" trs performants
- dans un futur prvisible de moyens
d'interconnexion "longue distance" bas
prix et de bande passante importante.
-5-
Informatique "cooprative"
Applications coopratives
("Cooperative work")
Un ensemble d'entits logicielles
cooprant au moyen d'un rseau la
ralisation d'une tche informatique.
Algorithmique rpartie
("Distributed Computing")
Les applications systmes et rseaux
indispensables au fonctionnement des
machines en rseau.
IAD Intelligence artificielle distribue,
Multi-agent
("Distributed Artificial Intelligence")
Application cooprative mettant en
relation des agents qui fonctionnent selon
des approches drives de l'intelligence
artificielle.
-6-
-7-
Le client serveur
Dfinir des modles de rpartition
des donnes
et des traitements
dans une architecture rseau.
Selon une approche dissymtrique:
- un client met des requtes,
- le serveur rend le service demand.
Applicable de nombreux problmes de
coopration,
en informatique de gestion
galement aux autres domaines
algorithmique rpartie,
informatique industrielle, ...
Dans son acception la plus complte:
possibilit de dfinir n'importe quelle
architecture de communication.
- Chaque entit communicante est la fois
client et serveur
- Chaque entit met et traite des requtes
-8-
X-data-ind
Rponse
X-data-ind
X-data-req
SERVEUR
CLIENT
Architecture gnrale
Fonctionnement le plus frquent en clientserveur: mode requte rponse pour une
population de clients et de serveurs.
Poste client
Rponse
Requte
Poste client
Architecture Rponse
de communication
Requte
Rseau
Requte
"Middleware"
Rponse
Poste serveur
SGBD
Serveur de
requtes
IPA API
IPA API
Communications
Communications
- 10 -
- 11 -
Le client-serveur en informatique de
gestion
Les six versions du client serveur selon
l'implantation des fonctions
(Classification du Gartner Group)
Les trois versions de base
Gestion des
donnes
Gestion des
donnes
Programme
d'application
Programme
d'application
Gestion des
donnes
S
e
r
v
e
u
r
Programme
d'application
C
l
i
e
n
t
Interface Homme
Machine
Cot serveur
Version IHM
distribue
avec
rhabillage
("revamping")
Interface Homme
Machine
Cot client
Version IHM
distribue
classique avec
multi-fentres
("Xwindows")
- 12 -
Interface Homme
Machine
Cot client
Version accs
aux donnes
distantes
Gestion des
donnes
Programme
d'application
cot serveur
Gestion des
donnes
Programme
d'application
Version
traitements
distribus
Gestion des
donnes
Gestion des
donnes
Programme
d'application
Programme
d'application
Interface Homme
Machine
Cot client
Interface Homme
Machine
Cot client
Version
"Base de
donnes
rpartie"
Version
applications et
donnes
distribues
- 13 -
S
e
r
v
e
u
r
C
l
i
e
n
t
- 14 -
Problmes rsoudre
Qui ralise les fonctions classiques des
systmes centraliss que l'on rencontre
maintenant en univers rparti.
Quelques exemples
- Accs et partage des ressources
- Intgrit et cohrence des donnes
- Scurit du systme
- Gestion des performances
- Administration de l'ensemble
Fonctions qui regroupent des
aspects multiples
- Contrle d'excution
- Contrle de l'accs aux donnes
- Contrle des communications
( considrer simultanment).
- 15 -
- 16 -
- 17 -
INTERNET
Applications pile
SUN/OS
Applications TCP/IP
directes
EXEMPLES
NFS: "Network
File System"
7. Application
6. Prsentation
SMTP "Simple
Mail Transfer
Protocol"
FTP: "File
Transfer
Protocol"
RPC:"Remote
Procedure Call"
5. Session
4. Transport
XDR:"External
Data
Representation"
3. Rseau
2. Liaison
1. Physique
Lignes
spcialises
Point Point
- 19 -
Rseaux
Locaux
Rseau
tlphonique
RNIS, ATM
NIVEAU SESSION
NIVEAU PRSENTATION
- 23 -
- 24 -
NIVEAU APPLICATION
Protocoles d'application
Le transfert de fichiers
Objectif
Dplacer des fichiers d'un site un autre
(plats en gnral).
Trs nombreux protocoles proposs
Exemples
Internet FTP "File Transfer Protocol"
OSI/IEC FTAM "File Transfer Access and
Management"
L'accs aux fichiers distants
Objectif
Accs unifi en univers rparti diffrents
fichiers (ralisation des requtes d'accs).
Exemples
SUN-OS NFS "Network File System"
OSI/IEC FTAM "File Transfer Access and
Management"
- 27 -
- 28 -
La dsignation
Objectif
Grer des annuaires permettant un
utilisateur de retrouver des attributs d'un
nom symbolique (principalement l'adresse
rseau).
Exemples
Internet DNS "Domain Name System"
OSI/IEC DS "Directory Services"
Annuaire LDAP "Lightweight Directory
Access Protocol'
La messagerie
Objectif
Permettre d'changer du courrier
lectronique entre usagers
Exemples
Internet SMTP
"Simple Mail Transfer Protocol"
OSI MHS "Message Handling System"
- 30 -
- 31 -
- 32 -
L'administration de rseaux
Objectif
Permettre l'accs des variables gres par
des agents d'administration:
- Lecture de l'tat d'un appareil, de
statistiques de fonctionnement.
- Positionnement de variables.
Internet SNMP : 'Simple Network
Management Protocol'.
WBEM: 'Web Based Enterprise
Management'
- 33 -
Conclusion
Les rseaux et systmes rpartis
Un problme extrmement complexe au
centre de l'informatique actuelle et venir.
Une volution permanente des concepts des
outils et des diffrentes propositions
commerciales.
Un march trs concurrentiel qui induit une
comptition souvent inutile dans l'offre, une
opacit importante dans les fonctions
offertes par les produits.
- 34 -
Premier Chapitre
L'INGNIERIE DES PROTOCOLES
DE COMMUNICATION
- 35 -
Plan du cours
Premire partie
I.1 Le mode message asynchrone.
I.2 L'interface socket
Seconde partie
- 36 -
INTRODUCTION
- Le contrle rparti cest lensemble des
moyens offerts un programmeur pour
dvelopper des applications dans un
univers rparti (rseau, systme rparti,..)
Application utilisateur
Interface de Programmation
d'Applications (IPA - API)
Mcanisme d'excution
Mcanisme de communication
Mcanisme de mmorisation
Dmarche descendante du
dveloppement logiciel
- La conception de l'application.
- Les tapes de raffinement.
- La programmation : l'adaptation finale aux
outils disponibles (syntaxe et smantique de
l'IPA)
- 37 -
- 41 -
- 42 -
I.1
LE MODE MESSAGE ASYNCHRONE
- 43 -
INTRODUCTION
- Bas directement sur le mode de
communication par message (un message).
- Un service comprenant essentiellement
deux primitives pour communiquer et se
synchroniser.
TYPE COM_MESSAGE_ASYNCHRONE;
METHOD envoyer (id_metteur, id_rcepteur,
message, complments) ;
METHOD recevoir (id_metteur, id_rcepteur,
message);
METHOD ...;
END COM_MESSAGE_ASYNCHRONE.
- 44 -
- Proprits d'ordre.
- Proprits de tolrance aux pannes.
- Proprits temporelles
- Autres qualits de service.
- Problme abord ici: la synchronisation
et l'utilisation des primitives.
- 45 -
M1
Actif
M2
Recevoir(M)
(M=M1)
Actif
Envoyer(M2)
Actif
Actif
Envoyer(M3)
M3
Recevoir(M)
M=M3
Actif
Actif
Recevoir(M)
(M=M2)
Rcepteur
Emetteur
- Le
Dtails du comportement
L'metteur
. Ayant demand une mission, reprend la
main et continue son excution
"immdiatement" aprs la prise en compte
de sa demande.
. Le message est transmis (au rythme du
transport d'informations par le rseau de
communication) donc de faon asynchrone
avec le comportement metteur.
Le rcepteur
Ayant dcid de prendre en compte un
nouveau message il acquiert un message (le
premier) en instance.
-celui qui se prsente aprs le recevoir
-un message qui se trouve dans une file
d'attente de rception.
- 47 -
t1 : metteur.crire (v,t1)
=> t2>t1 : recepteur.lire (v, t2)
Proprits supplmentaires: rendez-vous, mmoire
rpartie.
- 49 -
- 50 -
Principes Gnraux
Solution Des Automates Synchroniss
Comportement squentiel des processus:
=> Ensemble de processus (entits rseaux)
squentiels communicants (trs souvent en
mode point point deux entits seulement).
=> Les mthodes de spcification de chaque
processus utilisent des automates d'tat fini
Interaction entre processus par change de
message
=>
Les
processus
communicants
synchronisent par messages asynchrones.
- 51 -
se
importante
de
la
- 52 -
Transitions.
Elles comportent deux mentions:
les conditions, et les actions.
Elles sont reprsentes par les arcs du graphe.
Condition
Les transitions sont franchissables lorsqu'une
condition boolenne ou garde est satisfaite:
. condition boolenne portant sur les
variables locales.
. condition boolenne portant sur les
changes (requte de service, message entrant).
. condition boolenne portant sur les signaux
internes (horloge).
Action
- C'est l'opration ralise lors du
franchissement de la transition: les traitements
raliser lors du passage l'tat suivant
(manipulation de variable, envoi de message).
- Le dtail des actions ne doit pas tre
important sinon le modle
est illisible
(renvoyer des textes).
- 53 -
recevoir(M)
?M
envoyer(M)
!M
- Dsignation
- La commande d'mission (d'une entit P1)
doit dsigner un destinataire (P2).
Ex :Dans le processus P1 :P2!M1
- La commande de rception (excute par un
processus P2) doit voquer une source P1.
Ex :Dans le processus P2 :P1?M1
- 54 -
Typage
Il doit y avoir correspondance de type entre la
variable de rception et la valeur mise
(possibilit de variable article).
Type[message_mis] =
Type [message_reu]
Exemple
Pret
? data_req(infos)
! I (infos)
! armer(dlai)
! cpt := 0 Trans
en
cours
? retombe(dlai)
! cpt := cpt + 1
- 55 -
? I (infos)
- 56 -
Alternative en un tat
P3?M3
P1?M1
P2?M2
Indterminisme de l'valuation
- On choisit l'une quelconque des transitions
ayant sa condition boolenne satisfaite (sa
garde ouverte). Une garde franchissable
quelconque est slectionne
=> La liste des commandes associe la
garde est excute.
- Aucune garde n'est franchissable mais il existe
des gardes avec condition de rception pouvant
tre satisfaite par une mission
=> Attente que l'une d'elles soit
satisfaite.
- Aucune garde n'est franchissable:
. elles sont toutes boolennes
. aucun message ne sera envoy qui
corresponde une rception attendue
=> Erreur d'excution.
- 57 -
Diffrents automates
Automate du service
. tablissement de la liste des units de
service (primitives, SDU) de service
changeables entre le niveau n et le niveau n+1.
. Dfinition des enchanements autoriss
de primitives sous la forme d'un automate d'tat.
=> Toutes les successions lgales qu'un
observateur de l'interface n n+1 peut observer.
- 58 -
hors
connexion
?S_Connect_request
!S_Connect_
confirmation
(rejette)
!S_Connect_
indication
connexion
demi
ouverte
distante
?S_Connect_
response
(rejette)
connexion
demi
ouverte
locale
?S_Connect_
response
(accepte)
connexion
ouverte
- 59 -
!S_Connect_
confirmation
(accepte)
Automate du protocole
. tablissement de la liste des units de
protocole (messages, PDU) changs entre deux
niveaux n.
. Dfinition de tous les enchanements de
PDU qu'un observateur de la voie de
communication peut observer).
Ex: Une partie du protocole d'ouverture de
connexion de session
- 60 -
hors
connexion
?CN
!RF
!CN
connexion
demi
ouverte
distante
?RF
connexion
demi
ouverte
locale
?AC
!AC
connexion
ouverte
- 61 -
Automate complet
. Runion des deux automates de service et
de protocole
hors
connexion
?CN
!S_Connect_
indication
connexion
demi
ouverte
distante
?S_Connect_request
!RF
!S_Connect_
confirmation !CN
?S_Connect_
response -
?RF
?S_Connect_
response +
connexion
demi
ouverte
locale
?AC
!S_Connect_
confirmation +
!AC
connexion
ouverte
- 62 -
- 63 -
- 64 -
Analyse exhaustive.
- L'application se prsente comme un ensemble
d'automates communicants
- Ralisation du produit des automates (produit
"synchronis"
tenant
compte
des
communications).
P1
P2
Ei
?cond1
P2!x
!action1
Ej
Ei+1
Ei * Ej
?cond2et P2?x
?cond1et cond2
!action2
!action1
!action2
Ej+1
Ei+1*Ej+1
Automates communicants
- 65 -
- 66 -
terme
son
"enfouissement" dans les couches internes.
- 67 -