You are on page 1of 9

Examen de Juin 2004

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

Correction Session de JUIN

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

les questions 3 propositions dont 1 seule proposition est bonne


si aucune rponse alors + 0
si 1 rponse bonne alors + 1
si 1 rponse fausse alors
si 2 rponses fausses alors 1

les questions 3 propositions dont 2 propositions sont bonnes.


si aucune rponse alors + 0
si 1 rponse bonne alors +
si 2 rponses bonnes 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

Examen de Juin 2004

NOM:

page 2

PRENOM:

QCM

GROUPE DE TP :

Le langage JAVA est un langage orient objet


1
OUI
2
NON

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

L'en-tte de dclaration d'une mthode main d'une classe JAVA peut-tre:


1
static public void main(String args[])
2
static public void main(int nb_args, String args[])
3
void main(int nb_args, String args[])

Q3
X

L'instruction JAVA permettant de lever une exception est:


1
throws Exception;
2
throw new Exception("Erreur");
3
catch (Exception e)
{
System.out.println("Erreur");
}

Q4

Si <genre> est private alors la variable x est visible dans


1
uniquement les classes Mere, Fille et FilleIndigne
2
uniquement la classe Mere
3
uniquement les classes Mere, A, B et C

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

Examen de Juin 2004

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

Le principe de "srialisation" en Java consiste utiliser l'interface Serializable


1
Cette interface permet d'crire un objet JAVA dans un fichier binaire
2
Cette interface permet d'crire un objet JAVA dans un socket
3
Une classe hritant de UnicastRemoteObject doit implmenter cette interface

Q9
X
X

Le mot clef rserv du langage JAVA: interface


1
permet de dclarer des mthodes abstraites
2
permet de dclarer les prototypes des mthodes appartenant un package

Q 10
X

Soit la dclaration de la classe suivante :


publicclassMonThreadextendsThread
{
publicvoidrun()
{
//traitementduthread
}
}

Q 11

Pour crer le thread et l'excuter, il faut faire les instructions suivantes:


MonThreadp=(MonThread)(newThread());
1
p.start()
2

Runnablep=newRunnable();
MonThreadq=newThread(p);
q.start();

MonThreadp=newMonThread();
p.start();

page 3

Examen de Juin 2004

page 4

QCM

Soit l'architecture d'un projet suivante :


projet
DemonHttp.java
myhttp
RequeteHttp.java
LoadClassFile.java
compil.sh
o myhttp est un package utilis par le programme DemonHttp.java dans lequel la commande import
myhtpp.*; est faite.
On est dans le rpertoire projet/ , pour compiler ce programme, laquelle de ces commandes est juste
1
javac classpath "myhhtp" DemonHttp.java
2
javac classpath "." DemonHttp.java

Q 12

En JAVA, avec RMI, un objet distribu


1
est un objet JAVA qui est chang entre le serveur et le client
2
est un objet qui hrite de la classe RemoteObject
3
est un objet JAVA cr puis enregistr dans l'adaptateur par l'utilisation de l'instruction rebind

Q 13

En JAVA, avec RMI, un objet distribu


1
doit hriter de la classe UniCastRemoteObject
2
doit implmenter une interface contenant les mthodes distantes de l'objet distribu
3
doit implmenter l'interface Serializable

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

Dans une architecture distribue


1
les amorces sont utiliss par l'objet distribu
2
les squelettes sont utiliss par le client
3
les squelettes sont utiliss par l'objet distribu

Q 17

En JAVA, avec RMI, le compilateur IDL (rmic)


1
permet de crer les objets distribus
2
permet de crer les amorces et les squelettes
3
permet de crer un programme JAVA appel "Middleware" assurant la communication entre
les clients et les serveurs

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

Examen de Juin 2004

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

L'instruction lookup permet de rcuprer


1
la rfrence de l'objet distribu
2
la rfrence de l'amorce de l'objet distribu

Q 24

En JAVA, avec RMI, un objet distribu est


1
une instance d'une classe driv de la classe Remote
2
une instance d'une classe driv de la classe UniCastRemoteObject
3
une instance d'une classe driv de la classe RemoteObject

Q 25

Toutes les mthodes distantes d'un objet distribu


1
doivent appartenir la mme interface
2
peuvent appartenir plusieurs interfaces
doivent toutes tre implmentes dans le mme objet distribu

Q 26

Un dmon Http est un serveur de socket


1
OUI
2
NON

Q 27
X

page 5

X
(X)

X
X

Examen de Juin 2004

page 6

QCM

Soit l'extrait de code suivant


ServerSocket sos = new ServerSocket(9100);
while (true)
{
Socket soc = sos.accept();
PrintStream os = new PrintStream(soc.getOutputStream());
BufferedReader is = new BufferedReader(new
InputStreamReader(soc.getInputStream()));
String requete = is.readLine();
// Traitement de la requete HTTP
soc.close();
}
1
Ce code contient une erreur
2
L'excution de ce code est mis en attente sur l'instruction sos.accept()
3
Ce code ne contient pas d'erreur

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

En JAVA, avec RMI, un objet distribu


1
est un objet JAVA abstrait
2
est un objet JAVA rel

Q 30

En JAVA, le passage des paramtres dans les mthodes se fait:


1
toujours par rfrence (comme dans le langage FORTRAN)
2
par valeur ou par rfrence (comme dans le langage C++)
3
toujours par valeur

Q 31

En JAVA peut-on connatre l'adresse d'une donne du langage ?


1
OUI
2
NON

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

Dans le cadre du projet 2, chaque agent taient :


1
un excutable JAVA autonome
2
un objet distribu
3
un thread

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

Examen de Juin 2004

page 7

QCM

Dans une architecture distribue, le client et l'objet distribu


1
ont des espaces mmoires disjoints
2
se partagent le mme espace mmoire
3
peuvent s'excuter sur la mme machine virtuelle JAVA

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}

Les lignes fausses sont:


1
2
3

10 et 11
3 et 7
12 et 13

Un script CGI est :


1
un programme qui s'excute sur le poste client, par le navigateur
2
un programme qui s'excute sur le poste serveur, par le dmon Http

Q 39

Un dmon Http est un programme JAVA


1
permettant d'interpter un programme crit en HyperTextToolProgram
2
permettant de servir un navigateur WEB
3
permettant d'excuter des Servelts

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

En JAVA, un thread est un objet JAVA dont la classe d'appartenance


1
hrite de la classe Thread
2
est la classe prdfinie ThreadObject
3
implmente l'interface Runnable

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

Examen de Juin 2004

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

Le code d'un applet peut-il contenir la cration d'un objet distribu


1
OUI
2
NON

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

Avec RMI, les services d'un objet distribu sont:


1
dcrits dans une interface Java accessible par le client
2
des mthodes prives implmentes par l'objet distribu
3
des mthodes publiques implmentes par le client

Q 49
X

En JAVA, la classe prdfinie Vector :


1
permet de dessiner l'cran des vecteurs graphiques (x1,y1,x2,y2)
2
permet de stocker des lments de type primitif
3
permet de stocker des rfrences d'objet JAVA

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

Les attributs d'un objet distribu doivent tous tre privs


1
OUI
2
NON

Q 56

page 8

Examen de Juin 2004

page 9

QCM

Les mthodes d'un objet distribu doivent toutes tre publiques


1
OUI
2
NON

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

Un fichier .class Java est interprt par la machine virtuelle JAVA


1
OUI
2
NON

Q 59
X

Ces cours et TP ont-t-ils rpondu vos attentes


1
OUI
2
NON
3
OUI et NON

Q 60

Commentaires:

page 9

You might also like