Applications rparties
cole Suprieure dIngnieurs de Luminy Dpartement "Informatique, Rseaux et Multimdia" 2me anne 2010-2011
Informations
Volume horaire : 24h Cours et TD/TP : prsence obligatoire valuation : Examen S'appuie sur :
Cours de "JAVA", Cours de "Rseaux",
Est reli au cours de "Systmes rpartis".
2
Plan gnral du cours
Introduction, rappels, dfinitions Sockets, illustration avec JAVA Intergiciels, schmas de conception JAVA RMI CORBA
Bibliographie gnrale du cours
A. Tanenbaum. "Distributed Operating Systems". PrenticeHall 1995. A. Fron. "Architectures rparties en JAVA", Dunod 2007. G. Roussel, E. Duris, , "Java et Internet : concepts et programmation", Vuibert.
Tome 1 : ct client, 2002, ISBN 2-7117-8689-7. Tome 2 : ct serveur, 2007, ISBN 2-7117-8690-0.
R. Balter, J.-P. Bantre, S. Krakowiak. "Constructions des systmes dexploitation rpartis". 1991. Cours de M. Sacha Krakowiak (universit Joseph Fournier, Grenoble).
4
Motivations
La plupart des applications informatiques sont rparties Rpartition intrinsque d'applications ou choix structurel
Travail collaboratif, tltravail, Intgration d'applications distantes (mondialisation des entreprises) Paralllisme : puissance de traitement ; masses de donnes Dveloppement des rseaux (performances et prix) Convergence informatique / tlcom / tlvision
5
Systmes rpartis Dfinition
Systme rparti = ensemble compos d'lments relis par un systme de communication. Les diffrents lments du systme ne fonctionnent pas indpendamment mais collaborent une ou plusieurs tches communes. Consquence sur l'tat global ?
6
Systmes rpartis Caractristiques
Difficults
Proprit d'asynchronisme du systme de communication Dynamisme (la composition du systme change en permanence) Grande taille (nombre de composants, d'utilisateurs, dispersion gographique)
Malgr ces difficults, de grands systmes rpartis existent et sont largement utiliss :
le DNS (Domain Name System), le World Wide Web.
7
Distinction entre systmes rpartis et applications rparties
Systme : gestion des ressources communes et de l'infrastructure, lies de manire troite au matriel sous-jacent.
Systme d'exploitation : gestion de chaque lment. Systme de communication : change d'information entre les lments. Caractristiques communes ?
8
Distinction entre systmes rpartis et applications rparties
Application : rponse un problme spcifique, fourniture de services ses utilisateurs (qui peuvent tre d'autres applications). Utilise les services gnraux fournis par le systme. Distinction pas toujours vidente. Exemples : systmes embarqus, rseaux de capteurs.
9
Quelques catgories d'applications rparties
Coordination d'activits
Flots de donnes (Workflow). Agents (IA).
Communication et partage d'information
Bibliothques virtuelles.
Collecticiels (Groupware)
dition cooprative. Tlconfrence. Ingnierie concourante.
10
Quelques catgories d'applications rparties
Applications temps rel / pseudo temps rel
Contrle et surveillance de procds et d'installations. Rseaux de capteurs. Avionique Localisation de mobiles.
Nouveaux services grand public
Presse lectronique. Commerce lectronique. Tlvision interactive.
11
Rappels sur le modle ClientServeur
Le client demande l'excution d'un service. Le serveur ralise le service. Client et serveur sont (en gnral) localiss sur deux machines distinctes. Indpendance interface-ralisation.
12
Modle Client-Serveur : fonctionnement
Communication par messages (plutt que par partage de donnes, mmoire ou fichiers)
Requte : paramtres d'appel, spcification du service requis. Rponse : rsultats, indicateur ventuel d'excution ou derreur Communication synchrone (dans le modle de base) : le client est bloqu en attente de la rponse.
13
Modle Client-Serveur : Intrt
Structuration Protection Gestion des ressources
14
Modle Client-Serveur Exemples
Serveur de fichiers (NFS, AFS). Serveur d'impression (lpd). Serveur de calcul. Serveur d'application (spcifique l'appli). Serveur de bases de donnes. Serveur de temps. Serveur de noms (annuaire des services).
15
Architectures 1 niveau
Applications sur site central
Modle utilis dans le pass.
16
Architectures 1 niveau
Distribution d'applications autonomes
Modle couramment utilise. Problmes de maintenance, mise jour.
17
Architectures 2 niveaux
Deux niveaux (ou "client lourd")
Problmes de maintenance, programmes dupliques partout. Potentiellement bon. Traitement distant : algorithmique distribue.
18
Architectures 3 niveaux
Trois niveaux (ou "client lger", 3 tiers)
Exemple : page web PHP.
19
Architectures 4, N niveaux
20
Gnralisations du schma client-serveur
Les notions de client et de serveur sont relatives
Un serveur peut faire appel d'autres serveurs dont il est client. Exemple usuel : traitement utilisant une base de donnes, et architecture 3 niveaux.
21
Gnralisation du schma client-serveur
Clients et serveurs jouent un rle symtrique
Tout site joue le rle de serveur pour les autres. Certaines fonctions (service de noms) peuvent ventuellement tre centralises.
Systmes pair pair (Peer to Peer, P2P)
Utilisation : partage de donnes grande chelle. Initialement : partage de fichiers (Napster, ).
22
Mise en uvre du schma client-serveur
Par des oprations de "bas niveau"
Utilisation de primitives du systme de communication. Exemple : sockets
Mode non connect (UDP). Mode connect (TCP).
Par des oprations de "haut niveau"
Utilisation d'un middleware spcialis
RPC, JAVA RMI, CORBA, JMS, EJB, .Net, Web Services.
23
Les 8 erreurs conceptuelles des applications rparties
1. 2. 3. 4. 5. 6. 7. 8. Le rseau est fiable La latence est nulle La bande passante du rseau est infinie Le rseau est scuris La topologie de l'application est statique Un seul administrateur du rseau Le cot du transport est nul Le rseau est homogne
24
Quelques dfis relever pour l'informatique rpartie
Problmes thoriques
Les difficults classiques de l'informatique concurrente. Conditions de comptition, inter-blocages, famines. Difficults de l'algorithmique distribue Connaissances partielles, communications asynchrones et consensus.
25
Quelques dfis relever pour l'informatique rpartie
Problmes plus pratiques
Dcouverte/nommage du serveur par le client. Transmission des paramtres et rsultats. Traitement d'erreurs. Gestion l'excution : dploiement, lancement, arrt, reconfiguration des serveurs. Gestion mmoire : ramasse-miette distribu.
26
ANNEXE
27
Reprsentation des donnes en mmoire
Client et serveur sur machines diffrentes : Il faut transmettre donnes et rsultats. Diffrences de reprsentation en mmoire :
Little-endian (x86, Alpha) vs. Big-endian (PPC, Sparc).
Reprsentation des flottants (fix par IEEE 754). Tailles (32 ou 64 bits ; 4 ou 8 octets pour un registre).
28
Reprsentation des donnes sur le rseau
eXternal Data Representation (XDR, utilis par Sun RPC) (RFC 1832)
Reprsentation commune sur le rseau (format pivot) Bibliothques de conversion {reprsentation locale} {ce format} Scalaires + Types complexes (tableaux, struct, union, enum) + Pointeurs
Quelques autres solutions :
htonl, ntohl, : conversions manuelles ASN.1 : solution normalise, mais lourde XML : SOAP/Web Services ; JXTA. Interoprable mais inefficace CDR/IIOP : Corba ; J2EE.
29