Cours Langage java remote method invocation (RMI)

Extrait du cours cours Langage java remote method invocation (RMI)

Introduction
RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine locale (objet locaux).
RMI apparaît avec Java 1.1 et est complètement intégré dans Java 1.1 donc est gratuit (¹CORBA)
C’est un bon pas vers CORBA. C’est du CORBA allégé avec ses avantages (c’est plus simple) et ses inconvénients (tout doit être Java coté client comme coté serveur). Si on veut être hétérogène coté client et coté serveur, il faut utiliser CORBA.
RMI en pratique
fonctionne dans les applications Java 1.1 et dans appletviewer.
pas dans IE 3.0. Dans netscape 3.0 la classe  sunw.io.ObjioAppletHelperdoit être  présente dans le répertoire repéré par CODEBASE) et l’URL doit être htpp://(et non file://).
Programmation avec RMI
Pour créer une application RMI, suivre les étapes suivantes.

Remote method invocation
1°) définir les interfaces pour les classes distantes.
2°) Créer et compiler les implémentations de ces classes.
3°) Créer les classes pour la souche et le skeleton à l’aide de la commande rmic .
4°) Créer et compiler une application serveur.
5°) lancer le rmiregisteret lancer l’application serveur.
6°) Créer et compiler un programme client qui accède à des objets distants du serveur.
7°) lancer ce client.
Un exemple classique :serveur bancaire
Un gestionnaire de comptes bancaires est capable de gérer plusieurs comptes. Il sera placé sur une machine distante, interrogé et
manipulé par des clients. exemple inspiré de [JDH] chapitre 12.
1°) définir les interfaces pour les classes distantes.
Les classes placées à distance sont spécifiées par des interfaces qui doivent implémenter java.rmi.Remoteet dont les méthodes lèvent une
java.rmi.RemoteExceptionexception. On définit alors 2 interfaces CreditCardet CreditManager.
package credit;
import credit.*;
import java.rmi.*;
public interface CreditCard extends Remote {
/** retourne le credit sur ce compte */
public float getCreditLine() throws
RemoteException;
/** permet de faire un achat de amount francs.
Leve une exception si la somme est supérieure
au credit bancaire.*/
public void makePurchase(float amount, int
signature) throws RemoteException,
InvalidSignatureException,
CreditLineExceededException;
/** positionne la signature de ce compte
bancaire. */
public void setSignature(int pin) throws
RemoteException;
}
2°) Créer et compiler les implémentations de ces classes (suite)
package credit;
import java.rmi.*;
import java.rmi.server.*;
import java.util.Hashtable;
public class CreditManagerImpl extends
UnicastRemoteObject implements
CreditManager {
private static transient Hashtable accounts =
new Hashtable();
/** Le constructeur par défaut qui ne fait rien
d’autre qu’appeler super() */
public CreditManagerImpl() throws
RemoteException { }
/** Crée un nouveau compte. Entre autre ajoute
le nouveau client dans la hashtable accounts */
public CreditCard newCreditAccount(String
customerName) throws RemoteException {
CreditCardImpl newCard = null;
try {
newCard = new
CreditCardImpl(customerName);
} catch (DuplicateAccountException e) {
return null;
}
accounts.put(customerName, newCard);
return newCard;
}

………
Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Cours Langage java remote method invocation (RMI) ( 115 KO)  (Cours PDF)
Remote method invocation

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *