Construction d’Application Réparties
Cours #2: MIDDLEWARE
Samia BOULKRINAT
( Basé sur le cours de Assia HACHICHI )
CAR
1/19
COURS 2: MIDDLEWARE
Plan
I– Interaction par envoi de message
II– Interaction requête/réponse
III– Appel de procédures distantes
IV– Modèle des objets répartis
a - Notion de mandataire
b - Paradigme des objets répartis
c - Construction d’applications
V– Middleware (Intergiciel)
a - Principales Catégories d’Intergiciels
b - Propriétés des middlewares
CAR
c - Notion de service système
d - Invocation Implicite et Explicite
VI– Middleware à déployer 2/19
I– Interaction par envoi de message
CAR
3/19
II– Interaction requête/réponse
CAR
4/19
II– Interaction requête/réponse
CAR
5/19
III– Appel de procédures distantes
CAR
6/19
III– Appel de procédures distantes
CAR
7/19
IV– Modèle des objets répartis
CAR
8/19
IV.a– Notion de mandataire
Notion (indépendante) de mandataire (proxy):
But : substituer un représentant à la place d’un objet qui offre
les mêmes fonctionnalités (méthodes),
Intérêts : adapter le code de l’objet de manière transparente
pour l’utilisateur.
1. Répartir le client et le serveur,
2. Réutiliser des objets existants en leur ajoutant du code
(avant/après)
CAR Principe : le client utilise un mandataire à la place de l’objet
d’origine
1. Transparence pour le client
9/19
IV.a– Notion de mandataire
Fonctionnement :
Une classe X implémente l’interface I,
Le client utilise uniquement les méthodes de l’interface I,
Le mandataire implémente les méthodes de l’interface I.
Schéma général de fonctionnement :
CAR
10/19
IV.b– Paradigme des objets répartis
CAR
11/19
IV.c– Construction d’applications
Construction d’une application répartie :
Définir l’interface de l’objet réparti dans un langage L0,
(Décrit les fonctionnalités du serveur).
Ecrire le serveur dans un langage L1 :
1. Développer un objet implémentant l’interface,
2. Ecrire le serveur : allouer un objet serveur + exporter l’objet.
Ecrire le client dans un langage L2 :
CAR 1. Trouver le serveur,
2. Construire le mandataire à partir du serveur.
12/19
V– Middleware (Intergiciel)
Couche logicielle intermédiaire entre les applications et le réseau,
Permettant la dialogue entre les applications hétérogènes.
En anglais : Middleware
En anglais : Intergiciel qui est une classe de logiciels systèmes
implémentant une approche répartie: exemple CORBA
CAR
13/19
V.a– Principales Catégories d’Intergiciels
Intergiciels à messages (MOM : Message Oriented Middleware) :
1. JMS (Java Message Service de J2EE de Sun)
2. Microsoft Massage Queues Server, etc.
Intergiciels de base de données (ODBC)
Intergiciels à appel de procédure distante (RPC)
Intergiciels à objets répartis (CORBA, Java RMI, .NET Remoting
CAR
14/19
V.b– Propriétés des middlewares
Masquer les problèmes de la répartition :
− Facilité la programmation répartie
Masquer l’hétérogénéité des systèmes sous-jacent (matériel et logiciel)
− Uniformiser l’interface de haut niveau pour les développeurs
− Portabilité des applications
− Interopérabilité d’application hétérogènes : capacité de fonctionner
avec d’autres produits ou systèmes présents ou futurs sans restriction
d’accès et de mise en œuvre.
Supporter des applications tournant sur des plateformes matérielles et
logicielles différentes.
CAR
Fournir des services utiles pour des applications s’exécutant en
environnement réparti : désignation, cycle de vie, sécurité, transactionnel.
15/19
V.c– Notion de service système
Fournir des services communs à usage général.
1. Objets métiers :
• Appelés aussi objet fonctionnels
• Exemple : code d’application commerce électronique
2. Objets systèmes :
• Appelés aussi objets non-fonctionnels
• Exemple :
− Service de transaction,
− Service de persistance,
CAR
− Service de résolution de noms,
− Service de sécurité (cryptage, authentification, …).
16/19
V.c– Notion de service système
Services systèmes dans les systèmes à objets répartis :
1. Services réutilisables :
• Dans différents contextes applicatifs,
• Le contexte applicatif est souvent appelé code métier.
2. Services externes :
• Par rapport au code métier,
• Le code du service n’est pas embarqué dans le code métier,
CAR • En général implémentés sous la forme d’objets répartis.
17/19
V.d– Invocation Implicite et Explicite
Invocation Implicite et Explicite des services système :
CAR
18/19
VI– Middleware à déployer
Les middleware à mettre en œuvre dans le cadre de ce module sont :
.NetRemoting : Appel de méthodes à distance (TP3)
Ado.Net : Gestion de la persistance des données (TP4)
Composants : Middleware orienté composants (TP6)
Asp.Net : Middleware orienté Web (TP7)
CAR
19/19