Chapitre 3

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 19

PROGRAMMATION REPARTIE

Licence informatique

Chapitre 3: Implémentation du RPC

Semestre 4

Par Vincent Manev


Développeur
Année académique: 2021-2022
Chapitre 3: Implémentation du RPC

Sommaire
I. Le RMI de java.

II. CORBA

1
I. Le RMI : java Remote Methode Invocation est un procéssus qui permet à un
objet java (appelé client) fonctionnant dans une machine virtuelle quelconque,
d’invoquer les methodes d’un autre objet java (appelé serveur) fonctionnant
dans une autre machine virtuelle java.

I.1. Rappel de quelques concepts en java et la programmation orientée objet

I.1.1. notion de classe : une classe est une entité qui encapsule les données et les
traitements. Les données sont les attributs et les traitements, les méthodes.

Exemple: la classe des Animaux

I.1.1. Déclaration d’une classe:

Soit une classe des chiens

public class Chiens{

3
dans cette classe, chaque chien est identifié par sa race, sa couleur, son sexe.
Chaque chien aboie, mange…..

D’où la declaration suivante;

public class Chiens{

private String race;

private String couleur; attributs (données)

Private String sexe

public Chiens(){ } //constructeur sans parametres

4
//constructeur avec parametres

public Chiens(String race, String couleur, String sexe ){

this.race = race;

this.couleur = couleur;

this.sexe = sexe;

public void aboyer(){

//implémentation

} méthodes (traitements)

public void manger(){

//implémentation

5
- Constructeur : constructeur est une méthode qui porte le même nom que
la classe et n’a pas de type de retour; il sert à instancier la classe.

Exemple:

1- Chiens chien1 = new Chiens(); //crée un objet chien1. les


valeurs de ses attributs sont nulls;

2- Chiens chien2 = new Chiens ("berger", "rouge", "femelle");


//crée un objet chien2 de race = berger, de couleur = rouge et de sexe=
femelle.

- Méthode: une méthode encapsule le comportement d’une classe. Sa


déclaration comporte une signature. La signature d’une méthode
comprends: sa visibilité, son type de retour, son nom, ses paramètres et
la levée possible d’exceptions.

6
Exemples:

public double additionner (double a, double b) throw Exception

Visibilité. type de retour. nom paramètres. levée d’exception.

public void aboyer()

visibilité. type de retour. nom de la méthode

N.B.: La méthode "aboyer" ne retourne aucune valeur, son type de


retour est void (vide). Elle ne lève non plus d’exceptions.

- Implémentation d’une méthode: implémenter une méthode consiste


à définir son traitement.

7
- instanciation: instancier une classe consiste à créer les instances (ou objets)
de cette classe à l’aide de l’opérateur "new".

I.1.2. Notion d’interface: en java, une interface est un contrat. C’est à dire un
fichier java dans lequel sont déclarées les méthodes à implémenter. Dans une
interface il doit pas y avoir une seule des méthodes implémentée (sauf les
méthodes statics). L’interface ne s’instancie jamais.

exemple: soit l’interface des opérations arithmétiques

public interface operations{

public void additionner(double a, double b) ; //fait l’addition de 2 nombres

public double multiplier(double a, double b);

public double diviser(double a, double b);

public double soustraire(double a, double b);}

8
- Implémentation d’une interface: l’implémentation d’une interface
par une classe s’exprime par le mot clé "implements". Une classe
qui implémente une interface doit apporter l’implémentation de
toutes les méthodes déclarées dans l’interface.

Exemple: la classe operationImpl implémente l’interface operations


de la manière suivante:

9
public class OperationImpl implements operations{
public double additionner(double a, double b){
return a+b: }
public double multiplier(double a, double b){
return a*b;}
public double soustraire(double a, double b){
return a-b;}
public double diviser(double a, double b){
return a/b;}
}

10
L’implémentation multiple est supporté en java, c’est-à-dire qu’une
classe peut implémenter plusieurs interfaces à la fois.

I.1.3. Notion d’héritage: L’héritage en java, est la faculté donnée à une


classe appelée classe fille, d’hériter les attributs et/ou les méthodes
d’une autre classe appelée, classe mère.

Pour exprimer l’héritage, on utilise le mot clé « extends » .

Par exemple pour exprimer qu’une classe B hérite de la classe A on


utilise la synthaxe suivante:

public class B extends class A{

////toute autres implementations

11
Contrairement à l’implémentation, l’héritage multiple n’est pas
supportée en java. Une classe ne peut hériter que d’une et une seule
super classe.

I.2. Mise en œuvre du RMI(Voir TP sur le RMI)

I.2.1. Avantages du RMI:


o Simple à mettre en œuvre;
o Une gestion fiable de la sécurité de communication.

I.2.3. Inconvénients du RMI


o contraintes de la plateforme JAVA: impossible d’interagir avec les objets
d’autres langages de programmation et technologies.
o RMI est plus lent que CORBA.

12
II- CORBA
II.1. Presentation
Une autre implémentation de RPC par approche à objets réparties est
CORBA.
Acronyme de Common Object Request Broker Architecture, CORBA
est une architecture logicielle pour le développement des composants et
d‘Object Request Brocker (ORB), assemblés afin de construire des
applications de types client/serveur, indépendamment du langage de
programmation, ni de plateforme d’exécution.
CORBA est une norme définie en 1992 par des constructeurs de matériel
informatique et des éditeurs de logiciels (Sun Microsystems, Oracle,
IBM…) regroupés au sein d’un consortium nommé Object Management
Group (OMG) pour des besoins d’interopérabilité en vue de faire face
aux multitudes des technologies de développement, langages de
programmation et des plateformes disponibles sur le marché.

13
CORBA
OMG est un consortium international créé en 1989
regroupant plus de 460 organismes chargés d’études et mise en place
des standard basés sur des composants objets.

OMG a défini à nos jours plusieurs spécifications comme:

✓ OMA (Object Management Architecture) pour l’architecture


logicielle;

✓ CORBA pour le middleware technique;


✓ Unified Modeling Language (UML) pour la modélisation;
✓ Etc……

14
CORBA
Depuis la version 1.2, CORBA a définie une Interface Définition Langage (IDL) et
les API (Application Programming Interface) qui permettent l'interaction des objets
client-serveur, à l'aide d’un middleware appelé ORB, qui établit la relation client-
serveur entre des objets.

II.2. Object Request Brocker (ORB)


CORBA représente la spécification de l'ORB (Object Request Broker), qui
est l'entité principale par laquelle toutes les commandes vont transiter, ou vont être
adressées.

En utilisant un ORB, un client peut de façon transparente invoquer une


méthode sur un objet serveur, qui peut être sur la même machine ou, au travers d'un
réseau, sur une machine distante.

L'ORB est responsable de trouver l'objet qui implémente cette requête, de


lui passer les paramètres, puis d'invoquer la méthode, et enfin de retourner le
résultat. 15
CORBA
Le client n'a pas besoin d'être au courant de la localisation de
l'objet, ni du langage dans lequel il a été développé, ni du système
d'exploitation, ni encore d'un quelconque aspect qui n'apparait pas dans
l'interface de l'objet.
En faisant cela, l'ORB fournit l'interopérabilité entre des
applications situées sur différentes machines dans un environnement
distribué hétérogène, et interconnecte des systèmes d'objets multiples.
Dans une application client-serveur traditionnelle, le programmeur
est contraint d’établir ses propres protocoles de communication entre ses
applications et doit prendre en compte tous les paramètres d’intervention :
✓ langage de programmation,
✓ communication entre les différentes applications,
✓ protocole réseau.

16
CORBA
L'ORB simplifie toutes ces paramètres. Le protocole est définit au travers
de l'interface d'application à l'aide d'une seule spécification d'implémentation
indépendante du langage : l'IDL.

B. Interface Définition Langage

Développer des applications distribuées flexibles sur des plateformes


hétérogènes nécessite une séparation stricte interface/implémentation(s). IDL aide
à accomplir cette séparation.

En effet, IDL est un langage de définition d'interface orienté objet. Il


définit les types des objets en spécifiant leurs interfaces. Une interface consiste en
un jeu d'opérations et de paramètres pour ces opérations.

IDL est le moyen par lequel une implémentation d'un objet indique à ses
clients potentiels quelles opérations sont disponibles et comment elles doivent être
invoquées.

Un compilateur IDL génère des stubs client et des skeletons serveurs.


Ceux-ci automatisent les actions suivantes (en conjonction avec l'ORB):
17
CORBA
II.3. Avantages et inconvénients de CORBA
II.3.1. Avantages :
- CORBA est un standard industriel,
- Indépendances des langages de programmation et plateformes;
- Il est plus rapide que le RMI
II.3.2. Inconvénients:
- lourd à mettre en place

- comme chez RMI, le problème des firewalls se pose toujours

18
FIN

Vous aimerez peut-être aussi