COURS
ARCHITECTURES
DISTRIBUEES
CEFIVE 2018
CEFIVE / Prof AFFIAN ROGER
ANIME PAR
Monsieur AFFIAN INNOCENT ROGER
CONSULTANT- FORMATEUR
INGENIEUR EN INFORMATIQUE ET TELECOM
MBA EN MANAGEMENT
CEFIVE / Prof AFFIAN ROGER
La téléinformatique résulte de la synergie vers 1960 entre deux industries
: celle de l'informatique (1948) et des télécommunications (1850). Les
techniques informatiques commencent à être utilisées dans le monde
des télécommunications et les techniques des télécommunications
permettent d'accéder aux ressources informatique distantes. A partir de
1980, apparaît l'informatique distribuée : l'utilisateur accède de façon
transparente à des ressources informatiques qui peuvent se trouver sur
d'autres systèmes (homogène ou hétérogène).
Les possibilités nouvelles sont la possibilité de réunir les ressources de
différentes stations soit :
• pour créer une station virtuelle unique,
• pour utiliser des ressources distantes quand elles ne sont pas
disponibles localement (pagination surROGER
CEFIVE / Prof AFFIAN le réseau par exemple).
CHAPITRE 1 : INTRODUCTION AU SYSTEME
DISTRIBUE
I. DEFINITION ET CARACTERISTIQUES
1. Définition
C’est une collection d’ordinateurs indépendants qui apparaissent à l’utilisateur
comme un seul système opérant. Il ressort de cette définition deux aspects :
Premier de nature matériel il s’agit de l’autonomie de l’ordinateur ou
chacun peut exécuter des tâches en concurrence c’est-à-dire au même
moment avec les autres.
Le second fait référence aux logiciels qui laissent apparaitre le système
distribué comme une seule entité cohérente ; le second aspect suppose une
interconnexion des ordinateurs moyennant un réseau de communication
physique.
CEFIVE / Prof AFFIAN ROGER
Un système distribué ou reparti est un système dont les
composants sont repartis sur différent noeuds d’un réseau
d’ordinateur ; ses composants communiquent et coordonnent
leur action uniquement par l’échange de messages.
L’architecture d'un environnement informatique ou
d'un réseau est dite distribuée quand toutes les ressources ne
se trouvent pas au même endroit ou sur la même machine.
On parle également d'informatique distribuée. Ce concept
s'oppose à celui d'architecture centralisée dont une version
est l'architecture client-serveur.
CEFIVE / Prof AFFIAN ROGER
2. Caractéristique
Les messages étant des suites de bit représentant des informations
qui ont un sens pour l’émetteur et le récepteur, les systèmes
repartis se caractérisent par :
Une absence de base de temps commune (horloge commune)
Une absence de mémoire commune semblable à celle d’un
système multiprocesseur
Les pannes des composants sont indépendantes
La motivation principale des systèmes repartis est l’amélioration du
partage des ressources ; autrement dit les ressources disponibles
dans un ordinateur donné peuvent être utilisés par un autre et vice-
versa.
CEFIVE / Prof AFFIAN ROGER
• Exemple : Internet, intranet, systèmes de fichiers Unix Linux, Les systèmes
Mobiles
La communication dans les systèmes distribués s’opère entre entités
physiques ou logiques et se base sur la possibilité d’échange du message qui
est toujours supporté par le réseau physique de l’ordinateur.
Par exemple l’échange entre deux cartes réseaux est un échange entre entité
physique, et l’échange entre deux systèmes de gestion de fichiers est un
échange entre entité logique ; il en est de même pour la communication
entre logiciel d’application ou l’échange s’opère entre entité logique appelé
processus.
Il existe divers approche de communication allant d’un simple échange de bit
à des protocoles complexes tel que l’invocation de méthodes à distance
nommé RMI (REMOTE METHOD INVOCATION).
CEFIVE / Prof AFFIAN ROGER
L’absence d’horloge commune signifie que la communication du
message peut être utilisée pour coordonner les activités des
différentes tâches du système et garantir la cohérence lors du partage
des ressources.
Dans un système distribué les ordinateurs peuvent tomber en panne
indépendamment les uns des autres. De même les lignes de
communication physique peuvent être défaillantes, mais au-delà des
aspects matériels les tâches exécutées sur chaque ordinateur peuvent
échouer.
Ces pannes d’ordre physique ou logique peuvent avoir un effet local
plus ou moins étendu ; par exemple une panne au niveau d’un réseau
de communication engendre l’isolement des ordinateurs qui y sont
connectés sans pour autant arrêter l’exécution de ces derniers ;
CEFIVE / Prof AFFIAN ROGER
les programmes (processus) sur ses ordinateurs peuvent ne
pas être capables de détecter si le réseau est en panne ou
non. De même l’échec d’une activité tel comme sur un
ordinateur n’est pas directement détectable par les autres
ordinateurs sur le réseau.
Cependant l’une des caractéristiques des systèmes distribués
est l’indépendance de ces pannes.
Lorsqu’une application fait intervenir plusieurs composants
ou chacun s’exécute sur un ordinateur séparé, il incombe au
concepteur de cette application d’anticiper les différentes
pannes qui peuvent arriver et prévoir les mécanismes pour
garantir la poursuite de la coordination et de l’attente de
l’objectif visé.
CEFIVE / Prof AFFIAN ROGER
II. EXEMPLES DE SYTEMES DITRIBUES
Les exemples sont nombreux et variés.
Un même système distribué peut être fondé sur
plusieurs autres systèmes distribués de niveau
différent.
En effet, une application distribuée est un système
composé de processus qui s’exécute sur plusieurs
ordinateurs connectés par un réseau.
Cet ensemble d’ordinateurs connectés constituent lui-
même un système distribué.
CEFIVE / Prof AFFIAN ROGER
1. Le réseau Internet
Internet est une vaste collection de réseau d’ordinateur
interconnecté. Les programmes qui s’exécutent sur ces
ordinateurs interagissent par l’échangent des messages en
utilisant un moyen de communication ou un autre.
La mise en œuvre des moyens de communications (mécanisme et
protocole) constituent un défi considérable permettant à un
ordinateur quelconque d’échanger de messages avec n’importe
quel ordinateur dans le réseau. Internet constitue actuellement
le plus large au monde et ceci sur quasiment tous les plans ; des
utilisateurs de n’importe quelles positions dans le monde
peuvent utiliser les services offerts :
CEFIVE / Prof AFFIAN ROGER
• -Le FTP(File Transfert Protocole)
• -Le www(world wild web)
• -La messagerie.
• -Le chat.
Les services disponibles sur internet peuvent être étendus
librement et le système peut être agrandi par l’ajout d’ordinateur à
n’importe quel moment.
Internet à une structure composée d’intranet connectée par des
moyens de communication de haute capacité. Les intranets sont la
propriété des compagnies et des organisations directes.
Les FAI (fournisseur d’accès à internet) sont des compagnies qui
offre des connections aux utilisateurs d’internet via des modems
ou des routeurs qui leur permettent l’accès au service internet.
CEFIVE / Prof AFFIAN ROGER
2. Le Réseau Intranet
L’intranet est une portion d’internet administré séparément et
délimité de telles sortes à garantir une politique de sécurité locale.
Ce réseau local dispose de ressource gérée par des serveurs.
La configuration d’un intranet est à la charge de l’’organisation qui
l’administre et peut varier largement.
3. Serveur de fichiers
Accès aux fichiers de l'utilisateur quelque soit la machine utilisée
• Clients (utilisateurs)
• Un serveur de fichier
CEFIVE / Prof AFFIAN ROGER
III. PROBLEMATIQUE DES SYSTEMES DISTRIBUES
CEFIVE / Prof AFFIAN ROGER
Les applications distribuées constituent une couche au-
dessous de laquelle il y a plusieurs autres :
-La couche Middleware
-La couche Système d’exploitation
-La couche matérielle.
Dans chaque couche il est possible d’avoir diverses entités
reliées par un réseau qui est physique dans la couche matériel
et virtuel dans les autres couches.
Dans chaque couche il est possible d’avoir diverses entités reliées par
un réseau qui est physique dans la couche matériel et virtuel dans les
autres couches.
CEFIVE / Prof AFFIAN ROGER
Chaque couche matérialise un système distribué ;
cependant comme les entités de chaque couche
s’exécutent en utilisant les services disponibles dans les
couches inferieurs, les applications distribuées sont donc
mises en œuvre moyennant plusieurs systèmes
distribués.
La couche middleware est une spécificité pour les
systèmes distribués qui est censé caché les subtilités des
couches inférieures et offrir aux concepteurs de
l’application distribuée des services plus convenable de
nature à réduire leur complexité.
CEFIVE / Prof AFFIAN ROGER
Cette complexité du système distribué engendre plusieurs
problèmes auxquels le concepteur des systèmes distribués
doit faire face :
• l’hétérogénéité
• la concurrence
• la sécurité
• les pannes
• l’absence d’information globale.
CEFIVE / Prof AFFIAN ROGER
1. L’hétérogénéité
Elle désigne les différences qui existent entre les différents
composants d’un SD ; ces différences peuvent être au niveau
de chaque couche.
Les composants d’un SD sont appelés a coopéré pour partager
les ressources, mais chaque composant peut avoir ses
spécificités qui limitent ce partage ou le rendent difficile.
C’est l’exemple de certains ordinateurs dans un SD pouvant
être doté d’un SD UNIX, d’autres WINDOWS, MAC OS ou
SOLARIS.
CEFIVE / Prof AFFIAN ROGER
Au niveau Middleware il existe actuellement plusieurs possibilités :
• Microsoft propose sa plateforme .NET qui est censé facilité la
coopération entre les objets de diverses applications réalisées avec
des langages de programmation différents.
• CORBA (Common Objet Request Broker Architecture) de l’OMG
(Objet Management Group). L’OMG est un groupe de travail qui
rassemble de nombreux constructeur et éditeur de logiciel dans le
but de fournir une base de travail indépendante de la plateforme.
L’OMG a plusieurs réalisations pratiques qui offrent des moyens de
partage et de coordination entre les composants des applications
reparties.
Au niveau de la couche application, l’hétérogénéité provient
principalement de l’utilisation de langage de programmation
différent. Ce qui engendre des problèmes lors de la manipulation
des données, l’appel des procédures…
CEFIVE / Prof AFFIAN ROGER
2. Problème de la concurrence
Le problème de la concurrence provient de la manipulation
simultanée des ressources par plusieurs programmes
(processus).
Le problème de la concurrence se pose également pour les
systèmes distribués comme dans les systèmes centralisés ; la
gestion de la concurrence dans les SD nécessite des
mécanismes et des outils tout comme dans les systèmes
centralisés.
Dans les SD la gestion de la concurrence se base en partie sur
la communication par message qui introduit d’autres sources
de difficultés telles que la perte de messages ou les
corruptions.
CEFIVE / Prof AFFIAN ROGER
3. Problème de la sécurité
Les problèmes de sécurité se posent pour tous les systèmes
informatiques.
Cependant dans les systèmes distribués, la vulnérabilité se trouve
accentuée par la répartition de ses composants.
Par exemples dans le commerce électronique une partie de l’application
(un client) envoie des messages (numéro carte de crédit) à l’application
serveur ; ce message peut être intercepté lors de sa transmission et
entrainer des conséquences graves aussi bien pour le client que pour le
serveur.
D’autres problèmes de sécurité peuvent se poser :
• L’authentification
• Attaque de service
• Sécurité du code mobile
CEFIVE / Prof AFFIAN ROGER
4. Problème des pannes
Les systèmes peuvent échouer dans l’accomplissement de leur tâche suite à une
faille matérielle ou logicielle.
Les pannes peuvent conduire à des résultats erronés. Comme elles peuvent
engendrer l’arrêt de toutes ou partie de l’application distribuée ; elles peuvent
apparaitre aussi dans les différentes couches et se propager éventuellement
aux autres couches.
L’origine de ces pannes est liée à la conception des applications, des
Middlewares et les SE, certaines peuvent avoir comme origine une faille dans la
gestion de la concurrence ou de la coordination en général.
Par exemple l’omission de la libération d’une ressource lors de l’exécution d’un
programme (processus) peut conduire à une situation d’inter blocage. L’absence
de l’exclusion mutuelle pour l’accès à une ressource critique par exemple un
tampon, peut avoir des répercussions sur l’ensemble de l’application repartie.
CEFIVE / Prof AFFIAN ROGER
L’exclusion mutuelle
Lorsqu’un processus doit modifier des structures de données
partagées, il entre d’abord en zone critique en s’assurant qu’aucun
processus n’est en train d’utiliser la structure de données à laquelle
il veut accéder. Ces zones critiques sont protégées à l’aide de
mécanismes particuliers.
Trois mécanismes d’exclusion mutuelle sont fréquemment utilisés
dans les systèmes répartis:
• L’algorithme centralisé (un coordinateur assure le contrôle).
• L’algorithme réparti (le contrôle réparti sur les différents
processus).
• L’algorithme anneau à jeton (le contrôle est réparti à l’aide d’un
jeton sur les différents processus).
CEFIVE / Prof AFFIAN ROGER
5. Absence des informations globales
Dans un système centralisé, une application se compose de
plusieurs processus qui coopèrent pour réaliser un objectif
commun ; ces processus partagent une mémoire commune
qui renferme les informations sur les ressources et les
processus.
Dans le cas des SD, la mémoire commune est inexistante et
chaque processus se trouve dans un environnement différent
(SE différent).
Les ressources partagées par ces différents systèmes ne sont
pas accessibles en temps réels.
CEFIVE / Prof AFFIAN ROGER
La coordination d’un ensemble processus distribué
nécessite le recours à la communication par échange
du message ; malheureusement un message parvient
toujours à sa destination avec un certain retard et par
conséquent, l’information qu’il véhicule ne reflète pas
toujours l’état d’un processus ou d’une ressource car
ces derniers peuvent changer d’état durant la
transmission du message. Il est impossible d’avoir une
vision globale instantanée de l’état d’un système
distribué. Ce qui représente un défi dans la
coordination. CEFIVE / Prof AFFIAN ROGER
IV. DEFIS ET OBJECTIFS DES SYSTEMES DISTRIBUES
Pour faire face aux problèmes des systèmes distribués, il faut apporter une
solution au niveau du Middleware ou au niveau de l’application.
Au niveau de Middleware il s’agit de masquer les problèmes pour le
concepteur de l’application, et par conséquent pour l’utilisateur également.
Quel que soit le niveau considéré les solutions apportées doivent garantir les
propriétés suivantes :
• L’interopérabilité
• L’ouverture
• L’invariance
• La gestion de la sécurité
• Gestion de la concurrence
• La transparence
• Gestion des situations d’exceptions
CEFIVE / Prof AFFIAN ROGER
1. Interopérabilité
L’interopérabilité est une caractéristique qui désigne la capacité à
rendre compatible deux systèmes ; la compatibilité c’est la capacité
qu’ont deux systèmes à communiquer sans ambigüité.
L’interopérabilité vise à réduire le problème de l’hétérogénéité; le
masquage de celui –ci passe en premier lieu par l’utilisation d’un
protocole unique de communication.
Exemple du protocole TCP/IP pour l’internet. Il existe actuellement
deux approches principales de standardisation pour masquer
l’hétérogénéité :
• Les Middlewares
• Les machines virtuelles
CEFIVE / Prof AFFIAN ROGER
a) Les Middlewares
Un Middleware est une couche logicielle qui masque l’hétérogénéité
en offrant aux programmeurs d’une application un modèle de
programmation plus convenable.
Le Middleware est représenté par des processus et des ressources
d’un ensemble d’ordinateur qui interagissent les uns avec les autres.
Un Middleware tel que CORBA offre des services utilisés pour
construire des composants logiciels pouvant fonctionné ensemble
dans un système distribué.
CEFIVE / Prof AFFIAN ROGER
Les Middleware améliorent la communication en offrant les
abstractions suivantes :
• Le RMI (Remote method invocation, plus connu sous l'acronyme RMI est
une interface de programmation (API) pour le langage Java) c’est la
possibilité pour un objet d’invoquer la méthode d’un autre
objet situé sur une plateforme distante
• La notification d’évènement, les évènements représentent
un moyen efficace de propagation d’information, d’une
plateforme vers une autre ou plusieurs autres plateformes.
• La communication entre groupe de processus.
• La gestion de la duplication des données partagées.
• La transmission des données en temps réel
CEFIVE / Prof AFFIAN ROGER
b) Les Machines Virtuelles
Les machines virtuelles permettent de supporter le code mobile ; ce
code mobile désigne la possibilité de transfert de code d’une machine
source à une machine de destination et son exécution sur cette
dernière.
En effet, sur les plateformes sont différents, le code produit pour l’une
ne peut fonctionner sur l’autre ; pour éviter ce problème, le code
mobile est généré d’un langage source pour une machine virtuelle
donnée (exemple de la machine virtuelle de JAVA, JVM ).
Chaque plateforme doit disposer d’une couche logicielle qui
implémente la machine virtuelle.
Les machines virtuelles représentent une généralisation de
Middleware dans le sens où elles n’offrent pas seulement quelques
services communs, mais offrent les mêmes services. (Code mobile)
CEFIVE / Prof AFFIAN ROGER
2. L’ouverture
Elle désigne la possibilité d’ajout, de suppression ou de
modification des ressources et services dans un SD.
L’ouverture nécessite que les interfaces logicielles soient
documentées et accessible aux développeurs d’applications. Ce
défi que pose l’ouverture vient du fait que les composants d’un
système repartis ont des origines divers ; dans ce cadre, on le
qualifie de système ouvert s’il supporte sans difficulté :
-L’ajout de nouveau service au niveau application Middleware et
SE.
Les systèmes ouverts présentent implicitement une indépendance
vis-à-vis des constructeurs des plateformes et des fournisseurs de
produits logiciels. CEFIVE / Prof AFFIAN ROGER
3. L’invariance à l’échelle, efficacité et disponibilité
• Avoir un système invariant à l’échelle signifie :
• L’ajout d’utilisateur et de ressource est toujours possible
• Le maintien de la bonne performance au niveau des services
4. Gestion de la sécurité
Résoudre le problème de la sécurité revient à assurer :
• la confidentialité des informations vis-à-vis des personnes non
autorisées
• l’intégrité vis-à-vis des altérations
• la disponibilité du système
• Dans un système repartis, l’échange de message nécessite leur
protection et surtout l’authentification de leur émetteur.
CEFIVE / Prof AFFIAN ROGER
La cryptographie et les mots de passe sont très utilisés dans la
gestion de la sécurité. Cependant, malgré leur efficacité, il ne
permette pas d’éradiquer complètement les problèmes
épineux tels que les attaques de services et la sécurité du
code mobile.
• 5. Gestion de la concurrence
Dans les systèmes repartis, une ressource critique peut être
utilisée simultanément par plusieurs processus physiquement
repartis.
Pour résoudre le problème de concurrence, on crée un
processus dit allocateur de ressource qui accepte les
demandes des processus dit client puis autorise un processus
à la fois à utiliser la ressource.
CEFIVE / Prof AFFIAN ROGER
Cette solution est contraignant car le processus allocateur réduit
les performances et peut tomber en panne.
L’application repartie autorise l’exécution de plusieurs services en
concurrence. C’est le cas de l’accès aux bases de données ;
chaque demande est prise en compte par un processus et la
gestion de la concurrence fait appel aux mécanismes de
synchronisation classique.
D’autre approche plus complexe existe, il s’agit d’établir une
coordination entre les processus client (processus paires), à
chaque demande de telle sorte que l’un d’entre eux puisse
accéder à la ressource critique au bout d’un temps fini.
CEFIVE / Prof AFFIAN ROGER
6. La transparence
La transparence d’un mécanisme ou d’un concept signifie son existence et
son utilisation implicite sans que l’utilisateur d’une application ne s’en
rendre compte.
Dans les systèmes distribués, la transparence signifie que la répartition
des composants reste caché pour l’utilisateur qui perçoit le SD comme un
trou et non comme une collection de composant indépendant.
On distingue huit formes de transparences :
Transparence d’accès
• Accès à des ressources distantes aussi facilement que localement
• Accès aux données indépendamment de leur format de représentation
Transparence à la localisation
• Accès aux éléments/ressources indépendamment de leur localisation
CEFIVE / Prof AFFIAN ROGER
Transparence à la concurrence
• Exécution possible de plusieurs processus en parallèle avec utilisation de
ressources partagées en évitant principalement les interférences
Transparence à la duplication (réplication)
• Possibilité de dupliquer certains éléments/ressources pour augmenter la fiabilité
et la performance. La gestion de la duplication ne doit pas être perceptible par
l’utilisateur.
Transparence aux pannes
Doit supporter qu'un ou plusieurs éléments tombent en panne. Il s’agit de
permettre aux applications des utilisateurs d’achever leurs exécutions malgré les
pannes qui peuvent affecter les composants d’un système( physique et logique)
Transparence à la mobilité
• Possibilité de déplacer des éléments/ressources à l’intérieur d’un système sans
influencer le déroulement des applications
CEFIVE / Prof AFFIAN ROGER
Transparence à la reconfiguration (performance)
• Possibilité de reconfigurer le système pour en augmenter
les performances
• Sans que cela ne soit perceptible par l’utilisateur.
Transparence à la modification de l’échelle
• Doit supporter l'augmentation de la taille du
système (nombre d'éléments, de ressources ...)
sans influence notable sur les performances des
applications
CEFIVE / Prof AFFIAN ROGER
7. Gestion des situations d’exception
La gestion des situations d’exception ou pannes fait
intervenir plusieurs notions
• Détection : possibilité de détecter facilement les
pannes liées aux erreurs de transmission par
opposition aux erreurs de processus plus difficile a
détecté
• Masquage : possibilité de rendre les pannes
transparentes par la retransmission des messages qui
ne parviennent pas à destination ou la duplication des
ressources importantes pour les maintenir accessibles
en cas de problème
CEFIVE / Prof AFFIAN ROGER