- Distribution des données
- Caractéristiques des systèmes distribués
- Compatibilité
- Tolérance aux pannes
- Middleware et API
- Architecture
- Architecture client-serveur
- Architecture peer-to-peer
- Architectures multi-niveaux
- Architecture du groupe de processeurs
- Types de systèmes distribués
- Informatique en cluster
- Informatique en réseau
- Cloud computing
- Objectifs
- Partager des ressources
- Abstraction
- Ouverture
- Interopérabilité et portabilité
- Évolutivité
- Applications
- Machine virtuelle Erlang
- Bittorrent
- avantage
- Désavantages
- Exemples de systèmes distribués
- StackPath
- l'Internet
- Références
Les systèmes distribués sont des logiciels utilisés pour coordonner les actions de plusieurs ordinateurs. Cette coordination est réalisée par l'échange de messages, c'est-à-dire avec des éléments de données qui transmettent des informations.
Les systèmes distribués nécessitent des composants simultanés, un réseau de communication et un mécanisme de synchronisation. Ils permettent le partage de ressources, notamment de logiciels, par des systèmes connectés à un réseau. Par conséquent, le système est basé sur un réseau qui relie les ordinateurs et gère le routage des messages.
a et b (systèmes distribués). b (système parallèle). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
L'informatique distribuée est un domaine de l'informatique responsable de l'analyse des systèmes distribués. Un programme informatique qui s'exécute sur un système distribué est appelé un programme distribué.
Dans un contexte où il peut y avoir des centaines ou des milliers d'ordinateurs, ce qui est une proportion courante dans les grandes entreprises Internet, il est très fréquent qu'il y ait des pannes de composants, qu'il s'agisse de matériel, de réseau, de disques, etc., et le système doit être prêt à les affronter à tout moment.
Distribution des données
La distribution est essentielle pour pouvoir gérer de très grands conglomérats de données. Il est nécessaire d'atteindre l'évolutivité, qui est le moyen de maintenir des performances stables lorsque les pools de données se développent en ajoutant de nouvelles ressources au système.
D'autre part, la distribution présente une série de problèmes techniques qui rendent la conception et la mise en œuvre de l'informatique distribuée et du stockage importantes à prendre en compte. Un point à prendre en compte est le risque d'éventuelles pannes.
Caractéristiques des systèmes distribués
a et b (systèmes distribués). b (système parallèle). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Compatibilité
Les appareils peuvent fonctionner avec différents systèmes d'exploitation. Cela ne les empêche pas de toujours offrir les mêmes services aux utilisateurs. Pour cette raison, tous les appareils connectés sont compatibles entre eux.
Un autre problème fondamental est la conception du logiciel, car il est également compatible avec tous les systèmes et utilisateurs présents sur chaque ordinateur.
Tolérance aux pannes
Étant un réseau unique avec de nombreux ordinateurs, si l'un de ses composants tombe en panne, les autres peuvent continuer à remplir pleinement leur fonction, évitant rapidement les erreurs.
Pour cette raison, les systèmes distribués ont tendance à offrir beaucoup de confiance lorsqu'ils travaillent avec eux, car il est assez rare que le système échoue complètement, car les tâches ne résident pas dans un seul appareil, mais sur des ordinateurs différents.
Middleware et API
Différents processeurs utilisent un middleware de distribution, ce qui permet de partager différentes ressources et capacités pour fournir aux utilisateurs un réseau cohérent et intégré. Il fournit également aux applications un certain nombre de services, tels que la sécurité et la récupération après incident.
Aujourd'hui, vous en apprenez davantage sur les interfaces de programmation d'application (API), qui fonctionnent comme une passerelle où les applications peuvent communiquer. Les applications n'ont pas besoin de savoir quoi que ce soit sur les autres applications, à l'exception de leur API.
Architecture
Architecture client-serveur
Un ordinateur particulier appelé serveur peut effectuer certaines tâches, appelées services. Par exemple, la diffusion de fichiers sur le réseau, la possibilité d'exécuter certaines commandes ou d'acheminer des données vers une imprimante. Le client est l'ordinateur qui demande les services.
L'ordinateur connu principalement pour le service qu'il fournit peut être appelé serveur d'impression, serveur de fichiers, etc.
Architecture peer-to-peer
Il suppose que chaque ordinateur a des capacités similaires et qu'aucune machine n'est dédiée au service des autres. Un exemple de ceci est un ensemble de micro-ordinateurs dans un petit bureau.
Le réseau permet aux gens d'accéder aux fichiers des autres et d'envoyer des e-mails, mais aucun ordinateur ne fournit un ensemble spécifique de services.
Architectures multi-niveaux
Pour certains services, il peut être judicieux d'avoir une connectivité hiérarchique. Par exemple:
- Un serveur lors de l'exécution de ses tâches peut contacter un autre serveur d'un type différent
- L'architecture client-serveur est une architecture à deux niveaux.
Architecture du groupe de processeurs
Un système d'exploitation pourrait démarrer automatiquement des processus sur des ordinateurs inactifs et même migrer des processus vers des systèmes avec un nombre plus élevé de cycles CPU disponibles. Dans d'autres cas, un utilisateur peut démarrer ou déplacer manuellement des processus sur les systèmes disponibles.
Types de systèmes distribués
Informatique en cluster
Il s'agit d'un ensemble d'ordinateurs similaires connectés via un réseau local à haut débit. Il est fréquemment utilisé pour la programmation parallèle, où un seul programme gourmand en calcul s'exécute en parallèle sur plusieurs ordinateurs.
Chaque cluster se compose d'un ensemble de nœuds de calcul qui sont surveillés et gérés par un ou plusieurs nœuds appelés maîtres.
Informatique en réseau
Il est composé de nœuds avec des différences marquées dans le matériel et la technologie réseau. La tendance actuelle à avoir une configuration spécifique de nœuds pour certaines tâches a conduit à une plus grande diversité, qui est la plus courante dans l'informatique en réseau.
Cloud computing
Il s'agit d'un ensemble de ressources virtualisées hébergées dans le centre de données d'un fournisseur de cloud. Les clients peuvent établir une infrastructure virtualisée pour tirer parti d'une variété de services cloud.
Pour l'utilisateur, il semble qu'il loue son propre ordinateur exclusif. Cependant, il est probable que vous le partagiez avec d'autres clients. La même chose s'applique au stockage virtuel.
Ces ressources virtualisées peuvent être configurées dynamiquement, permettant ainsi une évolutivité. Si plus de ressources informatiques sont nécessaires, le système peut en acheter davantage.
Objectifs
Partager des ressources
Qu'il s'agisse d'installations de stockage, de fichiers de données, de services ou de réseaux, vous souhaiterez peut-être partager ces ressources entre les applications, par souci d'économie.
Il est beaucoup moins coûteux d'avoir une installation de stockage partagée entre plusieurs applications que d'avoir à acheter et à maintenir le stockage pour chacune séparément.
Abstraction
Pour cacher que les processus et les ressources sont répartis sur plusieurs ordinateurs, éventuellement dispersés géographiquement. Autrement dit, les processus et les ressources sont extraits de l'utilisateur.
Ouverture
Cela indique essentiellement qu'un système distribué est construit avec des éléments qui peuvent être facilement intégrés à d'autres systèmes. Conformément à des règles standardisées, tout processus avec cette interface peut communiquer avec un autre processus avec la même interface.
Interopérabilité et portabilité
Il fait référence au moment où deux systèmes de fabricants différents peuvent fonctionner ensemble. La portabilité détermine la mesure dans laquelle une application faite pour le système A peut fonctionner sur le système B sans modification.
Évolutivité
C'est nécessaire lorsqu'il y a une augmentation des utilisateurs qui ont besoin de plus de ressources. Un bon exemple est l'augmentation de l'audience de Netflix chaque vendredi soir.
Cela signifie ajouter dynamiquement plus de ressources, comme augmenter la capacité du réseau en permettant plus de transmission vidéo et en la réduisant une fois la consommation normalisée.
Applications
Machine virtuelle Erlang
Le progiciel LYME est basé sur Erlang et offre une alternative à LAMP. Shmuel Csaba Otto Traian / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Erlang est un langage fonctionnel doté d'une excellente sémantique pour la concurrence, la distribution et la tolérance aux pannes. Une machine virtuelle Erlang gère la distribution d'une application Erlang.
Ce modèle fonctionne en ayant de nombreux processus isolés, tous avec la possibilité de communiquer entre eux via un système de messagerie intégré.
La machine virtuelle Erlang peut se connecter à d'autres machines virtuelles situées à des endroits différents. Cet essaim de machines virtuelles exécute une seule application, gérant les échecs d'une machine en la programmant pour qu'elle s'exécute sur un autre nœud.
Bittorrent
Fonctionnement du réseau BitTorrent. Mrjavi / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)
C'est l'un des protocoles les plus utilisés pour transférer des fichiers volumineux sur le Web. L'idée principale est de faciliter le transfert de fichiers entre différents pairs sur le réseau sans avoir à passer par un serveur principal.
En utilisant un client BitTorrent, vous pouvez vous connecter à plusieurs ordinateurs dans le monde pour télécharger un fichier. Un ordinateur agissant en tant que coordinateur permet d'afficher les nœuds du réseau qui ont le fichier souhaité.
BitTorrent vous permet d'héberger volontairement des fichiers et de les télécharger pour d'autres utilisateurs qui le souhaitent. Il est si populaire car il a été le premier du genre à offrir des incitations à contribuer au réseau.
avantage
- Plus de nœuds peuvent facilement être ajoutés au système distribué, c'est-à-dire qu'il peut être mis à l'échelle selon les besoins.
- Tous les nœuds du système distribué sont connectés les uns aux autres. Par conséquent, chacun des nœuds peut facilement partager des données avec les autres nœuds.
- Les ressources telles que les imprimantes peuvent être partagées avec plusieurs nœuds au lieu d'être limitées à un seul.
- La défaillance d'un nœud n'entraîne pas la défaillance de l'ensemble du système distribué. Les autres nœuds peuvent toujours communiquer entre eux.
Désavantages
- Certains messages et données peuvent être perdus sur le réseau lors du passage d'un nœud à un autre.
- Il est difficile de fournir une sécurité adéquate dans les systèmes distribués car les nœuds et les connexions doivent être sécurisés.
- Une surcharge du réseau peut se produire si tous les nœuds du système distribué essaient d'envoyer des données en même temps.
- La base de données connectée aux systèmes distribués est assez compliquée et difficile à gérer par rapport à un système mono-utilisateur.
Exemples de systèmes distribués
Les systèmes distribués peuvent être utilisés dans un grand nombre de cas, tels que les systèmes bancaires électroniques, les jeux en ligne massivement multijoueurs et les réseaux de capteurs.
StackPath
Il utilise un système distribué particulièrement volumineux pour alimenter son service réseau de diffusion de contenu. Chacun de ses points de présence (PoP) a des nœuds, formant un système distribué dans le monde entier.
StackPath stocke le contenu le plus récemment et le plus fréquemment demandé dans les emplacements les plus proches du site utilisé.
En interconnectant des ordinateurs virtuels, en plus de profiter de la vitesse et de l'agilité de l'informatique de pointe, le système peut traiter très rapidement des milliers de demandes simultanées.
l'Internet
C'est le plus grand système distribué au monde. Tout utilisateur se sent comme un système unique, même s'il est composé de millions d'ordinateurs.
Grâce au concept d'abstraction, vous n'avez aucune idée de l'endroit où les données sont stockées, du nombre de serveurs impliqués ou de la manière dont les informations parviennent au navigateur. Le navigateur dissout la complexité d'Internet.
Cela s'applique également aux applications telles que la messagerie Gmail ou toute autre application pouvant être utilisée. Toutes les personnes interagissent quotidiennement avec les applications distribuées.
Références
- Paul Krzyzanowski (2018). Systèmes distribués. Tiré de: cs.rutgers.edu.
- Catherine Paganini (2019). Primer: Systèmes distribués et Cloud Native Computing. La nouvelle pile. Tiré de: thenewstack.io.
- Université internationale de Valence (2020). Systèmes distribués, caractéristiques et classification. Tiré de: universidadviu.com.
- David Meador (2018). Systèmes distribués. Tutoriels Point. Tiré de: tutorialspoint.com.
- Robert Gibb (2019). Qu'est-ce qu'un système distribué? Tiré de: blog.stackpath.com.
- Stanislav Kozlovski (2018). Une introduction approfondie aux systèmes distribués. Camp de code gratuit. Tiré de: freecodecamp.org.