Aucun titre de diapositive - PowerPoint PPT Presentation

1 / 50
About This Presentation
Title:

Aucun titre de diapositive

Description:

Common Object Request Broker Architecture Mise en pratique avec Orbacus en JAVA Mireille Blay-Fornarino blay_at_essi.fr Extraits de JM Geib, C. Gransart, P. Merle – PowerPoint PPT presentation

Number of Views:59
Avg rating:3.0/5.0
Slides: 51
Provided by: ILO140
Category:

less

Transcript and Presenter's Notes

Title: Aucun titre de diapositive


1
CORBA Common Object Request Broker
Architecture Mise en pratique avec Orbacus en
JAVA
  • Mireille Blay-Fornarino
  • blay_at_essi.fr

Extraits de JM Geib, C. Gransart, P. Merle
http//www.iona.com/products/orbacus_home.htm
2
Plan du Cours
CORBA I Introduction Intégration
d applications CORBA la réponse de
l OMG l OMG promouvoir la standardisation Le
modèle client serveur orienté objet L architect
ure OMA II OMG-IDL Interface Definition
Language III Larchitecture CORBA Composantes
du Bus Mise en œuvre Services Interopérabilité
IV. Conclusion CORBA 3.0 CORBA et les
autres
CORBA Component Model (CCM) Mireille
Blay-Fornarino
 
3
Consensus pour linteropérabilité
1.1-histoire
  • Le problème Intégration des applications
  • Pas de consensus sur les langages de
    programmation
  • Pas de consensus sur les plate-formes de
    développement
  • Pas de consensus sur les systèmes dexploitation
  • Pas de consensus sur les protocoles réseau
  • Pas de consensus sur les formats des données
  • manipulées par les applications
  • Recherche dun Consensus pour linteropérabilité

 The bad news is that there will never be a
single operating system, single programming
language, or single network architecture that
replaces all that has passed The good news is
that you can still manage to build systems
economically in this environment.    Model
Driven Architecture  by Richard Soley and the
OMG Staff Strategy Group
4
CORBA
1.2 CORBA?
  • Common Object Request Broker Architecture CORBA
  • Plate-forme client/serveur orientée objets
  • Un standard pour linteropérabilité entre objets
  • Support pour différents langages
  • Support pour différentes plate-formes
    (interopérabilité)
  • Communications au travers du réseau
  • Des services (Distributed transactions, events,
    ... )
  • Guides et modèles de programmation

 CORBA replaces ad-hoc special-purpose
mechanisms (such as socket communication) with an
open, standardized, scalable, and portable
platform. 
5
Historique
1.2 CORBA?
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
2000
2002
CORBA 3.0
CORBA 2.1
Fondation de lOMG
Publication de lOMA
Publication CORBA 1.1
Mapping IDL/C
Adoption CORBA 2.0
Publication CORBA 1.2
CORBA 2.3
Publication CORBA 1.0
  • Minimum Corba
  • RealTime Corba
  • Corba Component Model

6
Object Management Group (OMG)
I.3. OMG
  • consortium international créé en 1989
  • but non lucratif
  • regroupement de plus de 460 organismes
  • constructeurs (SUN, HP, DEC, IBM, ...)
  • environnements systèmes (Microsoft, OSF, Novell,
    ...)
  • outils et langages (Iona, Object Design,
    Borland, ...)
  • produits et BD (Lotus, Oracle, Informix, O2,
    ...)
  • industriels (Boeing, Alcatel, Thomson, ...)
  • institutions et universités (INRIA, NASA, LIFL,
    W3C)

http//www.omg.org
The Worlds Best Standardization Process  In
addition to its technologies, OMG has the worlds
best standardization process. Executing our
process, building consensus as they converge on
technical details, OMG members produce each new
specification in nine to seventeen months. Proven
in the marketplace with the standardization of
CORBA, the CORBAservices, Domain Facilities, UML,
the MOF, and OMGs other modeling standards, the
process is one of our groups major assets. 
7
Organisation et procédures
I.3. OMG
  • Comité technique
  • détermine la direction de larchitecture et des
    normes
  • émet des RFI (Request For Information) pour
    vérifier la disponibilité des technologies
  • émet des RFP (Request For Proposal) pour obtenir
    des propositions de spécifications
  • évalue les propositions et propose une sélection
  • fait des recommandations au comité directeur sur
    les choix des
  • technologies.
  • Comité directeur
  • prend les décisions finales pour ladoption des
    spécifications.

8
OMG en résumé
I.3. OMG
L OMG prône l utilisation d une approche basée
sur les technologies objet (devenu modèle
) pour offrir une vue unique d un système
distribué et hétérogène OMA pour
l architecture logicielle OMA Object
Managment Architecture ? MDA (Model Driven
Architecture) CORBA pour le   middleware 
technique CORBA Common Object Request Broker
Architecture UML pour la modélisation UML
Unified Modeling language MOF pour la
méta-modélisation MOF Meta-Object Facility
9
Le modèle client/serveur orienté objet (1)
I.4. Client/serveur
Activation
Objet Corba
Servant
ORB Object Request Broker Bus à Objets
répartis
10
Client/Serveur (2)
I.4. Client/serveur
  • Rôle du client
  • invoquer des services par envoie de requête
  • accès à  lobjet  destinataire via une
    référence
  • accès à l implantation via une interface

11
Client/Serveur (3)
I.4. Client/serveur
  • L infrastructure de distribution reçoit une
    requête pour  un objet  destinataire
  • Localisation du serveur actif ou non
  • Activation éventuelle du serveur
  • Rôle du serveur
  • Activation par le serveur du servant concerné
  • Le serveur détermine et exécute la méthode
    spécifiée par la requête et passe les résultats
    éventuels à l infrastructure qui les ramènent
    vers le client
  • Fin de l activité du serveur
  • Arrêt complet du serveur qui en informe alors
    l infrastructure.

12
Définitions (1/3)
I.4. Client/serveur
Client Entité capable démettre des requêtes
vers des objets qui fournissent des
services. Le client manipule des références
vers des objets distants. Référence Objet Objet
manipulé par le client pour invoquer des services
sur un objet distant objet
implémentation. Terme usité proxy Un
proxy est un représentant local au client dun
objet distant.
13
Définitions (2/3)
I.4. Client/serveur
Requête Emise par un client pour demander
lexécution dune opération sur un objet
cible. La requête contient lopération à
exécuter, lobjet cible et les paramètres
éventuels. Interface Description dun
ensemble dopérations disponibles sur un objet.
Spécification des interfaces en
IDL. Opération Entité identifiable
caractérisée par une signature décrivant les
paramètres de la requête et les valeurs de retour.
14
Définitions (3/3)
I.4. Client/serveur
Serveur application qui crée des objets CORBA
et rend les services fournis par ces objets
accessibles à dautres applications. Objet
implémentation Objet situé sur le serveur
qui implémente le code des méthodes des
opérations définies en IDL.
15
ORB (2/2)
I.5. OMA ORB
  • Composant central du standard CORBA qui gère
  • la localisation dobjet
  • la désignation des objets
  • lempaquetage des paramètres (marshalling)
  • le dépaquetage des paramètres (unmarshalling)
  • linvocation des méthodes
  • la gestion des exceptions
  • l activation automatique et transparente des
    objets
  • De plus, il fournit des caractéristiques telles
    que
  • la liaison avec  tous  les langages de
    programmation
  • un système auto-descriptif
  • l interopérabilité entre les bus

16
Bus Corba fonctions ...
I.5. OMA ORB
Client
serveur
Référence -gt faire(param1,param2,...)
Marshaling
ORB
réseau
17
ORB Liaison avec  tous  les langages de
programmation
I.5. OMA ORB
C
Java
Smalltalk
Ada
Souche
Souche
Souche
Souche
Bus Corba
18
OMA
  • Object Management Architecture

19
Object Management Architecture
I.5. OMA
  • Description dune architecture de Gestion
    dObjets
  • classifiant les objets en fonction de leurs rôles
    et
  • définissant les bases des futures spécifications
    incluant
  • une prise en compte des problèmes dintégration
    dans des environnements distribués
  • un modèle dobjets abstrait
  • larchitecture du modèle de référence
  • InterOpérabilité entre ORBs
  • un glossaire des termes utilisés

Utiliser des services standardisés à la
conception, limplantation et lexécution.
20
Concepts (1/2)
I.5. OMA Modèle objet
Vue dun objet dans une application d'objets
distribués
Vue dun objet dans une application monolithique
s q e l e t t e s
i m p l
invocation distante
objet
objet sur serveur Servant
objet sur client Proxy
Legende
impl objet implementation
21
Concepts (2/2)
I.5. OMA Modèle objet
serveur pur
client pur
client serveur
objet serveur
objet client
invocation distante
obj1 Impl
c- obj1
s
objet serveur
objet serveur
obj3 Impl
s
obj2 Impl
s
invocation distante
invocation distante
objet client
c- obj2
objet client
c- obj3
Application 1
Application 2
Application 3
Legende
c-obji objet client obji
obji Impl objet implementation obji
s squelette
22
Architecture du modèle de référence
I.5. OMA
CORBA
Bus dobjets répartis (O.R.B.)
23
Processus de développement
24
3- Le langage IDL
3. IDL
Un  esperanto  pour les objets
Le contrat IDL
Client d objets
Fournisseur d objets
Stub IDL
Bus CORBA
Squelette IDL
Objets Corba
25
Étapes de mise en oeuvre
Spécification interface IDL
Compilation interface IDL
Implantation des objets Corba
Implantation du serveur
Implantation du client
Enregistrement du serveur
Côté client
Côté serveur
Utilisation du service Nommage
26
Spécification interface IDL (1/2)
1- Exemple introductif
Un objet grid est un tableau contenant des
valeurs. Les valeurs sont accessibles grâce aux
opérateurs get et set qui peuvent être invoqués
à distance.
objets grid
Appel de get et set sur l'objet grid distant
Processus client
Processus serveur
27
Spécification interface IDL (2/2)
1- Exemple introductif
interface Grid readonly attribute short
height readonly attribute short width void
set (in short n, in short m, in long value)
long get(in short n, in short m) void
copyIn(inout Grid g)
28
Le langage IDL
3. IDL Description
Interface Definition Language
  • langage de spécification dinterfaces,
    supportant lhéritage multiple
  • indépendant de tout langage de programmation ou
  • compilateur (langage pivot entre
    applications)
  • langage utilisé pour générer les stubs, les
    squelettes et pour définir
  • les interfaces du Référentiel dinterface
  • la correspondance IDL-langage de programmation
    est fournie pour les langages C, C, Java,
    Smalltalk, Ada, Cobol.

29
Exemple
3. IDL Description
interface account readonly attribute
float balance attribute string description
void credit (in float f) void
debit (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
opérations
exception
opérations
30
Eléments IDL
3. IDL Description
  • Une spécification IDL définit un ou plusieurs
    types, constantes,
  • exceptions, interfaces, modules,...
  • pragma
  • constantes
  • types de base au format binaire normalisé
  • nouveaux types (typedef, enum, struct,
    union, array, sequence)
  • exceptions
  • types de méta-données (TypeCode, any)

31
Eléments IDL
3. IDL Description
  • Un module permet de limiter la validité des
    identificateurs
  • Interface ensemble dopérations et de types
    gtclasse C
  • Syntaxe
  • Interface lthéritagegt ltinterface Bodygt
  • opération (synchrone ou asynchrone sans
    résultat)
  • attribut (possibilité de lecture seule)

Surcharge Interdite
  • Réutilisation de spécifications existantes
    (include)

32
Exemple
3. IDL Description
module unService typedef unsigned long
EntierPositif typedef sequenceltPositifgt
desEntiersPositifs interface Premier
boolean est_premier ( in EntierPositif
nombre) desEntiersPositifs nombres_premiers (in
EntierPositif nombre) module
monApplication interface MonService
unServiceEntierPositif prochainPremier(..)

module
définitions de type

interface
opérations
33
Exemple
3. IDL Description
34
Attribut IDL
3. IDL Description
Définition dattribut interface account
readonly attribute float balance attribute
string description ... Equivaut à
float get_balance() string
get_description() void set_description(in
string s)
35
Operations (1/2)
3. IDL Description
ltuneOpérationgt ltmodeInvocationgt lttypeRetourgt
ltidentificateurgt  ( ltparamètresgt  ) 
ltclausesExceptionsgtltclausesContextesgt
  • Paramètres nommés
  • et associés à un mode
  • Opérations bloquantes
  • par défaut

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)
Client
uneBanque
newAccount
calcul
retours
36
Pourquoi différents modes de passage de
paramètres ?
in Données fournies par le client out
Données retournées par l objet inout Données
clientes modifiées par l objet
Répartition
Passage par copie
37
Opérations (2/2)
3. IDL Description
  • Opération non bloquante
  • Pas de paramètre de type out, inout ou
    dexceptions
  • Valeur de retour void
  • Pas d exceptions déclenchées.

Client
uneBanque
notify(ok )
méthode finie
38
Exceptions
3. IDL Description
exception reject string reason
account newAccount (in string name) raises
(reject) exception DateErronnee String
raison
CORBAException
CORBAUserException
CORBASystemException
Des exceptions CORBA standardisées
UNKNOWN NO_PERMISSION BAD_PARAM
NO_IMPLEMENT COM_FAILURE OBJECT_NOT_EXIST INV_O
BJREF .
Gestion explicite de la part du client
39
Définitions circulaires
3. IDL Description
module Circulaire interface B interface A
void utiliséB(in B unB) interface B
void utiliséA(in A unA)
40
Héritage multiple
3. IDL Description
interface A ... interface B A ...
interface C A ... interface D B, C
...
A
B
C
D
41
Types de base et autres types
3. IDL Description
  • Types de base
  • short
  • long
  • unsigned short
  • unsigned long
  • float
  • double
  • char
  • boolean
  • octet
  • ...
  • Types construits
  • struct
  • union
  • enum
  • Types génériques
  • array
  • sequence
  • string

MétaTypes
Types de données dynamiques et auto-descriptifs
  • any
  • TypeCode

42
Type Any
3. IDL Description
interface PileDeChaines readonly attribut
string sommet void poser(in string
valeur) string retirer()
interface PileGénérique readonly attribut Any
sommet readonly attribut TypeCode
typeDesValeurs void poser(in Any valeur) Any
retirer()
43
Exemple Compilation interface IDL vers Java
1- Exemple introductif
Grid.idl
jidl Grid.idl
A écrire
Compilateur IDL/Java
Généré
Répertoire grid
Répertoire grid
Répertoire grid
Répertoire grid
Client
Serveur
GridOperations.java
_GridStub.java
GridPOA.java
I
Grid.java
Client.java
Grid_Impl.java
GridHelper.java
Serveur.java
GridHolder.java
44
Les classes Stubs et Squelettes
1- Exemple introductif
  • implantation du stub
  • public class _GridStub . Grid
  • envoie de requêtes
  • invisible par le programmeur
  • instanciée automatiquement par GridHelper
    (narrow)
  • Utilise le DII pour assurer la portabilité du
    binaire
  • implantation du squelette
  • public abstract class GridPOA . GridOperations
  • reçoit et décode des requêtes
  • doit être héritée par limplantation

45
Implémentation du serveur (1)
1- Exemple introductif
  • 1. Initialiser le bus CORBA
  • obtenir lobjet ORB
  • 2. Initialiser ladaptateur dobjets
  • obtenir le POA
  • 3. Créer les implantations dobjets
  • 4. Enregistrer les implantations par ladaptateur
  • 5. Diffuser leurs références
  • afficher une chaîne codifiant lIOR
  • 6. Attendre des requêtes venant du bus
  • 7. Destruction du Bus

46
Implémentation du client
1- Exemple introductif
  • 1. Initialiser le bus (objet ORB)
  • 2. Créer les souches des objets à utiliser
  • 2.a. obtenir les références dobjet (IOR)
  • 2.b. convertir vers les types nécessaires
  • narrow contrôle le typage à travers le réseau
  • 3. Réaliser les traitements
  • Rem. éviter lopérateur bind (2.a 2.b)
  • spécifique à chaque produit donc non portable

47
Objets CORBA
A CORBA object is an object with an interface
defined in CORBA IDL. CORBA objects have
different representations in clients and
servers. A server implements a CORBA object in a
concrete programming language, for example in C
or Java. This is done by writing an
implementation class for the CORBA object and by
instantiating this class. The resulting
implementation object is called a servant. A
client that wants to make use of an object
implemented by a server creates an object that
delegates all operation calls to the servant via
the ORB. Such an object is called a proxy. When a
client invokes a method on the local proxy
object, the ORB packs the input parameters and
sends them to the server, which in turn unpacks
these parameters and invokes the actual method on
the servant. Output parameters and return values,
if any, follow the reverse path back to the
client. From the clients perspective, the proxy
acts just like the remote object since it hides
all the communication details within itself. A
servant must somehow be connected to the ORB, so
that the ORB can invoke a method on the servant
when a request is received from a client. This
connection is handled by the Portable Object
Adapter (POA)
48
Passage d un objet par référence ou par valeur
Processus A
Processus A
invocation d une méthode
invocation d une méthode
copie d objet créée
référence Objet
serialized Object
Processus A
Processus A
Processus B
Processus B
Objet
référence Objet
Objet
copie Objet
49
Le cycle de vie des objets
  • Problème
  • actuellement, 1 grille 1 serveur
  • pas de création/destruction dobjets à distance
  • seulement invocation dopérations
  • Solution
  • notion de fabrique dobjets
  • exprimée en OMG-IDL
  • Cest un canevas de conception Design pattern
  • voir aussi le service LifeCycle

Autres usages de la fabrique - gestion de
droits, load-balancing, polymophisme,
50
Limplantation de la fabrique
Grille
Fabrique
51
Limplantation de la fabrique
Grille
Fabrique
52
Interface IDL d une fabrique de Grilles
module grilles . . . interface Fabrique
Grid newGrid(in short width,in short height)

53
Scénario d obtention de la référence du service
de nommage
ORB
Client ou Serveur
resolve_initial_references ("NameService")
CosNaming NamingContext
conversion
ajout,retrait,lecture,...
54
Notion de chemin daccès
55
Enregistrer un objet
  • Opération pour publier un Objet
  • en général, opération réalisée par le serveur
  • Scénario Type
  • 1. Créer un objet
  • 2. Construire un chemin d accès (Name)
  • 3. Appeler l opération  bind  ou  rebind 
    avec le chemin et la référence de l objet
  • void bind (in Name n, in Object obj)
  • raises (NotFound, CannotProceed,
    InvalidName, AlreadyBound)

56
Retrouver un objet
  • Opération réalisée par un client ou un serveur
  • Scénario type
  • construire un chemin d accès (Name)
  • appeler l opération  resolve  avec le chemin
  • convertir la référence obtenue dans le bon type
  • Object resolve (in Name n)
  • raises (NotFound, CannotProceed, InvalidName)

57
Une application dadministration de la fabrique
  • Création dune nouvelle grille et mise à
    disposition par le service Nommage
  • 1. Initialiser le bus CORBA
  • 2. Obtenir le service Nommage (NS)
  • 3. Obtenir la fabrique depuis le NS
  • 4. Créer un répertoire
  • 5. Enregistrer le répertoire dans le NS

58
What is ORBacus? http//www.ooc.com/ob/.
ORBACUS is an Object Request Broker (ORB) that is
compliant with the Common Object Request Broker
Architecture (CORBA) specification (2.4
features 3)
Dynamic Invocation and Dynamic Skeleton
Interface Dynamic Any Interface and
Implementation Repository Pluggable Protocols
IDL-to-HTML and IDL-RTF documentation tools
Includes Naming, Trading, Event, Notify, Property
Services,balancing,
Full CORBA IDL support C and Java language
mappings Simple configuration and
bootstrapping Portable Object Adapter Objects
by Value Portable Interceptors Single- and
Multi-threaded Active Connection Management
Fault Tolerant Extensions
59
Conclusion
  • CORBA ça marche et cest simple
  • Choisir son langage dimplantation
  • C complexe et moins portable
  • Java portable et plus lent
  • Choisir son bus
  • 1 bus 1 bibliothèque
  • mixer les bus cest possible

Expérimentez en TPs !
Write a Comment
User Comments (0)
About PowerShow.com