Corba pour développer des applications distribuées interopérables
Les objectifs de Corba.
Corba est une norme qui permet de développer des applications distribuées interopérables
Ca fonctionne en Client-serveur à base d’objets.
On a un langage IDL qui permet une séparation entre les méthode distantes (interfaces fonctionnelles) et la couche métier (implémentation des objets)
L’IDL va être projetée dans les différents langages, Java, C++ et va permettre à un client écrit dans un langage objet 1 de diagloguer avec un serveur écrit dans un langage objet 2.
CORBA : c’est un object broker, un négociateur
Bus logiciel, il y a un protocole pour dialoguer, c’est IIOP : internet interopérable general
IOP c’est l’instanciation de GOP sur TCP IP
Dans Corba il y a un certain nombre de services, les COS, services de nommages, d’événements, etc.
Modèle client-serveur
IDL à objet Coraba à Servant
Une question? Posez-la ici
L’ORB, est appelé bus logiciel
C’est là où vont transiter les informations
Il va identifier grace à l’IOR les objets CORBA
On parle d’emballage et de déballage des requêtes et des réponses. Ou en anglais on parle de « marshaling »
L’IDL permet de générer la souche (stub) et le squelette (skeleton)
Invocation statique et dynamique de requêtes.
Les souches ou Static Invocation Interface
la souche (stub) coté client
Le squelette ou statik Skeleton Interface xxxPOA
Les classes IMPL héritent des squellettes
Interface TOTO, on a une classe TotoPoa qui est le squelette qui doit être héritée par la classe métier.
Le noyau de l’ORB
L’architecture de l’ORB coté client
La souche SSI
SII : static Invocation Interface : boite noire de la projection de l’IDL dans la langage cible.
Le pavé DDI
Le pavé DDI Dynamic Invocation Interface DII, dans ce cas là il n’y a plus la souche, mais on construit dynamiquement la requête.
L’interface Repository IT
Représentation des spécifications IDL consultable durant l’exécution du programme
L’architecture de l’ORB coté serveur
Le static Skeleton Interface (SSI)
Le DSI Dynamic Skeleton interface
Se sert de métadonnées pour composer les classes
L’OA, object Adapter
L’implementation REpository (IR)
Les interoperable Object Reference
Une question? Posez-la ici
L’IOR sur IOP
Ca identifie l’interface IDL avec :
Le repository ID
@ du host de connexion + numero de port
Le POA name + l’object id
Clé
Le POA va retourné l’objet demandé en fontion de l’ID.
Propriétés des interopérable Object Référence
Les ORB sont interopérables : l’ORB java va communiquer avec l’ORB mico qui est un ORB ++
IDL : Interface Description langage
C’est la patie publique des objets CORBA, accessible à distance
A l’intérieur, on a une description syntaxique
Les opérations : signatures des requêtes
Exceptions : notifications des erreurs
Un exemple d’IDL :
On peut utiliser un module, qui est un espace de nommage, un package
On peut définir des types comme un entier long non signé
On peut avoir des séquences, un tableau par exemple
Et puis il faut une interface, pour avoir un objet CORBA, car c’est l’interface qui va contenir les opérations accessibles au client de façon distance. A l’intérieur de l’interface on définit un certain nombre d’opérations.
Une question? Posez-la ici
Le développement
On construit l’IDL
On compile l’IDL (idlj)
Ca génère un répertoire, et des classes dont le stub et le squelette.
Au niveau du squelette : code metier + code serveur , compilation = application serveur
Au niveau du stub : code client, compilation = application cliente (avec objet proxy représentant l’objet distant, l’interface)
Développement statique
- On définit le contrat IDL
- Compilation de l’IDL
- Ecriture couche métier
- Ecriture code serveur
- Compilation serveur
- Ecriture code client
- Compilation client
Une question? Posez-la ici
Approche statique avec diffusion de l’IOR par fichier coté client
- Initialisation de l’environnement CORBA : iorinit
- Récupération de l’IOR du servant, déstringnifiaction de l’IOR sous format texte
- Opération de narrowing, cast sur l’objet proxy
- Invocation de la raquête
- Placer l’ORB en écoute
Approche statique avec diffusion de l’IOR pa fichier côté serveur
- Initialisation de l’environnement CORBA, orbinit
- Récupération et activation d’un POA
- Instanciation d’un servant
- Création de l4IOR du servant, enregistrement dans le POA
- Diffusion de l’IOR, écriture dans un fichier, stringification de l’IOR
- Placer l’ORB en écoute
Approche statique avec service de nommage coté client
- Initialisation de CORBA
- Récupération du service de nommage
- Narrowing, passage du mode CORBA au monde objet
- Récupération de l’IOR du servant
- Narrowing
- Invoquer la requête
- Placer l’ORB sur écoute
Approche statique ave service de nommage coté serveur
- Initialisation de CORBA
- Récupération et activation POA
…
Une question? Posez-la ici
Récupération et activation du RootPOA
- Résoudre la référence initiale « RootPOA »
- Narrowing
- Récupération POAManager
- Activation POAManager
Pour aller plus loin : voir ensuite la projection Java du DynamicImplementation et la délégation, le TIE model en anglais.
Besoin d'aide avec Corba? Remplissez ce formulaire: