Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
Systèmes distribués Introduction
Nabil Abdennadher
http://lsds.hesge.ch/distributed-systems/
2015/2016 Semestre d’Automne
2
Aujourd’hui les réseaux et les SDI sont partout …
! Réseaux ad hoc, contrôle de processus industriels : voitures, avions, etc.
! Réseaux d’objets : Internet des objets (IoT)
Rear acceler. sensor
GPSEmbedded
PC
Wi-Fi
Tablet PC
accelerometer sensor
Front acceler sensor
Citaro CANinterface
Camera
Camera
3
Aujourd’hui les réseaux et les SDI sont partout …
! Télécommunications (mobile networks) ! Transmissions de données multimédia
4
Aujourd’hui les réseaux et les SDI sont partout …
! Clusters, machines parallèles (High Performance Computing)
Smart-hepia
" Source : lsds-rg.org/smarthepia 5
Smart-hepia
6
� Capteurs Z-Wave
� Contrôleur Z-Wave
� Serveur Rest du réseau Z-Wave
Un système distribué ne signifie pas “réseau”, ...
Un système distribué = réseau + d’autres ingrédients
Réseaux vs. Systèmes distribués " Le réseau est un “media” pour :
" interconnecter des ordinateurs locaux et distants " s’échanger des messages en respectant des protocoles.
" Les composantes d’un réseau ont des adresses IP. " Les réseaux s’intéressent aux packets, routage, etc.
" Un système distribué: un réseau + une couche logicielle " Les systèmes distribués s’intéressent aux applications. " Ils reposent sur les services du réseau
Définition (1) …
" “A system in which hardware or software
components located at networked computers
communicate and coordinate their actions only
by message passing.” [Coulouris]
# On peut étendre cette définition pour les
“sensors” (même s’ils ne peuvent pas être
considérés comme des “ordinateurs”)
Définition (2) …
" “A distributed system is a collection of independent
computers that appear to the users of the system
as a single computer.” [Tanenbaum]
Définition (3) …
" "A distributed system is one on which I cannot
get any work done because some machine I
have never heard of, has crashed.��[Lamport]
Pourquoi distribuer ? (1)
" Séparation fonctionnelle: # Les ordinateurs ont des configurations et des capacités
différentes: " Clients et serveurs " “Data collection” et “data processing”
" Distribution inhérente au « système »: # Information créée et mise à jour par des personnes
différentes (Web pages, etc.) # Ressources humaines: plusieurs personnes travaillent sur
la même tâche (virtual organisations)
Pourquoi distribuer ? (2)
" Equilibrage de charge (load balancing) pour garantir la qualité de service (QoS)
" Reliability: Data backup (réplication). " Economie:
# Partage de ressources : imprimante partagée # Construire à partir de l’existant.
Caractéristiques des systèmes distribués (1)
" Activités parallèles # Composants autonomes exécutant des tâches
concurrentes " Communication par transmission de messages ou
appels de procédures distantes # Mémoire distribuée et non partagée
" Pas d’état global # Les processus n’ont pas de vision globale du système
" Pas d’horloge globale # Pas possible de synchroniser les horloges de manière
précise
15
" Autonomie # Chaque composant a sa propre « unité de contrôle » et sa
propre mémoire
" Hétérogénéité # OS, CPU, architecture, couche de communication
" Asynchronisme # Résultat de l’absence d’une seule horloge, de l’hétérogénéité
et de l’autonomie
" Volatilité # Résultat de l’autonomie
Caractéristiques des systèmes distribués (2)
16
Processeurs autonomes/non autonomes
UC2
P3 P2 P1
Réseau de Communication
UC1 UC3
Processeurs autonomes
P2
Réseau de Communication
Unité de contrôle
P1 P3
Processeurs non autonomes
P : Processeur UC : Unité de Contrôle
17
Exemple de machine avec des processeurs non autonomes
" Une seule unité de contrôle, plusieurs Unités de calcul " A un instant donné : La même instruction est exécutée
sur plusieurs données différentes.
C
U3 U2 U1
Réseau de Communication
Mémoire
C : Unité de Contrôle U : Unité de Calcul
Machines SIMD (GPU par exemple)
18
Mémoire Partagée/Mémoire Distribuée
P2
M3 M2 M1
Réseau de Communication
P1 P3
Mémoire Distribuée
P2
Réseau de Communication
Mémoire Partagée
P1 P3
Mémoire Partagée
P : Processeur M : Mémoire
Les challenges (1)
" Hétérogénéité # Les composants hétérogènes doivent être capables de
« travailler » ensemble
" Transparence de la distribution # Cacher la distribution des données et des traitements
" Tolérance aux fautes # Une panne d’un composant ne doit pas entraîner une panne
générale. Le système doit fonctionner en mode dégradé " Scalability
# Le système doit pouvoir se redimensionner en fonction : " des besoins " des nouvelles ressources intégrées au système
Les challenges (2)
" Openness (ouverture) # Des interfaces doivent être disponibles pour inclure de
nouveaux composants " Sécurité
# Le système doit être utilisé seulement pour ses fonctions prévues
Hétérogénéité
" Les composants hétérogènes doivent être capables d’interagir # OS, # Architecture matérielles # Architecture réseau # Langage de programmation # Software interfaces # Politiques de sécurité # Présentation de l’information
Transparence de la distribution (1)
" Transparence vis à vis de l’accès et de l’emplacement # Accès identique en local ou à distance # Ex. séparation entre les noms de domaine et les
adresses des machines " Transparence vis à vis des pannes
# Le travail est fait malgré les erreurs et les pannes # Ex: retransmission des messages.
" Transparence vis à vis de la réplication " Transparence vis à vis de la migration
Transparence de la distribution (2)
" Transparence vis à vis de la concurrence " Transparence vis à vis de la performance " Transparence vis à vis du “dimensionnement” (scalability) " Transparence au niveau applicatif
Fault Tolerance (Tolérance aux pannes)
" Panne (failure): service non compatible avec sa spécification
" Erreur (fault): cause de la panne " Tolérance aux pannes (fault tolerance): pas de
panne malgré les erreurs.
Mécanismes de tolérance aux pannes
" Détection d’erreurs # Checksums, heartbeat, …
" Masquage des erreurs # Retransmission des messages corrompus,
redondance, … " Fault recovery
# Rollback mechanisms,…
Scalability (dimensionnement)
" Le système doit fonctionner efficacement lors du passage à l’échelle
" Le système doit rester performant lorsque le nombre d’utilisateurs ou de ressources augmente
" Challenges : # Performance
" La complexité de l’algorithme ne doit pas dépasser un certain seuil lorsque la taille des données augmente.
# Eviter les goulots d’étranglement " Utiliser des algorithmes décentralisés
Concurrence
" Offrir et gérer les accès concurrent aux ressources partagées: # Garantir un ordonnancement « juste » et performant # Eviter les inter blocages
Ouverture et interopérabilité (Openness and Interoperability)
" Open system: "... a system that implements sufficient open specifications for interfaces, services, and supporting formats to enable properly engineered applications software to be ported across a wide range of systems with minimal changes, to interoperate with other applications on local and remote systems, and to interact with users in a style which facilitates user portability" (Guide to the POSIX Open Systems Environment, IEEE POSIX 1003.0)
" Open spec/standard developers - communities: # ANSI, IETF, W3C, ISO, IEEE, OMG, Trade associations,...
Sécurité (1)
" Les ressources sont accessibles aux utilisateurs autorisés, elles sont utilisées selon ce qui est convenu
" Confidentialité # Protection contre la divulgation non autorisée de
l’information
" Intégrité # S’assurer que les données transmises n’ont pas été
modifiées
Sécurité (2)
" Disponibilité # Protéger contre les attaques # Ex. denial of service (DoS, DDoS) attacks
" Non-repudiation # Preuves d’envoie/réception de messges # Ex. Signature électronique
Mécanismes de sécurité
" Cryptage # E.g. Blowfish, RSA
" Authentification # Ex. password, public key authentication
" Authorisation
32
" Comment faire communiquer les processus ? # Par échange de messages
# Exemple : MPI # Par appel de procédures distantes
# Exemple Java RMI (Remote Method Invocation)
# Par mémoire partagée
Paradigmes de programmation des systèmes distribués
33
Echange de messages
P2
M3 M2 M1
Réseau de Communication
P1 P3
34
Appel de procédures distantes
Pl M1.Ph () M2.Pi ()
Ph M1.Pj ()
M1
Pi M2.Pk ()
Pk M2.Pj ()
M2
Pj M1.Ph ()
Retour de la procédure Appel de procédure
O1 O2
35
Mémoire partagée
P2
Réseau de Communication
Mémoire Partagée
P1 P3
P : Processeur M : Mémoire
Put (Ecriture) Get (Lecture)
36
Ce que ce cours n’aborde pas
" Technologies des réseaux de communication " Protocoles de communication " Hypothèse de travail :
# Le réseau est opérationnel
37
Ce que ce cours aborde
" Algorithmes distribués implémentés au dessus des réseaux # Objectif : concevoir une boite outil nécessaire pour
mettre en place un système distribué " Environnements de développement utilisés pour
développer des applications distribuées
38
Infrastructure
39
Plan du cours
" Voir ce lien : " http://lsds.hesge.ch/distributed-systems/
40
Epreuves et évaluation
" 1 épreuve théorique : 35% " Plusieurs travaux pratiques : 30 % " Projet : PR (35%)