Mise en réseau et communication
Le domaine de la mise en réseau et de la communication comprend l’analyse, la conception, la mise en œuvre et l’utilisation de réseaux locaux, étendus et mobiles qui relient les ordinateurs entre eux. Internet lui-même est un réseau qui permet à presque tous les ordinateurs du monde de communiquer.
Un réseau informatique relie les ordinateurs par une combinaison de signaux lumineux infrarouges, de transmissions par ondes radio, de lignes téléphoniques, de câbles de télévision et de liaisons par satellite. Le défi pour les informaticiens a été de développer des protocoles (règles normalisées pour le format et l’échange des messages) qui permettent aux processus s’exécutant sur les ordinateurs hôtes d’interpréter les signaux qu’ils reçoivent et d’engager des “conversations” significatives afin d’accomplir des tâches pour le compte des utilisateurs. Les protocoles réseau comprennent également le contrôle de flux, qui empêche un expéditeur de données d’inonder un récepteur de messages qu’il n’a pas le temps de traiter ou d’espace pour stocker, et le contrôle des erreurs, qui implique la détection des erreurs de transmission et le renvoi automatique des messages pour corriger ces erreurs. (Pour certains détails techniques sur la détection et la correction des erreurs, voir théorie de l’information.)
La normalisation des protocoles est un effort international. Comme il serait autrement impossible pour différents types de machines et de systèmes d’exploitation de communiquer entre eux, la principale préoccupation a été que les composants du système (ordinateurs) soient “ouverts.”Cette terminologie provient des normes de communication d’interconnexion de systèmes ouverts (OSI), établies par l’Organisation internationale de normalisation. Le modèle de référence OSI spécifie les normes de protocole réseau en sept couches. Chaque couche est définie par les fonctions sur lesquelles elle s’appuie à partir de la couche en dessous et par les services qu’elle fournit à la couche au-dessus.
Au bas du protocole se trouve la couche physique, contenant des règles pour le transport de bits à travers une liaison physique. La couche de liaison de données gère des “paquets” de données de taille standard et ajoute de la fiabilité sous la forme de bits de détection d’erreur et de contrôle de flux. Les couches réseau et transport divisent les messages en paquets de taille standard et les acheminent vers leurs destinations. La couche session prend en charge les interactions entre les applications sur deux machines communicantes. Par exemple, il fournit un mécanisme permettant d’insérer des points de contrôle (en enregistrant l’état actuel d’une tâche) dans un long transfert de fichiers de sorte qu’en cas d’échec, seules les données après le dernier point de contrôle doivent être retransmises. La couche de présentation concerne les fonctions qui codent les données, de sorte que les systèmes hétérogènes peuvent s’engager dans une communication significative. Au plus haut niveau se trouvent des protocoles prenant en charge des applications spécifiques. Un exemple d’une telle application est le protocole de transfert de fichiers (FTP), qui régit le transfert de fichiers d’un hôte à un autre.
Le développement des réseaux et des protocoles de communication a également donné naissance à des systèmes distribués, dans lesquels des ordinateurs reliés en réseau partagent des tâches de traitement et de traitement des données. Un système de base de données distribuée, par exemple, a une base de données répartie entre (ou répliquée sur) différents sites de réseau. Les données sont répliquées sur des ” sites miroirs ” et la réplication peut améliorer la disponibilité et la fiabilité. Un SGBD distribué gère une base de données dont les composants sont répartis sur plusieurs ordinateurs d’un réseau.
Un réseau client-serveur est un système distribué dans lequel la base de données réside sur un ordinateur (le serveur) et les utilisateurs se connectent à cet ordinateur via le réseau à partir de leurs propres ordinateurs (les clients). Le serveur fournit des données et répond aux demandes de chaque client, tandis que chaque client accède aux données sur le serveur de manière indépendante et ignorante de la présence d’autres clients accédant à la même base de données. Les systèmes client-serveur nécessitent que les actions individuelles de plusieurs clients vers la même partie de la base de données du serveur soient synchronisées, de sorte que les conflits soient résolus de manière raisonnable. Par exemple, les réservations de compagnies aériennes sont implémentées à l’aide d’un modèle client-serveur. Le serveur contient toutes les données sur les vols à venir, telles que les réservations en cours et les attributions de sièges. Chaque client souhaite accéder à ces données dans le but de réserver un vol, d’obtenir une attribution de siège et de payer le vol. Au cours de ce processus, il est probable que deux demandes de clients ou plus souhaitent accéder au même vol et qu’il ne reste qu’un seul siège à attribuer. Le logiciel doit synchroniser ces deux demandes afin que le siège restant soit attribué de manière rationnelle (généralement à la personne qui a fait la demande en premier).
Un autre type de système distribué populaire est le réseau peer-to-peer. Contrairement aux réseaux client-serveur, un réseau peer-to-peer suppose que chaque ordinateur (utilisateur) qui lui est connecté peut agir à la fois en tant que client et en tant que serveur; ainsi, tout le monde sur le réseau est un pair. Cette stratégie est logique pour les groupes qui partagent des collections audio sur Internet et pour l’organisation de réseaux sociaux tels que LinkedIn et Facebook. Chaque personne connectée à un tel réseau reçoit des informations d’autrui et partage ses propres informations avec d’autres.