Sys Cours 3
Sys Cours 3
Sys Cours 3
Faculté d’Informatique
Les mécanismes de
communication dans un système
distribué
Introduction
Système distribué
Échange de messages entre les différents nœuds du système
Cela dépend de plusieurs paramètres:
• Topologie du réseau
• La nature des échanges
• Les contraintes de l’application
•Le mode client/serveur est un mode de fonctionnement dissymétrique dans lequel deux logiciels différents
sont nécessaires pour permettre les communications : un logiciel serveur et un logiciel client, nécessaire sur
toutes machines.
•Le logiciel client peut envoyer une requête au logiciel serveur. Le serveur traite la requête et se charge
d’envoyer la réponse au client concerné.
Fonctionnement d’un système client/serveur
Un system client /serveur fonctionne selon le schéma suivant :
Le client émet une requête vers le serveur grâce à son adresse IP et le port ; qui désigne un service particulier
du serveur.
Le serveur reçoit la demande et répond à l’aide de l’adresse de la machine client et son port
Client
• Interface d’utilisateur
• Saisie de requête
• Envoie de requête
• Attente du résultat
• Affichage du résultat
Serveur
• Gestion des requêtes (priorité)
• Exécution du service (séquentiel,
concurrent)
• Mémorisation ou non de l'état du client
Présentation de l’architecture à 2 niveaux
• le client demande une ressource et le serveur la lui fournit directement, en utilisant ses propres
ressources.
• Cela signifie que le serveur ne fait pas appel à une autre application afin de fournir une partie du
service.
Présentation de l’architecture à 3 niveaux
Caractéristiques
• Communication synchrone/asynchrone
• Destination des messages (Adresse IP, Numéro de port)
• Fiabilité (garantie de livraison des messages)
• Ordre des messages (même ordre d’envoi)
Les sockets
• Il s'agit d'un modèle permettant à divers processus de communiquer aussi bien sur une
même machine qu'à travers un réseau TCP/IP.
• . On distingue ainsi deux modes de communication:
• Le mode connecté (comparable à une communication téléphonique), utilisant le
protocole TCP. Dans ce mode de communication, une connexion durable est établie
entre les deux processus, de telle façon que la socket de destination n'est pas
nécessaire à chaque envoi de données.
• Le mode non connecté (analogue à une communication par courrier), utilisant le
protocole UDP. Ce mode nécessite l'adresse de destination à chaque envoi, et aucun
accusé de réception n'est donné.
Les sockets
• Mode bloquant:
• L'exécution du client est suspendue tant que la réponse
du serveur n'est pas revenue ou qu'une condition
d'exception n'a pas entraîné un traitement spécifique.
• Avantage: le flot de contrôle est le même que dans
l'appel en mode centralisé
• Inconvénient: le client reste inactif
Le Mutlicast
IP Multicast
• Permet à l’émetteut d’envoyer un seul paquet IP à un groupe
de destinataires
• Le groupe Multicast est spécifié avec la classe D
Communication de groupes
Notion de groupe
• Un groupe est composé de plusieurs membres qui peuvent joindre et quitter le groupe à tout
moment
• La communication se fait via le Multicast
• Types de groupes:
• Public/Fermé
• Monogroupe /Multigroupe
• Synchrone/asynchrone
• Ordre absolu : Les messages doivent être transmis aux récepteurs dans l'ordre exact de leur émission
• Ordre consistant: Les messages doivent être transmis aux récepteurs dans le même ordre
• Ordre causal: Si un événement d’émission d’un message est causalement lié à l’événement d’émission d’un
autre message, les deux messages doivent être reçus au niveau du récepteur dans un ordre correct qui reflète
cette relation de causalité.
Système d’abonnement
Caractéristiques
• Hétérogénité
• Mode asynchrone
Système d’abonnement
Fonctionnement
• Les émetteurs disséminent un évènement à travers une opération de publication et les récepteurs (abonnés)
expriment leurs intérêts pour les évènements à travers l’opération d’abonnement.
• Filtre des évènements
• Possibilité de se désabonner à travers une opération de désabonnement.
• L’évenèment est délivré aux abonnées concernés par l’opération de notification.
CORBA Event Service
• Le CORBA Event Service est un composant du Common Object Request
Broker Architecture (CORBA), une architecture de middleware pour la
communication entre objets répartis.
• Le CORBA Event Service permet la gestion d'événements asynchrones
dans un environnement distribué
• Le CORBA Event Service fournit un mécanisme de gestion d'événements
qui permet aux objets répartis de publier et de souscrire à des événements.
Cela permet aux composants logiciels de communiquer de manière
asynchrone en réagissant aux événements.
• Le CORBA Event Service gère la distribution d'événements aux abonnés,
en garantissant que seuls les abonnés appropriés reçoivent les événements
qui les concernent. Il peut gérer la filtration d'événements en fonction de
critères de sélection définis par les abonnés.
Les files de messages
• Permet de faire communiquer des applications qui s’éxécutent avec des horloges différentes.
• Communication entre des reseaux hétérogènes et des machines hors ligne
• Les émetteurs envoient les messages dans la file et récupèrent les messages à partir de la file
• La file est constuite selon l’ordre FIFO ou selon les priorités des messages
• Les récepteurs (ou consommateurs ) récupèrent les messages selon trois modes:
• Réception bloquante: bloquer le consommateur jusqu’a se que le message soit disponible
• Réception non bloquante: verifier l’état de la file et la disponibilité du message
• Réception en notification: générer une notification quand le message est disponible dans la file
WebSphere MQ
• WebSphere MQ (IBM MQ), est un produit de messagerie d'entreprise développé par IBM.
• Il s'agit d'une solution de middleware qui permet la communication asynchrone entre les applications et les
systèmes distribués.
• Les applications peuvent envoyer des messages à des files d'attente (queues) et les récupérer ultérieurement, ce
qui facilite la communication entre des applications qui ne fonctionnent pas nécessairement en même temps.
• Les messages sont stockés dans des files d'attente, ce qui permet de garantir que les messages ne sont pas
perdus en cas de panne d'une application ou d'un système.
• Les messages peuvent être récupérés dans l'ordre dans lequel ils ont été placés dans la file d'attente.
• Il prend en charge de nombreuses plateformes, y compris les systèmes mainframe, UNIX, Windows, et
d'autres. Il offre également des bibliothèques clientes pour différents langages de programmation, ce qui facilite
l'interopérabilité.
• Il assure une livraison fiable des messages. Si un message ne peut pas être remis au destinataire, il est conservé
dans la file d'attente jusqu'à ce que le destinataire soit disponible pour le traiter.
• Il est largement utilisé dans les environnements d'intégration d'entreprise, permettant de relier des applications
hétérogènes et de gérer des flux de données complexes.
• Il est largement utilisé dans de nombreux secteurs, notamment les services financiers, la santé, la logistique et
d'autres domaines où une communication fiable est essentielle.
Java Messaging Service
• Java Message Service (JMS) est une API Java qui permet la création, l'envoi, la réception
et le traitement de messages asynchrones entre les composants logiciels, généralement dans
un environnement distribué.
• Cette API facilite la communication entre les applications, les systèmes et les composants
au sein d'une architecture basée sur des messages.
• JMS est une API standardisée dans l'écosystème Java, ce qui signifie qu'elle peut être
utilisée avec divers fournisseurs JMS conformes à cette API. Les fournisseurs JMS les plus
couramment utilisés sont Apache ActiveMQ, IBM MQ, RabbitMQ.
• JMS gère différents types de messages, notamment les messages texte, les messages
binaires et les objets sérialisables.
• JMS offre des garanties de livraison des messages, ce qui signifie que les messages sont
généralement fiables et que des mécanismes sont en place pour gérer les erreurs et les
reprises en cas d'échec.
• JMS est couramment utilisé dans les environnements d'intégration d'entreprise pour la
communication entre les applications et les systèmes distribués, ainsi que pour la mise en
œuvre de modèles de messagerie avancés.
Mémoire partagée distribuée (DSM)
• La mémoire partagée répartie "shared distributed memory" , est un concept qui met en commun la mémoire
entre plusieurs nœuds dans un environnement distribué, de manière à permettre aux nœuds de partager des
données en mémoire comme s'ils accédaient à une mémoire partagée unique, même s'ils sont physiquement
répartis sur un réseau.
• Pour garantir que les données partagées restent cohérentes, la mémoire partagée répartie met en place des
modèles de cohérence, déterminant comment les écritures et les lectures sont gérées pour éviter les conflits
et garantir que les données sont à jour.
• La mémoire partagée répartie peut améliorer les performances en évitant la surcharge liée à la
communication réseau. Les nœuds peuvent accéder aux données partagées plus rapidement qu'ils ne le
pourraient s'ils devaient toujours les transférer sur le réseau
• La mémoire partagée répartie est utilisée dans divers domaines, notamment la programmation parallèle et
distribuée, les systèmes de calcul haute performance, les bases de données distribuées, les systèmes de
traitement en temps réel et les environnements de cloud computing.
• La mémoire partagée répartie est particulièrement utile pour les applications nécessitant une
communication et une collaboration efficaces entre nœuds distribués, tout en minimisant la latence associée
aux communications réseau.