INSA - ASI InfoRep : RPC 1/55
Informatique R´epartie
Remote Procedure Call de SUN
Alexandre Pauchet
INSA Rouen - D´epartement ASI
INSA - ASI InfoRep : RPC 2/55
Plan
1Introduction
2RPCL
3RPC en C
4RPC en Java
5Remarques et outils
INSA - ASI InfoRep : RPC 3/55
Introduction (1/3)
Principe g´en´eral
Caract´eristiques
Syst`eme de distribution de services propos´e par SUN au d´ebut des
ann´ees 80 (utilis´e pour le d´eveloppement de NFS)
Utilisation d’un protocole de (d´e)s´erialisation ind´ependant du client
et du serveur (XDR : eXternal Data Representation) :
La talon client s´erialise en XDR les arguments, envoie la requˆete au
serveur, r´ecup`ere le r´esultat et le “d´es´erialise”
le talon serveur “d´es´erialise” les arguments, ex´ecute le code demand´e,
s´erialise en XDR le r´esultat et l’envoie au client
Utilisation d’un serveur qui centralise les processus qui fournissent
des services RPC : le portmap
Lorsqu’un programme veut proposer des services, il s’enregistre aupr`es
du portmap en donnant un num´ero de programme, un num´ero de
version et un num´ero par service propos´e
INSA - ASI InfoRep : RPC 4/55
Introduction (2/3)
Principe g´en´eral
Plusieurs niveaux de programmation :
en utilisant une API restreinte (4 fonctions)
en utilisant toute l’API (≥20 fonctions), cela permet alors de
choisir le protocole de transport
faire de l’authentification de client
faire des appels de service asynchrones
faire des appels de fonction diffus´es (broadcast´es)
en utilisant le compilateur rpcgen et le langage RPCL
Attention !
Les services sont des fonctions : pas de passage de param`etre en
“Sortie” ou “Entr´ee/Sortie” ⇒Une seule valeur de retour
INSA - ASI InfoRep : RPC 5/55
Introduction (3/3)
Fonctionnement
...
clnt = clnt_create (host,
HELLO_WORLD_PROG,
HELLO_WORLD_VERSION_1,
"tcp");
...
result=hello_world_1(c,clnt);
Machine Cliente Machine Serveur
Programme client Programme serveur
portmap
...
svc_register(transp,
HELLO_WORLD_PROG,
HELLO_WORLD_VERSION_1,
hello_world_prog_1,
IPPROTO_TCP)
...
1
2
3
4
Inspiré du cours de N. Melab
http://rangiroa.essi.fr/cours/systeme2/02-rpcgen.pdf
1 / 55 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!