Vous êtes sur la page 1sur 40

Informatique

Répartie

Plan du cours (1/2)


 Chapitre 1: Introduction Générale

 Chapitre 2 : Caractéristiques des


Applications Réparties

 Chapitre 3 : Horloges Logiques et


Datation des Evènements dans les
Applications Réparties

1
Plan du cours (2/2)
 Chapitre 4 : Les accès concurrents
Algorithmes d’Exclusion Mutuelle

 Chapitre 5 : Algorithmes d’Election dans


un Environnement Réparti

Modalités du cours et évaluation


 Cours intégré (cours + TD)

 Exposés & rapports

 Examen final écrit

2
Chapitre 1

Introduction Générale

Constat …

3
Constat …

Constat …

4
Constat …

Constat …

10

5
Constat …

11

Constat …

12

6
Constat …

13

Applications Réseaux
 Souvent les applications réseaux sont du
type client/serveur  le client demande
des « services » à un serveur
◦ Un navigateur web demande une page html a
un serveur
◦ Un client FTP demande la liste des fichiers et
répertoires contenus dans un répertoire

14

7
Programmation classique vs.
Informatique Repartie
 En programmation classique lorsqu'un
programme a besoin d'un service, il appelle
une fonction/procédure d'une librairie, d'un
objet, etc.

 En Info Rep le but est de proposer des


méthodes/concepts/outils permettant de
simplifier le développement d'applications
réseau client/serveur, en essayant de :
◦ s'abstraire de l'aspect distant
◦ proposer une programmation naturelle

15

Programmation classique
 L'utilisateur du service et le fournisseur
de service se trouvent sur la même
machine :
◦ Même OS
◦ Même espace mémoire
◦ Pas de problèmes de transport
◦ Disponibilité du service assurée (tant que l'on
a accès à la librairie)

16

8
Programmation classique
◦ Même langage (sinon utilisation de binding)

◦ Même paradigme de programmation

◦ Même représentation des types de base

◦ Même représentation de l'information


composite

17

Informatique Repartie
 Deux machines (sans compter celles
traversées)
◦ OS différents
◦ Représentation des types de bases (couche
présentation)
◦ Espace mémoire : passer un pointeur comme
argument ?
◦ Problèmes de transport : firewall, réseau HS, etc.
◦ Retrouver le service : où se trouve-t-il ? qui le
propose ?

18

9
Informatique Repartie
◦ Deux langages
◦ Représentation de l'information composite
différente
◦ Association des paramètres effectifs aux
paramètres formels ? Comment gérer les
différents types de passage de paramètres ?
◦ Paradigmes de programmation différents :
qu'est ce qu'un objet pour un langage
procédural ? comment gérer les erreurs ?

19

Les réseaux
 Les réseaux d’ordinateurs sont partout !
◦ Internet, réseaux de téléphones mobiles,
réseaux locaux, etc.
 Les progrès technologiques des
ordinateurs et le haut débit permettent
aux différentes applications sur des
ordinateurs distincts (et distants) de
coopérer pour effectuer des tâches
coordonnées.

20

10
Les progrès technologiques
 Evolution de performance des réseaux
locaux
◦ Original Ethernet: 2.94 Mbps
◦ 1985:
 10 Mbps (Cable coaxiale)
 1 Mbps (Paire torsadée)
◦ 1995: 100 Mbps Ethernet
◦ 1998: 1 Gbps (Gigabit) Ethernet
◦ 1999: 802.11b standardisation du wireless
Etherne
◦ 2001: 10 Gbps
◦ 2005: 100 Gbps (par liens optiques)
◦ Etc.
21

Les progrès technologiques


 Avant les années 80, les ordinateurs
étaient encombrants et chers (les
systèmes centralisés)
 A partir de la mi-80, deux nouveautés:
◦ Microprocesseurs (moins chers et très
rapide)
◦ LANs and WANs
 Les ordinateurs en réseaux non
seulement faisables, mais simples
aussi.
22

11
Les réseaux (Interconnexion de machines)
1. Point à point

2. Multipoint

3. En réseau

machine
routeur

23

Les réseaux (Machines + Routeurs)


 Les routeurs cheminent les messages
échangés au moyen de plusieurs
communications Point-à-Point

 Chaque machine est identifiée de manière


unique dans le réseau par son adresse.

 Chaque routeur a une table de routage qui


donne l’adresse du routeur voisin qui
permet au message d’atteindre le
destinataire

24

12
Chapitre 2

Caractéristiques des
Applications
Réparties

25

Définitions d’un Système Distribué


 Définition : Un ensemble
[Tanenbaum, 99]

d’ordinateurs indépendants qui


apparaît à un utilisateur comme un
système unique et cohérent

◦ Les machines sont autonomes


◦ Les utilisateurs ont l’impression d’utiliser
un seul système.

26

13
Définitions d’un Système Distribué
 Définition : A distributed system
[Lamport, 98]

is one on which I can’t do my work if


some computer has failed that I never
heard of.

 Un système réparti est un système qui


vous empêche de travailler quand une
machine dont vous n’avez jamais
entendu parler tombe en panne.
27

Définitions d’un Système Distribué


 Un système distribué est un ensemble
d’entités autonomes de calcul (ordinateurs,
PDA, processeurs, processus, etc.)
interconnectées et qui peuvent
communiquer.

 Ensemble composé d’éléments reliés par un


système de communication ; les éléments ont
des fonctions de traitement (processeurs), de
stockage (mémoire). Les différents éléments du
système collaborent à une ou plusieurs tâches
communes. Conséquence : une partie au moins
de l’état global du système est partagée entre
plusieurs éléments
28

14
Systèmes distribués vs
parallèles
 Systèmes Parallèles. Une machine
multiprocesseurs avec un environnement où
tous les processeurs exécutent le même
programme et ont une vision uniforme de l’état
global du système.
◦ Extensible à un réseau de machines asynchrones
fortement couplées

 Systèmes distribués. Processus


indépendants sur des machines distinctes et
communiquant par échange de messages
asynchrones
◦ en général, des réseaux faiblement couplés.

=> Pas de consensus sur ces définitions…


29

Pourquoi les Applications


Distribuées ?
 Raisons budgétaires: économie de logiciels,
de matériels (rapport prix/performance)

 Besoin de partager:
◦ Des ressources: imprimantes, serveurs, mémoires, services
◦ Des informations: bases de données, fichiers

 Accélérer les traitements en parallélisant les


taches d’un programme
◦ 1 problème de taille N en T secondes
◦ M sous problèmes de taille N/M en T/M secondes

30

15
Pourquoi les Applications
Distribuées ?
 Alléger le réseau
◦ Diminuer les échanges de données
redondantes

 Augmenter la fiabilité
◦ Duplication de données (problèmes de
synchronisation !!)

 Atteindre des niveaux de qualité de


service (QoS)
◦ Diminuer les coûts, les délais (Plus de
contraintes !!!)
31

Pourquoi les Applications


Distribuées ?
 Adaptation de la structure d’un système à
celle des applications (géographique ou
fonctionnelle)

 Besoin d’intégration (applications


existantes)

 Réalisation de systèmes à haute


disponibilité

 Réalisation de systèmes à grande capacité


d’évolution
32

16
Objectifs des Applications Distribuées
 Accès à distance (Remote access)

 Ressources distribuées (Distributed


Resources)

 Partage de ressources distantes (Remote


Resource Sharing)

 Résistance aux pannes (Fault Tolerance)

 Parallélisme
33

Propriétés des systèmes


informatiques répartis
• Le système est constitué d'un ensemble de
composants matériels interconnectés par
un réseau de communication
 ordinateurs
 organes d'entrée-sortie
 processeurs spécialisés
 dispositifs de commande ou de mesure
 etc.

34

17
Propriétés des systèmes
informatiques répartis
◦ Les composants du système ne
fonctionnent pas de manière indépendante,
mais coopèrent pour l'exécution de tâches
communes.

◦ Le système peut continuer à fonctionner


(éventuellement en mode dégradé) malgré
les défaillances partielles des composants
ou du réseau de communication.

35

Propriétés des systèmes


informatiques répartis
 Absence de mémoire commune

 Absence d’état global

 Utilisation d’un protocole de


communication

 La topologie du réseau est souvent


inconnue

 La délivrance des messages est incertaine 36

18
Propriétés des systèmes
informatiques répartis
 Non-déterminisme : On ne peut prédire le
déroulement exact de l’algorithme, on ne
peut que comprendre certaines propriétés

 L’indépendance des activités des


processus

 Le nombre de sites comportant le système


distribué est souvent inconnu
37

Modéliser un système distribué


 En général modéliser pour :
◦ représenter un système en simplifiant divers
aspects du réel
◦ maîtriser la complexité
◦ observer et comprendre le comportement du
système réel
◦ prédire ou aider à commander le comportement
d’un système
◦ prouver ce comportement à l’aide de techniques
formelles

38

19
Modéliser un système distribué
 Nécessité de simplifier et
maîtriser la complexité des
systèmes et des algorithmes
distribués

39

Modéliser un système distribué


 Système distribué : graphe (non orienté,
connexe, simple)
◦ sommet : processus

◦ arête : canal de communication

◦ algorithme distribué local : algorithme qui


s’exécute sur chaque sommet (en utilisant
uniquement le contexte local)

40

20
Modéliser un système distribué

41

Modéliser un système distribué

42

21
Question: Que Repartir ??
 Les données
 Les traitements
 Le contrôle

43

Répartition des données


 Objectifs de répartir les données
◦ Limiter le transfert d’informations en
répartissant les données là où elles sont
le plus utilisées

◦ Accroître les performances par la


répartition des charges de travail sur
plusieurs unités de traitement opérant en
parallèle

44

22
Répartition des données
 Objectifs de répartir les données
◦ Augmenter la fiabilité en faisant faire le
même traitement par plusieurs ordinateurs

◦ Etendre la disponibilité des informations,


exemple : annuaire tel dont chaque ville
importante possède un exemplaire

◦ Faire croître en souplesse une BD en


faisant coopérer l’existant avec le nouveau

45

Répartition des données

 Partitionnement: Intégration logique


◦ Fragmentation: processus de décomposition
sans perte d’informations d’une BD logique
en un ensemble de sous BD

◦ Granularité plus ou moins fine (flexibilité


contre lourdeur de recomposition des
informations)

46

23
Répartition des données
 Partitionnement: Intégration logique
◦ Fragmentation Horizontale: Les occurrences
d’une même classe peuvent être réparties dans
des fragments différents

◦ Fragmentation Verticale : ce sont les attributs


d’une même classe qui peuvent être réparties
dans des fragments différents

◦ Répartition des valeurs : combinaison de la


verticale et horizontale

47

Répartition des données


 Duplication: Réplication
◦ Certains fragments peuvent être dupliqués
sur plusieurs sites ce qui procure l’avantage
d’améliorer les performances en terme de
temps d’allocation des requêtes, une
meilleure disponibilité des informations et une
meilleure fiabilité contre les pannes

◦ Inconvénient : Mise en place de


mécanismes de mise à jour

48

24
Répartition des traitements
 Absence de mémoire commune
 Absence d’état global
=> difficulté de synchroniser entre les
différents traitements
=> recours aux horloges logiques
pour établir un ordre entre les
évènements et permettre de répartir
le traitement des taches

49

Répartition des contrôles


 Si pas de relation hiérarchique
statique entre les processus
=> Pas de processus maître qui
assure le contrôle global du système

 Gestion de transactions distribuées


=> Election d’un processus maître

50

25
Problèmes …
 État du système et datation des
événements.

◦ En l'absence de mémoire commune et


de référence de temps commune, la
définition d'un ordre global pour les
événements d'un système réparti
repose sur des mécanismes de
datation logique (horloges logiques,
estampillage des messages).

51

Problèmes …
 État du système et datation des
événements.
◦ Ces outils permettent de :
 définir la notion d'état d'un système réparti
et de réaliser des mécanismes pour
l'observation de cet état, en vue notamment
de la mise au point d'applications ou de la
détection de propriétés globales.

 définir les notions liées à la cohérence


d'informations réparties, en vue de la
gestion globale de ces informations
(conservation d'informations dupliquées,
gestion de caches multiples, etc.).

52

26
Problèmes …
 Désignation
◦ La désignation dans un système réparti pose
des problèmes spécifiques en raison de la
grande taille de l'espace des noms et de
l'évolution permanente de l'ensemble des
objets désignés et de leur localisation.

◦ Les méthodes utilisées reposent sur l'usage


d'indicateurs, qui permettent de maintenir
une désignation indépendante de la
localisation physique tout en permettant une
recherche efficace.
53

Problèmes …
Communications et exécution répartie.

◦ En utilisant les outils primitifs fournis


par la communication par
messages, des fonctions de
communication de plus haut niveau
ont été définies :

 appel de procédures à distance,

 gestion répartie d'objets mobiles communicants.

54

27
Problèmes …
 Tolérance aux fautes

◦ Dans un système réparti, la probabilité


d'une défaillance partielle du système
ne peut pas être négligée.

◦ La tolérance aux fautes est assurée par


la redondance des informations et
des traitements.

55

Problèmes …
 Sécurité et protection.
◦ La sécurité d'un système réparti vise à
garantir le maintien :

 de la confidentialité

 de l'intégrité de l'information

 du respect des règles d'accès aux services.

56

28
Problèmes …
 Sécurité et protection.

◦ Les méthodes utilisées reposent sur :


 l'usage de barrières de protection
(matérielles et logicielles, comme les "pare-
feu" ("firewalls"), ou purement logicielles,
comme les domaines de protection,

 des protocoles d'authentification


utilisant la cryptographie.

57

Problèmes …
 Pas de connaissance de l’état global

 Absence de temps universel (ou horloge


globale)

 Non déterminisme (lié souvent au problème


du synchronisme)

 Pas de modèle « universel » et standard


pour l’algorithmique distribuée
58

29
Besoins …
 Transparence.

◦ Propriété d'indépendance, par rapport


à la localisation physique, pour l'accès
aux informations et aux services.
 Permet d'utiliser un service distant de la
même manière qu'un service local,
 Permet de déplacer des informations ou des
services d'un site à un autre sans
changement visible pour les programmes ou
les personnes qui les utilisent.

59

Besoins …
Plusieurs formes de transparence (ISO 1995) :
 d’accès: cacher la différence des
représentations des données et comment une
ressource est accédée

 de localisation: cacher l’endroit où une


ressource est localisée

 de migration: cacher qu’une ressource peut


bouger vers une autre localisation

 de relocalisation: cacher qu’une ressource


peut bouger vers une autre location pendant
son utilisation

 de réplication: cacher qu’une ressource est


répliquée 60

30
Besoins …
 de concurrence: cacher qu’une ressource
peut être partagée par plusieurs utilisateurs
compétitifs

 de panne (Fault tolerance): cacher une


panne et un recouvrement d’une ressource

 de persistance (Persistency): cacher


qu’une ressource (logicielle) est dans une
mémoire volatile ou sur disque

=> Les transparences à l’accès et à la


localisation sont les plus appliquées

61

Besoins …
 Dans certains cas, la transparence doit
au contraire être évitée.

 Exemple 1 :
 Mise au point d'applications
réparties. Lorsqu'on recherche
l'origine d'une défaillance, il faut
pouvoir connaître la localisation
physique des données manipulées ou
le site d'exécution d'un programme.
62

31
Besoins …
 Dans certains cas, la transparence doit
au contraire être évitée.

 Exemple 2 :

 Contrôle de l'exécution. Pour des


raisons de performance (équilibrage de
charge), d'administration des
ressources, ou de sécurité, on a besoin
de contrôler ou imposer explicitement le
site de stockage de données ou le site
d'exécution d'un service. 63

Besoins …
 Compromis entre un degré élevé de
transparence et les performances
du système (ou les exigences de
l’application) !!!!!

◦ Exemple : des applications Internet


essaient de contacter un serveur en vain
puis abandonnent => tout le système va
ralentir pour un souci de transparence

64

32
Besoins …
Abstraction
◦ Séparation entre
 interface d'accès à un service et
 réalisation de ce service.

◦ Cette propriété (qui n'est pas propre aux


applications réparties) permet notamment de
 construire une application par assemblage de
composants,
 remplacer un composant par un autre à
condition qu'il ait la même interface.

65

Besoins …
Abstraction

 Permet d’avoir une ouverture du système


(Openness + Composability)

 Les interfaces sont souvent écrites en IDL


(Interface Definition Language)

 Flexibilité (facile à configurer) et extensibilité


(facile à modifier)

66

33
Besoins …
Abstraction possède deux propriétés:
Interopérabilité & Portabilité
 L’interopérabilité: deux composants ou
deux implémentations différentes d’un
même système de deux constructeurs
différents peuvent co-exister et travailler
ensemble

 La portabilité: une application peut être


exécutée dans deux systèmes distribués
différents et ce, sans modification
67

Besoins …
Récupération de l'existant

◦ De nombreuses applications réparties sont


construites en ajoutant des capacités d'accès à
distance ou d'intercommunication à des
applications existantes.

◦ Pour réduire le coût de développement et


assurer la continuité du service, il faut pouvoir
réutiliser une part importante du logiciel qui
compose ces applications.

68

34
Besoins …
Capacité d’évolution, ou d’extension
(scalability)

◦ Les applications doivent évoluer en


permanence pour faire face :
 à l'évolution des besoins,
 aux modifications de l'environnement
(systèmes, outils, infrastructure de
communications),
 à la croissance de la demande.

69

Besoins …
Capacité d’évolution, ou d’extension
(scalability)
◦ Cette évolution doit se faire de manière
continue et sans interruption du service.
◦ La scalabilité mesurée selon au moins 3
dimensions:
 Selon la taille: nombre de ressources et
d’utilisateurs
 De manière géographique: distance entre
ressources
 De manière administrative: nombre
d’administrateurs
◦ Plus un système est ``scalable`` moins il est
performant !! 70

35
Besoins …
Scalabilité
◦ Taille: le réseau devient un goulot
d’étranglement au fur et à mesure que le
nombre de ressources augmente

◦ Geo: des liaisons plus longues donc délais


importants, problème de différences d’horloges
entre les ressources

◦ Admin: plus de messages de signalisation et


saturation du réseau, différence de techniques
de sécurité, de gestion, etc.
71

Solutions …
 Appel
◦ à des communications asynchrones :
des tâches peuvent être programmées
pour exécution pendant que d’autres
attendent la fin de communication et

◦ à la distribution : diviser un composant


en petites parties et répartir dans le
système.

72

36
Exemples d’applications réparties
 Le login à distance: telnet et rlogin d’UNIX
 Invocation de commandes à distance et
sauvegarde de fichiers sur une machine
distante
 Le modèle Client/Serveur: envoi requête =>
attente réponse
 Le système de partage de fichiers (NFS)
 Service d’administration répartie, service
d’impression répartie

73

Eléments de mesure de la qualité


 Degré de répartition
 Hypothèses sur les réseaux
 Trafic engendré
 Etat global ou local

74

37
Eléments de mesure de la qualité
 Degré de répartition de l’algorithme
distribué: degré de symétrie du texte
◦ Non Symétrie: chaque processus exécute un
code différent (ex. Client/Serveur)

◦ Symétrie faible: Tous les processus exécutent le


même code en faisant référence à leurs identifiants.
Ils peuvent avoir des comportements identiques ou
différents selon le message reçu et leurs
identifiants
75

Eléments de mesure de la qualité


◦ Symétrie forte: Les processus exécutent le
même code sans faire référence à leurs identifiants.
Ils peuvent avoir des comportements identiques ou
différents selon le message reçu.

◦ Symétrie totale: Tous les processus exécutent


le même code. Ils ont le même comportement
suite à la réception du même message.

76

38
Eléments de mesure de la qualité
 Propriétés comportementales des
liaisons : Les Hypothèses

◦ H1: La transmission sur la voie se fait sans


duplication de messages

◦ H2: La transmission sur la voie se fait sans


altération des messages

77

Eléments de mesure de la qualité


◦ H3: L’ordre des réceptions est équivalent à
l’ordre des émissions

◦ H4: Le délai d’acheminement est fini

◦ H5: Pas de pertes de messages sinon il existe


une borne sup au-delà de laquelle le message
est soit reçu soit perdu

78

39
Eléments de mesure de la qualité
 Trafic engendré
◦ le nombre de messages échangés pour une
opération de synchronisation et les temps
d’attente : La charge du réseau
◦ Ex: Informer les autres processus ( N-1) de
l’utilisation d’une mémoire partagée
 3(N-1) messages : N-1 msgs, N-1 réponses, N-1 fin
 2(N-1) messages : N-1 msgs, N-1 OK
 0 – N-1 messages : topologie en annaux +
l’utilisation d’un jeton

79

Eléments de mesure de la qualité


 Etat global ou local
◦ Etat global = états locaux de tous les
processus + les messages en transit

◦ Connaître l’état global peut être utile par


exemple en cas d’interblocage

◦ Plus il est facile d’avoir un état global, plus le


système est bien réparti

80

40

Vous aimerez peut-être aussi