45
29/04/2003 1 Présentation de l’architecture CORBA Common Object Request Broker Architecture Yves LALOUM Conseil Audit de Systèmes d ’information CISA [email protected]

Corba Cnam

Embed Size (px)

Citation preview

  • 29/04/2003 1

    Prsentation de larchitecture CORBACommon Object Request Broker Architecture

    Yves LALOUMConseil Audit de Systmes d information CISA

    [email protected]

  • 29/04/2003 2

    1.Introduction

    Depuis 1989, une association internationale l OMG (ObjectManagement Group) dfinit la spcification de l'architecture d'un systme objets rpartis, appele CORBA (Common Object Request Broker Architecture /Architecture darbitrage de demande d'objets commun). CORBA est n du besoin de faire communiquer ensemble des applications en environnement htrogne (plusieurs systmes et plusieurs langages).

    CORBA associe les concepts d'objet et de rpartition dans une approche la fois intgre et applique.

  • 29/04/2003 3

    Introduction L'intgration se fait travers la notion d'invocation

    distance d'objet ( l'objet est l'unit de rpartition), et l'application se fait travers les services de rpartition qui sont organiss sous forme de bibliothques de classes.

    Dates importantes : 1991 CORBA 1.1 Dfinition de lInterface

    Definition Language (IDL) et Application Programming Interfaces (API)

    interaction avec limplmentation de l Object Request Broker (ORB).

    1995 CORBA 2.0 Interoprabilit entre ORB et le protocole IIOP

  • 29/04/2003 4

    2. L OMG (Object Management Group)

    Un consortium international but non lucratif fond en Avril 1989

    Plus de 900 membres (diteurs de logiciels, constructeurs, utilisateurs)

    Bas aux Etats-Unis avec des reprsentants dans le monde entier

    Est financ 95 % par ses membres et 5% par l dition douvrages

    Un site : HTTP://www.omg.org

  • 29/04/2003 5

    OMG: Les objectifs Fixer une dfinition du paradigme objet vise promouvoir les technologies orientes objets pour la

    conception d'applications informatiques distribues, interoprables et ouvertes.

    Spcifier seulement les interfaces : laisser la concurrence ouverte pour les implmentations

    Supporter de multiples langages (pas seulement Java et C++)

    Promouvoir ses choix technologiques (publications, forums, confrences, sminaires,formation.)

    Dfinir lObject Management Architecture Guide (OMA) son modle d'objets distribus et interoprables.

  • 29/04/2003 6

    OMA Object Management Architecture

    Il dfinit larchitecture de gestion des objets et contient le fondement des standards : Le modle objet abstrait le modle de rfrence Un glossaire des termes utiliss

    Il regroupe essentiellement 4 composants : Le modle objet Corba Facilities Corba Domains Corba Services

  • 29/04/2003 7

    OMA Object Management Architecture Les composants

    CORBA Services : Services dobjet commun

    CORBA Facilities : Utilitaires Communs

    CORBA Domains : Interfaces de domaine.

    Application Objects : Objets applicatifs

  • 29/04/2003 8

    CORBA Services :

    les services objet communs (Common Object Services) proposent des services horizontaux pour faciliter l'utilisation courante des objets CORBA.

    Naming Service : Le service Nommage est lquivalent des pages blanches

    les objets sont dsigns par des noms symboliques. Cet annuaire est matrialis par un graphe de

    rpertoires de dsignation. Trader Service : Le service Vendeur est lquivalent des

    pages jaunes les objets peuvent tre recherchs en fonction de leurs caractristiques.

  • 29/04/2003 9

    CORBA Services Life Cycle Service : Le service Cycle de Vie dcrit des

    interfaces pour la cration, la copie, le dplacement et la destruction des objets sur le bus. Il dfinit pour cela la notion de fabriques dobjets (Object Factory).

    Properties Service : Le service Proprits permet aux utilisateurs dassocier dynamiquement des valeurs nommes des objets. Ces proprits ne modifient pas linterface IDL, mais reprsentent des besoins spcifiques du client comme par exemple des annotations.

    Relationship Service : Le service Relations sert grer des associations dynamiques (appartenance, inclusion, rfrence, auteur, emploi,...) reliant des objets sur le bus. Ilpermet aussi de manipuler des graphes dobjets.

  • 29/04/2003 10

    CORBA Services Externalization Service : Le service Externalisation

    apporte un mcanisme standard pour fixer ou extraire des objets du bus. La migration, le passage par valeur, et la sauvegarde des objets doivent reposer sur ce service.

    Persistent Object Service : Le service Persistance offre des interfaces communes un mcanisme permettant de stocker des objets sur un support persistant. Un objet persistant doit hriter de linterface Persistent Object et dun mcanisme dexternalisation.

    Object Query Service : Le service Interrogations permet dinterroger les attributs des objets. Il repose sur les langages standards dinterrogation comme SQL3 ou OQL.

  • 29/04/2003 11

    Corba Services Collection Service : Le service Collections permet de

    manipuler dune manire uniforme des objets sous la forme de collections et ditrateurs.

    Versionning Service : Le service Changements permet de grer et de suivre lvolution des diffrentes versions des objets. Ce service maintient des informations sur les volutions des interfaces et des implantations.

    Security Service : Le service Scurit permet didentifier et dauthentifier les clients, de chiffrer et de certifier les communications et de contrler les autorisations daccs. Ce service utilise les notions de serveurs dauthentification, de clients/rles/droits (et dlgation de droits), dIIOP scuris (utilisant Kerberos ou SSL).

  • 29/04/2003 12

    CORBA Services Object Transaction Service : Le service Transactions assure

    lexcution de traitements transactionnels impliquant des objetsdistribus et des bases de donnes en fournissant les propritsAtomicit, Cohrence, Isolation, Durabilit.

    Concurrency Service : Le service Concurrence fournit les mcanismes pour contrler et ordonnancer les invocations concurrentes sur les objets. Le mcanisme propos est le verrou.Ce service est conu pour tre utilis conjointement avec le service Transactions.

    Event Service : Le service Evnements permet aux objets de produire des vnements asynchrones destination dobjets consommateurs travers des canaux dvnements.

  • 29/04/2003 13

    CORBA Services Notification Service : Dans Le service Notification les

    consommateurs sont uniquement notifis des vnements les intressant.

    CORBA Messaging [OMG-CM] :Le service Messagerie dfinit un nouveau modle de communication asynchrone permettant de grer des requtes persistantes lorsque lobjet appelant et lobjet appel ne sont pas prsents simultanment sur le bus.

    Time Service : Le service Temps fournit des interfaces permettant dobtenir une horloge globale sur le bus (Universal Time Object), de mesurer le temps et de synchroniser les objets.

    .

  • 29/04/2003 14

    CORBA Services

    Licensing Service : Le service Licences permet de mesurer et de contrler lutilisation des objets, et cela en vue de facturer les clients et de rmunrer les fournisseurs

  • 29/04/2003 15

    CORBA Facilities les utilitaires communs dfinissent un cadre de haut niveau

    pour la cration de logiciels l'aide de composants rutilisables.

    la gestion des tches flux d activits (workflow)

    gestions des transactions

    l'interface utilisateur gestion du rendu . Gestion du bureau

    affichage & dialogue utilisateur - prsentation de l environnement gestion des documents composites .

    Scripts support de l utilisateur

  • 29/04/2003 16

    CORBA Facilities la gestion de l'information

    modlisation . change

    rgles de structuration, manipulation - GIF, JPEG, HTML,

    stockage structur . Codage et reprsentation

    archivage de l information - physique de l information

    l'administration systme instrumentation . Ordonnancement

    collecte d informations - traitement rptitif + vnements

    collecte des donnes . scurit

    journal d utilisation - politique de scurit

    qualit du service . gestions des vnements

    suivi d instance

  • 29/04/2003 17

    Les interfaces de domaines CORBA les interfaces de domaines concernent des

    marchs verticaux ils dfinissent des interfaces spcialises

    rpondant aux besoins spcifiques dun march . Il sont dtermins au sein de groupes de travail nomms selon les cas :

    Working Groups Domain Task Forces Special Interest Groups ..

  • 29/04/2003 18

    Les interfaces de domaines CORBA Quelques exemples :

    Business Objects DTF pour la conception dapplications mtier au dessus de CORBA.

    CORBAmed dfinit les standards OMG pour le domaine de la mdecine. Ces standards permettront linteroprabilit entre les acteurs de la sant en dfinissant par exemple la notion dobjets patient.

    Telecom DTF fait la liaison entre le monde CORBA et le monde des tlcommunications.

    Internet Platform SIG travaille sur les rapprochements des technologies CORBA avec les technologies dInternet. Il tudie principalement les relations avec le World Wide Web.

  • 29/04/2003 19

    OBJETS Applicatifs :

    Les objets applicatifs sont ceux qui sont spcifiques une application rpartie et ne sont donc pas standardiss.

    Toutefois, ds que le rle de ces objets apparat dans plus dune application ils peuvent alors rentrer dans une des catgories prcdentes et donc tre standardiss par lOMG.

  • 29/04/2003 20

    BUS DOBJETS DISTRIBUES

  • 29/04/2003 21

    BUS DOBJETS DISTRIBUES

    Cest le cadre visible que doivent respecter les dveloppeurs de bus CORBA.

    Il correspond lapproche intgre du modle Il assure le transport des requtes entre tous les

    objets CORBA. Il offre un environnement dexcution aux objets

    masquant lhtrognit lie Aux langages de programmation, Aux systmes dexploitation,

    Aux processeurs et aux rseaux.

  • 29/04/2003 22

    BUS DOBJETS DISTRIBUES Le bus CORBA est donc

    lintermdiaire/ngociateur travers lequel les objets vont pouvoir dialoguer.

    Il fournit les caractristiques suivantes : La liaison avec tous les langages de programmation :

    cependant, actuellement lOMG a seulement dfini officiellement cette liaison pour les langages C, C++, SmallTalk, Ada, COBOL et Java

    La transparence des invocations : les requtes aux objets semblenttoujours tre locales, le bus CORBA se chargeant de les acheminer en utilisant le canal de communication le plus appropri.

  • 29/04/2003 23

    BUS DOBJETS DISTRIBUES Niveau du processus : les objets sont dans le mme

    espace mmoire que les clients. Cest le cas typique des applications embarques. Ici, le langage OMG-IDL sert spcifier les objets.

    Niveau de lOS : les clients et les fournisseurs sont des processus diffrents sur la mme machine. Le bus CORBA peut alors tre tout ou partie du

    systme dexploitation Niveau du rseau : les processus sont sur des sites

    diffrents et les requtes sont vhicules travers le rseau. Cest le cas sur Internet avec IIOP

  • 29/04/2003 24

    Linvocation statique et dynamique Ces deux mcanismes complmentaires permettent de

    soumettre les requtes aux objets. En statique, les invocations sont contrles la

    compilation. En dynamique, les invocations doivent tre contrles

    lexcution.

  • 29/04/2003 25

    Linvocation statique et dynamique Un systme auto-descriptif : les interfaces des objets sont connues

    du bus et sont aussi accessibles par les programmes par lintermdiaire du rfrentiel des interfaces.

    Activation automatique et transparente des objets : les objets sont en mmoire uniquement sils sont utiliss par des applications clientes.

    Linteroprabilit entre bus : partir de la norme CORBA 2.0, un protocole gnrique de transport des requtes (GIOP pour GeneralInter-ORB Protocol) a t dfini permettant linterconnexion de bus CORBA provenant de fournisseurs distincts

    une de ses instanciations est lInternet Inter-ORB Protocol (IIOP) fonctionnant au dessus de TCP/IP.

  • 29/04/2003 26

    OMG Interface Definition Language(OMG IDL)

    Il est utilis pour dcrire les interfaces des objets distribus.

    Sparation de l'interface d'un objet de son implmentation.

    Il permet de dfinir dans un langage commun l'ensemble des compilateurs, les partie visible d'un objet (mthodes , proprits).

    langage de description d'interfaces totalement indpendant de tout langage de programmation :

    Quelque soit limplmentation (Java ou C++) le fichier IDL correspondant aux interfaces crites dans les deux langages sera identique.

  • 29/04/2003 27

    OMG Interface Definition Language(OMG IDL)

    Les clients interagissent avec les objets locaux et distants en invoquant les mthodes dfinies dans le fichier IDL

    IDL est un langage de description (ressemblant au C). Exemple dinterface IDL :

    // CompteClient.idlinterface Compte client {void credit ( in unsigned long montantFRF );void debit ( in unsigned long montantFRF );long solde ( );};

  • 29/04/2003 28

    IDL: PROJECTION La projection (ou mapping) : La projection permet de

    gnrer du code pour exploiter le type d'objet partir d'un langage de programmation. Ce mcanisme est dpendant du langage cible.

    Ralise par un pr-compilateur IDL dpendant du langage cible et du bus CORBA cible.

  • 29/04/2003 29

    IDL:STUB / SKELETON:

    Avec l'aide d'un compilateur IDL (IDL COMPILER) et de vos fichiers idl on gnre :

    une souche (stub) pour le client un squelette (skeleton) pour le serveur.

    On programme l'implmentation de la classe serveur qui doit hriter du squelette gnr par idl.

    Une fois les programmes clients et serveurs compils, l'ORB prendra en charge le pliage/dpliage des requtes des clients sur les objets locaux et distants.

  • 29/04/2003 30

    IDL:STUB / SKELETON:

  • 29/04/2003 31

    Les Objets du Bus dobjets Distribus :ARCHITECTURE GENERALE

  • 29/04/2003 32

    Interface Repository ou IR :cest le rfrentiel des interfaces contenant une reprsentation des interfaces OMG-IDL accessible par les applications durant lexcution.

    L ORB doit avoir accs la dfinition de l'objet qu'il gre; cela peut se faire de deux faons: l'information est contenue dans la requte

    l'ORB prend cette information dans l' interface Repository

    Permet galement, en utilisant les informations de l' interface Repository, dterminer l'excution les oprations ralisable sur un objet dont l'interface n'tait pas connue la compilation.

    Les Objets du Bus dobjets Distribus :Les diffrents objets

  • 29/04/2003 33

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    Implementation Repository :Rfrentiel des implantations

    ! Il contient linformation ncessaire lactivation.

    ! Ce rfrentiel est spcifique chaque produit CORBA.

    II contient aussi des informations supplmentaires comme par exemple des informations sur le debugging, la scurit,...

  • 29/04/2003 34

    Les Objets du Bus dobjets Distribus :Les diffrents objets

  • 29/04/2003 35

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    OBJ REF :La rfrence de l'objet est l'information ncessaire pour dsigner sans ambigut cet objet dans un ORB.

    Le client et l'implmentation de l'objet ont une notion opaque de la rfrence de l'objet au travers de leur langage.

    La reprsentation d'une rfrence d'objet fournie un client n'est plus valable la mort du client.

    Un objet peut avoir plusieurs rfrences d'objet. Deux ORB diffrents peuvent avoir des reprsentations de rfrence d'objet diffrentes :

    LIOR (Interoperable Object Reference) resoud cette ambigut. Il contient notamment l adresse machine

  • 29/04/2003 36

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    IDL STUBS : SII (Static Invocation Interface) : Interface dinvocations statiques permet de soumettre des requtes contrles la

    compilation des programmes. Cette interface est gnre partir de dfinitions OMG-IDL.

    IDL SKELETON : SSI (Skeleton StaticInterface) Interface de squelettes statiques il permet limplantation des objets de recevoir les

    requtes leur tant destines. Cette interface est gnre partir de dfinitions OMG-IDL

  • 29/04/2003 37

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    DII (Dynamic Invocation Interface) : Interface dinvocations dynamiques permet de construire dynamiquement des requtes vers

    nimporte quel objet CORBA sans gnrer/utiliser une interface SII.

    DSI (Dynamic Skeleton Interface) : Interface de squelettes dynamiques Il qui permet dintercepter dynamiquement toute

    requte sans gnrer une interface SSI. Cest le pendant de DII pour un serveur.

  • 29/04/2003 38

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    Object Adapter : Ladaptateur dobjets " Canal " par lequel l'ORB est connecte

    l'implmentation de l'objet. Il soccupe de crer les objets CORBA, de maintenir les associations entre objets CORBA

    et implantations de raliser lactivation automatique si ncessaire.

  • 29/04/2003 39

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    les services de l Object Adapter :"gnration et interprtation de rfrences d'objet

    "invocation des mthodes

    "scurit de l'interaction

    "activation et dsactivation des objets

    "correspondance des rfrences d'objet aux implmentations

    "liste des implmentations

    "etc...

    la norme CORBA 2.0 introduit le BOA ou Basic Object Adapter dpendant du type d ORB. Pour rsoudre les problmes dinteroprabilit le POA ou Portable Object Adapter a t introduit .

  • 29/04/2003 40

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    ORB INTERFACE : Linterface au bus fournit les primitives de base comme linitialisation de lORB. permet de contrler le comportement du bus, de crer les autres objets reprsentant les composantes

    du bus, de convertir les rfrence dobjet fournit par le bus en

    chane de caractres et vice-versa et dobtenir les rfrences des objets notoires

  • 29/04/2003 41

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    Object Request Broker (ORB). Le cur de CORBA est constitu par l'ORB qui est le conduit/bus par lequel les requtes sur les objets transitent.

    Noyau de transport des requtes aux objets. Il intgre au minimum les protocoles GIOP et

    IIOP. LORB n'est pas directement accessible au

    programmeur d'applications CORBA qui n'utilise qu'une rfrence.

  • 29/04/2003 42

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    Le protocole GIOP (General Inter-ORB Protocol ) dfinit : une reprsentation commune des donnes CDR ou

    Common Data Representation un format de rfrences dobjet interoprables (IOR ou

    Interoperable Object Reference) un ensemble de messages de transport des requtes aux

    objets (Request, Reply, ). Cependant, GIOP est seulement un protocole gnrique

  • 29/04/2003 43

    Les Objets du Bus dobjets Distribus :Les diffrents objets

    IIOP (Internet Inter-ORB Protocol) : IIOP fournit une implantation de GIOP au dessus de

    TCP/IP et donc dInternet. Les IORs (dans le contexte dIIOP) doivent contenir :

    le nom complet de linterface OMG-IDL de lobjet

    ladresse IP de la machine Internet o est localis lobjet ;

    un port TCP pour se connecter au serveur de lobjet ;

    une cl pour dsigner lobjet dans le serveur.

    Son format est libre et il est donc diffrent pour chaque implantation du bus CORBA.

  • 29/04/2003 44

    Les diffrents produits la norme CORBA

    VISIBROKER Commercial CORBA 2.3 Le meilleur produit sur le march

    MICO Gratuit CORBA 2 c'est un produit de trs bonne qualit qui peut rivaliser avec des bus commerciaux.

    ROBIN gratuit CORBA 2 / freeware de bonne qualit implment en Java.

    ORBACUS gratuit pour une utilisation non commerciale. CORBA 2

    OMNIORB2 gratuit. CORBA 2

    XEROX ILU gratuit Outil trs puissant mais plus complexe utiliser que les prcdents et qui fait partie du projet Inter-Language Unification de Xerox.

    CORBAScript gratuit Ce langage interprt permet l'utilisation d'objets CORBA par simples scripts

  • 29/04/2003 45

    EN CONCLUSION CORBA est une solution ouverte et volutive avec

    architecture est modulaire : Attention ne pas tomber dans le piges tenduspar les

    fournisseurs de bus : il faut viter dutiliser les mcanismes propritaires d un fournisseur pariculier.

    Ces spcifications sont implantes dans des produits Corba ready .

    Toujours choisir le produit CORBA le plus appropri chaque partie dune application : un produit offrant le POA pour crire des serveurs C++ portables et un produit offrant la projection IDL/Java pour les applications clientes utilises travers le WWW.