Master 2 TIW - Intergiciels et Services

Middlewares d'objets distribués - RMI

Objectifs pédagogiques

Comprendre et mettre en œuvre les principes fondamentaux de la communication entre objets dans des infrastructures distribuées.

Ressources

Pour la deuxième partie (implémentation de votre TP conteneur en RMI), vous pouvez vous inspirer du tutoriel sur RMI d'Oracle pour Java 8.

Mise en route

Lancement du client

Pour commencer, vous allez démarrer sur une application de type "Hello World" toute simple dont vous récupérerez le client et le serveur (dans lequel se trouve l'interface distante hello.Hello) sur le projet https://forge.univ-lyon1.fr/LIONEL.MEDINI/TP_RMI_TIW1_2017_base.

Dans un premier temps, vous allez générer un jar contenant l'interface du serveur et la passer au client. Vous la trouverez dans le répertoire Projet_serveur/hello.

Ensuite, vous allez réaliser un client RMI pour interface :

TP du 19/10/2016 : remplacez l'adresse IP de l'annuaire JNDI par la suivante : 134.214.88.178. Récupérez l'interface ici et collez-la à la racine de votre répertoire client.

Lancement du serveur

Allez ensuite dans le répertoire serveur du projet.

De la même manière, testez le client pour qu'il appelle le serveur sur votre machine locale.

Sécurisation

Utilisez les informations situées ici pour faire en sorte que seuls les fichiers situés dans vos répertoires client et serveur soient accessibles par le serveur JNDI.

Modification de l'interface

Enfin, modifiez le servant (l'interface Hello et sa classe d'implémentation) pour que la méthode sayHello prenne en entrée deux paramètres (un nom et un entier), et qu'elle dise autant de fois bonjour que l'entier le lui indique.

Utilisation dans Eclipse

Il peut arriver qu'un client ou un serveur tourne correctement dans Eclipse. Pour cela, une méthode qui a fonctionné est de créer le projet et la structure des packages à la main et de glisser-déposer les classes et interfaces dans l'explorateur de projet. Une fois que le code Java est correctement intégré dans le projet, il faut créer une Run Configuration :

Une fois la configuration créée et appliquée, testez-la. Si Eclipse est incapable de trouver votre classe Main, essayez l'une des 3 solutions ci-dessus... Remarque : vous n'aurez pas tout perdu, Eclipse est au moins capable de compiler votre code Java.

N'oubliez pas que de toutes façons, il faut compiler et packager les interfaces du servant avec jar.

Conception : reprise du TP conteneur

Reprenez une version fonctionnelle de votre application d'agenda, décomposée en 4 parties (Main, Annuaire, Serveur, Client). Par exemple, celle issue de la question 0, mais si vous avez la version de la question 2.2 (uniformisation, cela vous simplifiera la tâche).

Dans votre projet Repertoire du TP 2 :

Licence Creative Commons
Valid XHTML 1.0 Strict