• Aucun résultat trouvé

[PDF] Java corba et rmi documentation de cours de base | Cours java

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Java corba et rmi documentation de cours de base | Cours java"

Copied!
33
0
0

Texte intégral

(1)

Java, CORBA et RMI  A. Le Grand,1997

JA

V

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

(2)

Java, CORBA et RMI  A. Le Grand,1997

CORBA

: une introduction

client objet méthode Courtier d’objets serveur traitement API CORBA Adaptateur d’objets CORBA

(3)

Java, CORBA et RMI  A. Le Grand,1997

CORBA

: une introduction

issu de l’OMG (Object Management Group)

(+ de 500 entreprises)

objectif :

créer une infrastructure à objets

ouverte

CORBA

(Common Object Request Broker

Architecture)

— bus à objets

— architecture définit la forme des composants et leur

(4)

Java, CORBA et RMI  A. Le Grand,1997

CORBA

: une introduction

IDL

(Interface Definition Language)

— langage neutre de spécification d’interface

— défi

nit les interfaces contractuelles d’un composant avec

ses clients potentiels.

composants portables :

— entre langages,

— entre outils,

— entre systèmes d’exploitation,

(5)

Java, CORBA

et RMI

A. Le Grand,1997

Objet réparti CORBA

— composant logiciel accessible par des clients éloignés via des

appels de méthode.

— les clients connaissent l’interface de l’objet.

— son mode de fabrication est transparent pour ses clients

potentiels

— la machine et son système d’exploitation ne sont pas connues

des clients

Courtier d’objets (Object Request Broker)

Client IDL IDL IDL Java C++ Ada Serveur

(6)

Java, CORBA

et RMI

A. Le Grand,1997

Interface Definition Language

— défi

nition contractuelle de l’interface d’un composant avec ses

clients potentiels

— aucun détail d’implantation (langage, système d’exploitation)

— méthodes spécifiées en IDL

peuvent être définies par tout

langage fournissant des liens avec CORBA

— méthodes sont utilisées selon les constructions du langage

(7)

Java, CORBA et RMI  A. Le Grand,1997

Exemple d’interface

module Gestion_de_compte { interface compteDistant {

float depot(float amount);

float retrait(float amount);

float litSolde();

};

(8)

Java, CORBA

et RMI

A. Le Grand,1997

Architecture d’un courtier CORBA

— l’ORB établit des relations client/serveur entre des objets.

— l’ORB a la responsabilité de trouver un objet implantant la

requête

client

Courtier d’objets (ORB)

appel dynamique souches client en IDL interface de l’ORB squelettes statiques appel de dynamique squelette adaptateur d’objets référentiel d’interface référentiel d’implantation implantation des objets source OMG

(9)

Java, CORBA

et RMI

A. Le Grand,1997

Souche statique client IDL

— interface précompilée statique aux services objets

— mandataire (proxi) local pour un objet serveur

— du point de vue du client, la souche agit comme un appel local

— le client possède une souche IDL

pour chaque interface

client Courtier d’objets implantation appel dynamique souches client en IDL interface de l’ORB squelettes statiques appel de dynamique squelette adaptateur d’objets référentiel d’interface référentiel d’implantation des objets source OMG

(10)

Java, CORBA

et RMI

A. Le Grand,1997

Souche IDL du serveur (Squelette)

— interface statique à chaque service exporté par le serveur

— souche créée par compilation de l’IDL

client implantation appel dynamique souches client en IDL interface de l’ORB squelettes statiques appel de dynamique squelette adaptateur d’objets des objets Courtier d’objets référentiel d’interface référentiel d’implantation source OMG

(11)

Java, CORBA

et RMI

A. Le Grand,1997

Adaptateur d’objets

— mécanisme permettant à l’implantation d’un objet d’accéder

aux services de l’ORB

— fournit un environnement d’exécution complet pour une

application serveur client implantation appel dynamique souches client en IDL interface de l’ORB squelettes statiques appel de dynamique squelette adaptateur d’objets des objets Courtier d’objets référentiel d’interface référentiel d’implantation source OMG

(12)

Java, CORBA

et RMI

A. Le Grand,1997

Des services de l’adaptateur d’objets

— enregistrement 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’ORB et celles de l’implantation)

— signal de la présence des serveurs d’objet

(13)

Java, CORBA

et RMI

A. Le Grand,1997

Référentiel d’implantation

— gestion des informations 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 dynamique souches client en IDL interface de l’ORB squelettes statiques appel de dynamique squelette adaptateur d’objets référentiel d’interface référentiel d’implantation des objets source OMG

(14)

Java, CORBA

et RMI

A. Le Grand,1997

mise en œuvre d’objets répartis (CORBA)

Définir les interfaces

en IDL compiler IDL vers C++ Souches (squelettes) Ajouter le code aux squelettes Compiler C++ Souches IDL client Squelettes serveur implantation des objets adaptateur des objets instancier implantations référentiel d’ compiler IDL vers Java

(15)

Java, CORBA

et RMI

A. Le Grand,1997

Définition des interfaces

— terminologie OMG :

interface <-> classe

opération <-> méthode

— syntaxe proche du C++

fichier IDL

à compiler selon les langages cible

module : ensemble de définitions d’interfaces

interface : ensemble d’attributs et d’opérations (sans

implantation)

héritage (multiple) entre interfaces

(16)

Java, CORBA

et RMI

A. Le Grand,1997

Compilation de la souche serveur

exemple : compilateur 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

(17)

Java, CORBA

et RMI

A. Le Grand,1997

Programme serveur

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

(18)

Java, CORBA

et RMI

A. Le Grand,1997

Compilation de la souche client

compilateur IDL

en Java

souche client : classe Java

classe est complète

le corps des méthodes contient les informations permettant

de relayer l’appel sur l’objet serveur

(19)

Java, CORBA

et RMI

A. Le Grand,1997

Applet cliente

obtention d’une référence sur l’objet distant

— on utilise le nom d’enregistrement de l’objet serveur

appels des méthodes de l’objet de manière transparente

les souches prennent en charge l’arrangement des

(20)

Java, CORBA et RMI  A. Le Grand,1997

utilisation :

Applet Java/Corba

machine utilisateur butineur web applet Java machine serveur serveur www serveur d’objets objet distant http: requête de l’url de l’applet http: téléchargement de l’applet

Corba: appel de méthode

(21)

Java, CORBA et RMI  A. Le Grand,1997

A

vantages de Corba

client et serveurs : langages quelconques

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

(22)

Java, CORBA

et RMI

A. Le Grand,1997

Java/Corba versus Corba

clients Java

serveur langage quelconque

déploiement

— installation automatique

— indépendance de la plate-forme :

A

vec Corba seulement, la version du logiciel doit être gérée

pour chaque plate-forme

(23)

Java, CORBA

et RMI

A. Le Grand,1997

DCOM versus Corba

contrôlé par un seul fournisseur

dépendance du système d’exploitation (Win95 / NT)

réutilisation du code existant limité aux plateformes et W

ajout de services en cours

(24)

Java, CORBA

et RMI

A. Le Grand,1997

Java /RMI

même principe que CORBA

:

— interfaces

— élaboration de souches

Exemple : gestion de compte en banque à distance

Applet Java:

l’utilisateur ef

fectue des dépôts et des retraits d’argent sur

un compte géré à distance

Objet distant de gestion du compte :

maintient le solde et ef

(25)

Java, CORBA et RMI  A. Le Grand,1997 25

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; }

(26)

Java, CORBA

et RMI

A. Le Grand,1997

26

Développement de l’objet serveur

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 distant

(27)

Java, CORBA et RMI  A. Le Grand,1997 27

Application serveur

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

(28)

Java, CORBA

et RMI

A. Le Grand,1997

28

Développement de l’applet cliente

Déclaration d’une référence sur un objet implantant l’interface

Af

fectation de cette référence à l’objet serveur déclaré dans le

référentiel d’implantation

(29)

Java, CORBA et RMI  A. Le Grand,1997 29

Applet cliente

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

(30)

Java, CORBA et RMI  A. Le Grand,1997 30

Compilation et déploiement

compilation

compilation des sources serveur et client (

javac

)

génération des souches (

rmic

)

déploiement

démarrer le référentiel d’implantation (

rmiregistry

)

lancer le programme serveur

(31)

Java, CORBA et RMI  A. Le Grand,1997 31

A

vantages de Java/RMI

clients Java serveur Java

technologie identique à Corba

pas d’IDL

: interface Java

ramasse-miettes distribué

téléchargement automatique des classes des arguments des

(32)

Java, CORBA

et RMI

A. Le Grand,1997

32

Java/RMI versus Java/Corba

programmation versus intégration

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 moment)

problème de réutilisation du code ancien

(33)

Java, CORBA et RMI  A. Le Grand,1997 33

Quelques pistes...

intégration de l'existant SGBD

--> JDBC (pilote sur le serveur ou sur le client)

programmes --> Corba

développement de nouvelles applications distribuées

critères de distribution des objets

RMI Corba

coté client

Références

Documents relatifs

(Au Québec, il y a actuelle- ment 46 ordres professionnels, le 46 e vient d'être créé, celui des criminologues. En France, il y en a à peine une quinzaine.) Il s’agissait donc

you have as yet done in your times of freedom, when the sun rise and set. At such times you go by my volition and not his [ ... Ces pouvoirs permettent au désir de connaissance

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Dans ces conditions, les écritures dont l’élève s’occupe ne sont pas pour lui « un dispositif pour l’évocation de pratiques donnant un sens à l’activité

Il s’agissait de former rapidement des ouvriers pour les industries d’armement, de faire face à l’explosion du chômage des jeunes et, à partir du régime de Vichy (10 juillet

Dans de nombreux pays, l’universitarisa- tion de la formation des enseignant.e.s a été motivée par le besoin de nourrir ce métier de savoirs issus des sciences de l’éducation,

Un sac circule dans les familles, contenant un album ou un conte bilingue français et langue familiale, une clé USB avec la version numérique du livre (avec capsules sons)

Comme l’illustrent les réflexions théoriques présentées, lire une BD historique convoque le recours à des stratégies et à des compétences qui touchent tout autant au