Distributed Systemes Concept and design

Résumé des points importants des chapitres

 

 

Distributed Systemes Concept and design. 1

Objectifs généraux du cours. 1

Introduction (pages 1 à 64, 3 heures) 2

Revue des mécanismes de communication sur l'Internet (pages 65 à 164, 3 heures) 3

Appels de procédures à distance (pages 165 à 206 et 669 à 698, 4 heures) 4

Systèmes d'exploitation répartis et multi-ordinateurs (pages 207 à 250, 3 heures) 5

Services de noms symboliques (pages 353 à 384, 2 heures) 6

Services de temps et de coordination (pages 385 à 464, 2 heures) 6

·     Vecteurs de compteurs d'événements. 6

Transactions réparties (revue au besoin des pages 465 à 514, pages 515 à 552, 3 heures) 7

 

 

Objectifs généraux du cours

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

Introduction (pages 1 à 64, 3 heures)

·         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


 

Revue des mécanismes de communication sur l'Internet (pages 65 à 164, 3 heures)

·         Technologies (Ethernet, ATM).

·         Protocoles (TCP/UDP/IP).

Software and hardware service layers in distributed systems

 

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

 

Systems architectures


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)

 

Design requirements for DS

 

Performance issues

Qty of services

Use of caching and replication

Dependability issues (correctness security and fault tolerance)

 

Fundamental models

 

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


 

Appels de procédures à distance (pages 165 à 206 et 669 à 698, 4 heures)

·         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

CORBA

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)


Systèmes d'exploitation répartis et multi-ordinateurs (pages 207 à 250, 3 heures)

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)

 


 

 

Services de noms symboliques (pages 353 à 384, 2 heures)

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

 

Services de temps et de coordination (pages 385 à 464, 2 heures)

UTC : Universel Time ou logical time and logical clock

                               

·         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

·        Vecteurs de compteurs d'événements

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 réparties (revue au besoin des pages 465 à 514, pages 515 à 552, 3 heures)

·         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.