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

Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 71 RPC.

Présentations similaires


Présentation au sujet: "Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 71 RPC."— Transcription de la présentation:

1 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 71 RPC

2 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 72 RPC Remote Procedure Call : –Possibilité d'invocation de procédures situées en dehors de l'espace d'adressage de l'application courante Système RPC –Collection de logiciels nécessaire pour supporter la programmation RPC ainsi que le support à lexécution (run-time services)

3 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 73 RPC qui ? Sun –Microsystems'Open Network Computing group (ONC) aka ONC rpc aka Sun RPC 4.0 –Gratuit disponible OSF (Open Software Fondation) –DCE : Distributed Computed Environnement –Standardisation sur grand systèmes

4 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 74 Démarrage Programme client SE Client PortMapperProgramme Serveur 1 2 SE Serveur port c port b port a 3

5 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 75 Utilisation Programme client SE Client SE Serveur Démon de service à lécoute Réseau Client en attente Invocation du service Lancement de la procédure de service Exécution de la procédure Réponse Requête complète, Assemblage de la réponse Invocation RPC Requête Renvoie réponse

6 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 76 RPC et OSI Réseau Interface Physique 1,2 Liaison de données / Physique 3 Réseau 4 Transport 5 Session 6 Présentation 7 Application Application Utilisateur XDR RPC TCPUDP IP

7 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 77 Identification des procédures Regroupement de différentes procédures dans un "programme RPC" –Exemple NFS : ensemble de procédures permettant de manipuler un programme à distance Identification d'un programme par un entier –Identification des procédures par un autre entier Exemple NFS : –Lecture 6 –Ecriture 8 Chaque programme possède également un numéro de version

8 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 78 Client / Serveur et appel de procédure

9 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 79

10 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 80 Client Interface procedure addition (x, y, total) procedure multiplication(x, y, total) Serveur

11 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 81 Xdr Problème de la standardisation du flux –Non unicité de la représentation interne des objets Types de base / structures complexes… Taille des objets –(2, 4 octets) Ordre des octets –LittleEndian / BidEndian Représentation interne –Complément a2, Ca1… Problèmes d'alignement –Bits de bourrage

12 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 82 Exemple expediteur.c #include main(){ float x=12.45; int n= -1234; write(STDOUT_FILENO,&n,sizeof(int)); write(STDOUT_FILENO,&x,sizeof(float)); } recepteur.c #include main(){ read(STDIN_FILENO,&n,sizeof(int)); read(STDIN_FILENO,&n,sizeof(float)); printf("Entier recu : %d\n",n); printf("Flottant recu : %f\n",x); } Appel expediteur | remsh vax recepteur Entier recu : Flottant recu :

13 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 83 Flux client / serveur Processus Emetteur Flot XDR d'encodage Flot XDR de décodage Processus Récepteur Encodage (sérialisation) Décodage (desérialisation) Transfert

14 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 84 Services du middleware portmapper : service de nommage /etc/rpc : fichier de description des services rpcinfo –rpcinfo -p => liste les services –rpcinfo -u tc-frenot-1 nfs ==> interroge un service

15 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 85 Services de la couche haute NFS rwall ruserd

16 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 86 Exemple #include #define ARITH_PROG 0x #define ARITH_VERS1 1 #define ADD_PROC 1 #define MULT_PROC 2 #define SQRT_PROC 3 struct couple {float e1, e2;}; int xdr_couple();

17 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 87 Exemple Flux #include "exemple.h" int xdr_couple(XDR * xdrp, struct couple * p) { return (xdr_float(xdrp, &p->e1)&&xdr_float(xdrp, &p->e2)); }

18 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 88 Exemple serveur #include #include "exemple.h" char *add(); char * mult(); char * rac(); main(){ int rep; rep=registerrpc(ARITH_PROG, ARITH_VERS1, ADD_PROC, add, xdr_couple, xdr_float); if (rep==-1){ fprintf(stderr, "errreur registerrpc (add)\n"); exit(2); }

19 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 89 Exemple serveur rep=registerrpc(ARITH_PROG, ARITH_VERS1, MULT_PROC, mult, xdr_couple, xdr_float); if (rep==-1){ fprintf(stderr, "errreur registerrpc (mult)\n"); exit(2); } rep=registerrpc(ARITH_PROG, ARITH_VERS1, SQRT_PROC, rac, xdr_couple, xdr_float); if (rep==-1){ fprintf(stderr, "errreur registerrpc (rac)\n"); exit(2); } svc_run(); fprintf(stderr, "erreur sur svc_run\n"); exit(3); }

20 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 90 Fonctions #include "exemple.h" char * add (struct couple *p){ static float res; res=p->e1+p->e2; return ((char *)&res); }

21 Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 91 Client #include #include "exemple.h" main (int n, char * v []){ float x; struct couple don, res; int op, m; don.e1=13.4; don.e2=17.1; m=callrpc(v[1], ARITH_PROG, ARITH_VERS1, ADD_PROC, xdr_couple, &don, xdr_float, &x); if (m==0){ printf("%f + %f = %f\n", don.e1, don.e2, x); }else{ fprintf(stderr, "erreur : %d\n", m); }


Télécharger ppt "Stéphane Frenot - Département Télécommunication - SID - lyon.fr II - RPC 71 RPC."

Présentations similaires


Annonces Google