DAR: Chapitre 3, Partie 1 27/10/2024
Amen Ben Hadj Ali
Chapitre 3- Mise en Œuvre du Modèle CS
2
Plan
Chapitre 3
Mise en Œuvre du Modèle
Client Serveur 1 Introduction
2 RPC
3 RMI
©Amen Ben Hadj Ali
amenbha@[Link]
ISI-L3CS 2024-2025
1 Le modèle Client-Serveur : Mise en œuvre Chapitre 3- Mise en Œuvre du Modèle CS
3 4
Par des opérations de “bas niveau” Plan
Utilisation de primitives du système de communication
Exemple : sockets
Mode non connecté (UDP)
Mode connecté (TCP) 1 Introduction
Par des opérations de “haut niveau”
Utilisation d’un middleware spécialisé 2 RPC
Contexte : langage de programmation
Appel de procédure à distance
3 RMI
Contexte : objets répartis
Appel de méthodes, création d’objets à distance
2 RPC: principe 2 RPC: principe
5 6
RPC : permet à un processus p, implanté sur un site C, d’exécuter une RPC permet d’étendre la notion « d’appel de procédure » à un système
procédure P sur un site distant S, avec un effet globalement identique à réparti
celui qui serait obtenu par l’exécution locale de P sur C. Un client a une description (ou une interface) de procédures disponibles
Processus client p Processus Serveur s chez un serveur distant
Procédure distante P
Le client invoque une procédure à distance;
Le serveur exécute localement cette procédure;
Le serveur renvoie au client le résultat (type de retour) de la procédure.
Site client C Site Serveur S
1
DAR: Chapitre 3, Partie 1 27/10/2024
Amen Ben Hadj Ali
2 RPC: principe 2 RPC: principe
7 8
Utilisation d’un processus s (ou serveur) qui exécute la procédure P sur le site S. Le Le rôle des talons : factoriser le code qui ne dépend que du service à exécuter, en
processus client p reste bloqué pendant l’exécution de P et il est réactivé au retour de P. particulier la réalisation des fonctions d’emballage et de déballage qui nécessitent que
Deux procédures appelées talons. Le talon client (stub ), sur le site appelant, fournit au soit défini un format standard pour la représentation des paramètres.
processus client une interface identique à celle de la procédure appelée ; le talon o En l’absence de défaillances, les fonctions du talon client, exécutées par le
serveur (skeleton ), sur le site appelé, réalise pour le processus serveur une interface processus appelant, sont les suivantes :
identique à celle d’un appel local.
Talon Client Stub Talon Serveur Skeleton
procédure sur le site client procédure sur le site serveur
• reçoit l’appel en mode local, • reçoit l’appel sous forme de message,
• "emballe" les paramètres et le • "déballe" les paramètres d'appel,
transforme en appel distant en envoyant • fait réaliser l’exécution sur le site
un message, serveur par la procédure de service
• attend les résultats en provenance du invoquée,
serveur, • "emballe" les paramètres résultats et
• "déballe" les paramètres résultats, et les retransmet par message.
les retourne au programme client comme • Enregistrement initial
dans un retour de procédure locale.
• Liaison initiale
2 RPC: principe 2 RPC : Exemple
9 10
Un langage déclaratif de type IDL (Interface description Language), proche du langage
C est utilisé par RPC pour la description d’interfaces.
Le compilateur RPC permet de générer les talons à partir de l’interface
2 RPC : Problèmes 2 Implantations du principe RPC
11 18
Passages de paramètres
Pour un appel de procédure à distance recréer les modes de passage de
Le RPC de Sun/ONC
paramètres usuels : L’OSF (Open Software Foundation)
La procédure distante n'a pas accès aux variables globales du client, aux périphériques
d'E/S (affichage d'un message d'erreur) L’OMG (Object Management Group) , à travers la
Un appel de procédure a un fonctionnement synchrone : une instruction suivant un appel
de procédure ne peut pas s’exécuter tant que la procédure appelée n’est pas terminée spécification d’architecture Corba
Désignation et liaison
Pour localiser un service et y accéder: il doit être enregistré dans un service de Java RMI
désignation lui-même connu du client.
Pour effectuer un appel, le client transforme le nom externe (symbolique) en une chaîne L’environnement DCOM
d’accès repose sur le nom interne (adresse). Transformation = liaison.
Problème d’hétérogénéité
HTTP
L’hétérogénéité des données se trouve à différents niveaux
le codage des données en mémoire: deux représentations coexistent utilisation d’un
format standard, eXternal Data Representation ou XDR
le codage des données par les compilateurs .
2
DAR: Chapitre 3, Partie 1 27/10/2024
Amen Ben Hadj Ali
2 RPC: Conclusion
19
Les approches pour la réalisation effective d’un appel
de procédure à distance utilisent des interfaces de
programmation de différents niveaux :
Envoi de messages (utilisation des sockets)
Appel de procédure avec langage de description
d’interface (IDL) et d’un générateur de talons
(RPCgen de Sun)
Plusieurs problèmes à différents niveaux
Appel de méthodes à distance : approche à objets
distribués (utilisation de Java RMI).