Java Objets distribués

Document Sample
Java Objets distribués Powered By Docstoc
					Java
 et les objets
 distribués

 Ce document présente les technologies de distribution d’   objets Java. Il
 s'appuie sur l'expérience accumulée, dans ce domaine, par les équipes Java
 d'ima.
 La synthèse réalisée décrit :
 n Les modèles d’  architectures distribuées Java
 n L’API Remote Method Invocation (RMI)
 n L’intégration CORBA/Java
 n Les passerelles CORBA/DCOM




 ima SOLERI -immeuble Lavoisier, La Défense 5, 92052 Paris La Défense Cedex 64
 Téléphone : 01 41 26 62 61 . Télécopie : 01 41 99 91 23 e-mail : imacours@soleri.com
  Java par l’  intermédiaire du mécanisme des ap-              L’ objectif d’ima informatique est de fournir à ses
           est
  plets s’ imposé dès ses débuts comme une                     clients l’ information nécessaire à la réalisation
  plate-forme de choix pour l’         implémentation            un
                                                               d’ choix technologique (perspectives d’    évolution
  d’                                    est
    architectures distribuées. Ce n’ cependant                 à long terme, moyens d’     intégration à l’existant,
  qu’ avec la normalisation du mapping CORBA /                 produits) et les ressources indispensables à sa mise
  Java et la sortie du JDK 1.1 que Java a acquis               en œ uvre (formation, équipes de développement
  une stature suffisante pour s’ attaquer au marché            expérimentées).
  des applications à objets distribués.
  Les technologies sont prêtes mais le marché est          CORBA et Java
  neuf, les acteurs sont nombreux et l’      offre peu
  structurée.
  Ima, pôle formation conseil aux nouvelles                      est
                                                               Qu’ ce que CORBA ?
  technologies de SOLERI met à la disposition de               CORBA (Common Object Request Broker Archi-
  ses clients son expérience dans le déploiement de            tecture) est une norme de distribution d’  objets
  ces différentes technologies objet pour leur offrir          définie par l’OMG (Object Management Group),
  des repères et les aider à planifier leurs choix.            un organisme à but non lucratif qui regroupe ac-
                                                               tuellement plus de 850 entreprises du secteur de
Pourquoi les objets distribués ?                               l’informatique.
                                                               CORBA permet à des objets développés dans
                                                               différents langages (C, C++, ADA, Smalltalk et
                  une architecture
  Valeur ajoutée d’                                            Java) d’                       un
                                                                       interagir au travers d’ réseau.
  Longtemps les architectes informatiques ont con-
  centré leurs efforts sur l’       objectif d’ assurer                               ORB
                                                               Le middleware CORBA : l’
  l’efficacité intrinsèque d’une application informa-          Le middleware qui permet à un objet de détenir une
  tique en négligeant les possibilités d’évolution dans        référence virtuelle sur un objet distant est nommé
  une architecture hétérogène. Sur le long terme, la           ORB (Object Request Broker).
                un
  capacité d’ système à s’        intégrer à d’  autres                                                    un
                                                               Du point de vue du client, utilisateur d’ objet
  systèmes informatiques est aussi importante que la           CORBA instancié sur le serveur, tout se passe
  qualité de l’                                  il
                implémentation des services qu’ doit                     il
                                                               comme s’ détenait une référence sur un objet
  offrir.                                                      local.
  L’ initiative CORBA est née de ce transfert des
  préoccupations vers les bornes du système (amorcé            Java et CORBA
  avec l’ apparition du Client/Serveur).                       Java a été conçu pour réaliser des applications
                                                               distribuées. L’ intégration de Java à la norme
  Evolution et compétitivité                                               est
                                                               CORBA s’ donc faite rapidement et naturelle-
  La réactivité est un élément fondamental de la               ment. L’                            hui
                                                                         offre produit est aujourd’ importante
  compétitivité d’une entreprise. CORBA offre la               et est dominée par OrbixWeb de IONA Technolo-
  possibilité de faire évoluer un système                      gies.
  d’information à la demande et rapidement.
  Java permet de s’  affranchir de l’hétérogénéité des         Langage IDL et interfaces
  systèmes d’  exploitations et les objets distribués          Le modèle CORBA est basé sur la définition
  apportent le moyen de faire évoluer les                      d’interfaces publiques pour les objets que l’     on
  applications sans remettre en cause l’existant.              souhaite rendre accessibles au travers du réseau.

                               objets
  Les modèles de distribution d’                               interface compte {
  On dénombre à l’     heure actuelle 3 modèles de                   attribute string proprietaire;
  distribution d’objets :                                            void credite(in float);
  − CORBA                                                            void debite(in float);
  − RMI                                                              attribute float solde;
  − DCOM                                                       };
  Chacun de ces modèles présente ses avantages
  spécifiques.                                                   Fig 1 : Interface IDL décrivant un objet compte
                                                                                     bancaire


         ima SOLERI -Immeuble Lavoisier, 4 place des Vosges La Défense 5, 92052 Paris La Défense Cedex
                Téléphone : 01 41 26 62 61 . Télécopie : 01 41 99 91 23 . e-mail : imacours@soleri.com
                                        un
Ces interfaces sont décrites au moyen d’ langage                 Une fois les proxies générés, le développeur doit
de définition d’   interfaces :   IDL (Interface                 bien sûr implémenter l’    objet. Il doit fournir la
Definition Language).                                            logique applicative qui viendra se greffer
Une interface IDL ne fait que décrire les services               derrière l’interface publique de l’   objet. Encore
offerts par un objet CORBA. Elle est totalement                                                        a
                                                                 une fois, cette implémentation n’ pas à être
dissociée des caractéristiques de l’implémentation               connue de l’ utilisateur final de l’objet CORBA.
de l’objet.
                                                                         espéranto des ORB
                                                                 IIOP : l’
Stub et Skeleton : les proxies CORBA                             Le choix de CORBA comme technologie d’     objets
Le compilateur IDL est lui spécifique à un lan-                  distribués n’                      un
                                                                              impose pas le choix d’ éditeur grâce
gage. La compilation de l’  interface IDL produit du             à IIOP (Internet Inter-ORB Protocol).
code qui implémente deux proxies :                               IIOP permet un dialogue entre ORB de différents
− le proxy client ou stub ;                                      éditeurs en définissant un protocole de communi-
− le proxy serveur ou skeleton.                                  cation standardisé au dessus de TCP/IP.
Les proxies (mandataires) jouent le rôle
d’intermédiaires dans le dialogue entre objets client           Remote Method Invocation (RMI)
et objets serveur.
Le code généré par le compilateur IDL est en                     Intégré au Java Developpement Kit depuis la
partie normalisé dans le mapping CORBA pro-                      version 1.1, RMI est un protocole de distribution
pre au langage d’  implémentation.                               d’objets Java basé sur TCP/IP.
Actuellement, 5 mappings CORBA ont été dé-
                                                                 Fonctionnement : un ORB RMI ?
finis : C, C++, ADA 95, Smalltalk, Java.
Les mappings Cobol et ObjectiveC sont en                         L’                est
                                                                    ORB RMI n’ autre que la machine virtuelle
cours de normalisation.                                          Java. Pas d’  IDL avec RMI, cette solution exploite
                                                                 directement les interfaces Java.
                                                                 En effet, le développeur utilise une interface pour
                                                                 décrire les services fournis par un objet RMI ser-
                                                      objet
                                  Objet                          veur. La génération des proxies (stub et skeleton)
         Réseau                                     instancié
         TCP/IP
                                  C++                dans un     est réalisée par un utilitaire (rmic) distribué avec le
                                                     serveur     JDK.
                                                    CORBA
                                                                 Une solution légère
       flux IIOP           skeleton                              La bonne intégration de RMI à Java et son faible
                                                                 coût d’acquisition en font une plate-forme de choix
                          une référence CORBA
  Fig 2 : Partie serveur d’                                      dans le cadre d’ applications Intranet de moyenne
                                                                 ampleur.
Le stub et le skeleton assurent, en collaboration                Dans le cadre de projets de plus grande échelle, il
avec l’ ORB, lors des appels aux méthodes de                       est
                                                                 n’ pas possible d’    envisager cette solution sans
l’objet CORBA distant, la transmission des para-                 développements complémentaires importants.
mètres et des valeurs de retour (marshaling et                   La prochaine adoption du standard IIOP comme
unmarshaling). Le protocole utilisé est IIOP.                    protocole de communication pour RMI devrait
                                                                 contribuer à gommer la singularité de cette
                                                                 approche face à la technologie CORBA.

        Objet                              Réseau
                                           TCP/IP
                                                                DCOM
        Java
                                                                 L’ architecture COM (Component Object Model)
                                                                 et son extension distribuée DCOM (Distributed
              objet                                              COM) sont soutenues par Microsoft. Etroitement
              client       stub           flux IIOP              dépendant des systèmes Windows, ce modèle de
                                                                 composants distribués constitue cependant une
  Fig 3 : Partie cliente d’
                          une référence CORBA
                                                                 alternative envisageable dans le cas de systèmes
                                                                 "tout Windows".

       ima SOLERI -Immeuble Lavoisier, 4 place des Vosges La Défense 5, 92052 Paris La Défense Cedex
                  Téléphone : 01 41 26 62 61 . Télécopie : 01 41 99 91 23 . e-mail : imacours@soleri.com
Produits et solutions                                            Fig 4 :Utilisation du bridge JavaBeans/ActiveX
DCOM est intégré à Windows NT depuis la ver-
sion 4.0 de cet OS. Il est assez aisé de développer        Choisir Java
des composants COM/ActiveX à l’        aide de nom-
breux L4G (VisualBasic, PowerBuilder, Delphi,                  La conception même de Java en faisait un langage
...). En revanche cette technologie apparaît plus              « orienté architecture distribuée » : objet,
difficile d’ accès (et plus mono-éditeur) depuis               interprété et portable.
C++.                                                                                       un
                                                               Il ne manquait à Java qu’ modèle de composants
En outre la difficulté de configuration des solutions          et le mapping avec l’  IDL CORBA. Le premier est
DCOM a longtemps rebuté les développeurs                       apparu avec le JDK 1.1 et le second a été
d’ applications.                                               récemment ratifié par l’  OMG.
                                                               Java peut s’     intégrer aujourd’  hui mieux que
Modèle de composants
                                                               n’ importe quel autre langage à tous les types
L’ essentiel de la force de DCOM réside dans son               d’ architectures à objets distribués.
modèle de composants (Component Object Model)
                                                               La mise sur le marché d’          environnements de
et dans son intégration à Windows.
                                                               développement        exploitant    les    composants
Les objets COM interagissent facilement avec
                                                               JavaBeans offre la possibilité de réaliser des
l’existant Windows 32 bits (avec la bureautique
                                                               applications modulaires et relance le concept de
par exemple).
                                                               client léger (concentré sur les tâches de gestion de
Les passerelles DCOM/CORBA                                     l’interface utilisateur).
Généralement le besoin d’     utiliser COM provient        Quelques adresses utiles
d’une nécessité de s’      intégrer à un existant
Windows.                                                       Object Management Group (OMG)
La plupart des principaux éditeurs d’          ORB                    http://www.omg.org
CORBA proposent des ponts qui permettent à des
clients DCOM de référencer des objets CORBA (et                IONA Technologies
inversement).                                                        http://www.iona.com
Une autre solution pour Intégrer COM et CORBA
consiste à utiliser le bridge ActiveX/JavaBeans de             JavaSoft (filiale de SUN en charge              des
SUN. Cet outil permet de générer une interface de              développements logiciels autour de Java)
type COM autour d’ composant JavaBeans et il
                       un                                              http://www.javasoft.com
est ainsi possible de faire interagir facilement
COM et CORBA (par l’      intermédiaire de Java).              IBM et Java
                                                                      http://www.ibm.com/java/
            Interface                  Proxy
            COM                        CORBA                   VisualAge pour Java
                                                                      http://www.software.ibm.com/ad/vajava/

    Composant                                                  ActiveX
                                             Objet
      COM                  JavaBeans
    (ActiveX)
                                            CORBA                     http://www.activex.com



                  Bridge
             JavaBeans/ActiveX




       ima SOLERI -Immeuble Lavoisier, 4 place des Vosges La Défense 5, 92052 Paris La Défense Cedex
                Téléphone : 01 41 26 62 61 . Télécopie : 01 41 99 91 23 . e-mail : imacours@soleri.com