Système Distribué avec CORBA
Système Distribué avec CORBA
Yassamine Seladji
[Link]@[Link]
17 mars 2020
1 / 38
Système Distribué avec CORBA
Introductions
I En informatique distribuée, l’information est répartie entre
différents serveurs du systèmes.
2 / 38
Système Distribué avec CORBA
Introductions
I En informatique distribuée, l’information est répartie entre
différents serveurs du systèmes.
I Les applications serveurs peuvent être implémenté avec des
langages différents, et tourné sur différentes plateformes.
2 / 38
Système Distribué avec CORBA
Introductions
I En informatique distribuée, l’information est répartie entre
différents serveurs du systèmes.
I Les applications serveurs peuvent être implémenté avec des
langages différents, et tourné sur différentes plateformes.
I Le moyen de communication =⇒ le protocole CORBA.
2 / 38
Système Distribué avec CORBA
Introductions
I L’architecture CORBA est mise en place par le consortium
OMG.
3 / 38
Système Distribué avec CORBA
Introductions
I L’architecture CORBA est mise en place par le consortium
OMG.
I L’OMG regroupe plusieurs organismes mondiaux (IBM, Boing,
NASA, INRIA, ...).
3 / 38
Système Distribué avec CORBA
Introductions
I L’architecture CORBA est mise en place par le consortium
OMG.
I L’OMG regroupe plusieurs organismes mondiaux (IBM, Boing,
NASA, INRIA, ...).
I L’OMG a le rôle de mettre en place des standards
d’intégration d’applications réparties hétérogènes.
3 / 38
Système Distribué avec CORBA
Les avantages de CORBA
I CORBA permet la communication entre différents langages.
4 / 38
Système Distribué avec CORBA
Les avantages de CORBA
I CORBA permet la communication entre différents langages.
I CORBA permet d’obtenir un code très compact et efficace.
4 / 38
Système Distribué avec CORBA
Les avantages de CORBA
I CORBA permet la communication entre différents langages.
I CORBA permet d’obtenir un code très compact et efficace.
I CORBA propose une technologie économe en bande passante.
4 / 38
Système Distribué avec CORBA
Les avantages de CORBA
I CORBA permet la communication entre différents langages.
I CORBA permet d’obtenir un code très compact et efficace.
I CORBA propose une technologie économe en bande passante.
I CORBA nécessite peu de bibliothèques.
4 / 38
Système Distribué avec CORBA
Les avantages de CORBA
I CORBA permet la communication entre différents langages.
I CORBA permet d’obtenir un code très compact et efficace.
I CORBA propose une technologie économe en bande passante.
I CORBA nécessite peu de bibliothèques.
I CORBA propose des profils pour le temps réel et l’embarqué.
4 / 38
Système Distribué avec CORBA
Application répartie avec CORBA
5 / 38
Système Distribué avec CORBA
Application répartie avec CORBA
Chaque notion se traduit par une composante technologique de
CORBA.
5 / 38
Système Distribué avec CORBA
L’architecture de CORBA
6 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’architecture CORBA se compose essentiellement :
I du bus logiciel ORB.
I des souches : stub et squelette.
I du POA (Portable Object Adapter).
I de l’interface IDL.
I des IOR (Interoperable Object Reference).
I Des services.
7 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’architecture CORBA se compose essentiellement :
I du bus logiciel ORB.
I des souches : stub et squelette.
I du POA (Portable Object Adapter).
I de l’interface IDL.
I des IOR (Interoperable Object Reference).
I Des services.
8 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Le bus logiciel ORB
ORB (Object Request Broker)
I ORB est le noyau de transport des requêtes aux objets.
I ORB maintient et gère les références des objets distants.
I ORB permet le plage et dépliage des arguments.
I ORB achemine la requête vers le bon objet à partir de sa
référence.
9 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Le bus logiciel ORB
ORB (Object Request Broker)
I L’accée à l’ORB est locale à chaque application.
I Une bibliothèque ORB pour chaque langage.
I En Java 5, un standard ORB est inclut.
10 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’architecture CORBA se compose essentiellement :
I du bus logiciel ORB.
I des souches : stub et squelette.
I du POA (Portable Object Adapter).
I de l’interface IDL.
I des IOR (Interoperable Object Reference).
I Des services.
11 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Les souches
Côté client : le stub
I Le stub assure la liaison avec l’ORB.
I Le stub assure le codage et décodage des paramètres.
I Le stub assure la transparence des références du serveurs.
12 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Les souches
Côté serveur : le squelette
I Le serveur utilise la notion de servant.
I Le servant permet de gérer l’activation de l’objet distant à la
demande.
I L’exemple du bureau d’accueil.
I Le servant représente le POA.
13 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’architecture CORBA se compose essentiellement :
I du bus logiciel ORB.
I des souches : stub et squelette.
I du POA (Portable Object Adapter).
I de l’interface IDL.
I des IOR (Interoperable Object Reference).
I Des services.
14 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Le POA
Le POA est l’adaptateur d’objet côté serveur.
I Il génère et interprète les références des objets distants.
15 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Le POA
Le POA est l’adaptateur d’objet côté serveur.
I Il génère et interprète les références des objets distants.
I Il gère les autorisations d’accès aux objets.
15 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Le POA
Le POA est l’adaptateur d’objet côté serveur.
I Il génère et interprète les références des objets distants.
I Il gère les autorisations d’accès aux objets.
I Il permet l’invocation des méthodes sur les objets.
15 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Le POA
Le POA est l’adaptateur d’objet côté serveur.
I Il génère et interprète les références des objets distants.
I Il gère les autorisations d’accès aux objets.
I Il permet l’invocation des méthodes sur les objets.
I Il maintient les associations entres objets CORBA.
15 / 38
Système Distribué avec CORBA
Le panorama de l’appel distant
16 / 38
Système Distribué avec CORBA
Le panorama de l’appel distant
I Serveur + Services =⇒ Interface.
17 / 38
Système Distribué avec CORBA
Le panorama de l’appel distant
I Serveur + Services =⇒ Interface.
I CORBA =⇒ Une interface qui assure l’interopérabilité des
langages.
17 / 38
Système Distribué avec CORBA
Le panorama de l’appel distant
I Serveur + Services =⇒ Interface.
I CORBA =⇒ Une interface qui assure l’interopérabilité des
langages.
I L’utilisation de l’IDl (Interface Definition Language).
17 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’architecture CORBA se compose essentiellement :
I du bus logiciel ORB.
I des souches : stub et squelette.
I du POA (Portable Object Adapter).
I de l’interface IDL.
I des IOR (Interoperable Object Reference).
I Des services.
18 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Interface commune aux langages.
19 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Interface commune aux langages.
I Interface IDL =⇒ indépendante de l’implémentation.
19 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Interface commune aux langages.
I Interface IDL =⇒ indépendante de l’implémentation.
I Définir les interfaces des objets CORBA distants.
19 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Interface commune aux langages.
I Interface IDL =⇒ indépendante de l’implémentation.
I Définir les interfaces des objets CORBA distants.
I Le plus petit dénominateur commun entre tous les types de
données.
19 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Les étapes de la création d’une IDL
I La déclaration de module.
20 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Les étapes de la création d’une IDL
I La déclaration de module.
I la déclarations des interfaces.
20 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Les étapes de la création d’une IDL
I La déclaration de module.
I la déclarations des interfaces.
I La présentation des signatures des méthodes.
20 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Les étapes de la création d’une IDL
I La déclaration de module.
I la déclarations des interfaces.
I La présentation des signatures des méthodes.
I La déclaration : des attributs, des exceptions, des types et des
constantes.
20 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les modules =⇒ packages Java.
21 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les modules =⇒ packages Java.
I Les interfaces =⇒ La signatures des méthodes.
21 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Les modes de passage :
I in =⇒ en entrée :
I le client fournit la valeur.
I si le serveur la modifie, le client ne voit
pas la modification.
I out =⇒ en sortie :
I le serveur fournit la valeur
I le client voit la modification.
I inout =⇒ en entrée/sortie.
I le client fournit la valeur
I si le serveur la modifie, le client voit la
modification
22 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les exceptions =⇒ exceptions Java.
23 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les exceptions =⇒ exceptions Java.
I les attributs
23 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les exceptions =⇒ exceptions Java.
I les attributs
I attribute type nom =⇒ getteurs + setteurs.
23 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les exceptions =⇒ exceptions Java.
I les attributs
I attribute type nom =⇒ getteurs + setteurs.
I readonly attribute type nom =⇒ getteurs.
23 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Les types primitifs :
24 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les Constantes :
I Exemple :
const double PI = 3.1415.
25 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Les types complexes :
I Nouveau type :
I Les énumérations :
I Les structures :
26 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Les types complexes :
I Les tableaux :
I Les séquences :
I Le type anonyme any =⇒ n’importe quel type de données.
27 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les interfaces acceptent l’héritage multiples.
I Héritage sémantique.
28 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les interfaces acceptent l’héritage multiples.
I Héritage sémantique.
Exemple :
28 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
I Les interfaces acceptent l’héritage multiples.
I Héritage sémantique.
Exemple :
Équivalent Java :
28 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Exemple :
29 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
La précompilation d’un contrat IDL :
30 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Exemple :
Précompilation Java :
31 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Exercice 1 : Écrire un fichier IDL qui représente l’interface d’une
calculatrice, tel que :
I elle contient les méthodes : ajouteMemoire, soustraitMemoire,
multiplieMemoire et miseAZero.
I Chacune de ces méthodes prend un unique paramètre en in de
type double (sauf miseAZero qui ne prend pas de paramètre).
I Elles mettent à jour la mémoire mais ne renvoient pas
d’information au client.
I La méthode diviseMemoire doit lever une exception en cas de
tentative de division par zéro.
I elle comporte deux autres méthodes : incrementer et
decrementer.
32 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IDL
Correction :
33 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’architecture CORBA se compose essentiellement :
I du bus logiciel ORB.
I des souches : stub et squelette.
I du POA (Portable Object Adapter).
I de l’interface IDL.
I des IOR (Interoperable Object Reference).
I Des services.
34 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’IOR
IOR (Interoperable Object Reference)
I Les références d’objets CORBA.
I Les IORs se composent de manière codé de :
I l’adresse IP de la machine Internet où est localisé l’objet.
I un port IP pour se connecter au serveur de l’objet.
I une clé pour désigner l’objet dans le serveur.
I Exemple :
I IOR est stocké dans un service de nom (Naming Service).
35 / 38
Système Distribué avec CORBA
L’architecture de CORBA
L’architecture CORBA se compose essentiellement :
I du bus logiciel ORB.
I des souches : stub et squelette.
I du POA (Portable Object Adapter).
I de l’interface IDL.
I des IOR (Interoperable Object Reference).
I Des services.
36 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Les services
Les services CORBA =⇒ bibliothèques pour augmenter la qualité
du service.
37 / 38
Système Distribué avec CORBA
L’architecture de CORBA
Les services
I Service de nommage : service d’annuaire CORBA.
I Service évènement : envoyer des évènements asynchrones
entre applications.
I Service de concurrence : gérer les accès concurrent aux
serveurs.
I Service de sécurité : gérer les accès sécurisés aux serveurs
(identification, confidentialité ...)
I ....
38 / 38