Vous êtes sur la page 1sur 76

Corba

Corba

Architecture
Broker
Request
Object
Common

A. Beugnard

Telecom Bretagne

Corba

Plan
Introduction

OMG

Architecture

A. Beugnard

IDL

Limitations

Un service

lien avec les


objets

Telecom Bretagne

Corba

Introduction

Quels besoins pour les applications ?


Des solutions possibles
Corba

A. Beugnard

Telecom Bretagne

Corba

Evolution des applications

rseau et distribution
le systme d'information
regroupe les applications
quelques applications
indpendantes

1982

A. Beugnard

1986

1990

1995

1998

Telecom Bretagne

Corba

Quels besoins pour les applications ?


Plug-and-Play
Interoprable
Portable
Coxistence

Transparence la localit

ORB

OS2

Mac

Unix

VMS

Application
existante

ORB

ORB

The Essential Distributed Objects Survival Guide

A. Beugnard

Telecom Bretagne

Corba

Des solutions possibles


Vague 3
Vague 2
Vague 1

Serveurs
Fichiers

Serveurs
Bases de
donnes
Groupware

1982

1986

1990

Moniteurs
transactionnels

1995

Objets
Distribus
1998

The Essential Distributed Objects Survival Guide

A. Beugnard

Telecom Bretagne

Corba

Modle 2 couches (two-tier)

Client
interface
mise en forme
contraintes locales
"intelligence"
applicative
contraintes globales
calculs de requtes
stockage
Serveur

A. Beugnard

Telecom Bretagne

Corba

Modle 3 couches (three-tier)

Client
interface
mise en forme
contraintes locales
"intelligence"
applicative

MiddleWare
contraintes globales
calculs de requtes
stockage

Object
Request
Broker

Serveur

A. Beugnard

Telecom Bretagne

Corba

Le principe d'un ORB


Serveur

Client
obj
obj.A

A{

Skeleton

STUB
Requte

Symtrie Client-Serveur ; un objet peut tre la fois client d'objets et serveur d'autres
A. Beugnard

Telecom Bretagne

Corba

10

Corba : le noyau
Smalltalk

C++

Ada

Autres

Smalltalk

C++

Ada

Autres

"mapping"
IDL

IDL

Client

Serveur

Object Request Broker


A. Beugnard

Telecom Bretagne

Corba

11

Corba : vision globale


Services

Common Facilities

Object Request Broker

System
Framework

Interoprabilit

Application
Framework

Business
Objects

Collaboration

The Essential Distributed Objects Survival Guide

A. Beugnard

Telecom Bretagne

Corba

12

Corba : les composants "service" 1/3


Life Cycle
cration, copie, dplacement et destruction d'objets

Relationship
dfinition de relation entre objet et de techniques de
parcours

Naming
comment nommer, enregistrer et localiser un objet

Persistence
interface pour stocker des objects sur SGBD, SGBDR, SGBDO,

Externalization
comment faire entrer ou sortir des objets sous forme de flux
A. Beugnard

Telecom Bretagne

Corba

13

Corba : les composants "service" 2/3


Event
signalisation d'vnements entre objets via des canaux

Query
surensemble de SQL (SQL3) et de OQL

Properties
association d'informations aux objets (titre, date de cration,
)

Transaction
validation deux-phases de transactions (commit, rollback)

Concurrency Control
gestion de verrou pour la synchronisation
A. Beugnard

Telecom Bretagne

Corba

14

Corba : les composants "service" 3/3


Licensing
comment controler l'usage des objets (par session, par
instance cre, par site, )

Et d'autres venir

A. Beugnard

Trader
Security
Time
Collections
Change Management

Telecom Bretagne

Corba

15

Corba : les composants


Common facilities
horizontal

User Interface
Information Management
System Management
Task Management

vertical

Document
Composition
Edition
Stockage
...
Configuration
Gestion
...
Workflow
...

health, telcos, finance

Business Object and Application

A. Beugnard

Telecom Bretagne

Corba

16

Plan
Introduction

OMG

Architecture

A. Beugnard

IDL

Limitations

Un service

lien avec les


objets

Telecom Bretagne

Corba

17

Organisation

Histoire
Road map

A. Beugnard

Telecom Bretagne

Corba

18

Histoire
Cre en 1989 par Sun, HP, Dec, NCR Hyperkesk, ODI
Association type "loi 1901" base aux USA
Actuellement, plus de 600 membres
le plus grand groupe d'utilisateurs
15 employs plein temps

Ddie la spcification et la diffusion de standards


objets
Ne standardise que des technologies prouves
A. Beugnard

Telecom Bretagne

Corba

19

Road Map

RFP 1 : CF1
OpenDoc
RFP 3 : COSS3
Security
Time

RFP 1 : COSS1
Life Cycle
Naming
Persistence
Event Notification
1993

RFP 2 : COSS2
Transactions
Concurrency
Relationships
Externalization
1994

RFP 4 : COSS4
Query
Licensing
Properties

1995

Corba 1.1

RFP 5 : COSS5
Trader
Collections
Change Management

1996
Corba 2.0

12/94
interoprabilit mono-ORB
A. Beugnard

interoprabilit multi-ORB
Telecom Bretagne

Corba

20

Plan
Introduction

OMG

Architecture

A. Beugnard

IDL

Limitations

Un service

lien avec les


objets

Telecom Bretagne

Corba

21

Corba 2.0 : le bus objet

Architecture
Utilisation
IIOP

A. Beugnard

Telecom Bretagne

Corba

22

Architecture : le rle de l'ORB


Administration d'objets : enregistrement d'objets,
de services, descriptions d'objets
(mta-donnes)
Communication objet : Un objet client invoque
une mthode sur un autre objet (distant, autre
langage, autre plate-forme, etc)
transparence
symtrie

2 APIs : invocation statique ou dynamique


A. Beugnard

Telecom Bretagne

Corba

23

Architecture gnrale
Implantation d'objets
Client

Interface
Repository

Implementation
Repository

Dynamic
Invocation

IDL
Stubs

ORB
Interface

Static
Skeletons

Dynamic
Skeleton
Invocation

Object
Adapter

Object Request Broker

A. Beugnard

Telecom Bretagne

Corba

24
Implantation d'objets
Client

IDL Stubs (talons)

Interface
Repository

Implementation
Repository

Dynamic
Invocation

IDL
Stubs

ORB
Interface

Static
Skeletons

Dynamic
Skeleton
Invocation

Object
Adapter

Object Request Broker

Prcompils, ils dfinissent comment le client peut


invoquer un service d'un objet serveur.
Gnr partir de la description
IDL de l'objet
serveur.
Agit comme un proxy.
Inclus le code de marshalling (mise plat
standard) des messages envoys au serveur.
A. Beugnard

Telecom Bretagne

Corba

25

Dynamic Invocation
Interface et Interface
Repository

Implantation d'objets
Client

Interface
Repository

Implementation
Repository

Dynamic
Invocation

IDL
Stubs

ORB
Interface

Static
Skeletons

Dynamic
Skeleton
Invocation

Object
Adapter

Object Request Broker

La DII est utilise par le client pour accder aux


descriptions des services du serveur
(mta-donnes) afin de choisir
l'excution
l'opration, les paramtres et la nature du
rsultat
L'IR enregistre l'ensemble des signatures des
oprations accssibles. C'est la base de donnes
des mta-donnes de l'ORB.
A. Beugnard

Telecom Bretagne

Corba

26
Implantation d'objets
Client

IDL Skeletons

Interface
Repository

Implementation
Repository

Dynamic
Invocation

IDL
Stubs

ORB
Interface

Static
Skeletons

Dynamic
Skeleton
Invocation

Object
Adapter

Object Request Broker

Fournissent une interface avec les services offerts


par le serveur.
Gnrs partir de l' IDL.
Inclus le code de unmarshalling des messages
envoys par le client.

A. Beugnard

Telecom Bretagne

Corba

27
Implantation d'objets

Dynamic Skeleton
Invocation

Client

Interface
Repository

Dynamic
Invocation

IDL
Stubs

ORB
Interface

Static
Skeletons

Dynamic
Skeleton
Invocation

Implementation
Repository

Object
Adapter

Object Request Broker

Nouveaut Corba 2.0


Pour accder des objets qui n'auraient pas de
description statique (squelette) cot serveur.
Permet de gnrer l'excution des implantations
d'objets. (utile pour les interprteurs ou les
langages de script)
Peut traiter des requtes statiques ou
dynamiques.
A. Beugnard

Telecom Bretagne

Corba

28
Implantation d'objets
Client

Object Adapter

Interface
Repository

Implementation
Repository

Dynamic
Invocation

IDL
Stubs

ORB
Interface

Static
Skeletons

Dynamic
Skeleton
Invocation

Object
Adapter

Object Request Broker

Fait le lien entre les requtes manant des clients


et les objets via l'Implementation Repository.
instancie les objets, si ncessaire
transmet les requtes

A. Beugnard

Telecom Bretagne

Corba

29
Implantation d'objets

Implementation
Repository

Client

Implementation
Repository

Interface
Repository

Dynamic
Invocation

IDL
Stubs

ORB
Interface

Static
Skeletons

Dynamic
Skeleton
Invocation

Object
Adapter

Object Request Broker

Base de donnes concernant les classes offertes,


les objets instancis et leurs IDs.
Permet d'enregister diverses informations comme
la scurit, les accs, et autres donnes
administratives.

A. Beugnard

Telecom Bretagne

Corba

30

Stratgies des OA
shared server

persistent server

unshared server

objet
processus
inscription
start
A. Beugnard

Object
Adapter
server per method

Telecom Bretagne

Corba

31
Implantation d'objets
Client

L'Interface ORB

Interface
Repository

Implementation
Repository

Dynamic
Invocation

IDL
Stubs

ORB
Interface

Static
Skeletons

Dynamic
Skeleton
Invocation

Object
Adapter

Object Request Broker

Contient quelques services primitifs Corba qui


peuvent tre utiles :
object_to_string
string_to_object

ObjectReference

A. Beugnard

string

Telecom Bretagne

Corba

32

ObjectReference
Identificateur unique d'objet
dpend de l'implantation de Corba
Corba 2.0 spcifie Interoperable Object References
(IOR)

Ou trouver des Objects References ?


via des oprations envoyes des objets connus
via string_to_object et object_to_string

L'ORB implance pour une Reference


get_interface qui retourne les meta-donnes de cet
objet
get_implementation
A. Beugnard is_nil
Telecom Bretagne

Corba

33

Connecte
r via
Corba

IDL
Compilateur IDL
de chez X

code client

code impl
Code
Stub

Code
Skel.

Compilateur, linker

Client

Stub

Serveur

Skel.

ORB de chez X
A. Beugnard

Telecom Bretagne

Corba

34

Utilisation : cas statique


Dfinir l'interface en IDL
Compiler l'IDL
gnration des talons
gnration des squelettes

Ajouter l'implantation aux squelettes


Compiler l'ensemble
Enregistrer dans l'IR
Instancier les objets sur le serveur
Enregistrer les instances dans l'Implementation
Repository

A. Beugnard

Telecom Bretagne

Corba

35

Offrir un
service

IDL

Compilateur IDL

code impl
ignor

Code
Stub

Code
Skel.

Exploite le mapping
IDL pour le langage
qu'il utilise

Compilateur, linker

Client

Serveur

Stub

Skel.
ORB

A. Beugnard

Telecom Bretagne

Corba

36

Exploiter
un service

fourni par le vendeur


IDL

Compilateur IDL

code client
Code
Stub

Exploite le mapping
IDL pour le langage
qu'il utilise

Code
Skel.

ignor

Compilateur, linker

Client

Stub

Skel.
ORB

A. Beugnard

Telecom Bretagne

Corba

37

Trouver le destinataire d'une


requte (cot client)
On connait son Object Reference
via la rponse une prcdente requte
via le service de l'ORB string_to_object

On s'adresse un service de nommage


un nom peut-tre associ chaque objet

A. Beugnard

Telecom Bretagne

Corba

38

Utilisation : cas dynamique


Obtenir la description du service via l'IR
get_interface()

Crer la liste d'argument idoine


create_list() ; add_arg() ; ; add_arg()

Crer la requte
create_request(ObjectReference, Method,
ArgumentList)

Envoyer la requte
invoke()
send() ; get_response()
send() "one way"
A. Beugnard

Telecom Bretagne

Corba

39

Invocations
Client

STOP

Client

Client

Serveur

synchrone : default SII

Serveur

asynchrone : oneway

Serveur

futur opration d'attente explicite :


deferred synchronous via DII

STOP

par ncessit ; attente implicite

A. Beugnard

Telecom Bretagne

Corba

40

Trouver le destinataire d'une


requte (cot serveur)

C'est le rle de Object Adapter


Recherche dans l'Implementation Repository
association (Object Reference objet)

A. Beugnard

Telecom Bretagne

Corba

41

Communication inter-ORB
Serveur

Client
obj
obj.A

A{

Serveur

Client

format des requtes,


des donnes, etc

A. Beugnard

obj
obj.A

A{

Telecom Bretagne

Corba

42

IIOP
Corba 2.0

ESIOP

GIOP

IIOP
TCP/IP

A. Beugnard

DCE
scurit
distributed time
...
Telecom Bretagne

Corba

43

Plan
Introduction

OMG

Architecture

A. Beugnard

IDL

Limitations

Un service

lien avec les


objets

Telecom Bretagne

Corba

44

Interface Repository et IDL

Interface Definition Language


Interface Repository

A. Beugnard

Telecom Bretagne

Corba

45

Un exemple

C/C++ flavors
dfinitions seulement

//POS Object IDL example


module POS {
typedef string Barcode;
interface InputMedia {
typedef string OperatorCmd;
void barcode_input(in Barcode item);
void keypad_input(in OperatorCmd cmd);

};
interface OutputMedia {
boolean output_text(in string string_to_print);

};

};
A. Beugnard

Telecom Bretagne

Corba

46

Modules et porte
Dfinissent des "paquets" de dfinitions

types
constantes
exceptions
interfaces

Les dfinitions ne sont visibles que dans la


porte de {...} englobant.
Importation par l'oprateur
::
exemple POS::Barcode

A. Beugnard

Telecom Bretagne

Corba

47

Types IDL
long , short , unsigned long and short
float, double (IEEE Standard for Binary FP
Arithmetic)
char (ISO Latin-1), string
boolean
octet
typedef
any
struct
array
union switch
struct, union
enum
sequence
enumeration
sequence
A. Beugnard
Telecom Bretagne

Corba

48

Interface
Dfinissent des oprations "naturellement" lies
type de l'opration obligatoire
nom de l'opration
types et noms des paramtres (in out inout)

Signature

void keypad_input(in OperatorCmd cmd);


boolean output_text(in string string_to_print);

Des exceptions
quand elles sont leves l'ORB les retourne au client pour
traitement
exception input_out_of_range {long dummy};
void op(in long arg) raises(input_out_of_range);

A. Beugnard

Telecom Bretagne

Corba

49

Smantique des invocations


Les oprations retournent au moins un objet
type
out
inout

sauf celles spcifies

oneway

doivent retourner void


ne pas avoir de out inout
ne pas lever d'exception
oneway void output(in string string_to_print);

A. Beugnard

Telecom Bretagne

Corba

50

Contexte
Ensemble de proprits
nom
string

Dfinit un environnement ( la Unix)


context(ctx1, ctx2,);

A. Beugnard

Telecom Bretagne

Corba

51

Attributs
Dfinissent l'tat des objets
interface exemple{
attribute float heigth;
//readonly attribute float heigth;
};

et implicitement des oprations d'accs


interface exemple{
float _get_heigth();
void _set_heigth(in float h); //absent en readonly
};

A. Beugnard

Telecom Bretagne

Corba

52

Hritage
Relation entre interfaces introduite par :
Redfinition des lments interdites
interface exemple1{
void op1(in float h);
};

interface exemple2 : exemple1{


void op2(in float h, out int v);
};

hritage multiple

interface exemple3 : exemple2, exemple1{


void op1(in float h);// interdit
};
A. Beugnard

Telecom Bretagne

Corba

53

L'Interface Repository
Chaque ORB en possde un pour
enregistrer les dfinitions IDL
les mettre jour
les fournir la demande (DII)

Et garantir :
l'interoprabilit des diffrents ORB
que les requtes statiques ou dynamiques sont
conformes aux signatures des oprations enregistres
la correction du graphe d'hritage

A. Beugnard

Telecom Bretagne

Corba

54

Autres services de l'IR

Grer la distribution et l'installation des interfaces


sur un rseau
exemple : une IR partage par plusieurs ORB

En phase de dveloppement, permet de naviguer


et mettre au point les interfaces
Compiler directement depuis l'IR plutot que
depuis les fichiers IDL

A. Beugnard

Telecom Bretagne

Corba

55

Plan
Introduction

OMG

Architecture

A. Beugnard

IDL

Limitations

Un service

lien avec les


objets

Telecom Bretagne

Corba

56

Un service en dtail : Naming

Dfinition
Interface
Implantation

A. Beugnard

Telecom Bretagne

Corba

57

Object Management Architecture


Objets des
Applications

CORBA facilities

Health
Financ.

User
Interf.

Info
Mgmt

Syst.
Mgmt

Task
Mgmt

Object Request Broker

Naming

LifeCycle

Persist.

Extern.

CORBA services
A. Beugnard

Telecom Bretagne

Corba

58

Principe

Lien entre un nom et un objet


Le service nommage rsoud (retrouve) un objet
partir de son nom
Partage des services de nommage entre ORB

A. Beugnard

Telecom Bretagne

Corba

59

Dfinition
typedef string Istring
struct NameComponent {
Istring id;
Istring kind

};
typedef sequence<NameComponent> Name;
//squence dont le dernier lment est le "name"
//et les prdcesseurs dfinissent le "naming context"

void bind(in Name n, in Object obj);


void bind_context(in Name n, in NamingContext nc);
Object resolve(in name n);
A. Beugnard

Telecom Bretagne

Corba

60

Plan
Introduction

OMG

Architecture

A. Beugnard

IDL

Limitations

Un service

lien avec les


objets

Telecom Bretagne

Corba

61

Corba et les objets

Encapsulation " la Corba"


Hritage
Polymorphisme

A. Beugnard

Telecom Bretagne

Corba

62

Encapsulation " la Corba"


Sparation entre l'interface et l'implantation
L'interface est un
clients potentiels

contrat entre le serveur et ses

Transparence la localisation ; un client


s'adresse l'ORB qui transmet...
Et l'objet dans tout a ?

A. Beugnard

Telecom Bretagne

Corba

63

Hritage

Rutilisation des dfinitions des interfaces dont on


hrite
La surcharge est ralise par l'implantation

A. Beugnard

Telecom Bretagne

Corba

64

Polymorphisme

Implicite dans l'IDL, c'est l'implantation de


l'assurer
Object Adapter
Mapping

A. Beugnard

Telecom Bretagne

Corba

65

Plan
Introduction

OMG

Architecture

A. Beugnard

IDL

Limitations

Un service

lien avec les


objets

Telecom Bretagne

Corba

66

Limitations de Corba

Spcification
Smantique
Temps rel
Gestion de la fiabilit avec IIOP

A. Beugnard

Telecom Bretagne

Corba

67

Spcification : contrat ?
Une signature ne spcifie pas un service !
on garantit seulement que l'appel et les rsultats sont
correctement typs
montant dposer(in montant somme);

Introduction de prcondition et de postcondition


montant dposer(in montant somme)
{require somme > 0}
{ensure solde = old solde + somme};

A. Beugnard

Telecom Bretagne

Corba

68

Smantique des oprations


Qui garantit le bon usage des ressources ?
Invoquer une opration est-ce raliser une
opration atomique ?
Faut-il faire des Transactions ?
Faites confiance au service implant !

A. Beugnard

Telecom Bretagne

Corba

69

Smantique de l'hritage
Quelle smantique pour l'hritage multiple ?

B::vole

A::vole

Faites encore une fois confiance au serveur !

A. Beugnard

Telecom Bretagne

Corba

70

Temps rel

Aucune garantie de qualit de service


dure d'attente de la rponse
dure d'excution du service

Aucune connaissance de la stratgie


d'ordonnancement du serveur

A. Beugnard

Telecom Bretagne

Corba

71

Gestion de la fiabilit avec IIOP


IIOP assure une connexion point point
C'est au programmeur client et serveur d'assurer
la gestion des problmes de communication.
connexion rompue
perte de messages

ESIOP/DCE offre ce service au dpend d'un coup


de communication plus lev d au protocole
fiabilisant la communication

A. Beugnard

Telecom Bretagne

Corba

72

Conclusion
Standard d'interoprabilit incontournable
Des manques lis au processus mme de
standardisation qui mne toujours des
solutions simples, minimaliste ?
Retenu dans la norme Open Distributed
Processing (ODP) comme modle d'ingnierie
(interoprabilit)
De nombreux projets industriels commencent
s'appuyer sur Corba...
A. Beugnard

Telecom Bretagne

Corba

73

Bibliographie
R. Orfali, D. Harkey, J. Edwards, The Essential Distributed
Objects Survival Guide , Wiley & sons, Inc, 1996
Jon Siegel, CORBA Fundamentals and Programming , Wiley &
sons, Inc, 1996

A. Beugnard

Telecom Bretagne

Corba

74

RPC versus ORB

Procdural

Serveur

Client
A{

call A

Donnes

mcanisme RPC
Serveur

Client
obj
obj.A

Objet
A. Beugnard

A{

mcanisme ORB
Telecom Bretagne

Corba

75

Client Serveur

1000 clients

1000 connexions
1000 processus
500 Mo de RAM
10000 fichiers ouverts

The Essential Distributed Objects Survival Guide

A. Beugnard

Telecom Bretagne

Corba

76

Client Serveur avec moniteur

1000 clients

50 connexions partages
50 processus
25 Mo de RAM
500 fichiers ouverts

Moniteur transactionnel

The Essential Distributed Objects Survival Guide

A. Beugnard

Telecom Bretagne

Vous aimerez peut-être aussi