Examen de Juin 2005 page 1 Applicatons distribuées avec Java
page 1
IPST-CNAM
Conception d'applications distribuées en Java
Cycle C / TL16954
Mardi 21 Juin 2004
Sans document
Durée : 3 heures
Enseignants : LAFORGUE Jacques
MILLAN Thierry
Session de JUIN
1. Questions de cours (1h30) ............................................................................................................................. 1
2. EXERCICE 1 (30 mn) ................................................................................................................................... 8
3. EXERCICE 2 (1h) ....................................................................................................................................... 10
4. Eléments de langage JAVA : ........................................................................ Error! Bookmark not defined.
1. Questions de cours (1h30)
Mode d'emploi :
Ce sujet est un QCM dont les questions sont de 3 natures :
les questions à 2 propositions: dans ce cas une seule des 2 propositions est bonne.
+1 pour la réponse bonne
1 pour la réponse fausse
les questions à 3 propositions dont 1 seule proposition est bonne
+ 1 pour la réponse bonne
½ pour chaque réponse fausse
les questions à 3 propositions dont 1 seule proposition est fausse
+ ½ pour chaque réponse bonne
1 pour la réponse fausse
Il s'agit de faire une croix dans les cases de droite en face des propositions sauf pour la question
10 où il faut écrire les réponses.
On peut remarquer que cocher toutes les propositions d'une question revient à ne rien cocher
dutout (égal à 0) et répondre au hasard est une très mauvaise stratégie.
Si vous devez raturer une croix, faites-le correctement afin qu'il n'y ait aucune ambiguïté.
N'oubliez pas d'inscrire en en-tête du QCM, votre nom et prénom, votre numéro de groupe de TP.
Si vous avez changé de groupe de TP en cours d'année, indiquez les correspondances projets/groupe.
Ce QCM est constitué de 45 questions (1h30) : 2 minutes par question en moyenne.
Examen de Juin 2005 page 2 Applications distribuées avec Java
page 2
NOM:
PRENOM:
GROUPE DE TP :
Le langage JAVA est portable sur la plupart des plateformes (windows,unix,linux,....)
Q 1
1
OUI
X
2
NON
La compilation d'un fichier .java (usage de la commande javac)
Q 2
1
crée un et un seul fichier .class
2
crée un fichier .jar
3
crée autant de fichier .class que de classe définis dans le fichier .java
X
L'argument-classpath de la commande de compilation javac
Q 3
1
désigne la liste des packages utilisés dans le fichier compilé
2
désigne la liste des répertoires qui contiennent les packages utilisés dans le fichier compilé
X
3
désigne la liste des répertoires qui contiennent les fichiers .java des classes utilisées dans le
fichier compilé
L'argument -classpath peut contenir le nom de fichiers .jar contenant les classes utilisées dans le
fichier compilé
Q 4
1
OUI
X
2
NON
Un tableau JAVA
Q 5
1
peut contenir des éléments de types primitifs hétérogènes
2
peut contenir des éléments de types de classe hétérogènes
X
3
peut contenir des éléments de types d' Interface
X
La classe prédéfinie Vector :
Q 6
1
peut contenir des éléments de types primitifs hétérogènes
2
peut contenir des éléments de types de classe hétérogènes
X
3
peut contenir des éléments de types d' Interface
X
Une classe Java
Q 7
1
peut hériter de plusieurs classes
2
peut hériter d'une classe et implémenter une interface
X
Une classe Java peut implémenter plusieurs interfaces
Q 8
1
OUI
X
2
NON
Le principe de "sérialisation" en Java consiste à utiliser l'interface Serializable
Q 9
1
Une classe héritant de UnicastRemoteObject doit implémenter cette interface
2
Cette interface permet d'écrire un objet JAVA dans un socket
X
3
Cette interface permet d'écrire un objet JAVA dans un fichier binaire
X
Examen de Juin 2005 page 3 Applications distribuées avec Java
page 3
Compléter le tableau de visibilité suivant (0,25 point par réponse juste
Q 10
x est visible dans les classes :
Mère
Toutes (Mère, Fille, FilleIndigne, A, B, C, E)
Mère, Fille, FilleIndigne
Le package (Mère, Fille, A, B, C)
Un Thread est un objet JAVA dont la classe d'appartenance
Q 11
1
est la classe Thread
2
hérite de la classe Thread
X
3
implémente l'interface Runnable
X
Soit la déclaration de la classe suivante :
public class MonThread extends Thread
{
public void run()
{
// traitement du thread
}
}
Pour créer le thread et l'exécuter, il faut faire les instructions suivantes:
Q 12
1
MonThread p = (MonThread)(new Thread());
p.start()
2
Runnable p = new Runnable ();
MonThread q = new Thread(p);
q.start();
3
MonThread p = new MonThread ();
p.start();
X
Un socket en JAVA peut être une instance de la classe :
Q 13
1
ServerSocket
2
Socket
X
3
Thread
Class
Mere
{
<genre>
int
x;
}
Class Fille
Class
FilleIndigne
Package X
Package Y
Class A
Class B
Class C
Class E
Examen de Juin 2005 page 4 Applications distribuées avec Java
page 4
Pour obtenir un socket on peut :
Q 14
1
créer une instance de Socket avec l'adresse IP de la machine sur laquelle est créé le socket et un
numéro de port disponible
X
2
créer une instance de Socket avec uniquement un numéro de port disponible
3
accepter un socket à partir d'une instance de la classe ServerSocket
X
Un socket est utilisé pour échanger une information entre deux applications Java (un serveur et un
client par exemple). Cette information peut être :
Q 15
1
n'importe quel objet Java
2
n'importe quel objet Java dont la classe implémente l'interface Serializable
X
3
un tableau Java de byte
X
Avec Java, en RMI, les paramètres d'une méthode distante d'un objet distribué
Q 16
1
sont écrits sur un socket
X
2
sont écrits dans une mémoire partagée entre l'appelant et l'appelé
Un objet distribué est :
Q 17
1
pour le serveur un objet qui hérite de UnicastRemoteObject
X
2
pour le client un objet qui hérite de UnicastRemoteObject
3
pour le client une interface qui hérite de Remote
X
Pour créer un objet distribué en RMI avec Java, on peut : :
Q 18
1
créer un thread côté serveur dont la méthode run se met en attente de lecture sur un socket créé
par le client
2
créer un socket côté serveur qui est envoyé au client afin qu'il l'utilise pour appeler les
méthodes distantes de l'objet distribué
3
créer un objet dont la classe d'appartenance hérite de la classe UnicastRemoteObject et
l'enregistre dans un adaptateur
X
Le compilateur IDL de RMI est rmic
Q 19
1
OUI
X
2
NON
On a 2 machines A et B. On crée sur chacune d'elle un adaptateur. Ces deux adaptateurs peuvent avoir
le même numéro de port
Q 20
1
OUI
X
2
NON
Un ORB (Object Request Broket) est :
Q 21
1
un objet Java dont la classe d'appartenance hérite de la classe UnicastRemoteObject
2
des classe prédéfinies du langage Java, un IDL et un adaptateur
X
3
un ensemble de composants logiciels permettant de mettre en oeuvre la création et l'utilisation
d'objets distribués
X
En JAVA, avec RMI, le compilateur IDL
Q 22
1
permet de compiler la classe qui définit un objet distrib
2
permet de créer les amorces et les squelettes d'un objet distribué
X
3
permet de créer un programme JAVA appelé "Middleware" assurant la communication entre
les clients et les serveurs
Pour utiliser les méthodes distantes d' un objet distribué, il doit être enregistré dans un adaptateur
Q 23
1
OUI
X
2
NON
Examen de Juin 2005 page 5 Applications distribuées avec Java
page 5
On a deux machines "ondine" et "telline". On crée sur "ondine" un adaptateur sur le port 9200. Sur la
machine "telline", on crée un programme Java qui réalise l'instruction suivante :
Naming.bind("rmi://ondine:9200/MON_OD", new MonOD()). où MonOD hérite de
UnicastRemoteObject et implémente l'interface MonODInt.
Cette instruction est-elle valide?
Q 24
1
OUI
2
NON
X
On a deux machines "ondine" et "telline".
Sur "ondine" on crée un objet distribué (de classe ServOD) qui est enregistré dans un adaptateur de
"ondine", sur le port 9200, sous le nom "SERVEUR_OD". Cet objet distribué a la méthode distante
void creerOD(String ident) qui crée un objet distribué de classe MonODet l'enregistre dans
l'adaptateur de "ondine".
Depuis un programme Java de "telline" on veut créer un objet distribué sur "ondine" et utiliser une
méthode distante (do) de cet objet distribué, le(s) code(s) juste(s) peut être:
Q 25
1
LocateRegistry.createRegistry(9200);
MonOD monod = new MonOD();ok=true;
while(ok){
try{Naming.rebind("rmi://ondine:9200/OBJET_1",monod);}
catch(Exception e){ok=false;} }
monod.do();
2
MonOD monod=null; ok=true;
while(ok){
try{ServODInt servod = (ServODInt)Naming.lookup("rmi://ondine:9200/SERVEUR_OD");}
catch(Exception e){ok=false;} }
monod = servod.creerOD("OBJET_1");
monod.do();
3
MonOD monod=null;
ServODInt servod = (ServODInt)Naming.lookup("rmi://ondine:9200/SERVEUR_OD");
servod.creerOD("OBJET_1"); ok=true;
while(ok){
try{ monod = (MonODInt)Naming.lookup("rmi://ondine:9200/OBJET_1");}
catch(Exception e){ok=false;} }
monod.do();
X
Un objet distribué est utilisé par plusieurs clients en même temps. Pour que cette utilisation partagée
soit possible il faut :
Q 26
1
nécessairement préfixer toutes les méthodes distantes par le mot réservé "synchronized"
2
nécessairement préfixer la classe de l'objet distribué par le mot réservé "synchronized"
3
préfixer par le mot réservé "synchronized"que les méthodes distantes qui le nécessitent
X
Deux clients qui font appel en même temps à une méthode distante synchronisée :
Q 27
1
déclenchent l'exception "RemoteMethodSynchronizedException"
2
un des appels est réalisé, le deuxième est en attente de la fin d'appel du premier
X
La classe d'un objet distribué peut :
Q 28
1
hériter de la classe Thread
2
implémenter l'interface Runnable et implémenter l'interface de ses méthodes distantes
Dans une architecture d'objets distribués avec RMI en Java, il est possible de :
Q 29
1
créer un objet distribué sur la machine A et utilser ses méthodes distantes depuis un
programme qui s'exécute sur la machine A
X
2
créer un objet distribué sur la machine A, un autre sur la machine B et utiliser mutuellement
leurs méthodes distantes
X
3
créer un objet distribué sur la machine A, créer son adaptateur sur la machine A, et créer un
autre objet distribué sur la machine B et l'enregistrer dans l'adaptateur de la machine A
1 / 11 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 !