Professional Documents
Culture Documents
page 1
IPST-CNAM
Conception d'applications distribues en Java
Cycle C / TL16954
Mardi 15 Juin 2004
Sans document
Dure : 2 heures
Enseignants : LAFORGUE Jacques
MILLAN Thierry
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.
si aucune rponse alors + 0
si 1 rponse bonne alors +1
si 1 rponse fausse alors 1
Dans tous les cas, il existe au moins 1 rponse bonne et au moins 1 rponse fausse.
On ne compte les valeurs ngatives que partir de 10% du nombre de question du QCM.
On peut remarquer que cocher toutes les propositions d'une question revient ne rien cocher
(gal 0).
Il s'agit de faire une croix dans les cases de droite en face des propositions.
Si vous devez raturer une croix, faites-le correctement afin qu'il n'y ait aucune ambigut.
N'oubliez pas d'inscrire en en-tte du QCM, votre nom et prnom, votre numro de groupe de TP.
Si vous avez chang de groupe de TP en cours d'anne, indiquez les 2 numros de groupe en prcisant partir
de quel projet vous avez chang de groupe.
Ce QCM est constitu de 60 questions.
Vous avez donc une moyenne de 2 minutes par question.
Vous avez donc le droit de vous tromper sans pnalits jusqu' la hauteur de 6 points.
page 1
NOM:
page 2
PRENOM:
QCM
GROUPE DE TP :
Q1
X
Un package JAVA
1
est un rpertoire de fichiers JAVA (.class)
2
est une librairie de classes JAVA sous la forme d'un fichier binaire
3
est une archive de fichier .class dite "fichier .jar"
Q2
X
Q3
X
Q4
Q5
La classe Mere tant public, si <genre> est protected alors la variable x est visible dans
1
uniquement les classes Mere, Fille et FilleIndigne
2
uniquement les classes Mere, Fille, FilleIndigne et A, B et C
3
toutes les classes
Q6
Q7
Individutab[]=newIndividu[100];
Individuind=newIndividu();
ind.nom="DUPONT"
tab[0]=ind;
tab[0].nom="LAFONT"
System.out.println(ind.nom);
Ce code affiche:
1
DUPONT
2
LAFONT
page 2
page 3
QCM
Q8
publicclassExemple
{
publicVectorv;
publicExemple(){}
publicadd(Stringe)
{
v.addElement((Object)e);
}
}
DansunprogrammeJava:
ExempleE=newExemple();
E.add("EXEMPLE");
System.out.println(E.v.elementAt(0));
Ce code :
1
affiche "EXEMPLE"
2
affiche ""
3
dclenche une exception
Q9
X
X
Q 10
X
Q 11
Runnablep=newRunnable();
MonThreadq=newThread(p);
q.start();
MonThreadp=newMonThread();
p.start();
page 3
page 4
QCM
Q 12
Q 13
Q 14
X
X
En JAVA, avec RMI, tout paramtre d'une mthode distante d'un objet distribu
1
ne peut pas tre de type primitif (int, double, char, )
2
sa classe d'appartenance doit implmenter l'interface Serializable
3
sa classe d'appartenance ne peut pas tre une classe drive de InputStream et OutputStream
Q 15
En JAVA, avec RMI, plusieurs clients d'un objet distribu peuvent utiliser en parallle une mme
mthode distante
1
OUI
2
NON
Q 16
Q 17
Q 18
(X)
X
X
X
Dans une architecture distribu, un objet distribu peut-il utiliser les services d'un autre objet distribu Q 19
1
OUI
X
2
NON
En RMI, la commande d'excution de l'adaptateur d'objet peut tre :
1
java classpath "." sun.rmi.registry.RegistryImpl
2
java sun.rmi.registry.RegistryImpl 9110
3
java rmiRegistry 9110
page 4
Q 20
X
X
page 5
QCM
Choisir le(s) code(s) correct(s) de la mthode main de GrilleOD.java qui cre l'objet distribu
GRILLE
1
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
urlRegistry="rmi://"+hostRegistry+":"+portRegistry+"/";
Naming.rebind(urlRegistry+"GRILLE");
2
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
Naming.rebind(new GrilleOD(20,20, hostRegistry, portRegistry));
3
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
urlRegistry="rmi://"+hostRegistry+":"+portRegistry+"/";
Naming.rebind(urlRegistry+"GRILLE", new GrilleOD(20,20,urlRegistry));
Q 21
Choisir le(s) code(s) corrects de la mthode main d'un client de l'objet distribu GRILLE
1
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
// Connexion a l'objet distribu
urlRegistry="rmi://"+hostRegistry+":"+portRegistry+"/";
GrilleODInt grilleod = (GrilleODInt)Naming.lookup(urlRegistry+"GRILLE");
2
String hostRegistry = args[0];
String portRegistry = Integer.parseInt(args[1]);
// Connexion a l'objet distribu
urlRegistry="rmi://"+hostRegistry+":"+portRegistry+"/";
GrilleODInt grilleod = (GrilleODInt)Naming.lookup(urlRegistry);
3
// Connexion a l'objet distribu
GrilleODInt grilleod = (GrilleODInt)Naming.lookup("GRILLE");
Q 22
X
L'instruction rebind consiste enregistrer ,dans l'adaptateur d'objet de RMI, un objet distribu
1
OUI
2
NON
Q 23
X
Q 24
Q 25
Q 26
Q 27
X
page 5
X
(X)
X
X
page 6
QCM
Q 28
Dans une architecture distribue, un objet distribu peut crer d'autres objets distribus. Ces derniers
sont-ils ncessairement crs sur la mme machine ?
1
OUI
2
NON
Q 29
Q 30
Q 31
Q 32
En JAVA, les paramtres d'une interface quelconque doivent toujours correspondre des objets
srialiss
1
OUI
2
NON
Q 33
Dans le cadre du projet 2, on a mis au point une programmation mettant en uvre des multi-agents.
Chacun des ces agents taient-ils des clients d'un objet distribu?
1
OUI
2
NON
Q 34
Q 35
Dans le cadre du projet2, durant une mme session du programme, l'objet distribu GrilleOD
1
traite plusieurs clients
2
ne peut traiter qu'un client la fois
3
doit implmenter autant d'interface qu'il existe de client
Q 36
X
X
X
page 6
page 7
QCM
Q 37
X
Le code suivant est un extrait du code de RequeteHttp.java, permettant de dcoder une chane
provenant d'un formulaire HTML, o formulaire est la partie aprs le '?'
(Ex: formulaire =" NOM=LAFORGUE&PRENOM=Jacques&AGE=&MARIE=OUI")
Q 38
1publicvoiddecoderFormulaire(Stringformulaire)
2{
3 StringTokenizerstrtok=newStringTokenizer(formulaire);
4 while(strtok.hasMoreTokens())
5 {
6
StringTokenizerelement=
7
newStringTokenizer(strtok.nextToken());
8
Stringchamp="";
9
Stringvaleur="";
10
if(element.hasMoreTokens())champ=element.nextToken();
11
if(element.hasMoreTokens())valeur=element.nextToken();
12
_champs.add(champ);
13
_valeurs.add(valeur);
14 }
15}
10 et 11
3 et 7
12 et 13
Q 39
Q 40
Une communication par socket entre deux programmes JAVA permet d'changer
1
des objets JAVA srialiss
2
des valeurs de types primitifs
3
des objets distribus
Q 41
X
X
Q 42
X
La commande javac
1
cre un fichier .exe excutable par le systme d'exploitation
2
cre un fichier .class qui sera ensuite interprt par la machine virtuelle
Q 43
La commande java
1
prend en entre un fichier .java afin de l'interprter
2
prend en entre un fichier .class afin de l'interprter
3
cre un fichier .exe excut par le systme d'exploitation
Q 44
Un applet est
1
un programme Java autonome
2
un objet Java qui hrite de la classe prdfinie Applet
3
excut par le navigateur
Q 45
page 7
X
X
X
X
page 8
QCM
Une page HTML contient un applet. Cette page est envoy par un serveur Http votre navigateur.
Ensuite, le navigateur interprte la page HTML et demande au serveur Http de lui envoyer le code de
l'applet,
1
sous la forme d'un programme Java autonome
2
sous la forme d'un fichier jar dans lequel les fichiers .class de l'applet sont stocks
3
sous la forme d'un script CGI qui sera ensuite interprt par le navigateur
Q 46
Q 47
En TP, vous avez utilisez l'argument classpath pour compiler et excuter vos programmes. De plus
vous avez utilisez l'instruction import <package>.*; pour importer les packages utiliss.
Cet argument (-classpath) pour rle de :
1
dsigner la liste des noms de package que vous importez
2
dsigner la liste des rpertoires contenant les packages que vous importez
3
indiquer que vous utilisez la variable $CLASSPATH
Q 48
Q 49
X
Q 50
En JAVA, un tableau
1
peut contenir des lments de type primitif
2
peut contenir des rfrences d'objet JAVA
3
ne peut pas contenir des rfrences d'objet JAVA
Q 51
X
X
L'instruction lookup permettant d'utiliser les services d'un objet distribu accepte en paramtre une
chane qui est la concatnation d'une addresse URL et du nom du service de l'objet distribu
1
OUI
2
NON
Q 52
Un package Java ne peut contenir qu'une seule classe implmentant la mthode main
1
OUI
2
NON
Q 53
Si on utilise 2 adaptateurs d'objets distribus sur la mme machine, ils doivent s'excuter sur des ports Q 54
diffrents
1
OUI
X
2
NON
En Java, les exceptions sont des objets
1
OUI
2
NON
Q 55
X
Q 56
page 8
page 9
QCM
Q 57
Dans le cadre du projet 3, la communication entre le dmon Http et le navigateur se fait en utilisant
des sockets
1
OUI
2
NON
Q 58
Q 59
X
Q 60
Commentaires:
page 9