21
Applications Réparties Remote Procedure Call Remote Procedure Call INSAT 2009-2010 Atef Ben Ismail

RPC

Embed Size (px)

Citation preview

Page 1: RPC

Applications RépartiesRemote Procedure CallRemote Procedure Call

INSAT 2009-2010

Atef Ben Ismail

Page 2: RPC

Appel de procédure à distance : définition

� Appel de procédure à distance (Remote Procedure Call, ou RPC) : un outil pour

construire des applications client)serveur dans un langage de haut niveau.

� L’appel et le retour ont lieu sur un site ; l’exécution se déroule sur un site

distinct

Processus P

P (x,y, …)

Processus P

2 Application Réparties INSAT 2010

ProcedureP (x,y, …)

P (x,y, …)

L’effet de l’appel doit être identique dans les deux situations. Mais cet objectif ne peutêtre atteint en toute rigueur en présence de défaillances.

Page 3: RPC

� Facilité de programmation

• La complexité des protocolesde communication est cachée

� Facilité de mise au point: une application peut être mise au point sur un site

unique, puis déployée sur plusieurs sites

� Portabilité: résulte de l’utilisation d’un langage de haut niveau

• Indépendance par rapport au système de communication

RPC: avantages

• Indépendance par rapport au système de communication

3 Application Réparties INSAT 2010

Page 4: RPC

� Transmission des paramètres (conversion entre la forme interne, propre à un

langage, et une forme adaptée à la transmission)

� Gestion des processus

� Réaction aux défaillances

• Trois modes de défaillance indépendants : client, serveur, réseau

RPC: problèmes

4 Application Réparties INSAT 2010

Page 5: RPC

RPC: mise en oeuvre

Talon/Souche (Stub) Client

Talon/Souche (Stub) Serveur

5 Application Réparties INSAT 2010

Les talons client et serveur sont créés à partir d’une description d’interface (IDL)

Page 6: RPC

� 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

Notion de souches

� 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")....

6 Application Réparties INSAT 2010

Page 7: RPC

Talon client - stub

� procédure d’interface sur le site client

• reçoit l’appel en mode local,

• "emballe" les paramètres et le transforme en appel distant en envoyantun message,

RPC: rôles des talons

Talon Serveur- skeleton

� procédure d’interface sur le site client

• reçoit l’appel sous forme de message,

• " déballe" les paramètres d'appel,

• fait réaliser l’exécution sur le site serveur par la procédure de service

• attend les résultats en provenance du serveur,

• "déballe" les paramètres résultats, et les retourne au programme client "comme” dans un retour de procédure local.

7 Application Réparties INSAT 2010

serveur par la procédure de service invoquée,

• "emballe" les paramètres résultats et les retransmet par message.

Page 8: RPC

RPC: étape d’appel

8 Application Réparties INSAT 2010

Page 9: RPC

� Motivations

• Spécification commune au client et au serveur

• contrat entre le client et le serveur

• Définition du type et de la nature des paramètres (IN, OUT, IN-OUT)

• Indépendance des langages de programmation

� Principes directeurs

• Langage déclaratif

Langages de description d'interfaces (IDL)

• Langage déclaratif

• Outils de génération des talons (stub et skeleton)

9 Application Réparties INSAT 2010

Page 10: RPC

IDL: chaîne de compilation

10 Application Réparties INSAT 2010

Page 11: RPC

Chaîne de production pour l’appel de procédure à distance

11 Application Réparties INSAT 2010

Page 12: RPC

La réalisation de l’appel de procédure à distance soulève divers problèmes

techniques:

� Passage de paramètres

� Désigantion

� Gestion de l'Hétérogénéité

� Traitement des défaillances

RPC: Quelques problèmes de mise en œuvre

� Traitement des défaillances

12 Application Réparties INSAT 2010

Page 13: RPC

� Passage de paramètres par référence impossible

• Passage par valeur

• Passage par copie/restauration

� Passage de structures dynamiques (tableaux de taille variable, listes, arbres,

graphes, etc.)

� Hétérogénéité des machines

Passage de paramètres

• Byte-ordering : ordre de stockage des octets différent (little endian (Intel), big endian

(Sun-SPARC))

• Représentation des arguments : codes des caractères, C1 et C2, virgule flottante, etc.

13 Application Réparties INSAT 2010

Page 14: RPC

� Problèmes: Comment le client détermine l’adresse du serveur (et vice-versa)

� Mise en œuvre : statique ou dynamique

• statique : localisation du serveur connue à la compilation

• dynamique : localisation déterminée à l'exécution (au premier appel)

– séparer connaissance du nom du service de la sélection de la procédure qui va l ’exécuter

– permettre l’implémentation retardée

Désignation

14 Application Réparties INSAT 2010

Page 15: RPC

� Problème : représentation des données

• Conversion nécessaire si le site client et le site serveur

– n ’utilisent pas le même système de codage (big endian versus little endian)

– utilisent des formats internes différents (pour les types de base :caractère, entier, flottant, …)

� Solutions

• Syntaxe abstraite de transfert ASN 1

Gestion de l'Hétérogénéité

• Représentation externe commune : XDR Sun (non optimal si même représentation)

• Représentation locale pour le client et conversion par le serveur

• Choix d'une représentation parmi n (standard), conversion par le serveur

• Négociation client serveur

15 Application Réparties INSAT 2010

Page 16: RPC

� Difficultés du traitement des défaillances

• Le client n’a pas reçu de réponse au bout d’un délai de garde fixé. 3 possibilités :

a) Le message d’appel s’est perdu sur le réseau

b) L’appel a été exécuté, mais le message de réponse s’est perdu

c) Le serveur a eu une défaillance

– c1: Avant d’avoir exécuté la procédure

– c2 : Après avoir exécuté la procédure mais avant d’avoir envoyé la réponse

• Si le client envoie de nouveau la requête

– Pas de problème dans le cas a)

Traitement des défaillances

– Pas de problème dans le cas a)

– L’appel sera exécuté 2 fois dans le cas b)

– Remède : associer un numéro unique à chaque requête

– Divers résultats possibles dans le cas c) selon remise en route du serveur

� Conséquences pratiques sur la conception des applications

• Construire des serveurs “sans état” (donc toute requête doit être self-contenue, sans référence à un “état” mémorisé par le serveur)

• Prévoir des appels idempotents (2 appels successifs ont le même effet qu’un appel unique). Exemple : déplacer un objet

– move(deplacement_relatif) : non idempotent

– move_to(position absolue) : idempotent

16 Application Réparties INSAT 2010

Page 17: RPC

� Ecrire le contrat toto.x dans le langage RPCL

� Compiler le contrat avec RPCGEN

• toto.h : déclarations des constantes et types utilisés dans le code généré pour le client et le serveur

• toto_xdr.c : procédures XDR utilisés par le client et le serveur pour encoder/décoder les arguments,

• toto_clnt.c : procédure stub côté client

• toto_svc.c : procédure stub côté serveur

Méthodologie de développement

• toto_svc.c : procédure stub côté serveur

� Ecrire le client (client.c) et le serveur (serveur.c)

• Serveur.c : implémentation de l’ensemble des procédures

� Compilation

• (g)cc serveur.c toto_svc.c toto_xdr.c -o Serveur

• (g)cc client.c toto_clnt.c toto_xdr.c -o Client

� Exécution

• rsh «host» Serveur

• Client «host» «liste d’arguments»

17 Application Réparties INSAT 2010

Page 18: RPC

Méthodologie Synthèse

18 Application Réparties INSAT 2010

Page 19: RPC

� SUN ONC/RPC

Open Network Computing / Remote Procedure Call

� OSF DCE

Open Software Foundation - Distributed Computing Environnment

� Systèmes de gestion de bases de données: procédures stockées.

RPC traditionnelle: implémentation

19 Application Réparties INSAT 2010

Page 20: RPC

� Avantages

• Abstraction (les détails de la communication sont cachés)

• Intégration dans un langage : facilite portabilité, mise au point

• Outils de génération, facilitent la mise en oeuvre

� Limitations

• La structure de l’application est statique : pas de création dynamique de serveur, pas de possibilité de redéploiement entre sites

Conclusions sur l’appel de procédure à distance (RPC)

de possibilité de redéploiement entre sites

• Pas de passage des paramètres par référence

• La communication est réduite à un schéma synchrone

• La persistance des données n’est pas assurée (il faut la réaliser explicitement par sauvegarde des données dans des fichiers)

• Des mécanismes plus évolués visent à remédier à ces limitations

– Objets répartis (ex : Java RMI, CORBA) pour les 2 premières

– Bus à messages (Message Oriented Middleware)

– Composants répartis (ex : EJB, Corba CCM, .Net)

20 Application Réparties INSAT 2010

Page 21: RPC

www.alcatel-lucent.comINSAT 2009-2010

21 | A look Forward | January 2010

INSAT 2009-2010