Les RPC Master RSSI/Réseaux et Systèmes Répartis 1ème année (Semestre 2) UDL-SB
Les RPC Master RSSI/Réseaux et Systèmes Répartis 1ème année (Semestre 2) UDL-SBA Dr BOUAMAMA Samah 2016/2017 introduction • La communication par sockets consiste souvent à invoquer des commandes à distance • Difficultés : • Lourdeur de programmation • Encodage des données (paramètres, résultats) • Identification du serveur, du protocole, … • Non naturel RPC : Remote Procedure Call, - Est un concept introduit par Birrel et Nelson en 1984. - Protocole défini par les : - RFC 1050 (version 1) : avril 1988 - RFC 1057 (version 2) : juin 1988 - RFC 1831 (mise à jour version 2) : août 1995 - Modèle de réalisation d’une interaction client-serveur, où l’opération à réaliser est présentée sous la forme d’une procédure, que le client peut faire exécuter à distance par le serveur. - RPC est un cas particulier du modèle de passage de messages. - Le client: invoque, génère l’appel distant et récupère le résultat : Invoque ( id_client, id_serveur, nom_procedure, paramètres); - Le serveur: reçoit, traite un appel et répond: Traite (id_client, id_serveur, nom_procedure, paramètres); Objectifs du RPC • Retrouver la sémantique “classique” de l’appel de procédures local (LPC) qui est une structure familière aux programmeurs; • S’affranchir du côté basique des communication en mode message, exp: MOM; • Garder la démarche de conception des applications centralisées; • Fonctionnement synchrone; • Communication transparente entre le client et le serveur. Rappels: - MOM “Message-Oriented Middleware”: Famille de logiciels permettant l'échange de messages entre les applications présentes sur un réseau informatique. - Synchrone : Qui se passe en même temps, à la même vitesse. - Asynchrone : Opposition à synchrone. Le modèle LPC Notion de contexte et de pile d’exécution Déroulement Empilement des paramètres Copie dans la pile des paramètres passés par valeur. Empilement des références des paramètres passés par adresse. Empilement de l’adresse de retour Empilement des variables locales Exécution du code de la procédure Appel par valeur Copie de la valeur du paramètre dans la pile d’exécution Appel par référence Copie de l’adresse de la variable paramètre dans la pile Tout changement sur la variable est directement visible Appel par copie/restauration Copie de la valeur de la variable dans la pile Copie dans la variable après exécution de la procédure Utilisé dans certains langages (inout en Ada) (n’existe pas en C) Passage de paramètres dans LPC Caractéristiques et comparisons procA() return procB() return return Machine 1 Machine 2 Machine 3 réseau réseau Programme principal Procédure A (serveur) Procédure B (serveur) RPC : principe Même sémantique que le modèle LPC Position par rapport à OSI Couche session Communication synchrone et transparente Utilisation transparente de sockets en mode connecté Différentes implémentations DCE-RPC de l’Open Software Foundation (OSF) ONC-RPC de Sun (NFS, NIS, etc.) Le modèle RPC Client Assemblage des paramètres Désassemblage des résultats Désassemblage des paramètres Assemblage des résultats Serveur Noyau OS Noyau OS Réseau Machine A Machine B Stub client Stub serveur Appel Appel Retour Retour Fonctionnement Déroutement Déroutement Mise en œuvre de l’appel de procédure distante 1) Par migration. 2) Par mémoire partagée. 3) Par messages. 4) Par appel léger. Stratégie de migration: Le code et les données de la procédure distante sont amenés sur le site appelant pour y être exécutés par un appel local habituel.❚ Analogie : stratégie de pré-chargement en mémoire. Avantages❚ Très efficace pour de nombreux appels. Inconvénients❚ Univers d’exécutions homogènes (ex: machine virtuelle).❚ Performances selon le volume de codes et de données.❚ Problèmes de partage des objets (fermeture d’objets, …). 1- Réalisation de l’appel de procédure distante par migration • L'appel distant est réalisé en utilisant une mémoire virtuelle partagée répartie. • La procédure est installée pour le client comme pour le serveur dans la mémoire partagée répartie. • Elle est en fait dans l’espace réel du serveur. • L'appel du client se fait comme si la procédure était locale, provoquant un premier défaut de page sur le début du code de la procédure. • Le code et les données de la procédure distante sont amenés page par page sur le site appelant selon le parcours du code et des données. • Analogie avec une stratégie page à la demande. 2- Réalisation de l’appel de procédure distante en mémoire partagée répartie Avantages❚ Efficace en cas de nombreux appels.❚ Efficace si tout le code et les données ne sont pas visités.❚ Résout le problème de l’utilisation des pointeurs (références d’adresses en mémoire). Inconvénients❚ Univers de systèmes homogènes.❚ Volume de codes et de données à échanger pages par pages.❚ Problèmes de partage selon cohérence de la mémoire répartie. 2- Réalisation de l’appel de procédure distante en mémoire partagée répartie 3- Réalisation de l’appel de procédure distante par messages asynchrone❚ Deux messages (au moins) échangés: requête et réponse. Un mode de réalisation par interception (‘ Wrapping ’)❙ Une procédure intercepteur ( ‘wrapper’) intercepte l’appel d’un client vers un serveur et modifie le traitement serveur à sa guise.❙ Décomposition en intercepteur coté client et intercepteur coté serveur.❙ Décomposition en traitements avant et après le traitement serveur.❚ Souches: transformation d’un appel local en appel distant.❚ Objectif de génération automatique des souches connaissant le profil d’appel de la procédure distante.❚ Très nombreuse terminologie dans ce cas : Souches ("Stubs"), Talons, Squelettes ("Skeletons")... Notion de souches Les souches: diagramme global d’interaction La souche client (“Client stub”)❘ Procédure coté client qui reçoit l’appel en mode local❘ Le transforme en appel distant❘ En envoyant un message❘ Reçoit le message contenant les résultats après l'exécution❘ Retourne les résultats comme dans un retour de procédure.❚ La souche serveur (“Server stub”)❘ Procédure coté serveur qui reçoit le message d ’appel,❘ Fait réaliser l’exécution sur le site serveur par la procédure serveur❘ Récupère les résultats et retransmet les résultats par message. Souches client et serveur Les étapes d’un appel de procédure distante par messages Etape 1: le client réalise un appel procédural vers la procédure souche client. La souche client collecte les paramètres, les alignes dans le message d’appel « Parameter Marshaling ». On parle d’assemblage, encodage de paramètres. La souche détermine l’adresse du serveur. Etape 2: la souche client demande à une entité de transport local la transmission du message d’appel. Etape 3: le message d’appel est transmis sur un réseau au site serveur. Etape 4: le message d’appel est délivré à la souche serveur. La souche serveur désassemble les paramètres. On parle de désassemblage ou de décodage des paramètres Etape 5: la souche serveur réalise l’appel effectif de la procédure serveur Les étapes d’un appel de procédure distante par messages Les étapes d’un appel de procédure distante par messages Etape 6: la procédure serveur ayant terminé son exécution transmet à la souche serveur dans son retour de procédure les paramètres résultats. La souche serveur collecte les paramètres de retour, les assemble dans un message « Parameter Marshalling ». Etape 7: la procédure souche serveur demande à l’entité de transport serveur la transmission du message de réponse Etape 8: Le message de réponse est transmis sur un réseau du site client Etape 9: Le message de réponse est délivré à la souche client puis elle désassemble les paramètres résultats Etape 10: la procédure souche client transmet les résultats au client en effectuant un retour habituel de procédure en mode Local Avantages❘ Volume de code ou de données serveur quelconque.❘ Applicable en univers hétérogènes moyennant des conversions.❘ Partage d’accès sur le site serveur analogue au transactionnel. Inconvénients❘ Pas d’usage des pointeurs dans les paramètres.❘ Échange de données complexes/de grande taille délicat.❘ Peu efficace pour de très nombreux appels. Avantages/inconvénients de l’appel distant réalisé par messages Problème de performances : quand on invoque un serveur qui se trouve sur la même machine la traversée des couches réseaux est inutile et coûteuse.❚ Si le serveur se trouve dans le même processus (même domaine de protection) pas de problème (appel local).❚ Si le serveur se trouve dans un autre processus (autre domaine de protection)❙ Solution proposée : la communication réseau est réalisée par un segment de mémoire partagée entre le client et le serveur qui contient un tas pour les paramètres d'appel et de réponse. 4- Réalisation de l’appel de procédure distante léger (lightweight RPC) 4- Schéma général de l’appel de procédure distante léger Avantages❘ Transmission d’appel très performant comme mode de RPC local.❚ Inconvénients❘ Uniquement applicable aux RPC du même site. Avantages Inconvénients: RPC léger 1) Parallélisme chez le client 2) Parallélisme chez le serveur Gestion du contrôle L'exécution du client est suspendue tant que la réponse du serveur n'est pas revenue ou qu'une condition d'exception n'a pas entraîné un traitement spécifique.❚ Avantage: le flot de contrôle est le même que dans l'appel en mode centralisé❚ Inconvénient: le client reste inactif. 1-Parallélisme chez le client : Appel de procédure distante en mode synchrone Création de (au moins) deux activités (‘ threads ’) sur le site client❚ L'une occupe le site appelant par un travail à faire.❚ L'autre gère l’appel en mode synchrone en restant bloquée: Le fonctionnement est exactement celui d'un appel habituel. Une solution au problème de l’inactivité du client: utilisation des activités Le client poursuit son exécution immédiatement uploads/Litterature/3-rpc.pdf
Documents similaires










-
48
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 28, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 1.7395MB