Vous êtes sur la page 1sur 10

CHAPITRE 1

Introduction aux Systèmes Distribués

1.1 Introduction

Jusqu’au début des années 80 les ordinateurs étaient volumineux, couteux et ils n’étaient
pas connectés. À partir du milieu des années 80, des microprocesseurs puissants ont
été développés, et il est devenu possible de connecter des ordinateurs indépendants à
l’aide des réseaux locaux (LAN ) et des réseaux étendus (WAN ). Ensuite, des machines
de petite taille dotées de capteurs sensibles et d’un espace mémoire considérable et de
processeurs puissants ont été élaborées. Grâce à ces progrès technologiques des ordi-
nateurs et des outils de communication la mise au point de systèmes distribués formés
de réseaux d’ordinateurs éloignés devient possible.
Dans ce chapitre, nous définissons d’abord les systèmes distribués. Puis, nous pré-
sentons les concepts clés de ces systèmes.

1.2 Définition d’un système distribué

Dans la littérature on trouve plusieurs définitions complémentaires des systèmes dis-


tribués.
Dans [Tanenbaum et van Steen, 2007], un système distribué est défini comme étant
une collection d’ordinateurs indépendants qui apparaît aux utilisateurs comme un seul
système cohérent. Cette définition met en valeur les aspects suivants :
Chapitre 1 : Introduction aux Systèmes Distribués

• Un système distribué est constitué de plusieurs ordinateurs ;

• Le système distribué doit apparaître auprès de ses utilisateurs comme un système


cohérent ;

• Aucune hypothèse n’est faite concernant le type des ordinateurs qui composent
le système distribué ;

• Aucune hypothèse n’est faite concernant la manière d’interconnexion de ces or-


dinateurs.

Dans [Puder et al., 2006], un système distribué est considéré comme un système
de traitement de l’information, qui comprend plusieurs ordinateurs indépendants. Ces
ordinateurs coopèrent par l’intermédiaire d’un réseau de communication en vue d’at-
teindre un objectif commun.
Selon [Silberschatz et al., 2014], un système distribué est un ensemble de proces-
seurs faiblement couplés qui ne partagent ni la mémoire physique, ni l’horloge physique.
Ces processeurs (aussi connus sous les noms suivants : sites, nœuds, ordinateurs, ma-
chines, ou hôtes) sont interconnectés par l’intermédiaire d’un réseau de communication.
Le but d’un système distribué est de fournir un environnement de travail efficace et
pratique, tout en permettant le partage des ressources.

Figure 1.1: Eléments d’un système distribué [Silberschatz et al., 2014]

5
Chapitre 1 : Introduction aux Systèmes Distribués

1.3 Structure en couche d’un système distribué

Afin de supporter des ordinateurs et des réseaux hétérogènes tout en offrant la vue
d’un système unique, les systèmes distribués sont souvent organisés en trois couches
(voir figure 1.2) :

• La couche supérieure regroupe les utilisateurs et les applications distribuées ;

• La couche inférieure inclut les systèmes d’exploitation et les moyens de commu-


nication ;

• La couche intermédiaire masque l’hétérogénéité des machines et assure la répar-


tition des traitements et des données.

Ordinateur 1 Ordinateur 2 Ordinateur 3 Ordinateur 4

Appl. A Application B Appl. C

La couche système distribué (middleware)

SE local SE local SE local SE local

Réseau

Figure 1.2: Structure en couches d’un système distribué [Tanenbaum et van Steen, 2007]

1.4 Caractéristiques des systèmes distribués

En mettant l’accent sur les exécutions concurrentes des processus d’un système distri-
bué, nous identifions les caractéristiques suivantes [Ghosh, 2014] :

1.4.1 Connaissances d’un processus

Étant donné que les durées de transmission des messages entre les sites sont variables,
ces sites ne peuvent jamais consulter un état actualisé du système. Par conséquent, les
processus d’un système distribué n’ont qu’une vue partielle de la topologie et de l’état
global du système.

6
Chapitre 1 : Introduction aux Systèmes Distribués

1.4.2 Degré de synchronisation

Dans un système distribué, toute machine a sa propre horloge physique. Le décalage


entre ces horloges rend difficile la construction d’un temps global unique.

1.4.3 Les échecs

Un système distribué peut être sujet à des défaillances qui sont dues au : surcharge
du réseau, blocage d’un processus, incapacité d’envoi de messages par un processus,
et aussi, la perte d’un message pendant son acheminement. Les concepteurs des sys-
tèmes distribués doivent s’assurer de la détection et la correction au plus tôt de ces
défaillances.

1.4.4 Topologies d’un système distribué

Les nœuds d’un système distribué peuvent être liés selon diverses topologies, caracté-
risées par :

• Le coût d’installation : le coût pour lier physiquement les machines.

• Le coût de communication : la durée et le prix pour envoyer un message d’un site


A vers un site B.

• La disponibilité : possibilité d’accéder aux données malgré l’échec de quelques


sites.

Dans une topologie entièrement connectée, tout processus est relié aux autres pro-
cessus par le biais d’un canal unidirectionnel ou bidirectionnel. Cette topologie n’est
pas pratique pour les grands systèmes et elle impose un coût énorme.
Dans la topologie partiellement connectée, des liens directs relient uniquement
quelques sites. Cette topologie est caractérisée par un coût d’installation inférieur à
celui d’un réseau complètement connecté. Mais, le coût de communication entre pro-
cessus est élevé.
La topologie partiellement connectée d’un système distribué peut être en arbre,
en anneau ou en étoile. Chacune de ces configurations est caractérisée des attributs
d’échec, des coûts de communication et des coûts d’installation variables.
La fiabilité d’un système distribué est un aspect important ; la panne d’un site ne
doit pas empêcher le bon fonctionnement du système global. Les fonctions d’un site en

7
Chapitre 1 : Introduction aux Systèmes Distribués

panne doivent être confiées à d’autres sites. Ainsi, l’échec d’un site doit être détecté
très tôt, et des actions appropriées de reprise doivent être exécutées pour corriger l’état
d’échec.

1.5 Pourquoi les systèmes distribués

Les systèmes distribués sont principalement conçus pour atteindre les objectifs suivants
[Van Steen et Tanenbaum, 2016] :

1.5.1 Partager les ressources (Sharing resources)

Le partage des ressources permet aux utilisateurs et aux applications d’un système
distribué d’accéder à des ressources distantes à travers le réseau. Une ressource par-
tagée peut être physique (un processeur, un équipement de stockage, une imprimante
spécialisée, etc.) ou logique (une page web, une base de données, un fichier, etc).
Le partage des ressources présente aussi l’avantage de favoriser la collaboration et
l’échange d’informations, et il réduit le coût d’installation.

1.5.2 Accélérer les calculs (Speeding up computations)

Un moyen d’accélérer l’exécution de lourdes opérations est de faire se coordonner les


sites du système distribué au moyen du calcul réparti.
Le calcul réparti consiste à répartir les traitements entre plusieurs machines. Cela
permettra de réduire le temps global de traitement et autorise aussi la migration des
traitements vers des sites moins chargés.

1.5.3 Assurer la transparence de distribution

Un système distribué est dit transparent s’il se présente à ses utilisateurs et applications
comme un système informatique unique. En effet, les détails techniques et organisa-
tionnels doivent être invisibles aux clients du système.
En réalité, la transparence d’un système distribué est associée à plusieurs aspects.
On distingue les transparences suivantes :
Transparence d’accès (Access transparency) : masquer les spécificités des représen-
tations des données et leurs méthodes d’accès.

8
Chapitre 1 : Introduction aux Systèmes Distribués

Transparence d’emplacement (Location transparency) : cacher l’emplacement phy-


sique des objets. Pour assurer cette transparence les concepteurs des systèmes associent
des noms logiques aux ressources du système.
Transparence de déplacement (Relocation transparency) : les utilisateurs ne doivent
pas percevoir le déplacement de ressources par le système alors qu’elles sont en cours
d’utilisation (le déplacement en cas d’échec du nœud auquel les ressources sont atta-
chées par exemple).
Transparence de migration (Migration transparency) : les processus et les ressources
peuvent être déplacés par les utilisateurs sans affecter les communications et les opé-
rations en cours.
Transparence de duplication (Replication transparency) : le placement d’une copie
d’une ressource le plus proche possible de l’endroit de son utilisation augmente la
disponibilité et améliore les performances. La transparence de duplication consiste à
cacher l’existence de plusieurs copies des ressources.
Transparence des exécutions concurrentes (Concurrency transparency) : les res-
sources partagées d’un système distribué peuvent être utilisées simultanément par plu-
sieurs processus. Les accès concurrents à des ressources partagées doivent les maintenir
dans un état cohérent.
Transparence des échecs (Failure transparency) : les utilisateurs et les applications
ne devraient pas remarquer la défaillance des composants du système, et de l’exécution
des procédures de tolérance aux pannes.

1.5.4 Assurer l’ouverture (Openness)

Un système distribué est ouvert si ses composants s’intègrent facilement à d’autres


systèmes.
Un système ouvert doit permettre l’inclusion des composants hétérogènes, l’ajout
et le retrait doivent être effectués sans affecter les objets existants. En d’autres termes,
un système distribué ouvert doit être extensible.

1.5.5 Assurer l’extensibilité (scalability)

L’extensibilité d’un système distribué peut être mesurée selon les trois dimensions :

• Extensibilité à l’égard de la taille : des utilisateurs et des ressources sont intégrés


au système sans perdre la performance.

9
Chapitre 1 : Introduction aux Systèmes Distribués

• Extensibilité géographique : des utilisateurs et des ressources sont situés à distance


sans apercevoir des retards de communication.

• Extensibilité administrative : la gestion du système reste facile même si le système


distribué couvre plusieurs organisations administratives.

1.6 Difficultés de mise en œuvre d’un système distribué

La mise en œuvre des systèmes distribués est une tâche difficile à cause de la dispersion
des composants logiciels sur plusieurs serveurs physiques. En plus, cette difficulté est
due aux fausses hypothèses suivantes [Thampi, 2009] :
Le réseau est fiable : Le réseau cause des problèmes lorsqu’il perd des paquets.
Pour pallier la non fiabilité du réseau des techniques matérielles et/ou logicielles sont
à appliquer.
Le temps de réponse est nul : le temps de réponse est le temps écoulé entre l’envoi
de la requête et la réception de la réponse. Les distances parcourues sur les moyens de
transmission d’un réseau étendu augmentent le temps de réponse.
La bande passante est infinie : la bande passante est le volume de données pouvant
être transportées sur un canal de communication. Les nouvelles applications distribuées
nécessitent une bande passante importante.
Le réseau est sécurisé : le réseau n’est jamais en sécurité absolue car le système est
toujours confronté à différentes menaces. Les développeurs du système doivent prendre
en compte l’aspect sécurité au moment du développement du système, des solutions à
plusieurs niveaux doivent être déployées.
La topologie du réseau est stable : dans un système distribué on distingue deux
types de topologies : physique et logique. La topologie physique décrit la configuration
spatiale des nœuds du système. La topologie logique, par opposition à la topologie
physique, décrit les chemins que parcourent les messages. La topologie d’un système
distribué se modifie à cause des pannes et des ajouts et des retraits de nœuds.
Le réseau est homogène : un réseau est homogène, si et seulement si, ses sites ont
la même configuration matérielle, et utilisent les mêmes protocoles ; ce qui n’est pas le
cas dans un système distribué.
Le coût de communication est nul : le coût de communication dans un système
distribué n’est jamais nul car il inclut les coûts pour acheter le matériel et pour installer,

10
Chapitre 1 : Introduction aux Systèmes Distribués

exécuter et sécuriser le réseau.


Existence d’un administrateur unique : un système distribué est doté de plusieurs
administrateurs de divers domaines de compétence.

1.7 Exemples de systèmes distribués

Dans cette section, nous décrivons brièvement quelques types de systèmes distribués.

1.7.1 Le cluster computing

Le but de ce type de systèmes distribués est d’avoir une puissance de calcul impor-
tante. Le matériel sous-jacent d’un cluster computing est composé d’une collection
d’ordinateurs similaires. Ces ordinateurs sont connectés au moyen d’un réseau de com-
munication très rapide.
Un cluster emploie la programmation parallèle, où une seule application s’exécute en
parallèle sur un ensemble de processeurs. En effet, un cluster peut avoir un ordinateur
maître qui contrôle et affecte les tâches aux autres nœuds du cluster.

1.7.2 Grille de calcul (grid computing)

Comme pour le cluster computing, le but du grid computing est d’atteindre une haute
performance. Cependant, une grille de calcul consiste en un ensemble de machines et
de périphériques hétérogènes connectés à l’aide d’un réseau de communication LAN ou
WAN. Les nœuds d’une grille peuvent aussi appartenir à des domaines administratifs
différents.
Une grille de calcul est généralement composée de couches logicielles responsables
de : gestion des ressources, communication, etc.

1.7.3 Le cloud computing

Le cloud computing peut être vu comme un pas en avant du grid computing. Le but du
cloud computing est d’externaliser ses services aux consommateurs. Le cloud computing
fournit un pool de ressources virtualisées, accessibles et utilisables facilement par ses
clients. Les ressources du cloud peuvent être configurées d’une manière dynamique
(ajout ou retrait de ressources au besoin), ce qui offre une grande flexibilité.

11
Chapitre 1 : Introduction aux Systèmes Distribués

Le cloud est organisé en quatre couches : la couche matérielle, la couche infra-


structure, la couche plateforme et la couche application. Ces couches sont fournies aux
consommateurs via les types de services : Infrastructure-as-a Service (IaaS ), Platform-
as-a-Service (Paas) et Software-as-a-Service (SaaS ).

1.7.4 Systèmes ubiquitaires

Ce type de systèmes distribués est composé d’une multitude de petits appareils in-
formatiques dotés de capteurs responsables de la perception du comportement des
utilisateurs, et communiquent via des connexions sans fil. Ainsi, un système ubiqui-
taire est caractérisé par : la transparence d’accessibilité aux équipements du réseau, la
souplesse d’interaction en fonction du contexte de l’utilisateur (sensibilité au contexte)
et l’autonomie des équipements.

1.7.5 Les réseaux peer to peer (P2P)

Un réseau peer-to-peer (pair-à-pair) est un système distribué où toute entité du réseau


est à la fois client et serveur. Les systèmes peer-to-peer permettent de partager la charge
de travail entre tous les nœuds (pairs), tout pair rend une portion de ses ressources
(puissance de calcul, espace de stockage, bande passante) disponible aux autres nœuds
du système. L’implémentation la plus répandue du pair-à-pair est le partage de fichiers.

1.7.6 Les réseaux de capteurs sans fil

Grâce aux progrès des techniques sans fil, il est devenu possible de créer des réseaux
constitués d’un grand nombre de capteurs. Dans un réseau de capteurs, chaque pro-
cesseur (nœud) est équipé de capteurs, et il est capable d’établir une communication
sans fil (d’une manière autonome) avec les autres nœuds. Les réseaux de capteurs sont
utilisés pour : surveiller les champs de bataille, la détection des attaques biologiques et
chimiques, automatisation domestique et informatique ubiquitaire.

1.8 Conclusion

Le but de ce chapitre était de présenter un survol sur les concepts importants des
systèmes distribués. Dans le chapitre suivant nous présenterons les techniques de base

12
Chapitre 1 : Introduction aux Systèmes Distribués

pour synchroniser des processus s’exécutant sur des sites distincts du système distribué.
Plus précisément, nous traitons le problème d’exclusion mutuelle distribuée.

1.9 Questions

1. Quel est le rôle du middleware dans les systèmes distribués ?

2. Quelles techniques peut-on utiliser pour atteindre l’extensibilité d’un système


distribué ?

3. Donnez les différences entre un système parallèle et un système distribué ?

4. Quels sont les avantages des systèmes distribués par rapport aux systèmes paral-
lèles ?

5. Pourquoi ce n’est pas toujours une bonne idée l’implémentation d’un niveau élevé
de transparence ?

6. Qu’est-ce qu’un système distribué ouvert et quels sont les avantages apportés par
cette ouverture ?

7. Expliquez ce que signifie la transparence de distribution, et donnez des exemples


de ses différents types de transparence ?

8. Expliquer comment le partage de ressources réduit le coût d’installation ?

13

Vous aimerez peut-être aussi