Université de Sherbrooke GEI 465 : Systèmes répartis Travaux à effectuer Ahmed Khoumsi Automne 2004 Page 1
Les deux premiers travaux que vous effectuerez vous donneront, respectivement, l occasion d utiliser JAVA-RMI et CORBA. Dans le troisième travail, vous ferez une étude comparative de trois technologies (Sockets, JAVA-RMI, CORBA) à partir de l expérience acquise dans les deux premiers travaux du cours (pour JAVA-RMI et CORBA) et d un précédent cours (pour les sockets). Vous aurez aussi à étudier les chapitres 4, 5, 9 et 8 du livre. 1. Premier travail Il s agit de réaliser, en utilisant JAVA-RMI, un annuaire accessible à distance. À titre d exemple, l annuaire référencera les professeurs du département et les étudiants inscrits au cours GEI 465. Chaque personne inscrite dans l annuaire est caractérisée par : - son nom et son prénom - sa catégorie (professeur ou étudiant) - son matricule (si étudiant) - son email - son téléphone au bureau (si professeur) - son domaine d activité, et d autres informations que vous jugerez pertinentes Ces caractéristiques peuvent se trouver dans une base de données ou plus simplement dans un fichier texte s appelant, par exemple, «EtudGEI465_ProfGEGI» dans une machine (host) donnée. L annuaire devra être réalisé sous forme d une application client/serveur. 1.1 Serveur Le serveur gère le fichier «EtudGEI465_ProfGEGI» et permet (au moins) de : (1) Lister les membres d une catégorie donnée (2) Lister les professeurs dans un domaine d activité donné (3) Rechercher un membre (4) Ajouter un membre (5) Supprimer un membre (6) Modifier (mettre à jour) un membre (7) Mettre un membre sur la liste rouge (8) Enlever un membre de la liste rouge Les services 1 à 3 : - retournent toutes les informations sur les membres qui ne sont pas sur la liste rouge, - retournent les noms et prénoms des membres qui sont sur la liste rouge, en mentionnant qu ils sont sur la liste rouge 1.2 Clients et administrateur Les clients (qui ne sont pas forcément sur le même host que le serveur) peuvent faire des requêtes au serveur pour faire appel aux services 1 à 3. Un client particulier, appelé administrateur, peut faire appel à tous les services offerts par le serveur. L administrateur devra entrer un mot de passe pour avoir accès aux services 4 à 8. 1.3 Communication entre le client et le serveur La communication entre le client et le serveur est transparente car elle est gérée par JAVA-RMI. Page 2
1.4 Environnements Pour avoir le total des points, vous devez réaliser l application dans un environnement hétérogène, càd Serveur et Client dans des environnements différents (Windows et Solaris). Si vous réalisez l application dans un environnement homogène (Windows ou Solaris), vous perdez 20 % du total des points, càd vous pourrez avoir au plus 80 % de la note maximale. 1.5 Service de nommage Vous devez utiliser le service de nommage (rmiregistry) pour permettre au client de localiser le serveur. 1.6 Interface utilisateur L interface utilisateur devra être conçue de manière à ce que son utilisation ne nécessite pas l aide du concepteur. Autrement dit, toutes les fonctionnalités de l annuaire doivent être utilisables d une manière intuitive. 1.7 Nombre de clients Votre système doit supporter plusieurs clients qui accèdent en même temps au serveur. 1.8 Robustesse Le système ne doit pas planter si l utilisateur entre une donnée imprévue. 2. Second travail Il s agit ici de réaliser, en utilisant CORBA, une application répartie client-serveur permettant à un cinéma de gérer la vente des tickets. 2.1 Serveur Le serveur offre (au moins) les fonctionnalités suivantes : (1) connaître les films actuels avec leurs numéros de salle; (2) connaître le prix d un ticket pour un film spécifié par le client; (3) connaître l horaire d un film spécifié par le client; (4) connaître les dates d un film spécifié par le client; (5) connaître les critiques sur un film donné; (6) acheter un ticket : le client spécifie le film, l heure, et un numéro de carte de crédit. Si des places sont disponibles alors la vente est effectuée. Le client reçoit une confirmation ou une infirmation de la vente. Dans le cas d une confirmation, le client reçoit aussi un ticket (sous forme d un fichier à imprimer); (7) Ajouter un film avec toutes ses informations (titre, salle, prix, horaire, dates, critiques); (8) Supprimer un film spécifié par son titre; (9) Modifier les informations sur un film spécifié par son titre. 2.2 Clients et administrateur Les clients (qui ne sont pas forcément sur le même host que le serveur) peuvent faire des requêtes au serveur pour faire appel aux services 1 à 6. Un client particulier, appelé administrateur, peut faire appel à tous les services offerts par le serveur. L administrateur devra entrer un mot de passe pour avoir accès aux services 7 à 9. Page 3
2.3 Communication entre le client et le serveur La communication entre le client et le serveur est transparente car elle est gérée par CORBA. 2.4 Environnement et langages de programmation Vous pouvez réalisez l application dans l environnement Solaris ou Windows 2.5 Service de nommage Vous devez utiliser le service de nommage (Naming Service) pour permettre au client de localiser le serveur. Le service de nommage est dans un autre host que le serveur et le client. 2.6 Interface utilisateur Comme en section 1.6, l interface utilisateur devra être intuitive. 2.7 Nombre de clients Votre système doit supporter plusieurs clients qui accèdent en même temps au serveur. 2.8 Nombre de serveurs Il faut prévoir deux serveurs identiques. Le client doit accéder par défaut au premier serveur. Si ce dernier n est pas disponible, alors le client doit accéder au second serveur. 2.9 Robustesse Comme en section 1.8, le système ne doit pas planter si l utilisateur entre une donnée imprévue. De plus, le client ne doit pas planter s il ne trouve aucun des deux serveurs. Il doit plutôt informer l utilisateur avant de s arrêter. 4. Troisième travail Il s agit ici d effectuer une étude comparative de trois technologies (Sockets, Java-RMI, CORBA) à partir de l expérience acquise dans les deux premiers travaux du cours (pour Java- RMI et CORBA) et d un précédent cours (pour les Sockets). Présentez les avantages et inconvénients de chaque technologie par rapport aux autres technologies. Proposez des cas où chacune des technologies est la plus adaptée. 5. Étude théorique Il s agit d étudier les chapitres suivants du livre de cours : Chapitre 4 : Communication inter-processus Étudier les sections 4.1, 4.2, 4.3, 4.4 et 4.6. Chapitre 5 : Objets répartis et invocation à distance Chapitre 9 : Services de nommage Chapitre 8 : Systèmes de fichiers répartis Page 4
6. Rapports à remettre Vous devez remettre trois rapports correspondant, respectivement aux trois travaux. Chacun des deux premiers rapports compte pour 25 % de la note du travail correspondant et doit contenir au moins les points suivants : 1. Introduction 2. L interface utilisateur et les différents cas d utilisation 3. Spécification du système réalisé. 4. Distribution des tâches entre les membres de l équipe 5. Conclusion : - problèmes rencontrés (résolus ou pas); - critiques et propositions d améliorations au travail réalisé; - critiques et propositions d améliorations au travail demandé; 6. N oubliez pas de préciser : - le nom de chaque fichier source et son contenu, - comment générer l exécutable, - comment utiliser l exécutable Bref, tout ce qu on pourrait mettre dans un fichier «ReadMe». 7. Évaluation Les étudiants sont évalués par équipes de TROIS pour les trois travaux. Les étudiants sont évalués individuellement dans deux examens. Les évaluations sont pondérées comme suit, par rapport à la note totale : -JAVA-RMI : 25 % - CORBA : 30 % - Étude comparative 15 % - Examen 1 15 % - Examen 2 15 % 8. Dates Les dates de remise des rapports et des démonstrations sont les suivantes : -JAVA-RMI : 27 septembre 2004 - CORBA : 1 er novembre 2004 - Étude comparative : 15 novembre 2004 Les dates d examen : - Examen 1 6 octobre 2004 - Examen 2 24 novembre 2004 Page 5