<<<M1 - UE2

UE2 - TP

Serveur puissant, clients légers en Java et RMI-like


On considère que l'on dispose d'un puissant serveur de calcul et de nombreux clients légers. Les clients désirent effectuer des calculs et pour cela, ils font appel au serveur.

Cependant, le serveur ne connait pas les calculs à effectuer, les clients doivent donc commencer par envoyer le code à exécuter au serveur et enregistrer ce service de calcul auprès du serveur.

Ils pourront ensuite lancer des calculs dont le résultat leur sera retourné sous forme d'une chaine de caractères.

Exemple :

Exercice 6.1

Définir

  • l'architecture du système : notamment un client doit pouvoir enregistrer un service de calcul auprès du serveur puis y faire appel en passant des paramètres à la fonction de calcul
  • le protocole de communication Client / Serveur

Exercice 6.2

Ecrire la partie serveur, on utilisera notamment les fonctionnalités de Java liée à la compilation du code durant l'exécution (package javax.tools).

On pourra s'inspirer du post suivant : www.developpez.net, en définissant le code à exécuter de la manière suivante :


Warning: file_get_contents(ens/m1/info/ue2/tp5_code.java): Failed to open stream: No such file or directory in /home/jeanmichel.richer/public_html/html_business.php on line 448
  1.  

La partie code devra affecter le résultat à la variable result :

Exemple :

Voici le code d'un service qui calcule Fibonacci pour des entiers :


Warning: file_get_contents(ens/m1/info/ue2/tp5_code_service_fibonacci.java): Failed to open stream: No such file or directory in /home/jeanmichel.richer/public_html/html_business.php on line 448
  1.  

On dispose :

  • d'un premier client qui enregistre ce service auprès du serveur
  • et d'un second client qui demande l'exécution du service en passant un tableau de paramètres

Exercice 6.3

Ecrire la partie client.