Professional Documents
Culture Documents
Gnralits
2007-2008/ LSI 3
Gnralits
Plan
Introduction Architecture des systmes rpartis Modles d'xecution : modle client-serveur Modles d'xecution : modle P2P dsignation/localisation/protection
Evolution technologique
Extension des rseaux Performance des rseaux Faible cot des microprocesseurs
Systmes distribus
un SD, c'est...
"Un systme distribu est un systme qui s'excute sur un ensemble de machines sans mmoire partage, mais que pourtant l'utilisateur voit comme une seule et unique machine." [Tanenbaum]
un SD ce n'est pas...
un systme multiprocesseurs systme un ou plusieurs processeurs partageant l'accs complet une RAM commune. un systme multiordinateurs (clusters de PC) systmes de processeurs ayant chacun une RAM propre. Dirence ? Chaque ordinateur d'un systme distribu possde un jeu de priphriques Pas de rseau ddi pour les systmes distribus Faible couplage des ordinateurs : grand nombre d'applis (+) / programmation complexe (-)
Multiprocesseur Conguration du noeud Priphriques de noeud Emplacement Communication Systme d'exploitation Systme de chier Administration Processeur Tous partags Mme baie RAM partage Un seul, partag Un seul, partag Une organisation
Multiordinateur Processeur, RAM, interface rseau Excutable partag, disque Mme pice Lien ddi Plusieurs, le mme Un seul, partag Une organisation
Systme distribu Ordinateur complet Jeu complet par noeud Le monde entier Internet Tous dirents Chaque noeud possde le sien Plusieurs organisations
Pourquoi ?
raisons conomiques
prix des processeurs de petite puissance partage des ressources facilit d'extension du systme
raisons pratiques
robustesse aux pannes paralllisme, concurrence application spciques (avion, usines,...) communication entre machines (rpartition d'applications) et entre utilisateurs
Comment ?
"Ce que les systmes distribus ajoutent au rseau sous-jacent est un paradigme commun proposant une manire uniformise d'tudier l'ensemble du systme" [Tanenbaum] "En dpit du matriel sous-jacent et de systme d'exploitation dirents, un systme distribu peut arriver une certaine uniformit grce une couche logicielle venant se superposer au systme d'exploitation : le Middleware (Intergiciel)" [Tanenbaum]
middleware - intergiciel
Base commune d'application Application Middleware Windows Pentium Application Middleware Linux Pentium Application Middleware Solaris SPARC Application Middleware Mac OS Macintosh
Rseau
Seulement le middleware ?
o est construit le paradigme commun ? (Intgration)
Dans la couche transport (TCP/IP, ...) Dans le langage de programmation (ADA, JAVA RMI, ...) Dans le middleware (CORBA, RPC) (entre le systme d'exploitation et les applications) Dans le systme d'exploitation (micro-noyau Chorus, Mach, Amoeba)
migrations (partage de charge, rduction du temps d'accs) pannes (activation ou passivation du serveur, changement de protocole) traduction du nom en adresse par un service de localisation : 1. diusion (simple), 2. itration, 3. serveur de localisation (gnrale mais lourde) Pour que la requte du client arrive jusqu'au serveur migr : 1. le client possde la nouvelle adresse 2. le client possde la nouvelle adresse + redirection
Comme par exemple reprsentation des donnes mmoires (little/big endian, ...) langages de programmation protocoles de communication
Dfaillance matrielle
(Transparence aux pannes)
Un systme distribu est un systme avec lequel je ne peux rien faire car une machine que je ne connais pas est en panne (Lamport)
Pas totalement vrai car des solutions base de : Systme Transactionnel Point de reprise globaux (sic) Solution base de redondance
redondance active (groupe de serveurs + vote = consensus) redondance passive (serveurs matre/esclaves)
Autre ...
Scurit, authentication, accs, ... Performance (faire mieux que centralis) ...
Besoins couverts
interface standardises, interoprabilit, portabilit coopration, coordination, partage vision commune, interaction transparence accs, localisation, uniformisation, ... qualit de service disponibilit, dlais, cots, ... scurit authentication, intgrit, condentialit, ... volutivit, facilit d'administration mise l'chelle, reconguration, ... ouverture
Exemple 1 : WWW
adressage des pages par URL (transparence d'accs) liens hypertexte (transparence la localisation) buers, duplication de serveurs, routage (transparence aux pannes, l'extension des ressources) diteurs, lecteurs (transparence l'htrognit)
Exemple 2 : NFS
montage de disque (transparence d'accs et de localisation) volution (transparence l'extension de ressources) htrognit ? pannes ?
Exemple 3 : CORBA
middleware fond sur un objet partag
Un objet est une collection de variables lies des mthodes (et accessible uniquement par elles). Object Request Brokers (transparence d'accs, de localisation, l'extension) Interface Denition Language (transparence l'htrognit) Duplication (transparence aux pannes)
Autres exemples
Evolution
le modle client-serveur > (schma de base) modle primitif (messages) modle volu (appel de procdure distantes) : demande de service, gestion de chiers serveurs cooprants > interface serveur unique services intgrs regroupement des modalits sur un mme rseau (voix, donnes, ...) services rpartis (sur les routeurs) le modle pair pair (modle r-mergeant) partage des ressources et du contrle agrgation des ressources et interoperabilit modle pur, modle hybride
Des normes
Open Software Foundation > (consortium) : Modle DCE Object Managment Group > (consortium) : CORBA > , services ODP > (ISO-UIT-T) : modlisation, ingnierie IETF - W3C : protocoles HTTP, SOAP >
>
mise en place de systmes gnriques sur micro-noyaux assemblage de protocoles partir d'lments gnriques (pour la communication, la journalisation, ...) utilisation de techniques objets (rpartis, bien entendu) pour la structuration des systmes et des applications
client-serveur "traditionnel" client-serveur "de donnes" client-serveur " objet" modle de communication par messages par venements modle composants modle base de code mobile modle mmoire virtuelle partage modle "pair pair"
Matriel
processus lgers "threads" mmoire virtuelle avec couplage communication rapide et protge services modulaires rutilisables services modulaires risque loigns de la partie sensible du noyau systme.
L'utilisation de nombreux services dans l'espace utilisateur engendre les deux problmes suivants : La plupart des services sont l'extrieur du noyau et gnrent un trs grand nombre d'appels systme ; Les interfaces de communication entre les services (IPC) sont complexes et trs lourdes en temps de traitement.
Conversationnel
Prog A
Requtes et rponses
Prog A Prog A
Envoi de message
Publication et abonnement
Prog A
Prog B
client-serveur "traditionnel" client-serveur "de donnes" client-serveur " objet" modle "pair pair" modle de communication par messages par venements modle composants modle base de code mobile modle mmoire virtuelle partage
le principe du client-serveur
ordinateur client processus client demande rponse rseau ordinateur serveur processus serveur
requtes client
serveur multi-threads
thread excutant
type de paquet
demande rponse
de
client serveur
vers
serveur client
description
le client dsire un service la rponse du serveur au client
ACK
accus de rception
AYA IAA
client serveur
serveur client
panne TA AU essayer de nouveau adresse inconnue serveur serveur client client le serveur est satur aucun processus n'utilise
cette adresse
protocole "Request" (R) : pas de conrmation protocole "Request/Reply" (RR) : simple change (type datagramme)(piggybacking) protocole "Request/Reply/Acknowledg-reply"(RRA) : message composite, pour viter au serveur de conserver des messages
Identier un service Convertir un appel procdure en un change de message Choisir une reprsentation des donnes (htrognit des matriels) Choisir un service de transport (couche de transport)
Motivations
spcications commune au client et au serveur dnition du type et de la nature des paramtres indpendance des langages de programmation Principes directeurs langage dclaratif outils de gnration de stubs (talons) Sun RPCGen
prserver la smantique habituelle de l'appel de procdure (transparence) transparence de la localisation Dicults ralisation peu conviviale (mme avec un IDL) smantique dirente de l'appel de procdure :
passage de paramtre
panne et/ou congestion du rseau (perte du message de requete ou perte de la rponse du serveur.) panne de client pendant le tratement de la requte panne du serveur avant ou pendant le tratement de la requte gestion de l'htrognit designation et liaison problmes de scurit authentication du client et du serveur condentialit des changes problmes d'adaptation des environnements variables protocoles, langages, matriels problme de performances
at least once si dlai coul alors r-mission requte :plusieurs excutions (idempotente ?) possibles. at most once si dlai coul alors pas de reprise exactly once si dlai coul alors r-mission requte ou r-mission rponse avec limination des doublons.
n'utilisent pas le mme systme de codage (big endian, little endian) utilisent des formats internes dirents Solution syntaxe abstraite de transfert ASN1 (Abstract Notation N1 du modle de communication OSI) reprsentation externe commune XDR (eXternal Data Representation de SUN) reprsentation locale pour le client avec conversion par le serveur ngociation entre le client et le serveur sur le choix d'une reprsentation
objet dsigner (site d'excution, serveur, procdure) une dsignation globale indpendante de la localisation permet une reconguration des services (panne, rgulation) Mise en oeuvre : statique ou dynamique statitique : localisation du serveur connue la compilation dynamique : localisation du serveur dtermine l'xecution
pour sparer le nom du service de la procdure qui va l'xecuter permettre l'implmentation retarde (gestion de versions)
BDD
stockage des donnes, gestion de la disponibilit et de la scurit interprtation, optimisation des requtes fonction du client code de l'appllication non-li aux donnes dialogue avec l'utilisateur fonction du "mdiateur" procdure de connexion/dconnexion prparation/communication des requtes gestion des caches
proprits de l'objet (encapsulation, modularit, rutilisabilit, ...) objet : unit de dsignation et de distribution Principe de fonctionnement
Serveur
Etat mthode1 mthode2 mthode3
Client
stub client
stub serveur
rfrence d'objet identication d'une mthode passage de paramtres et retour de rsultat (et exceptions) objets "langage" reprsentation propre au langage : instance d'une classe exemple : JAVA RMI objets "systme" reprsentation gnrique dnie par l'environnement d'excution exemple : CORBA
Dsignation et localisation
Noms
Noms externes ou symboliques Noms internes contextuels ou locaux Noms internes uniques et globaux (UID)
Adresses
Adresses rseaux (ou "virtuelles") Adresses mmoire (ou "disque")
1. diusion (la plus simple, gourmande en message) 2. heuristique (adaptative, complique) 3. valuation itrative de la localisation (cot croissant au cours du temps) 4. serveur de localisation (la plus gnrale, lourde)
wikipedia fr eng
Echelle Monde Nombre de noeuds Peu Ractivit sec. Mise Jour Lente Clones Beaucoup Cache client ? oui
de Gestion
Mcanisme :client-serveur (RPC) Opration synchrone (thread) Cache Port du serveur : adresse logique du contact (nomade ?) Objet : identicateur qui n'a pas de sens pour le serveur Droits : oprations autorises Cl : validation de l'authentication
A la cration de l'objet, le serveur tire un nombre alatoire N (identication propritaire) Le crateur est propritaire de tout les droits N est conserv dans les tables du serveur La cl C = F (NxorDroits ) o F est une fonction non-inversible (identication restreinte).
Port du serveur
Objet
Droits
F (N xor Droits )
Comparaison (Validation)
F (N xor Droits )
Gnralits Annexes
Serveurs Cooprants
Ralisation d'un modle abstrait serveur unique (dissimulant une ralisation cooprative) Motivations : tolrance aux pannes / Ecacit Problmes : Communication interne, reprise de panne, cohrence
Interface
Gnralits Annexes
Modle client-serveur
Aspect physique
requte client
Aspect logique
serveur rponse
Gnralits Annexes
Cre en 1988 But : Cration d'un standard pour l'implmentation d'UNIX Apollo Computers, Groupe Bull, Digital Equipment Corporation, Hewlett-Packard, IBM, Nixdorf Computer, and Siemens AG aboutira au standard OSF/1 (chec) autres ralisation : MOTIF et DCE.
Gnralits Annexes
Modle DCE
Plate-forme de dveloppement destine aux applications distribues Vision inverse du micro-noyau : intgration de services bas niveau dans le systme hte. Sous la forme de bibliothques (primitives pour RPC, threads, cellules d'objets, Horloge globale). Services cooprent entre eux et forment la couche systme DCE au dessus du noyau du systme hte. Systme de chier de type DCE utilis par IBM pour Jeux Olympiques '96
Gnralits Annexes
assembls (langages distincts), excuts sur des processus spars, dploys sur des machines distinctes. interoprable avec RMI interface des composants dcrits sous IDL, prcompilateurs de stub et skeletons.
Gnralits Annexes
Microsoft, IBM ... puis recommandation W3C protocole de RPC orient objet bti sur XML autorise un objet invoquer des mthodes d'objets physiquement situs sur une autre machine
Gnralits Annexes
Consortium d'entreprises Pour le dveloppement de standards technologiques et industriels Cadre : Outils pour la conception, l'xcution, la maintenance, ... Middlewares bass sur CORBA
Gnralits Annexes
"The objective of ODP standardization is the development of standards that allow the benets of distributing information processing services to be realized in an environment of heterogeneous IT resources and multiple organizational domains. These standards address constraints on system specication and the provision of a system infrastructure that accommodate diculties inherent in the design and programming of distributed systems." [LAMS, EPFL] Le modle objet (identit + tat + comportement + interfaces) construire des spcications de systme ODP : il est compos d'objets hirarchiss et interagissants (objets composites) Le modle architectural (Reference Model) pt de vue entreprise (besoin), information (ux), traitement (dcomposition fonctionnelle), ingnierie (infrastructure requise), technologie (choix).