Rmi
EXEMPLE DAPPLICATION
ADDITION A DISTANCE
DISPOSITIF
CONCEPTION
INTERFACE
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Tache extends Remote {
public int addition(int a, int b) throws RemoteException;
}
SERVEUR
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;
public class Serveur extends UnicastRemoteObject implements Tache {
public Serveur() throws RemoteException {
super(); }
public int addition(int a, int b) throws RemoteException {
return a + b; }
public static void main(String[] args) {
try {
Serveur objet = new Serveur();
Naming.rebind("rmi://kelvin.cnam.fr:2048/Addition", objet);
System.out.println("Serveur prêt");
}
catch(Exception e) {
System.err.println("Erreur: " + e.getMessage());
}
}
}
CLIENT
import java.rmi.*;
public class Client {
static int resultat;
public static void main(String[] args) {
try {
Tache reference = (Tache)Naming.lookup("rmi://kelvin.cnam.fr:2048/Addition");
resultat = reference.addition(Integer.parseInt(args[0]), Integer.parseInt(args[1]));
System.out.println("La somme est: " + resultat); }
catch(Exception e) { System.err.println("Erreur: " + e.getMessage()); }
} }
COMPILATION
>javac Tache.java
>javac Serveur.java
>javac Client.java
>rmic Serveur
EXECUTION
kelvin%rmiregistry 2048 &
kelvin%java Serveur &
kelvin%Serveur prêt
>java Client 1 1
>La somme est: 2
FENETRE CLIENT
FENETRE SERVEUR
CONCLUSION