01.02.2015 Views

Examen RMI (GMI FC)

Examen RMI (GMI FC)

Examen RMI (GMI FC)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Examen</strong> du 27 Juin 2002<br />

Le principe de cet objet distant est de renvoyer une nouvelle valeur à chaque appel de next, sachant que<br />

la valeur initiale est zéro et qu’un appel de next ajoute un à cette valeur avant de renvoyer la nouvelle<br />

valeur. On doit donc obtenir 1 au premier appel, 2 au deuxième, etc. On propose la programmation<br />

suivante de cette interface :<br />

Compteur<br />

1 import java.rmi.Remote;<br />

2 import java.rmi.RemoteException;<br />

3 import java.rmi.server.UnicastRemoteObject;<br />

4 public class Compteur extends UnicastRemoteObject implements ICompteur {<br />

5 private int val;<br />

6 public Compteur() throws RemoteException {<br />

7 val=0;<br />

8 }<br />

9 public int next() throws RemoteException {<br />

10 int oldval=val;<br />

11 try {<br />

12 // pause de 1000 ms (i.e., 1 seconde)<br />

13 Thread.sleep(1000);<br />

14 } catch (InterruptedException e) {};<br />

15 oldval++;<br />

16 val=oldval;<br />

17 return val;<br />

18 }<br />

19 }<br />

Le scénario d’utilisation est le suivant : deux clients (correspondant à 2 JVM distinctes) appellent “simultanément”<br />

la méthode next du serveur (en fait, le client A se connecte, puis 100 ms plus tard, le client<br />

B se connecte).<br />

Questions :<br />

1. Combien de temps (approximativement) chaque client attend-il la réponse du serveur <br />

2. Quelle est la réponse renvoyée à chaque client <br />

3. Comment obtenir simplement une réponse plus cohérente (en modifiant l’implantation du serveur) <br />

Quelle est alors le temps d’attente de chaque client, toujours pour le même scénario, mais avec le<br />

nouveau serveur <br />

Exercice 5 :<br />

On propose l’interface et les classes suivantes :<br />

One<br />

1 import java.io.Serializable;<br />

2 public class One implements Serializable {<br />

3 public void one() {<br />

4 System.out.println("One.one()");<br />

5 }<br />

6 }<br />

1 import java.rmi.Remote;<br />

2 import java.rmi.RemoteException;<br />

3 public interface ITwo extends Remote {<br />

ITwo<br />

F. Rossi– 7 juillet 2002 IUP 3 (<strong>FC</strong>) p. 3 (1)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!