CORBA : des concepts - PowerPoint PPT Presentation

About This Presentation
Title:

CORBA : des concepts

Description:

un peu de pub pour CorbaScript. CorbaScript. Un nouveau langage de scripts d di CORBA ... C'est un ' objet notoire ' du bus CORBA. de nom NameService. fix par configuration du ... – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 30
Provided by: jeanmarcge
Category:
Tags: corba | concepts | des | notoire

less

Transcript and Presenter's Notes

Title: CORBA : des concepts


1
CORBA des concepts à la pratique
  • J-M. Geib, P. Merle, C. Gransart,
  • LIFL
  • 1998

2
Au sommaire
  • Mise en pratique dun bus CORBA
  • ORBacus de OOC
  • Réalisation dune application CORBA
  • un gestionnaire de répertoires dadresses
  • En C, Java et CorbaScript
  • un peu de pub pour CorbaScript

3
CorbaScript
  • Un nouveau langage de scripts dédié à CORBA
  • Interprété et typage dynamique
  • Orienté objet et  tout est objet 
  • Utilisant les mécanismes dynamiques de
  • CORBA DII, DSI, IFR
  • Java JNI
  • Conçu au LIFL et soumis à lOMG

4
Les étapes de la construction de lapplication
CORBA
  • La définition du contrat IDL
  • Limplantation des objets CORBA
  • La création de serveurs et de clients
  • Lutilisation du service Nommage
  • La création dobjets CORBA
  • La notification des clients

5
Une application client/serveur
Repertoire
Bus dobjets répartis CORBA sur Internet (IIOP)
6
Le contrat IDL initial
  • Réutiliser des spécifications IDL date
  • Regrouper des définitions communes annuaire
  • Définir les concepts manipulés Nom, Personne
  • Définir les données échangées DesNoms
  • Définir linterface des objets Repertoire
  • des opérations ajouterPersonne
  • des exceptions ExisteDeja
  • des attributs (paires dopérations) libelle
  • Définir des types pour limplantation
    DesPersonnes

7
Limplantation C du répertoire
  • Hérite de la classe squelette
  • en ORBacus/C, annuaire_Repertoire_skel
  • Définit la structure interne
  • le libellé et la liste des personnes
  • Implante les attributs et opérations
  • respecter les signatures définies par le
    squelette
  • les exceptions sont levées classiquement
  • Dupliquer les données à garder et les retours
  • gestion mémoire complexe

8
Linvocation Java du répertoire
  • A travers les souches IDL
  • package fr.lifl.annuaire
  • Invocations comme si en local
  • notation classique dappel de méthodes
  • passage par valeur pour le mode in
  • tout est objet (Personne, Date, Mois)
  • Gestion naturelle des exceptions

9
Linvocation en CorbaScript
  • Langage simple à utiliser
  • Tout est objet et typage dynamique
  • Accès direct aux définitions OMG-IDL
  • désignation CorbaScript nom IDL
  • via le référentiel des interfaces
  • Invocation dynamique
  • pas de génération de souches
  • masquant la complexité du mécanisme DII

10
Un serveur CORBA
  • 1. Initialiser le bus CORBA
  • obtenir lobjet ORB
  • 2. Initialiser ladaptateur dobjets
  • obtenir le BOA ou POA
  • 3. Créer les implantations dobjets
  • 4. Enregistrer les implantations par ladaptateur
  • implicite en C et Java ou explicite en
    CorbaScript
  • 5. Diffuser leurs références
  • afficher une chaîne codifiant lIOR
  • 6. Attendre des requêtes venant du bus

11
Un client CORBA
  • 1. Initialiser le bus (objet ORB)
  • 2. Créer les souches des objets à utiliser
  • 2.a. obtenir les références dobjet (IOR)
  • 2.b. convertir vers les types nécessaires
  • narrow contrôle le typage à travers le réseau
  • 3. Réaliser les traitements
  • Rem. éviter lopérateur bind (2.a 2.b)
  • spécifique à chaque produit donc non portable

12
Un client CorbaScript
  • Langage dédié à CORBA
  • masque linitialisation du bus
  • Cest vraiment simple -)
  • création des souches
  • Script saisi en interactif !
  • test dimplantations
  • administration dobjets existants

13
Lexécution sur le bus CORBA
Repertoire
Bus dobjets répartis CORBA sur Internet (IIOP)
  • Diffusion de lIOR non gérée par le bus

14
Les services de recherche dobjets CORBA
  • Services Nommage et/ou Vendeur

15
Le service Nommage
  • Espace de désignation symbolique CosNaming
  • association nom - référence dobjet
  • graphes de répertoires NamingContext
  • chemin daccès Name
  • Opérations principales
  • ajouter une association bind, rebind, ...
  • résoudre une association resolve
  • détruire une association unbind
  • lister le contenu list
  • détruire le contexte destroy

16
Obtenir la référence du service Nommage
  • Comment retrouver la référence de ce service ?
  • Cest un  objet notoire  du bus CORBA
  • de nom NameService
  • fixé par configuration du produit utilisé
  • Quelque soit le langage, le scénario est
  • a. opération CORBAORBresolve_initial_reference
    s
  • b. conversion en CosNamingNamingContext
  • En CorbaScript, lopérateur narrow est implicite

17
Utilisations du service Nommage
  • Enregistrer une référence
  • diffusion par un serveur de ses références
    dobjet
  • (2) création dun chemin
  • (3) opération bind ou rebind
  • Rechercher une référence
  • (2) création dun chemin valide
  • (3) opération resolve
  • (4) conversion vers le type nécessaire
  • A noter la simplicité avec CorbaScript

18
Le cycle de vie des objets
  • Problème
  • actuellement, 1 répertoire 1 serveur
  • pas de création/destruction dobjets à distance
  • seulement invocation dopérations
  • Solution
  • notion de fabrique dobjets
  • exprimée en OMG-IDL
  • Cest un canevas de conception
  • voir aussi le service LifeCycle

19
Limplantation de la fabrique
Repertoire
Fabrique
20
Limplantation de la fabrique
Repertoire
Fabrique
21
Une application dadministration de la fabrique
  • Création dun nouveau répertoire et mise à
    disposition par le service Nommage
  • 1. Initialiser le bus CORBA
  • 2. Obtenir le service Nommage (NS)
  • 3. Obtenir la fabrique depuis le NS
  • 4. Créer un répertoire
  • 5. Enregistrer le répertoire dans le NS
  • A noter la simplicité avec CorbaScript
  • le script peut être saisi interactivement

22
La notification des clients
Repertoire
Bus dobjets répartis CORBA sur Internet (IIOP)
  • Service Evénements ou canevas de conception

23
Un canevas de conception pour la notification des
clients
  • Design Pattern  Observé - Observateur 
  • Côté application notifiée (Observateur)
  • 1 interface à implanter ObservateurRepertoire
  • 1 opération par type dévénement
  • oneway pour communication asynchrone
  • Côté serveur notifiant (Observé)
  • 1 interface pour enregistrer les observateurs
  • héritage dinterfaces OMG-IDL

24
Limplantation du répertoire observé
  • Utilisation du squelette OMG-IDL
  • Réutilisation de limplantation existante
  • par héritage ou délégation
  • Gestion de la liste des observateurs
  • Redéfinition des opérations impliquant une
    notification
  • réutilisation du code existant
  • notification des observateurs
  • prise en charge des pannes !

25
Une application cliente notifiée
  • Une application cliente peut implanter des objets
  • souvent objets client objets  callback 
  • CORBA nest pas strictement client/serveur
  • Le scénario de lobservation
  • obtenir lobjet observable
  • créer lobjet observateur
  • abonner lobservateur auprès de lobservé
  • traiter les notifications ...
  • mettre fin à labonnement

26
Bilan sur lapplication
  • Construire des applications CORBAcest tout de
    même simple mais il faut
  • respecter la structure des applications
  • se plier aux règles de projection/programmation
  • Pour obtenir
  • la portabilité du code
  • linteropérabilité entre implantations
  • Lapplication présentée peut facilement être
    adaptée à dautres contextes

27
Et après ?
  • Plusieurs serveurs/fabriques mais
  • Pas dactivation automatique des serveurs
  • configuration du référentiel des implantations
  • Pas dobjets persistants
  • Pas de sûreté de fonctionnement
  • sécurité, tolérance aux pannes, transactions
  • Utiliser les services CORBA fournis -)
  • Pas de configuration/reconfiguration
  • placement/déplacement des serveurs et des objets
  • Voir les langages de description darchitecture

28
Conclusion
  • CORBA ça marche et cest simple
  • Choisir son langage dimplantation
  • C complexe et moins portable
  • Java portable et plus lent
  • CorbaScript encore plus convivial
  • Choisir son bus
  • 1 bus 1 bibliothèque
  • mixer les bus cest possible
  • Rendez-vous à la démonstration !

29
Disponibilité de CorbaScript
  • Bus CORBA
  • ORBacus ltURLhttp//www.ooc.comgt
  • MICO ltURLhttp//www.vsb.cs.uni-frankfurt.de/mico
    /gt
  • A venir Visibroker, OAK,
  • Environnements systèmes
  • Sun Solaris, Linux, SGI IRIX, HP-UX, AIX, W95/NT
  • A venir JDK 1.1.x et 1.2
  • Gratuit avec les sources C
  • URL http//corbaweb.lifl.fr/CorbaScript
Write a Comment
User Comments (0)
About PowerShow.com