Cours Introduction aux Systèmes Distribués et Calcul Parallèle

Ce document contient une introduction générale au développement d'applications réparties, destiné aux étudiants de Master 1 Réseaux et Systèmes Distribués de l'Université Abdelhamid Mehri – Constantine 2. Il couvre les notions suivantes:

  • Programmation des sockets
  • Middlewares
  • Java RMI

Cours Introduction aux Systèmes Distribués et Calcul Parallèle

Télécharger PDF

Introduction générale

1. Notions préliminaires

 Logiciel : Un logiciel (Software) est défini comme un ensemble de programmes, de procédés, de règles, de documents relatifs au fonctionnement d’un ensemble de traitement de l’information.

 Application : Une application est un outil qui permet de réaliser une ou plusieurs tâches ou fonctions. Elle constitue une réponse à un problème spécifique en fournissant des services aux différents utilisateurs et utilisant des services globaux fournis par le système. C’est un amalgame usuel du terme logiciel (logiciel= application).

 Système : Un système est un ensemble d'éléments en interaction dynamique, dont les éléments sont organisés et coordonnés en vue d'atteindre un objectif, qui évolue dans un environnement. Un système se consacre à la gestion des ressources communes et l’infrastructure liée de manière étroite aux matériels sous-jacents. En d’autres termes, un système cache la complexité du matériel et des communications, fournit des services communs de plus haut niveau d’abstraction.

Exemple:

 Système d’exploitation OS

 Système de communication

 Système industriel…

 Un service est un comportement défini par contrat, qui peut être implémenté et fourni par un composant et peut être utilisé par un autre composant, sur base exclusive du contrat.

Mise en œuvre

 Un service est accessible via une ou plusieurs interfaces

 Une interface elle décrit l’interaction entre client et fournisseur du service

 Point de vue opérationnel: définition des opération et structures de données nécessaires à la réalisation du service

 Point de vue contractuel: définition du contrat entre client et fournisseur

 L'informatique s'est initialement développée autour du concept des systèmes centralisés où un ordinateur central gère et contrôle tous les composants du système. Ces derniers ne communiquent entre eux qu'à travers la machine centrale.

 Les systèmes centralisés ont ensuite évolués vers le concept du modèle Client / Serveur où les clients sont attachés au serveur par réseau au travers de logiciels dédiés.

 Par la suite, l’évolution du monde des réseaux informatiques a participé fortement à l’essor rapide des systèmes distribués.

Systèmes Distribués

Classification générale des systèmes informatiques

Systèmes Informatiques

Systèmes centralisés

Systèmes distribués

L’évolution des systèmes (Histoire)

 Le système centralisé (70)  Calcul

 Consoles de connexion

 Liaison série

 Le client/serveur (80)

 Gestion de données simples  Distribution des données

 Emulation de terminaux

 Réseau propriétaires

 Le "fat" client (90)

 Gestion interactive des données  Clients graphiques

 Réseaux locaux

• Le Web (95)

• Approche information

• Clients documentaires

• Réseau Internet

• Les objets distribués (00)

• Approche métiers

• Clients hétérogènes / Machine Virtuelle

• Réseau haut-débits

• Le code mobile (05)

• Approche dynamique

• Collaboration de machines

• Réseaux intelligents et interactifs

Les systèmes de calculs distribués

Les clusters :

 Ensemble de nœuds identiques ayant le même OS

 connectés par un réseau local high speed (ex : InniBand)?

 Architecture caractérisée par une certaine homogénéité

 Utilisés pour la programmation parallèle : un même programme est exécuté en parallèle sur plusieurs machines (SPMD).

Les grilles :

 Système d'un ensemble de machines qui sont ou pas dédiées

 Machines peuvent être éloignées (distribution physique)

 Architectures hétérogènes : au niveau hardware, système, calcul, données, applications, etc.

Types de grilles :

 Desktop Grid

 Resource Grid

 Service Grid

Systèmes orientés données

 Les systèmes à base de transactions : systèmes de gestion de bases de données distribués.

 Les EAI (Enterprise Application Integration) : coordination de différents systèmes

 Systèmes coopératifs

 Midleware : gestion coordonnées de systèmes

 WEB Services : accès à des serveurs distants

Propriétés

 Nœuds fixes

 Nœuds fiables : peu de fautes

 Connexion permanente et de haute qualité

Les systèmes mobiles et "pervasifs"

Exemples

 Ordinateurs portables, téléphones, etc.

 Robots, drones, etc.

 Réseaux de capteurs : collecte dans un environnement, surveillance médicale, ...

 Réseaux particuliers : domotique, réseaux had-hoc, ...

Propriétés

 Instabilité

 Nœuds peuvent apparaître/disparaître

 Pas toujours de connexion réseau

 Mobilité des nœuds

Systèmes peu traités dans ce cours

Cloud Computing

L'informatique en Nuage" est un terme assez vague possédant différentes significations, qu'elles soient extrêmement ciblées ou plus larges jusqu'à englober l'internet.

 L'US National Institute for Standards and Technology a fourni l'une des définitions les plus claires et les plus communément admises :

" L'informatique en nuage est un modèle pratique, à la demande et universel, permettant d'établir un accès par le réseau à un réservoir partagé de ressources informatiques configurables (par exemple, réseaux, serveurs, stockage, applications et services) qui peuvent être rapidement mobilisées et mises à disposition en minimisant les efforts de gestion et les contacts avec le fournisseur de services"

2. Systèmes centralisés

 Les composants du système sont localisés sur la même machine et accessibles par le programme.

 Centralisation des données, des traitements et de la présentation (Interface Hommes Machines)

• Les ressources sont centralisées.

• Exp: les moyens de stockage

Terminaux légers

Données

Traitements IHM (données, fichiers), la charge CPU, les utilisateurs, les traitements ... etc.

2.1 Intérêt des systèmes centralisés

 Des économies d’échelle : La centralisation offre des opportunités de concentration et de mutualisation de ressources.

 Un tel partage engendre une meilleure rentabilité des investissements, accélère le financement et améliore l’organisation lorsqu’une évolution ou une installation d’un nouveau composant (logiciel ou matériel) devra être faite, ceci est réalisé tout en maintenant les composants existants.

 Accessibilité et sécurité simplifiées :

 La centralisation favorise l’accessibilité à l’information.

 La mise en œuvre des techniques de sécurité (i.e. les droits d’accès) est simplifiée.

2.1 Intérêt des systèmes centralisés

 L’unicité de l’information : La centralisation offre aussi une facilité de mise en œuvre d’un référentiel global, ce qui garantit l’unicité de l’information et simplifie les contrôles d’intégrité. Ainsi, les vérifications des différentes versions, d’unicité de clé, de la cohérence globale, d’autres propriétés peuvent être accomplies en temps réel.

 Une information exhaustive et pertinente : La centralisation favorise l’acquisition et l’enrichissement des connaissances du système. Ainsi, elle facilite l’indexation des contenus ce qui accrois la pertinence des résultats de recherche.

 Contrôle et traitement efficaces.

2.2 Caractéristiques des systèmes centralisés

Lorsqu’on parle des systèmes centralisés, toutes les caractéristiques se focalisent autour d’une même machine:

 Centralisation de données: maintenance, une meilleure protection et maintient la cohérence et l’intégrité des données.

 Centralisation des traitements : maintenance, unicité des versions déployées (un seul site à mettre à jour…), diminue le trafic du réseau de l’application elle-même.

 Centralisation des utilisateurs (présentations) : meilleure façon de connaître et d’identifier les utilisateurs. Cette relation de proximité facilitera d’une part l’assistance aux utilisateurs et d’autre part leur formation.

 L’existence d’un état global et cohérent.

 L’existence d’une Horloge globale ce qui implique un ordre total des taches.

2.3 Limites des systèmes centralisés

 Malgré les points forts qu’offre la centralisation, elle présente certaines limites, à savoir :

 Si le serveur central tombe en panne le système entier n’est plus fonctionnel

 La qualité du traitement est fortement liée à la qualité de l'administration et des ressources fournies à ses utilisateurs

 Si l'ordinateur ou le serveur central est mal soutenu (logiciel, matériel…) , l'utilisation du système peut dysfonctionner

 ….

3. Systèmes distribués

 Un système distribué est en opposition avec un système centralisé

 La problématique de la répartition (distribution) est née avec le besoin de faire communiquer plusieurs ordinateurs via un réseau de communication ainsi que pour le partage de ressources

 Un système distribué est un ensemble d'ordinateurs autonomes connectés sur un réseau et communiquant à travers ce réseau

 Du point de vu utilisateur, cet ensemble apparaît comme étant une seule entité

Terminologie

Système Réparti / Distribué / Parallèle

 System répartie/distribué

 Employés indifféremment

 Un seul mot en anglais « Distributed »

 Système parallèle

 Considérer comme un cas particulier des systèmes distribués où tout les composants ont des rôles semblables.

 Il est composé d’un ensemble de processus situés sur la même machine, s’exécutant par rapport à la même horloge et qui ont accès à une mémoire locale commune.

3.1 Définition : Système Distribué

« Un système distribué est une collection d’ordinateurs indépendants qui apparaissent à l’utilisateur comme un seul système cohérent » Tanenbaum et Van Steen [2002]

3.1 Définition : Système Distribué suite…

 C’est un ensemble d’ordinateurs indépendants qui apparait à l’utilisateur comme un système unique et cohérent

 Composé de plusieurs systèmes de calcul autonomes (sinon, non réparti)

 Sans mémoire physique commune (sinon c'est un système parallèle, cas dégénéré)

 Communiquent par l’intermédiaire d’un réseau (quelconque)

 Utilisant des message pour communiquer

Exemple : Système Distribué

Machines , personnes, processus, “agent”, ... Localisés à des endroits différents

Exemple : Système d’objets connectés

Autres Attributs des systèmes distribués par l’exemple

3.2 Les domaines d'application des systèmes distribués

 Mathématique, algorithme 🡪 "puissance" de calcul

 Innovations (agents, collaboration, IA, …)

 Systèmes d'information d'entreprise

 Les particuliers : partager ses données, jeux, accès et collaboration de services communs, …

 Sites Internet : un site est un lieu de partage de l'information et de distribution de service…..

 et bien d'autres à venir ….

Le monde des systèmes informatiques répartis et distribués sont en constantes évolutions : les réseaux évolues, les techniques logicielles sont en constantes révolutions, la prolifération du logiciel libre accentue cette évolution, les performances sont en constante croissance. (Système de systèmes, IoT et Cloud Computing)

3.3 Objectifs d’un Système distribué

Un système distribué vise à atteindre les objectifs généraux suivants:

 Assurer un meilleur rapport coût/performance (Aspects économiques)

 Permettre une adaptation de la structure d’un système à celle des applications (géographique ou fonctionnelle)

 Besoins d’intégration des applications existantes

 Besoins de partage: Partage de ressources (programmes, données, services).

 Réalisation de systèmes à haute disponibilité

 Réalisation de systèmes à grande capacité d’évolution

3.3 Objectifs d’un Système distribué

 En outre, des objectifs spécifiques aux applications distribuées sont à mentionner, tels que:

 Pouvoir proposer des méthodologies et des outils pour simplifier le développement d’application réseau client/ serveur, en faisant abstraction de l’aspect distant, autrement dit proposer une programmation naturelle

 Décomposer les applications en un ensemble de services

 Rationnaliser la répartition des services pour limiter les échanges d’informations

3.4 Les concepts des systèmes Distribués

Un système distribué se distingue d’un système centralisé :

1. PAS D'ETAT GLOBAL

2. PAS D'HORLOGE GLOBALE

3. FIABILITE RELATIVE

4. SECURITE RELATIVE

5. NON DETERMINISME

1. Pas d'état global :

un nœud ne possède pas une connaissance immédiate exacte de l'état d'un autre nœud car cette connaissance passe par l'échange d'un message qui introduit obligatoirement un délai

=> Recherche d'algorithme qui permettent de construire des clichés globaux qui représentent un état passé possible de l'application

1. Pas d'état global

Problème

 P3 veut savoir si P1 ou P2 ont ouvert des fichiers?  Connaissance instantanée impossible…

Un processus ne peut pas connaitre instantanément l’état courant de ses paramètres….

1. Pas d'état global

délai

 Pas d'état global : délai

délai

2. Pas d'horloge global :

horloge propre à chaque nœud (ordinateur) pas de synchronisation des horloges

=> L'ordre des évènements répartis dans l'application n'est pas déductible à partir des datations locales

=> Définition des datations logiques…

2. Pas d'horloge global

 Chaque nœud possède sa propre horloge pour dater les événements qui lui sont locaux

 Par conséquent, si les horloges indépendantes de chaque nœud ne sont pas parfaitement synchronisées, l’ordre des événements répartis dans l’application n’est pas déductible à partir des datations locales.

Solution :

 Des mécanismes de datation logique

2. Pas d'horloge global

Ils existent 2 horloges date(e1) < date (e2) 🡪 e1 avant e2 Si les horloges parfaitement synchronisées

Pas de référentiel temporel unique

3. Fiabilité relative :

 Tolérance à la panne d'un nœud par des moyens de réplication et de délocalisation

 Maîtriser et rendre robuste de telles architectures demandent de gros efforts informatiques qui ne sont pas souvent faciles

Le risque de défaillance d'un nœud augmente avec leur nombre

4. Sécurité relative :

 Difficulté de protéger une architecture répartie contre les intrusions

 Les points d'accès aux ressources sont souvent « hors des murs » demande donc une authentification

 Les nœuds peuvent être dynamiques (re localisation)

🡪 architecture réseau variable donc difficile à protéger

 Apparition massif des machines portables accroît cette fragilité

5. Non déterminisme :

 Une application réparti est une application asynchrone (sens indépendance) : les nœuds s'exécutent en parallèle et chaque nœud peut lui même comporter plusieurs activités parallèles (processus, threads)

 Il existe ainsi un non déterminisme, une non reproductibilité et une explosion combinatoire des états (difficultés classiques de la programmation parallèle asynchrone: jetons, "synchronized", …)

FAQ

Qu'est-ce qu'un système distribué ?

Un système distribué est un ensemble d'ordinateurs autonomes connectés sur un réseau et communiquant à travers ce réseau. Du point de vue utilisateur, cet ensemble apparaît comme étant une seule entité.

Quels sont les avantages des systèmes centralisés ?

Les systèmes centralisés offrent des économies d’échelle, une meilleure rentabilité des investissements, une accessibilité et sécurité simplifiées, l’unicité de l’information, une information exhaustive et pertinente, ainsi qu’un contrôle et traitement efficaces.

Quelles sont les limites des systèmes centralisés ?

Les systèmes centralisés présentent certaines limites, notamment la panne du serveur central qui rend le système entier non fonctionnel, la qualité du traitement liée à l'administration et aux ressources fournies, et la possibilité de dysfonctionnement si l'ordinateur ou le serveur central est mal soutenu.



Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne

Publicité 1