TD Java RMI
1) Retour sur les Threads Java
Rappels :
Les méthodes utiles de la classe Threads :
start() : lancer le thread
run() : méthode à redéfinir, contient le code exécuté au lancement du thread
join() : attendre la fin du thread
wait() : endort le thread jusqu'à ce qu'il reçoive un événement
notify()/notifyAll() : réveil un ou tous les threads en attente
Exercice :
1. Concevoir un algorithme parallèle pour le tri d'un tableau en utilisant le principe du
Quicksort.
2. Ecrire le code de l'algorithme de la question 1 en utilisant les Threads Java et en supposant
que l'on dispose d'une méthode partition qui classe les éléments d'un tableau et renvoie
l'indice du pivot dans le tableau.
2) Appel d'une méthode sur un objet distant en Java RMI
Rappels :
Interface de description de l'objet distant
donne la signature des méthodes que l'on peut appeler à distance
doit étendre l'interface java.rmi.Remote
chaque méthode doit lancer l'exception RemoteException (échec de l'appel distant)
Serveur : implémentation de l'interface
code exécuté lors de l'appel distant à une méthode de cet objet
hérite de java.rmi.server.UnicastRemoteObject
Serveur : enregistrement de l'objet distant
créer une instance de l'objet distant
enregistrer cet objet auprès du serveur de nom avec
Naming.rebind(“rmi://host:port/Nom”),
où Nom sert à identifier l'objet distant
(par défaut host = localhost et port = 1099)
Client : appel à une méthode d'un objet distant
récupérer une référence sur l'objet distant par Naming.lookup(“rmi://host:port/Nom”)
(renvoie une référence sur un Object)
appeler la méthode avec cette référence
Exercice :
1. Ecrire une interface OpMatrice qui définit une méthode permettant de faire la multiplication
de deux matrices carrées.
2. Ecrire une classe OpMatriceImpl qui implémente cette interface.
3. Ecrire le code du serveur qui instancie un objet OpMatriceImpl et l'enregistre auprès du
serveur de nom.
4. Ecrire le code d'un client qui invoque la méthode de multiplication sur deux matrices.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !