SlideShare une entreprise Scribd logo
1  sur  16
Remote Method Invocation
(RMI)
Elaboré par
Mouelhi Maher
Kaabi Ahmed
MP1-DAM
2013-2014
ISET Radès :
Master en développement d'applications mobiles
Plan
• Introduction
• Partie théorique :
- Origine et Objectifs
- Principes
- Architecture générale
- Architecture interne
- Services
- Echange Client Serveur
• Partie Pratique :
- RMI en pratique
- Démonstration (exemple)
• Conclusion
2
Introduction
Invocation de méthodes à distance:
• Mécanisme qui permet à des objets localisés sur des
machines distantes de s’échanger des messages
(invoquer des méthodes).
Semble simple en théorie...
Mais un peu plus complexe en réalité !!! 3
Partie théorique
RMI : Origine et Objectifs
• Solution (SUN) pour adapter le principe des RPC à la
POO (à partir du JDK 1.1).
• Rendre transparent la manipulation d'objets situés
dans un autre espace d'adressage
• Les appels doivent être transparents que l'objet soit
local ou distant.
• Java RMI permet au programmeur d’exécuter une
méthode distante de la même façon (ou presque)
qu’une méthode locale.
5
RMI : principes
• Outils pour :
– la génération des stub/skeleton,
– l ’enregistrement par le nom,
– l ’activation
• Mono-langage et Multiplateforme: de JVM à JVM (les
données et objets ont la même représentation qqs la JVM)
• Orienté Objet : Les RMIs utilisent le mécanisme standard de
sérialisation de JAVA pour l ’envoi d ’objets.
• Dynamique : Les classes des Stubs et des paramètres peuvent
être chargées dynamiquement via HTTP (http://) ou NFS (file:/)
• Sécurité : un SecurityManager vérifie si certaines opérations
sont autorisés par le serveur
6
Architecture RMI générale
• Le serveur doit d’abord
enregistrer (bind) son nom dans
l’annuaire (Registry)
• Le client récupère les
références du serveur à partir
de son nom auprès de
l’annuaire (lookup).
• La souche (stub) sérialise les
paramètres, l’envoie au
squelette (skeleton) qui invoque
la méthode sur le serveur et
retourne les résultats auprès de
la souche.
7
Architecture interne de RMI (logique)
8
- Souche/squelette : encode/décode les paramètres des méthodes
- Gestionnaire de références : associe les mandataires (Remote) aux références
distantes + ramasse-miettes réparti
- Message : définit la structure des messages, leurs identifiants et l’interaction
requête/réponse
- Transport : transporte un message entre deux machines virtuelles Java
RMI: Services
• Service de résolution de noms (Nommage):
Permet d’enregistrer un Remote sous un nom symbolique
• Service d’activation d’objets:
Permet de n’activer des objets que quand ils sont utilisés
• Ramasse-miettes réparti :
récupération des ressources mémoires inutilisées
9
Echange Client Serveur
• Le client appelle une méthode sur
un OD
• Il appelle une méthode du stub
• Le stub construit un bloc de
données avec
– un identificateur de l’objet distant à
utilise
– une description de la méthode à
appeler
– les paramètres encodés qui doivent
être passés
• Le stub envoie ce bloc de données
au serveur...
• Lorsque un objet de réception
reçoit les données
• Le Squeleton effectue les actions
suivantes :
– décode les paramètres encodés
– situe l ’objet à appeler
– invoque la méthode spécifiée
– capture et encode la valeur de
retour ou l ’exception renvoyée par
l ’appel
– Puis le retourne au client
– ………
10
Partie pratique
Etapes pour développer un système RMI
1. Définir l’interface distante
2. Implémenter l’interface distante
3. Implémenter le client
4. Compiler les fichiers Java
5. Générer le stub du client et le skeleton du serveur
6. Démarrer le serveur d’annuaire (RMI registry)
7. Démarrer le serveur
8. Démarrer le client
12
Démo
Conclusion
• RMI est un puissant mécanisme de
distribution d'objet.
• Implantations alternatives à Java RMI
(open-source)
- NinjaRMI (Berkeley)
- Jeremie (ObjectWeb)
14
Bibliographie
• Cours : Architecture client/serveur
Programmation middleware - Dr. Dimassi J. (ISI)
• Cours: Invocation de Méthode à des Objets
distants Exemple : Java RMI
• Cours: Architecture client-serveur Java RMI
• Cours: Java RMI - Gaël Thomas - Master
Informatique M1 – Spécialité SAR
15
Merci

16

Contenu connexe

Tendances

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
 
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
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiENSET, Université Hassan II Casablanca
 
Marzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcabderrahim marzouk
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...ENSET, Université Hassan II Casablanca
 

Tendances (20)

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
 
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 ...
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Struts
StrutsStruts
Struts
 
Marzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvc
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Support distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcastSupport distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcast
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 

Similaire à Remote method invocation

Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de baseMariem ZAOUALI
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaMariem ZAOUALI
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMIKorteby Farouk
 
applications-reparties
applications-repartiesapplications-reparties
applications-repartiesmourad50
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Olivier Le Goaër
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlinangeeLee
 
Dw731 g formation-ibm-infosphere-streams-v3-administration
Dw731 g formation-ibm-infosphere-streams-v3-administrationDw731 g formation-ibm-infosphere-streams-v3-administration
Dw731 g formation-ibm-infosphere-streams-v3-administrationCERTyou Formation
 
Javav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservicesJavav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservicesCERTyou Formation
 
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
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Drupal 8, symfony
Drupal 8, symfonyDrupal 8, symfony
Drupal 8, symfonyjeUXdiCode
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures repartiesMariem ZAOUALI
 

Similaire à Remote method invocation (20)

Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de base
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corba
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMI
 
JavaRMI.pdf
JavaRMI.pdfJavaRMI.pdf
JavaRMI.pdf
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !
 
rmi.pdf
rmi.pdfrmi.pdf
rmi.pdf
 
Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
Rails 3 au Djangocong
Rails 3 au DjangocongRails 3 au Djangocong
Rails 3 au Djangocong
 
IF-RMI.pdf
IF-RMI.pdfIF-RMI.pdf
IF-RMI.pdf
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
 
Dw731 g formation-ibm-infosphere-streams-v3-administration
Dw731 g formation-ibm-infosphere-streams-v3-administrationDw731 g formation-ibm-infosphere-streams-v3-administration
Dw731 g formation-ibm-infosphere-streams-v3-administration
 
Javav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservicesJavav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservices
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
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
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Drupal 8, symfony
Drupal 8, symfonyDrupal 8, symfony
Drupal 8, symfony
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures reparties
 
spring.pdf
spring.pdfspring.pdf
spring.pdf
 

Plus de Institut supérieur des études technologiques de Radès (9)

Hadoop
HadoopHadoop
Hadoop
 
Base des données réparties
Base des données répartiesBase des données réparties
Base des données réparties
 
Web services
Web servicesWeb services
Web services
 
RIA
RIARIA
RIA
 
Architecture .NET
Architecture .NETArchitecture .NET
Architecture .NET
 
Middleware
MiddlewareMiddleware
Middleware
 
Mécanismes de sécurité(ios & android)
Mécanismes de sécurité(ios & android)Mécanismes de sécurité(ios & android)
Mécanismes de sécurité(ios & android)
 
Interface Definition Language
Interface Definition Language Interface Definition Language
Interface Definition Language
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 

Remote method invocation

  • 1. Remote Method Invocation (RMI) Elaboré par Mouelhi Maher Kaabi Ahmed MP1-DAM 2013-2014 ISET Radès : Master en développement d'applications mobiles
  • 2. Plan • Introduction • Partie théorique : - Origine et Objectifs - Principes - Architecture générale - Architecture interne - Services - Echange Client Serveur • Partie Pratique : - RMI en pratique - Démonstration (exemple) • Conclusion 2
  • 3. Introduction Invocation de méthodes à distance: • Mécanisme qui permet à des objets localisés sur des machines distantes de s’échanger des messages (invoquer des méthodes). Semble simple en théorie... Mais un peu plus complexe en réalité !!! 3
  • 5. RMI : Origine et Objectifs • Solution (SUN) pour adapter le principe des RPC à la POO (à partir du JDK 1.1). • Rendre transparent la manipulation d'objets situés dans un autre espace d'adressage • Les appels doivent être transparents que l'objet soit local ou distant. • Java RMI permet au programmeur d’exécuter une méthode distante de la même façon (ou presque) qu’une méthode locale. 5
  • 6. RMI : principes • Outils pour : – la génération des stub/skeleton, – l ’enregistrement par le nom, – l ’activation • Mono-langage et Multiplateforme: de JVM à JVM (les données et objets ont la même représentation qqs la JVM) • Orienté Objet : Les RMIs utilisent le mécanisme standard de sérialisation de JAVA pour l ’envoi d ’objets. • Dynamique : Les classes des Stubs et des paramètres peuvent être chargées dynamiquement via HTTP (http://) ou NFS (file:/) • Sécurité : un SecurityManager vérifie si certaines opérations sont autorisés par le serveur 6
  • 7. Architecture RMI générale • Le serveur doit d’abord enregistrer (bind) son nom dans l’annuaire (Registry) • Le client récupère les références du serveur à partir de son nom auprès de l’annuaire (lookup). • La souche (stub) sérialise les paramètres, l’envoie au squelette (skeleton) qui invoque la méthode sur le serveur et retourne les résultats auprès de la souche. 7
  • 8. Architecture interne de RMI (logique) 8 - Souche/squelette : encode/décode les paramètres des méthodes - Gestionnaire de références : associe les mandataires (Remote) aux références distantes + ramasse-miettes réparti - Message : définit la structure des messages, leurs identifiants et l’interaction requête/réponse - Transport : transporte un message entre deux machines virtuelles Java
  • 9. RMI: Services • Service de résolution de noms (Nommage): Permet d’enregistrer un Remote sous un nom symbolique • Service d’activation d’objets: Permet de n’activer des objets que quand ils sont utilisés • Ramasse-miettes réparti : récupération des ressources mémoires inutilisées 9
  • 10. Echange Client Serveur • Le client appelle une méthode sur un OD • Il appelle une méthode du stub • Le stub construit un bloc de données avec – un identificateur de l’objet distant à utilise – une description de la méthode à appeler – les paramètres encodés qui doivent être passés • Le stub envoie ce bloc de données au serveur... • Lorsque un objet de réception reçoit les données • Le Squeleton effectue les actions suivantes : – décode les paramètres encodés – situe l ’objet à appeler – invoque la méthode spécifiée – capture et encode la valeur de retour ou l ’exception renvoyée par l ’appel – Puis le retourne au client – ……… 10
  • 12. Etapes pour développer un système RMI 1. Définir l’interface distante 2. Implémenter l’interface distante 3. Implémenter le client 4. Compiler les fichiers Java 5. Générer le stub du client et le skeleton du serveur 6. Démarrer le serveur d’annuaire (RMI registry) 7. Démarrer le serveur 8. Démarrer le client 12
  • 13. Démo
  • 14. Conclusion • RMI est un puissant mécanisme de distribution d'objet. • Implantations alternatives à Java RMI (open-source) - NinjaRMI (Berkeley) - Jeremie (ObjectWeb) 14
  • 15. Bibliographie • Cours : Architecture client/serveur Programmation middleware - Dr. Dimassi J. (ISI) • Cours: Invocation de Méthode à des Objets distants Exemple : Java RMI • Cours: Architecture client-serveur Java RMI • Cours: Java RMI - Gaël Thomas - Master Informatique M1 – Spécialité SAR 15