TP 3
TP 3
TP 3
Exercice 1 :
But : écrire une 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.
Voici la déclaration des méthodes distantes :
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 :
// A compléter
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 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. On veut maintenant que le serveur, prévienne le client quand le solde de son compte devient négatif
ou inférieur à une valeur choisie par le client. Quel mécanisme, vu en cours, peut être utilisé ?
Modifiez l’interface et les classes pour gérer cette situation.
1/2
Exercice 2 : Calcul parallèle
On désire concevoir une application client-serveur à même de réaliser un calcul parallèle pour la
multiplication d'un ensemble de n vecteurs à 4 dimensions par une matrice 4x4.
a) Ecrire une application serveur permettant de réaliser le produit d’un vecteur par une matrice et
rendant le résultat.
b) Ecrire une application serveur permettant de réaliser le produit de n vecteurs par une matrice M et
rendant les résultats.
c) Ecrire une application cliente initialisant n vecteurs et distribuant leurs produits par une matrice M sur
n serveurs disponibles.
d) Reprendre la question précédente de manière à utiliser des Threads pour réaliser une programmation
parallèle.
2/2