corba cnam
Post on 03-Oct-2015
13 Views
Preview:
TRANSCRIPT
-
29/04/2003 1
Prsentation de larchitecture CORBACommon Object Request Broker Architecture
Yves LALOUMConseil Audit de Systmes d information CISA
ylaloum@advisehr.com
-
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.
top related