COMPTE RENDU DES TRAVAUX PRATIQUES

1/9
100%

République Tunisienne

Ministère de l’Enseignement Supérieur,DE la recherche scientifique

et de la technologie

Université de la Manouba

![A description...](data:image/png;base64...)

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;

Publicité

public float racine(int nombre) throws RemoteException;

}

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;

Publicité

public class calculServeur {

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);

Publicité

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

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

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

}

}

else {

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

}

}

}

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 | JVM serveur |

| -client RMI -stub -interface | -serveur RMI -skeleton -interface -registry |

Exercice 2

Question 1

Fichier : Nombre.java

![](data:image/x-emf;base64...)

Fichier : NombreImpl.java

Publicité

![](data:image/x-emf;base64...)

Question 2

Fichier FabriqueNombre.java

![](data:image/x-emf;base64...)

Fichier : FabriqueNombreImpl.java

![](data:image/x-emf;base64...)

Fichier : Calcul.java

![](data:image/x-emf;base64...)

Fichier : CalculImpl.java

![](data:image/x-emf;base64...)

Fichier : CalculServer.java

![](data:image/x-emf;base64...)

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

![](data:image/x-emf;base64...)

Question 4

On teste le code en local

$java ClientNombre

COMPTE RENDU DES TRAVAUX PRATIQUES

Programming, Java RMI, Mathematics · lab

Voir tous les documents en programmation

République Tunisienne

Ministère de l’Enseignement Supérieur,DE la recherche scientifique

et de la technologie

Université de la Manouba

![A description...](data:image/png;base64...)

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;

Publicité

public float racine(int nombre) throws RemoteException;

}

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;

Publicité

public class calculServeur {

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);

Publicité

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

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

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

}

}

else {

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

}

}

}

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 | JVM serveur |

| -client RMI -stub -interface | -serveur RMI -skeleton -interface -registry |

Exercice 2

Question 1

Fichier : Nombre.java

![](data:image/x-emf;base64...)

Fichier : NombreImpl.java

Publicité

![](data:image/x-emf;base64...)

Question 2

Fichier FabriqueNombre.java

![](data:image/x-emf;base64...)

Fichier : FabriqueNombreImpl.java

![](data:image/x-emf;base64...)

Fichier : Calcul.java

![](data:image/x-emf;base64...)

Fichier : CalculImpl.java

![](data:image/x-emf;base64...)

Fichier : CalculServer.java

![](data:image/x-emf;base64...)

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

![](data:image/x-emf;base64...)

Question 4

On teste le code en local

$java ClientNombre