application repartie

Upload: cedilo10

Post on 17-Jul-2015

167 views

Category:

Documents


5 download

TRANSCRIPT

Applications rparties

cole Suprieure dIngnieurs de Luminy Dpartement "Informatique, Rseaux et Multimdia" 2me anne 2010-2011

InformationsVolume 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 coursIntroduction, rappels, dfinitions Sockets, illustration avec JAVA Intergiciels, schmas de conception JAVA RMI CORBA

3

Bibliographie gnrale du coursA. 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

MotivationsLa plupart des applications informatiques sont rparties Rpartition intrinsque d'applications ou choix structurelTravail 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 / tlvision5

Systmes rpartis DfinitionSystme 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 CaractristiquesDifficultsProprit 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 rpartiesSystme : 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 rpartiesApplication : 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 rpartiesCoordination d'activitsFlots de donnes (Workflow). Agents (IA).

Communication et partage d'informationBibliothques virtuelles.

Collecticiels (Groupware)dition cooprative. Tlconfrence. Ingnierie concourante.10

Quelques catgories d'applications rpartiesApplications temps rel / pseudo temps relContrle et surveillance de procds et d'installations. Rseaux de capteurs. Avionique Localisation de mobiles.

Nouveaux services grand publicPresse lectronique. Commerce lectronique. Tlvision interactive.11

Rappels sur le modle ClientServeurLe 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 : fonctionnementCommunication 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 : IntrtStructuration Protection Gestion des ressources14

Modle Client-Serveur ExemplesServeur 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 niveauApplications sur site centralModle utilis dans le pass.

16

Architectures 1 niveauDistribution d'applications autonomesModle couramment utilise. Problmes de maintenance, mise jour.

17

Architectures 2 niveauxDeux niveaux (ou "client lourd")Problmes de maintenance, programmes dupliques partout. Potentiellement bon. Traitement distant : algorithmique distribue.

18

Architectures 3 niveauxTrois niveaux (ou "client lger", 3 tiers)Exemple : page web PHP.

19

Architectures 4, N niveaux

20

Gnralisations du schma client-serveurLes notions de client et de serveur sont relativesUn 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-serveurClients et serveurs jouent un rle symtriqueTout 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-serveurPar des oprations de "bas niveau"Utilisation de primitives du systme de communication. Exemple : socketsMode non connect (UDP). Mode connect (TCP).

Par des oprations de "haut niveau"Utilisation d'un middleware spcialisRPC, JAVA RMI, CORBA, JMS, EJB, .Net, Web Services.

23

Les 8 erreurs conceptuelles des applications rparties1. 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 homogne24

Quelques dfis relever pour l'informatique rpartieProblmes thoriquesLes 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 rpartieProblmes plus pratiquesDcouverte/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 mmoireClient 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 rseaueXternal 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