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