Vous êtes sur la page 1sur 8

Objectifs du cours

• Connaître les caractéristiques d’un système distribué


Modèles et Approches Formels pour (SD)
• Comprendre les concepts et les paradigmes
les Systèmes Distribués fondamentaux d’un SD (les dessous)
• Au delà des technologies, maîtriser « le distribué »
dans le cadre d’un modèle formel qui offre une
M. Mosbah abstraction et une simplicité
mosbah@labri.fr • Bien comprendre l’algorithmique distribuée( élection,
www.labri.fr/visidia/ arbre recouvrant, exclusion mutuelle, etc)
• Pouvoir raisonner dans un environnement distribué

I/ Introduction aux systèmes


distribués
• Les réseaux d’ordinateurs sont partout !!!
• Prouver la correction et la validité d’un – Internet, réseaux de téléphones mobiles, réseaux
algorithme distribué locaux, etc.
• Concevoir des algorithmes distribués • Les progrès technologiques des ordinateurs et
le haut débit permettent aux différentes
• Manipuler et implémenter ces algorithmes. applications sur des ordinateurs distincts (et
• et surtout avoir beaucoup de recul par distants) de coopérer pour effectuer des tâches
rapport aux technologies. coordonnées.

1
Technologie + besoins
Les progrès technologiques évolution évolution
technologique des besoins
• Avant les années 80, les ordinateurs étaient banalisation et capillarité structure des entreprises et des
encombrants et chers (les systèmes centralisés) des réseaux de télécommunications organisations : communication
et partage (ex. Intranet)
performance des voies de
télécommunication accès universel à l’information (ex.
• A partir de la mi-80, deux nouveautés: (débit et fiabilité) Web)
rapport coût/performance des
– Microprocesseurs (moins chers et très rapide) stations informatique distribuée “grand
– LANs and WANs public”
convergence informatique et (ex. vidéo interactive)
téléphonie
• Les ordinateurs en réseaux non seulement
faisables, mais simples.
Applications distribuées

II/ Définitions d’un SD


Définition [Tanenbaum]: Un ensemble • Définition [Lamport]
d’ordinateurs indépendants qui apparaît à • A distributed system is one on which I can’t
un utilisateur comme un système unique et do my work some computer has failed that I
cohérent never heard of.

• Les machines sont autonomes Un système réparti est un système qui vous
empêche de travailler quand une machine dont
• Les utilisateurs ont l’impression d’utiliser vous n’avez jamais entendu parler tombe en
un seul système. panne.

2
Pourquoi des systèmes répartis ?
Définition (pour ce cours)
• Aspects économiques (rapport prix/performance)
• Un système distribué est un ensemble d’entités • Adaptation de la structure d’un système à celle des
autonomes de calcul (ordinateurs, PDA, applications (géographique ou fonctionnelle)
processeurs, processus, processus léger etc.) • Besoin d’intégration (applications existantes)
interconnectées et qui peuvent communiquer. • Besoin de communication et de partage
• Exemples: d’information
– réseau physique de machines • Réalisation de systèmes à haute disponibilité
– Un logiciel avec plusieurs processus sur une même • Partage de ressources (programmes, données,
machine. services)
• Réalisation de systèmes à grande capacité
d’évolution

Quelques domaines d’application


Exemples: des systèmes répartis
• CFAO, Ingénierie simultanée
• WWW – Coopération d’équipes pour la conception d’un
• Contrôle du trafic aérien produit
• Système de courtage – Production coopérative de documents
– Partage cohérent d’information
• Banques
• Gestion intégrée des informations d'une entreprise
• Super calcul distribué – Intégration de l’existant
• Système de fichier distribué • Contrôle et organisation d’activités en temps réel
• DNS • Centres de documentation, bibliothèques
• Systèmes Pair-à-pair (P2P) – Recherche, navigation, visualisation multimédia
• Systèmes d’aide à la formation

3
– Réplication de ressources non visible
III/ Objectifs d’un système – Concurrence d’accès aux ressources non


distribué
Transparence (Masquer la répartition)
perceptible
(ex. accès à un même fichier ou une table dans une
– Uniformité des accès locaux et distants base de données: mécanisme de verrou ou de
La séparation physique entre machines et les transaction)
différences matériels/logiciels pour les accès sont
invisibles par l’utilisateur.
- Invisibilité du parallélisme offert par
l’environnement d’exécution
– Localisation des ressources non perceptible
(nom logique ex: URL http://www.labri.fr/ ) - Tolérance aux pannes permettant à un
– Migration des ressources possible sans utilisateur de ne pas s’interrompre (ou même se
interférence avec la localisation physique rendre compte) à cause d’une panne d’une
(ex. transférer un objet uniquement par son nom ressource
logique sans modification de ce nom et sans
modification de l’environnement d’un utilisateur)

• Ouverture • Mise à l ’échelle (scalability)


– Services offerts selon des règles standards qui – fonctionne efficacement dans différentes échelles:
décrivent la syntaxe et la sémantique de ces – Deux postes de travail et un serveur de fichiers
services (Interfaces publiées, ex. IDL) – Réseau local avec plusieurs centaines de postes de
– Interopérabilité des matériels (de fournisseurs travail et serveurs de fichiers
différents) – Plusieurs réseaux locaux reliés pour former un
– Portabilité Internet
( En janvier 03, le nombre de machines reliés à Internet est de :
– Flexibilité (facilité d’utilisation et de 171 638 297)
configuration)
– Extensibilité (ajout/MAJ de composants sans
en affecter les autres)

4
• Tolérance aux pannes
– Pannes franches
– Pannes byzantines
– Détection de pannes (difficulté et même
impossibilité de détection pour certains
systèmes, suspicion de machines) e.g.
connexion par un navigateur à un serveur
distant qui répond pas !!
– Correction d’erreurs (de fichiers/messages
corrompus)
– Reprise sur pannes (techniques de
journalisation dans les BD)
(éventuellement système dégradé)

• Sécurité
– Confidentialité (authentification) IV/ Systèmes distribués vs
– Intégrité (protection contre les falsification et parallèles
les corruptions)
– Disponibilité (accès aux ressources) Systèmes Parallèles. Une machine multiprocesseurs avec un
environnement du type SIMD (tous les processeurs
e.g. commerce électronique, banque en ligne. 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…

5
Caractéristiques du
V/ Interlogiciel (Middleware)
parallélisme/distribué
• Objectifs: optimiser les solutions d’un • Le middleware (intergiciel) est la couche
problème (e.g. calcul scientifique, calcul logicielle située entre les couches basses
matriciel, tri) (systèmes d'exploitation, protocoles de
• Calcul de complexité : temps et accès communication) et les applications dans un
mémoire (pas le temps de communication système informatique réparti (CORBA,
ou nombre de messages) EJB, COM, etc.).
• La topologie est généralement fixe (grille,
hypercube, grappes)

Couches logicielles et matérielles


• Buts: dans un SD (le middleware)
– Fournir une interface ou API de haut niveau aux
applications
APIs haut niveau
– Masquer l’hétérogénéité des systèmes matériels et Applications, services
logiciels sou jacents
– Rendre la répartition aussi invisible (transparente) que
Middleware
possible
– Faciliter la programmation répartie (développement,
évolution, réutilisation, portabilité des applications) système d’exploitation
APIs bas niveau
• http://www.objectweb.org/
Réseau, matériel,

6
VI/ Où sont les problèmes ? • Nécessite de simplifier et maîtriser la
complexité des systèmes et des algorithmes
• Quel est le nombre d ’emails qui circulent sur distribués
Internet ? • Difficulté de l’algorithmique distribuée /
• Y ’a t-il un algorithme pour détecter la centralisé:
terminaison distribuée d ’une application ? – Pas de connaissance de l’état global
– Absence de temps universel (ou horloge globale)
• Comment modéliser et exprimer les
– Non déterminisme (lié souvent au problème du
algorithmes distribués ? Comment les prouver ? synchronisme)
• Comment les analyser, calculer leur complexité, – Et surtout pas de modèle « universel » et standard
les classifier etc…? pour l’algorithmique distribuée
• Pour écrire une appli. Distribuée, un système
distribue, il faut d ’abord un algorithme...

Modèles de communication • Communication asynchrone:


synchrone /asynchrone
Synchrone mail: on se
voit à 12h

10H
on se voit à 12h 10h45
ok ok
11h:15

est-ce qu’il sait que ack ok


ok on se voit à 12h j’ai lu sa réponse 11h:45

est-ce qu’il sait


ack ack que j’ai ack ok
12h15
Même notion de temps, transmission
instantanée, généralement bornée

7
Représentation : abstraction Modélisation d ’un système distribué
un graphe • Système distribuée : 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)

Les réseaux anonymes /avec


identités • L’état d’un processus est codé par une
étiquette:
• anonymes: pas d’identités (numéros
• Le changement d’état : changement
distincts. e.g. IP)
d’étiquette
• avec identités (chaque sommet possède un
• Les algorithmes : arbre recouvrant, élection,
identité (un numéro) unique)
terminaison, exclusion mutuelle.
En général, il est plus facile de construire un
algo sur des graphes avec identités.