1. Spécification - par Jacques LAFORGUE

publicité
15/04/2017
LES SYSTEMES REPARTIS (NFP 214&215)
Cnam
Projet 2
CONSERVATOIRE
LES SYSTEMES
REPARTIS
Par J. LAFORGUE
IPST-CNAM
Cycle C
NAT IONAL
D E S ART S
ET M ET IERS
PROJET 2
Etape 2
CENTRE REGIONAL
MIDI - PYRENEES
1.
Années 2006-2007
TOULOUSE
J. LAFORGUE
SPECIFICATION
L'objectif de ce projet 1 est de réaliser 3 programmes successifs :
 ETAPE 1: un jeu de SUDOKU à 2 joueurs en réseau en utilisant le protocole RMI
 ETAPE 2 : faire le même programme que l'étape 1 mais en utilisant une implémentation CORBA avec
le logiciel Jacorb.
 ETAPE 3 : étendre le programme précédent (en RMI et/ou Jacorb) afin que tous les joueurs d'un réseau
local puissent se choisir et jouer entre eux.
Le présent sujet décrit l'étape 2. La description de l'étape 3 fera l'objet un peu plus tard d'un document
complémentaire.
Pour réaliser l'étape 2, vous devez utiliser, sans les recopier, les classes du projet 1. Vous n'avez pas normalement
besoin de modifier les classes de projet 1 pour faire le projet 2 (surtout si vous utilisez les classes de la correction
du projet 1).
Cette étape n'utilise pas les fichiers de l'étape 1.
Cette étape consiste à exécuter l'applicatif de jeu développé dans le cadre du projet 1 dans un objet distribué (le
serveur) et de pouvoir exécuter les ihms de jeu (1 par joueur) qui sont des programmes clients du serveur.
Le serveur accepte en paramètre :
 le nom dans le service de nommage de l'objet distribué de la forme CNAMP_N_SUDOKU (exemple:
CNAMP_1_SUDOKU)
 le nombre de colonne de la grille
 le nombre de ligne de la grille
 le nombre de colonne de la région
 le nombre de ligne de la région
Le client accepte en paramètre :
 le nom du joueur
 le nom dans le service de nommage de l'objet distribué de la forme CNAMP_N_SUDOKU (exemple:
CNAMP_1_SUDOKU)
page 1
LES SYSTEMES REPARTIS (NFP 214&215)
Projet 2
2.
15/04/2017
Par J. LAFORGUE
ARCHITECTURE DES REPERTOIRES
Le projet doit être fait suivant l'architecture type de répertoires et fichiers suivants :
projet1
........
projet2
etape2
compil.bat
build.xml
runNS.bat
runAppSudokuServeur.bat
runIhm1Sudoku.bat
le script de compilation de l'étape 1 qui appelle ant
le fichier ant de génération
le script d'exécution du service de nommage
le script d'exécution du serveur
le script d'exécution du 1er joueur qui se connecte
au serveur
le script d'exécution du 2ème joueur qui se
connecte au serveur
le serveur en CORBA
le client d'un joueur
runIhm1Sudoku.bat
AppSudokuServeur.java
IhmClient.java
etc
jacorb.properties
propriétés d'exécution Jacorb
cnamp
app
AppSudokuOD.java
L'objet distribué
AppSudokuODInt.idl
FIchier idl décrivant l'interface IDL
ihm
IhmSudokuCorbaImp.java
generated
répertoire contenant le répertoire du nom de
l'interface IDL qui contient les classes Java
générées suite à la compilation de l'interface
classes
répertoire contenant les fichiers .class issus de la
compilation de tous les fichiers .java
Cette architecture est celle de l'atelier 20 vu en cours.
Les fichiers build.xml, compil.bat, runNS.bat sont ceux de l'atelier 20 dans lequel il est nécessaire de faire des
modifications afin de l'adapter au projet.
Ces fichiers vous sont fournis.
3.
TRAVAUX A REALISER
Vous devez créer les classes suivantes pour l'implémentation du serveur :
AppSudokuServeur.java
est le programme principal du serveur qui crée l'objet distribué CORBA AppSudokuOD et qui
l'enregistre dans le service de nommage.
Ce programme crée l'ORB et le POA et s'exécute sur l'ORB afin de traiter les requêtes CORBA.
AppSudokuOD.java
est l'objet distribué qui encapsule AppSudoku AppSudokuOD et qui implémente les méthodes
distantes de l'interface IDL
AppSudokuODInt.idl
page 2
15/04/2017
LES SYSTEMES REPARTIS (NFP 214&215)
Projet 2
Par J. LAFORGUE
est l'interface de l'objet distribué qui décrit les méthodes distantes accessibles par les clients et qui
définit les type des données IDL échangés dans les appels distants des méthodes de l'interface
Vous devez créer les classes suivantes pour l'implémentation du client :
IhmClient.java
est le programme principal qui crée IhmSudokuCorbaImp afin de le passer en paramètre d'une
instanciation de IhmSudoku
IhmSudokuCorbaImp.java
est une classe qui implémente l'interface AppSudokuInt dont chaque méthode implémentée utilise les
méthodes distantes de l'interface IDL.
4.
QUELQUES CONSEILS
Ecrire en premier l'interface IDL et la compiler. Cela vous permet d'éditer les fichiers java générés afin de savoir
comment les utiliser.
Pour connaître la signature
l'interface>Operations.java.
des
méthodes
de
l'interface
IDL,
éditer
le
fichiers
<nom
de
Les commandes d'exécution utilisent le script jaco.bat (répertoire bin de Jacorb). Ce script utiliser
%CLASSPATH% qu'il faut renseigner afin qu'il référence les répertoires d'accès aux fichiers .class du projet 1.
Je rappelle que vous devez définit les variables d'environnement :
ANT_HOME
répertoire d'instalaltion de ant
JACORB_HOME
répertoire d'installation de Jacorb
JAVA_HOME
répertoire d'installation de Java
PATH
ajouter dans le path l'accès au répertoire bin de Jacorb
Pour exécuter le projet 2 étape 2 :
1) Exécuter le Services de Nommage (runNS.bat)
2) Exécuter le serveur qui crée l'objet distribué
3) Exécuter 2 fois l'ihm cliente afin de pourvoir jouer entre 2 joueurs
page 3
Téléchargement