Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

La boucle for : init7.c et init71.c
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Retour sur RMI.
Notions sur les systèmes de Télécommunications
Architecture de réseaux
C.
Algorithme et structure de données
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance



Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 247 Entity EJB.
Stéphane Frenot - Département Télécommunication - SID - II - EjbServ 227 EJB Session.

Stéphane Frenot - Département Télécommunication - SID - III - Concl 382 Technologies de base Les plomberies –Le transport.
Stéphane Frenot - Département Télécommunication - SID - II - Comp 312 Avantages de l'approche distribuée Economie Performance.
FLSI602 Génie Informatique et Réseaux
UDP – User Datagram Protocol
La législation formation, les aides des pouvoirs publics
Common Gateway Interface
MPI (Message Passing Interface)
Remote Procedure Call Motivation Idée générale
Inf 531: Réseaux et télécommunication I 1 INF:531( SEMAINE-3) ARCHITECTURE ET PROTOCOLE Alain Courteau, Enseignant.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
Programme de baccalauréat en informatique Algorithmique et programmation IFT-1001 Thierry EUDE Hatem Mahbouli Laboratoire #12 Département dinformatique.
TRAITEMENT DE STRUCTURES
Les nombres.
CAT 2000 LES MIDDLEWARES Présenté par : Tagmouti Siham Smires Ali
FICHIERS.
Les fichiers binaires en C++
Structures de données IFT-2000
Les maths en francais 7ième année.

Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
RPC / MOM : Comparaison.
Le Modele OSI.
8PRO100 Éléments de programmation Les types composés.
Introduction au Langage C
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Mardi 28 janvier Français I
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Structures des données
Développement d’application client/serveur
Les adresses des fonctions
1 FICHIERS. 2 Les Fichiers  Les "entrées-sorties conversationnelles" échangent des informations entre le programme et l'utilisateur.  Le terme de fichier.
Appel de procédure distante
NSY107 - Intégration des systèmes client-serveur
Portugal Dans la ville basse, juste au dessus des quais du DOURO, on trouve la Bourse et des boutiques actives, comme cette échoppe de Morue.
70 : 72 : soixante -dix : soixante -douze: Le nombre du jour :73
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Programmation Système et Réseau
Les sockets.
Les types composés Les enregistrements.
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Les RPC remote procedure call
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Les bases du protocole Modbus
Architecture Client/Serveur
Master 1 ère année Sécurité des Systèmes Informatique 1 Accès aux systèmes de fichiers  Montage: mount bin etc lib home wallace gromit tmp var spool cron.
Applications distribuées Introduction Jean-Jacques LE COZ.
Informatique 2A Langage C 4ème séance
Accès aux fichiers en C.
Transcription de la présentation:

RPC Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

RPC Remote Procedure Call : Système RPC 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 à l’exécution (run-time services) Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

RPC qui ? Sun OSF (Open Software Fondation) 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 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

Démarrage SE Client SE Serveur port c port b port a 2 PortMapper 1 Programme client 3 Programme Serveur Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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

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

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 : 100003 Lecture 6 Ecriture 8 Chaque programme possède également un numéro de version Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

Client / Serveur et appel de procédure Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

Stéphane Frenot - Département Télécommunication - SID - stephane Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

Client Serveur Interface procedure addition (x, y, total) procedure multiplication(x, y, total) Serveur Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

Exemple expediteur.c #include <unistd.h> main(){ float x=12.45; int n= -1234; write(STDOUT_FILENO,&n,sizeof(int)); write(STDOUT_FILENO,&x,sizeof(float)); } recepteur.c #include <unistd.c> 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 : 788267007 Flottant recu : 0.000000 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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

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 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

Services de la couche haute NFS rwall ruserd Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

Exemple #include <rpc/types.h> #include <rpc/xdr.h> #define ARITH_PROG 0x33333333 #define ARITH_VERS1 1 #define ADD_PROC 1 #define MULT_PROC 2 #define SQRT_PROC 3 struct couple {float e1, e2;}; int xdr_couple(); Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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

Exemple serveur #include <stdio.h> #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); } Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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); fprintf(stderr, "errreur registerrpc (rac)\n"); svc_run(); fprintf(stderr, "erreur sur svc_run\n"); exit(3); Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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

Client #include <stdio.h> #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); } Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr