Vous êtes sur la page 1sur 29

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