M2 BD IA — BDED
Semaine du 6/10 au 10/10/2009
TP 1 Illustration des concepts objets distribu´es avec Java-RMI
Ce TP fera l’objet d’un compte rendu `
a r´
ealiser par binˆ
ome et `
a rendre avant le 31/10/2008 (maximum 30
pages hors code en annexe)
Exercice 1. Prise en main de Java-RMI
Le but de ce premier exercice (application directe du cours) est de prendre en main l’environnement Java-
RMI et de se familiariser avec le processus de d´
eveloppement d’applications objets distribu´
es. R´
ealiser le pro-
gramme client serveur HelloWolrd vu en cours.
1. Tester l’ensemble sur une seule machine.
2. Observer la g´
en´
eration du stub et du squelette avec les JDK 1.4 et 1.5 ou 1.6, que constatez vous ? Quelles
sont les ´
evolutions d’un JDK `
a l’autre ? Compl´
eter vos observation en utilisant la commande rmic --
keep
3. S´
eparer le code du client et celui du serveur dans deux r´
epertoires, quels sont les fichiers n´
ecessaires `
a
chacun pour la compilation et pour l’ex´
ecution ?
4. Recompiler client et serveur avec la mˆ
eme version de JDK, lancer le serveur et le client sur deux machines
diff´
erentes de mˆ
eme architecture.
5. R´
ep´
eter l’op´
eration pr´
ec´
edente sur deux machines d’architecture diff´
erentes en prenant garde d’activer
la mˆ
eme version de la machine virtuelle.
6. Peut-on utiliser 3 machines afin d’avoir un r´
ef´
erentiel d’interfaces s´
epar´
e, que constatez-vous ?
7. Modifier le code de votre application afin de mettre en place le t´
el´
echargement automatique de classes via
un serveur Web. Utiliser votre r´
epertoire public html afin de permettre le partage des classes depuis
l’un des serveurs ufrsciencestech/kundera ou depinfo/genet.
8. Exp´
erimenter la m´
ethode LocateRegistry, r´
esumer son fonctionnement.
9. Qu’est ce que le service JNDI propos´
e dans Java EE, quelles sont les relations entre JNDI et Java RMI.
Exercice 2.
R´
ealiser un programme de simulation de gestion de compte bancaires. Vous devez obligatoirement adopter
une approche objet et d´
efinir une classe compte permettant la cr´
eation d’un compte, proposant les op´
erations
de d´
epˆ
ot, retrait, affichage du solde et permettant un archivage des op´
erations effectu´
ees.
Lancer plusieurs clients simultan´
ement. Que se passe-t-il ? Comment est (doit-ˆ
etre) g´
er´
ee la concurrence ?
Comment r´
ealiser une application qui g`
ere 200 000 comptes ? Exp´
erimentez le pattern de d´
eveloppement
ObjectFactory.
Que se passe t’il cˆ
ot´
e client si le serveur est arrˆ
et´
e puis relanc´
e ? Quelles solutions peut-on envisager pour
r´
esoudre ce probl`
eme ?
– Exp´
erimentez les fonctionnalit´
es fournies par le package activation.
Utiliser les r´
ef´
erences persistantes du m´
ecanisme d’activation. ´
A quel type de probl`
emes sont-elles une
solution ?
Exercice 3. Objets mobiles
Reprendre l’exercice pr´
ec´
edent, envoyer `
a la demande du client un objet compte et effectuer le calcul du
solde sur le client.
– R´
ealiser le programme de serveur g´
en´
erique permettant la mobilit´
e des objets Java (exemple du cours).
Modifier le programme afin de r´
ealiser un objet mobile pouvant se d´
eplacer de serveur en serveur en
utilisant une route d´
ecrite dans un fichier ou dans un tableau.
Exercice 4. Objets distribu´
es et persistance
Reprendre l’exercice 2, stocker les valeurs des attributs d’un compte et les transactions r´
ealis´
ees dans un
base de donn´
ees au moyen d’un connexion JDBC
Identifier les probl`
emes de concurrence et de synchronisation.
En d´
eduire des r`
egles de programmation.
Eric Leclercq — D´
epartement IEM — http://ufrsciencestech.u-bourgogne.fr 1
Montrer comment les techniques vues dans l’exercice 2 peuvent ˆ
etre appliqu´
ees dans le cas de la persis-
tance d’objets distribu´
es.
Notes :
Plusieurs versions de J2SE (jdk) sont install´
ees sur les serveurs, l’ensemble des stations SUN Solaris et sur
les machines Linux. Les installations r´
esident sous /usr/local. Afin de pouvoir utiliser la version choisie,
vous devez positionner la variable d’environnement PATH comme suit et JAVA HOME :
export PATH=/usr/local/java-1.4/bin:$PATH
export JAVA_HOME=/usr/local/java-1.4
Nom externe Nom local OS/Architecture JDK
depinfo.u-bourgogne.fr genet.iem Solaris 10 x64 JDK 1.2, 1.4, 1.5, 1.6
stendhal.iem Solaris 10 x64 JDK 1.2, 1.4, 1.5, 1.6
MI105-03,08,05,10-14,16 Solaris 10 SPARC JDK 1.4, 1.5
MI105-06,07,09,17-20,23,24 Solaris 10 x64 JDK 1.2, 1.4, 1.5, 1.6
ufrsciencestech.u-bourgogne.fr kundera.iem Debian JDK 1.4,
MI104-01 `
a 12 Fedora Core 8 JDK 1.4, 1.5
Afin d’observer pr´
ecisement le comportement de Java RMI, ne pas utiliser d’environnement de d´
eveloppement
mais un simple ´
editeur comme vi, xemacs, nedit ou bluefish.
Le service rmiregistry ´
ecoute par d´
efaut sur le port 1099. Si vous partagez une machine avec d’autres
binˆ
omes, utiliser un autre port.
Eric Leclercq — D´
epartement IEM — http://ufrsciencestech.u-bourgogne.fr 2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !