Session de JUIN NFP 214

publicité
Examen de Juin 2007
page 1
IPST-CNAM
Systèmes répartis
Cycle C / NFP 214
Jeudi 21 Juin 2007
NFP 214 - Systèmes répartis
Sans document
Durée : 1 heures 30 minutes
Enseignants : LAFORGUE Jacques
Session de JUIN NFP 214
CORRECTION
(COURS)
1. QCM (33 points)
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.
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 et 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.
Vous avez droit à 10% de points négatifs sans pénalité, soit 3,5 points
page 1
Examen de Juin 2006
NOM:
page 2
PRENOM:
NFP 214 - Systèmes répartis
GROUPE DE TP :
"Un système réparti est un système informatique dans lequel les ressources ne sont pas centralisées".
Cette définition d'un système réparti est-elle exacte?
1
OUI
2
NON
Q1
La mémoire d'un système réparti est bien adaptée pour obtenir un état global d'un système
informatique
1
OUI
2
NON
Q2
X
X
Les avantages d'un système répartis sont :
Q3
1
un système réparti est adapté pour donner une qualité de service identique tant local que distant X
2
un système réparti d'une grande entreprise industrielle est plus à même d'être sécurisé qu'un
système non réparti.
3
dans un système réparti, il est envisageable de continuer un service même dégradé
X
On oppose habituellement le système réparti au système centralisé.
Y a t-il un avantage qu'un système réparti se comporte comme un système centralisé ?
1
OUI
2
NON
Q4
Des exemples de modèle réparti sont :
1
Les LAN
2
Les DNS
3
Le Peer to peer
Q5
Il est possible de réaliser une communication dans un système réparti en utilisant les moyens suivants :
1
faire un appel à une méthode distante via un protocole de type RPC (Remote Process Distant)
2
envoyer un message via un socket
3
faire un appel à une fonction interne au processus d'exécution
Q6
X
X
RMI veut dire "Remote Methode Invocation"
1
OUI
2
NON
Q7
X
En Java RMI, un objet distribué est :
1
un objet Java dont la classe d'appartenance hérite de UnicastRemoteObject
2
un objet Java dont la classe d'appartenance implémente l'interface Remote
Q8
X
CORBA est un langage de programmation de définition d'interface entre deux systèmes informatiques
répartis sur le réseau
1
OUI
2
NON
Q9
CORBA veut dire "Common Object Request Broker Architecture"
1
OUI
2
NON
Q 10
X
X
X
X
page 2
X
Examen de Juin 2006
page 3
NFP 214 - Systèmes répartis
Pour lever une exception Java
1
on doit mettre l'instruction de levé d'exception dans une clause "try catch"
2
on utilise la méthode static Exception.throw
3
on utilise l'instruction prédéfinie 'throw'
Q 11
Une exception en Java est une instance d'une classe qui hérite de la classe Exception
1
OUI
2
NON
Q 12
X
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
Q 13
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
Q 14
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 15
X
X
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 16
X
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 17
Soit la déclaration de la classe suivante :
public class MonThread extends Thread
{
public void run()
{
// traitement du thread
}
}
Q 18
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()
page 3
X
X
X
X
X
X
Examen de Juin 2006
page 4
NFP 214 - Systèmes répartis
Dans une architecture CORBA, on appelle une Factory :
1
un composant qui permet de factoriser dynamiquement du code
2
un composant qui permet un mapping dynamique des données de la base de données
3
un composant qui fabrique des objets distribués
Q 19
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 20
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 21
X
En Java RMI, les paramètres des méthodes distantes sont des instances de n'importe quelle classe qui
implémente l'interface Serializable
1
OUI
2
NON
Q 22
En Jacorb (CORBA), les paramètres des méthodes distantes sont des instances de n'importe quelle
classe qui implémente l'interface Serializable
1
OUI
2
NON
Q 23
En CORBA, il est obligatoire d'enregistrer les servants (objets distribués) dans un annuaire (service de
nommage)
1
OUI
2
NON
Q 24
En Java RMI, il est obligatoire d'enregistrer les objets distribués dans un adaptateur (service de
nommage)
1
OUI
2
NON
Q 25
Soit, un IDL qui contient une interface de nom InterfaceDeviseOD. Cette interface génère une classe
utilisée pour créer, par héritage, les servants. Le nom de cette classe est :
1
InterfaceDeviseODOperations
2
InterfaceDeviseODPOA
3
InterfaceDeviseODHolder
Q 26
Un servant peut être activé soit au lancement du POA soit à la demande. Quand un servant est activé
auprès du POA son IOR est stocké dans l’Active Object Map:
1
OUI
2
NON
Q 27
Un POA (Programm Object Adaptator) est un programme prédéfini d'un ORB ou un "adaptateur"
permettant d'enregistrer les noms des servant
1
OUI
2
NON
Q 28
La référence d'un objet CORBA contient l'IOR du servant associé
1
OUI
2
NON
Q 29
X
page 4
X
X
X
X
X
X
X
X
X
Examen de Juin 2006
page 5
NFP 214 - Systèmes répartis
La référence d'un objet CORBA ne peut pas être passé en paramètre d'une méthode distante
1
OUI
2
NON
Q 30
Dans une architecture CORBA, un même servant ne peut pas être utilisé en même temps par deux
clients différents dont l'un est écrit en Java et l'autre écrit en C++
1
OUI
2
NON
Q 31
La référence d'un objet CORBA permet d'obtenir l'interface du servant et d'invoquer ses méthodes
distantes
1
OUI
2
NON
Q 32
L'architecture distribuée suivante est correcte. 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). La machine A a un
adaptateur dans lequel OD1 et OD2 se sont enregistrés. La machine B a un adaptateur dans le quel
OD3 et OD4 se sont enregistrés.
Q 33
MACHINE A
OD1
OD1
X
X
MACHINE B
OD2
OD2
OD1
OD3
Adaptateur A
1
2
3
X
OD2
OD4
Adaptateur B
Le nom de l'objet OD1 doit être différent de celui de OD3
Le nom de l'objet OD1 doit être différent de celui de OD2
Si l'adaptateur A est en panne, je peux enregistrer OD1 et OD2 dans l'adaptateur B.
page 5
X
Examen de Juin 2006
page 6
NFP 214 - Systèmes répartis
2. Questions libres (12 points)
Chaque question est notée sur 2 points soit un total de 12 points.
Quel est le rôle d'un POA dans l'architecture CORBA ?
Q1
Le rôle du POA (Portable Object Adapter) est de gérer les servants (ou objets distribués). Il définit les
règles de comportement de ces servants et agit sur leurs cycles de vie. Il détermine quel servant doit
être utilisé quand une requête cliente est reçue. Le POA transmet alors la requête au servant. Le POA
assigne les IOR aux objets CORBA. Le POA gère un "pool" de thread pour l’exécution de tous les
servants. A chaque requête sur un servant, le POA utilise un thread libre pour traiter la requête. Le
POA permet donc d’optimiser l’exécution de ces threads en fonction des contraintes systèmes.
Donner une définition générale d'un objet distribué (en RMI) ou servant (en CORBA)
Q2
Un objet distribué est un objet informatique (au sens de la définition des LOO) dont certaines des
méthodes publiques sont appelables en appel distant. L’objet est distribué sur le réseau : sa localisation
est décrite par un annuaire de nom. Les moyens d’échange sont définis par une interface de
communication qui est soit une interface Java en RMI soit une description IDL en CORBA. Les
données échangées se font par un mécanisme de sérialisation.
Par encapsulation, tout objet peut devenir un objet distribué.
Commentez le schéma suivant :
Q3
Quel est le rôle du service CORBA "Naming Services"?
Q4
Ce schéma décrit les méthodes utilisées pour mettre au point une architecture CORBA :
Sur le serveur CORBA (POA), un objet distribué (ou servant), ObjetImpl, est transformée en une
référence CORBA grâce à la méthode servant_to_reference. Ensuite, on peut soit calculer le IOR de la
référence avec la méthode object_to_string, soit enregistrer la référence dans le service de nommage
avec la méthode bind.
Sur le client, on récupère une référence CORBA soit avec l’IOR avec la méthode string_to_object, soit
avec le service de nommage avec la méthode resolve. Ensuite, on récupère l’interface permettant
d’utiliser le servant à distante grâce à la méthode narrow.
A quoi sert un Factory dans une architecture CORBA?
Q5
Le factory est un servant CORBA dont le rôle est de créer, à la demande, d’autres servants. C’est le
seul moyen pour un client de créer sur un serveur de nouveaux objets distribués. Le Factory est
page 6
Examen de Juin 2006
page 7
NFP 214 - Systèmes répartis
également utilisé pour mettre en place un mécanisme de persistance entre les états de ces objets
distribués et une base de données. Le Factory sert également de conteneur pour indexer et rechercher
sur critère des objets distribués.
Quelles sont les différences entre Java RMI et Java CORBA ?
Q6
Java RMI est un environnement logiciel permettant de bâtir des architectures réparties, alors que
CORBA est une norme pour définir de tel environnement.
Si on compare Java RMI avec un environnement CORBA comme JacOrb, on peut parler des
différences suivantes.
Par définition Java RMI n’est pas inter opérable dans d’autres langages. Alors que JacORB l’est. De
plus, l’interface de définition est une interface Java en RMI, alors qu’en CORBA l’interface de
définition est réalisée par une IDL qui réalise une projection dans les différents langages de
programmation.
En RMI il n’y a pas d’équivalent à la notion de référence CORBA : un objet inter opérable qui
contient toute la définition d’un objet distribuée. Cette référence peut être échangée entre les différents
composants du réseau et en obtenir une interface d’utilisation de l’objet distant.
De plus CORBA définis de très nombreux services (notifications, messages asynchrones, gestion
d’évènement, persistances, transactions, ....) qui n’existent pas en JavaRMI.
En JavaRMI, tout objet Java peut être utilisé comme paramètre d’une méthode distante (la classe étant
sérialisable) alors que en CORBA les paramètres des méthodes distantes sont définis dans le IDL et
sont des types projetés dans le langage de programmation qui peut ne pas être le même entre l’appelant
et l’appelé.
Vous répondez à ces questions sur une copie vierge en mettant bien le numéro de la question.
page 7
Téléchargement