University of Batna 2 Computer Science Department M1:ISIDS
2023/2024 Course:SID
1
Chapitre 2 : Les Middlewares (Intergiciels)
Les Systèmes Distribués offrent plusieurs avantages tels que la disponibilité et la répartition
de la charge. Cependant, la gestion de la communication et de la coordination entre ces
composants distribués peut être complexe. C'est là que le middleware intervient.
1. Définition du Middleware ?
Le middleware est une couche logicielle qui agit comme une interface entre les différentes
composantes d'un système distribué. Il facilite la communication, la gestion des ressources, la
synchronisation, et la sécurité entre les composants répartis. Il agit comme une passerelle afin
de faciliter l‟échange de données entre deux systèmes distincts.
Le premier but des technologies du middleware est de résoudre le problème d‟intégration des
logiciels. Sachons que l‟ajout d„une application à un environnement informatique comportant
n applications, conduit à construire n liens de communication et 2n interfaces. [SER1999]. Le
système devient complexe « Système dit spaghetti». La couche Middleware vient comme
solution à ce type de problème.
2. Les Avantages des Middleware
- Abstraction de la Complexité de la Communication : Les middlewares fournissent
une couche d'abstraction qui masque la complexité de la communication réseau et des
protocoles sous-jacents. Cela permet aux développeurs de se concentrer sur la logique
métier de leurs applications plutôt que sur les détails techniques de la communication.
- Interopérabilité : Les middlewares facilitent l'interopérabilité entre des composants
distribués écrits dans différents langages de programmation. Cela signifie que vous
Problème : système Spaghetti
Solution : Middleware
University of Batna 2 Computer Science Department M1:ISIDS
2023/2024 Course:SID
2
pouvez combiner des technologies hétérogènes pour construire des systèmes
distribués.
- Réutilisation : Les middlewares permettent de réutiliser des composants logiciels, des
services, ou des objets distribués. Cela favorise la modularité, la réutilisation du code,
et réduit le développement d'applications.
- Scalabilité : Les middlewares sont conçus pour évoluer de manière transparente. Ils
permettent de gérer de manière efficace une croissance de la charge et de la demande,
ce qui est essentiel dans les environnements distribués.
- Sécurité : Les middlewares proposent souvent des mécanismes de sécurité intégrés
pour protéger la communication et les données dans un environnement distribué.
- Gestion des Transactions : Certains middlewares offrent des fonctionnalités de
gestion des transactions, ce qui permet de garantir la cohérence des données dans un
système distribué, même en cas d'échec.
- Gestion de la File d'Attente : Les middlewares orientés message (MOM) offrent des
mécanismes de gestion de la file d'attente, qui sont utiles pour la communication
asynchrone entre les composants.
- Extensibilité : Les middlewares sont souvent extensibles, ce qui signifie que vous
pouvez ajouter de nouvelles fonctionnalités ou composants à votre système distribué
sans remettre en cause l'architecture globale.
3. Différents types de middleware :
Le type d‟unité distribuée de traitement fait l‟objet de la classification des middlewares,
Middleware par file d'attente ou échange de messages, Middleware par appel de procédures
éloignées, et Middleware orienté objet, comme : RMI, CORBA, et COM
4. Middleware Orienté Message (MOM)
Le Middleware Orienté Message (Message Oriented-Middleware - MOM) est une catégorie
spécifique de middleware largement utilisée dans les systèmes distribués. Le MOM est ba
sur un modèle de communication asynchrone, où les composants communiquent au moyen
d'échanges de messages.
4.1. Principe de fonctionnement :
1. Producteurs de Messages : Les producteurs de messages sont les composants qui
créent et envoient des messages dans le système. Ces messages contiennent des
informations et des instructions pour d'autres composants.
2. File d'Attente (Queue) : Les messages sont stockés dans une file d'attente (queue)
gérée par le middleware. La file d'attente permet de stocker les messages de manière
fiable jusqu'à ce qu'ils soient consommés.
3. Consommateurs de Messages : Les consommateurs de messages sont les composants
qui reçoivent et traitent les messages à partir de la file d'attente. La communication est
asynchrone, ce qui signifie que les consommateurs peuvent traiter les messages à leur
propre rythme.
University of Batna 2 Computer Science Department M1:ISIDS
2023/2024 Course:SID
3
4. Publication/Abonnement (Publish/Subscribe) : Certains systèmes MOM utilisent le
modèle de publication/abonnement. Les producteurs publient des messages dans des
"sujets" ou des "thèmes", tandis que les consommateurs s'abonnent à des sujets
spécifiques pour recevoir les messages qui les intéressent.
4.2. Caractéristiques :
Les réalisations de file d'attente permettent une communication entre différents systèmes
informatiques (« serveurs »), connectant plusieurs applications, ou plusieurs systèmes
d'exploitation.
Transport de messages : Les messages comportent deux parties: l'en-tête technique, utilisée
par le MOM et les données qui peuvent être dans n'importe quel format.
Communication asynchrone : L'application émettrice d'un message et l'application
réceptrice du message n'ont pas besoin d'être actives en même temps. La file d'attente reçoit le
message de l'application émettrice et le stocke jusqu'à ce que l'application réceptrice vienne
lire le message.
Routage : pour router un message entre deux sites distants disposant chacun d'un MOM
installé localement.
Transformation des données : La plupart des MOM permettent de changer le format des
données contenues dans les messages pour les adapter à l'application réceptrice.
Fig :RabbitMQ EcoSystem
Fig : Communication
par message
University of Batna 2 Computer Science Department M1:ISIDS
2023/2024 Course:SID
4
Persistance des messages : Les messages présents dans les files d'attente peuvent être
sauvegardés sur un support physique pour en assurer la conservation en cas de panne.
Fiabilité : Chaque message envoyé par une application fait l'objet d'un accusé de réception
par le MOM. Chaque application qui consomme un message envoie un accusé de réception au
MOM. Couplé avec la persistance, ce mécanisme permet de garantir qu'aucun message ne
sera perdu dans son transfert entre les applications.
Avantages :
- Fiabili
- Cette technologie utilise une programmation traditionnelle (elle ne fait pas appel aux
dernières technologies de programmation orientée objet) alors l‟intervention du programmeur
au niveau du code pour les fonctions de communication (structure du message, méthode de
transmission, etc.) est facile.
Inconvénients :
- L‟application émettrice, ainsi que l‟application réceptrice doivent prendre en charge la
construction du message.
- Pas de standard, cela signifie qu‟un utilisateur ne peut pas combiner 2 produits middleware
en provenance de 2 vendeurs différents.
4.3. Exemples d’implémentation de Middleware MOM :
Apache Kafka : Kafka est une plateforme de streaming de données distribuée qui est souvent
utilisée pour la transmission de messages en temps réel.
RabbitMQ : est un système de messagerie open-source basé sur le protocole AMQP
(Advanced Message Queuing Protocol). Il est populaire pour la communication asynchrone
dans les applications distribuées.
Apache ActiveMQ : est une implémentation open-source de Java Message Service (JMS),
qui est une API de messagerie standard pour la communication asynchrone en Java.
IBM MQ : (anciennement connu sous le nom de WebSphere MQ) est un middleware de
messagerie d'entreprise largement utilisé pour la communication fiable entre les applications.
University of Batna 2 Computer Science Department M1:ISIDS
2023/2024 Course:SID
5
5. Middleware par appel de procédures éloignées (RPC):
5.1. Définition :
Remote Procedure Call (RPC) est un modèle de haut niveau pour les communications
Client-Serveur, dont le but est de Généraliser la notion d‟appel de procédures locales à un
environnement distribué. Il dote les développeurs avec des mécanismes plus simples pour
la construction des systèmes distribués.
5.2. Objectifs :
Le client a besoin d‟un moyen simple pour invoquer le serveur et se procurer quelques
services, Les RPC permettent aux clients de communiquer avec les serveurs en invoquant les
procédures de la même façon que l‟invocation conventionnelle (locale) des procédures dans
les langages de haut niveau,
Une RPC est conçue sur une invocation local de procédure, mais la procédure invoquée est
exécutée dans un autre processus et généralement sur une autre machine l‟objectif est de
Cacher la complexité du réseau au développeurs d‟applications distribuées (Sockets, numéro
de port, Formatage des donnée, ordre des octets,…).
5.3. Principe de fonctionnement :
Pour comprendre le principe de fonctionnement d‟un RPC il faut faire une projection sur
l‟appel de procédure locale :
Comment se déroule un appel à une procédure locale a=f(10, x)
Empiler 10 dans la pile et la valeur de x dans la pile.
Empiler l‟adresse de retour
Appel de la fonction f()
Exécution de la fonction
Retourner la valeur de retour dans un registre
Retour vers l‟adresse de retour
Fig : Rpc dans le modèle OSI
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!