Résumé des points importants des chapitres
Distributed Systemes Concept and design
Introduction (pages 1 à 64, 3 heures)
Revue des mécanismes de communication sur
l'Internet (pages 65 à 164, 3 heures)
Appels de procédures à distance (pages 165 à
206 et 669 à 698, 4 heures)
Systèmes d'exploitation répartis et multi-ordinateurs
(pages 207 à 250, 3 heures)
Services de noms symboliques (pages 353 à
384, 2 heures)
Services de temps et de coordination (pages
385 à 464, 2 heures)
· Vecteurs de
compteurs d'événements
Transactions réparties (revue au besoin des pages
465 à 514, pages 515 à 552, 3 heures)
Du point de vue des connaissances acquises, l'étudiant devra:
1. connaître les différents services communément offerts sur l'Internet;
2. connaître les organisations et mécanismes possibles pour répartir le traitement requis pour offrir ces services;
3. savoir les caractéristiques (performance, sécurité, transparence, tolérance aux défaillances) associées à chaque organisation et mécanisme.
Du point de vue habiletés et aptitudes acquises, au terme de ce cours, l'étudiant pourra:
1. analyser les caractéristiques d'un système réparti en fonction de sa charge et du niveau de service requis;
2. concevoir un système réparti selon les spécifications de la charge attendue et du niveau de service requis.
Plan du cours
· Historique.
· Caractéristiques des systèmes répartis.
· Modèles de systèmes répartis.
·
Exemple: WWW.
DS: hardware or
software components located at networked computers communicate and coordonate
theirs actions only by passing messages.
This definition lead
to the following characteristics:
Main motivation of
constructing DS: sharing resource
Challenges:
Transparency
*Access transparency +
Location transparency = network transparency, Concurrence transparency,
Replication transparency, Failure transparency, Mobility transparency,
Performance transparency
, Scaling transparency
Modèle de panne :
· Auto-detection
· Omission
· Mauvaise réponse plus ou mois alléatoire
· Erruer bizantinew
· Erreur de synchronisation
Les principaux service d’un réseau d’ordinateur permettant de faire du système réparti:
· Système transparent d’accès au fichier
· Service de nom permettant (nom usager + password) d’être connu sur tout le réseau
· Etc. (impression/communication inter-processus)
HTTP: hyperText Markup
Language
URL: Unifor Resource
Specification
FTP: File tranport protocol
· Technologies (Ethernet, ATM).
·
Protocoles
(TCP/UDP/IP).
Applications, services
MiddleWare
*OS
*Computer and network Hardware
*=Platform
Midleware: layer of software whose purpose is to mask
heterogeneity and to provide a convenient programming model to application
programmer. RPC (remote procedure Calling package) CORBA –RMI-DCOM
Client server Variation : Mobile code , mobile agent
Services provided by multiple servers
Proxy servers and caches
Peer process (all process ply similar role, interacting cooperatively as
peer)
Network computer (local execution-application data and code store on
Computer server)
Thin clients (export display, process elsewhere)
Mobil devices and spontaneous networking (Wireless network)
Performance issues
Qty of services
Use of caching and replication
Dependability issues (correctness security and fault tolerance)
Interaction (performance of communication channel-Computery clocks and
timing events)
Failure (omission failure,Arbitrary failure-Timing failure-Masking
failure)
Security (protection objects-Security processes and theirs
interations-enemy-Defeatting security threats(Crypto))
TCP/IP fournit un service indépendant de la plateforme
CORBA : Librairie permettant l’interaction entre les objets + masquer les différences
· Communication inter-processus, client/serveur et par groupes (POSIX).
· Send-Receive
·
Modèle classique (Sun RPC-au moins un fois)
RPC : normalement request-reply
Sun RPC : désigné pour NFS fiel ystème, UDP + au moins un fois
DNS (localisation du serveur : adresse IP) + Portmap(localisation du service : # port)
BUT : appel local et remote= même syntaxe
·
Modèle objet (CORBA et Java RMI)
Général :
Sementique des appels : au mois une fois(filtrage si pas idempotent), au plus une fois
Ceci est traité par les 2 modules de communication
Requête : # requête, ref obj, # méthode, argument
Module Communication : table obj importés (adresse réseau + adresse proxy local)
Table obj exportés( adress réseau _ adresse locale)
Proxy : apparence d’un obj local
Sérialisation arguments + envoie requête au mod de communication + retourne rép
Repartiteur : recoit requête au niveau serveur + envoie au squelette coorespondant
Squelette : Désérialise arguments + appel méthode de lèobj reférencé + serialise réponse.
Service implanté CORBA: service noms – canal évènement – Notification –sécurité – transaction- persistance
JAVA RMI :
Implante interface remote + accepter remote exception
Argument : primitif ou primitifs obj reseau ou obje qui implante interface sérializable
RMIRegistry maintient table de nom-référence
Différence RPC/RMI
Différence RMI/RPC :
La transparence est plus compliquée : au marshalling – message passing
Il faut ajouter localisation + contacting the remote object. (ajout d’un module de remote référence)
Problème : Les Remote invocation sont plus vulnérable au cas pannes (failure). Impossible de distinguer le cas de panne du serveur d’un problème réseau.
Evènement et notification : essentiellement asynchrone (publish-subscribe)
Interruption vs envoie de message – coup en performance
Question : split des fonctionnalités entre kernel et user level code.
Combinaison middleware+ network OS = acceptable pour le requis en autonomie
Network OS : run stand alone application
Middleware : take advantage of service
Appel procedure- invoquer methode- système call – envoie de message –RPC-RMI = exemple de mecanime invocation
Importants performance distinction between invocation methode : différence si on appel an domain transition (cross address space), invoke communicaiton over network, invoke thread scheduling + switching. P 234
**** Donc il y a passage par dessus des protections de domaine
Probleme (internet) hight latencies, low
bandwith and hight server loads + network disconnection + hight latency
communication.
Avantage : migration des processus + simplification RMI car semblable à local
Critères de répartition de la charge : n epas perturber les usagers interractifs, terminer les taches le plus rapidement possible, respecter l’ordre de prioritém maximiser le débit global, synchroniser les taches paralleles.
· Noyau.
· Processus et contextes d'exécution.
· Noms symboliques et protection.
· Communication et invocation des appels système.
· Mémoire virtuelle.
· Répartition de la charge de calcul.
· Exemple de multi-ordinateur (Beowulf).
1. Sécurité (pages 251 à 308, 2 heures)
Confidentialité-intégrité-disponibilité
Accès non autorisés- modification non autoriser- utilisation non autorisée
Attaques : ecoute-mascarade-rejouer mesasge-infiltration –effraction-deni de service
Cryptographie : encryption asymétrique-Symétrique-signature
· Authentification et distribution des clés.
· Encodage et signatures.
· Exemple: Kerberos, SSL.
K/r/bos : provide a range of
authentification ans secure facilities for use in intranet.
2. Services de fichiers (pages 309 à 352, 3 heures)
Accès de fichiers par réseau
Transparence d’accès-localisation-concurrence-defectuosité-performance-platforme-replication et migration
· Composantes et interfaces.
· Mécanismes pour l'implantation.
· Exemples: Sun NFS, CMU AFS.
Idem potent - aucun de support propagation des mises à jours
Transparence de d’accès, localisation, migration réplication en lecture (autofs)
3. Contrôle périodique 2H (et 2 heures de préparation et correction)
Problématique :Nom d'ordinateur, d'utilisateur, de service sous forme textuelle à traduire en identificateur binaire et éventuellement en identificateur de bas niveau (nom/adresse IP/adresse Ethernet, nom de fichier/capacité/ serveur-fichier).
Name space : collection of valid name
recognized by a particular service (ordi-usagers-services-fichiers)
Name domain : name space for which there
exi9ste a single overall administrative authoroty for assigning names within
it.
Alias : ~symbolic name (problème boucle)
· Modèle et Mécanismes (name space-nom hierarchique, domain de noms)
Mode de résolution : itérative, récursif, non récursif
·
Exemples:
·
DNS(only name
service) nom=adresse IP
·
GNS (global name
service) need a database – grow to fast and imcompatible with scalibility
·
X.500(directory(collection
of binding between name and attributes) discovery service)
URL versus URI (persiste if ressource
move).
·
Autres aspects importants: replication et caching
·
Synchronisation d'horloges physiques. NTP (network time protocole)
Le client envoie son heure, T(i-3), le
serveur note l'heure de réception, T(i-2), et renvoie l'heure, T(i-1). Le
client note l'heure de réception T(i) et reçoit les temps T(i-3), T(i-2), et
T(i-1). Le temps de transmission, inconnu, est de t du client au serveur, et de
t' du serveur au client. On ne peut distinguer la différence entre t et t', du
décalage d des horloges entre le client et le serveur.
T(i-2) = T(i-3)
+ t + d, T(i) = T(i-1) + t'- d.
a = T(i-2) -
T(i-3), b = T(i-1) - T(i).
imprécision = t
+ t'= a - b, t > 0, t'> 0.
ajustement = (a
+ b) /2
d = ajustement +
(t'- t)/2.
(a
+ b)/2 - (a - b)/2 <= o <= (a + b)/2 + (a - b)/2
On peut envoyer plusieurs messages et
retenir ceux dont a et b sont les plus petits. Normalement seuls t et t'
varient sur une courte prériode, en les minimisant on réduit l'imprécision.
Restriction : Serveur précis-courte
distance pour minimiser imprécision apporté par délai transmission. Faire
attention vulnérabilité d’intégrité pour la transmission
Vecteur de N entiers initialisés à 0 dans chacun des N
processus.
A chaque événement dans le processus i, Vi[i] est
incrémenté.
A chaque message envoyé par le processus i, Vi est joint.
Lorsque le processus i reçoit un vecteur dans un message, il
prend pour chaque entrée de son vecteur le maximum entre l'entrée présente et
celle reçue (fusion des vecteurs).
Chaque entrée dans le vecteur du processus i indique le dernier événement dans un autre processus qui peut avoir influencé le processus i (lien de causalité).
·
Synchronisation par des horloges logiques.
Souvent, seul l'ordre entre les événements importe.
Dans un même processus, les événements sont numérotés avec
un compteur.
Lors d'un envoi de message, la correspondance est faite
entre le décompte de l'envoyeur et celui du receveur (Te <=Tr).
En l'absence de messages, on ne peut rien dire sur l'ordre réel entre deux événements dans des processus différents. On les considère concurrents.
·
Coordination dans un système réparti.
·
Etat global
dans un système réparti (difficile sans tout figer)
·
Valeurs
possibles pour l'état global – construire le treillis
·
Synchronisation
par exclusion mutuelle répartie (un seul client à la fois obtient le verrou
·
Serveur central
· Transactions et procédures de recouvrement.
· Contrôle des opérations simultanées (verrous, méthodes optimistes, ordonnancement par identificateur de temps).
· Protocoles pour les mises à jour atomiques réparties.
· Contrôle des accès simultanés répartis.
· Interbloquages répartis.
· Transactions en présence de réplication.
·
validation vers
l'avant-vers l'arrière (Au moment de compléter
une transaction, il faut vérifier les autres transactions)
· Vers l'avant il faut vérifier les écritures de la transaction complétée avec les lectures des transactions en cours. Vérifier ecriture courant en s’assurant qu’il n »’est pas lu avant.
(Traiter les transactions complétés de haut en bas)
· Vers l'arrière on vérifie les lectures de la transaction complétés contre les écritures des transactions terminées pendant cette transaction
(Traiter les transactions complétés de bas en haut)
· Définir la transaction qui peut finir en premier (identifier conflit lecture/écriture)- idée qu’il n’y ait pas de conflits read/write
· Trouver les parties de l’autre transaction qui peuvent s’y insérer
· (sélectionner flèche min(T1) –max(T22) ou flèche min(T1) –max(T22)) (Logique d’insertion)
· Requête à tous
· Tolérance omission : n-1
· Par mauvaise réponse aléatoire? n-2
· Par mauvaise réponse byzantine?n/2-1
4. Services de réplication (pages 553 à 606, 3 heures)
· Modèles de réplication.
· Ordonnancement des requêtes et cohérence.
· Exemples: Gossip, ISIS
5. Autres services courants sur l'Internet (notes du professeur, 4 heures)
· Courrier électronique (SMTP).
· Groupes de discussion (NNTP).
· Impression (LPD).
· Pages d'information hypertexte (HTTP, Apache), pages générées dynamiquement avec accès à des bases de données, serveur proxy avec cache (Squid).
6. Conclusion (pages 607 à 633, 3 heures)
· Exemple d'intégration: serveur multimédia réparti.