La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les RPC remote procedure call

Présentations similaires


Présentation au sujet: "Les RPC remote procedure call"— Transcription de la présentation:

1 Les RPC remote procedure call
version 1.0 25 avril 2004

2 plan de l’exposé introduction principe général les RPC sous Un*x
un outil pratique : rpcgen autres outils

3 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, … énorme “switch” au niveau du serveur non naturel

4 introduction objectif des RPC : retrouver la sémantique “classique” de l’appel de procédures sans préoccupation de la localisation de la procédure sans préoccupation du traitement des défaillances en étant le plus transparent possible pour le programmeur difficultés modes de pannes indépendants réseau non forcément fiable temps de réponse

5 principe général Réseau 1 2 3 4 Programme client Talon client
Programme serveur Talon serveur 1 2 communication Protocole de communication Protocole de Réseau 3 4

6 les RPC sous Un*x nombreux systèmes RPC disponibles (mais souvent incompatibles en eux) un standard : Sun RPC (spécifications dans le domaine public) à base de l’implémentation NFS open-source utilise le protocole XDR (eXternal Data Representation) pour le transport des données

7 Sun RPC fonctionnement du serveur
un processus daemon (serveur) attend des connexions il détermine un programme p qui contient une/des procédures (référencées) le programme p décode les paramètres, exécute la procédure demandée et encode le résultat le daemon retourne le résultat

8 Sun RPC fonctionnement du client
le talon (stub) détermine le numéro de programme détermine la version du programme à utiliser détermine le numéro de la procédure à lancer encode les différents paramètres

9 Sun RPC plusieurs façons de développer des applications réparties en utilisant : utilisant les fonctions de la couche intermédiaire utilisant les fonctions de la couche basse utiliser le compilateur rpcgen

10 un outil pratique : rpcgen
service.x rpcgen service_svc.c service_clnt.c service_server.c service_client.c service_rpc.h service_xdr.c Makefile_service

11 un outil pratique : rpcgen
utilisation rpcgen –a service.x les fichiers Makefile_service, service_xdr.c, service_rpc.h, service_svc.c, service_clnt.c, service_server.c, service_client.c sont générés il ne reste plus qu’à implémenter les procédures dans service_server.c et le programme client (service_client.c)

12 un outil pratique : rpcgen
structure des fichiers .x /* service.x */ [Définition constantes]* [Définition types]* program NOM_DU_PROGRAMME { [version NOM_DE_LA_VERSION { [type_résultat nom_procédure(type_du_paramètre) = numéro_de_la_procédure;]* } = numéro_version;] } = numéro_du_programme;

13 un outil pratique : rpcgen
les constantes const id = valeur; les types struct num_du_type { [type attribut;]* } typedef type nom_du_type; les tableaux et chaînes typedef int vecteur <100>; typedef string chaine <255>;

14 un outil pratique : rpcgen
numéro de programme réservé : de 0x à 0x1FFFFFFF public : de 0x à 0x3FFFFFFF semi-public : de 0x à 0x5FFFFFFF réservé : 0x à 0xFFFFFFFF

15 autres outils rpcinfo : permet d’obtenir la liste des services RPC sur la machine rpcinfo –p [machine hôte] : liste des services RPC enregistrés rpcinfo {–u | -t} machine_hôte numéro_prog [numéro_version] : appel de la procédure 0 d’un programme (valeur donnée en décimal !) en utilisant le protocole {udp | tcp}


Télécharger ppt "Les RPC remote procedure call"

Présentations similaires


Annonces Google