Ces dernières années, les systèmes distribués sont devenus la norme. On trouve des systèmes distribués dans les réseaux de téléphones mobiles, les réseaux locaux ou encore le réseau Internet. L'une des principales avancées technologiques qui a permit aux réseaux distribués d'exploser est la généralisation des ordinateurs et des réseaux haut débit permettant aux différentes applications sur des ordinateurs distincts (et distants) de coopérer pour effectuer des tâches coordonnées.
Selon Tanenbaum, un système distribué est un ensemble d'ordinateurs indépendants qui apparaît à un utilisateur comme un système unique et cohérent. Donc, dans un système distribué, les machines sont autonomes et les utilisateurs ont l'impression d'utiliser un seul système.
Selon Lamport, un système distribué est un système qui vous empêche de travailler quand une machine dont vous n'avez jamais entendu parler tombe en panne. Cette définition, met en lumière la difficulté pour géré un système distribué souvent composé de machines hétéroclites.
Avant les années 80, les ordinateurs étaient encombrants et chers, c'étaient alors des systèmes centralisés. À partir de la mi-80, les différentes avancées technologiques dans le domaine matériel, notamment, avec du microprocesseur moins cher et très rapide, mais également le développement des réseaux LAN (Local Area Network) et WAN (Wide Area Network).s Ce qui rend la mise en réseau des ordinateurs non seulement faisables, mais également plus simple.
Les évolutions technologie sont également à mettre en parralèlle avec les l'évolutions des besoins utilisateurs, la balalistation et capilarité des réseaux de télécommunication, réponds aux besoins structurel des entreprises et des oragnisation, la performance des réseaux (débit et fiabilité) et la diminution des coûts liés aux systèmes distribué a permis un accès universel à l'information (ex. Web) et l'apparition des systèmes distribuer "grand public".
Les différents types de systèmes distribués
Il existe différents types de systèmes distribués. Ils ont tous des principes de fonctionnement différents et des utilisations diverses. Ici nous verrons une liste non-exhaustive des technologies de systèmes distribués ainsi que leur utilisation principale.
Les grilles. C'est un ensemble de machines qui peuvent être hétérogènes, partagées, distribuées et autonomes. L'objectif d'une grille est de mettre à disposition de personnes ayant accès à celle-ci la réservation d'une ou de plusieurs machine pour effectuer le travaille qu'elle souhaite dessus. Tor permet d'anonymiser la source d'une session de navigation web ou de messagerie instantanée. Il se repose sur le principe suivant : une liste de serveur, appelé nœud, est mise à disposition publiquement. Les personnes voulant utiliser le réseaux Tor n'auront qu'a piocher aléatoirement dans cette liste. Une fois cela fait, il suffit de chiffrer le paquet que l'on veut envoyer successivement avec la dernier nœud choisi, puis avec l'avant dernier, etc. Le paquet est ensuite envoyé et déchiffré au fur et à mesure de l'avancement dans les nœuds.
Les systèmes de fichiers distribués sont comme leur nom l'indique un système de fichier réparti sur un système distribué. Il permet le partage de fichier à plusieurs clients. Contrairement à un système de fichier en local, le client n'a pas accès au système de stockage sous-jacent, et interagit avec le système de fichiers via un protocole. Ils existent beaucoup de technologies l'implémentant, tel que Hadoop Distributed File System (HDFS) ou Google File System (GDS) qui permettent le stockage de données très volumineuse sur plusieurs machine.
La blockchain est un système qui permet de stocker ou de diffuser de l'information sans organe de contrôle, sans centralisation tout en faisant confiance à cette information. il s'agit d'une base de données distribuée dont les informations envoyées par les utilisateurs et les liens internes à la base sont vérifiés et groupés à intervalles de temps réguliers en blocs, l'ensemble étant sécurisé par cryptographie. L'exemple le plus connu de blockchain est le Bitcoin, une cryptomonnaie qui n'est pas dirigé par un gouvernement.
Un CDN, ou réseau de diffusion de contenu, est un ensemble de serveur relié entre eux par internet et coopérant afin de mettre à disposition du contenu à des utilisateurs. Le fonctionnement est assez simple. Lorsqu'un utilisateur souhaite accéder à une donnée, le serveur pouvant délivrer l'information le plus rapidement est désigné par le système et celui-ci fourni la donnée à l'utilisateur.
Le peer to peer est un système d'échange où chaque entité du réseau est à la fois client et serveur. Cela peut être utilisé dans le partage de fichier comment avec le torrent, la partage de calcul ou encore la communication avec pour exemple Skype.
Les Botnets : ce sont des machines infecté par un virus que l'on appelle machines zombies et qui auront pour but dans la plupart des cas d'attaquer ensemble un serveur afin de le faire tomber. La plupart des ces machines sont des objets connectés car ils sont assez vulnérables et leur intégrité est rarement vérifié.
Ces systèmes distribués ont des fonctionnement assez divers, d'autres pourront être basé sur le même principe que ceux vu précédemment mais avec d'autres objectifs.
Les problèmes liés aux systèmes distribués
Un système distribué répond à des nombreux objectifs. La transparence, un système distribué doit être uniformes dans l'accès aux ressources distantes et locales. Cet objectif peut prendre différentes formes : la localisation des ressources non-perceptibles ; la migration des ressources possible sans interférences avec la localisation physique ; la réputation de ressources non-visibles ; la concurrence d'accès aux ressources ; l'indicibilité du parallélisme offert par l'environnement d'exécution et la tolérance aux pannes permettant à un utilisateur de ne pas s'interrompre (ou même se rendre compte) à cause d'une panne de l'un des ressources du système distribué.
L'ouverture du système distribué est également un objectif fondamental. Les services exposé doivent répondre à des règles standards qui décrivent la syntaxe et la sémantique de ces services. Un système distribué peut également être reparti sur différente matériel, ce qui impose une intéropérabilité des matériels, mais ce système peut également reposer sur diffèrent fournisseurs d'infrastructure cloud. Il doit donc également être portable sur plusieurs plateformes. Cet objectif d'ouverture pose également une problématique de flexibilité. En effet, comment rendre ce système distribué simple d'utilisation et de configuration ? Un autre problème posé par l'ouverture d'un système distribué est l'extensibilité : comment mettre à jour ou ajouter un composant dans le système distribué sans en affecter les autres ?
La mise à l'échelle (scalability en anglais) est également l'un des grandes problématiques rencontré par les concepteurs de système distribué. Comment garantir un fonctionnement efficace à différentes échelles ? Per exemple, lorsque l'on dispose de trois postes de travail et d'un serveur de fichiers ou plusieurs réseau locaux avec plusieurs centaines de postes de travail et serveurs de fichiers ?
Un autre objectif dans un système distribué est la tolérance aux pannes. Comment le système distribué réagit en cas de panne franche, lors le système fonctionne normalement (les résultats sont corrects.), soit il ne fait rien ? Ou lors d'une panne byzantine, lorsque le système donne des résultats aléatoires ? Cet objectif de tolérance aux pannes demande de répondre aux questions suivantes :
Comment détecter une pannes ?
Comment corriger les erreurs de fichiers ou les messages corrompus ?
Comment assurer la repose sur pannes ?
Le dernier objectif qu'un système distribué doit prendre en compte est la sécurité. Comment assurer la confidentialité des données ? Comment répondre aux besoins de disponibilitées (accès aux ressources) ? Et comment le système distribué se protège contre les falsifications et les corruptions de données ?
Conclusion
Les systèmes distribuées sont maintenant présents dans énormément de contexte d'application. Que ce soit pour la gestion de fichier, l'exploitation de puissance de calcul ou encore la communication, les systèmes distribuées permettent d'accomplir certaines choses impossible sur de simple machine. Cependant, des problèmes s'ouvrent. En effet, la communication entre les parties du système distribué peut impliquer des problème de fuite de donnée, ou encore de mauvaise communication entraînant la corruption de donnée. C'est avec ces problèmes que la conception de système distribué doit être mis en place afin de les palier et d'assurer un bon fonctionnement de celui-ci ainsi qu'une certaine qualité de service, afin que les utilisateurs puissent se reposer sur ce genre de système.
✅ Enjoy the vote! For more amazing content, please follow @themadcurator for a chance to receive more free votes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit