Systèmes Distribués et Big Data
Houda BENALI
houda_benali@[Link]
Institut supérieur des sciences appliquées et de technologie
de Mateur
A-U: 2021/2022
Objectifs du cours
Présenter les principes importants concernant les systèmes répartis
Architecture
Modèles de communication
Middleware
Maîtriser la programmation d’applications réparties
MP-SSR2–ISSATM -2021/2022
Système de fichiers
Big Data et technologies en relation
Études de cas
Systèmes Distribués et Big Data Houda Benali 1 1
Contenu du cours prévu
Chapitre 1 : Introduction aux systèmes distribués
Caractéristiques de Systèmes distribués
Architecture des Systèmes distribués
Modèles de communication
Chapitre 2 : Middleware pour les systèmes distribués
Appel de procédures à distance (RPC)
Appel de méthodes à distance (RMI vs CORBA)
Etude de cas : Concurrence en JAVA et JAVA-RMI
MP-SSR2–ISSATM -2021/2022
Bus de communication DDS et modèle Producteur-Consommateur
Etude de cas : Middleware DDS et JMS
The Web as a Platform
Etude de cas : REST JAX-RS.
Systèmes Distribués et Big Data Houda Benali 2 2
Contenu du cours prévu
Chapitre 3 : Système de gestion de fichiers distribué
Rappel : SGF classique
SGFR :
Objetctifs
Défis
Classification
Etude de cas : NFS et XtreemFS
Chapitre 4 : Introduction au Big Data
MP-SSR2–ISSATM -2021/2022
Rappel sur les bases de données et les entrepôts de données
Définition et taxonomie
Le marché et les enjeux
Rôle et Valeur ajoutée dans l‘entreprise
Systèmes Distribués et Big Data Houda Benali 3 3
Contenu du cours prévu
Chapitre 5: Ecosystème Hadoop et MapReduce
Hadoop File System (HDFS)
Principe et algorithmes du MapReduce
Hadoop et MapReduce
YARN et MapReduce
Chapitre 6: Interrogation de Big Data avec Hive et sciences de
données
MP-SSR2–ISSATM -2021/2022
Transition de SQL à HiveQL
Analyse de données distribuées et Machine Learning
Étude de cas : Hadoop et MapReduce
Systèmes Distribués et Big Data Houda Benali 4 4
1
Terminologies
Systèmes vs. Applications?
Système: gestion des ressources communes et de l’infrastructure, lié de manière
étroite au matériel sous-jacent
Système d’exploitation : gestion de chaque élément
Système de communication : échange d’information entre les éléments
cachent la complexité du matériel et des communications, fournissent des services communs de
plus haut niveau d’abstraction
MP-SSR2–ISSATM -2021/2022
Application: réponse à un problème spécifique, fourniture de services à ses
utilisateurs (qui peuvent être d'autres applications). Utilise les services généraux
fournis par le système
Systèmes Distribués et Big Data Houda Benali 7 7
Terminologies
Service et interface
Un service est « un comportement défini par contrat, qui peut être implémenté et
fourni par un composant pour être utilisé par un autre composant, sur la base
exclusive du contrat »
Mise en œuvre
Un service est accessible via une ou plusieurs interfaces
MP-SSR2–ISSATM -2021/2022
Une interface décrit l’interaction entre client et fournisseur du service
Point de vue opérationnel : définition des opérations et structures de données qui concourent à la
réalisation du service
Point de vue contractuel : définition du contrat entre client et fournisseur
Systèmes Distribués et Big Data Houda Benali 8 8
Terminologies
Service et interface
La fourniture d'un service met en jeu deux interfaces
Interface requise (coté client)
Interface fournie (coté fournisseur )
MP-SSR2–ISSATM -2021/2022
Le contrat spécifie la conformité entre ces deux interfaces
Au delà de l'interface, chaque partie est une "boîte noire" pour l'autre (principe
d'encapsulation)
Conséquence : client ou fournisseur peuvent être remplacés du moment que le composant
remplaçant respecte le contrat (est conforme)
Systèmes Distribués et Big Data Houda Benali 9 9
Terminologies
Interfaces et Protocoles
L’exemple d’une requête sur le web permet d’identifier divers “niveaux” d’échange
entre le client et le serveur
Niveau de l’application: le client clique sur un lien, le serveur renvoie une page web
Niveau des messages: le client envoie un message contenant une URL, le serveur renvoie un
message contenant un fichier HTML
Niveau des paquets: le message du client est fragmenté en paquets, les différents routeurs les
acheminent vers le serveur (idem pour le retour)
Niveau de la transmission physique: pour envoyer les trame, chaque bit (0 ou 1) est
MP-SSR2–ISSATM -2021/2022
transmis comme un signal électrique sur la ligne
Chaque niveau offre un service au niveau supérieur
Les notions de protocoles et d’interfaces visent à représenter ce mode de
fonctionnement
Analogie: deux personne peuvent dialoguer même si elles ne parlent pas la même
langue (via un interprète)
Systèmes Distribués et Big Data Houda Benali 1010
Terminologies
Interfaces et Protocoles
Définition de Protocole: ensemble de conventions définissant les échanges entre
des entités qui coopèrent pour réaliser un service
Relation entre protocoles et interfaces
Une interface définit l’accès à un service, un protocole définit la réalisation d’un service.
Protocoles en couches:
La construction d’un protocole utilise souvent des protocoles de niveau inférieur (plus
élémentaires), en accédant à leurs interfaces.
MP-SSR2–ISSATM -2021/2022
Exemple de protocole: protocole d’internet: TCP/IP
Systèmes Distribués et Big Data Houda Benali 1111
Motivations
La répartition est un état de fait pour un nombre important d’applications
Développement des réseaux (Internet, réseaux sans fil)
Intégration d’applications existantes initialement séparées
Pénétration de l’informatique dans des nouveaux domaines d’application
Intégration d'objets du monde réel (informatique omniprésente (ubiquitous computing), IoT)
Intégration entre informatique et télécommunications
L'informatique dans les nuages (cloud computing) : l'accès pour tous aux ressources/services informatiques
MP-SSR2–ISSATM -2021/2022
Le parallélisme est la réponse aux besoins croissants des applications
Puissance de traitement
Gestion de grandes masses de données (Big Data)
Intégration et mise en commun de ressources
Systèmes Distribués et Big Data Houda Benali 1212
Historique
Classification des systèmes informatiques (Flynn, 1992)
Systèmes monoprocesseur dits SISD (une Seule Instruction manipulant une Seule Donnée)
Machines dites vectorielles SIMD (une Seule Instruction qui porte sur des Données
multiples) : Machine Cray
Machines dites pipe-line MISD (plusieurs Instructions manipulant une Seule Donnée)
Les machines MIMD (Multiples Instructions qui porte sur des Données multiples) : deux
MP-SSR2–ISSATM -2021/2022
classes de systèmes multiprocesseurs
Fortement couplés (machines parallèles)
Faiblement couplés (systèmes répartis)
Systèmes Distribués et Big Data Houda Benali 1313
Qu’est ce qu’un Système Réparti ?
Définition:
Collection de machines autonomes (UCi, MCi, disques)
Faiblement couplées (c-à-d pas de partage de mémoire– chaque
machine dispose de sa propre mémoire locale).
MP-SSR2–ISSATM -2021/2022
Interconnectées au moyen d’un réseau.
Coopération par échanges de messages.
Systèmes Distribués et Big Data Houda Benali 1414
Qu’est ce qu’un Système Réparti ?
Un système réparti fait apparaître un ensemble de machines indépendantes
comme une machine unique (virtuelle incluant toutes les ressources)
Transparence
Vue Physique Vue logique
(Sites + Réseau) (Une seule machine)
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 1515
Qu’est ce qu’un Système Réparti ?
Un ensemble de ressources informatiques
Autonomes : peuvent travailler seul ou en collaboration
Indépendants: pas besoins d’informations provenant d’autres ressources
De différents types : des ordinateurs, des smart phones, des tablettes, des capteurs…
Reliées par un réseau de communication
Objectif : collaboration pour réaliser une tâche commune
MP-SSR2–ISSATM -2021/2022
Caractéristiques: aucun partage de
Mémoire
D’horloge
Impossible d’avoir un état global instantané
Systèmes Distribués et Big Data Houda Benali 1616
Les Systèmes Répartis -Nouveaux Problèmes
Du centralisé vers le réparti...
MP-SSR2–ISSATM -2021/2022
Nouveaux problèmes !!!
Localisation/nommage, interopérabilité, communication, ...
Systèmes Distribués et Big Data Houda Benali 1818
État du système et datation des événements
En l'absence d’une mémoire commune et d’une 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) pour :
définir la notion d'état d'un système réparti
réaliser des mécanismes pour l'observation de cet état
MP-SSR2–ISSATM -2021/2022
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.).
Systèmes Distribués et Big Data Houda Benali 1919
Désignation
Des problèmes spécifiques :
la grande taille de l'espace des noms
l'évolution permanente de l'ensemble des objets désignés et de leur
localisation
Solution :
MP-SSR2–ISSATM -2021/2022
l'usage de caches et d'indicateurs, qui permettent de maintenir une
désignation indépendante de la localisation physique tout en permettant
une recherche efficace
Systèmes Distribués et Big Data Houda Benali 2020
Communications et exécution répartie
En utilisant les outils primitifs fournis par la communication par
message, des fonctions de communication de plus haut niveau ont été
définies :
appel de procédure à distance
gestion répartie d'objets
MP-SSR2–ISSATM -2021/2022
agents mobiles communicants
Systèmes Distribués et Big Data Houda Benali 2121
Sécurité et protection
La sécurité d'un système réparti vise à garantir :
le maintien de la confidentialité et de l'intégrité de l'information
le respect des règles d'accès aux services.
Les méthodes utilisées reposent sur
l'usage de barrières de protection (matérielles et logicielles, comme les "pare-feu"
MP-SSR2–ISSATM -2021/2022
("firewalls"), ou purement logicielles, comme les domaines de protection)
des protocoles d'authentification utilisant la cryptographie.
Systèmes Distribués et Big Data Houda Benali 2222
Transparence
Propriété d'indépendance, par rapport à la localisation physique, pour l'accès aux
informations et aux services.
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 localisation pendant son
utilisation
de réplication: cacher qu’une ressource est répliquée
MP-SSR2–ISSATM -2021/2022
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
Systèmes Distribués et Big Data Houda Benali 2424
Abstraction
Séparation entre interface d'accès à un service et la réalisation de ce service.
Les interfaces sont souvent écrites en IDL (Interface Definition Language)
Permet d’avoir:
une ouverture du système
une flexibilité (facile à configurer)
une extensibilité (facile à modifier)
MP-SSR2–ISSATM -2021/2022
une interopérabilité: deux composants ou deux implémentations différentes d’un même
système de deux constructeurs différents peuvent coexister et travailler ensemble
une portabilité: une application peut être exécutée dans deux systèmes distribués
différents et ce sans modification
Systèmes Distribués et Big Data Houda Benali 2525
Capacité d’évolution, ou d’extension (scalability)
Objectif: faire face à l'évolution des besoins, aux modifications de
l'environnement (systèmes, outils, infrastructure de communications), et à la
croissance de la demande.
Cette évolution doit se faire de manière continue et sans interruption du
service
La scalabilité est mesurée selon au moins 3 dimensions:
MP-SSR2–ISSATM -2021/2022
Selon la taille: nombre de ressources et d’utilisateurs
De manière géographique: distance entre les ressources
De manière administrative: nombre d’administrateurs
Systèmes Distribués et Big Data Houda Benali 2626
Taxonomie des Systèmes distribués
une classification des systèmes distribués en des catégories pour :
Faciliter leur compréhension
Faciliter leur étude
Taxonomie à trois niveaux
Niveau matériel
MP-SSR2–ISSATM -2021/2022
Niveau système d’exploitation
Niveau application
Systèmes Distribués et Big Data Houda Benali 2828
Taxonomie des Systèmes distribués : Niveau matériel
⁃ D’un point de vue très abstrait,
un ordinateur est composé de
deux entités :
Mémoire
Processeur
⁃ Classification
Systèmes multiprocesseurs
basés bus
Systèmes multiprocesseurs
basés switch
Systèmes à mémoires
MP-SSR2–ISSATM -2021/2022
locales (multiordinateurs)
basés bus
Systèmes à mémoires
locales (multiordinateurs)
basés switch
Systèmes Distribués et Big Data Houda Benali 2929
Taxonomie des Systèmes distribués : Niveau SE
Deux catégories :
Les systèmes fortement couplés
maintenir une vue globale unique des ressources qu’il gèrent
rendre la répartition physique transparente au niveau des applications
les systèmes faiblement couplés
MP-SSR2–ISSATM -2021/2022
une collection de plateformes où chacune dispose de son propre système d’exploitation
Les systèmes d’exploitation coopèrent pour rendre leurs services et leurs ressources
disponibles les uns aux autres
Systèmes Distribués et Big Data Houda Benali 3030
Taxonomie des Systèmes distribués : Niveau SE
Trois types :
Les systèmes d’exploitation multiprocesseurs
Les systèmes d’exploitation distribués (SED)
Les systèmes d’exploitation réseaux (SER)
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 3131
Taxonomie des Systèmes distribués : Niveau SE
Les systèmes d’exploitation multiprocesseurs : Principe
Tous les programmes sont stockés dans la mémoire partagée
Une file d’attente unique des processus exécutable se trouve dans la mémoire
partagée
L'ordonnanceur travaille en section critique pour éviter que deux processeurs ne
MP-SSR2–ISSATM -2021/2022
choisissent le même processus à exécuter.
Systèmes Distribués et Big Data Houda Benali 3232
Taxonomie des Systèmes distribués : Niveau SE
SED : Principe
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 3333
Taxonomie des Systèmes distribués : Niveau SE
SED : Principe
Architecture matérielle multi-ordinateurs
Chaque nœud du réseau possède un système d’exploitation qui permet de gérer les
ressources locales : mémoire, processeur, disque, …
Sur chaque noyau on greffe une couche commune qui implémente une machine
virtuelle capable d’exécuter des tâches parallèles et concurrentes.
Cette couche peut faire apparaitre tout le système d’ordinateurs comme une machine
MP-SSR2–ISSATM -2021/2022
multiprocesseur en implémentant une mémoire partagée. Elle permet de :
affecter une tâche à un processeur,
masquer les pannes matérielles,
assurer la transparence à la localisation et la communication interprocessus.
Systèmes Distribués et Big Data Houda Benali 3434
Taxonomie des Systèmes distribués : Niveau SE
SED : Caractéristiques
possède un mécanisme de communication interprocessus unique et global
permet le dialogue entre deux processus quelconques
possède un système de protection unique et global
possède un mécanisme de gestion de processus unique
possède un noyau de système d’exploitation identique implanté sur toutes les
MP-SSR2–ISSATM -2021/2022
machines
possède un mécanisme de gestion de mémoire identique
Systèmes Distribués et Big Data Houda Benali 3535
Taxonomie des Systèmes distribués : Niveau SE
SER : Principe
Il s’agit de réseaux où chaque nœud est une plateforme matérielle différente sur
laquelle s’exécute un système d’exploitation différent.
Pour Systèmes faiblement couplés (Loosely coupled systems) et Architecture
matérielle multi-ordinateurs
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 3636
Taxonomie des Systèmes distribués : Niveau SE
SER : Caractéristiques
Un SER (au contraire d’un SED) assume que le matériel de base n’est pas homogène et
n’exige pas être géré comme un seul système
Le SER manipule un groupe de systèmes monoprocesseur connectés par réseau, chacun a
son propre SE et un ensemble de services (une couche) qui implémentent les fonctions du
SER
Utilisateur doit connaître l’emplacement des ressources sur les machines distantes
MP-SSR2–ISSATM -2021/2022
Accès aux ressources d’une autre machine se fait par le biais d’un accès distant (remote
login)
Utilisateurs gèrent leur fichiers et leurs emplacements et gèrent les transferts de
fichiers par eux mêmes
Systèmes Distribués et Big Data Houda Benali 3737
Taxonomie des Systèmes distribués : Niveau SE
Systèmes distribués et SEs
Rappel : Système Distribué (SD) : une collection d’ordinateurs indépendants qui
apparaît à ses utilisateurs comme un seul système cohérent
Ni SED et ni SER sont qualifiés pour réaliser un SD
Un SED n’est pas censé manipuler une collection d’ordinateurs indépendants, et
Un SER ne fournit pas une vue d’un système unique (single system view)
MP-SSR2–ISSATM -2021/2022
Est-il possible de développer un SE qui joint le meilleur des deux mondes ?
On exige un système qui possède:
La possibilité d’extension (scalability) et ouverture (openness) des SER, et
La transparence et facilité d’utilisation des SED
Besoin d’une couche intermédiaire : MIDDLEWARE utilisée dans les SERs
Systèmes Distribués et Big Data Houda Benali 3838
Taxonomie des Systèmes distribués : Niveau SE
Notion d’intergiciel (Middleware) : motivations
Dans un système reparti, l’interface fournie par les systèmes d’exploitation est
encore trop complexe pour être utilisée directement par les applications.
Hétérogénéité
Complexité des mécanismes (bas niveau)
Nécessité de gérer (et de masquer, au moins partiellement) la répartition
Solution
Introduire une couche de logiciel intermédiaire (repartie) entre les niveaux bas
MP-SSR2–ISSATM -2021/2022
(systèmes et communication) et le niveau haut (applications) : c'est l’intergiciel
L'intergiciel joue un rôle analogue a celui d'un "super-système d'exploitation"
pour un système reparti
Systèmes Distribués et Big Data Houda Benali 3939
Taxonomie des Systèmes distribués : Niveau Application
Comment structurer l’application ?
3 niveaux (en anglais « tiers ») d’abstraction d’une application
typique:
1. Présentation (IHM)
Interaction de l’application avec l’utilisateur (doit être conviviale et
ergonomique)
2. Logique applicative/métier(traitements)
MP-SSR2–ISSATM -2021/2022
Tâches à réaliser avec l’application (locales/globales)
3. Données persistantes (SGBD)
Mécanismes permettant la gestion des informations stockées par
l’application
Systèmes Distribués et Big Data Houda Benali 4040
Taxonomie des Systèmes distribués : Niveau Application
« Où » découper l’application ?
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4141
Taxonomie des Systèmes distribués : Niveau Application
Modèle de communication Client/Serveur : le modèle de base le plus
dominant
Communication synchrone
Connexion permanente des 2 parties
Modèle primitif: par passage de messages
Modèle évolué: par appel de procédure/méthodes à distance
client-serveur "traditionnel": RPC
MP-SSR2–ISSATM -2021/2022
client-serveur "à objets" : RMI, Corba
client-serveur "de données"
Serveurs coopérants
Interface serveur unique
Systèmes Distribués et Big Data Houda Benali 4242
Taxonomie des Systèmes distribués : Niveau Application
Modèle de communication par événements: principes des canaux de
communication
Concepts de base: événements, réactions
Réaction: traitements associés à l’occurrence d’un événement
Principe d’attachement: association dynamique entre un nom d’événement et une
MP-SSR2–ISSATM -2021/2022
réaction
Communication anonyme: indépendance entre l’émetteur et les “consommateurs”
d’un événement
Deux modes « push » / « pull »
Exemple de domaine d’application : Diffusion de logiciels et d’informations sur le
web
Systèmes Distribués et Big Data Houda Benali 4343
Taxonomie des Systèmes distribués : Niveau Application
Modèle de communication par messages:
Mode de communication: Synchrone/Asynchrone
Routage de Message
par l’identité de l’application
Message Passing (communication par messages) : synchrone
Message Queuing (communication par file de message): asynchrone
par le contenu/sujet du message (Publish/Subscribe) : Asynchrone
Message Passing Message Queuing Publish/Subscribe
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4444
Taxonomie des Systèmes distribués : Niveau Application
Modèle de communication par code mobile :
définition: programmes pouvant se déplacer d’un site à un autre
Function shipping vs. Code shipping
Motivation
Rapprocher le traitement des données
Réduire le volume des données échangées sur le réseau
MP-SSR2–ISSATM -2021/2022
Caractéristiques
Code interprétable
Prendre en considération le problème de la sécurité
Exemple : Web/Javascript
Systèmes Distribués et Big Data Houda Benali 4545
Références
[1] Nathalie BUDAN, Benoit TEDESCHI et Stéphane VAUBOURG, Nouvelles Technologies Réseau:
Les réseaux peer-to-peer, Fonctionnement, exemples, limites, Cours Informatique Réseaux pour 3ème
année, 2003
[2] Djamel MESLATI, Systèmes distribués: principes et concepts, cours 1ère année master en
Informatique, Université Bedji Mokhtar, Annaba, 2010
[3] N. Le Thanh, Principes des systèmes d’exploitation, cours Systèmes distribués, Faculté de sciences –
UNSA, 1995
[4] Clarisse Rocher, Présentation en ligne: "Introduction aux systèmes distribués",
MP-SSR2–ISSATM -2021/2022
[Link]
[5] Marianne Dubourg, Présentation en ligne: "Rappels sur les systèmes d’exploitation",
[Link]
[6] Faïza NAJJAR et Nadia Ben Azzouna, cours Systèmes et applications répartis, ENSI, 2012/2013
Systèmes Distribués et Big Data Houda Benali 4646