Vous êtes sur la page 1sur 27

Université des Sciences et Technologies Houari Boumediene

Faculté d’Informatique

Introduction aux systèmes


distribués
Historique et motivation

• 1985: des machines à taille conséquente à des prix exorbitants


• Absence de communication entre ces machines
• Évolution des microprocesseurs
• Apparition des réseaux LAN et WAN
• Miniaturisation

 Systèmes composés d’unités de calcul puissantes


géographiquement dispersés mais reliés par des liens de
communication
 Naissance des systèmes distribués
Définition d’un système distribué
Un ensemble d’entités autonomes ou indépendantes qui apparaissent pour l’utilisateur comme un seul
système cohérent

Deux aspects

Un ensemble d’entités autonomes


Un seul système cohérent
• Supporte tous types de nœuds qui fonctionnent
indépendamment les uns des autres mais: • Abstraction de la distribution
• Les nœuds sont programmés pour assurer des taches • Notion de transparence
communes • Distribution=> pannes=> comportement
• Absence de la notion d’horloge globale (problèmes anormal
de synchronisation et de coordination)
• Un ensemble=Gestion de groupes
• Groupe privé vs groupe public
• Mécanismes d’admission des membres
• Notion de topologie logique
• Structurée vs non structurée
• Ex: Réseaux P2P
Architecture d’un système distribué
Architecture
• La couche intermédiaire offre la même interface à toutes
les machines afin d’assurer la collaboration et
l’interopérabilité
• Le middleware pour les systèmes distribués est comme le
système d’exploitation pour les machines, c’est un
gestionnaire de ressources pour les différentes
applications qui communiquent
• La seule différence c’est que le middleware opère dans
un milieu distribué
• En plus des autres services comme: Facilté de
communication, sécurité, gestion des comptes, prise en
charge des pannes.
• Quelques exemples de middleware:
• Communication: Remote Procedure Call
• Transaction: atomic
• Composition de services: Web-services
• Fiabilité: Horus Tollkit (les messages sont envoyés
à tous les processus ou aucun)
Deux points de vue: physique et logique

Physique: ensemble de nœuds géographiquement distribués


qui communiquent à travers un réseau physique
Logique : un ensemble de processus concurrents qui
communiquent à travers des canaux
Connectivité
• Connectivité totale
• Mise en échelle difficile scalabilité
• Délai de transmission faible
• Tolérant aux pannes
• Connectivité partielle
• Etoile (C/S)
• La panne du nœud central provoque l’arrêt du
système
• Bus
• La panne du canal principal empêche les nœuds de
communiquer
• Mise en échelle difficile car le canal va se
congestionner
• Arbre
• Mise échelle possible
• Complexité d’implémentation
• Anneau
• L’ajout de nouveaux nœud dégrade le délai de
communication
• Non tolérant aux pannes
modèles d’un système distribué
• Modèle en couche
• Modèle basé Object
• Modèle basé données
• Modèle basé évènements
• Modèle basé espace de données partagées
Conception d’un système distribué

• Le partage des ressources disponibilité des ressources


• Transparence de la répartition 8 points a régler
• Ouverture
• La mise en échelle scalabilité
. sécurité
. gestion de foutes
Le partage de ressources

• Périphériques, stockage, données, fichiers, services..etc


• Raison économique (un seul espace de stockage vs plusieurs
espaces de stockage)
• Collaboration
• Partage de l’espace mémoire, de périphériques… : ex
Amazone Cloud
• Partage de logiciels : ex Google Sheet
• Partage de fichiers: ex Les réseaux P2P. Ex BiTorrent
La transparence
• Un aspect très important dans les systèmes distribués
• Différents types de transparence: Accessibilité, emplacement,
migration, duplication, concurrence, pannes
Degré de transparence
Vouloir assurer une transparence totale n’est peut etre pas une bonne solution:
• Les utilisateurs peuvent être dans différents continents
• Les messages prennent en Moyenne 100ms pour atteindre leurs destination

• Il y’a un compromis entre un degré elevé de tranparence et les performances du système


• Ex1: Les application peuvent contacter un serveur en panne et repetent l’operation
plusieurs fois ce qui ralenti le fonctionnement alors qu’il valait mieux abandoner et
passer a un autre serveur
• Ex2: Mise à jour des replicas pour assurer la coherence peut prendre du temps

Discussion
• La transparence totale ne peut pas etre assurée à tous les coups
• Il est peut être préférable de profiter de la distribution plutôt que de la cacher (Ex: les
application de geoloclisations pour trouver des lieux ou des amis proches…etc)
L’ouverture

Être capable d’intéragir avec d’autres systèmes ouverts en respectant les


points suivants:

• Le système doit être Interopérable


• Définir les services à travers des interfaces (utiliser IDL)
• Un langage qui permet de faire communiquer des modules implémentés
dans des langages différents, ou déployés à travers un réseau sur des
systèmes hétérogènes.
• Le système doit comporter des applications portables
• Le système doit être extensible (Ex: pouvoir ajouter des parties qui
s’exécutent sur différents systèmes ou remplacer des parties du système)
La mise en échelle
Trois categories:
Nombre d’utilisateurs/processus/noeuds (size scalability)
Distance maximale entre deux noeuds (geographical scalability)
Nombre de domaines administratives (administrative scalability)

Remarque:
• La majorité des systèmes s’intéressent à la 1e catégorie (serveurs
puissants)
• Le challenge aujourd’hui c’est d’assurer la mise en échelle
géorgraphique et administrative
La mise en échelle: les mécanismes
Augmenter les performances des serveurs n’est plus suffisant!
Améliorer le délai de communication
• Utiliser la communication asynchrone
• Déplacer une partie du calcul au niveau du client
Problème: Certains applications ne peuvent pas implementer ces mécanismes
Partitionner les données et les calculs sur de multiples machines
• Les services de nommage décentralisés (DNS) (diviser l’espace de nommage
en plusieurs zones)
• Le World Wide Web (WWW)
Dupliquer les données sur différentes machines
• Duplication des fichiers et des bases de données
• Les site web mirroirs
• Les caches Web
DNS réparti : Comment résoudre flits.cs.vu.nl ?
Discussion
Les techniques de mise en échelles sont intéréssantes mais :
• Avoir plusieurs copies=> incoherence
• Mise à jour => Synchcronisation globale
• Compromis entre coherence des données et synchronization globale
• Tolérer l’incoherence?
Types des systèmes distribués

• Systèmes de calcul de haute performance


• Systèmes pervasives
• Système d’information distribués
Systèmes de calcul de haute performance

Trois catégories
• Les clusters (clusters)
• Les grilles d’ordinateurs (grid computing)
• Le cloud computing
Les clusters
• Un groups de noeuds homogènes connectés à travers un réseau
• Les nœuds sont situés dans un même emplacement physique, tels qu'un
centre de données.
• Les nœuds sont gérés de manière centralisée et optimisés pour des
performances maximales par un nœud chef (clusterhead)
• Les clusters permettent de résoudre des problèmes complexes en
fractionnant les calculs en plusieurs tâches parallèles, qui sont ensuite
exécutées simultanément sur plusieurs nœuds de calcul.
• Cela permet d'accélérer considérablement le temps nécessaire pour
effectuer des simulations et des analyses complexes, ce qui est essentiel
dans de nombreuses disciplines scientifiques et techniques.
• .
Les grille d’ordinateurs

• Une grille de calcul est un réseau distribué de ressources


informatiques géographiquement dispersées.
• Il peut s'agir de nœuds de calcul situés dans différents centres de
données, laboratoires ou même chez des particuliers.
• Les ressources de la grille ne sont pas nécessairement optimisées
pour la haute performance, et elles peuvent être hétérogènes en
termes de matériel et de capacités.
• La gestion d'une grille de calcul est plus complexe car elle implique
la coordination de ressources hétérogènes.
• Des protocoles et des logiciels de gestion de grille, tels que Globus
Toolkit, sont utilisés pour coordonner et distribuer les tâches sur les
ressources disponibles.
Le cloud computing
• Fournit des services informatiques via Internet, ce qui permet aux utilisateurs
d'accéder à des ressources informatiques à la demande sans avoir à posséder
ni à gérer leur propre infrastructure matérielle
• Il existe trois principaux modèles de service cloud :
• Infrastructure as a Service (IaaS) : Fournit des ressources informatiques
virtualisées, telles que des serveurs, des réseaux et du stockage.
• Platform as a Service (PaaS) : Offre une plateforme de développement
complète avec des outils pour créer, déployer et gérer des applications sans
se soucier de l'infrastructure sous-jacente.
• Software as a Service (SaaS) : Fournit des applications logicielles
accessibles via le cloud, telles que la messagerie électronique, la gestion de
projet, la gestion de la relation client (CRM), etc.
Systèmes ubiquitaires

• Nouvelles génération des systèmes distribués caractérisés par des nœuds de


petite taille, mobiles, embarqués dans des systèmes …etc
• Ces systèmes sont intégrés dans l'environnement quotidien de manière
discrète et omniprésente, de manière à rendre l'informatique presque
imperceptible et naturelle pour les utilisateurs.
• L'objectif principal de ces systèmes est de faciliter et d'améliorer la vie
quotidienne en intégrant la technologie de manière transparente dans notre
environnement.
• Les systèmes ubiquitaires ont des applications dans divers domaines,
notamment la domotique (maisons intelligentes), la santé (dispositifs
médicaux connectés), la gestion des transports (véhicules autonomes), la
logistique, l'industrie , l'environnement, l'agriculture intelligente, etc.
Système d’information distribués
• conçu pour gérer des transactions individuelles, souvent de courte durée et à
haute fréquence, dans le cadre d'une entreprise ou d'une organisation
• Ces transactions peuvent inclure la création, la modification, la consultation
ou la suppression de données dans une base de données ou un système
d'information.
• Les systèmes transactionnels sont essentiels pour la gestion quotidienne des
opérations commerciales
• Exemples de systèmes transactionnels courants :
• Systèmes de Gestion de Bases de Données (SGBD)
• Systèmes de Points de Vente (POS)
• Systèmes Bancaires et Financiers
• Systèmes de
• Systèmes de Gestion des Stocks
• Systèmes de Suivi de Commandes

Vous aimerez peut-être aussi