Académique Documents
Professionnel Documents
Culture Documents
DÉVELOPPEMENT
D’APPLICATIONS
RÉPARTIES
Master 1 - Réseaux et Systèmes Distribués
Dr Ilham Kitouni
22-23 1
CHAPITRE3- COMMUNICATION
PARTIE 1
2
Sommaire
Introduction
Modèle conceptuel pour les SD
Types
de communication inter
processus
1. Communication par messages
2. Communication par mémoire partagée
3. Communication par évènements et notifications
4. Communication de groupe
5. Communication par flux
6. Appel de procédures à distance
7. Invocation de méthodes à distance
4
MODÈLES CONCEPTUELS DE SYSTÈMES DISTRIBUÉS
MODÈLES DE COMMUNICATION 9
Plusieurs types de communication:
1. Communication par messages
2. Communication par mémoire commune
3. Communication par évènements et
notifications
4. Communication de groupe
5. Communication par flux
6. Appel de procédures à distance
7. Invocation de méthodes à distance
…
10
TYPES DE COMMUNICATION
1. Communication par messages
Deux primitives de communication:
- Send
- Receive
Exemple:
process P process Q
… …
Send(M,Q); Receive(Msg,P);
… …
end end
TYPES DE COMMUNICATION 11
1- Communication par messages
Deux problèmes à considérer:
a) Synchronisation
- Communication synchrone: primitives bloquantes
- Communication asynchrone: primitives non
bloquantes: utilisation de buffers
b) Canal de transmission
- Fiable, non fiable.
- Unidirectionnel, bidirectionnel
TYPES DE COMMUNICATION 12
1. Communication par messages
Communication synchrone:
Lacommunication est dite
synchrone quand les actions
d'envoi et de réception ne
A B
sont possibles que si :
l'émetteur se trouve dans msg1
un état d'envoi,
et le récepteur dans bloqué
un état de réception.
msg2
13
TYPES DE COMMUNICATION
1. Communication par messages
Communication synchrone:
Avantage: facile à implémenter
Inconvénient:
A attend/dépend de B
Communication un-à-un
Beaucoup de synchronisation tue la
concurrence!
14
TYPES DE COMMUNICATION
1. Communication par messages
Communication asynchrone:
Exemple: téléphone avec répondeur
L’action d'envoi n'est pas bloquante
15
TYPES DE COMMUNICATION
1. Communication par messages
b) Canal de transmission
• Défini par la paire (Expéditeur, Destinataire)
• Une des solutions: sockets
- socket = <protocole de transport,
@source, port source, @destination, port
destination>
ou
- socket = <@IP, port>
Types de communication
16
2. Communication par mémoire
partagée
• Mécanismes de synchronisation classique
comme les sémaphores.
• Pas de problème de canal de transmission:
les processus peuvent communiquer sans se
connaitre.
• Pas convenable pour les applications
client/serveur où le serveur encapsule les
ressources pour des raisons de protection.
17
Types de communication
2- COMMUNICATION PAR MÉMOIRE
PARTAGÉE
Motivations
(Re)placer le programmeur d'application dans les conditions
d'un système centralisé
Utiliser une mémoire commune comme espace de
communication
Synchronisation par variables partagées
Avantages attendus (pour le programmeur)
Simplicité : distribution "transparente"
Efficacité : utilisation des paradigmes usuels de la programmation
concurrente
Limites
utilisation des outils de développement existants : langages,
compilateurs, débuggeur, . . . 18
mise en œuvre "efficace" d'une mémoire partagée/Distribuée
3. Communication par évènements
et notifications
- Système centralisé: un clic sur une bouton de la souris constitue
un évènement qui est notifié aux objets responsables de
l’affichage
- Système distribué: mécanisme de publication/abonnement
(publish-subscribe): un objet qui génère des évènements publie
le type d’évènement qu’il rend observable aux autres objets. Les
objets qui souhaitent recevoir des évènements souscrivent un
abonnement.
- Hétérogénéité
- Asynchronisme: couplage faible
20
TYPES DE COMMUNICATION
3. Communication par évènements et
notifications
21
Types de communication
3. Communication par évènements et
notifications
Hub and spoke
Protocole de communication point-à-point
Serveur centralisé de gestion des événements
22
3. Communication par évènements
et notifications
Snowflake
Protocole de communication point-à-point
Serveur de gestion des événements réparti
23
3. Communication par évènements
et notifications
Bus de Messages
Protocole de communication multicast
Service réparti de gestion des événements
24
4. Communication de groupe
- Communication entre un processus et un
groupe de processus
- Utilise la communication *-cast: envoyer un
message vers un groupe de processus et
non plus un seul processus
- Exemple: notification d’abonnés
TYPES DE COMMUNICATION 25
4. Communication de groupe
26
5. Communication par flux (streaming)
- Représentation continue de l’information: les
éléments d’information ont une relation
temporelle.
- Exemple: animation vidéo
TYPES DE COMMUNICATION 27
5. Communication par flux
(streaming)
Flux de données:
- Simple, ex: son mono
- Complexe, ex: son stéréo, film
Applications: Vidéoconférence
28
TYPES DE COMMUNICATION
29