Professional Documents
Culture Documents
s Objectif du cours
x Introduire les notions de base de larchitecture des rseaux et des applications rparties x Prsenter quelques exemples concrets de mise en uvre tous les niveaux
Sacha Krakowiak
Universit Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/people/krakowia Site de ce cours : http://sardes.inrialpes.fr/people/krakowia/Enseignement/M1/RAR-M1.html
s Esprit du cours
x Approche intgre : les mmes notions de base sappliquent depuis le rseau physique jusquaux applications : service, interface, protocole, dsignation, liaison x Enseignement dominante pratique : 12h de cours, 18h de TD sur machine)
RAR-M1
2003-2004, S. Krakowiak
Le domaine couvert
applications rparties
Services et interfaces
s Dfinition
application intergiciel (middleware) x Un systme est un ensemble de composants (au sens non technique du terme) qui interagissent x Un service est un comportement dfini par contrat, qui peut tre implment et fourni par un composant pour tre utilis par un autre composant, sur la base exclusive du contrat (*)
s Mise en uvre
systme dexploitation
systme de communication
x Une interface dcrit linteraction entre client et fournisseur du service y Point de vue oprationnel : dfinition des oprations et structures de donnes qui concourent la ralisation du service y Point de vue contractuel : dfinition du contrat entre client et fournisseur
(*) Bieber and Carpenter, Introduction to Service-Oriented Programming, http://www.openwings.org
3 2003-2004, S. Krakowiak RAR-M1 4
machine
machine
rseaux
2003-2004, S. Krakowiak RAR-M1
application
client
int. requise
fournisseur
int. fournie
intergiciel (middleware)
systme de communication systme dexploitation
Interface de transport (ex : TCP) Interface intermdiaire (ex : rseau - IP) Interface physique (ex : Ethernet)
x La fourniture dun service met en jeu deux interfaces y Interface requise (ct client) y Interface fournie (ct fournisseur ) x Le contrat spcifie la compatibilit (conformit) entre ces interfaces y Au del de linterface, chaque partie est une bote noire pour lautre (principe dencapsulation) y Consquence : client ou fournisseur peuvent tre remplacs du moment que le composant remplaant respecte le contrat (est conforme) x Le contrat peut en outre spcifier des aspects non contenus dans linterface y Proprits dites non fonctionnelles, ou Qualit de Service
machine
2003-2004, S. Krakowiak
RAR-M1
2003-2004, S. Krakowiak
RAR-M1
communication (ensemble matriel + logiciel) qui permet un ensemble dordinateurs (au sens large) dchanger de linformation
x sens large : points daccs, terminaux de paiement, tlphones, capteurs divers, etc.
s Les rseaux peuvent tre classs selon diffrents critres x Nature de la liaison entre les organes connects (nuds)
y Liaison directe
v il y a un lien direct entre deux nuds du rseau
point point
accs multiple
y Liaison commute
v la liaison passe par des organes intermdiaires
2003-2004, S. Krakowiak
RAR-M1
1970
4 sites
1980
1990
commerce lectronique
2000
x 100 sites
Arpanet
1969
lInternet
Outils logiciels
CORBA
Java
composants
client-serveur
Aloha
paquets radio
Ethernet
1973
3 Mbit/s
tlphonie numrique
ATM
622 Mbit/s
ADSL
modem rapide
ISDN (RNIS)
1970
1964
anneau jeton
1980
10 Mbit/s
64 kbit/s
Myrinet
1990 Ethernet
2000
10Gb/s 1 000 Mbit/s Gigabit Ethernet
s Autres rseaux
x Interconnexion de grappes de machines (clusters) - Desk Area Networks (DAN) Storage Area Networks (SAN) : rseaux pour le stockage de donnes x Rseaux de mobiles
2003-2004, S. Krakowiak RAR-M1 9
2003-2004, S. Krakowiak
RAR-M1
10
W3C Java
archi. N-niveaux servlets
1980
NFS
1990
2000
.NET J2EE EJB Web Services
OMG
spec.
x Dbit (throughput) : quantit dinformation par unit de temps. Unit : bit/s (Kbit/s, Mbit/s, ), ou paquets/s, etc. y une mesure corrle au dbit est la bande passante (Hz, KHz, ...), cf plus loin x Latence (latency) : temps coul entre lmission dune unit de transmission et sa rception. Unit : s (ms, s, ) y on sintresse aussi parfois au temps daller-retour ( round trip time ou RTT)
s Facteurs de performance
Latence = dure de transmission + temps de propagation + temps dattente x Dure de transmission : taille du message / dbit y cest le temps ncessaire pour transmettre les donnes (les envoyer sur le rseau) x Temps de propagation : distance / vitesse de propagation y cest le temps ncessaire pour que les donnes aillent de lmetteur au rcepteur x Temps dattente y cest le temps perdu par le systme de communication (notamment cause de loccupation des ressources) x La somme (temps de propagation + temps dattente), ou latence de base, est un dlai incompressible (temps coul avant de recevoir le 1-er bit dun message)
CORBA client-serveur
2003-2004, S. Krakowiak
RAR-M1
11
2003-2004, S. Krakowiak
RAR-M1
12
Qualit de service
s La qualit de service (Quality of Service, QoS) dsigne un ensemble
s Exemples
x Faible taux derreur (probabilit pour quun bit ou un message soit perdu ou modifi) y ncessaire si les donnes sont peu redondantes x Stabilit de la latence (absence de gigue) y ncessaire pour les applications multimdia (son et vido) x Garantie dune limite suprieure sur la latence y ncessaire pour les applications critiques lies au temps rel
latence
latence
dbit lev latence de base forte latence de base = attente + propagation dbit faible latence de base faible
taille du message
2003-2004, S. Krakowiak
RAR-M1
13
2003-2004, S. Krakowiak
RAR-M1
14
194.199.25.124 http://sardes.imag.fr/ un fichier HTML client client lInternet serveur web serveur web Vu de lutilisateur on clique sur un lien une page web saffiche sur lcran Sur la station client le programme navigateur envoie une requte au serveur correspondant lURI (Uniform Resource Identifier) associ au lien (si tout se passe bien) le programme navigateur reoit un fichier HTML quil sait afficher sur lcran Sur le rseau, il faut : trouver le bon serveur (celui qui correspond lURI) transporter la requte depuis la station client vers le serveur transporter le fichier depuis le serveur la station client Premire tape : localiser le serveur Via le service de noms de lInternet (DNS) qui associe un nom une adresse IP (fonctionne comme un annuaire) Toute machine connecte lInternet a une adresse IP Question : comment trouver lannuaire ? Rponse : on connat ladresse IP dun point dentre
message le service de noms DNS (annuaire)
sardes.imag.fr lInternet
Deuxime tape : envoyer la requte au serveur Comment est transmise la requte ? La requte est un message (une suite de bits). Elle est dcoupe en paquets de taille fixe Chaque paquet est envoy sur le rseau
envoi
paquets
2003-2004, S. Krakowiak
RAR-M1
15
2003-2004, S. Krakowiak
RAR-M1
16
8 7 paquets routeur
194.199.25.124
2
Le serveur reconstruit le message initial en mettant les paquets dans lordre de leurs numros Que fait le serveur la rception de la requte ? Le site serveur interprte la requte comme une demande de fourniture de fichier (HTML) Il envoie le fichier au client (sous forme dune suite de paquets, comme prcdemment) Que se passe-t-il si un paquet sest perdu, ou a mal t transmis ? Le destinataire est capable de le dtecter et demande quon lui renvoie le paquet manquant ou erron.
client
4 5
6 1 3
serveur web
Transmission de linformation
Comment sont transmis concrtement les paquets ? Chaque paquet est une suite de bits. La transmission utilise un support physique : fils, fibre optique, ondes radio, etc., sur lequel sont envoys des signaux (lectriques, lumineux, etc.). Chaque bit (0 ou 1) est reprsent par une configuration particulire du signal
LInternet est une interconnexion de rseaux (internetwork) Les rseaux sont relis entre eux par des routeurs Chaque paquet contient son numro et son adresse de destination. Quand il arrive sur un rseau, et que le site destinataire nen fait pas partie, le paquet est transmis un routeur. Les routeurs contiennent les informations qui permettent dacheminer le paquet vers son site destinataire
2003-2004, S. Krakowiak
RAR-M1
17
2003-2004, S. Krakowiak
RAR-M1
18
mode de fonctionnement
Analogie : deux personnes peuvent dialoguer mme si elles ne parlent pas la mme langue A (ne parle que franais)
interface
s Protocoles en couches
B (ne parle que chinois)
protocoles
couche i
entit cooprante
entit cooprante
franais
chinois
interface i-1
X (interprte franais-anglais)
interface
Y (interprte anglais-chinois)
anglais
couche i-1
2003-2004, S. Krakowiak
RAR-M1
19
2003-2004, S. Krakowiak
RAR-M1
20
SOAP
applications
Informations transmises
s Objectif
x Permettre la construction, la composition et lexcution dapplications rparties x Fournir des services communs aux applications
transfre un message ou un flot de donnes entre metteur et rcepteur achemine un paquet entre deux htes sur des rseaux interconnects
s Position
x Utilisent les protocoles de transport des rseaux (souvent via linterface socket) x Sont utiliss par les applications finales
transport
rseau
s Exemples
trames bits
liaison physique
envoie une suite de bits entre deux htes sur un mme rseau spcifi
HTTP : HyperText Transfer Protocol : protocole du Web TFTP, FTP : (Trivial) File Transfer Protocol : transfert de fichiers TCP :Transmission Control Protocol : transport en mode connect UDP : User Datagram Protocol : transport en mode non connect IP : Internet Protocol : Interconnexion de rseaux, routage
2003-2004, S. Krakowiak RAR-M1 21
x x x x x x
RPC (Remote Procedure Call) Java RMI (Remote Method Invocation) CORBA : objets rpartis htrognes HTTP : protocole du World Wide Web SOAP (au-dessus de HTTP) : services Web
2003-2004, S. Krakowiak
RAR-M1
22
s Proprits
x Le client demande lexcution dun service ; le serveur ralise le service x Client et serveur sont (en gnral, pas ncessairement) localiss sur deux machines distinctes x Indpendance interface-ralisation Interface (spcification du service)
2003-2004, S. Krakowiak
RAR-M1
23
2003-2004, S. Krakowiak
RAR-M1
24
s Structuration
x fonctions bien identifies x sparation interface du service - ralisation x client et serveur peuvent tre modifis (remplacs) indpendamment
s Vu du client
requte client rponse serveur
s Vu du serveur
x Gestion des requtes (priorit) x Excution du service (squentiel, concurrent) x Mmorisation ou non de ltat du client slection requtes file des requtes traitement rponses
s Protection
x client et serveur sexcutent dans des domaines de protection diffrents
2003-2004, S. Krakowiak
RAR-M1
25
2003-2004, S. Krakowiak
RAR-M1
26
while (true) { receive (client_id, message) ; extract (message, service_id, params) ; do_service[service_id] (params, results) ; send (client_id, results) ; };
slection
requtes
traitement
rponse
2003-2004, S. Krakowiak
RAR-M1
27
2003-2004, S. Krakowiak
RAR-M1
28
Processus veilleur while (true) { receive (client_id, message) extract (message, service_id, params) ; work_to_do.put (client_id, service_id, params) ; };
Pool dexcutants while (true) { work_to_do.get (client_id, service_id, params) ; do_service{service_id] (params, results) send (client_id, results) };
Processus veilleur while (true) { receive (client_id, message) extract (message, service_id, params) ; p=create_thread (client_id, service_id, params) ; };
programme de p
do_service{service_id] (params, results) send (client_id, results) exit ;
cration
slection slection
requtes
work_to_do
traitement
requtes
traitement
rponse rponse
2003-2004, S. Krakowiak RAR-M1 29 2003-2004, S. Krakowiak RAR-M1 30
Plan de la suite
s Introduction aux rseaux informatiques (P. Sicard)
x Sance 2 : Couches et protocoles : TCP UDP IP ARP x Sance 3 : Couche de liaison, dtect/correct. Erreurs. Exemple : Ethernet x Sance 4 : Contrle de flux. Exemple : TCP x Sance 5 : Routage. Mise en uvre dans IP ; Exemple : RIP
2003-2004, S. Krakowiak
RAR-M1
31
2003-2004, S. Krakowiak
RAR-M1
32
Rfrences
Complments
2003-2004, S. Krakowiak
RAR-M1
33
2003-2004, S. Krakowiak
RAR-M1
34
Problmes communs
( tous les niveaux)
Dsignation
s Dsignation (naming)
x Fonction : dsigner (identifier) une entit physique ou logique : machine, rseau, service, fichier, etc. x Principe : espace de noms, rgles de composition des noms y Exemples : adresses physiques en mmoire ; adresses de machines sur un rseau local (48 bits) ; numros de porte ; nom de sockets ; adresses IP sur lInternet (32 bits, IPv4, 128 bits, IPv6) ; noms de domaines sur lInternet ; noms de services x Outils : service de noms y Fonction : resolution des noms (passer dun nom la localisation de lentit qull dsigne) y Problme : comment commencer (trouver le service de noms)
s Exemples de noms
x Dans un programme y Identificateur = nom de variable, de mthode, etc. y Rfrence = adresse de la reprsentation correspondante en mmoire x Dans un SGF y Identificateur = nom symbolique de fichier (/usr/bin/prog) y Rfrence = i-node correspondant (permet de localiser le contenu du fichier, par les adresses sur disque des blocs qui le composent) x Sur un rseau y Identificateur = nom symbolique dune machine (kernighan.imag.fr) y Rfrence = adresse IP (195.221.225.6) : rseau (+ sous-rseau) + n hte
s Liaison (binding)
x Fonction : pouvoir accder lentit dsigne par un nom y Liaison rsolution : connatre la localisation dun objet ne suffit pas pour y accder : il faut un protocole pour raliser laccs effectif x Nature et moment de la liaison y Statique : une fois pour toutes (ex : adresses sur un rseau local) y Dynamique : au moment de laccs (ex : adresses IP sur lInternet, via routage ; noms de domaines sur lInternet, via DNS ; services dapplications via service de noms ou de courtage)
2003-2004, S. Krakowiak
RAR-M1
35
2003-2004, S. Krakowiak
RAR-M1
36
Dsignation et liaison
Rsoudre un nom (dans un contexte)
x partir du nom, trouver lobjet x Processus rcursif target = context.resolve(name) [ou name.resolve()] 3 issues possibles pour target y Une valeur type : cest lobjet y Une rfrence (ex : adresse) => lobjet est localis y Un autre nom (dans un autre contexte) => on rappelle resolve
Systme de dsignation
x Rgles permettant de dsigner une catgorie dentits (usagers, fichiers, machines, ec.)
Espace de noms
x Ensemble des noms utilisables dans un systme de dsignation
Un nom
s
a Un espace unifome (plat) est peu commode : - recherche peu efficace - regroupement impraticable Do une organisation par contextes (locaux) Nombreux exemples dans les rseaux et applications rparties alpha foo beta foo bar
Lier un nom
x partir du nom, construire une chane daccs lobjet x Diffrence majeure entre centralis et rparti : y En centralis, la rfrence donne accs lobjet dsign (exemple : adresses, inodes) ; donc rsolution = liaison y En rparti, une rfrence (adresse IP, n de porte) ne suffit pas pour accder lobjet ; donc rsolution liaison ! y La liasion ncessite de construire explicitement une chane daccs sous forme de protocoles de communication et de points dentre
Un objet
Un contexte
zzz tau here
2003-2004, S. Krakowiak
RAR-M1
37
2003-2004, S. Krakowiak
RAR-M1
38
Application Prsentation Session Transport Rseau Liaison Physique Rseau Liaison Physique Rseau Liaison Physique message paquet trame bit
Les protocoles OSI servent plutt de cadre de rfrence pour la dfinition des fonctions que de normes de ralisation. La normalisation de fait est autour de TCP/IP
2003-2004, S. Krakowiak
RAR-M1
39