Création d'une plate-forme ouverte à l'enseignement à distance
Music Brainz
1. RésuméPrésentation du développement de l’Interface Homme-Machine permettant aux visiteurs d’utiliser l’ensemble des fonctionnalités de l’application Web.MusicBrainzRapport de ProjetJulien BANVILLE MusicBrainz Rapport de Projet Sommaire Table des matières TOC
1-3
Sommaire PAGEREF _Toc64082082 3Introduction PAGEREF _Toc64082083 4Cahier des charges PAGEREF _Toc64082084 5Les besoins PAGEREF _Toc64082085 5Choix technologiques PAGEREF _Toc64082086 5Le développement PAGEREF _Toc64082087 5La logique de construction PAGEREF _Toc64082088 5Enregistrement de l’utilisateur PAGEREF _Toc64082089 6Connexion de l’utilisateur PAGEREF _Toc64082090 6Recherche MusicBrainz PAGEREF _Toc64082091 6L’historisation des informations PAGEREF _Toc64082092 6Que mettre dans une page JSP PAGEREF _Toc64082093 7Les instructions JAVA PAGEREF _Toc64082094 7Le XHTML PAGEREF _Toc64082095 7Navigation dans les pages JSP PAGEREF _Toc64082096 7Vérification et validation PAGEREF _Toc64082097 8 Introduction Le projet MusicBrainz étant un site Internet, la conception, l’organisation et la présentation de l’interface homme machine est extrêmement importante afin de valoriser le site et utiliser au mieux ses fonctionnalités. Ce rapport présentera donc la partie du projet portant sur la présentation des informations, et ainsi l’utilisation de l’ensemble des autres modules développés par l’équipe. Il sera composé d’un plan en plusieurs parties présentant le cahier des charges de cette partie du projet, le développement lui même, comment tester un tel site, et le résultat aujourd’hui. Cahier des charges Les besoins Les différentes pages doivent utiliser les classes déjà développées par l’ensemble de l’équipe, puisque le but est de retranscrire ces informations. On a donc besoin d’un module de recherche permettant à l’utilisateur d’entrer facilement ses critères de choix, qui donneront des résultats identiques à ceux que donnerait le site MusicBrainz. On pourra aussi offrir un espace personnel à l’utilisateur afin qu’il stocke les recherches déjà faites et qu’il trouve intéressantes, afin de les réutiliser plus tard. On a donc le besoin d’avoir un espace sécurisé par mot de passe et identifiant, ainsi que celui d’enregistrer l’utilisateur et l’authentifier de manière fiable. Comme tout site Internet, l’application doit posséder une charte graphique claire et mettant en valeur les informations dont pourra avoir besoin le visiteur. Choix technologiques Il a été convenu que le site Internet serait construit sur une base de Java. Ainsi, les pages développées devront être de type JSP, permettant donc l’utilisation du langage Java pour faire des traitements en l’accompagnant de balises XHTML. Le développement Le développement des pages JSP nécessite que les autres participants au projet aient déjà développé une partie du logiciel, sans quoi le développement s’arrête à l’interface homme machine seule, sans aucun traitement possible. Il est donc nécessaire d’adopter une logique de construction stricte. Combien de pages JSP, et que mettre dans ces pages ? Comment utiliser au mieux les avantages du modèle objet dans ces pages ? La logique de construction J’ai décidé d’opter pour un développement au fur et à mesure que les composants étaient disponible par les autres développeurs, mais aussi en parcourant le site comme un visiteur le ferait. Ainsi, j’ai commencé par développer la page principale, qui devait être le cœur de l’ensemble des pages JSP, qui ferait appel aux autres pages lorsqu’un traitement est spécifique. J’y ai aussi ajouté les éléments graphiques que l’on retrouverait dans chaque page, c’est à dire la bannière, le menu de navigation à gauche, le cadre principal où seraient rendues toutes les informations données par les composants, et le cadre inférieur pour les informations sur le développement (noms des participants et contexte). Puis, j’ai développé les pages JSP comme si j’étais un visiteur, en suivant une méthode chronologique. Enregistrement de l’utilisateur Les instructions nécessaires à l’enregistrement de l’utilisateur dans la base des utilisateurs. Il était nécessaire d’utiliser les données POST des formulaires afin de cacher les informations comme le mot de passe, et les réutiliser pour inscrire le visiteur. Un simple appel à une méthode développée par un autre participant permet de faire l’enregistrement réel. Connexion de l’utilisateur La connexion de l’utilisateur. On utilise un formulaire et là encore on stocke les informations d’identification dans le tableau de valeurs POST, que l’on réutilise dans une méthode en demandant si le couple identifiant/mot de passe est correct, là encore dans un paquetage différent. Recherche MusicBrainz L’utilisateur peut faire de nombreuses recherches sur toutes les classes principales, et peut définir plusieurs critères. Ces critères sont ensuite rassemblés dans une table de hachage, composée d’un ensemble de clés qui sont les noms des arguments de recherche, et de valeurs qui sont les critères. Cette table est ensuite envoyée en paramètres à la méthode de récupération des données XML du site de MusicBrainz. Ces données XML sont ensuite extraites par la class XMLParser, qui nous renvoie des objets Java contenant les informations. Pour réutiliser ces résultats, il suffit d’afficher un tableau avec les informations contenues dans ces objets. L’historisation des informations Lorsqu’une recherche intéresse l’utilisateur, il a la possibilité de l’enregistrer pour l’utiliser plus tard. Intégré au formulaire de recherche, l’option d’enregistrement garanti la réutilisation d’une recherche (à la condition que l’utilisateur soit enregistré). Une page JSP assure ces traitements, tout d’abord en affichant l’ensemble des recherches enregistrées par l’utilisateur. En cliquant sur une recherche, on va pouvoir réutiliser ces données en réaffichant les résultats comme s’il venait de faire sa recherche. Que mettre dans une page JSP Une page JSP est toujours composée de la même manière. On y trouve des instructions en JAVA, et des balises XHTML pour la mise en forme. Les instructions JAVA On a donc directement accès à toutes les classes fournies par les autres développeurs, mais aussi à toutes les classes de base dans le langage JAVA. Cela permet de faire tous les traitements utiles avec les informations à fournir ou fournies par les autres classes, comme par exemple réutiliser un tableau d’objets, ou transmettre une table de hachage à une méthode. Le XHTML Afin d’habiller les informations et les présenter de manière lisible, claire à l’utilisateur, l’utilisation du XHTML permet de faire une présentation classique de site Internet. En structurant correctement une page, on peut donc afficher n’importe quelle information, n’importe où, selon les conditions qu’on ce sera fixé. Par exemple, un utilisateur non connecté n’aura pas besoin de voir la catégorie « Historique ». Navigation dans les pages JSP A partir du site, il est possible à tout moment de faire une recherche, se connecter, s’enregistrer. Il n’est possible d’utiliser un historique qu’à partir du moment où l’utilisateur est enregistré et connecté (sinon, il n’aurait pas d’espace de stockage). Cette navigation se fait de manière transparente. L’utilisateur ne peut jamais savoir dans quelle page JSP il se trouve, ce qui s’avère très pratique en terme de sécurité : le visiteur ne pourra jamais tomber sur une page internet à laquelle il n’aurait pas le droit d’accès. En effet, on ne met jamais un lien direct vers une page JSP. On préférera l’utilisation des tableaux GET et POST pour traiter l’action désirée par l’utilisateur, et faire l’affichage en fonction de ces données. Vérification et validation Pour vérifier que les pages JSP font des traitements corrects et n’occasionnent pas de dysfonctionnement du site, il n’est pas nécessaire de tester les méthodes développées par les autres participants, puisque ce sont eux qui ont fait leurs tests. Pour tester une JSP, il faut en fait naviguer et chercher les cas d’utilisation. Etant donné qu’on cache les informations lorsqu’elles ne sont pas accessibles à l’utilisateur, il n’est pas possible que celui-ci tombe sur une page non initialisée et non traitée. Conclusion Aujourd’hui, le développement des pages JSP dans le cadre de ce projet est terminé. En effet, elles affichent les informations voulues, quand c’est nécessaire et disponible, et lorsque l’utilisateur y a accès. Les différents traitements disponibles dans le moteur de l’application sont donc disponibles en front end. Ce développement a été intéressant car il m’a permis de me familiariser à nouveau avec les JSP, ce que je n’avais pas fait depuis quelques années. Ayant fait l’an dernier du développement Web avec le langage PHP, j’ai pu voir les différences et apprécier l’utilisation d’un moteur Java dans le cadre du développement Web. Au delà de l’aspect développement, ce projet m’a permis de voir ce qu’était la gestion de projets pour un groupe, avec son chef de projet qui donne les directives et les temps impartis, ce qui permet d’ordonnancer efficacement les tâches.