Lisez des messages, partagez un poste sur Facebook, répondez à des courriels et surfez. Le smartphone d'aujourd'hui offre de nombreuses possibilités pour être connecté avec d'autres personnes et obtenir des informations sur n'importe quel sujet. Tout le monde considère que cela va de soi et tout le monde s'attend à ce que cela fonctionne, où que vous soyez. Cependant, les gens oublient souvent, même si cela semble si simple, qu'il y a toute une machine en arrière-plan pour envoyer des messages. Mais comment cela fonctionne-t-il réellement et que se passe-t-il en arrière-plan ?
L'arrière-plan complexe des simples clics
L'envoi d'un message vous semble être une tâche simple. C'est rapide et vous obtenez une confirmation pour un envoi réussi, comme c'est le cas dans WhatsApp. Même si cela ne se produit qu'en un "instant", le message a parcouru une distance importante et est passé par les différentes composantes impliquées. Il s'agit notamment des systèmes de téléphonie cellulaire, des satellites et des routeurs qui relaient le message sur de longues distances. Les bases de données stockent ensuite ces données, par exemple dans le nuage.
Par exemple, si une photo doit être publiée sur Facebook, elle est envoyée via le réseau mobile et satellitaire. De nombreux routeurs sont alors impliqués dans l'acheminement de l'image jusqu'à sa destination, où elle est traitée et stockée. La destination est un serveur Facebook qui reçoit l'image et la transmet à d'autres serveurs qui sont actuellement disponibles pour le traitement. Enfin, le message est ensuite stocké dans une base de données et, si nécessaire, dans une autre base de données pour être sauvegardé. Tout cela se fait en moins d'une seconde.
Systèmes informatiques distribués : L'épine dorsale intelligente des applications mobiles
Les composants impliqués dans la transmission d'un message sont physiquement répartis sur différents sites. Un tel "système informatique distribué" répartit la charge de demandes et de données et peut être facilement adapté ou redimensionné.
Regardons sur Facebook : Par exemple, jusqu'à 350 millions d'images y sont traitées chaque jour et une moyenne de 4 millions d'images similaires y sont enregistrées chaque minute. Au total, Facebook dispose actuellement de plus de 300 pétaoctets de données. C'est l'équivalent de 300 millions de gigaoctets. Si vous vouliez stocker ce volume de données sur des DVD d'une capacité de 4,7 gigaoctets chacun, vous auriez besoin de près de 64 millions de DVD. La recherche manuelle d'une image sur l'un des 64 millions de DVD avec l'aide d'une seule personne serait probablement l'œuvre de toute une vie, si cela suffisait. Si plusieurs personnes étaient utilisées, la recherche serait plus rapide.
Même si les bases de données sont bien sûr plus rapides pour une requête de recherche que pour une seule personne, ce principe s'applique également à celles-ci. Ils seraient eux aussi tout simplement surchargés. Plusieurs serveurs et bases de données sont donc utilisés pour fractionner les requêtes. C'est donc l'une des raisons pour lesquelles un système est divisé (distribué) en de nombreux serveurs et bases de données. Une demande adressée à un serveur déjà occupé peut simplement être transmise à un autre serveur moins occupé. Il en va de même pour les bases de données.
Perspectives d'avenir
Les systèmes distribués sont la réponse technologique aux volumes toujours croissants de données qui doivent être traitées avec efficacité et efficience. Les systèmes distribués sont donc devenus une partie essentielle de la numérisation. Mais bien sûr, vous avez aussi vos défis à relever. Il s'agit, par exemple, de la sécurité des données, de la tolérance aux erreurs ou de la coordination des ressources de stockage et de calcul. Si les composants sont distribués, il y a beaucoup plus de risques à prendre en compte en matière de sécurité des données, car ils offrent plus de possibilités d'attaquer les serveurs. Il faut éviter que les pannes de serveur dues à des erreurs de réseau ne paralysent l'ensemble du système distribué. Le système distribué doit également être tolérant aux pannes et être capable de compenser les problèmes provenant d'autres serveurs.
Toutefois, lorsque vous comparez les défis aux avantages des systèmes distribués, les bénéfices l'emportent de loin sur les inconvénients. Par exemple, un système distribué a une grande extensibilité parce que des composants peuvent facilement être ajoutés. La répartition des capacités de calcul rend possible le calcul de grandes quantités de données. Enfin et surtout, un système distribué crée également une transparence sur l'ensemble du système, puisque les différents composants fonctionnent de manière autonome, ce qui facilite la localisation et la correction des erreurs.
Il ne fait aucun doute que l'avenir appartiendra aux systèmes informatiques distribués si les tendances numériques actuelles se poursuivent. Néanmoins, nous devons être conscients que les nouveaux résultats et conclusions de la recherche peuvent produire d'autres architectures qui pourraient un jour remplacer l'architecture de distribution complexe actuelle.