33
Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI objectif : développer des applications client/serveur incluant des objets répartis Java / CORBA : client/serveur hétérogènes Java / RMI : client/serveur homogènes plan : — l’architecture CORBA — le développement d’applications avec CORBA — applets Java / CORBA — applets Java /RMI

Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

  • Upload
    hatuyen

  • View
    240

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 2: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 3: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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)

Page 4: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 5: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 6: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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)

Page 7: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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();

};

}

Page 8: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 9: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 10: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 11: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 12: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 13: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 14: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 15: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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)

Page 16: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 17: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 18: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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.

Page 19: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 20: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 21: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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, ...

Page 22: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 23: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 24: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 25: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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;

}

Page 26: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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”

Page 27: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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 ...

}

Page 28: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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)

Page 29: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

...

Page 30: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 31: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 32: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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

Page 33: Java / RMI : client/serveur homogènes Java / CORBA ...bigbozoid.free.fr/CoursIUT/ASD/Programmation/JAVA/COURS/java_16... · Java, CORBA et RMI A. Le Grand,1997 2 CORBA : une introduction

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