corba
DESCRIPTION
eTRANSCRIPT
-
- 1 -#OPYRIGHT6IRGINIE!-!2#ENTRE3CIENTIFIQUEET4ECHNIQUEDU"TIMENT
Le standard CORBA
Virginie AmarCentre Scientifique et Technique du Btiment (CSTB)
*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