Académique Documents
Professionnel Documents
Culture Documents
Dnition trs large : un systme rparti est systme informatique dans lequel les ressources ne sont pas centralises Ressources au sens trs large : stockage (disques, bases de donnes) puissance de calcul utilisateurs But : permettre des utilisateurs de manipuler (calcul) leurs donnes (stockage) sans contrainte sur les localisations respectives des lments du systme Gnralisation et amlioration du schma client/serveur : serveurs multiples (quilibrage de charge, redondance) systmes multi-couches (tiers) peer to peer rparti distribu
Syst`mes rpartis p.1/49 e e Syst`mes rpartis p.2/49 e e
Exemples
DNS annuaires X500 Web Systmes multi-couches base de donnes repartie base de donnes repartie ordinateur rparti : donnes, traitement, etc architecture classique pour les systmes mlangeant serveur web, base de donnes, traitement volu, etc systme compltement dcentralis, en gnral pour le stockage rparti calcul rparti super-ordinateur pour le calcul et le stockage rparti
Syst`mes rpartis p.3/49 e e
Exemple : le DNS
Exemple typique dun systme rparti (1984) : DNS : Domain Name System le systme qui permet de trouver ladresse IP associe un nom de machine exemple : www.dauphine.fr 193.49.168.65 DNS : une base de donnes rpartie Rappels TCP/IP : Internet Protocol (IP) : couche rseau base entirement sur ladresse IP (transmission directe au sein dun sous-rseau, par routeur en dehors) Transmission Control Protocol (TCP) : couche transport qui assure larrive des paquets une sorte de systme rparti : pas de contrle central, routes alternatives, etc.
peer to peer
Clusters Grid
DNS : exemple
racine (nom vide)
fr
sousdomaine
dauphine
www
ceremade
www
Equilibrage de charge
Serveur
Java
Clients Proxy
Serveur
Javascript
Couche de prsentation
Une technique classique, les extensions sur le serveur : cgi (en C, C++, Perl) versions embarques dans le serveur (mod_perl), ou dans un container (Servlet en Java) relativement lourd : il faut produire le code HTML la main dans le programme quilibrage de charge classique : pages statiques sur un serveur, pages dynamiques sur dautres (par exemple) Servlet : quilibrage intgr (le moteur de servlet Tomcat est indpendant du serveur web) Problme : comment accder la couche mtier ?
Couche mtier
Accs direct au SGBD : solutions classiques et standardises : ODBC et JDBC solutions spciques : interface SGBD de Perl, de PHP, etc. problme : expertise SQL (transactions par exemple) Accs masqu au SGBD : persistance automatique (EJB CMP et JDO pour Java par exemple) solutions relativement nouvelles srement lavenir Lien avec la couche de prsentation : solution basique : bibliothque (i.e., le code mtier est excut par la couche de prsentation) approche distribue : cest un des objets de ce cours !
Syst`mes rpartis p.18/49 e e
Exemple multi-couches
HTML+JSP HTTP Interprtation des JSP
Spcifique
client
serveur web
Tomcat
???
JDBC
SGBD
objets mtier
Syst`mes rpartis p.19/49 e e Syst`mes rpartis p.20/49 e e
Edonkey 2000
But : piratage (soyons clair !) ou (en langue de bois) partage de documents. Architecture : tout le monde peut devenir serveur sur le serveur : liste des clients pour chaque client : liste des documents proposs au tlchargement communication client vers serveur : le client demande un document le serveur lui renvoie la liste des clients qui possdent le document communication client vers client : tlchargement des documents morceaux par morceaux (un client peut tlcharger une partie dun document dun client et le reste dun autre)
Syst`mes rpartis p.21/49 e e
Edonkey 2000
requtes tendues Serveur Client abba.mp3 pamela.jpg lordoftherings.avi a b c a a d e Client Client d ... ... e ... ... ... ... ... ... ... Client Serveur Client
Client a
Client b
Client c
Client
Client
b tlcharge lordoftherings.avi
Freenet
Mmes buts ! Architecture : vritable peer to peer aucun serveur recherche dun document : un client demande un document ses amis (autres clients) quand un client reoit une requte de documents laquelle il ne peut pas rpondre, il propage cette requte dautres clients la rponse suit le chemin inverse condentialit forte : tout est crypt Dans les deux cas (Edonkey 2000 et Freenet), on obtient une sorte de systme de chiers distribu.
initiateur de la recherche 3
Freenet
4 5 6 1 7 recherche donnes erreur
Les clusters
En gnral (Beowulf, Mosix, etc.) : processus, i.e., mmoire non partage passage de message transparence rseau totale : deux processus communiquent comme si ils taient sur la mme machine migration de processus quilibrage dynamique de la charge Problmes : programmation parallle trs dlicate pas de vrai standard pas de mmoire partage rpartie
Les Grid
Quand un cluster ne suft pas, on passe au grid : plusieurs ordinateurs (beaucoup !) pas de contrainte de gographie (un grid peut mettre en commun des ordinateurs rpartis dans plusieurs pays) architectures physiques et logicielles htrognes Exemples : Seti@Home et toutes ses variantes supers calculateurs (NASA, NSF, etc.) Commentaires : lavenir des super-calculateurs pas encore de norme programmation trs dlicate problmes de scurit
Les problmes
Ces exemples illustrent les problmes classiques des systmes rpartis : communication : lossature de tout systme rparti la zone de compromis entre efcacit et facilit de programmation htrognit : portabilit interoprabilit scurit : authentication droits daccs (politiques de scurit) dploiement administration
Sockets
Rappels : connexion stable (TCP) bi-directionnelle entre deux programmes fonctionnent comme des chiers : le descriptor en C, stream en Java trs bas niveau : il faut connatre ladresse ip et le numro de port du serveur pas de transparence rseau gestion par le programmeur du protocole (langue parle par le serveur) souple efcace interoprable avec un bon protocole (difcile) on peut faire encore plus efcace : User Datagram Protocol (UDP). Encore plus bas niveau (pas de connexion).
Syst`mes rpartis p.30/49 e e
Sockets (2)
Beaucoup de solutions actuelles sont bases sur TCP ou mme sur UDP : client/serveur TCP : Simple Mail Transfer Protocol, File Transfer Protocol, Hyper Text Transfer Protocol, etc. systmes rpartis : Domain Name System (UDP pour les requtes, TCP pour le reste) Lightweight Directory Access Protocol TCP Edonkey 2000 (UDP et TCP) freenet (implmentable au dessus de diverses mthodes de transport, mais en gnral TCP) jeux en rseaux etc.
Sockets (3)
Mise en uvre dlicate car il faut tout faire : mettre au point un protocole : mise en place de la connexion (scurit) commandes reconnues par le serveur (paramtres et rsultats) codes derreur etc. programmer le serveur fournir une API pour le client (sinon le client doit parler directement au serveur) fournir un minimum de transparence rseau tre interoprable (exemple bid endian et little endian) Difcile et surtout trs redondant automatiser ce processus.
Syst`mes rpartis p.31/49 e e Syst`mes rpartis p.32/49 e e
Systmes messages
Avantages : portabilit transparence rseau interoprabilit efcacit Inconvnients : messages de bas niveau (au mieux struct) technique de programmation spcique (ni procdurale, ni objet) Autres solutions bases sur des messages, beaucoup moins orientes clusters : SOAP Java Message Service Ce sont des solutions de plus haut niveau, en gnral moins efcaces mais plus accessibles.
Les RPC
Vocabulaire : souche (stub) : reprsentant local du serveur traduction de lappel local en message squelette (skeleton) : quivalent de la souche sur le serveur traduction du message en appel local empaquetage (marshalling) : reprsentation des donnes de lappel (ou du rsultat) sous forme dun message dpaquetage (unmarshalling) : opration inverse Premire brique du RPC, la reprsentation des donnes interoprable : XDR pour les RPC ONC NDR pour les RPC DCE XML pour XML RPC et son successeur SOAP Srialisation Java pour RMI (pas seulement)
Objects distants
Appel de mthodes distance, RPC objets : ide de base : apporter les bnces de lobjet aux systmes rpartis. Par exemple : encapsulation polymorphisme etc. plusieurs grands standards : CORBA (Common Object Request Broker Architecture) Java RMI Microsoft COM+/DCOM (Distributed Component Object Model) tous bass sur la notion dinterface et sur des mcanismes de bas niveau semblables ceux utiliss par les RPC
CORBA
A la fois lanctre et le standard : norme de lObject Management Group version actuelle 3.0.2 (dcembre 2002) bas sur un bus logiciel, lObjet Request Broker (ORB) totalement interoprable : les objets sont dcrits en IDL (Interface Denition Language) implments dans nimporte quel langage (Java, C++, C, etc.) les ORB sont des plus en plus compatibles, mme au niveau source nombreuses implmentations, commerciales et open source, mais pas toujours en accord avec la norme (en gnral, la norme 2.4 est supporte)
Java RMI
Les RPC objets version Java. Deux versions : Java Remote Method Protocol Internet InterORB Protocol (celui de CORBA) JRMP est spcique Java et donc trs intgr la plate-forme : programmation minimale concepts Java en version rpartie (par exemple Garbage Collecting rparti) portabilit au sens Java ne peut communiquer quavec une autre JVM RMI-IIOP est bas sur le protocole de CORBA : programmation plus complexe (mais pas besoin dIDL) intgration moins bonne interoprable
COM+/DCOM
Solution Microsoft base sur COM+ et sur les RPC DCE : propritaire Microsoft (des portages commerciaux existent) multi-langage (IDL) Garbage Collecting rparti programmation plus lourde que CORBA (trs verbeux) accs aux services de Windows Intrts limits par rapport CORBA, sauf en environnement 100% Microsoft.