DCN - Modèle client-serveur
Deux processus d'application distants peuvent communiquer principalement de deux manières différentes:
Peer-to-peer: Les deux processus distants s'exécutent au même niveau et échangent des données à l'aide d'une ressource partagée.
Client-Server: Un processus distant agit en tant que client et demande des ressources à un autre processus d'application agissant en tant que serveur.
Dans le modèle client-serveur, tout processus peut agir en tant que serveur ou client. Ce ne sont pas le type de machine, la taille de la machine ou sa puissance de calcul qui en font un serveur; c'est la capacité de servir une requête qui fait d'une machine un serveur.
Un système peut agir simultanément en tant que serveur et client. Autrement dit, un processus agit en tant que serveur et un autre agit en tant que client. Cela peut également arriver que les processus client et serveur résident sur la même machine.
la communication
Deux processus dans le modèle client-serveur peuvent interagir de différentes manières:
Sockets
Appels de procédure à distance (RPC)
Douilles
Dans ce paradigme, le processus agissant en tant que serveur ouvre une socket en utilisant un port bien connu (ou connu par le client) et attend qu'une demande du client arrive. Le deuxième processus agissant en tant que client ouvre également une socket mais au lieu d'attendre une demande entrante, le client traite d'abord les «demandes».
Lorsque la demande parvient au serveur, elle est servie. Il peut s'agir d'un partage d'informations ou d'une demande de ressources.
Appel de procédure à distance
Il s'agit d'un mécanisme dans lequel un processus interagit avec un autre au moyen d'appels de procédure. Un processus (client) appelle la procédure se trouvant sur l'hôte distant. Le processus sur l'hôte distant est dit serveur. Les deux processus sont des stubs alloués. Cette communication se déroule de la manière suivante:
Le processus client appelle le stub client. Il lui transmet tous les paramètres relatifs au programme local.
Tous les paramètres sont ensuite regroupés (rassemblés) et un appel système est effectué pour les envoyer de l'autre côté du réseau.
Le noyau envoie les données sur le réseau et l'autre extrémité les reçoit.
L'hôte distant transmet les données au stub du serveur où elles sont annulées.
Les paramètres sont transmis à la procédure et la procédure est ensuite exécutée.
Le résultat est renvoyé au client de la même manière.