Ce document est destiné aux étudiants de l'Université Constantine 2 Abdelhamid Mehri, Faculté des Nouvelles Technologies de l'Information et de la Communication, Département d'Informatique Fondamentale et ses Applications.
Il couvre les notions suivantes:
- Développement d'une application répartie pour l'utilisation des ressources de plusieurs serveurs.
- Implémentation de cette architecture à l'aide de Java RMI.
- Utilisation des sockets pour la même architecture.
- Exploration d'autres mécanismes pour l'implémentation de l'architecture.
Examen DARE M1 Reseaux et Systemes Distribues -Développement d'applications réparties
Télécharger PDFUniversité Constantine 2 Abdelhamid Mehri
Faculté des Nouvelles Technologies de l'Information et de la Communication
Département d'Informatique Fondamentale et ses Applications
Date : 25 janvier 2018
Année universitaire : 2017/2018
Durée : 1h30
Documents non autorisés
Nom ...............................................
Prénom ...................................................
Groupe ..................................................
Note : ....................../20
Contrôle écrit DARE (M1 Réseaux et Systèmes Distribués)
Partie 1 (04 points)
On vous demande de développer une application répartie permettant d'utiliser les ressources de plusieurs serveurs afin d'effectuer des calculs complexes demandés par des clients.
- Citez deux propriétés des applications réparties (sans explication). (1 pt)
- Rappelez deux modèles d'architecture des applications réparties. (1 pt)
- Quelle est l'architecture la plus adaptée pour cette application ? (1 pt)
Nous faisons le choix de l'architecture suivante :
Lorsqu'un client demande un calcul, il effectue sa demande auprès d'un serveur WEB qui va répartir la charge de calcul en fonction du nombre de serveurs dont il dispose. Puis, il récoltera les résultats de chaque partie du calcul pour fournir au client le résultat final. On supposera que chaque serveur doit s'identifier auprès du serveur maître (Master) lorsqu'il est lancé.
- Quel est le niveau de cette architecture (en termes de tiers) ? (1 pt)
Partie 2 (07 points)
Nous souhaitons présentement implémenter cette architecture à l'aide du JAVA RMI :
- JAVA RMI est un cas particulier de Middleware, quelle est cette particularité ? (1 pt)
- Expliquez le principe de fonctionnement de JAVA RMI. (2 pts)
- En utilisant le schéma de la partie 1, quel est le nombre nécessaire d'interfaces à implémenter pour réaliser cette architecture ? (2 pts)
- À quel niveau sont-elles implémentées ? (0.5 pt)
- Proposez en JAVA une interface possible. (1 pt)
- Même question en utilisant le mode multi-threadé. (0.5 pt)
Partie 3 (07 points)
Nous souhaitons en un deuxième temps implémenter cette architecture en utilisant les sockets :
- Quels sont les types de sockets existants ? (1 pt)
- Quelle est la différence principale entre ces types ? (1 pt)
- Expliquez le principe de fonctionnement des sockets. (2 pts)
- Corrigez et commentez le code suivant : (2 pts)
import java.io.*;
import java.net.*;
public class Client {
public static void main(String args[]) throws Exception {
ServerSocket serverSocket = new ServerSocket(7877);
Socket socket = serverSocket.accept();
System.out.println("Réception de requête");
Socket socket = new Socket("localhost", 7877);
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// ... code omitted ...
reader.close();
writer.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- Discutez brièvement ce code. (1 pt)
Partie 4 (02 points)
Nous souhaitons une dernière fois implémenter cette architecture en utilisant un troisième mécanisme, citez des alternatives possibles ou des exemples. (2 pts)
Nom ...............................................
Prénom ...................................................
Groupe ..................................................
Bon courage
FAQ
Qu'est-ce qu'une application répartie ?
Une application répartie est un système logiciel qui fonctionne sur plusieurs ordinateurs interconnectés, permettant de partager des ressources et des services.
Quelle est la différence entre les sockets TCP et UDP ?
Les sockets TCP sont orientés connexion et garantissent la livraison des données, tandis que les sockets UDP sont non orientés connexion et ne garantissent pas la livraison des données.
Qu'est-ce que JAVA RMI ?
JAVA RMI (Remote Method Invocation) est une technologie qui permet à une application Java d'invoquer des méthodes sur un objet distant comme si c'était un objet local.