0% ont trouvé ce document utile (0 vote)
29 vues29 pages

Middleware Design Pattern

Les systèmes répartis sont des ensembles d'ordinateurs interconnectés travaillant ensemble pour atteindre un objectif commun, offrant des avantages tels que la scalabilité et la tolérance aux pannes. Le middleware, un logiciel intermédiaire, facilite la communication entre applications distribuées et résout des problématiques comme la gestion des transactions et la sécurité. Différents modèles de répartition, tels que client/serveur et pub/sub, présentent des caractéristiques variées en termes de tolérance aux pannes et de scalabilité.

Transféré par

ndalefndalef
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
29 vues29 pages

Middleware Design Pattern

Les systèmes répartis sont des ensembles d'ordinateurs interconnectés travaillant ensemble pour atteindre un objectif commun, offrant des avantages tels que la scalabilité et la tolérance aux pannes. Le middleware, un logiciel intermédiaire, facilite la communication entre applications distribuées et résout des problématiques comme la gestion des transactions et la sécurité. Différents modèles de répartition, tels que client/serveur et pub/sub, présentent des caractéristiques variées en termes de tolérance aux pannes et de scalabilité.

Transféré par

ndalefndalef
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

SYSTÈMES RÉPARTIS

SYSTÈMES RÉPARTIS
1.Définition :
1. Un ensemble d'ordinateurs interconnectés travaillant de manière
coordonnée pour atteindre un objectif commun.
2. Exemples concrets : systèmes de réservation en ligne, plateformes de
streaming, réseaux sociaux.

2.Pourquoi utiliser des systèmes répartis ?


1. Scalabilité : Capacité à évoluer en fonction des besoins (ajout de nœuds).
2. Tolérance aux pannes : Redondance des composants pour augmenter la
fiabilité.
3. Performances accrues : Répartition des charges pour optimiser les temps
de réponse.
CARACTÉRISTIQUES ET
PROPRIÉTÉS DES SYSTÈMES
RÉPARTIS
1.Caractéristiques principales :
1. Transparence : L'utilisateur ne perçoit pas le caractère réparti du système
(localisation, accès, échec, etc.).
2. Scalabilité : Adaptabilité à la croissance des utilisateurs et des données.
3. Hétérogénéité : Capacité à intégrer des matériels et logiciels divers.
4. Concurrence : Multiples processus ou utilisateurs accédant aux ressources
simultanément.

2.Propriétés importantes :
1. Fiabilité et tolérance aux pannes : Gestion des pannes de manière
transparente.
2. Consistance : Maintenir une vue cohérente des données malgré les
modifications concurrentes.
3. Disponibilité : Assurer un service continu même en cas de défaillance.
QU'EST-CE QU'UN
MIDDLEWARE ?
MIDDLEWARE
• Définition : Un logiciel intermédiaire qui connecte
des applications ou services distribués, facilitant
leur communication et leur interaction.
• Exemples : CORBA, Java RMI, REST APIs, Kafka.
•Objectif principal : Abstraire la complexité
des systèmes distribués pour simplifier le
développement et l'intégration d'applications.
POURQUOI UTILISER UN
MIDDLEWARE ?
•Avantages du Middleware : •Problématiques résolues :
• Abstraction des • Gestion des transactions.
communications réseau. • Sécurité des
• Interopérabilité entre communications.
systèmes hétérogènes. • Tolérance aux pannes.
• Simplification du
développement
d'applications distribuées.
ARCHITECTURE DU
MIDDLEWARE
•Composants clés :
• Interface API : Fournit des services standardisés aux applications.
• Serveur de Middleware : Gère les communications entre clients et
serveurs.
• Modules supplémentaires : Sécurité, gestion des transactions,
journalisation.

•Architecture en couches :
• Couche transport, couche communication, couche services d’application.
TYPES DE
MIDDLEWARE
MIDDLEWARE ORIENTÉ
COMMUNICATION
•RPC (Remote Procedure Call) :
• Appel de fonctions à distance comme si elles étaient locales.
• Avantage : Simplicité d'utilisation.
• Inconvénient : Faible tolérance aux pannes.

•RMI (Remote Method Invocation) :


• Spécifique à Java, permet d'invoquer des méthodes sur des objets distants.
MIDDLEWARE ORIENTÉ
MESSAGERIE
•Message-Oriented Middleware (MOM) :
• Permet la communication asynchrone via des files d'attente (queues).
• Exemples : RabbitMQ, ActiveMQ.
• Cas d'utilisation : Applications nécessitant une forte tolérance aux pannes
(ex. systèmes financiers).

•Pub/Sub (Publish/Subscribe) :
• Découplage entre les producteurs et les consommateurs.
• Exemple : Kafka pour la diffusion d'événements en temps réel.
MIDDLEWARE ORIENTÉ
OBJETS
•CORBA (Common Object Request Broker Architecture) :
• Standard pour les applications orientées objets distribuées.
• Avantage : Indépendant du langage de programmation.
• Inconvénient : Complexité et surcoût en termes de performance.

•DCOM (Distributed Component Object Model) :


• Développé par Microsoft pour les applications Windows.
MIDDLEWARE BASÉ SUR
LES SERVICES
•APIs RESTful :
• Utilisation de HTTP pour la communication entre services.
• Avantage : Facilité d’utilisation et adoption généralisée.

•gRPC (Google Remote Procedure Call) :


• Basé sur HTTP/2, offre des performances optimisées pour les microservices.
• Cas d'utilisation : Services nécessitant une faible latence.
POUR LE FUTUR
•Avancées récentes :
• Middleware cloud-native (Kubernetes, Istio).
• Middleware pour l’IA et le Machine Learning (TensorFlow Serving).

•Perspectives d'avenir :
• Middleware orienté microservices et architectures serverless.
• Intégration avec des technologies émergentes (Blockchain, Edge
Computing).
MODÈLES DE
RÉPARTITION
MODÈLES DE RÉPARTITION
•Définition : Organisation des systèmes distribués où les tâches
sont réparties entre différents nœuds (ordinateurs, serveurs,
services).
•Objectifs principaux :
• Optimiser les performances.
• Améliorer la tolérance aux pannes.
• Faciliter la scalabilité des applications.
MODÈLE CLIENT/SERVEUR
•Concept :
•Un client envoie des requêtes à un serveur, qui répond avec les
résultats.
•Centralisation de la logique métier sur le serveur.

•Exemples : Applications web, bases de données


centralisées.
•Avantages : Simplicité de déploiement, sécurité
centralisée.
•Inconvénients : Goulot d'étranglement sur le serveur,
faible tolérance aux pannes.
MODÈLE COMMUNICATION
PAR MESSAGE
•Concept :
• Communication asynchrone entre systèmes via des files d'attente (queues).
• Les messages sont envoyés sans attendre une réponse immédiate.

•Exemples : RabbitMQ, ActiveMQ, JMS.


•Cas d'utilisation : Systèmes d'e-commerce pour la gestion des
commandes, traitement d'événements.
•Avantages : Découplage des composants, tolérance aux pannes.
•Inconvénients : Complexité de gestion des files d'attente, latence
accrue.
MODÈLE
PUBLISH/SUBSCRIBE
(PUB/SUB)
•Concept :
• Les producteurs publient des messages à un canal auquel les
consommateurs s'abonnent.
• Découplage total entre l'émetteur et le récepteur.

•Exemples : Kafka, MQTT pour l'IoT.


•Avantages : Scalabilité, diffusion en temps réel.
•Inconvénients : Difficulté à garantir la consistance, gestion de la
sécurité.
COMPARAISON DES
MODÈLES

Communication
Critère Client/Serveur Pub/Sub
par Message
Couplage Fort Faible Très faible
Tolérance aux
Moyenne Élevée Élevée
pannes
Scalabilité Limitée Bonne Excellente
PATRONS DE
CONCEPTION
INTRODUCTION AUX
PATRONS DE CONCEPTION
•Définition : Solutions standardisées pour résoudre des problèmes
récurrents dans le design logiciel.
•Objectif : Favoriser la réutilisabilité, faciliter la maintenance et
améliorer la robustesse des systèmes distribués.
PATRON PROXY
•Concept : Intermédiaire qui contrôle l’accès à un autre objet.
•Types de Proxy : Proxy distant, Proxy de protection, Proxy de
cache.
•Exemple : Proxy HTTP pour la mise en cache des pages web.
•Cas d'utilisation : Optimisation des performances, filtrage des
accès.
PATRON FABRIQUE
(FACTORY)
•Concept : Fournit une interface pour créer des objets sans
spécifier leur classe concrète.
•Avantages : Encapsulation du processus d'instanciation, flexibilité
accrue.
•Exemple : Gestion des connexions à une base de données (ex :
ConnectionFactory).
•Cas d'utilisation : Scénarios où les types exacts d'objets à créer ne
sont pas connus à l'avance.
PATRON WRAPPER
(ADAPTATEUR)
•Concept : Convertit l'interface d'une classe pour qu'elle soit
compatible avec une autre.
•Exemple : Adapter une API externe pour qu'elle fonctionne avec un
ancien système.
•Avantages : Facilite l'intégration de systèmes hétérogènes.
•Cas d'utilisation : Intégration de systèmes tiers dans une
architecture existante.
PATRON INTERCEPTEUR
(INTERCEPTOR)
•Concept : Intercepte des appels pour y ajouter des fonctionnalités
(sécurité, logs).
•Exemple : Intercepteur de requêtes HTTP pour vérifier les
autorisations.
•Avantages : Extensibilité, séparation des préoccupations.
•Cas d'utilisation : Filtrage de requêtes dans des applications web.
DISCUSSION
QUESTIONS

•Quels sont les avantages et inconvénients de


chaque modèle de répartition ?
•Comment choisir le bon modèle pour une
application distribuée ?
•Quel patron de conception utiliser pour
améliorer la modularité d’un système ?
ARTICLE "A SURVEY ON
NETWORKED DATA STREAMING
WITH APACHE KAFKA"

Vous aimerez peut-être aussi