20
1 Systèmes distribués Introduction Nabil Abdennadher [email protected] 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 GPS Embedded PC accelerometer sensor Front acceler sensor Citaro CAN interface Camera Camera

Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

1

Systèmes distribués Introduction

Nabil Abdennadher

[email protected]

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

Page 2: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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)

Page 3: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 4: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 5: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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]

Page 6: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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)

Page 7: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 8: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 9: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 10: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 11: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 12: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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.

Page 13: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 14: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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,...

Page 15: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 16: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 17: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 18: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 19: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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

Page 20: Systèmes distribués - lsds.hesge.ch · U1 U2 U3 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

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%)