EXAMEN de Rattrapage

Systèmes et Applications Répartis · exam

EXAMEN de Rattrapage

Systèmes et Applications Répartis

Classe/Filières:

Durée

:

Responsables

II2- SLE & RSR

2h00

: F. Najjar & N. Ben Azzouna

24/06/2014

Date:

Documents: Non autorisés

Nb. Pages: 6

Prière de lire attentivement l’énoncé.

On demande des réponses concises mais claires et précises.

Exercice 1 : Java-RMI (7 points — 1+2+2)

Les deux questions suivantes sont indépendantes

1) Ce schéma représente les différentes étapes de l'exécution du fonctionnement d'un objet

distribué utilisé par un client.

a) Indiquez ce que chaque lettre signifie.

b) Les mettre dans l'ordre temporel de l'exécution.

1

2) On suppose donnée la classe suivante :

On considère le programme suivant :

a) Quel est l'affichage produit par le programme ?

L’affichage est : 2 puis 3

Publicité

b) On suppose donnée une interface distante RLocal proposant une

méthode inc de même signature que celle de l'objet Local, c'est-à-dire

prenant comme paramètre un objet Entier et ne renvoyant rien. Soit donc

:

Ecrivez l'équivalent du main de la classe Local, avec comme seule différence

l'utilisation de l'objet distant d'interface RLocal (on supposera qu'une

implantation de cette interface est stockée dans le rmiregistry avec comme

nom //localhost/ILocal).

public static void main(String[] args) {

try {

// Récupération d'un stub sur l'objet RLocal.

RLocal l= (RLocal) Naming.lookup(“//localhost/ILocal“);

Entier y=new Entier(2);

System.out.println(y.n);

l.inc(y);

System.out.println(y.n);

2

} catch (Exception exc) { … }

}

c) Peut-on déterminer complètement l'affichage du main réalisé dans la

question précédente sans connaître la programmation de l'objet distant ?

Si oui, quel est cet affichage et pourquoi peut-on le déterminer ?

Oui parce que l’objet Entier est un objet local au client qui passé par

valeur lors de la méthode inc de RLocal (objet sérialisable) donc

l’incrémentation sera faite sur un clone de y côté serveur et l’objet y côté

client ne sera pas modifié d’où l’affichage est :

Publicité

2 puis 2.

Exercice 2 : MOM-JMS (5 points— 1,25+1,25+2,5)

1) Rappelez l’architecture d’un producteur-consommateur JMS

2) Complétez la figure suivante :

Message

Producer

Connection

Session

Message

Message

Consumer

3)

a) Afin d’aider à écrire le code d’une application Java permettant de dialoguer entre

plusieurs clients, un peu à l'image des systèmes de messagerie instantanée, faire

correspondre le commentaire au(x) appel(s)/instruction(s) (tableau ci-dessous) :

a)iii) ; b)iv) ; c)ii); d)i); e)vi); f)v)

Commentaires

a) Créer une session JMS

i) TopicConnection connection =

conFactory.createTopicConnection(username,password);

Instructions

b) Récupérer une fabrique

ii)

Properties env = new Properties( );

de connexion JMS

InitialContext jndi = new InitialContext(env);

Publicité

3

c) Récupérer le contexte

de nommage

iii)

TopicSession pubSession =

connection.createTopicSession(false,

d) Créer une connexion

iv)

TopicConnectionFactory conFactory =

Session.AUTO_ACKNOWLEDGE);

JMS

e) Créer un producteur de

messages

f) Récupérer un sujet

(TopicConnectionFactory)jndi.lookup("JmsTopicCon

nectionFactory");

v) Topic chatTopic = (Topic)jndi.lookup(topicName);

vi)

TopicPublisher publisher =

pubSession.createPublisher(chatTopic);

b) Donnez, en conséquence de la réponse à la question 3) la séquence d’une

portion du code du producteur de messages.

c); b) ; d); a); e); f)

4