corba

78
- 1 - ©#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"¢TIMENT Le standard CORBA Virginie Amar Centre Scientifique et Technique du Bâtiment (CSTB) - [email protected] *ANVIER

Upload: omar-trigui

Post on 18-Nov-2015

218 views

Category:

Documents


3 download

DESCRIPTION

e

TRANSCRIPT

  • - 1 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le standard CORBA

    Virginie AmarCentre Scientifique et Technique du Btiment (CSTB)

    - [email protected]

    *ANVIER

  • - 2 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Sommaire

    Introduction1- Object Management Group Prsentation, mission, objectifs, historique, organisation et procdures2- Object Management Architecture Prsentation, modle dobjets abstrait, dfinitions, modle de rfrence3- Langage Interface Definition Language4- Common Object Request Broker Architecture (CORBA)

    Prsentation, architecture gnrale, les composants

    5- Services Objets6- CORBA 2.07- Produits CORBARfrences

  • - 3 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Introduction

    Le problme : Intgration des applications

    Pas de consensus sur les langages de programmation Pas de consensus sur les plate-formes de dveloppement Pas de consensus sur les systmes dexploitation Pas de consensus sur les protocoles rseau Pas de consensus sur les formats des donnes manipules par les applications

    Consensus pour linteroprabilit

  • - 4 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    1- OMG

    /BJECT-ANAGEMENT'ROUP/-'

    consortium international cr en 1989 but non lucratif regroupement de plus de 800 membres

    constructeurs (SUN, HP, DEC, IBM, ...) environnements systmes (Microsoft, OSF, Novell, ...) outils et langages (Iona, Object Design, Borland, ...) produits et BD (Lotus, Oracle, Informix, O2, ...) industriels (Boeing, Alcatel, Thomson, ...)

  • - 5 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Mission et objectif

    -ISSION Promouvoir la technologie oriente objet dans les systmes informatiques distribus Fournir une architecture de base pour lintgration dapplications distribues tout en garantissant la rutilisabilit, lintroprabilit et la portabilit.

    /BJECTIFFavoriser lintroprabilit et la portabilit dapplications rparties travers :

    une terminologie unique dans le domaine de lobjet; un model de rfrence commun; des interfaces et des protocoles communes.

  • - 6 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Historique

    &ONDATION

    DEL /-'

    0UBLICATION

    DEL /-!

    0UBLICATION

    #/2"!!DOPTION

    #/2"!

    -APPING

    )$,#

    .OMBREDEMEMBRES

  • - 7 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Organisation et procdures

    #OMITTECHNIQUE dtermine la direction de larchitecture et des normes; met des RFI (Request For Information) pour vrifier la

    disponibilit des technologies; met des RFP (Request For Proposal) pour obtenir des

    propositions de spcifications; value les propositions et propose une slection; fait des recommandations au comit directeur sur les choix des

    technologies.

    #OMITDIRECTEUR prend les dcisions finales pour ladoption des spcifications.

  • - 8 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    2- Object Management Architecture

    /BJECT-ANAGEMENT!RCHITECTURE/-!

    Description dune architecture de Gestion Objet dfinissant lesbases des futures spcifications incluant :

    une prise en compte des problmes dintgration dans desenvironnements distribus;

    les objectifs de lOMG; UNMODLED OBJETSABSTRAIT L ARCHITECTUREDUMODLEDERFRENCE un glossaire des termes utiliss.

  • - 9 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le modle abstrait dobjets

    Modle dfinissant la faon de dcrire des objets distribus dans des environnements htrognes.

    Utilis dans toutes les technologies conformes lOMG (ex : CORBA)

    Spcifie une smantique commune dfinissant le comportement externe des objets dune manire standard (indpendante des langages et des implmentations).

  • - 10 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Dfinitions (1/2)#LIENT

    Entit capable dmettre des requtes vers des objets qui fournissent des services. Le client manipule des rfrences vers des objets distants.

    2FRENCE/BJET

    Objet manipul par le client pour invoquer des services sur un objet distant : objet implmentation. Terme usit : proxy Un proxy est un reprsentant local au client dun objet distant.

    /BJETIMPLMENTATION

    Objet situ sur le serveur qui implmente le code des mthodes des oprations dfinies en IDL.

  • - 11 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Dfinitions (2/2)

    2EQUTE

    Emise par un client pour demander lexcution dune opration sur un objet cible. La requte contient lopration excuter, lobjet cible et les paramtres ventuels.

    )NTERFACE

    Description dun ensemble doprations disponibles sur un objet. Spcification des interfaces en IDL.

    /PRATION

    Entit identifiable caractrise par une signature dcrivant les paramtres de la requte et les valeurs de retour.

  • - 12 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Concepts (1/2)

    Vue dun objet dans une application monolithique

    Vue dun objet dans une application d'objets distribus

    objetstubs

    sqelettes

    impl

    invocation distante

    objet client objet serveur

    impl = objet implementation,EGENDE

  • - 13 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Concepts (2/2)

    serveur pur

    invocation distante

    invocation distante

    Application 1 Application 2 Application 3

    C

    OBJ

    objet client

    objet client

    S

    objet serveur

    C

    OBJ

    client pur

    objet clientC

    OBJ

    S

    objet serveur

    invocation distanteS

    objet serveur

    client serveur

    OBJ

    )MPL

    OBJ

    )MPL

    OBJ

    )MPL

    Legende :c-obji : objet client obji

    s : squeletteobji Impl : objet implementation obji

  • - 14 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Architecture du modle de rfrence

    Object Request Broker (ORB)

    Objets applicatifs Fonctionnalitscommunes

    Objets services

    CO

    RB

    A

    Objets des domaines

    Spcification des liens entre les objets

  • - 15 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    ORB (1/2)

    /2"/BJECT2EQUEST"ROKER

    Middleware qui gre les relations client/serveur entre les objets

    $FINITIONDUCONCEPTDE-IDDLEWARE

    #OURTIERD OBJETS (en Franais).

    Ensemble des logiciels ncessaires pour permettre et organiser la communication et lchange de messages entre client et serveur.

  • - 16 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    ORB (2/2)

    Composant central du standard CORBA qui gre :

    la location dobjet la dsignation des objets lempaquetage des paramtres (marshalling) le dpaquetage des paramtres (unmarshalling) linvocation des mthodes la gestion des exceptions

  • - 17 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Objets applicatifs

    Les Objets applicatifs (CORBA Applications) :

    spcification dinterfaces IDL;

    dfinis par une application de lutilisateur;

    hors du champ de standardisation de lOMG;

    possibilit de standardisation pour des objets mergents.

  • - 18 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Objets des domaines

    Les Objets des domaines (CORBA Domains) :

    spcification dinterfaces IDL;

    standardiss par lOMG;

    leurs fonctionnalits peuvent tre tendues ou spcialises par hritage;

    spcifiques un domaine dapplication (mdical, financier, tlcommunications...);

    interfaces vertical-oriented .

  • - 19 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Fonctionnalits communes

    Les Fonctionnalits communes (CORBA Facilities) :

    spcification dinterfaces IDL;

    leurs fonctionnalits peuvent tre tendues ou spcialises par hritage;

    ensemble de services de plus haut niveau fournissant des fonctionnalits utiles dans de nombreuses applications;

    indpendant des domaines dapplication;

    interfaces horizontally-oriented.

    Exemple : impression, aide en ligne, messages derreurs, etc.

  • - 20 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Objets Services

    Les Objets Services (CORBA Services) :

    spcification dinterfaces IDL;

    leurs fonctionnalits peuvent tre tendues ou spcialises par hritage;

    interfaces indpendantes des domaines dapplication;

    interfaces horizontally-oriented;

    objectif : tendre les fonctions de lORB.

    Spcification de nombreux services (cf. section 4).

  • - 21 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    3- Le langage IDL

    )NTERFACE$EFINITION,ANGUAGE

    langage de spcification dinterfaces, supportant lhritage multiple;

    langage indpendant de tout langage de programmation ou

    compilateur;

    langage utilis pour gnrer les stubs, les squelettes et pour dfinir

    les interfaces du Rfrentiel dinterface;

    la correspondance IDL langage de programmation est fournie pour les langages C, C++, Java, Smalltalk, Ada, Cobol.

  • - 22 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Interface IDL

    Une spcification IDL dfinit un ou plusieurs types, constantes, exceptions, interfaces, modules

    Un module permet de limiter la validit des identificateurs

    Interface : ensemble doprations et de types =>classe C++

    3YNTAXE

    )NTERFACE\;HRITAGE=[INTERFACE"ODY]

  • - 23 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Exemple

    interface account { readonly attribute float balance; attribute string description; void makeLodgement (in float f); void makeWithdrawal (in float f);};interface currentAccount : account { readonly attribute float overdraftLimit;};interface bank { exception reject {string reason;}; account newAccount (in string name)

    raises (reject); currentAccount newCurrentAccount (in string name, in float limit)

    raises (reject); void deleteAccount (in account a);};

    INTERFACE

    ATTRIBUT

    OPRATIONS

    EXCEPTION

    OPRATIONS

  • - 24 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    IDL vs C++

    Mme rgles lexicales que C++

    Grammaire IDL : sous ensemble de la grammaire ANSI C++ avec constructions supplmentaires

    Nouveaux mots cls :

    ATTRIBUTE

    INTERFACE

    MODULE

    ONEWAY

    READONLY

    SEQUENCE

    ANY

  • - 25 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Types de base et autres types

    4YPESDEBASE

    short long unsigned short unsigned long float double char boolean octet any

    4YPESCONSTRUITS

    struct union enum

    4YPESGNRIQUES

    array sequence string

  • - 26 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Attribut IDL

    Dfinition dattributINTERFACEACCOUNT[

    READONLYATTRIBUTEFLOATBALANCE

    ATTRIBUTESTRINGDESCRIPTION

    ]

    Equivaut :FLOAT?GET?BALANCE

    STRING?GET?DESCRIPTION

    VOID?SET?DESCRIPTIONINSTRINGS

  • - 27 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    void op1 (in long input, out long output, inout long both);

    interface account;

    interface bank { account newAccount (in string name); void deleteAccount (in account old);};

    Operations (1/2)

    Paramtres nomms et associs un mode

    Oprations bloquantes par dfaut

  • - 28 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Oprations (2/2)

    oneway void notify (in string message);

    Opration non bloquante

    Pas de paramtre de typeOUT INOUTou dEXCEPTIONS

    Valeur de retour : void

  • - 29 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Hritage multiple

    INTERFACE![]

    INTERFACE"![]

    INTERFACE#![]

    INTERFACE$"#[]

    A

    B C

    D

  • - 30 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Dveloppement

    3TUBS

    $EFINITIONS

    )$,

    #OMPILATEUR)$,/BJET

    IMPLEMENTATION

    -ETHODES

    3QUELETTES

    #LIENT 3ERVEUR

    !DAPTATEURDOBJET

    .OYAU/2"

  • - 31 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Mapping C++

    #OMPILATEUR)$,

    #LIENT

    3ERVEURinterface room { attribute string name; attribute long number; ...}

    class room : publicvirtual CORBA::Object {...}

    class roomImpl :public virtual room { ... virtual CORBA::String* name()=0; virtual void name (const CORBA::String&)=0;

    virtual CORBA::Long number()=0; virtual void number(const CORBA::Long)=0; ...}

    class room _i :public virtual roomImpl, public SDAIroom { ... CORBA::String* name() { return SDAIroom::name();} void name (const CORBA::String& s) { SDAIroom::name(s);} CORBA::Long number() { return SDAIroom::number();} void number(const CORBA::Long l) { SDAIroom::number(l);}}

  • - 32 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Mapping C++ des modules

    traduit en namespace C++ les modules CORBA contiennent des types prdfinis des interfaces et des oprations

    // IDLmodule M{// dfinitions};

    // C++namespace M{// dfinitions};

  • - 33 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Mapping C++ des rfrences objet

    interface A{ void op1 (in long param);};

    // C++-usedA_ptr aPtr;A_var aVar;aVar->op1(2);aPtr->op1(5);

    )NTERFACE

    traduit en classes C++ traduit en deux types C++

    A_varRfrence sur un objet (instance de classe A) avec gestionautomatique de la mmoire. A_ptrSimilaire aux pointeurs C++.

  • - 34 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Mapping C++ des exceptions (1/2)

    Dfinition d'un ensemble d'exception systme standardises : UNKNOWN, BAD_PARAM, NO_MEMORY, etc ...;

    Possibilit de dfinir des exceptions propres l'utilisateur;

    Exceptions propages de l'objet implmentation vers le client;

  • - 35 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Mapping C++ des exceptions (2/2)

    #LIENT

    /BJET)MPLMENTATION

    interface bank { exception reject {string reason;}; account newAccount (in string name)

    raises (reject);...}

    )NTERFACE)$,

    bank_var b;...try { a = b->newAccount("Bill");}catch (const bank::reject& r) {// actions}catch(...) {...}

    void bank_i::newaccount (const char* name, CORBA::Environnement&) { ...throw bank::reject ("Impossible to create a new account");};

  • - 36 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    4- CORBA

    #OMMON/BJECT2EQUEST"ROKER!RCHITECTURE

    Architecture permettant de dvelopper des applications distribues :

    standardises

    dans des environnements htrognes indpendant des langages de programmation et des systmes dexploitation;

    bases sur la technologie objet.

  • - 37 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Architecture gnrale

    FICHIER)$,

    compilateur

    Client Implmentation dobjet

    )NTERFACE

    )NVOCATION

    $YNAMIQUE

    3TUB

    CLIENT

    )NTERFACE

    /2"

    !DAPTATEURD /BJET

    Rfrentieldinterfaces

    Rint

    Rfrentieldimplmentations

    Rimp

    Object Request Broker (ORB) noyau

    SQUELETTE

    STATIQUE

    SQUELETTE

    DYNAMIQUE

  • - 38 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Invocation statique

    Client Implmentation dobjet

    3TUB

    CLIENT

    !DAPTATEURD /BJET

    ORB noyau

    SQUELETTE

    STATIQUE

    requte rponse

    SQUELETTE

    DYNAMIQUE

  • - 39 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Stub

    Partie de code gnre automatiquement par un compilateur IDL vers un langage de programmation cible.

    Code utilis par le client lors des invocations statiques.

    Lien entre le client et lORB.

    Traduit les invocations du client en message transmissibles sur le rseau : opration "marshalling.

    Traduit les messages qui proviennent de l'ORB en donnes C++ : opration "unmarshalling".

  • - 40 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Squelette statique (skeleton)

    Partie de code gnre automatiquement par un compilateur IDL vers un langage de programmation cible.

    Code utilis par l'Adaptateur d'objet lors des invocations statiques.

    Lien entre lORB et l'objet d'implmentation.

    Reconstitue la requte du client de faon invoquer la mthode C++ requise : opration unmarshalling.

    Traduit les paramtres de retour en messages transmissibles sur le rseau : opration marshalling.

  • - 41 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Installationdes implmentations

    3TUBS

    $EFINITIONS

    )$,

    #OMPILATEUR)$,

    /BJET

    IMPLEMENTATION

    -ETHODES

    3QUELETTES

    #LIENT

    3ERVEUR

    !DAPTATEURDOBJET

    .OYAU/2"

    Rint Rimp

    Initialisation des repositories

  • - 42 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Connexion sur un objet distant

    /BJET

    IMPLEMENTATION

    -ETHODES

    3QUELETTES

    #LIENT 3ERVEUR

    !DAPTATEURDOBJET

    .OYAU/2"

    Rimp

    /BJET

    CLIENT

    /PRATION

    BIND0ROXY

    STUBS

    /PRATION

    BIND

    ,ANCEMENT

    DUSERVEUR

    3ERVEUREN

    ATTENTEDUNEREQUTE

    $EMANDEDECRATION

    DUNPROXY

    #RATION

    DUNPROXY

    2ECHERCHE

    INFORMATION

  • - 43 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Mcanisme d'invocation

    /BJET

    IMPLEMENTATION

    -ETHODES

    3QUELETTES

    !DAPTATEURDOBJET

    .OYAU/2"

    /BJET

    CLIENT

    0ROXY

    STUBS

    4RANSMISSION

    DESMESSAGES

    2CEPTION

    DESMESSAGES

    2CEPTION

    DESMESSAGES

    )NVOCATION

    DUNEREQUTE

    2SULTATDE

    LINVOCATION

    !PPELDE

    MTHODE

    4RANSMISSION

    DESMESSAGES

    MARSHALLING UNMARSHALLINGMARSHALLING

  • - 44 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Invocation dynamique

    Client Implmentation dobjet

    )NVOCATION

    $YNAMIQUE

    SQUELETTE

    DYNAMIQUE

    !DAPTATEURD /BJET

    ORB noyau

    SQUELETTE

    STATIQUE

    rponserequte

  • - 45 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Interface dinvocation dynamique

    Permet la cration dynamique de requtes; Utilisation du rfrentiel des interfaces pour rcuprer les informations relatives aux interfaces IDL;Avantages :

    les interfaces peuvent tre dcouvertes dynamiquement; code client gnrique indpendant d'une interface IDL;

    Etapes de cration d'une requte : recherche et interprtation de l'interface dans le rfrentiel des interfaces; construction d'un objet requte; spcification de l'objet cible et de l'opration; ajout des paramtres; invocation de la requte.

  • - 46 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Rfrentiel dinterfaces etdimplmentations

    Rint Rimp

    Client Implmentation dobjet

    FICHIER)$,

    compilateur

    3TUB

    CLIENT3QUELETTE

    STATIQUE

    Accs Inclusion Inclusion Description

    Installationdimplmentation

  • - 47 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Rfrentiel dinterfaces

    Maintient les informations sur les types, les interfaces etc...;

    Informations pour une interface : son module son nom ses attributs ses oprations (nom, nom et types des paramtres,

    exceptions, contexte) ses hritages

  • - 48 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Rfrentiel dimplmentations

    Responsable de lenregistrement des serveurs dans le systme (enregistrement de la commande excutable).

    Spcifi par une interface IDL.

    Avec Orbix

    Control par la commande PUTIT dans les commandes associes

    LSIT, CATIT, RMIT, CHMODIT.

    Implment par un processus dmon.

  • - 49 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Interface de squelette dynamique

    Permet de dlivrer une requte un objet implmentation qui est inconnu lors de la phase de compilation.

    Interprte une requte et ses paramtres.

    Analogue au DII mais du ct serveur.

    Utiliser pour crer des ponts entre des ORBs de vendeurs diffrents.

    Utiliser pour intgrer des applications existantes (legacy

    application). Les applications peuvent ne pas tre conforme aux

    standard CORBA et peuvent galement ne pas tre OO.

  • - 50 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    /BJECT!DAPTER : fonctions

    Fonctions des Adaptateurs dobjets:

    1- Enregistrement des objets implmentation.

    2- Gnration et interprtation des rfrences d'objets.

    3- Mapping des rfrences objet vers leurs objets implmentation

    correspondant.

    3- Activation et dsactivation des objets implmentation;

    4- Invocation des mthodes travers les squelettes ou le DSI.

  • - 51 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    /BJECT!DAPTER : offre

    "ASIC/BJECT!DAPTER"/! Application cliente spare de lapplication serveur.

    ,IBRARY/BJECT!DAPTER,/! Le serveur est une librairie charge dynamiquement chez le client.

    /BJECT/RIENTED$ATABASE!DAPTER/$! Le serveur est une BDOO.

    Les ORB compatibles CORBA doivent implmenter par dfaut le BOA.

  • - 52 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Basic Object Adapter

    Politiques dactivation des objets :

    serveur partag : un processus pour tous les objets du serveur; serveur non partag : un processus par objet; serveur par mthode : un processus par invocation d'opration; serveur persistent : quivalent au serveur partag sans contrle sur la cration et la terminaison des processus; Exemple, TP moniteur et BD distribues

  • - 53 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    5- Les services CORBA 1er RFP :

    Nommage, Cycle de vie, Notification dvnements.

    2me RFP : Transactions, Concurrence, Externalisation, Relations.

    3me RFP : Scurit, Serveur de temps.

    4me RFP : Proprits, License, Serveur de requtes.

    5me RFP : Annuaire par fonctionnalits, Collection, Gestionnaire de versions.

  • - 54 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le service de Nommage

    Le service de .OMMAGE ou .AMMINGSERVICEpermet :

    dassocier un nom une rfrence dobjet CORBA, relativement un contexte de noms;

    de retrouver la rfrence dobjet ainsi que lobjet associ;

    de naviguer l'intrieur dun contexte de noms.

  • - 55 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le service Cycle de vie

    Le service #YCLEDEVIE ou ,IFECYCLE SERVICE permet :

    de grer la cration, la destruction, la copie et le dplacement

    dobjet;

    les objets sont cres par lintermdiaire dobjets appels Factories dont la rfrence est accessible au client;

    un objet est dtruit, copi ou dplac laide doprations dfinient dans linterface de base LifecycleObject;

  • - 56 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le service de Persistance

    Le service de 0ERSISTANCE ou 0ERSISTENT SERVICE permet de grer la persistance de ltat interne des objets CORBA. Un objet peut :

    exporter la gestion de sa persistance qui est alors prise en charge

    par le client ;

    ou grer lui-mme sa persistance en faisant appel un 0ERSISTENT$ATA3ERVICE0$3 qui fournit le mcanisme permettant de rendre les donnes persistantes et de les manipuler.

  • - 57 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le service de notificationd'vnements

    Le service d'Evnements ou %VENTSERVICE permet de dcoupler la communication entre objets.

    La plupart des requtes CORBA se traduisent par lexcution synchrone dune opration (le client connat la rfrence de lobjet auquel la requte sadresse et le client ainsi que lobjet doivent tretous deux actifs.

    Mode de communication dcoupl : lorsque le client et lobjet ne se connaissent pas; lorsque le client et lobjet ne sont pas actifs simultanment.

  • - 58 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le service de Transaction

    Le service de 4RANSACTION ou 4RANSACTIONSERVICE permet dassurer la consistance des traitements en respectant les proprits ACID (Atomicit, Consistance, Isolation et durabilit) des transactions.

    Il permet :

    de commencer et de terminer une transaction;

    de contrler la propagation dune transaction; dassocier plusieurs objets rpartis une seule et mme transaction; de coordonner la terminaison dune transaction (2 phase commit).

  • - 59 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le service de Concurrence

    Le service de #ONCURRENCE ou #ONCURRENCYCONTROLSERVICE permet de contrler laccs un objet de manire grer la cohrence et la consistance des oprations entre cet objet et les objets quil accde ou bien qui laccdent.

    Il permet de crer des verrous rpartis et de spcifier le type de verrou cre (lecture, criture, mise--jour etc...).

  • - 60 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le service dExternalisation

    Le service d%XTERNALISATION ou %XTERNALIZATIONSERVICE permet :

    lexternalisation dun objet, cest dire la reprsentation de

    ltat de lobjet dans une squence doctets (en mmoire, sur disque, sur rseau) transportable, de dure de vie illimite indpendante de lenvironnement (ORB) dorigine.

    linternalisation des donnes, impliquant la cration dun nouvel

    objet dans le mme environnement ou dans un environnement diffrent.

  • - 61 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Le service de Relations

    Le service de 2ELATIONS ou 2ELATIONSHIPSSERVICE permet dtablirdynamiquement des relations entre les objets distribus.Une relation est dfinie par un rle, un degr, une cardinalit et desattributs.

    Trois niveaux de services : basique : service de base permettant de crer les relations et les

    objets et de naviguer travers la relation, de dtruire la relation;

    graphes dobjet en relation;

    relations spcifiques : Containment (1-n) et rfrence (n-m).

  • - 62 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    3me RFP

    Le SERVICEDE3CURIT (3ECURITY) permet de grer les fonctions suivantes :

    authentification autorisation sret et intgrit des communications encryptage

    administration de la scurit

    Le service de4EMPS (4IME)permet la synchronisation priodique

    dhorloges dans tous les composants dun systme rparti.

  • - 63 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    4me RFP

    Le SERVICEDE0ROPRITS (0ROPERTIES) permet dassocier dynamiquement une liste de proprits un objet. Il est possible dajouter, de supprimer, de modifier et de retrouver toute proprit associe un objet.

    Le SERVICED INTERROGATIONS (1UERY) permet dexprimer des requtes sur des ensembles dobjets CORBA.

    Le SERVICEDE,ICENSE (,ICENSING) contrle et gre les rmunrations associes lutilisation dun service objet donn.

  • - 64 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    5me RFP

    Le service de 'ESTIONDESVERSIONS (#HANGE-ANAGEMENT) permetde grer lvolution des versions des interfaces des objets ainsi que de l'adquation avec leurs implmentations.

    Le service d!NNUAIREPARFONCTIONNALITS (4RADER) permet dassocier des fonctionnalits des objets CORBA. Le client utilise ce service comme lannuaire des pages jaunes.

    Le service de #OLLECTION (#OLLECTION) permet de crer et de manipulerdes collections dobjets.

  • - 65 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Taxonomie des services

    Nommage + Annuaire par fonctionnalitsPersitance + ExternalisationCycle de vie + RelationServeur de requtes + Collections + PropertiesTransaction + ConcurrenceSecurit + LicenseGestionnaire des versionsTimeEvent

  • - 66 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    6 - CORBA 2.0

    )NTEROPRABILIT

    Capacit pour un ORB A d'invoquer une opration dfinieen IDL sur un objet rsidant sur un ORB B.L'ORB A et B tant des implmentations de CORBA diffrentes.

    Problme d'interoprabilit entre ORBs.

  • - 67 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Interoprabilit dapplications avecCORBA

    Environnement X

    )NTEROPRABILIT

    An A1

    Environnement Y

    Bn B1

    Deux problmes :1- communication dapplications distribues au sein dun mme environnement;2- interoprabilit dapplications distribues entre environnements htrognes.

    0ROBLME

    0ROBLME#OMMUNICATION

    0ROBLME

    #OMMUNICATION

  • - 68 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Portabilit dapplications avecCORBA 1.2

    Environnement X

    /2"VENDEURX

    Environnement Y

    /2"VENDEURY

    CORBA 1.2 permet de : rsoudre le problme de communication dapplications distribues au sein dun mme environnement;

    A1IDL

    Binding

    AnIDL

    Binding

    B1IDL

    Binding

    BnIDL

    Binding

    0ROBLMERSOLU

    #OMMUNICATION

    0ROBLMERSOLU

    #OMMUNICATION0ROBLME

  • - 69 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    CORBA 1.2 permet de : simplifier le portage dapplications entre environnements htrognes grce au langage IDL, aux standardisations des bindings.

    Environnement Y

    /2"VENDEURY

    A1IDL

    Binding

    AnIDL

    Binding

    B1IDL

    Binding

    BnIDL

    Binding

    Portabilit dapplications avecCORBA 1.2

  • - 70 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Interoprabilit dapplication avecCORBA 2.0

    CORBA 2.0 permet de rsoudre le problme dinteroprabilit dapplications distribues entre des environnements htrognes grce au protocole de communication commun GIOP (General Inter ORB Protocol).

    Environnement X

    /2"VENDEURX

    Environnement Y

    /2"VENDEURY

    A1IDL

    Binding

    AnIDL

    Binding

    B1

    IDL

    Binding

    Bn

    IDL

    Binding

    ')/0

    )NTEROPRABILIT

    0ROBLMERSOLU

  • - 71 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Solution

    La spcification CORBA 2.0 comporte 4 nouveaux lments :

    le cadre architectural dfinissant linteroprabilit entre diffrents ORBs; la dfinition de protocoles communs GIOP et IIOP; la dfinition de protocoles spcifiques un environnement ESIOP et DCE/ESIOP; la dfinition de passerelles inter-ORB, permettant la communication entre diffrentes implmentations de CORBA (comprenant le DSI).

  • - 72 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    GIOP et IIOP

    ')/0 (General Inter-ORB Protocol) spcifie un ensemble de formats pour les messages ainsi qu'une reprsentation commune des donnes changes entre les ORBs. La reprsentation des donnes communes est base sur la spcification CDR (Common Data Representation).

    ))/0(Internet Inter-ORB Protocol) est l'implmentation du protocole GIOP bas sur TCP/IP.

  • - 73 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    ESIOP et DCE-CIOP

    %3)/0(Environment-Specific Inter-ORB Protocol) spcifie un protocole particulier optimis pour l'environnement OSF DCE (Distributed Computing Environment).

    $#%#)/0 (DCE Common Inter-ORB Protocol) est l'implmentation du protocole ESIOP bas sur RPC (Remote Procedure Call).

  • - 74 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Passerelles

    0ASSERELLECOMPLTEinterconnexion directe entre deux ORBs.Traduction des messages du 1er ORB au format du protocole de communication du second et rciproquement. Mthode performante mais trs difficile mettre en uvre. $EMIEPASSERELLECONNEXIONINDIRECTEENTREDEUX/2"STraduction des messages dun ORB dans le format du protocole GIOP/IIOP. Solution simple a installer, nombre limite de demie-passerelle . Solution moins performante.

    Rm : Un ORB peut utiliser en interne le protocole IIOP

  • - 75 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    7- Produits CORBA

    Market Share%XTRACTFROM ,EMONDEINFORMATIQUE NOV

    3URVEYLEADEDBYTHE3TANDISH'ROUP

    %DITORS 0RODUCT -3 -3 -3 -3 -3

    )/.! /RBIX

    "ORLAND6ISIGENIC 6ISIBROKER

    BEA - DEC ObjectBroker 27% 21% 12% 13% 14%Sun Neo/Joe 5% 4% 2% 2% 2%IBM Component Broker 4% 3% 2% 3% 6%ICL DAIS 4% 4% 2% 2% 2%Autres 27% 20% 12% 11% 11%Total 100% 100% 100% 100% 100%

    MS : Market Share

  • - 76 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Offres

    6ENDORS )$, # # 3MALL4ALK !DA ))/0 $#% $)) *AVA /,%Expersoft Y Y - Y - Y - Y - YSun Y Y Y - - Y - ? Y -)/.!/RBIX 9 9 9 9 9 9 9

    "ORLAND6ISIBROKER 9 9 9 9 9 9

    BEA (DEC-ObjectBroker) Y Y Y ? ? Y Y Y Y YHP Y Y ? ? ? Y Y Y ? YIBM Y Y Y Y ? Y ? Y ? YChorus Y Y - - - + - Y ? ?Siemens Cf. SunTandem Cf. IBMILOG Cf. IONA

    ? : unknown informationY : feature supported but not necessarily conforming to CORBA standard - : not supported+ : being implemented

  • - 77 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Implmentation des services

    Vendeurs Nm Lf Ev Tr Rl Cc Ex Po Tx Qr Tm Pr Cm Sc LiExpersoft Y +Sun Y Y Y Y Y)/.!/RBIX 9 9 9 9

    "ORLAND6ISIBROKER 9 9 9

    BEA (DEC-ObjectBroker) Y 9 YHP Y Y YIBM Y Y Y Y Y Y YChorus YSiemens Cf. SunTandem Cf. IBMILOG Cf. IONA

    .M .AMING

    ,& ,IFECYCLE

    %V %VENT

    4R 4RADING

    2L 2ELATIONSHIPS

    #C #ONCURRENCY

    %X %XTERNALISATION

    0O 0ERSISTENT/BJECTS

    4X 4RANSACTIONS

    1R 1UERY

    4M 4IME

    0R 0ROPERTIES

    #M #ONFIGURATION

    -ANAGEMENT

    3C 3ECURITY

    ,I LICENSING

  • - 78 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT

    Rfrences

    ,ESTANDARD#/2"!

    [T. J. Mowbray, R. Zahavi] "The Essential CORBA - System Integration Using Distributed Objects"J. Wiley and Sons 1996

    [R. Orfali, D. Harkey, J. Edward] "The Essential Distributed Objects Survival Guide"J. Wiley and Sons 1996

    [J. Siegel &al] "CORBA Fundamentals and Programming"J. Wiley and Sons 1996

    [OMG 95 - CORBA 1.2] "The Common Object Request Broker : Architecture and Specification"Object Management Group

    [OMG 95 - CORBA 2.0] "The Common Object Request Broker : Architecture and Specification"Object Management Group

    [OMG 94-1-1] "Common Object Services Specification"Object Management Group

    [OMG 94-11-12] "Objects Services Architecture"Object Management Group

    World Wide Web : http://www.omg.orgCORBA for beginners : http://www.omg.org/news/begin.html