Vous êtes sur la page 1sur 33

Chapitre III

Rim DRIDI
Faculté des Sciences de Tunis
rim.dridi@ensi-uma.tn
1. Introduction

◼ Réalisation d’une communication client/serveur:


1. Le client demande un service (envoi d’une requête)
2. Le serveur exécute le service
3. Le serveur retourne une réponse au client
◼ Communication:
◼ Bas niveau: utilisation directe du transport: Socket (TCP ou
UDP)
◼ Haut niveau: intégration dans un langage de programmation : RPC
(appels de procédures à distance)

2
1. Introduction

Les systèmes distribués modernes consistent souvent en des


milliers voire des millions de processus dispersés sur des réseaux
distants

→ Comment peuvent-ils communiquer ?

3
2.Définition et caractéristiques

 Une solution = Les RPC (Remote Procedure Call, ou RPC) :


Un modèle très répondu de communication entre des
processus distants d’un système distribué.

 Objectif : Un processus appel localement une procédure qui


est réellement implémentée sur une machine distante

4
2.Définition et caractéristiques

• 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
Lorsqu'un processus sur la machine A appelle une procédure sur le machine B,
le processus d'appel sur A est suspendu et l'exécution de la procédure a lieu sur
B.

5
2.Définition et caractéristiques
• Principe de base :
- le client appelle une fonction
- un “code” local transforme l’appel de fonction en un message, envoyé
au “serveur”
- un “code” sur le “serveur” transforme le message en un appel de fonction
- le serveur exécute l’appel de fonction
- même chose en sens inverse pour la réponse du serveur

6
2.Définition et caractéristiques

– Applications structurées en 2 parties


• Programme principal & un ensemble de procédures
– Fonctionnement
• programme principal et procédures sont liés
• au moment de l’exécution
– le programme principal appelle les procédures
en transmettant des paramètres d’entrée
– les procédures s’exécutent et retournent leurs
résultats dans les paramètres de sortie

7
2.Définition et caractéristiques

Principe de l’appel local de procédures


– le programme principal se comporte comme un client
– l’ensemble des procédures est assimilable à un ensemble de services
disponibles sur un serveur

8
2.Définition et caractéristiques
Exemple : calcul de fonction mathématiques

9
2.Définition et caractéristiques

• Propriétés des RPC:

– Facilité de programmation
– Concept familier aux programmeurs
– Interface avec une sémantique claire et simple
– Disponible sur la plupart des OS
– Portabilité
– Facilité de mise au point

10
2.Définition et caractéristiques

• Problèmes de réalisation:

– Transmission des paramètres


conversion entre la forme interne, propre à un langage, et une forme
adapté à la transmission.
– Gestion des processus
parallèle
– Réaction au défaillances
3 modes de défaillances indépendants: clients, serveur, réseau
• panne du client pendant le traitement de la requête
• panne du serveur avant ou pendant le traitement de la requête
• erreur de communication
11
3. Mise en œuvre

Mise en œuvre

Par migration Par messages


Par mémoire
partagée

12
3.1- Réalisation par migration
Principe Avantages Inconvénients
• Le code et les • Très efficace • Univers
données de la pour de d’exécutions
procédure distante nombreux appels homogènes
sont amenés sur le • Performances
site appelant pour y selon le volume
être exécutés par un de codes et de
appel local habituel. données.
• Problèmes de
partage des
objets

13
3.2- Réalisation en mémoire partagée répartie

Principe Avantages Inconvénients


La procédure est • Efficace en cas • Problèmes de
installée pour le client de nombreux partage selon la
comme pour le appels cohérence de la
serveur dans la mémoire mémoire répartie
virtuelle partagée
répartie

Mais réellement, elle est


dans l’espace mémoire
de serveur

14
3.4- Réalisation par message (RPC)

Principe Avantages Inconvénients


• Deux messages (au • Supporte • Peu efficace pour
moins) échangés : l’hétérogénéité de très nombreux
requête et réponse appels
o Le premier message
correspondant à la requête
est celui de l'appel de
procédure, porteur des
paramètres d'appel.
o Le second message
correspondant à la
réponse est celui du retour
de procédure porteur des
paramètres résultats.
15
3.4- Réalisation par message (RPC)
a. Notion des souches
 Deux modules
◼ la souche, ou talon client (client stub):
o Intercepteur (procédure) coté client qui reçoit l’appel en mode local,
o Le transforme en appel distant,
o Envoie message d’appel de procédure,
o Reçoit le message contenant les résultats après l’exécution,
o Retourne les résultats comme dans un retour local de procédure.
◼ la souche serveur (server stub):
o Intercepteur (procédure) coté serveur qui reçoit le message d’appel,
o Fait réaliser l’exécution sur le site serveur par la procédure serveur,
o Récupère les résultats et retransmet les résultats par message.

16
3.4- Réalisation par message (RPC)
a. Etapes de RPC par messages
1. Le client réalise un appel procédural
2. La souche client collecte les paramètres, les emballe (Assemblage)
dans le message d’appel
3. La souche client demande à une entité de transport locale la
transmission du message d'appel

17
3.4- Réalisation par message (RPC)
a. Etapes de RPC par messages
4. Le message d’appel est transmis sur un réseau au site serveur.
5. Le message d’appel est délivré à la souche serveur.
6. La souche serveur désassemble les paramètres

18
3.4- Réalisation par message (RPC)
a. Etapes de RPC par messages
7. La souche serveur réalise l’appel effectif de la procédure serveur.
8. La procédure serveur ayant terminé son exécution transmet à la souche
serveur dans son retour de procédure les paramètres résultats.
9. La souche serveur collecte les paramètres retour, les assemble dans un message

19
3.4- Réalisation par message (RPC)
a. Etapes de RPC par messages
10. La procédure souche serveur demande à l ’entité de transport serveur
la transmission du message de réponse.
11. Le message de réponse est transmis sur un réseau au site client.

20
3.4- Réalisation par message (RPC)
a. Etapes de RPC par messages
12. Le message de réponse est délivré à la souche client.
13. La souche client désassemble les paramètres résultats.
14. La souche client transmet les résultats au client en effectuant un retour
habituel de procédure en mode local.

21
4. Gestion du contrôle
Contrôle client: RPC en mode synchrone
L'exécution du client est suspendue tant que la réponse de
serveur n’est pas revenue.

Inconvénient: le client reste inactif


22
4. Gestion du contrôle
Contrôle client: RPC en mode synchrone
 Solution au problème de l'inactivité du client :
Création des activités concurrentes
 Création de (au moins) deux activités
(« processus léger » ou « thread ») sur le site client:
- L’une occupe le site appelant par un travail a faire
- L’autre gère l’appel en mode synchrone en restant bloquée: le
fonctionnement est exactement celui d'un appel habituel.

23
4. Gestion du contrôle
Contrôle serveur : Exécution séquentielle des
appels

 Les requêtes d’exécution sont traitées l’une après l’autre par le


serveur: exclusion mutuelle entre les traitements.
 Si la couche transport assure la livraison en séquence et que
l’on gère une file d’attente « FIFO: premier arrivé premier
servi », on a un traitement ordonné des suites d’appels.

24
4. Gestion du contrôle
Contrôle serveur : Exécution parallèle des
appels

 Le serveur créé un processus (un processus léger ou “thread”)


pour chaque appel
 Les appels sont exécutés en parallèle

25
4. Tolérance aux pannes
Appel local vs appel distant

 En appel local
- L'appelant et l'appelé s'exécutent sur la même machine: même
exécutant => mêmes performances et modes de pannes.
- L'appel et le retour de procédure sont des mécanismes
internes considérés comme fiables

26
4. Tolérance aux pannes
Appel local vs appel distant

 En appel distant
- Appelant et appelé peuvent tomber en panne
indépendamment.
- Le message d'appel ou celui de retour peuvent être perdus
(sauf si l'on emploie un protocole de transport fiable).
- Le temps de réponse peut-être très long en raison de
surcharges diverses (réseau, site appelé).

27
4. Tolérance aux pannes
Les pannes du serveur

1 - Attente indéfinie par le client d'une réponse qui ne viendra


jamais
2 - Utilisation d'un délai de garde par le site appelant
=> Signalement de l'absence de réponse au client qui décide de
la stratégie de reprise.
soit tentative d'exécution sur un autre site
soit reprise sur le même site (si relance)

28
4. Tolérance aux pannes
Les pannes du client

1. Confusion entre les nouvelles réponses attendues et les


réponses à d'anciennes requêtes.
=> Nécessité de distinguer les requêtes utiles des vieilles
requêtes.

2. L’état du client peut devenir inconsistants


=> Analyse des modifications de l’état du client .

29
4. Tolérance aux pannes
modes de pannes

1. Les pertes de messages


=> Lancer plusieurs exécutions de la même requête
2. Pannes temporelles
- Contraintes d’une application temps réel
- Temps de réponse doit parvenir avant une date limite

30
Conclusion

Avantages des RPC:

 De plus haut niveau: communications par message

 Une structure de contrôle bien connue: appel de


procédure

 S’intègre à l’univers réparti des concepts modernes de


génie logiciel

31
Conclusion

Une application en appel distant est une application


répartie qui risque de présenter à un moment toutes les
difficultés systèmes/réseaux:
- de conception.
- de désignation et de liaison.
- de présentation des données échangées.
- de synchronisation.
- de contrôle de concurrence.
- de tolérance aux pannes et de sécurité.
32
Bibliographie

1. Olivier Glück, Architecture et communications


Client/Serveur -2018
2. «Réseaux», 4ième édition, Andrew Tanenbaum, Pearson
Education, ISBN 2-7440-7001-7
3. «La communication sous Unix», 2ième édition, Jean-Marie
Rifflet, Ediscience international, ISBN 2-84074-106-7
4. «Analyse structurée des réseaux», 2ième édition, J. Kurose
et K. Ross, Pearson Education, ISBN 2-7440-7000-9

33

Vous aimerez peut-être aussi