SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
APPLICATIONS RÉPARTIES
CHAPITRE 3 : OBJETS RÉPARTIS
RMI/CORBA
Mariem ZAOUALI
Les principes de base
TP 1: Design Patterns appliqués
aux systèmes distribués
01
Architectures réparties: du
client/serveur au Cloud
Computing
02
Objets répartis :
RMI/CORBA
TP 2: RMI
03
Intergiciels orientés
messages : JMS
TP 3: JMS
04
05
06
Plan du module
2
07
Frameworks Labs :
Spring et ASP
TP 4 : Architecture micro-
services
Architecture micro-
services : Spring et ASP
(Exposés)
Architecture
microservices: Spring
et ASP (Exposés)
Plan du cours
Motivation01
RMI02
03
3
Au-delà de RMI
MOTIVATION
Your Date Here Your Footer Here
1
4
MOTIVATION
•Dire une application -> ensemble d’objets conçus
pour travailler en collaboration.
•Dans une application objet répartie, les objets
résident :
• Sur différents ordinateurs connectés via un réseau.
• Dans différents processus sur la même machine.
Your Date Here Your Footer Here 5
MOTIVATION
•L’intérêt principal d’objet réparti?
• Un objet distant reste accessible de la même
manière qu’un objet local du système par invocation
de méthodes
• On ne sait pas où se trouve l’objet qu’on travaille avec
!
Your Date Here Your Footer Here 6
MOTIVATION
•En POO, on travaille
avec les variables.
•La variable ne stocke
pas l’objet lui-même,
elle contient une
référence mémoire qui
pointe vers l’objet
(faites un sysout d’un
objet)
Your Date Here Your Footer Here 7
MOTIVATION
•Et si on veut
travailler avec un
objet distant
depuis notre
machine locale?
• Penser à résoudre
le problèmes des
espaces
d’adressage
distncts
Your Date Here Your Footer Here 8
Objet distant
Objet distant non
reconnu en local
Motivation
•Les solutions possibles
• Passage par valeur de l’objet lui-même (comme le
constructeur de recopie en C++)
• Bonne solution?
• La copie crée un objet complètement indépendant
• Mêmes attributs et valeurs : OUI, mais les deux objets
(original et copie) sont disjoints
• Changement au niveau du l’objet original, la copie ne
change pas
• Parfois, cette procédure de copie est souhaitable
Your Date Here Your Footer Here 9
Motivation
•L’objet réparti est manipulable simultanément
par plusieurs clients (en local) bien que situé à
distance
•On utilise le « proxy »
•Le client croit posséder l’objet en local
•Le proxy utilise un protocole pour se synchroniser
avec l’objet distant
Your Date Here Your Footer Here 10
Motivation
Your Date Here Your Footer Here 11
Motivation
Your Date Here Your Footer Here 12
RMI
Your Date Here Your Footer Here
1
13
Définition de RMI
•RMI est une implémentation de RPC par SUN
pour le langage Java
•Grâce à RMI, on a intégré la notion objet dans les
communications inter-processus
•RMI = Remote Method Invocation
Your Date Here Your Footer Here 14
Objets répartis en RMI
• RMI permet la création d’objets répartis: un objet
RMI est interrogeable à distance par plusieurs
clients simultanément.
•Les clients d’un même objet RMI distant ont
l’impression de disposer de l’objet en local
• Un stub est un objet coté client qui gère l’encodage et
le désencodage des données.
• Un skeleton est un objet coté serveur qui gère
l’encodage et le désencodage des données lors de la
réception d’un appel à un objet RMI.
Your Date Here Your Footer Here 15
Objets répartis en RMI
Your Date Here Your Footer Here 16
Objets répartis en RMI
Transmission des données
Your Date Here Your Footer Here 17
•Les objets ne sont pas transmises de la même
façons entre le client serveur
Type Méthode de transmission
Types simples (int, float…) la transmission est effectuée par valeur
Les objets locaux (non RMI) implémentants
java.io.Serializable
la
transmission est effectue par valeur (sérialisation
java).
Les objets RMI implémentant java.rmi.Remote
la transmission est
effectuée par référence (via les stubs et
skeletons).
Dans les autres cas, une exception
java.rmi.MarshalException est levée.
Modèle de programmation
Ecriture d’une application RMI
• On procède par étapes:
• 1. Déclaration des services accessibles à distance
→ Ecriture d’une interface distante
• 2. Définition du code des services
→ Ecriture d’une classe d’objet serveur implantant l’interface
• 3. Instanciation et enregistrement de l’objet serveur
→ Ecriture du programme serveur
4. Interaction avec l’objet serveur
• → Ecriture du programme client
Your Date Here Your Footer Here 18
Modèle de programmation
Ecriture d’une interface distante
Your Date Here Your Footer Here 19
Modèle de programmation
Ecriture d’une classe implémentant l’interface
distante
Your Date Here Your Footer Here 20
Les constructeurs doivent lever une
exception java.rmi.RemoteException
la classe doit étendre
java.rmi.server.UnicastRemoteObject,
ce qui facilitera le déploiement de l’objet serveur dans le
runtime RMI
Modèle de programmation
Génération des stubs
•Manipulation non nécessaire si les JVM de
l’architecture répartie sont >= v1.5.0
•Sinon, lancer rmic
Your Date Here Your Footer Here 21
Modèle de programmation
Ecriture du programme serveur
Your Date Here Your Footer Here 22
Modèle de programmation
Ecriture du programme client
Your Date Here Your Footer Here 23
Live demo RMI
•Code disponible sur mon github!
MariemZaouali/java-rmi-example
Your Date Here Your Footer Here 24
AU DELÀ DE RMI
Your Date Here Your Footer Here
2
25
Services offerts par RMI
Your Date Here Your Footer Here 26
•RMI est considéré comme un intergiciel (middleware)
relativement basique
•Les services qu’il fournit aux objets répartis sont
assez primitifs, mais néanmoins nécessaires.
•3 services complémentaires de RMI:
•Service de nommage (rmiregistry)
• Service d’activation d’objets à la demande
• Service de Garbage Collector (gestion de la mémoire)
Limites de RMI
Your Date Here Your Footer Here 27
•Le protocole de transport utilisé par défaut par
RMI est JRMP (Java Remote Method Protocol)
construit au dessus de TCP.
• Mais ce protocole ne permet la communication
qu’entre objets répartis RMI implémentés en Java.
• Il existe un autre protocole de transport nommé
RMI/IIOP
CORBA
Your Date Here Your Footer Here 28
•CORBA correspond à un autre type de middleware à
objets répartis qui n’est pas spécifiquement lié au
monde Java.
•RMI/IIOP correspond à la fusion du modèle simple de
programmation RMI avec le protocole robuste IIOP
(protocole pour communiquer avec des objets
CORBA).
•L’utilisation de l’implémentation d’IIOP avec RMI en
lieu et place de JRMP permet d’obtenir un certain
niveau d’intéropérabilité entre RMI et CORBA
Le protocole RMI/IIOP
Your Date Here Your Footer Here 29
• Pour accéder à tous types
d’objets répartis compatibles
IIOP on n’utilise plus directement
le service de nommage de RMI
mais on passe par JNDI (Java
Naming and Directory Interface):
• Ce n’est pas un service mais un
ensemble d’interfaces (une API
Java).
• Cette API permet d’unifier l’accès
à différents serveurs de noms
(dont le RMI registry et le
registry CORBA).
THANK YOU!
Do you have any questions?
30

Contenu connexe

Tendances

eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesLilia Sfaxi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
JNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory InterfacesJNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory Interfacesbenouini rachid
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartisHeithem Abbes
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREGhizlane ALOZADE
 
Introduction aux web services
Introduction aux web servicesIntroduction aux web services
Introduction aux web servicesmohammed addoumi
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Nawres Farhat
 
Rapport application chat
Rapport application chatRapport application chat
Rapport application chatTbatou sanae
 

Tendances (20)

eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
Sockets
SocketsSockets
Sockets
 
Formation1 sockets
Formation1 socketsFormation1 sockets
Formation1 sockets
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Gestion comptes bancaires Spring boot
Gestion comptes bancaires Spring bootGestion comptes bancaires Spring boot
Gestion comptes bancaires Spring boot
 
JNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory InterfacesJNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory Interfaces
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIRE
 
Introduction aux web services
Introduction aux web servicesIntroduction aux web services
Introduction aux web services
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
 
Rapport application chat
Rapport application chatRapport application chat
Rapport application chat
 

Similaire à Cours 3 les objets distants rmi corba

applications-reparties
applications-repartiesapplications-reparties
applications-repartiesmourad50
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de baseMariem ZAOUALI
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI JavaZakaria Bouazza
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMIKorteby Farouk
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlinangeeLee
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
intro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdfintro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdfCoumbaLaobNdiaye1
 
Architecture sap web AS
Architecture sap web ASArchitecture sap web AS
Architecture sap web ASMrabtei Ayoub
 
Architecture SAP Web AS
Architecture SAP Web ASArchitecture SAP Web AS
Architecture SAP Web ASMrabtei Ayoub
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 

Similaire à Cours 3 les objets distants rmi corba (20)

Remote method invocation
Remote method invocationRemote method invocation
Remote method invocation
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de base
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI Java
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMI
 
CORBA.pdf
CORBA.pdfCORBA.pdf
CORBA.pdf
 
JavaRMI.pdf
JavaRMI.pdfJavaRMI.pdf
JavaRMI.pdf
 
Design Pattern JEE
Design Pattern JEEDesign Pattern JEE
Design Pattern JEE
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
 
cours6.pdf
cours6.pdfcours6.pdf
cours6.pdf
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
intro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdfintro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdf
 
Middleware
MiddlewareMiddleware
Middleware
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
 
Architecture sap web AS
Architecture sap web ASArchitecture sap web AS
Architecture sap web AS
 
Architecture SAP Web AS
Architecture SAP Web ASArchitecture SAP Web AS
Architecture SAP Web AS
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 

Plus de Mariem ZAOUALI

Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonMariem ZAOUALI
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Mariem ZAOUALI
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numériqueMariem ZAOUALI
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en pythonMariem ZAOUALI
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en pythonMariem ZAOUALI
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en pythonMariem ZAOUALI
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à pythonMariem ZAOUALI
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliquesMariem ZAOUALI
 
TP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabTP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabMariem ZAOUALI
 
Comment retrouver la forme récursive
Comment retrouver la forme récursiveComment retrouver la forme récursive
Comment retrouver la forme récursiveMariem ZAOUALI
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Mariem ZAOUALI
 

Plus de Mariem ZAOUALI (16)

Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en python
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliques
 
TP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabTP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec Matlab
 
Comment retrouver la forme récursive
Comment retrouver la forme récursiveComment retrouver la forme récursive
Comment retrouver la forme récursive
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / Tunisie
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / Tunisie
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / Tunisie
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / Tunisie
 
Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia
 

Dernier

Compersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huileCompersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huileMBouderbala
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...idelewebmestre
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsidelewebmestre
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsidelewebmestre
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineidelewebmestre
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresidelewebmestre
 
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueBOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueidelewebmestre
 
BOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcinBOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcinidelewebmestre
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLidelewebmestre
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...idelewebmestre
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesPierreFournier32
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...idelewebmestre
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcsidelewebmestre
 
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la NièvreAccompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la Nièvreidelewebmestre
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsidelewebmestre
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pasBOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pasidelewebmestre
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...idelewebmestre
 

Dernier (20)

Compersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huileCompersseur d'air a vis atlas copco avec huile
Compersseur d'air a vis atlas copco avec huile
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminants
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
 
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueBOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
 
BOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcinBOW 2024 - Le bâtiment multicritère porcin
BOW 2024 - Le bâtiment multicritère porcin
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pages
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
 
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la NièvreAccompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
 
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcinsBOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
BOW 24 - De la réflexion de groupe à l'immersion dans des bâtiments porcins
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pasBOW 2024 - Dedans/Dehors quand voir ne suffit pas
BOW 2024 - Dedans/Dehors quand voir ne suffit pas
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
 

Cours 3 les objets distants rmi corba

  • 1. APPLICATIONS RÉPARTIES CHAPITRE 3 : OBJETS RÉPARTIS RMI/CORBA Mariem ZAOUALI
  • 2. Les principes de base TP 1: Design Patterns appliqués aux systèmes distribués 01 Architectures réparties: du client/serveur au Cloud Computing 02 Objets répartis : RMI/CORBA TP 2: RMI 03 Intergiciels orientés messages : JMS TP 3: JMS 04 05 06 Plan du module 2 07 Frameworks Labs : Spring et ASP TP 4 : Architecture micro- services Architecture micro- services : Spring et ASP (Exposés) Architecture microservices: Spring et ASP (Exposés)
  • 4. MOTIVATION Your Date Here Your Footer Here 1 4
  • 5. MOTIVATION •Dire une application -> ensemble d’objets conçus pour travailler en collaboration. •Dans une application objet répartie, les objets résident : • Sur différents ordinateurs connectés via un réseau. • Dans différents processus sur la même machine. Your Date Here Your Footer Here 5
  • 6. MOTIVATION •L’intérêt principal d’objet réparti? • Un objet distant reste accessible de la même manière qu’un objet local du système par invocation de méthodes • On ne sait pas où se trouve l’objet qu’on travaille avec ! Your Date Here Your Footer Here 6
  • 7. MOTIVATION •En POO, on travaille avec les variables. •La variable ne stocke pas l’objet lui-même, elle contient une référence mémoire qui pointe vers l’objet (faites un sysout d’un objet) Your Date Here Your Footer Here 7
  • 8. MOTIVATION •Et si on veut travailler avec un objet distant depuis notre machine locale? • Penser à résoudre le problèmes des espaces d’adressage distncts Your Date Here Your Footer Here 8 Objet distant Objet distant non reconnu en local
  • 9. Motivation •Les solutions possibles • Passage par valeur de l’objet lui-même (comme le constructeur de recopie en C++) • Bonne solution? • La copie crée un objet complètement indépendant • Mêmes attributs et valeurs : OUI, mais les deux objets (original et copie) sont disjoints • Changement au niveau du l’objet original, la copie ne change pas • Parfois, cette procédure de copie est souhaitable Your Date Here Your Footer Here 9
  • 10. Motivation •L’objet réparti est manipulable simultanément par plusieurs clients (en local) bien que situé à distance •On utilise le « proxy » •Le client croit posséder l’objet en local •Le proxy utilise un protocole pour se synchroniser avec l’objet distant Your Date Here Your Footer Here 10
  • 11. Motivation Your Date Here Your Footer Here 11
  • 12. Motivation Your Date Here Your Footer Here 12
  • 13. RMI Your Date Here Your Footer Here 1 13
  • 14. Définition de RMI •RMI est une implémentation de RPC par SUN pour le langage Java •Grâce à RMI, on a intégré la notion objet dans les communications inter-processus •RMI = Remote Method Invocation Your Date Here Your Footer Here 14
  • 15. Objets répartis en RMI • RMI permet la création d’objets répartis: un objet RMI est interrogeable à distance par plusieurs clients simultanément. •Les clients d’un même objet RMI distant ont l’impression de disposer de l’objet en local • Un stub est un objet coté client qui gère l’encodage et le désencodage des données. • Un skeleton est un objet coté serveur qui gère l’encodage et le désencodage des données lors de la réception d’un appel à un objet RMI. Your Date Here Your Footer Here 15
  • 16. Objets répartis en RMI Your Date Here Your Footer Here 16
  • 17. Objets répartis en RMI Transmission des données Your Date Here Your Footer Here 17 •Les objets ne sont pas transmises de la même façons entre le client serveur Type Méthode de transmission Types simples (int, float…) la transmission est effectuée par valeur Les objets locaux (non RMI) implémentants java.io.Serializable la transmission est effectue par valeur (sérialisation java). Les objets RMI implémentant java.rmi.Remote la transmission est effectuée par référence (via les stubs et skeletons). Dans les autres cas, une exception java.rmi.MarshalException est levée.
  • 18. Modèle de programmation Ecriture d’une application RMI • On procède par étapes: • 1. Déclaration des services accessibles à distance → Ecriture d’une interface distante • 2. Définition du code des services → Ecriture d’une classe d’objet serveur implantant l’interface • 3. Instanciation et enregistrement de l’objet serveur → Ecriture du programme serveur 4. Interaction avec l’objet serveur • → Ecriture du programme client Your Date Here Your Footer Here 18
  • 19. Modèle de programmation Ecriture d’une interface distante Your Date Here Your Footer Here 19
  • 20. Modèle de programmation Ecriture d’une classe implémentant l’interface distante Your Date Here Your Footer Here 20 Les constructeurs doivent lever une exception java.rmi.RemoteException la classe doit étendre java.rmi.server.UnicastRemoteObject, ce qui facilitera le déploiement de l’objet serveur dans le runtime RMI
  • 21. Modèle de programmation Génération des stubs •Manipulation non nécessaire si les JVM de l’architecture répartie sont >= v1.5.0 •Sinon, lancer rmic Your Date Here Your Footer Here 21
  • 22. Modèle de programmation Ecriture du programme serveur Your Date Here Your Footer Here 22
  • 23. Modèle de programmation Ecriture du programme client Your Date Here Your Footer Here 23
  • 24. Live demo RMI •Code disponible sur mon github! MariemZaouali/java-rmi-example Your Date Here Your Footer Here 24
  • 25. AU DELÀ DE RMI Your Date Here Your Footer Here 2 25
  • 26. Services offerts par RMI Your Date Here Your Footer Here 26 •RMI est considéré comme un intergiciel (middleware) relativement basique •Les services qu’il fournit aux objets répartis sont assez primitifs, mais néanmoins nécessaires. •3 services complémentaires de RMI: •Service de nommage (rmiregistry) • Service d’activation d’objets à la demande • Service de Garbage Collector (gestion de la mémoire)
  • 27. Limites de RMI Your Date Here Your Footer Here 27 •Le protocole de transport utilisé par défaut par RMI est JRMP (Java Remote Method Protocol) construit au dessus de TCP. • Mais ce protocole ne permet la communication qu’entre objets répartis RMI implémentés en Java. • Il existe un autre protocole de transport nommé RMI/IIOP
  • 28. CORBA Your Date Here Your Footer Here 28 •CORBA correspond à un autre type de middleware à objets répartis qui n’est pas spécifiquement lié au monde Java. •RMI/IIOP correspond à la fusion du modèle simple de programmation RMI avec le protocole robuste IIOP (protocole pour communiquer avec des objets CORBA). •L’utilisation de l’implémentation d’IIOP avec RMI en lieu et place de JRMP permet d’obtenir un certain niveau d’intéropérabilité entre RMI et CORBA
  • 29. Le protocole RMI/IIOP Your Date Here Your Footer Here 29 • Pour accéder à tous types d’objets répartis compatibles IIOP on n’utilise plus directement le service de nommage de RMI mais on passe par JNDI (Java Naming and Directory Interface): • Ce n’est pas un service mais un ensemble d’interfaces (une API Java). • Cette API permet d’unifier l’accès à différents serveurs de noms (dont le RMI registry et le registry CORBA).
  • 30. THANK YOU! Do you have any questions? 30