COMPTE RENDU DES TRAVAUX PRATIQUES

École Nationale des Sciences de l'Informatique (ENSI)
1/9
100%
Rendu du PDF...
Page 1 sur 9Lecteur de document UniversityLib

COMPTE RENDU DES TRAVAUX PRATIQUES

École Nationale des Sciences de l'Informatique (ENSI) · Programming, Math, Java RMI · lab

Voir tous les documents en programmation

REPUBLIQUE TUNISIENNE

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR,DE LA RECHERCHE SCIENTIFIQUE

ET DE LA TECHNOLOGIE

UNIVERSITE DE LA MANOUBA

ECOLE NATIONALE DES SCIENCES DE L’INFORMATIQUE

COMPTE RENDU DES TRAVAUX

PRATIQUES

Programmation avec java RMI

Réalisé par :

Amani BEN DHIAB

Mohamed Yassine CHAIEB

SLE G2

Enseigné par :

Mme. Nadia BEN AZZOUNA

Année universitaire : 2012-2013

Exercice 1

Question 1

Fichier : calcul.java

import java.rmi.Remote;

import java.rmi.RemoteException;

public interface calcul extends Remote {

public int carre(int nombre) throws RemoteException;

public float racine(int nombre) throws RemoteException;

Publicité

}

Question 2

Fichier : calculImpl.java

import java.rmi.RemoteException;

import java.rmi.server.UnicastRemoteObject;

public class calculImpl extends UnicastRemoteObject implements calcul {

private static final long serialVersionUID = 1L;

protected calculImpl() throws RemoteException{

super();

}

public int carre(int nombre) throws RemoteException {

System.out.println("operation de calcul du carre.\n");

return(nombre*nombre);

}

public float racine(int nombre) throws RemoteException {

System.out.println("operation de calcul du racine.\n");

return (float) (Math.sqrt(nombre));

}

}

Question 3

Fichier : calculServeur.java

import java.rmi.Naming;

public class calculServeur {

Publicité

public static void main(String[] args) throws Exception{

calculImpl calculImplIsntance = new calculImpl();

Naming.rebind("DemoCalcul", calculImplIsntance);

System.out.println("Le serveur de Calcul est pret a etre utilise...");

}

}

Après la compilation de tous les fichiers, on génère le stub et le skeleton avec l’utilitaire rmic

$Rmic –v1.1 calculImpl

Puis on lance le rmiregistry

$ rmiregistry &

$java calculServer &

Question 4

Fichier : calculClient.java

import java.rmi.Naming;

public class calculClient {

public static void main(String[] args) throws Exception {

if(args.length == 3) {

String url = new String("rmi://"+args[0]+"/DemoCalcul");

calcul T1 = (calcul)Naming.lookup(url);

if(args[1].equals("carre")) {

int reponseServeur1 = T1.carre(Integer.parseInt(args[2]));

System.out.println("Reponse du serveur:" + reponseServeur1);

} else if (args[1].equals("racine")) {

Publicité

float reponseServeur2 = T1.racine(Integer.parseInt(args[2]));

System.out.println("Reponse du serveur:" + reponseServeur2);

}

System.err.println("Votre requete est erronee.");

}

else {

}

}

}

Question 5

Après la compilation de tous les fichiers , on déplace le fichier calculImpl_Stub.class générée

par le pré-compilateur rmic dans le répertoire client puis on lance le client.

$java CalculClient

Question 6

JVM client

-client RMI

-stub

-interface

Exercice 2

Question 1

Fichier : Nombre.java

JVM serveur

-serveur RMI

Publicité

-skeleton

-interface

-registry

Fichier : NombreImpl.java

Question 2

Fichier FabriqueNombre.java

Fichier : FabriqueNombreImpl.java

Fichier : Calcul.java

Fichier : CalculImpl.java

Fichier : CalculServer.java

Après la compilation on génère le stub et on lance le serveur

$rmic calculImpl FabriqueNombreImpl

$rmiregistry &

$java –Djava.security.policy=all.policy calculServer

Question 3

Fichier : ClientNombre.java

Question 4

On teste le code en local

$java ClientNombre