Introduction - PowerPoint PPT Presentation

About This Presentation
Title:

Introduction

Description:

L'acceptation de ce document par son destinataire implique, de la part de ce ... Emballeur GIOP. Squelette serveur. Servant applicatif. Invocation ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 29
Provided by: pdcha
Category:

less

Transcript and Presenter's Notes

Title: Introduction


1
Introduction à CorbaRéunion Cube 24/10/2003
  • P. Déchamboux (FTRD DTL/ASR)

2
Contenu et déroulement
  • Références
  • http//www.omg.org/
  • http//corbaweb.lifl.fr/CORBA_des_concepts_a_la_pr
    atique/
  • http//www.cs.wustl.edu/schmidt/corba.html
  • Plan
  • vision Corba
  • mise en oeuvre de Corba
  • liaison et transport dans Corba
  • services  systèmes  et canevas de Corba
  • Annexe
  • exemple HelloWorld

3
Vision de Corba
4
OMG concepts-clés
  • Permettre linteropérabilité des composants /
    applications par lintermédiaire dun mode de
    coopération unifié lappel dobjets distants
  • Gérer lhétérogénéité des réseaux, machines,
    systèmes et langages
  • Vision utilisateur langage pivot commun
    OMG-IDL
  • Offrir une architecture globale

5
OMG les objectifs techniques
  • Liaison avec tous les langages
  • Transparence des invocations
  • Invocation statique et dynamique
  • Système auto-descriptif
  • Activation automatique
  • Interopérabilité entre bus

6
OMG vision globale
  • Common Object Request Broker Architecture CORBA
  • appel de méthode réparti transparent
  • passages de paramètres in, out, in/out
  • types de paramètres types de base (entiers,
    string, etc), références dobjets, objets par
    valeur
  • un bus à objets répartis (ORB)
  • transport des requêtes, activation des objets
  • des services de base (CORBAservices)
  • des utilitaires communs (CORBAfacilities)
  • des interfaces de domaines objets métiers
  •  interopérabilité sémantique 

7
OMA larchitecture globale
Bus dobjets répartis
Licences
Nommage
Vendeur
Sécurité
Relations
Collections
Temps
Externalisation
Transactions
Persistance
Propriétés
Changements
Events
Cycle de vie
Interrogations
Concurrence
Services objet communs
8
OMG le modèle client/serveur objet
Objet CORBA
9
Mise en oeuvre de Corba
10
OMG-IDL le langage dinterfaces
  • Rôle du langage
  • décrire les interfaces des objets
  • langage pivot entre applications
  • générer des squelettes de programme dans les
    langages de programmation des applications

11
OMG-IDL mise en oeuvre des interfaces
  • Projection des descriptions OMG-IDL vers les
    langages dimplantation des clients et des
    serveurs (e.g., C, C, Java, etc).
  • mode  statique 
  • Instanciation sous forme dobjets CORBA des
    descriptions OMG-IDL dans un référentiel
    dinterfaces.
  • mode  dynamique 

12
CORBA les composantes du bus
Interface du bus Interface dinvocation
statique Interface dinvocation dynamique
Adaptateur dobjet Interface de squelettes
statiques Interface de squelettes dynamiques
Application serveur
Application cliente
SSI
DSI
SII
DII
ORB
OA
Bus de communication
IR
Référentiel des interfaces
ImplR
Référentiel des implantations
13
Liaison et transport dans Corba
14
Les couches de transport de CORBA
  • GIOP protocole dinteropérabilité entre bus de
    la norme CORBA 2
  • support à lappel de méthode (enveloppe
    REQUEST, REPLY, etc)
  • encodage des données CDR
  • GIOP sur Internet Internet Inter ORB Protocol
    (IIOP)
  • champs  service context  (ex standardisation
    ctxt transactions, sécurité)

15
Nommage dans Corba
  • Noms du domaine Corba
  • Interoperable Object Reference IOR
  • identification protocole
  • interface OMG-IDL
  • Sous-domaine Corba/Internet
  • adresse IP port
  • clé de format libre (dépendant de ladaptateur
    dobjet)
  • identificateur dadaptateur dobjet
  • clé de format libre (dépendant de ladaptateur
    dobjet)

16
Mise en place dune liaison
Interface applicative (issue de linterface IDL)
Talon client (IOR)
Emballeur GIOP
Objet Corba
17
Services  systèmes  et canevas de Corba
18
Les services communs (1)
  • Services de localisation dobjets
  • service de nommage (Naming)
  • pour retrouver un objet par un nom
  • service de type  pages blanches 
  • service de courtage (Trader)
  • pour retrouver un objet par des propriétés
  • service de type  pages jaunes 

19
Les services communs (2)
  • Services de communications asynchrones
  • Events, Notification, Messaging
  • Services de sûreté de fonctionnement
  • Security, Transactions, Concurrence
  • Services concernant la vie des objets
  • Life Cycle, Property, Relationship,
    Externalization, Persistent Object, Query,
    Collection, Versionning, Time, Licencing

20
Exemple  Hello World  en Java
21
Chaine de production de programme
Hello.idl
Compilateur OMG-IDL / Java
_StubForHello.java
HelloOperations.java Hello.java HelloHelper.java H
elloHolder.java
HelloPOA.java HelloPOATie.java
HelloClient.java
HelloImpl.java
HelloServeur.java
Client
Serveur
22
De lIDL à Java
  • Interface OMG-IDL Hello
  • Interface Java HelloOperations, Hello
  • Classes Java HelloHelper, HelloHolder

ltHello.idlgt interface Hello void
doHello()
ltHello.javagt public interface
HelloOperations public void doHello() public
interface Hello extends HelloOperations,
org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEn
tity
23
Implantation du serveur Corba
ltHelloServeur.javagt public class
HelloServeur public static void main(String
args) // Initialisation du Bus Corba et
dun POA org.omg.CORBA.ORB orb
org.omg.CORBA.ORB.init(args, null) org.omg.Por
tableServer.POA poa POAHelper.narrow(orb.res
olve_initial_references("RootPOA")) poa.the_PO
AManager().activate() // récupération du
serveur de nom org.omg.CosNaming.NamingContext
ns org.omg.CosNaming. NamingContextHelper.n
arrow( orb.resolve_initial_references("Na
meService")) // Creation du servant et
enregistrement au serveur de noms HelloImpl
hello new HelloImpl() ns.rebind( new
org.omg.CosNaming.NameComponent new
NameComponent("HelloObj",""), hello) //
Mise en attente du serveur orb.run()
24
Implantation du client Corba
ltHelloClient.javagt public class
HelloClient public static void main(String
args) // Initialisation du Bus
Corba org.omg.CORBA.ORB orb
org.omg.CORBA.ORB.init(args, null) //
récupération du serveur de nom org.omg.CosNamin
g.NamingContext ns org.omg.CosNaming.
NamingContextHelper.narrow( orb.resolve_i
nitial_references("NameService")) //
Récupération de la souche depuis le serveur de
nom org.omg.CORBA.Object obj_ref
ns.resolve(new org.omg.CosNaming.NameComponent
new NameComponent("HelloObj","")) Hell
o hello HelloHelper.narrow(obj_ref) //
Invocation de l'objet distant hello.doHello()

25
Les classes générées (client et serveur)
  • Classe _StubForHello implantation du talon
  • sert à envoyer les requêtes
  • utilisé en lieu et place de l'objet Hello dans le
    client
  • Classe HelloPOA ? Classe HelloPOATie
  • reçoit et décode les requêtes ?reçoit et décode
    les requêtes
  • implantation par héritage ?implantation par
    délégation

ltHelloImpl.javagt public class HelloImpl
extends HelloPOA public HelloImpl()
public void doHello() System.out.println(
"Hello world!")
26
Corba dynamique
27
Linvocation dynamique
  • Référentiel dinterfaces (IR)
  • accessible comme objet Corba
  • gestion de méta-objets Corba (ModuleDef,
    InterfaceDef, OperationDef, AttributeDef,
    TypedefDef, )
  • API (DII) de construction de requêtes
  • Un objet Request un nom dopération, une liste
    de couples valeur - type (au sens de lIR) et une
    structure pour le résultat
  • invoke
  • send_deferred get_response, poll_response
  • send_oneway

28
Le squelette dynamique
  • API (DSI) de décodage de requêtes
  • Pas dutilisation de squelettes pré-générés
  • Utilisée pour implanter dynamiquement des objets
  • Cas dutilisation création de passerelles
Write a Comment
User Comments (0)
About PowerShow.com