La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "CORBA : des concepts à la pratique J-M. Geib, P. Merle, C. Gransart, LIFL 1998."— Transcription de la présentation:

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

2 Au sommaire zMise en pratique dun bus CORBA yORBacus de OOC zRéalisation dune application CORBA yun gestionnaire de répertoires dadresses zEn C++, Java et CorbaScript yun peu de pub pour CorbaScript

3 CorbaScript zUn nouveau langage de scripts dédié à CORBA zInterprété et typage dynamique zOrienté objet et « tout est objet » zUtilisant les mécanismes dynamiques de yCORBA: DII, DSI, IFR yJava: JNI zConçu au LIFL et soumis à lOMG

4 Les étapes de la construction de lapplication CORBA zLa définition du contrat IDL zLimplantation des objets CORBA zLa création de serveurs et de clients zLutilisation du service Nommage zLa création dobjets CORBA zLa notification des clients

5 Une application client/serveur Bus dobjets répartis CORBA sur Internet (IIOP) Client JavaServeur C++ Repertoire Traitement Contrat IDL

6 Le contrat IDL initial zRéutiliser des spécifications IDL : date zRegrouper des définitions communes : annuaire zDéfinir les concepts manipulés : Nom, Personne zDéfinir les données échangées : DesNoms zDéfinir linterface des objets : Repertoire ydes opérations : ajouterPersonne ydes exceptions : ExisteDeja ydes attributs (paires dopérations) : libelle zDéfinir des types pour limplantation : DesPersonnes

7 Limplantation C++ du répertoire zHérite de la classe squelette yen ORBacus/C++, annuaire_Repertoire_skel zDéfinit la structure interne yle libellé et la liste des personnes zImplante les attributs et opérations yrespecter les signatures définies par le squelette yles exceptions sont levées classiquement zDupliquer les données à garder et les retours ygestion mémoire complexe

8 Linvocation Java du répertoire zA travers les souches IDL ypackage fr.lifl.annuaire zInvocations comme si en local ynotation classique dappel de méthodes ypassage par valeur pour le mode in ytout est objet (Personne, Date, Mois) zGestion naturelle des exceptions

9 Linvocation en CorbaScript zLangage simple à utiliser yTout est objet et typage dynamique zAccès direct aux définitions OMG-IDL ydésignation CorbaScript = nom IDL yvia le référentiel des interfaces zInvocation dynamique ypas de génération de souches ymasquant la complexité du mécanisme DII

10 Un serveur CORBA 1. Initialiser le bus CORBA yobtenir lobjet ORB 2. Initialiser ladaptateur dobjets yobtenir le BOA ou POA 3. Créer les implantations dobjets 4. Enregistrer les implantations par ladaptateur yimplicite en C++ et Java ou explicite en CorbaScript 5. Diffuser leurs références yafficher 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 ynarrow contrôle le typage à travers le réseau 3. Réaliser les traitements zRem. : éviter lopérateur bind (2.a + 2.b) yspécifique à chaque produit donc non portable

12 Un client CorbaScript zLangage dédié à CORBA ymasque linitialisation du bus zCest vraiment simple :-) ycréation des souches zScript saisi en interactif ! ytest dimplantations yadministration dobjets existants

13 Lexécution sur le bus CORBA Bus dobjets répartis CORBA sur Internet (IIOP) Client JavaServeur C++ Repertoire Traitement IOR Diffusion de lIOR non gérée par le bus

14 Les services de recherche dobjets CORBA Services Nommage et/ou Vendeur Bus dobjets répartis CORBA sur Internet (IIOP) Serveur C++Client Java Repertoire Traitement IOR Service de recherche dobjets IOR

15 Le service Nommage zEspace de désignation symbolique : CosNaming yassociation nom - référence dobjet ygraphes de répertoires : NamingContext ychemin daccès : Name zOpérations principales yajouter une association : bind, rebind,... yrésoudre une association : resolve ydétruire une association : unbind ylister le contenu : list ydétruire le contexte : destroy

16 Obtenir la référence du service Nommage zComment retrouver la référence de ce service ? zCest un « objet notoire » du bus CORBA yde nom NameService yfixé par configuration du produit utilisé zQuelque soit le langage, le scénario est a. opération CORBA::ORB::resolve_initial_references b. conversion en CosNaming::NamingContext zEn CorbaScript, lopérateur narrow est implicite

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

18 Le cycle de vie des objets zProblème yactuellement, 1 répertoire = 1 serveur ypas de création/destruction dobjets à distance yseulement invocation dopérations zSolution ynotion de fabrique dobjets yexprimée en OMG-IDL zCest un canevas de conception yvoir aussi le service LifeCycle

19 Limplantation de la fabrique Fabrique Repertoire creerRepertoire

20 Limplantation de la fabrique Fabrique Repertoire detruireRepertoire

21 Une application dadministration de la fabrique zCréation dun nouveau répertoire et mise à disposition par le service Nommage y1. Initialiser le bus CORBA y2. Obtenir le service Nommage (NS) y3. Obtenir la fabrique depuis le NS y4. Créer un répertoire y5. Enregistrer le répertoire dans le NS zA noter la simplicité avec CorbaScript yle script peut être saisi interactivement

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

23 Un canevas de conception pour la notification des clients zDesign Pattern « Observé - Observateur » zCôté application notifiée (Observateur) y1 interface à implanter : ObservateurRepertoire y1 opération par type dévénement yoneway pour communication asynchrone zCôté serveur notifiant (Observé) y1 interface pour enregistrer les observateurs yhéritage dinterfaces OMG-IDL

24 Limplantation du répertoire observé zUtilisation du squelette OMG-IDL zRéutilisation de limplantation existante ypar héritage ou délégation zGestion de la liste des observateurs zRedéfinition des opérations impliquant une notification yréutilisation du code existant ynotification des observateurs yprise en charge des pannes !

25 Une application cliente notifiée zUne application cliente peut implanter des objets ysouvent objets client = objets « callback » yCORBA nest pas strictement client/serveur zLe scénario de lobservation yobtenir lobjet observable ycréer lobjet observateur yabonner lobservateur auprès de lobservé y… traiter les notifications... ymettre fin à labonnement

26 Bilan sur lapplication zConstruire des applications CORBA cest tout de même simple mais il faut yrespecter la structure des applications yse plier aux règles de projection/programmation zPour obtenir yla portabilité du code ylinteropérabilité entre implantations zLapplication présentée peut facilement être adaptée à dautres contextes

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

28 Conclusion zCORBA : ça marche et cest simple zChoisir son langage dimplantation yC++ : complexe et moins portable yJava : portable et plus lent yCorbaScript : encore plus convivial zChoisir son bus y1 bus = 1 bibliothèque ymixer les bus : cest possible zRendez-vous à la démonstration !

29 Disponibilité de CorbaScript zBus CORBA: yORBacus yMICO yA venir Visibroker, OAK, … zEnvironnements systèmes : ySun Solaris, Linux, SGI IRIX, HP-UX, AIX, W95/NT … yA venir JDK 1.1.x et 1.2 zGratuit avec les sources C++ zURL :


Télécharger ppt "CORBA : des concepts à la pratique J-M. Geib, P. Merle, C. Gransart, LIFL 1998."

Présentations similaires


Annonces Google