1 1 Corba avec Java et C++ 2004 Jean-Marc Vanel Transiciel - Sogeti.

Slides:



Advertisements
Présentations similaires
L'environnement C.O.R.B.A. utilisation avec Java
Advertisements

Réflexivité et réseaux d’ information
Invocation de Méthode à des Objets distants RMI et Corba
Services communs CORBA
ESSI AM Dery Merci à Rémi Vankeisbelck, Michel Riveill etc
1 Plan de lenseignement Cours Introduction au réseau via les objets distants (Application à RMI) Ce que cache RMI : programmation socket – mode connecté
Module SI2 Applications réparties
ORB (1/2) ORB : Object Request Broker
Invocation de Méthode à des Objets distants Exemple : CORBA
1 I. Bus logiciel ? Mireille Blay-Fornarino Daprès et Sacha Et (cf. références en bas.
Des sockets à RMI Programmation réseau versus programmation objet
CORBA Common Object Request Broker Architecture
Architecture CORBA réseau Objet Corba Application Serveur
ESSI AM Dery Merci à Rémi Vankeisbelck, Michel Riveill etc
Module SI4 Applications réparties
Des sockets à RMI. Pourquoi ? Maturation de la technologie orientée objet –ADA, Modula –Smalltalk, C++, Java Maturation des communications Client- Serveur.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Object Management Architecture (OMA)
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Le Modèle Logique de Données
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe

Laboratoire d’Informatique du Littoral
TP 3-4 BD21.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Common Gateway Interface
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Découverte et description de services distribués Oussama KASSEM ZEIN.
XML-Family Web Services Description Language W.S.D.L.
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Langage Oriente Objet Cours 4.
Serveurs Partagés Oracle
Programmation Approche composants Ing5 SI
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Quelques notes sur CORBA F. Boyer, Oct Principes Programmation distribuée Multi-plateformes Notion de client et de serveur Notion de stub et de.
CAT 2000 LES MIDDLEWARES Présenté par : Tagmouti Siham Smires Ali
Interopérabilité JOnAS - CORBA
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Les services communs Les composantes du bus
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
Programmation concurrente
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Introduction au bus CORBA
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
CORBA (Common Request Broker Architecture)
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
4 - Annuaires Les Annuaires d ’Entreprises Offres et solutions
SGBD orientés Objet Standards : OMG et ODMG.
Présentation de CORBA et de IIOP
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Outil de gestion des cartes grises
CORBA Un concept de l ’OMG Mathieu Estival Biomédical, 3°Année.
Cycle de développement iup MIAGe 3° année Projet MIAGe Toulouse – Groupe 21 CORBA.
1 Partie 2 L'environnement C.O.R.B.A. U tilisation avec Java et C++ Corba avec Java et C Jean-Marc Vanel Transiciel - Sogeti.
Présentation Interception Log2XMI XMI Perspectives CorbaTrace Florian Champalle Audrey Jaccard Etienne Juliot Nicolas Lemoullec Antoine Parra del Pozo.
1 Extension du modèle de composants CORBA avec accès concurrent à des données partagées Travail réalisé par : Landry BREUIL PFE, ISIMA Encadrants : Gabriel.
Développer avec ORBacus Partie 1 – Les préalables.
Les sockets.
Les RPC remote procedure call
France Télécom R&D Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Les Servlets Présentation Cycle de vie Principe de fonctionnement
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
Modèle à objets et sérialisation Olivier ChamlaFrançois Chastanet.
Applications distribuées Introduction Jean-Jacques LE COZ.
CORBA. Agenda ë L ’OMG ë Object Management Architecture (OMA) ë Le langage IDL ë Architecture CORBA ë Intéropérabilité : CORBA 2 ë Les composants de l.
Transcription de la présentation:

1 1 Corba avec Java et C Jean-Marc Vanel Transiciel - Sogeti

2 2 Contenu et déroulement Plan Partie 1: survol vision Corba mise en oeuvre de Corba liaison et transport dans Corba services «communs» Annexe - exemple : HelloWorld Partie 2 Service de nommage (désignation) Premier programme CORBA en C++ Etude du type « Any » Les mécanismes dynamiques de C.O.R.B.A. Synthèse sur C.O.R.B.A.

3 3 Vision de Corba

4 4 OMG : concepts-clés Permettre linteropérabilité des composants / applications par lintermédiaire dun mode de coopération unifié : lappel dobjets distants Gérer lhétérogénéité des réseaux, machines, systèmes et langages Vision utilisateur = langage pivot commun : OMG-IDL Offrir une architecture globale

5 5 OMG : les objectifs techniques Liaison avec tous les langages Transparence des invocations Invocation statique et dynamique Système auto-descriptif Activation automatique Interopérabilité entre bus

6 6 OMG : vision globale Common Object Request Broker Architecture CORBA appel de méthode réparti transparent passages de paramètres : in, out, in/out types de paramètres : types de base (entiers, string, etc), références dobjets, objets par valeur un bus à objets répartis (ORB) transport des requêtes, activation des objets des services de base (CORBAservices) des utilitaires communs (CORBAfacilities) des interfaces de domaines = objets métiers « interopérabilité sémantique »

7 7 OMA : larchitecture globale Lic enc es Tra nsa ctio ns Per sist anc e Pro pri été s Ch ang em ent s Ev ent s NommageVendeurSécuritéRelationsCollectionsTempsExternalisation Interrogations Cycle de vie Concurrence Services objet communs Wo rkf low Dat aW are IH M Ad mi nist rati on Utilitaires communs Fin anc e Tél éco ms Sa nté Interfaces de domaine Objets applicatifs Spécifiques Bus dobjets répartis

8 8 ORB OMG : le modèle client/serveur objet Objet CORBA Etat Code dimplantat ion Référen ce dobjet Interfac e dobjet Requête Activation

9 9 Mise en oeuvre de Corba

10 OMG-IDL : le langage dinterfaces Rôle du langage décrire les interfaces des objets langage pivot entre applications générer des squelettes de programme dans les langages de programmation des applications

11 OMG-IDL : mise en oeuvre des interfaces Projection des descriptions OMG-IDL vers les langages dimplantation des clients et des serveurs (e.g., C, C++, Java, etc). mode « statique » Instanciation sous forme dobjets CORBA des descriptions OMG-IDL depuis un référentiel dinterfaces. mode « dynamique »

12 CORBA : les composantes du bus Bus de communication Interface du bus Interface dinvocation statique Interface dinvocation dynamique SIIDII ORB SSIDSI OA Adaptateur dobjet Interface de squelettes statiques Interface de squelettes dynamiques IR Référentiel des interfaces ImplR Référentiel des implantations

13 Liaison et transport dans Corba

14 Les couches de transport de CORBA GIOP : protocole dinteropérabilité entre bus de la norme CORBA 2 support à lappel de méthode (enveloppe = REQUEST, REPLY, etc) encodage des données : CDR GIOP sur Internet = Internet Inter ORB Protocol (IIOP) champs « service context » (ex: standardisation ctxt transactions, sécurité)

15 Nommage dans Corba Noms du domaine Corba Interoperable Object Reference : IOR identification protocole interface OMG-IDL Sous-domaine Corba/Internet adresse IP + port

16 Emballeur GIOP Talon client (IOR) Interface applicative (issue de linterface IDL) IOR servant Adaptateur dobjet Mise en place dune liaison Emballeur GIOP Squelette serveur Servant applicatif Invocation Liaison IIOP

17 Services «communs»

18 Les services communs (1) Services de localisation dobjets service de nommage (Naming) pour retrouver un objet par un nom service de type « pages blanches » service de courtage (Trader) pour retrouver un objet par des propriétés service de type « pages jaunes »

19 Les services communs (2) Services de communications asynchrones Events, Notification, Messaging Services de sûreté de fonctionnement Security, Transactions, Concurrence Services concernant la vie des objets Life Cycle, Property, Relationship, Externalization, Persistent Object, Query, Collection, Versionning, Time, Licencing

20 Exemple : « Hello World » en Java

21 Chaine de production de programme Hello.idl HelloOperations.jav a Hello.java HelloHelper.java HelloHolder.java _HelloStub.java Compilateur OMG-IDL / Java HelloClient.java HelloPOA.java HelloPOATie.java Client Serveur HelloServeur.java HelloImpl.java

22 De lIDL à Java Interface OMG-IDL Hello Interfaces Java HelloOperations, Hello Classes Java HelloHelper, HelloHolder interface Hello { void doHello(); }; public interface HelloOperations { public void doHello(); } public interface Hello extends HelloOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity {}

23 Implantation du serveur Corba public class HelloServeur { public static void main(String args[]) { // Initialisation du Bus Corba et dun POA org.omg.CORBA.ORB orb = ORB.init(args, null); org.omg.PortableServer.POA poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); poa.the_POAManager().activate(); // récupération du serveur de nom org.omg.CosNaming.NamingContext ns = NamingContextHelper.narrow( orb.resolve_initial_references("NameService")); // Creation du servant et enregistrement au serveur de noms HelloImpl hello = new HelloImpl(); ns.rebind( new NameComponent[] { new NameComponent("HelloObj","")}, hello ); // Mise en attente du serveur orb.run(); }

24 Implantation du client Corba public class HelloClient { public static void main(String args[]) { // Initialisation du Bus Corba org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null); // récupération du serveur de nom org.omg.CosNaming.NamingContext ns = org.omg.CosNaming. NamingContextHelper.narrow( orb.resolve_initial_references("NameService")); // Récupération de la souche depuis le serveur de nomorg.omg.CORBA.Object obj_ref = ns.resolve(new org.omg.CosNaming.NameComponent[] {new NameComponent("HelloObj","")}); Hello hello = HelloHelper.narrow(obj_ref); // Invocation de l'objet distant hello.doHello(); }

25 Les classes générées (client et serveur) Classe _HelloStub : implantation du talon sert à envoyer les requêtes utilisé en lieu et place de l'objet Hello dans le client Classe HelloPOA Classe HelloPOATie reçoit et décode les requêtes reçoit et décode les requêtes implantation par héritage implantation par délégation public class HelloImpl extends HelloPOA { public HelloImpl() {} public void doHello() { System.out.println("Hello world!"); }

26 Corba dynamique

27 Linvocation dynamique Référentiel dinterfaces (IR) accessible comme objet Corba gestion de méta-objets Corba (ModuleDef, InterfaceDef, OperationDef, AttributeDef, TypedefDef, …) API (DII) de construction de requêtes Un objet Request = un nom dopération, une liste de couples type-valeur (au sens de lIR), une structure pour le résultat, des méthodes: invoke send_deferred, get_response, poll_response send_oneway

28 Le squelette dynamique API (DSI) de décodage de requêtes Pas dutilisation de squelettes pré-générés Utilisée pour implanter dynamiquement des objets Cas dutilisation : création de passerelles