Vous êtes sur la page 1sur 3

CNAM NFP111 Systmes et Applications Rpartis Anne 2010 2011 Examen Final

NFP111 Systmes et Applications Rpartis


Anne 2010 2011
Examen Final 1re session
Dure : 3H
Tout document est autoris
Pas de calculatrice
Cet examen est de 3 pages

Exercice 1 : Servlet (4 points)

Considrer un formulaire HTML qui permet dentrer un nom et un mot de passe. Laction de
ce formulaire est une servlet appele Authentification.

1. Ecrire le code de ce formulaire. (1 point)

2. Considrer le fichier web.xml suivant :

<servlet>
<servlet-name>Authentification</servlet-name>
<servlet-class>servlets.Authentification </servlet-class>
<init-param>
<param-name>nomInitial</param-name>
<param-value>moi</param-value>
</init-param>
<init-param>
<param-name>passwdInitial</param-name>
<param-value>d2XW5*2Q</param-value>
</init-param>
</servlet>

Ce fichier contient les valeurs initiales de la servlet.

Ecrire la servlet Authentification qui rcupre un nom et un mot de passe partir du


formulaire donn dans la premire question. Cette servlet compare ensuite les valeurs
rcupres du formulaire aux valeurs initiales de la servlet (dans le web.xml).
Au cas o elles sont identiques, on considre que l'utilisateur est authentifi, une page
HTML est alors cre par la servlet. Cette page propose une zone de texte (textarea) et un
bouton de validation. (3 points)

Suivez les indications suivantes pour rsoudre cet exercice:


a. Dans la servlet, utiliser init() qui est une mthode fondamentale de la servlet et qui
pourrait provoquer des exceptions de type ServletException.
b. Dans init(), appeler la mthode getServletConfig() qui retourne un objet de type
ServletConfig contenant les paramtres dinitialisation de la servlet.
c. Rcuprer les valeurs initiales du nom et du mot de passe partir de cet objet en
utilisant la mthode getInitParameter(String).

Page 1 de 3
CNAM NFP111 Systmes et Applications Rpartis Anne 2010 2011 Examen Final

d. Ecrire la mthode doGet qui permet de comparer les valeurs rcupres du


formulaire aux valeurs initiales de la servlet et qui cre la page HTML en question
quand l'utilisateur est authentifi.

Exercice 2 : WebServices (4 points)

Considrer la classe Calculs.jws. Cette classe possde trois fonctions Somme, Moyenne et
Produit de 3 nombres entiers. Le calcul de la moyenne doit donner un rsultat entier.

1. Ecrire la classe Calculs.jws. (1 point)

2. Ecrire le fichier client CalculsClient.java qui permet dappeler ces trois fonctions.
Prendre en considration les cas derreurs de saisie par lutilisateur (ex : nombre
darguments < celui demand, ...). (3 points)

Exercice 3 : RMI : Partage d'ensembles de coordonnes 2D (9 points)

On souhaite stocker sur un serveur de donnes un ensemble de coordonnes 2D dcrivant


les positions d'un certain nombre de vhicules dans le plan.

Ce serveur devra inclure les fonctionnalits suivantes :

accs au nombre de positions,


test de l'existence d'une position possdant un nom particulier,
accs en lecture aux positions (cest--dire, retourner une position),
cration d'une nouvelle position et attribution d'un nom,
destruction d'une position,
accs en criture aux positions (cest--dire, modifier une position).

a) Ecrire l'application serveur :


 Linterface. (1.5 points)
 La classe qui matrialise le service. (2.5 points)
 Le fichier Serveur pour permettre lenregistrement du service auprs de
RMI Registry. (1 point)
 La classe Position.java. Chaque position possde deux coordonnes x et y.
(1 point)
b) Ecrire une application cliente ayant pour but de dtruire une position sur un poste
serveur. (1.5 points)
c) Ecrire une application cliente ayant pour but de modifier une position sur un poste
serveur. (1.5 points)

Quelques Indications pour rsoudre cet exercice :

Page 2 de 3
CNAM NFP111 Systmes et Applications Rpartis Anne 2010 2011 Examen Final

Utiliser la classe Hashtable du package java.util. Cette classe permet de crer des collections
d'objets associs des noms (cls), en quelque sorte des dictionnaires. Une mme
Hashtable peut contenir des objets de classe quelconque.

Son Utilisation :

 Constructeurs : Parmi les constructeurs disponibles, l'un n'attend aucun paramtre,


l'autre attend une taille initiale en paramtre.
 Ajouter un objet : Pour ajouter un lment o avec la cl nom dans Hashtable
h : h.put(nom,o);
 Lire un objet : Pour retrouver l'lment o associ la cl nom : o=h.get(nom);
o Attention la mthode get renvoie des objets gnraux (classe Object), il est
donc souvent ncessaire d'effectuer un cast pour retrouver le type qui a t
stock.
 Pour trouver le nombre dlments de Hashtable on utilise : h.size()
 Pour dterminer si Hashtable contient une cl spcifique nom :
h.containsKey(nom)
 Pour supprimer de Hashtable l'lment ayant la cl nom : h.remove(nom) ;

Exercice 4 : Exclusion mutuelle rpartie (3 points)

Dans cet exercice, nous considrons le cas dune exclusion mutuelle rpartie, algorithme de
Lamport.

1. En utilisant cet algorithme, compltez le diagramme ci-dessous. (1 point)


2. Pourquoi les communications doivent-elles tre FIFO? (2 points)

Page 3 de 3

Vous aimerez peut-être aussi