0% ont trouvé ce document utile (0 vote)
107 vues3 pages

tp2 RMI

Transféré par

Fatoumata Ouane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
107 vues3 pages

tp2 RMI

Transféré par

Fatoumata Ouane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

TP-RMI

Objectif : manipuler les objets accessibles à distances (RemoteObject) et objets passé par
copie (sérialisable) :

Exercice 4 :

Contenu de l’application :

Constituée de deux interfaces : Etudiant.java et Promotion.java.

- L'interface Etudiant.java est relative aux données associées à un étudiant : c'est à


dire son nom, son prénom, son numéro d'étudiant ainsi qu'un ensemble de notes.
Chaque étudiant passe plusieurs épreuves. Chaque épreuve donne lieu à une
note. Chaque note est associée à un coefficient. Un coefficient est une donnée de
type double dont la valeur est comprise entre 0 et 1. La somme des coefficients de
toutes les épreuves d'un étudiant doit être égale à 1. Ces différentes épreuves sont
stockées dans un ensemble d'instance de la classe EpreuveCoeff.java.

L'interface Etudiant.java propose trois méthodes:


● ajouterEpreuve: qui permet d'ajouter une épreuve à un étudiant. Une
épreuve est constituée d'un nom (ex: "physique"), d'une note et d'un
coefficient indiquant le poids de l'épreuve dans la moyenne générale de
l'étudiant.

● afficherListeEpreuves: provoque l'affichage par le serveur de

la liste des épreuves associées à l'étudiant (vous pouvez changer la


signature de cette méthode pour que afficher la site coté client).

● calculerMoyenne : calcule la moyenne générale de toutes les épreuves d'un


étudiant conformément aux coefficients de chaque épreuve.

- L'interface Promotion.java permet:

● de créer un nouvel étudiant (méthode ajouterEtudiant).

● de rechercher un étudiant précédemment enregistré (méthode


rechercherEtudiant). Grâce à la référence d'objet ainsi récupérée, le client peut
alors demander le calcul de la moyenne générale de l'étudiant.

● de calculer la moyenne générale de toute la promotion (méthode


calculerMoyennePromo).

Travail à faire :

 Proposez un serveur ainsi qu'une classe d'implémentation pour chacune des


interfaces accessibles à distance.
 proposez un client qui déclare plusieurs étudiants ayant passés plusieurs épreuves.
Puis, testez votre solution en affichant les épreuves, la moyenne de chaque étudiant
ainsi que la moyenne générale de la promotion.

Exercice 5 :

But : écrire une simple application répartie permettant de gérer des comptes bancaires. Un
serveur gérera tous les comptes bancaires et permettra à des clients de se connecter et
d’effectuer les opérations suivantes :
- Créer un compte en banque.
- Consulter la position d’un compte
- Ajouter une somme sur un compte
- Retirer une somme d’un compte si on ne dépasse pas le découvert autorisé.

Voici la déclaration des méthodes distantes (interface Banque) :

void creerCompte(String id, double somme, String nom, String prenom)


void crediterCompte(String id, double somme)
void debiterCompte(String id, double somme)
Position position(String id)
Client getClient(String id)

Où id est une chaîne permettant d’identifier un compte et Position est une classe stockant le
solde du compte et la date (de type java.util.Date) de dernière opération :

public class Position implements Serializable {


private double solde;
private Date derniereOperation;

public Position(double solde) {


this.solde = solde;
this.derniereOperation = new Date();
}
public Date getDerniereOperation() {
//à compléter
}

public void setDerniereOperation(Date derniereOperation) {


//à compléter
}

public double getSolde() {


//à completer
}

public void setSolde(double solde) {


//à completer
}
public String toString() {
return "solde = "+solde+" date dernière opération
"+derniereOperation;
}
}

Récupérez les fichiers de cet exercice à partir du répértoire /GestionBanque. Sauvez ces
fichiers dans un sur votre machine.
1. Ecrire une interface Banque dérivant de Remote qui déclare les méthodes distantes.

2. Ecrire la classe Compte qui permet de consulter la position d’un compte, d’ajouter et
de retirer une somme à un compte.

3. Ecrire une classe BanqueImpl qui gère la partie serveur de notre application répartie.
Les comptes seront stockés dans une Hashtable (ou un tableau, ou une liste) qui
permettra de retrouver un compte à partir de son identification.

4. Ecrire une classe BanqueClient qui gère la partie client de notre application répartie.
L’application présentera un petit menu (sous forme textuelle) permettant d’accéder aux
diverses méthodes.

5. Compiler toutes les classes, générer les stubs (rmic BanqueImpl …),
6. Lancer le serveur

7. Lancer le clients et tester l’application répartie.

Vous aimerez peut-être aussi