2013-14 JEE S6
J.-M. Busca 1/2 28/05/2014
Java Enterprise Edition – Examen
Durée : 1h30. Aucun document ou appareil électronique n’est autorisé. Les exercices sont indépendants.
Le barème est indicatif.
Exercice 1 – Threads (5 points)
Question 1. Rappelez les critères d’arrêt de la JVM. Dans une application, quels sont les threads que l’on
doit déclarer daemon ?
Question 2. Listez les méthodes et constructions du langage Java permettant la synchronisation, au sens
large, des threads.
Question 3. Développez la classe MaCollection, contenant une collection de String et dotée des
méthodes boolean add(String), boolean remove(String) et boolean contains(String)
permettent respectivement d’ajouter, retirer et chercher une chaine. Ces méthodes ont implémentées
de façon à (1) pouvoir être appelées par plusieurs threads en même temps, (2) maximiser le degré de
parallélisme des threads, sachant que la recherche est considérée comme longue.
Exercice 1 – Java Remote Method Invocation (4 points)
Question 1. Expliquez l’intérêt d’utiliser RMI dans une application Java composée de processus
s’exécutant sur plusieurs calculateurs. Comparez par rapport à la solution consistant à échanger des
messages par socket.
Question 2. Indiquez le nom et le rôle des processus mis en œuvre dans une architecture RMI. Donnez
l’ordre dans lequel on doit les lancer, et expliquez pourquoi.
Question 3. Dans l’architecture RMI, un objet local et un objet distant interagissent au travers d’une
interface définie à l’avance et connue des deux parties. Expliquez pourquoi alors, lors d’un appel de
méthode distante, l’objet local et/ou l’objet distant peut recevoir un objet dont il ne connait pas la
classe. Expliquez le mécanisme mis œuvre par RMI pour résoudre ce cas de figure.
Question 4. Écrivez en Java l’interface d’un service bancaire accédé à distance par RMI. Cette interface
s’appelle ServiceBancaire et propose les méthodes suivantes :
float consulterSolde(String idCompte)
boolean crediterDebiter(String idCompte, float montant)
Note : on ne demande que la définition de l’interface, pas le code de l’objet distant qui l’implémente.
Exercice 3 – Interface graphique Swing (4 points)
Question 1. Expliquez l’intérêt d’utiliser Swing pour développer une interface graphique, par rapport à
l’ancienne bibliothèque AWT.