Examen de Juin 2006 page 1 IPST-CNAM Systèmes répartis Cycle C / NFP 214 Mardi 27 Juin 2006 NFP 214 - Systèmes répartis Sans document Durée : 1 heures 30 minutes Enseignants : LAFORGUE Jacques Session de JUIN NFP 214 (COURS) 1. QCM 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 questions. On peut remarquer que cocher toutes les propositions d'une question revient à ne rien cocher du tout (é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. Vous avez droit à 10% de points négatifs sans pénalité. page 1 Examen de Juin 2006 NOM: page 2 PRENOM: NFP 214 - Systèmes répartis GROUPE DE TP : Le langage Java est un langage orienté objet à liaison dynamique 1 OUI 2 NON Q1 La méthode 'main' dans le langage Java 1 permet d'exécuter une application Java 2 permet d'exécuter une applet Java 3 peut être définie dans n'importe quelle classe Java Q2 La signature de la méthode 'main' peut être : 1 public void main(String args[]) 2 static public int main(int argc, String argv[]) 3 public static void main(String args[]) Q3 Pour lever une exception Java 1 on doit mettre l'instruction de levé d'exception dans une clause "try catch" 2 on peut instancier la classe prédéfinie Exception 3 on utilise l'instruction prédéfinie 'throw' Q4 Une exception en Java est une instance d'une classe qui hérite de la classe Exception 1 OUI 2 NON Q5 On peut changer dynamiquement la taille physique d'un tableau Java 1 OUI 2 NON Q6 Les classes StringBuffer et StringTokenizer héritent de la classe : 1 String 2 Array 3 Object Q7 Un package Java est : 1 un ensemble de fichier .class tous concaténés dans une librairie qui est un fichier d'archive .ar 2 un fichier d'archive .jar 3 un répertoire contenant des fichiers .class Q8 L'instruction -classpath dans une commande d'exécution d'une application Java permet de : 1 désigner le répertoire contenant le fichier .class qui définit la méthode main de l'application Java 2 désigner les répertoires contenant les packages de l'application Java 3 désigner des fichiers .jar contenant des packages utilisés par l'application Java Q9 La sérialisation est un mécanisme Java permettant de : 1 écrire des objets Java dans un fichier ou un socket 2 convertir des objets Java en un flux XML 3 gérer le garbage-collecteur de la machine virtuelle Java Q 10 page 2 Examen de Juin 2006 page 3 NFP 214 - Systèmes répartis Java possède un mécanisme interne de"ramasse miettes" (ou garbage-collector). Ce mécanisme est utilisé pour : 1 surveiller les fuites mémoires éventuelles dans la machine virtuelle Java 2 détruire les objets Java de la JVM qui ne sont plus utilisés Q 11 La classe par défaut d'une interface est : 1 une classe qui implémente par défaut toutes les méthodes de l'interface 2 une classe qui hérite de l'interface 3 une classe qui hérite d'une classe qui implémente toutes les méthodes de l'interface Q 12 Une interface Java permet de : 1 créer une interface homme machine en utilisant les classes prédéfinies du package swing 2 séparer rigoureusement l'interface homme machine de son applicatif 3 créer du code générique Q 13 L' adaptateur d'un composant graphique est une classe qui implémente toutes les méthodes d'un listener 1 OUI 2 NON Q 14 Soit la déclaration de la classe suivante : public class MonThread extends Thread { public void run() { // traitement du thread } } Q 15 Pour créer le thread et l'exécuter, il faut faire les instructions suivantes: 1 Runnable p = new Runnable (); MonThread q = new Thread(p); q.start(); 2 MonThread p = new MonThread (); p.start(); 3 MonThread p = (MonThread)(new Thread()); p.start() Pour établir une communication par socket entre deux applications Java A et B, on crée un socket sur A, puis un socket sur B qui se connecte au socket de A 1 OUI 2 NON Q 16 Dans le protocole RMI la communication entre deux objets distribués se fait en utilisant la technologie des sockets 1 OUI 2 NON Q 17 Soit deux machines A et B, on crée sur A un objet distribué OA, on crée sur B un objet distribué OB. Les deux objets distribués s'appellent mutuellement des méthodes distantes. Il est possible de : 1 on crée un seul adaptateur sur A, et OA et OB s'enregistrent dans cet adaptateur 2 on crée un adaptateur sur A, un autre sur B, et OA s'enregistre dans l'adaptateur de A, et OB s'enregistre dans l'adaptateur de B 3 on crée deux adaptateurs sur A, et OA s'enregistre dans l'un et OB dans l'autre Q 18 Un ORB (Object Request Broker) est un logiciel informatique permettant de mettre en place une Q 19 page 3 Examen de Juin 2006 page 4 NFP 214 - Systèmes répartis solution distribué 1 OUI 2 NON Un IDL (Interface Definition Language) est un moyen d'écrire les interfaces entre les composants distribués 1 OUI 2 NON Q 20 En RMI, tous les paramètres d'une méthode distante sont sérialisés 1 OUI 2 NON Q 21 Dans une architecture distribuée CORBA, les composants communiquantes peuvent être écrits dans des langages de programmation différents 1 OUI 2 NON Q 22 L'architecture distribuée suivante est valide : Q 23 MACHINE A OD1 OD1 MACHINE B OD2 OD2 OD1 OD3 Adaptateur A OD2 OD4 Adaptateur B (Le sens de la flêche correspond à l'appel d'une méthode distante (exemple: OD2-> OD3 : OD2 appelle une méthode distante de OD3. Si la flèche est dans les 2 sens alors appel dans les 2 sens) 1 OUI 2 NON Dans une architecture 3-tiers (client, serveur Http, serveur métier), le servlet est une classe Java qui s'exécute : 1 dynamiquement côté client 2 dynamiquement dans le serveur Http 3 dynamiquement dans un des serveurs métier Q 25 Si un des serveurs métier réalise une connexion à une base de données, on parle d'une architecture : 1 orientée donnée 2 4 tiers et/ou plus Q 26 Dans une architecture CORBA, on appelle une Factory : Q 27 page 4 Examen de Juin 2006 1 2 3 page 5 NFP 214 - Systèmes répartis un composant qui permet de factoriser dynamiquement du code un composant qui permet un mapping dynamique des données de la base de données un composant qui fabrique des objets distribués Le client d'une application distribué RMI obtient : 1 un pointeur sur l'objet distant 2 une référence Java sur l'instance de l'objet distant 3 une amorce représentative de l'objet distant Q 28 Un objet passé en paramètre d'une méthode distante est reçu par l'appelant : 1 sous la forme d'un nouvel objet qui est une copie du paramètre 2 sous la forme d'une référence du paramètre Q 29 Pour sérialiser un objet Java en XML, on peut : 1 indiquer que la classe de l'objet à sérialiser implémente l'interface XmlSerializable 2 transformer l'objet en un JavaBeans Q 30 Pourquoi dans un serveur Http, on exécute un thread pour traiter chaque requête d'un client : 1 pour réaliser le traitement avec plus de performance sur la charge CPU 2 pour réaliser le traitement dans un servlet 3 pour réaliser les traitements des différentes requêtes en parallèle Q 31 CORBA est : 1 un logiciel gratuit 2 un bus logiciel 3 une norme logiciel Q 32 Dans une architecture CORBA, il y a séparation entre l'interface et l'implémentation des objets: 1 OUI 2 NON Q 33 Dans une architecture CORBA, le service de nommage (NameServices) permet de nommer les objets distribués (servant) 1 OUI 2 NON Q 34 Dans une architecture CORBA, le service d'évènement (EventServices) permet de gérer les évènements Q 35 des interfaces homme machine développées dans un serveur 1 OUI 2 NON Un applet et un servlet peuvent se transmettre des objets Java sérialisés 1 OUI 2 NON Q 36 Un servlet peut créer un objet distribué sur la machine hôte du serveur Http 1 OUI 2 NON Q 37 Dans une architecture distribuée un client d'un OD peut également être un OD (serveur) 1 OUI 2 NON Q 38 En RMI, pour distribuer un objet dans une architecture distribué : Q 39 page 5 Examen de Juin 2006 1 2 3 page 6 NFP 214 - Systèmes répartis on l'écrit sur un socket on l'enregistre dans un adaptateur sa classe doit hériter de la classe prédéfinie UnicastRemoteObject En RMI, un objet distribué peut implémenter plusieurs interfaces 1 OUI 2 NON Q 40 En RMI, l'interface d'un objet distribué définit 1 les prototypes de toutes les méthodes de l'objet distribué 2 les prototypes des méthodes distantes de l'objet distribué Q 42 Pour pouvoir faire communique un composant Java et un composant C++ sur un bus CORBA 1 on doit créer un socket de communication entre les deux composants 2 on doit exécuter les deux composants sur deux machines différentes 3 on doit définir un IDL Q 43 Une classe Java hérite de la classe Thread. Plusieurs instances de cette classe sont autant de threads qui Q 44 s'exécutent en parallèle (méthode start). Les données partagées entre ces différents threads sont les attributs statiques de la classe. 1 OUI 2 NON Pour pouvoir exécuter un objet distribué, il faut créer explicitement un thread 1 OUI 2 NON page 6 Q 45