Programmation par RPC et Java-RMI :

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "Programmation par RPC et Java-RMI :"

Transcription

1 2A-SI - Réseaux : Programmation par RPC et JavaRMI Stéphane Vialle Programmation par RPC et Java-RMI : - Principes des RPC - Utilisation d un IDL - Principes des Java-RMI - Mode opératoire des Java-RMI - Hiérarchie de classes Java - Exemple de client-serveur en Java-RMI - RMI entre plusieurs serveurs 1

2 Principes des RPC RPC = «Remote Procedure Call» Objectif : appels locaux et distants avec la même syntaxe 1ère version : Birrel & Nelson en 1984 L utilisateur écrit toute l application : le client, le serveur et les mécanismes d envoi et de réception de messages!! Concepts simples, mais complexes à mettre en œuvre Peu utilisé SUN RPC en 1988 Plus simple, Utilise «rpcgen» : génère une partie des fichiers de RPC Utilise le DNS (localisation du serveur : adresse IP) + Portmap (localisation du service : # port) Principes des RPC Appel Service RPC (talon) Protocole de communication 1 Réseau Service RPC Protocole de (talon) communication 2 appel Appelé 3 5 retour 4 retour Client (appelant) Serveur (appelé) 2

3 Principes des RPC Talon client : stub C est la procédure d interface du site client qui reçoit l appel en mode local le transforme en appel distant en envoyant un message reçoit les résultats après l'exécution retourne les paramètres résultats comme dans un retour de procédure Talon serveur : skeleton C est la procédure sur le site serveur qui reçoit l appel sous forme de message fait réaliser l exécution sur le site serveur par la procédure serveur (choix de la procédure) retransmet les résultats par message Programmation par RPC et Java-RMI : - Principes des RPC - Utilisation d un IDL - Principes des Java-RMI - Mode opératoire des Java-RMI - Hiérarchie de classes Java - Exemple de client-serveur en Java-RMI - RMI entre plusieurs serveurs 3

4 Utilisation d un IDL Un langage pour la spécification des interfaces entre les clients et les serveurs : Spécification commune au client et au serveur Le «contrat» entre le client et le serveur Définition des types et natures des paramètres IN, OUT, IN-OUT, par valeur, par référence Définition indépendante de la plate-forme Indépendante du langage, de l OS et de la machine Utilisation de ces définitions pour générer automatiquement : Le talon client (ou proxy, ou stub) Le talon serveur (ou squelette, ou skeleton) «projection» dans un langage de programmation Utilisation d un IDL Interface écrite en «IDL» Client Compilateur IDL Serveur Talon coté client (Stub) Talon coté Serveur (Skeleton) Protocole de communication Réseau Protocole de communication 4

5 Programmation par RPC et Java-RMI : - Principes des RPC - Utilisation d un IDL - Principes des Java-RMI - Mode opératoire des Java-RMI - Hiérarchie de classes Java - Exemple de client-serveur en Java-RMI - RMI entre plusieurs serveurs Principes des Java-RMI Un RPC objet intégré à Java Interaction d'objets situés dans des espaces d'adressage différents sur des machines distinctes Simple à mettre en œuvre : un objet distribué se manipule comme tout autre objet Java Différences RPC/RMI : Il existe un module de localisation sur le host-serveur distant (la rmiregistry) : localisation de chaque objet-serveur. Les RMI sont plus vulnérables aux pannes: impossible de distinguer le cas de panne du serveur d un problème réseau (moins de détails dans les CR d erreurs). Les interfaces (contrats) sont des interfaces Java L IDL est Java lui-même 5

6 Principes des Java-RMI objet client objet serveur référence appel Talon client Talon serveur état méthode_1() méthode_n() Système de communication Référence d'objet + méthode + arguments Résultat ou exception désignation envoi de requêtes exécution de requête retour de résultat Programmation par RPC et Java-RMI : - Principes des RPC - Utilisation d un IDL - Principes des Java-RMI - Mode opératoire des Java-RMI - Hiérarchie de classes Java - Exemple de client-serveur en Java-RMI - RMI entre plusieurs serveurs 6

7 Mode opératoire des Java-RMI 0 - A la création de l objet-serveur, un stub et un skeleton (avec un port de communication) sont créés sur le host-serveur 1 - L'objet-serveur s'enregistre auprès du Naming de sa JVM (méthode rebind) 2 - Le Naming enregistre le stub de l objet (sérialisé) auprès du serveur de noms (rmiregistry) 3 - Le serveur de noms est prêt à fournir des références sur l objet-serveur Client Client rmiregistry rmiregistry stub stub Naming Naming stub stub Serveur Serveur JVM Client Skeleton Skeleton JVM Serveur Mode opératoire des Java-RMI 4 - L'objet client fait appel à son Naming pour localiser l'objet-serveur sur l host-serveur (méthode lookup) 5 - Le Naming récupère le stub vers l'objet-serveur auprès de la rmiregistry 6 Le naming installe l objet Stub sur le poste client et retourne sa référence au client 7 - Le client effectue l'appel à l objet serveur par appel à l objet local Stub Client Client Naming Naming rmiregistry rmiregistry stub stub Naming Naming Serveur Serveur Stub Stub Skeleton Skeleton JVM Client JVM Serveur 7

8 Mode opératoire des Java-RMI Etapes du développement et déploiement : 1. Codage description de l interface du service écriture du code du serveur qui implante l interface écriture du client qui appelle le serveur 2. Compilation génération des stub et skeleton (rmic) compilation des sources (javac) 3. Activation lancement du serveur de noms (rmiregistry) lancement du serveur lancement du client Mode opératoire des Java-RMI Etapes du développement et déploiement : 1 programmation: Interface java Server. java Client. java rmic Server Server_Stub.class Server_Skel.class (2.2 - javac Server.java) Server.class javac Client.java Client.class 3.1 rmiregistry 3.2 java Server 3.3 java Client 8

9 Programmation par RPC et Java-RMI : - Principes des RPC - Utilisation d un IDL - Principes des Java-RMI - Mode opératoire des Java-RMI - Hiérarchie de classes Java - Exemple de client-serveur en Java-RMI - RMI entre plusieurs serveurs Hiérarchie de classes Java RemoteObject RemoteServer RemoteStubs Activatable Classe : UnicastRemoteObject ActivationGroup_Stub Serveurs Stubs/Skeletons 9

10 Hiérarchie de classes Java RemoteObject RemoteServer RemoteStubs Activatable Classe : UnicastRemoteObject ActivationGroup_Stub Serveurs démarrés explicitement Objet/Service ayant la durée de vie du processus serveur Pour des comm. P2P entre processus actifs Utilise des comm. TCP Public class MyServerRmi extends UnicastRemoteObject Implements MyInterfaceRmi { Hiérarchie de classes Java RemoteObject RemoteServer RemoteStubs Activatable Classe : UnicastRemoteObject ActivationGroup_Stub Serveurs démarrables par le système Objet/Service persistant (non liés à la durée de vie d un processus) Les constructeurs proposent de définir un port sur lequel sera exporté le service. Sinon un port quelconque sera choisi. 10

11 Hiérarchie de classes Java RemoteObject RemoteServer RemoteStubs Activatable Classe : UnicastRemoteObject ActivationGroup_Stub Interfaces à destination des classes «stubs»et«skeletons» (les tallons client et serveur générés par rmic) Gérées par le mécanisme des Java-RMI Programmation par RPC et Java-RMI : - Principes des RPC - Utilisation d un IDL - Principes des Java-RMI - Mode opératoire des Java-RMI - Hiérarchie de classes Java - Exemple de client-serveur en Java-RMI - RMI entre plusieurs serveurs 11

12 Ex. client serveur en Java-RMI Règles d écriture des RMI : Les objets locaux passés en paramètres doivent être (juste) «serializable» Dans la majorité des cas il suffit d ajouter : «extends Serializable» dans l interface de leur classe «implements Serializable» dans la définition de leur classe Rien à faire pour les objets de base (int, double, ) Les objets difficiles à «serialiser» sont les threads éviter de passer des threads en paramètres d appel RMI! Ex. client serveur en Java-RMI Règles d écriture des RMI : Les objets distants ont plus de contraintes : L interface distante doit être publique L interface distante doit étendre l interface java.rmi.remote La classe distante hérite (généralement) de java.rmi.server.unicastremoteobject qui implémente java.rmi.remote (parfait!) Chaque méthode distante doit déclarer au moins l exception java.rmi.remoteexception Les objets distants doivent être déclarés par une référence sur leur interface (uniquement). 12

13 Ex. client serveur en Java-RMI Client Java rmiregistry Serveur Java «TheServer» Cas simple : Le client connaît le nom du serveur («TheServer») La rmiregistry est lancée sur le serveur Le client passe des arguments «de base» (int) // l'interface à exporter (deux services définis) public interface CalculRmi extends java.rmi.remote { public int plus(int un, int deux) throws java.rmi.remoteexception; public int mult(int un, int deux) throws java.rmi.remoteexception; Ex. client serveur en Java-RMI // Client utilisant des services d un objet-serveur distant import java.rmi.*; public class ClientRmi { static public void main(string arg[]) { int i1, i2, res; String NomHostServeur, NomObjServeur; CalculRmi ObjServeur; // Parse la ligne de commande NomHostServeur = arg[0]; NomObjServeur = arg[1]; i1 = Integer.parseInt(arg[2]); i2 = Integer.parseInt(arg[3]); try { // Recherche de l objet-serveur distant dans la rmiregistry ObjServeur = (CalculRmi) Naming.lookup( "rmi://" + NomHostServeur + "/" + NomObjServeur); // Usage du service distant trouvé res = ObjServeur.plus(i1, i2); catch (Exception e){ System.out.println("Erreur RMI " + e.getmessage()); System.exit(1); System.out.println("Résultat appel RMI: " + res); 13

14 Ex. client serveur en Java-RMI // Objet-Serveur RMI (debut) import java.util.*; import java.rmi.*; import java.rmi.server.*; public class ObjServeurRmi extends UnicastRemoteObject implements CalculRmi { private String nomobjserveur; public ObjServeurRmi(String s) throws RemoteException { super(); nomobjserveur = s; public String getnomobjserveur() { return nomobjserveur; Ex. client serveur en Java-RMI // Objet-Serveur RMI (fin) // Fonction main : pour le lancement du serveur static public void main(string arg[]) { System.setSecurityManager(new RMISecurityManager()); try { ServeurRmi srmi = new ObjServeurRmi("Calculateur"); Naming.rebind("//localhost/Calculateur", srmi); System.out.println("Enregistrement objet-serv OK"); catch (Exception e) { System.out.println("Pb enregistrement service: " + e.getmessage()); System.exit(1); 14

15 Programmation par RPC et Java-RMI : - Principes des RPC - Utilisation d un IDL - Principes des Java-RMI - Mode opératoire des Java-RMI - Hiérarchie de classes Java - Exemple de client-serveur en Java-RMI - RMI entre plusieurs serveurs Mode opératoire des Java-RMI Déploiement simple entre deux machines distantes : Client Stub Server ObjLoc Res = Server.service(ObjLoc) Objets locaux : - passés par valeurs - doivent être serializable Objets distants : - passés par «références» : stubs ObjLoc-copie par valeur Skeleton Server ObjServeur rmiregistry serveur 15

16 Mode opératoire des Java-RMI Déploiement complexe entre N machines : invocation dynamique de classe Client Stub ObjDist Stub Server ObjLoc Skeleton ObjDist ObjDist Res = Server.service(ObjLoc, «IdObjAndClassDistants») Invoc. Dyna Stub ObjDist Passage d objets locaux : - passés par valeurs ObjLoc-copie par valeur Skeleton Server ObjServeur - doivent être serializable Passage d objets distants : rmiregistry serveur - Nécessitent l invocation dynamique de classes Programmation par RPC et Java-RMI FIN 16

Programmation par RPC et Java-RMI :

Programmation par RPC et Java-RMI : 2A-SI 3 Prog. réseau et systèmes distribués 3.2 et JavaRMI Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Support de cours élaboré avec l aide de l équipe pédagogique du

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr 1 Modèle client-serveur Définition

Plus en détail

le langage Java Remote Method Invocation (RMI)

le langage Java Remote Method Invocation (RMI) Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

le langage java Remote Method Invocation (RMI)

le langage java Remote Method Invocation (RMI) Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

Introduction aux objets répartis Java RMI

Introduction aux objets répartis Java RMI Master Informatique M1 Intérêt des objets pour la construction d applications réparties Introduction aux objets répartis Java RMI Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR)

Plus en détail

Systèmes Distribués (5)

Systèmes Distribués (5) Plan du cours Systèmes Distribués (5) Guillaume Hutzler LaMI (Laboratoire de Méthodes Informatiques) SyDRA (Systèmes Distribués, Réactifs et Adaptatifs) hutzler@lami.univ-evry.fr Introduction définitions

Plus en détail

JAVA RMI.

JAVA RMI. JAVA RMI heithem.abbes@gmail.com Intérêt des objets pour la construction d applications réparties 2 Encapsulation L interface (méthodes + arguments) est la seule voie d accès à l état interne, non directement

Plus en détail

ENVIRONNEMENT CLIENT/SERVEUR

ENVIRONNEMENT CLIENT/SERVEUR ENVIRONNEMENT CLIENT/SERVEUR Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn Plan 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr 1 Plan Principes généraux Modèle

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr Remerciements Michel Riveill 1

Plus en détail

Exercice d application en Java RMI

Exercice d application en Java RMI 1 Exercice d application en Java RMI Nous disposons d un service qui offre des opérations de gestion de son compte courant. Voici le code des méthodes offertes par ce service : void debiter(double montant)

Plus en détail

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année Java RMI Programmation des applications réparties Olivier Flauzac URCA Master EEAMI-Informatique première année Olivier Flauzac (URCA) PAR : Java RMI MSTIC-INFO 1 1 / 30 1 RMI 2 Architecture 3 Développement

Plus en détail

Styles architecturaux

Styles architecturaux Styles architecturaux Styles distribués Broker GLO-3001 Hiver 2010 Permet de structurer des systèmes logiciels distribués formés de composantes réparties, indépendantes et possiblement hétérogènes composantes

Plus en détail

RMI JAVA. Introduction

RMI JAVA. Introduction RMI JAVA Introduction RMI Remote Method Invocation Système client/serveur Invocation distante de méthodes Famille des applications distribuées Les applications avec des objets CAS D'UTILISATION objet 1

Plus en détail

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

! Avantages. ! Limitations. ! Des mécanismes plus évolués visent à remédier à ces limitations

! Avantages. ! Limitations. ! Des mécanismes plus évolués visent à remédier à ces limitations Rappel des conclusions sur l appel de procédure à distance 2 JAVA RMI heithem.abbes@gmail.com! Avantages! Abstraction ( les détails de la communication sont cachés )! Intégration dans un langage : facilite

Plus en détail

Objets distribués et Appel de Méthodes à Distance 2009-2010

Objets distribués et Appel de Méthodes à Distance 2009-2010 Objets distribués et Appel de Méthodes à Distance 2009-2010 1 Objectif : construire une application où différents modules peuvent être situés sur des machines différentes, en utilisant un modèle à objets

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Java Remote Method Invocation (RMI) ou les invocations de méthodes m

Java Remote Method Invocation (RMI) ou les invocations de méthodes m Intergiciels à Objets Répartis R : Java Remote Method Invocation (RMI) ou les invocations de méthodes m Java distantes Samia Bouzefrane Maître de Conférences Laboratoire CEDRIC Conservatoire National des

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

JVM. RMI - couche de référence. RMI - couche de transport TCP/IP

JVM. RMI - couche de référence. RMI - couche de transport TCP/IP Chapitre 9 Dans ce chapitre nous abordons le mécanisme RMI (Remote Method Invocation) permettant le développe ment des systèmes répartis. Nous expliquerons comment les classes d un serveur peuvent être

Plus en détail

Cours: BD et Environnement Distribuées

Cours: BD et Environnement Distribuées UNIVERSITÉ DE BOURGOGNE UFR Sciences et Techniques Cours: BD et Environnement Distribuées TP 1 - Illustration des concepts objets distribués avec Java-RMI Préparé par: MATTA Elie et al. Copyright 2010-2011,

Plus en détail

Remote Method Invocation en Java (RMI)

Remote Method Invocation en Java (RMI) Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation

Plus en détail

Systèmes d Information Avancés (et répartis)

Systèmes d Information Avancés (et répartis) Systèmes d Information Avancés (et répartis) Université Lyon 1 MIAGE L. Médini, mars 2005 Plan des cours Protocole HTTP et programmation serveur Architectures multi-composants réparties Principes Exemples

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Ce support est très largement inspiré du livre et du cours de S. Krakowiak S. Krakowiak Java Remote Method Invocation 1 / 25 Intérêt des objets pour la construction d applications

Plus en détail

1 Présentation de RMI

1 Présentation de RMI La technologie RMI Table des matières 1 Présentation de RMI 1 2 Déployer des objets serveurs 2 2.1 Spécification de la couche métier................................... 2 2.2 Fourniture d une implantation.....................................

Plus en détail

Appel de procédures distantes : principes des RPC

Appel de procédures distantes : principes des RPC Appel de procédures distantes : principes des RPC Programmation des Applications Réparties Olivier Flauzac URCA Master EEAMI informatique première année Olivier Flauzac (URCA) PAR : RPC EEAMI Informatique

Plus en détail

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI 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

Plus en détail

Remote Method Invocation Invocation de méthodes distantes (RMI)

Remote Method Invocation Invocation de méthodes distantes (RMI) Remote Method Invocation Invocation de méthodes distantes (RMI) L ensemble du contenu de ce livre, sauf exception signalée, est mis à disposition sous licence CC-BY-SA 3.0 France http://creativecommons.org/licenses/by-sa/3.0/fr/legalcode

Plus en détail

Programmation Réseau RMI. Jean-Baptiste.Yunes@univ-paris-diderot.fr armand@informatique.univ-paris-diderot.fr. ! UFR Informatique

Programmation Réseau RMI. Jean-Baptiste.Yunes@univ-paris-diderot.fr armand@informatique.univ-paris-diderot.fr. ! UFR Informatique Programmation Réseau RMI Jean-Baptiste.Yunes@univ-paris-diderot.fr armand@informatique.univ-paris-diderot.fr UFR Informatique 2014 Les RMI de Java Les applications RMI sont des applications bâties sur

Plus en détail

RMI APPLICATION DISTRIBUEE

RMI APPLICATION DISTRIBUEE labo-sun@supinfo.com RMI APPLICATION DISTRIBUEE Auteur : Renaud Roustang Version 2.0 31 janvier 2005 Nombre de pages : 19 Ecole Supérieure d Informatique de Paris 23. rue Château Landon 75010 PARIS www.supinfo.com

Plus en détail

Java - RMI Remote Method Invocation. Stéphane Frénot -MID - V.0.2.0 Part I - RMI 1

Java - RMI Remote Method Invocation. Stéphane Frénot -MID - V.0.2.0 Part I - RMI 1 Java - RMI Remote Method Invocation Stéphane Frénot -MID - V.0.2.0 Part I - RMI 1 Répartition d'une application Application de Présentation Middleware Implicite Application de traitement Application de

Plus en détail

Java - RMI Remote Method Invocation

Java - RMI Remote Method Invocation Java - RMI Remote Method Invocation Stéphane Frénot -MID - V.0.2.0 Part I - RMI 1 Répartition d'une application Application de Présentation Système d'exploitation Middleware Implicite Application de traitement

Plus en détail

La plate-forme Java RMI

La plate-forme Java RMI La plate-forme Java RMI Frank Singhoff Bureau C-202 Université de Brest, France Lab-STICC/UMR 3192 singhoff@univ-brest.fr UE systèmes à objets répartis, Université de Brest Page 1/25 Sommaire 1. Le modèle

Plus en détail

Du côté du serveur un skeleton/squelette a en charge la réception des invocations distantes, de leur réalisation et de l'envoi des résultats.

Du côté du serveur un skeleton/squelette a en charge la réception des invocations distantes, de leur réalisation et de l'envoi des résultats. Objectif L objectif de ce TP est de mettre en œuvre le mécanisme d invocation de méthodes distantes RMI du langage Java. Le but de RMI est de permettre l'appel, l'exécution et le renvoi du résultat d'une

Plus en détail

Sensibilisation à RMI (Remote Method Invocation)

Sensibilisation à RMI (Remote Method Invocation) Jini Sensibilisation à RMI (Remote Method Invocation) Le rêve de tout système distribué L idéal serait d avoir un système distribué utilisant la technologie objet et permettant : 1) d invoquer une méthode

Plus en détail

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306 TP Java RMI Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 Paradigme RMI RMI (Remote Method Invocation) RPC orientés objet (encapsulation, héritage,...) objet :

Plus en détail

Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java

Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java (application avec Java RMI) Éric Leclercq Département IEM / Laboratoire LE2i Décembre 2010 émail : Eric.Leclercq@u-bourgogne.fr

Plus en détail

<< De la méthode, toujours

<< De la méthode, toujours > RMI, les bases Cours "Réseaux et systèmes répartis" NFP 214 par Jacques LAFORGUE (jacques.laforgue@neuf.fr) version du 04/02/2010 slide numéro 1 Définitions RMI = Remote Method

Plus en détail

Middlewares de communication entre objets distribués

Middlewares de communication entre objets distribués Master 2 Traitement de l Information Middlewares de communication entre objets distribués Conception d Applications Hétérogènes Distribuées Lionel Médini Septembre-novembre 2015 du cours Outils de programmation

Plus en détail

Systèmes distribués. Les Sockets

Systèmes distribués. Les Sockets Systèmes distribués Plusieurs technologies existent : Les sockets Les remote procedure call (RPC) Remote Method Invocation (RMI) Les Sockets L'utilisation des Sockets nécessite De gérer le codage et le

Plus en détail

Architecture CORBA (suite)

Architecture CORBA (suite) Java et CORBA Intégré dans le JDK1.2 : Java IDL hormis idltojava à chercher au java developer connection (~300Ko) Solaris, Win32 On utilise les paquetages org.omg.corba et org.omg.cosnaming du JDK1.2 1

Plus en détail

Examen 2ième session page 1 NFP Systèmes répartis. 2ième Session NFP 214 (COURS)

Examen 2ième session page 1 NFP Systèmes répartis. 2ième Session NFP 214 (COURS) Examen 2ième session 2007-2008 page 1 NFP 214 - Systèmes répartis IPST-CNAM Systèmes répartis NFP 214 Mardi 24 Juin 2008 Sans document Durée : 2 heures Enseignants : LAFORGUE Jacques 2ième Session NFP

Plus en détail

Programmation Client / Serveur

Programmation Client / Serveur Programmation Client / Serveur Licence Professionnelle CMSII Cours 4 Luiz Angelo Steffenel luiz-angelo.steffenel@univ-reims.fr Plan du Cours Rappel des mécanismes utilisés Présentation de Java RMI Client/Serveur

Plus en détail

RMI (Remote Method Invocation) Client serveur, situation traditionnelle. Client serveur, situation traditionnelle.

RMI (Remote Method Invocation) Client serveur, situation traditionnelle. Client serveur, situation traditionnelle. RMI (Remote Method Invocation) Présentation de RMI Université Française d Egypte Richard Grin Version 0.6 10/10/12 R. Grin RMI page 2 Client serveur, situation traditionnelle Sur la machine A un client

Plus en détail

RMI : Remote Method Invocation Appel de méthodes à distance

RMI : Remote Method Invocation Appel de méthodes à distance RMI : Remote Method Invocation Appel de méthodes à distance Patrice Torguet torguet@irit.fr Université Paul Sabatier Plan du cours l Les RPC l Architecture et fonctionnement de RMI l Etapes de développement

Plus en détail

Applications réparties en Java

Applications réparties en Java Applications réparties en Java Paquetage java.net Sockets Objets distants transparents RMI Yves Bekkers Application répartie sur un réseau Deux applications communiquent via un réseau L'application serveur

Plus en détail

Cours client-serveur Web : Java et RMI (Remote Method Invocation)

Cours client-serveur Web : Java et RMI (Remote Method Invocation) Cours client-serveur Web : Java et RMI (Remote Method Invocation) 1 Java: Rappel sur les threads Cycle de vie d un thread (1) Né -> prêt appel de la méthode start du thread Prêt Exécution Distribution

Plus en détail

Examen 2ième session page 1 NFP Systèmes répartis. 2ième Session NFP 214 CORRECTION (COURS)

Examen 2ième session page 1 NFP Systèmes répartis. 2ième Session NFP 214 CORRECTION (COURS) Examen 2ième session 2007-2008 page 1 NFP 214 - Systèmes répartis IPST-CNAM Systèmes répartis NFP 214 Mardi 24 Juin 2008 Sans document Durée : 2 heures Enseignants : LAFORGUE Jacques 2ième Session NFP

Plus en détail

RMI : Remote Method Invocation Appel de méthodes à distance TD/TP

RMI : Remote Method Invocation Appel de méthodes à distance TD/TP RMI : Remote Method Invocation Appel de méthodes à distance TD/TP Patrice Torguet torguet@irit.fr Université Paul Sabatier But l But du TD/TP : application répartie permettant de gérer des comptes bancaires.

Plus en détail

Design Patterns. Patrons de structure Proxy. GLO-3001 Hiver Bureau de la formation à distance

Design Patterns. Patrons de structure Proxy. GLO-3001 Hiver Bureau de la formation à distance Design Patterns Patrons de structure Proxy GLO-3001 Hiver 2010 Proxy Fournir un substitut pour un autre objet afin de contrôler l accès à celui-ci Motivations Le sujet réel est distant Le sujet réel requiert

Plus en détail

Classification des modèles de

Classification des modèles de Réseaux S. Vialle 6 Modèles et outils de programmation réseau Classification des modèles de programmation réseau Comparaisons des outils de programmation réseau Bilan des modèles et outils de programmation

Plus en détail

Rappel du schéma client-serveur LES APPELS DE PROCÉDURE DISTANTS. Définition. Avantages attendus. ! Facilité de programmation

Rappel du schéma client-serveur LES APPELS DE PROCÉDURE DISTANTS. Définition. Avantages attendus. ! Facilité de programmation Rappel du schéma client-serveur 2! Appel synchrone Requête-Réponse LES APPELS DE PROCÉDURE DISTANTS heithem.abbes@gmail.com! Mise en œuvre! Bas niveau : utilisation directe du transport : sockets (construit

Plus en détail

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information

SOA et Services Web. 23 octobre 2011. Evolution des Systèmes d Information SOA et Services Web 23 octobre 2011 1 Evolution des Systèmes d Information 2 Qu est ce qu une application répartie? Il s agit d une application découpée en plusieurs unités Chaque unité peut être placée

Plus en détail

Introduction à RMI. Jean-Marc Farinone Maître de Conférences Conservatoire National des Arts et Métiers CNAM Paris (France) JMF

Introduction à RMI. Jean-Marc Farinone Maître de Conférences Conservatoire National des Arts et Métiers CNAM Paris (France) JMF Introduction à RMI Jean-Marc Farinone farinone@cnam.fr Maître de Conférences Conservatoire National des Arts et Métiers CNAM Paris (France) 1 Plan de l'exposé Rappel programmation réseau Rappel programmation

Plus en détail

Code mobile : Un exemple

Code mobile : Un exemple Code mobile : Un exemple DEA - Modélisation et implémentation des systèmes complexes - D. Olivier Année 2002/2003 1 Introduction Avec la machine virtuelle Java, la sérialisation et RMI, il est possible

Plus en détail

Programmation RMI Ph. Truillet

Programmation RMI Ph. Truillet http://www.irit.fr/~philippe.truillet Ph. Truillet Octobre 2015 v. 1.7 0. déroulement du TP RMI (Remote Method Invocation) est une technologie développée et fournie par Sun à partir du JDK 1.1 pour permettre

Plus en détail

Cours : Calcul Parallèle Travaux dirigés E. Goubault & S. Putot TD 3

Cours : Calcul Parallèle Travaux dirigés E. Goubault & S. Putot TD 3 Ecole Polytechnique Cours : Calcul Parallèle Travaux dirigés E. Goubault & S. Putot TD 3 19 janvier 2011 Dans les exercices suivants, on va distribuer des calculs. Afin de ne pas trop polluer le réseau

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 7 : RMI Nom(s) : Groupe : Date : Objectifs : savoir créer des applications client-serveur mettant en jeu des machines

Plus en détail

Introduction à JAVA RMI

Introduction à JAVA RMI Introduction à JAVA RMI Plan Introduction Architecture logique Principe de programmation Un exemple Fabrique d'objets Appels en retour 2 Bibliographie Documentation Sun : http://java.sun.com/javase/technologies/core/basic/rmi/

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Java RMI : Programmation répartie en JAVA Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

Calcul Parallèle. Cours 5 - JAVA RMI

Calcul Parallèle. Cours 5 - JAVA RMI Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation

Plus en détail

Bases de données et environnements distribués Chapitre II : les objets distribués avec Java

Bases de données et environnements distribués Chapitre II : les objets distribués avec Java Bases de données et environnements distribués Chapitre II : les objets distribués avec Java Éric Leclercq Département IEM / Laboratoire LE2i Septembre 2015 émail : Eric.Leclercq@u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq

Plus en détail

Examen du 27 Juin 2002

Examen du 27 Juin 2002 Les exercices de cet examen portent tous sur le système RMI de Java. La consultation de documents (supports de cours, livres, etc.) est autorisée. L interaction avec les autres candidats n est pas autorisée!

Plus en détail

TECHNIQUES DE PROGRAMMATION JAVA PAR OBJETS DISTRIBUÉS

TECHNIQUES DE PROGRAMMATION JAVA PAR OBJETS DISTRIBUÉS 1 DÉFINITIONS : TECHNIQUES DE PROGRAMMATION JAVA PAR OBJETS DISTRIBUÉS Objet Distribué (OD) : c est un objet à exécution distante rendu accessible à des applications clientes (OD-clients) par le biais

Plus en détail

Middleware et Logiciels distribués TP 03

Middleware et Logiciels distribués TP 03 R. Courdier Middelware & Architectures distribuées Page 1 Middleware et Logiciels distribués TP 03 ENONCE RMI-IIOP Application BonjourLaReunion Exercice 1 Architecture de l application Exercice 1.1 Quelle

Plus en détail

Java Avancé - Cours 2

Java Avancé - Cours 2 Java avancé - cours 2 1/8 Java Avancé - Cours 2 Plan 1 Communication entre objets 1 1.1 Motivation....................................................... 1 1.2 Relations entre le panier et le rayon.........................................

Plus en détail

Yahya SLIMANI. Dept Informatique Faculté des Sciences de Tunis Systèmes et Réseaux 1

Yahya SLIMANI. Dept Informatique Faculté des Sciences de Tunis Systèmes et Réseaux 1 Cours de Système et Réseaux Maîtrise Informatique 4 ème année Partie II : Programmation d Applications Réparties Yahya SLIMANI Dept Informatique Faculté des Sciences de Tunis Yahya.slimani@fst.rnu.tn Y.

Plus en détail

CORBA. Cycle de développement

CORBA. Cycle de développement CORBA Cycle de développement Projet MIAGe Toulouse Groupe 2 1 Le cycle de développement (1/3) On s intéresse au développement selon le mode statique, c est à dire en utilisant les talons (stub, skeleton,

Plus en détail

Les Systèmes et Applications Réparties et leur Programmation

Les Systèmes et Applications Réparties et leur Programmation Les Systèmes et Applications Réparties et leur Programmation Samia Bouzefrane Maître de Conférences Laboratoire CEDRIC Conservatoire National des Arts et Métiers 292 rue Saint Martin 75141 Paris Cédex

Plus en détail

Systèmes répartis : Remote Method Invocation p.1/74

Systèmes répartis : Remote Method Invocation p.1/74 Systèmes répartis : Remote Method Invocation Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis : Remote Method Invocation p.1/74 Plan 1. Introduction 2. JRMP

Plus en détail

Tutoriel d initiation à OpenORB

Tutoriel d initiation à OpenORB Tutoriel d initiation à OpenORB F. Bernardi, Université de Corse, 2002 OpenORB se trouve aux adresses suivantes: http://openorb.sourceforge.net http://umn.dl.sourceforge.net/sourceforge/openorb/openorb-1.3.0.tgz

Plus en détail

Cours Interfaces Graphiques

Cours Interfaces Graphiques Ecole d Ingénieurs SuP Galilée Université Paris 13 Spécialité Informatique Cours Interfaces Graphiques (en Java avec Swing) Catherine RECANATI catherine.recanati@gmail.com 1 Cours Java (INHM) M A S T E

Plus en détail

Urbanisation et architecture des systèmes d information

Urbanisation et architecture des systèmes d information Urbanisation et architecture des systèmes d information Flux techniques David Eudeline eudeline.david@free.fr Techniques de dialogue Protocoles de types questions/réponses Assemblage/Désassemblage Appel

Plus en détail

IV. Les objets répartis

IV. Les objets répartis IV. Les objets répartis 1 Plan 1. Client/Server OO 2. Java RMI 2 1 Modèle de prog. Client/Serveur OO 1.1 Nommage 1.2 Sécurité d accès 1.3 Durée de vie 1.4 Objets concurrents 1.5 Synchronisation 3 1 Modèle

Plus en détail

Plan. Les objets répartis. Sources. Cours. Introduction. Pierre Courtieu. Remote method invocation (JAVA/RMI)

Plan. Les objets répartis. Sources. Cours. Introduction. Pierre Courtieu. Remote method invocation (JAVA/RMI) Les objets répartis Pierre Courtieu Plan Introduction Les applications distribuées Introduction Les applications distribuées Remote method invocation (JAVA/RMI) Exemple 1: Compte en banque Exemple complet:

Plus en détail

Plan. Java Remote Method Invocation. 1. Caractéristiques. 1. Caractéristiques

Plan. Java Remote Method Invocation. 1. Caractéristiques. 1. Caractéristiques Plan Java Remote Method Invocation Lionel Seinturier Université des Sciences et Technologies de Lille 1. Caractéristiques 3. Services 5. Protocole Lionel.Seinturier@lifl.fr 8/9/06 RMI 1 Lionel Seinturier

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Java RMI : Techniques et utilisations avancées de RMI Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE

Plus en détail

Programmation répartie RPC & RMI

Programmation répartie RPC & RMI Programmation répartie RPC & RMI Plan du cours Introduction Définitions Problématiques Architectures de distribution Distribution intra-applications Notion de processus Programmation multi-thread Distribution

Plus en détail

Chapitre IX : Introduction à la programmation

Chapitre IX : Introduction à la programmation Chapitre IX : Introduction à la programmation réseau Eric.Leclercq@u-bourgogne.fr Département IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 24 mars 2011 1 La communication

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) Pierre Gançarski Mars 2010 1 Présentation L'objectif est de permettre à des applications clientes (s'exécutant localement) d'invoquer des méthodes sur des objets distants,

Plus en détail

RPC Remote procedure call

RPC Remote procedure call RPC Remote procedure call L'appel de méthode à distance a pour objectif de fournir l'illusion d'un appel de méthode local. Pour cela il faut définir un passage des arguments et du résultat. De plus il

Plus en détail

Remote Method Invocation Les classes implémentant Serializable

Remote Method Invocation Les classes implémentant Serializable Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement

Plus en détail

La projection d'idl. Règles de projection sur Java

La projection d'idl. Règles de projection sur Java La projection d'idl Règles de projection sur Java La projection IDL Opération consistant à traduire l'idl vers les constructions natives d'un langage objet Les projections font partie de la norme Dans

Plus en détail

TD3 Initiation aux EJB3 avec Eclipse Ecriture d un ejb session remote stateless

TD3 Initiation aux EJB3 avec Eclipse Ecriture d un ejb session remote stateless TD3 Initiation aux EJB3 avec Eclipse Ecriture d un ejb session remote stateless 1 Installation de la plateforme Nous réutilisons le JDK et Eclipse que nous avons installé au TD1. 1.1 Installation de JBOSS

Plus en détail

RPC Remote Procedure Call. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benm@gmail.com

RPC Remote Procedure Call. Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benm@gmail.com RPC Remote Procedure Call Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benm@gmail.com Objectifs Le rôle de RPC comme middleware Positionner RPC dans le modèle OSI Développement d application

Plus en détail

Comparaison JAVA / C++

Comparaison JAVA / C++ / - Différences Comparaison / 1. La fonction «main()» lancer. Cette fonction est le point d'entrée du programme. Elle est nécessaire pour le class maclasse public static void main(string args) // fin du

Plus en détail

Conception de serveurs d'applications ouverts

Conception de serveurs d'applications ouverts Conception de serveurs d'applications ouverts Stéphane Frénot 3 Un modèle d'exécution standard Application Stéphane Frénot 4 1 Répartition "horizontale" d'une application Application de Présentation Application

Plus en détail

Erreurs d'exécutions. La gestion d une exception

Erreurs d'exécutions. La gestion d une exception Erreurs d'exécutions Dans tout programme, il y a des erreurs d'exécution possibles, des cas particuliers qui n'ont pas forcément été traités. On ne vise pas à les supprimer, mais à les controler (robustesse

Plus en détail

Introduction au typage de JAVA

Introduction au typage de JAVA Introduction au typage de JAVA F. Barthélemy 2 mai 2006 1 Un petit jeu Soit le programme JAVA suivant : class A{ void m(a a){ System.out.println("m de A"); void n(a a){ System.out.println("n de A"); class

Plus en détail

Intergiciel - concepts de base

Intergiciel - concepts de base Intergiciel - concepts de base Ada Diaconescu, Laurent Pautet & Bertrand Dupouy ada.diaconescu _at_ telecom-paristech.fr Rappel : système réparti Système constitué de multiples ressources informatiques

Plus en détail

Chargement de classes en Java Application à OSGi

Chargement de classes en Java Application à OSGi Pourquoi un chargeur de classes Chargement de classes en Java Application à OSGi Gaël Thomas gael.thomas@lip6.fr Un chargeur de classe charge de nouvelles classes dynamiquement dans la machine virtuelle

Plus en détail

Le réseau est. (Bill Joy)

Le réseau est. (Bill Joy) Le réseau est l ordinateur (Bill Joy) Le package java.net Les principales classes du package java.net Les sockets en mode connecté Les sockets en mode non connecté ServerSocket accept()... Socket getinputstream()

Plus en détail

Fiches JAVA. 1 Classes et objets. 2 Création et utilisation d un objet

Fiches JAVA. 1 Classes et objets. 2 Création et utilisation d un objet 1 Classes et objets Fiches JAVA Les éléments de base en java sont des objets. On peut avoir différents types d objets en Java. Le type d un objet est appelé sa classe. Chaque fichier java décrit une classe.

Plus en détail

Java RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011

Java RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011 Java RMI Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau

Plus en détail

Examen 1ère session page 1 NSY AISL. 1ère Session NSY 102

Examen 1ère session page 1 NSY AISL. 1ère Session NSY 102 Examen 1ère session 2015-2016 page 1 NSY 102 - AISL IPST-CNAM Intranet et Designs patterns NSY 102 Vendredi 27 Avril 2016 Durée : 2 h 45 Enseignants : LAFORGUE Jacques 1. QCM (35 points) Mode d'emploi

Plus en détail

Middleware Java RMI. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr

Middleware Java RMI. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr Middleware Java RMI Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Middleware Middleware (intergiciel en français) : couche logiciel S'intercale

Plus en détail

PARADIGME ORIENTÉ OBJET - PART 2

PARADIGME ORIENTÉ OBJET - PART 2 PARADIGME ORIENTÉ OBJET - PART 2 A programming paradigm that uses objects to design systems. Sébastien Adam Les concepts avancés de la programmation orientée-objet 2 Plan Héritage en Java Modificateur

Plus en détail

rjava : utilisation parallèle et communication entre deux langages informatiques Julien Troudet

rjava : utilisation parallèle et communication entre deux langages informatiques Julien Troudet rjava : utilisation parallèle et communication entre deux langages informatiques Julien Troudet Pourquoi utiliser rjava (ou JRI)? rjava (Appel de Java dans un script R) Utilisation des Interfaces Homme/Machine

Plus en détail