Upload
hatuyen
View
244
Download
1
Embed Size (px)
Citation preview
Java, CO
RB
A et R
MI
A. Le G
rand,19971
JAVA
, CO
RB
A et R
MI
objectif : développer des applications client/serveur incluant des objets répartis
Java / CO
RB
A : client/serveur hétérogènes
Java / RM
I : client/serveur homogènes
plan :— l’architecture C
OR
BA
— le développem
ent d’applications avec CO
RB
A—
applets Java / CO
RB
A—
applets Java /RM
I
Java, CO
RB
A et R
MI
A. Le G
rand,19972
CO
RB
A : u
ne in
trod
uctio
n
client
objetméthode
Courtier d’objets
serveur
traitement
AP
I CO
RB
AA
daptateur d’objetsC
OR
BA
Java, CO
RB
A et R
MI
A. Le G
rand,19973
CO
RB
A : u
ne in
trod
uctio
n
issu de l’OM
G (O
bject Managem
ent Group)
(+ de 500 entreprises)
objectif : créer une infrastructure à objets
ou
verte
CO
RB
A (C
omm
on Object R
equest Broker A
rchitecture)—
bus à objets—
architecture définit la forme des com
posants et leur m
ode d’interopérabilité (IDL)
Java, CO
RB
A et R
MI
A. Le G
rand,19974
CO
RB
A : u
ne in
trod
uctio
n
IDL (Interface D
efinition Language)—
langage neutre de spécification d’interface—
définit les interfaces contractuelles d’un composant avec
ses clients potentiels.
composants portables :—
entre langages,—
entre outils,—
entre systèmes d’exploitation,
— entre réseaux
Java, CO
RB
A et R
MI
A. Le G
rand,19975
Ob
jet réparti C
OR
BA
— com
posant logiciel accessible par des clients éloignés via des appels de m
éthode.—
les clients connaissent l’interface de l’objet.
— son m
ode de fabrication est transparent pour ses clients potentiels
— la m
achine et son système d’exploitation ne sont pas connues
des clients
Courtier d’objets (O
bject Request B
roker)
Client
IDL
IDL
IDL
Java
C+
+
Ada
Serveur
IDL
IDL
IDL
Java
C+
+
Ada
Java, CO
RB
A et R
MI
A. Le G
rand,19976
Interface D
efin
ition
Lan
gu
age
— définition contractuelle de l’interface d’un com
posant avec ses clients potentiels
— aucun détail d’im
plantation (langage, système d’exploitation)
— m
éthodes spécifiées en IDL peuvent être définies par tout
langage fournissant des liens avec CO
RB
A
— m
éthodes sont utilisées selon les constructions du langage (procédure, m
éthode)
Java, CO
RB
A et R
MI
A. Le G
rand,19977
Exem
ple d
’interface
module
Gestion_de_compte
{
interface
compteDistant {
float depot(float amount);
float retrait(float amount);
float litSolde();
};
}
Java, CO
RB
A et R
MI
A. Le G
rand,19978
Arch
itecture d
’un
cou
rtier CO
RB
A
— l’O
RB
établit des relations client/serveur entre des objets.—
l’OR
B a la responsabilité de trouver un objet im
plantant la requête
client
Courtier d’objets (O
RB
)
appel dynam
iquesouches
client en IDL
interface de l’O
RB
squelettesstatiques
appel de
dynamique
squeletteadaptateur
d’objets
référentield’interface
référentield’im
plantation
implantation
des objets
source OM
G
Java, CO
RB
A et R
MI
A. Le G
rand,19979
So
uch
e statiqu
e client ID
L
— interface précom
pilée statique aux services objets—
mandataire (proxi) local pour un objet serveur
— du point de vue du client, la souche agit com
me un appel local
— le client possède une souche ID
L pour chaque interface
client
Courtier d’objets
implantation
appel dynam
iquesouches
client en IDL
interface de l’O
RB
squelettesstatiques
appel de
dynamique
squeletteadaptateur
d’objets
référentield’interface
référentield’im
plantation
des objets
source OM
G
Java, CO
RB
A et R
MI
A. Le G
rand,199710
So
uch
e IDL
du
serveur (S
qu
elette)
— interface statique à chaque service exporté par le serveur.
— souche créée par com
pilation de l’IDL
clientim
plantation
appel dynam
iquesouches
client en IDL
interface de l’O
RB
squelettesstatiques
appel de
dynamique
squeletteadaptateur
d’objets
des objets
Courtier d’objets
référentield’interface
référentield’im
plantation
source OM
G
Java, CO
RB
A et R
MI
A. Le G
rand,199711
Ad
aptateu
r d’o
bjets
— m
écanisme perm
ettant à l’implantation d’un objet d’accéder
aux services de l’OR
B
— fournit un environnem
ent d’exécution complet pour une
application serveur
clientim
plantation
appel dynam
iquesouches
client en IDL
interface de l’O
RB
squelettesstatiques
appel de
dynamique
squeletteadaptateur
d’objets
des objets
Courtier d’objets
référentield’interface
référentield’im
plantation
source OM
G
Java, CO
RB
A et R
MI
A. Le G
rand,199712
Des services d
e l’adap
tateur d
’ob
jets
— enregistrem
ent des classes serveur dans le réf. d’implantation
— création des objets durant l’exécution
— gestion des références d’objet (correspondance entre les références propres de l’O
RB
et celles de l’implantation)
— signal de la présence des serveurs d’objet
— traitem
ent des requêtes client entrantes
Java, CO
RB
A et R
MI
A. Le G
rand,199713
Référen
tiel d’im
plan
tation
— gestion des inform
ations sur les classes, les objets instanciés et leurs ID
.
— il n’est utilisé que lors de l’exécution
client
Courtier d’objets
implantation
appel dynam
iquesouches
client en IDL
interface de l’O
RB
squelettesstatiques
appel de
dynamique
squeletteadaptateur
d’objets
référentield’interface
référentield’im
plantation
des objets
source OM
G
Java, CO
RB
A et R
MI
A. Le G
rand,199714
mise en
œu
vre d’o
bjets rép
artis (CO
RB
A)
Défi
nir les in
terfaces en
IDL
com
piler ID
L vers C++
So
uch
es (squ
elettes)
Ajo
uter le co
de
aux sq
uelettes
Co
mp
iler C++
So
uch
es ID
L client
Sq
uelettes
serveur
imp
lantatio
nd
es ob
jets
adap
tateur
des o
bjets
instan
cier
imp
lantatio
ns
référentiel d
’
com
piler ID
L vers Java
Java, CO
RB
A et R
MI
A. Le G
rand,199715
Défi
nitio
n d
es interfaces
— term
inologie OM
G :
interface <->
classeopération <
-> m
éthode—
syntaxe proche du C+
+
fich
ier IDL à co
mp
iler selon
les lang
ages cib
le
module : ensem
ble de définitions d’interfaces
interface : ensemble d’attributs et d’opérations (sans
implantation)
héritage (multiple) entre interfaces
opération : méthode avec des param
ètres (in, out, inout)
Java, CO
RB
A et R
MI
A. Le G
rand,199716
Co
mp
ilation
de la so
uch
e serveur
exemple : com
pilateur IDL en C
++
compilation de l’ interface : souches serveur (squelette)squelette contient :—
types définis en IDL
— code pour faire correspondre les requêtes aux m
éthodes—
corps vide des méthodes
compilation classes com
plètes : implantation des objets
Java, CO
RB
A et R
MI
A. Le G
rand,199717
Pro
gram
me serveu
r
instanciation de l’objet serveur
enregistrement de cet objet par l’adaptateur d’objet
l’objet est alors dans le référentiel d’implantation
et accessible pour rendre les services
Java, CO
RB
A et R
MI
A. Le G
rand,199718
Co
mp
ilation
de la so
uch
e client
compilateur ID
L en Java
souche client : classe Java classe est com
plètele corps des m
éthodes contient les informations perm
ettant de relayer l’appel sur l’objet serveur.
Java, CO
RB
A et R
MI
A. Le G
rand,199719
Ap
plet clien
te
obtention d’une référence sur l’objet distant—
on utilise le nom d’enregistrem
ent de l’objet serveur
appels des méthodes de l’objet de m
anière transparenteles souches prennent en charge l’arrangem
ent des param
ètres et leur circulation à travers le courtier
Java, CO
RB
A et R
MI
A. Le G
rand,199720
utilisatio
n : A
pp
let Java/Co
rba
machine utilisateur
butineur web
appletJava
machine serveur
serveur ww
w
serveur d’objets
objet distant
http: requête del’url de l’applet
http: téléchargement
de l’applet
Corba: appel de m
éthode
Corba: fin de m
éthode
Java, CO
RB
A et R
MI
A. Le G
rand,199721
Avan
tages d
e Co
rba
client et serveu
rs : lang
ages q
uelco
nq
ues
indépendance des langages —
interfaces définies en IDL
réutilisation du code existant
neutralité par rapport aux fournisseurs —
saine émulation
services de Corba
— sécurité,
— transaction, ...
Java, CO
RB
A et R
MI
A. Le G
rand,199722
Java/Co
rba versu
s Co
rba
clients Java
serveur lan
gag
e qu
elcon
qu
e
déploiement
— installation autom
atique—
indépendance de la plate-forme :
Avec C
orba seulement, la version du logiciel doit être gérée
pour chaque plate-forme
maintenance
Java, CO
RB
A et R
MI
A. Le G
rand,199723
DC
OM
versus C
orb
a
contrôlé par un seul fournisseur
dépendance du système d’exploitation (W
in95 / NT
)
réutilisation du code existant limité aux plateform
es et Win95 / N
T
ajout de services en cours
applets Java/DC
OM
ne fonctionnent que sur Win95 / N
T
Java, CO
RB
A et R
MI
A. Le G
rand,199724
Java /RM
I
mêm
e principe que CO
RB
A :
— interfaces
— élaboration de souches
Exem
ple : gestion de compte en banque à distance
Applet Java:
l’utilisateur effectue des dépôts et des retraits d’argent sur un com
pte géré à distance
Objet distant de gestion du com
pte :m
aintient le solde et effectue les opérations
Java, CO
RB
A et R
MI
A. Le G
rand,199725
Interface Java
public interface
compteDistant
extends
java.rmi.Remote {
// depot d'argent
float
depot
(float amount)
throws
java.rmi.RemoteException;
// retrait d'argent
float
retrait
(float amount)
throws
java.rmi.RemoteException;
// lecture du solde
float litSolde()
throws
java.rmi.RemoteException;
}
Java, CO
RB
A et R
MI
A. Le G
rand,199726
Dévelo
pp
emen
t de l’o
bjet serveu
r
définition de l’interface
définition de l’implantation
spécification du code des méthodes de l’interface
définition du constructeur pour l’objet distant
lancement du serveur
création et installation d’un gestionnaire de sécuritécréation d’une instance de l’objet distantenregistrem
ent de l’objet sur “le référentiel d’implantation”
Java, CO
RB
A et R
MI
A. Le G
rand,199727
Ap
plicatio
n serveu
r
public class
compteServeur
extends
UnicastRemoteObject
implements compteDistant
{
float solde = 0;
... // constructeur
public static void
main(String args[]) {
System.setSecurityManager(new RMISecurityManager());
try
{
compteServeur UnCompte= new compteServeur();
Naming.rebind("gestionCompteDistant", UnCompte);
}
catch
(Exception e) {... }
// implantation des méthodes de l’interface ...
}
Java, CO
RB
A et R
MI
A. Le G
rand,199728
Dévelo
pp
emen
t de l’ap
plet clien
te
Déclaration d’une référence sur un objet im
plantant l’interface
Affectation de cette référence à l’objet serveur déclaré dans le
référentiel d’implantation
appels des méthodes distantes (com
me en local)
Java, CO
RB
A et R
MI
A. Le G
rand,199729
Ap
plet clien
te
public class
AppletClient
extends
Applet
implements
ActionListener {
private compteDistant compte;
public
AppletClient(){
try {
compte
=(compteDistant) Naming.lookup
("//site/gestionCompteDistant");
}
catch (Exception e) {... }
}
...
compte.depot
(montant); // appel de méthode
...
Java, CO
RB
A et R
MI
A. Le G
rand,199730
Co
mp
ilation
et dép
loiem
ent
com
pilatio
n
compilation des sources serveur et client (
javac
)génération des souches (
rmic
)
dép
loiem
ent
démarrer le référentiel d’im
plantation (
rmiregistry
)lancer le program
me serveur
télécharger et exécuter l’applet
Java, CO
RB
A et R
MI
A. Le G
rand,199731
Avan
tages d
e Java/RM
I
clients Java
serveur Java
technologie identique à Corba
pas d’IDL : interface Java
ramasse-m
iettes distribué
téléchargement autom
atique des classes des arguments des
méthodes
Java, CO
RB
A et R
MI
A. Le G
rand,199732
Java/RM
I versus Java/C
orb
a
pro
gram
matio
n versu
s intég
ration
pas d’achat de licences de développement et d’utilisation
dépendance du langage Java
indépendance des plates-formes
services moindres (pour le m
oment)
problème de réutilisation du code ancien
performances
Java, CO
RB
A et R
MI
A. Le G
rand,199733
Qu
elqu
es pistes...
intég
ration
de l'existan
t
SG
BD
--> JD
BC
(pilote sur le serveur ou sur le client)program
mes -->
Corba
dévelo
pp
emen
t de n
ou
velles app
lication
s distrib
uées
critères de distribution des objetsR
MI C
orba
coté clien
t
applets Java