Aller au contenu
Article Publié le

Cours Langage java remote method invocation (RMI)

PDF 12 vues 0 téléchargement
Commentaires
Télécharger

Résumé

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

.........
Informations
Format
PDF
Domaine
Cours JAVA/J2EE
Publié le
24 août 2016
Vues
12

Signaler un contenu

Connectez-vous pour signaler cette publication : les administrateurs doivent pouvoir vous répondre.

Commentaires (0)

Connectez-vous pour laisser un commentaire.

Soyez le premier à commenter

Partagez votre avis sur ce document — questions, retours ou votre propre expérience.

Ressources liées

Cours JAVA/J2EE
Commentaires
Télécharger