Modélisation conceptuelle des Systèmes Distribués



Documents pareils
Systèmes et algorithmes répartis

Conception des systèmes répartis

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Le modèle client-serveur

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Introduction aux algorithmes répartis

Ebauche Rapport finale

Cours de Génie Logiciel

TD n o 8 - Domain Name System (DNS)

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Linux sécurité des réseaux

Master e-secure. VoIP. RTP et RTCP

WEA Un Gérant d'objets Persistants pour des environnements distribués

EAI urbanisation comment réussir?

Réplication des données

Hibernate vs. le Cloud Computing

Présentation du modèle OSI(Open Systems Interconnection)

Programmation parallèle et distribuée

Proxy et reverse proxy. Serveurs mandataires et relais inverses

MEAD : temps réel et tolérance aux pannes pour CORBA

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

WebSphere MQ & Haute Disponibilité

La haute disponibilité de la CHAINE DE

Chapitre 1 : Introduction aux bases de données

Transmissions série et parallèle

Redondance de service

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

L annuaire et le Service DNS

SafeKit. Sommaire. Un livre blanc de Bull Evidian

Fonctions de la couche physique

REALISATION d'un. ORDONNANCEUR à ECHEANCES

OASIS Date de publication

Introduction aux applications réparties

Chapitre 4 : Exclusion mutuelle

SYSTÈME DE GESTION DE FICHIERS

Agrégation de liens xdsl sur un réseau radio

Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

Université de La Rochelle. Réseaux TD n 6

L apprentissage automatique

Multicast & IGMP Snooping

Fiche de l'awt Intégration des applications

Algorithmique des Systèmes Répartis Protocoles de Communications

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

LES FICHES Domaines. Domaine D1. Travailler dans un environnement numérique

BeSpoon et l homme Connecté

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

INTERCONNEXION SECURISEE AVEC LA DOUANE SPÉCIFICATIONS POUR LES PARTENAIRES

Symantec Protection Suite Enterprise Edition Protection éprouvée pour les terminaux, la messagerie et les environnements Web

CA XOsoft. Suite logiciels. WANSync Solution de réplication des données en LAN ou WAN.

gestion des processus La gestion des processus

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Windows Internet Name Service (WINS)

CHAPITRE IX : Les appareils de mesures électriques

CLOUD CP3S SOLUTION D INFRASTRUCTURE SOUMIS À LA LÉGISLATION FRANÇAISE. La virtualisation au service de l entreprise. Évolutivité. Puissance.

Algorithmique répartie

Chapitre 9. Modélisation et implémentation d architectures multimédias ; application au cas de la visioconférence à qualité de service garantie

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Chapitre 2 Rôles et fonctionnalités

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Les diagrammes de modélisation

Rapport d'analyse des besoins

Réseau Global MIDI Note applicative

FAMILLE EMC RECOVERPOINT

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Les Réseaux sans fils : IEEE F. Nolot

Module BDR Master d Informatique (SAR)

Chapitre 10. Architectures des systèmes de gestion de bases de données

Tolérance aux fautes-2 Serveurs à haute disponibilité

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

LIVRE BLANC PRODUIT. Evidian SafeKit. Logiciel de haute disponibilité pour le clustering d application

Réseau longue distance et application distribuée dans les grilles de calcul : étude et propositions pour une interaction efficace

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Master d'informatique 1ère année Réseaux et protocoles. Couche physique

Présentation livre Simulation for Supply Chain Management. Chapitre 1 - Supply Chain simulation: An Overview

La (les) mesure(s) GPS

Fiche de l'awt La sécurité informatique

Fiche méthodologique Rédiger un cahier des charges

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Menaces et sécurité préventive

Présentation d'un Réseau Eole +

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

Annexe 5. Kaspersky Security For SharePoint Servers. Consulting Team

Guide d'initiation aux. certificats SSL. Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en ligne. Document technique

Qu'est-ce que le BPM?

Windows Server 2012 R2 Failover de serveurs DHCP

Gestion des utilisateurs et Entreprise Etendue

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

CA ARCserve Backup r12

CEG4566/CSI4541 Conception de systèmes temps réel

Administration des ressources informatiques

Données Réparties. Thibault BERNARD.

Fiche Technique. Cisco Security Agent

Référentiel C2i niveau 1 Version 2 :

GENERALITES. COURS TCP/IP Niveau 1

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Alcatel-Lucent 500 DECT Handset. Localisation and notification management Guide de Configuration

Transcription:

Modélisation conceptuelle des Systèmes Distribués Eric Cariou Master Technologies de l'internet 1 ère année Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1

Systèmes distribués Système distribué en opposition à système centralisé Système centralisé : tout est localisé sur la même machine et accessible par le programme Système logiciel s'exécutant sur une seule machine Accédant localement aux ressources nécessaires (données, code, périphériques, mémoire...) Système distribué : une définition parmi d'autres Ensemble d'ordinateurs indépendants connectés en réseau et communiquant via ce réseau Cet ensemble apparaît du point de vue de l'utilisateur comme une unique entité 2

Systèmes distribués Vision matérielle d'un système distribué : architecture matérielle Machine multi-processeurs avec mémoire partagée Cluster d'ordinateurs dédiés au calcul/traitement massif parallèle Ordinateurs standards connectés en réseau Vision logicielle d'un système distribué Système logiciel composé de plusieurs entités s'exécutant indépendamment et en parallèle sur un ensemble d'ordinateurs connectés en réseau Dans ce cours Conception logicielle des systèmes distribués Par défaut sur une architecture matérielle de type ordinateurs connectés en réseau 3

Introduction De par leur nature, les systèmes distribués sont dans un cadre différent par rapport aux systèmes centralisés Concurrence Les éléments formant le système s'exécutent en parallèle et de manière autonome Pas d'état ou d'horloge globale commune Points de problèmes de fiabilité en nombre accru Problème matériel d'une machine Problème de communication via le réseau Problème logiciel sur un des éléments du système Communication est un point crucial Potentiellement non fiable Temps de communication non négligeables 4

Transparences Transparence Fait pour une fonctionnalité, un élément d'être invisible ou caché à l'utilisateur ou un autre élément formant le système distribué Devrait plutôt parler d'opacité dans certains cas... But est de cacher l'architecture, le fonctionnement de l'application ou du système distribué pour apparaître à l'utilisateur comme une application unique cohérente L'ISO définit plusieurs transparences (norme RM-ODP) Accès, localisation, concurrence, réplication, mobilité, panne, performance, échelle 5

Transparence d'accès Transparences Accès à des ressources distantes aussi facilement que localement Accès aux données indépendamment de leur format de représentation Transparence de localisation Accès aux éléments/ressources indépendamment de leur localisation Transparence de concurrence Exécution possible de plusieurs processus en parallèle avec utilisation de ressources partagées Transparence de réplication Possibilité de dupliquer certains éléments/ressources pour augmenter la fiabilité 6

Transparences Transparence de mobilité Possibilité de déplacer des éléments/ressources Transparence de panne Doit supporter qu'un ou plusieurs éléments tombe en panne Transparence de performance Possibilité de reconfigurer le système pour en augmenter les performances Transparence d'échelle Doit supporter l'augmentation de la taille du système (nombre d'éléments, de ressources...) 7

Transparences Un système donné va offrir un certain nombre de transparences Souvent au minimum transparences de localisation, d'accès et de concurrence Système distribué ouvert Peut être étendu en nombre d'éléments matériels le constituant Possibilité d'ajouts de nouveaux services ou de réimplémentation de services existants au niveau logiciel Fonctionnement se base sur des interfaces d'interactions clairement définies 8

Algorithmique distribuée Si l'on veut développer des logiciels fiables et robustes dans un contexte distribué, il faut Tenir compte des spécificités des systèmes distribués Notamment les temps de communication et la multiplication des possibilités de pannes Développer des algorithmes dédiés aux systèmes distribués : but de l'algorithmique distribuée... Exclusion mutuelle distribuée Transaction distribuée Diffusion causale Vote, consensus 9

Algorithmique distribuée Algorithmique distribuée Développement d'algorithmes dédiés aux systèmes distribués et prenant en compte les spécificités de ces systèmes On y retrouve notamment des adaptations de problèmes classiques en parallélisme Exclusion mutuelle, élection (d'un maître)... Mais aussi des problèmes typiques des systèmes distribués Horloge globale, état global, diffusion causale, consensus... S'intéresse principalement à deux grandes familles de pbs Synchronisation et coordination entre processus distants Entente sur valeurs communes et cohérence globale dans un contexte non fiable (crash de processus, perte de messages...) 10

Algorithmique distribuée Les algorithmes distribués s'appuie sur des caractéristiques du système Caractéristiques des éléments formant le système Fiable, pouvant se planter, pouvant envoyer des messages erronés... Caractéristiques de la communication Fiable ou non fiable, temps de propagation borné ou pas... Un algorithme distribué se base donc sur un modèle de système distribué qui caractérise Les processus La communication Les pannes 11

Algorithmique distribuée Système distribué Ensemble d'éléments logiciels s'exécutant en parallèle On parlera de processus pour ces éléments logiciels Différences entre modèles de systèmes en algorithmique parallèle et distribuée Parallèle : sur une même machine Les processus ont accès à une mémoire locale commune Les processus s'exécutent par rapport à la même horloge Distribué : sur un ensemble de machines Pas de mémoire partagée commune Pas d'horloge commune Temps de propagation des messages entre processus distants est non nul 12

Modèles conceptuels de systèmes distribués Éléments de base d'un système Processus communiquant Canaux de communication On modélise un système distribué selon plusieurs dimensions Modèle d'interaction Modèle de fautes Modèle de sécurité Non traité dans ce cours 13

Processus Processus Élément logiciel effectuant une tâche, un calcul Exécution d'un ensemble d'instructions Une instruction correspond à un événement local au processus Dont les événements d'émission et de réception de messages Les instructions sont généralement considérées comme atomiques Il possède une mémoire locale Il possède un état local Ensemble de ses données et des valeurs de ses variables locales Il possède un identifiant qu'il connaît Pas ou peu de connaissance des autres processus du système et de leur état Les processus d'un système s'exécutent en parallèle 14

Canaux Canal de communication Canal logique de communication point à point Pour communication entre 2 processus Transit de messages sur un canal Caractéristiques d'un canal Uni ou bi-directionnel Fiable ou non : perd/modifie ou pas des messages Ordre de réception par rapport à l'émission Ex. : FIFO = les messages sont reçus dans l'ordre où ils sont émis Synchrone ou asynchrone Synchrone : l'émetteur et le récepteur se synchronisent pour réaliser l'émission et/ou la réception Asynchrone : pas de synchronisation entre émetteur et récepteur Taille des tampons de message cotés émetteur et récepteur Limitée ou illimitée 15

Canaux Caractéristique d'un canal Modèle généralement utilisé Fiable, FIFO, tampon de taille illimitée, asynchrone (en émission et réception) et bidirectionnel Variante courante avec réception synchrone Exemple : modèle des sockets TCP Fiable FIFO Bidirectionnel Synchrone pour la réception On reçoit quand l'émetteur émet Sauf si données non lues dans le tampon coté récepteur Asynchrone en émission Emetteur n'est pas bloqué quand il émet quoique fasse le récepteur 16

Canaux Performances d'un canal Latence Délai entre l'émission d'un message et sa réception Bande passante du réseau Nombre d'informations transitant par unité de temps La gigue Variation de temps pour délivrer des messages d'une série Important dans le cadre des données multi-média nécessitant des synchronisations Liaison canal/processus (canal uni-directionnel) Processus E Processus R Tampon Emission Tampon Réception canal 17

Modèles d'interaction Modèle d'interaction d'un système distribué Contient un modèle de canal Contient un modèle temporel : deux modèles principaux Système distribué synchrone : possède les 3 caractéristiques suivantes Le temps pour exécuter une étape du processus est compris entre une borne min et une borne max connues Un message émis est reçu dans un délai max connu L'horloge locale d'un processus dérive au plus d'une certaine durée connue et bornée du temps réel Système distribué asynchrone : il n'y aucune borne Sur la durée d'exécution d'une étape du processus Sur le délai de réception d'un message Sur la dérive de l'horloge locale d'un processus par rapport au temps réel 18

Synchrone / Asynchrone Un modèle synchrone est un modèle où les contraintes temporelles sont bornées On sait qu'un processus évoluera dans un temps borné On sait qu'un message arrivera en un certain délai On connaît la limite de dérive des horloges locales Un modèle asynchrone n'offre aucune borne temporelle Modèle bien plus contraignant et rendant impossible ou difficile la mise en oeuvre de certains algorithmes distribués 19

Modèle de fautes Modèle de fautes : 3 grands types de fautes ou pannes Franches : le processus ne fait plus rien Par omission : des messages sont perdus ou non délivrés Arbitraires ou byzantines : le processus renvoie des valeurs fausses et/ou fait «n'importe quoi» Cas de fautes les plus complexes à gérer Les autres fautes peuvent être considérées comme des cas particuliers des fautes byzantines Processus correct Processus non planté, qui ne fait pas de fautes Dans le cas où on considère les reprises après erreurs et la relance de processus : processus qui pouvait être incorrect précédemment mais qui est correct maintenant 20

Fautes par omission Fautes par omission Processus ou canal ne réalise pas une action Classification des fautes Fail-stop : un processus s'arrête et reste hors-service. Les autres processus peuvent détecter que ce processus est planté. Crash : un processus s'arrête et reste hors-service mais les autres processus ne peuvent pas détecter que le processus est planté. Omission du canal : un message positionné dans un tampon de sortie d'un processus n'arrive jamais dans le tampon d'entrée du destinataire Omission en émission : un processus envoie un message mais il n'est pas placé dans le tampon d'émission Omission en réception : un message est placé dans le tampon d'entrée d'un processus mais le processus ne le reçoit pas 21

Fautes arbitraires / byzantines Fautes arbitraires Appelées aussi fautes byzantines Fautes quelconques et souvent difficilement détectables Processus Calcul erroné ou non fait État interne faux Valeur fausse renvoyée pour une requête Canal Message modifié, dupliqué voire supprimé Message «créé» En pratique peu de fautes arbitraires sur les canaux car les couches réseaux assurent la fiabilité de la communication Fautes arbitraires : classement en 2 catégories Malicieuses : erreurs volontaires (virus, attaques...) Naturelles : problème non voulu, non déclenché 22

Fautes temporelles Fautes temporelles Uniquement pour un système distribué synchrone : dépassement des bornes temporelles Une étape du processus s'exécute en plus de temps que la borne prévue L'horloge locale dérive d'une valeur supérieure à la borne prévue Un message émis est reçu après un délai supérieur à la borne prévue 23

Détecteur de fautes Détecteurs de fautes Éléments associés aux processus «essayant» de déterminer l'état des autres processus Soupçon de fautes de la part d'un processus Généralement, on se base sur une communication fiable Messages non perdus Pouvant être asynchrone : temps de propagation quelconque Classification des caractéristiques des détecteurs Complétude (completeness) : un processus fautif est soupçonné de l'être par un autre processus Exactitude (accuracy) : un processus correct n'est pas soupçonné d'être en panne Deux variantes à chaque fois Forte : par tous les processus Faible : par au moins un processus 24

Classification détecteurs de fautes Complétude Forte : tout processus fautif finit par être soupçonné par tous les processus corrects Faible : tout processus fautif finit par être soupçonné par un processus correct Les deux complétudes sont équivalentes La faible implique la forte Localement, un détecteur gère la liste des processus qu'il soupçonne comme fautifs Les détecteurs s'échangent leurs listes via diffusion Au bout d'un certain temps, un processus soupçonné fautif sera référencé comme fautif par tous les processus Hypothèse valable si diffusion fiable Par principe, la forte implique la faible 25

Classification détecteurs de fautes Exactitude Forte : aucun processus correct n'est jamais soupçonné par aucun processus correct Faible : au moins un processus correct n'est jamais soupçonné par aucun processus correct Exactitude, versions plus faibles : vérifiée au bout d'un certain temps Finalement forte : au bout d'un certain temps, un processus correct n'est plus jamais soupçonné par aucun processus correct Finalement faible : au bout d'un certain temps, au moins un processus correct n'est plus jamais soupçonné par aucun processus correct Finalement : traduction de eventually Pourrait aussi utiliser : ultimement, inévitablement... Ces versions plus faibles sont vérifiées si les versions «totales» le sont 26

Classification détecteurs de fautes Au final, 8 combinaisons Exactitude Forte Faible Finalement Forte Finalement Faible Complétude Forte P S P S Faible Q W Q W P(erfect), S(trong), W(eak) Q(???) Mais complétude forte équivalent à la faible Reste donc 4 combinaisons, avec P qui implique S P qui implique S P qui implique P S qui implique S Détecteur parfait (fiable) : classe P Complétude et exactitude fortes 27

Réalisation de détecteurs de fautes Deux grands modes Actif : ping Un processus envoie périodiquement un message à un autre processus et attend une réponse de ce dernier Si réponse pas reçue avant un certain délai de garde, on considère le processus mort Passif : heartbreak Un processus diffuse périodiquement un message à tous les autres processus Si au bout d'un délai de garde, on a pas reçu un message d'un processus, on le considère comme mort En pratique, on combine souvent les deux Heartbreak en fonctionnement nominal Ping avec les processus qu'on soupçonne d'être morts 28

Réalisation de détecteurs de fautes Ex. pour un contexte de communication fiable Pour ne pas avoir problème de ne pas pouvoir différencier une perte de message d'un message non envoyé Système synchrone Peut construire un détecteur de fautes fiable (parfait) Grace au délai borné de réception des messages, on sait qu'on recevra un message dans un certain délai si le processus est vivant Système asynchrone Temps de propagation des messages non bornés Difficulté (voire impossibilité) de différencier un message lent d'un processus mort En pratique : choix important du délai de garde Trop petit : soupçonne avec erreur des processus Trop grand : temps long avant de détecter la mort d'un processus Détecteur parfait est non réalisable dans un système asynchrone Mais souvent on peut se contenter de détecteurs imparfaits 29