1
2A-SI
3 – Prog. réseau et systèmes distribués
3.2 – Programmation par RPC et
JavaRMI
Stéphane Vialle
http://www.metz.supelec.fr/~vialle
Support de cours élaboré avec l’aide de l’équipe pédagogique du cours de SI
Programmation par RPC
et Java-RMI :
- Principes des RPC
- Utilisation d’un IDL
- Principes des Java-RMI
- Mode opératoire des Java-RMI
- Hiérarchie de classes Java
- Exemple de client-serveur en Java-RMI
- Limitations du déploiement
2
Programmation par RPC et Java-RMI
Principes des RPC
1ère version : Birrel & Nelson en 1984
L’utilisateur écrit toute l’application : le client, le serveur et
les mécanismes d’envoi et de réception de messages !!
Concepts simples, mais complexes à mettre en œuvre
Peu utilisé
SUN RPC en 1988
Plus simple,
Utilise « rpcgen » : génère une partie des fichiers de RPC
Utilise le DNS (localisation du serveur : adresse IP) +
Portmap (localisation du service : # port)
RPC = « Remote Procedure Call »
Objectif : appels locaux et distants avec la même syntaxe
Programmation par RPC et Java-RMI
Principes des RPC
Service RPC
(talon)
appel
Service RPC
(talon)
retour
Protocole de
communication
Protocole de
communication Appelé
retour
1
5
2
4
3
Réseau
Appel
Serveur (appelé)
Client (appelant)
3
Programmation par RPC et Java-RMI
Principes des RPC
Talon client : stub
C’est la procédure
d’interface du site client
qui reçoit l’appel en mode
local
le transforme en appel
distant en envoyant un
message
reçoit les résultats après
l'exécution
retourne les paramètres
résultats comme dans un
retour de procédure
Talon serveur : skeleton
C’est la procédure sur
le site serveur
qui reçoit l’appel sous
forme de message
fait réaliser l’exécution
sur le site serveur par la
procédure serveur (choix
de la procédure)
retransmet les résultats
par message
Programmation par RPC
et Java-RMI :
- Principes des RPC
- Utilisation d’un IDL
- Principes des Java-RMI
- Mode opératoire des Java-RMI
- Hiérarchie de classes Java
- Exemple de client-serveur en Java-RMI
- Limitations du déploiement
4
Un langage pour la spécification des interfaces entre
les clients et les serveurs :
Spécification commune au client et au serveur
Le « contrat » entre le client et le serveur
Définition des types et natures des paramètres
IN, OUT, IN-OUT, par valeur, par référence
Définition indépendante de la plate-forme
Indépendante du langage, de l’OS et de la machine
Utilisation de ces définitions pour générer
automatiquement :
Le talon client (ou proxy, ou stub)
Le talon serveur (ou squelette, ou skeleton)
« projection » dans un langage de programmation
Programmation par RPC et Java-RMI
Utilisation d’un IDL
Programmation par RPC et Java-RMI
Utilisation d’un IDL
Compilateur IDL
Interface
écrite en « IDL »
Talon coté client
(Stub)
Talon coté Serveur
(Skeleton)
Client Serveur
Protocole de
communication
Protocole de
communication
Réseau
5
Programmation par RPC
et Java-RMI :
- Principes des RPC
- Utilisation d’un IDL
- Principes des Java-RMI
- Mode opératoire des Java-RMI
- Hiérarchie de classes Java
- Exemple de client-serveur en Java-RMI
- Limitations du déploiement
Programmation par RPC et Java-RMI
Principes des Java-RMI
Un RPC objet intégré à Java
Interaction d'objets situés dans des espaces d'adressage
différents sur des machines distinctes
Simple à mettre en œuvre : un objet distribué se manipule
comme tout autre objet Java
Différences RPC/RMI :
Il existe un module de localisation sur le host-serveur distant
(la rmiregistry) : localisation de chaque objet-serveur.
Les RMI sont plus vulnérables aux pannes: impossible de
distinguer le cas de panne du serveur d’un problème réseau
(moins de détails dans les CR d’erreurs).
Les interfaces (contrats) sont des interfaces Java
L’IDL est Java lui-même
1 / 16 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !