Développement du module Supervision pour le logiciel «K-Sup»



Documents pareils
Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Devenez un véritable développeur web en 3 mois!

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

MINI-MÉMOIRE DE PPP - S4

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

K-Portal et K-Sup 5.1 des nouveautés. Détails

Cursus 2013 Déployer un Content Management System

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

BES WEBDEVELOPER ACTIVITÉ RÔLE

Joomla! Création et administration d'un site web - Version numérique

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Expert technique J2EE

Création d'un site Internet dynamique avec HTML-CSS ou un CMS Formation à distance sur le réseau Pyramide

Projet de Java Enterprise Edition

WordPress : principes et fonctionnement

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

CQP Développeur Nouvelles Technologies (DNT)

INTEGRATEUR WEB/WEBDESIGNER

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Paul FLYE SAINTE MARIE

Bien architecturer une application REST

les techniques d'extraction, les formulaires et intégration dans un site WEB

Tour d horizon des CMS. Content Management System

LEA.C5. Développement de sites Web transactionnels

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Profil. Formations Certifications. Etienne de LONGEAUX Architecte logiciel/ Lead développeur PHP5/SYMFONY2/ZEND 13 ans d expérience.

Toute personne souhaitant maîtriser les techniques liées à la conception de produits multimédia et à la création de sites Web.

Bureautique Initiation Excel-Powerpoint

Parlez-vous chinois? Allumer l appareil. Commencer. Le premier écran de l application

Manuel d utilisation du site web de l ONRN

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

SOMMAIRE 1. NOTRE AGENCE NOS PRESTATIONS NOTRE MÉTHODOLOGIE PROJET NOS OFFRES LES ATOUTS DE NOS OFFRES...

Un site web collaboratif avec Drupal. Judith Hannoun - Journées INSHS 16 Octobre 2012

De EnvOLE 1.5 à EnvOLE 2. Document pour l administrateur

Refonte front-office / back-office - Architecture & Conception -

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

10 points clés pour bien démarrer votre projet web

CAHIER DES CHARGES DU SITE WEB POUR LA RÉALISATION. Nom du commanditaire : Dossier suivi par : Date de réalisation : Date de mise à jour :

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement

Cahier des charges - Refonte du site internet rennes.fr

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Mercredi 15 Janvier 2014

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube

Webmaster / Webdesigner / Wordpress

WordPress, thèmes et plugins : mode d'emploi

Catalogue Formations Jalios

Découvrir Drupal au travers d un cas client

d un site web universitas friburgensis Objectifs de l atelier

VOLUME 1 CRÉATION D UN SITE WEB

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Questionnaire GTA - Analyse des re ponses

Soyez accessible. Manuel d utilisation du CMS

Création d un module complet de sondage en ligne

Agence Web innovatrice

Partner Entreprise. Modules de cours pour la formation continue Offre IFAPME Verviers

Rapport De Stage 28 mai au 27 juin Intégration Web Création de site vitrine (SGC)

CAHIER DES CHARGES DE REALISATION DE SITE INTERNET

Spip 2. Premiers pas pour créer son site web. Anne-Laure Quatravaux Dominique Quatravaux. Avec la contribution de Sandrine Burriel

CAHIER DES CLAUSES TECHNIQUES PARTICULIÈRES (CCTP) MISE EN PLACE ET MAINTENANCE D UN MOTEUR DE RECHERCHE

CCI DE SAÔNE-ET-LOIRE - ATELIER ENP 18 MAI La création de sites internet

Content Management System V.3.0. BlackOffice CMS V3.0 by ultranoir 1

Créer et partager des fichiers

Portfolio Sites internet :

SEO On-page. Avez-vous mis toutes les chances de votre côté pour le référencement de votre site?

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Formation : WEbMaster

Utiliser le site learningapps.org pour créer des activités interactives

Présentation de la gamme de produits et manuels numériques

Refonte des sites internet du SIEDS

CONNEXION. Une interface de connexion sécurisée, simple et accessible même depuis un appareil mobile. CONNEXION /

Présentation des nouveaux services de l ENT Second degré Rentrée scolaire 2015 et fin du 1 er trimestre de l année scolaire

claroline classroom online

Travail collaboratif. Glossaire

Programmation Web. Madalina Croitoru IUT Montpellier

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Magento. Pratique du e-commerce avec Magento. Christophe Le Bot avec la contribution technique de Bruno Sebarte

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Marché à Procédure adaptée. Tierce maintenance applicative pour le portail web

Point sur les solutions de développement d apps pour les périphériques mobiles

Formation en Logiciels Libres. Fiche d inscription

Rapport de stage Clément MOYSAN

FileMaker Server 14. Guide de démarrage

Présentation de SOFI 2.0

Un serveur d'archivage

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Competence Management System (Système de Gestion de Compétences)

Utiliser un CMS: Wordpress

Note de synthèse. Développement web sur le CMS Prestashop. Stage du 17 mai au 25 juin Entreprise decoratzia.com 15 rue Erlanger Paris

RAPPORT DE STAGE. Terrasse Hugo 1/12

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

CMS Open Source : état de l'art et méthodologie de choix

Les 10 étapes incontournables pour réaliser un site internet performant et accessible

Transcription:

Stage de fin d études, du 25 mars au 12 juillet 2013 Développement du module Supervision pour le logiciel «K-Sup» Rapport de stage, Licence Professionnelle SIL Christopher Machicoane-Hurtaud Professeur encadrant : Arnaud Lanoix Tuteur : Frédéric Bidet

1 Sommaire 1 Sommaire... 1 2 Remerciements... 2 3 Résumé (Abstract)... 3 4 Introduction... 4 5 Kosmos... 6 5.1 Quelques informations à propos de Kosmos... 6 5.2 Au sein de Kosmos... 6 5.3 Etude du marché... 7 6 K-Portal... 10 6.1 La naissance du projet... 10 6.2 K-Portal vs. K-Sup... 10 6.3 L équipe «R&D»... 11 6.4 Architecture et fonctionnement... 12 6.5 Autour du développement... 12 7 Travail réalisé... 15 7.1 Module «Supervision»... 15 7.2 Autres tâches réalisées... 27 8 Conclusion... 31 9 Annexes... 32 9.1 Découpage technique de «K-Portal»... 32 9.2 Aperçu de JIRA, l outil de gestion de projets... 33 9.3 Aperçu de Mantis Bug Tracker... 34 10 Références bibliographiques... 36 11 Notes et références... 38 1 Développement du module Supervision pour le logiciel «K-Sup»

2 Remerciements J aimerais remercier les personnes qui m ont accompagné du début à la fin de ce stage. Grâce à elles, ces seize semaines se sont écoulées dans les meilleurs conditions possibles, j ai pu acquérir de nouvelles connaissances dans de nombreux domaines, tant sur le plan professionnel que personnel. J aimerais citer plus particulièrement : - Frédéric Bidet, pour son accueil et ses conseils - Arnaud Lanoix, pour son encadrement et sa disponibilité - Romain Pelletier et Olivier Camon, pour leur disponibilité, et leur aide précieuse Je n oublie évidemment pas toutes les personnes que je n ai pas citées ici, qui m ont soutenu ou apporté de l aide, aussi, je tiens à les remercier également. 2 Développement du module Supervision pour le logiciel «K-Sup»

3 Résumé (Abstract) Ce rapport reprend le travail que j ai réalisé durant seize semaines au sein de la société Kosmos, à Nantes. Le produit sur lequel je suis intervenu est «K- Portal», un CMS 1 dédié aux entreprises, collectivités administratives, et entités scolaires supérieures (dans sa déclinaison «K-Sup»). Ce CMS utilise, outre les technologies du web (HTML, CSS, Javascript, etc.), la technologie J2E. Ce stage s inscrivait donc parfaitement dans la continuité de la Licence Professionnelle «Systèmes Informatiques et Logiciels», que j ai suivie cette année. Une fois le contexte présenté (l entreprise, et le produit), j évoquerai le travail que j ai réalisé durant mon stage, notamment sur l extension de Supervision qui était l objet principal de ces quatre mois. This report deals with the work I did during my sixteen-week internship in Kosmos, Nantes. The product on which I intervened is named K-Portal, a CMS dedicated to companies, administrative authorities, and higher education entities (in its K-Sup declination). This CMS uses, in addition to web technologies (HTML, CSS, Javascript, etc.), the J2E technology. Therefore, this internship fit perfectly in line with the Computer Science and Software professional degree I follow this year. Once the context introduced (the company and the product), I will talk about the work I did during my internship, especially about the Supervision plug-in which was the main subject of those last four months. 3 Développement du module Supervision pour le logiciel «K-Sup»

4 Introduction L a mise en place d un outil de supervision pour la version 6 du CMS «K- Portal», a été le sujet principal du stage de seize semaines, que j ai réalisé dans les locaux de Kosmos, à Nantes. S étendant du 25 mars au 12 juillet 2013, ce stage de fin d études s inscrit dans la continuité de la Licence Professionnelle «Systèmes Informatiques et Logiciels» que j ai suivie cette année, puisque les technologies utilisées dans «K- Portal» sont principalement J2E, JSP, HTML, CSS, et Javascript (jquery), des technologies étudiées durant cette licence. Le développement de l outil de supervision n a pas été la seule tâche sur laquelle j ai travaillé, j ai également intervenu sur d autres composants du back-office 2 comme la page d accueil par exemple. Travailler au sein de Kosmos a vraiment été une expérience enrichissante, d autant plus que ce stage représentait pour moi un stage de pré-embauche. J ai donc pu utiliser ces seize semaines comme temps d adaptation au milieu de l entreprise et au produit «K-Portal». Le présent rapport résume le travail que j ai réalisé durant ces quatre mois. Son but n est pas seulement d effectuer une présentation exhaustive de tous les aspects techniques du projet que j ai pu approfondir ou apprendre, mais également des aspects humains auxquels j ai été confronté. Ce rapport de stage présente donc l entreprise qui m a accueilli, quatre mois durant, mais aussi le projet «K-Portal» et les développements que j ai réalisé. Je conclurai par un résumé des acquis personnels et des apports de ce stage. 4 Développement du module Supervision pour le logiciel «K-Sup»

Jean Planet (direction) 5 Kosmos 5.1 Quelques informations à propos de Kosmos 3 Kosmos est une PME 4 en plein développement, au capital de 420 000, comptant à l heure actuelle plus de 45 employés, avec un chiffre d affaire d environ 3,2 millions d euros en 2011 (un chiffre en augmentation). Située à Nantes, mais également implantée à Toulouse, la société Kosmos est présidée par Jean Planet depuis 2004, et compte actuellement plus de 120 références clients. Depuis 1998, année de sa création, la principale vocation de Kosmos est de fournir un service de qualité à leurs clients. Ce service se divise en quatre métiers : le conseil et l accompagnement auprès des clients, l édition de logiciels, le développement et l intégration des solutions, et l infogérance (tierce maintenance applicative 5 ). Plus précisément, Kosmos édite deux CMS. Un premier spécialement dédié aux entreprises et aux collectivités administratives nommé «K-Portal». Ce CMS possède une déclinaison «K-Sup», également vendue par Kosmos aux entités scolaires supérieures. Le second logiciel proposé par Kosmos est «K-d école», une solution ENT 6 dédiée aux collèges et lycées. 5.2 Au sein de Kosmos Ci-contre, quelques informations sur le personnel de Kosmos, sous forme d une hiérarchie succincte présentant les directeurs de chaque pôle : Guillaume Michel (commercial) Gwennig Duigou (communication et marketing) Nathalie Avron (Administration finances - RH) François Boutin (Pôle Web et mobilité) Sylvain Thomas (Pôle ENT Scolaires) Gaël Guimbretiere (Centre de support technique) 6 Développement du module Supervision pour le logiciel «K-Sup»

5.3 Etude du marché 5.3.1 Les clients 7 Comme évoqué précédemment, les solutions proposées par Kosmos visent tous les secteurs professionnels (alimentaire, électronique, secteur public, transports, santé, environnement, etc.), mais majoritairement la formation (l enseignement secondaire, l enseignement supérieur et la formation continue) ; par ailleurs, l envergure de Kosmos est nationale. Parmi les clients du secteur de la formation, qui représentent environ 50% des clients, on retrouve l Université de Nantes, l École Centrale de Nantes, le CNAM, ou encore le «Webclasseur» de l ONISEP. Du côté de l enseignement secondaire, on compte 4 clients : le Conseil Général de Haute Garonne, le Conseil Général Loire en Rhône-Alpes, l ENTmip et e-lyco. Parmi les entreprises du secteur publique, qui représentent 26 références, on retrouve le CHU de Nantes, la Tan, Nantes Métropole, ou encore le Prao, qui sont, eux aussi, des clients de Kosmos. Enfin, 5 entreprises font appel aux services de Kosmos : Spectra Precision, Rémy Cointreau, le Groupe Tollens, Mitsubishi Electric, et Sodebo. 7 Développement du module Supervision pour le logiciel «K-Sup»

5.3.2 La concurrence Le monde des CMS est un terrain relativement vaste qui regroupe plusieurs solutions web tantôt généralistes, tantôt spécifiques à des besoins précis. S il est difficile d établir des statistiques précises sur les utilisations des différents systèmes, les plus populaires restent avant tout Drupal (généraliste), Wordpress (plutôt axé blog), ou Joomla! (généraliste). Cependant ces trois solutions sont développées en PHP, contrairement à «K-Portal» et «K-d école» qui sont, tous les deux, des CMS développés avec la technologie J2E (au même titre que Jahia par exemple). 5.3.3 Les atouts de Kosmos Ce qui caractérise les solutions proposées par Kosmos, c est l adaptation naturelle de «K-Portal» aux structures d enseignement, grâce à sa déclinaison «K- Sup». Kosmos est réputée auprès de ses clients, pour la qualité de ses prestations (notamment la tierce maintenance applicative). Par ailleurs, les équipes techniques effectuent une veille régulière afin de suivre l état de l art. 8 Développement du module Supervision pour le logiciel «K-Sup»

6 K-Portal 6.1 La naissance du projet Le CMS «K-Portal» n a pas vu le jour immédiatement après la création de Kosmos en 1998. Au départ, Pascal Gaillard et Philippe Roux, pères fondateurs de l entreprise, avaient simplement ouvert une microstructure de consulting 8. Après avoir passé quelques années à proposer leurs conseils à leurs clients, l activité d édition logicielle est venue naturellement se greffer à l entreprise qui, par la suite, a vu son nombre de collaborateurs et de clients augmenter. «K-Portal» a été mis au point par la suite. 6.2 K-Portal vs. K-Sup Un CMS ou système de gestion de contenus, et une application destinée à aider une ou plusieurs personnes à mettre un site web facilement en place, sans se soucier des détails techniques. L un des avantages principaux des CMS est d effectuer automatiquement une séparation du fond et de la forme, ce qui permet aux développeurs de pouvoir mettre à jour le thème de leur site web et les informations qui y apparaissent, sans toucher au contenu. Si l on entre dans les détails, on peut voir que «K-Portal» dispose de toutes les fonctionnalités d un CMS traditionnel parmi lesquelles : - L édition d articles et de contenus structurés personnalisables. Par exemple, il est possible d ajouter un calendrier d événement, l événement lui-même formant un contenu à part entière ; - La répartition de ces contenus dans des rubriques, afin de créer une arborescence de navigation au sein du site web ; - La possibilité de différer la publication des contenus ; - La possibilité de réviser le contenu des articles ; - Le référencement automatique (interne et externe) du site web et de ses contenus ; 10 Développement du module Supervision pour le logiciel «K-Sup»

- La gestion d une galerie de médias (photos, vidéos, fichiers audio, et autres téléchargements) ; - La possibilité de publier les contenus dans des newsletters, des flux RSS, et autres fils d information ; - Le contrôle des utilisateurs et de leurs droits. Le webmaster du site pourra ainsi attribuer les droits de rédaction, de consultation et de contrôle des contenus du site web, en fonction de leur type, et du groupe auquel appartient chaque utilisateur. Ces contrôles s appliquent également aux fonctions administratives du site web ; - La possibilité de synchroniser la liste des utilisateurs avec un annuaire externe ; - La possibilité d ajouter et de contrôler des extensions pour enrichir les fonctionnalités du back-office ou du site web en lui-même ; - La mise à disposition d outils de configuration du site et le contrôle de la santé de l application. Cette liste n est évidemment pas exhaustive. La principale spécificité de «K-Sup» se situe au niveau des types de contenus. Kosmos propose une solution métier avec des types de contenus préconfigurés. Plus concrètement, un client disposant de «K-Sup» bénéficiera de types de contenus lui permettant d ajouter des éléments pertinents au site web de son établissement. Il s agit ici d ajouter la description des cours et formations enseignées, tenir un annuaire d anciens élèves ou de contacts d entreprises pour des stages, etc. 6.3 L équipe «R&D» L équipe «R&D» que j ai rejoint durant mon stage, se trouve au cœur du développement de «K-Portal». Agissant principalement sur le back-office, elle se concentre actuellement sur la version 6 de l application. Au début de mon stage, l équipe n était composée que de trois membres : Olivier Camon, Romain Pelletier et Frédéric Bidet (chef du pôle R&D). Cette équipe s est progressivement agrandie, en accueillant 2 nouveaux membres. 11 Développement du module Supervision pour le logiciel «K-Sup»

6.4 Architecture et fonctionnement «K-Portal» est prévu pour être adapté aux projets des clients c est pourquoi son architecture est découpée en plusieurs couches permettant ainsi une meilleure maintenance. Voici un schéma résumant le découpage applicatif de «K-Portal» : Le CMS «K-Portal» utilise Maven, un outil libre permettant de contrôler automatiquement les dépendances 9. Grâce à Maven, la modularisation 10 de l application, un des objectifs principaux de la nouvelle version, a été grandement facilitée. «K-Portal» fait également appel aux services de Spring, un framework 11 de développement Java, qui facilite notamment la définition de la structure de l application. Cela a pour conséquence de faciliter le développement et les tests. Spring est également un excellent outil pour contrôler les injections de dépendance 12. 6.5 Autour du développement Pour travailler sur «K-Portal», l équipe «R&D» utilise l IDE Eclipse adapté aux projets J2E. Avec cela elle dispose d une installation d Apache Tomcat (un serveur web pour les projets en Java) sur chaque ordinateur pour faciliter les tests. 12 Développement du module Supervision pour le logiciel «K-Sup»

Chaque développeur possède un accès au dépôt 13 SVN de Kosmos. Ce dépôt renferme les dernières sources de «K-Portal». SVN s avère être une solution très efficace pour gérer une équipe de développeurs qui travaillent tous sur le même projet (voire sur les mêmes sources), mais actuellement, Kosmos réfléchit à la mise à disposition des sources sur un dépôt Git 14 (le but étant de faciliter la mise à disposition de «K-Portal» en Open Source). Deux gestionnaires de demandes sont utilisés. Actuellement, Mantis est utilisé par les clients pour informer Kosmos des bugs et autres problèmes survenus sur leur site. Du côté des développeurs, l outil Jira a été récemment mis en place. Jira intègre également la notion du temps et un système de statistiques afin d offrir une interface plus complète. L interface Jira sera prochainement ouverte aux clients. Quelques illustrations sont à retrouver en annexe concernant ces outils. Pour faciliter l intégration continue, l outil Jenkins est utilisé. Le but de cet outil est de vérifier qu il ne se produit pas de régression, au fur et à mesure des modifications effectuées sur le produit. L avantage de Jenkins est qu il peut s interfacer avec des gestionnaires de versions comme SVN, et qu il peut exécuter des projets basés sur Maven, ce qui correspond tout à fait à «K-Portal». Enfin, pour le moment aucun système de tests unitaires n est mis en place. Cependant, c est l un des objectifs futurs de «K-Portal», notamment grâce aux outils Jenkins et junit qui travailleraient de pair pour effectuer les tests. 13 Développement du module Supervision pour le logiciel «K-Sup»

7 Travail réalisé 7.1 Extension «Supervision» 7.1.1 Besoin et existant Dans la version 5.1, actuellement en production chez tous les clients de Kosmos, «K-Portal» ne dispose d aucun outil permettant de configurer facilement l application, et de contrôler son état de santé. Kosmos se devait d en mettre un au point, non seulement pour s aligner sur la concurrence, mais avant tout pour améliorer l ergonomie 15 et le confort des webmasters (notamment quand ils font appel aux services de TMA), et faciliter le travail des équipes techniques. Ainsi, l extension «Supervision» verra progressivement le jour durant mon stage, avec cinq fonctionnalités principales (représentant cinq modules basés sur cinq processus 16 ), détaillées ci-après : - Paramétrage de l application : son but est de pouvoir récupérer la valeur d une propriété de l application (contenues dans les fichiers de paramétrage Java). A l avenir ce module pourra permettre la modification des valeurs de ces paramètres depuis le back-office ; - Internationalisation des messages : similaire au paramétrage de l application, ce module permet de récupérer la valeur d un message qui apparait dans le back-office dans différentes langues. A l avenir ce module devra permettre la traduction manuelle de l interface, et l installation de packages de langues ; - Scripts automatisés : ce module permet d effectuer des tâches récurrentes sans intervention du webmaster. Ce dernier se contentera de programmer le script afin qu il s exécute à intervalles donnés. Les tâches peuvent également être exécutées manuellement ; - Fichiers journaux : l objectif de ce module est de permettre la consultation des fichiers journaux du site web qui peuvent s avérer très précieux pour la maintenance ; - Etat du système : ce module permet de contrôler divers critères du système : état de la mémoire, état de Tomcat, état des caches 17, etc. A l avenir ce module permettra d avoir un résumé de l état de 15 Développement du module Supervision pour le logiciel «K-Sup»

l installation précisant si certains composants de l application sont mal installés, si certaines anomalies sont présentes, etc. 7.1.2 Paramétrage de l application et internationalisation de l interface Je ne traite pas ces deux parties séparément, puisque le développement est sensiblement identique entre les deux modules. Dans la première version de ce module, l objectif était de proposer un moteur de recherche avec une auto-complétion 18 afin de faciliter la saisie d un paramètre. Le moteur de recherche doit ensuite afficher le résultat au sein d un tableau proposant quelques détails supplémentaires. Prototypes d écrans : Les résultats sont sur la page suivante. 16 Développement du module Supervision pour le logiciel «K-Sup»

17 Développement du module Supervision pour le logiciel «K-Sup»

Pour parvenir à mes fins, j ai utilisé le plugin jquery «autocomplete», après avoir testé plusieurs solutions. L avantage de «autocomplete» est qu il propose un comportement par défaut qui correspondait exactement au cahier des charges, et qu il propose un mode de complétion en AJAX 19. Les suggestions de recherches peuvent ainsi être calculées par le serveur comme l illustre le schéma suivant : Client Serveur Saisie Résultat Résultat Résultat Résultat Calculs de résultats Etant donné que «K-Portal» propose déjà une architecture complète axée sur l affichage de pages via le protocole HTTP, j ai dû développer moi-même la servlet 20 de traitement. Heureusement, «K-Portal» propose quand même une interface et une classe abstraite donnant accès à diverses variables de contexte comme la session de l utilisateur par exemple. Le schéma suivant explique la structure du système de traitement en AJAX : 18 Développement du module Supervision pour le logiciel «K-Sup»

Grâce à cette première approche, j ai pu constater à quel point le modèle MVC 21 pouvait être exploité et pratique dans un projet web J2E (ce qui est le cas de «K-Portal»). Deux autres actions sont possibles sur ces écrans. La première permet le rechargement à chaud des paramètres et des messages. Pour mettre au point cette action, il m a simplement suffit de faire appel à la méthode d une classe proposant déjà cette fonctionnalité. Le rechargement à chaud évite au webmaster de devoir redémarrer le serveur de son site web s il effectue un petit changement dans ses fichiers de configuration. La seconde action (uniquement sur l écran de paramétrage) permet de télécharger les fichiers de propriétés au sein d une archive. Une fois de plus, la procédure était relativement simple : après avoir généré l archive en question, l utilisateur est redirigé vers une page où l on lui propose de télécharger le fichier compressé. 7.1.3 Scripts automatisés Le développement de ce module n a pas été le plus simple puisqu il alliait beaucoup de notions et de subtilités de «K-Portal» qu il fallait encore que j apprenne. L objectif de ce module était de proposer trois écrans : - Un premier écran pour la liste des traitements automatisés. Ces traitements correspondent à des tâches de fond comme l indexation du site web ou la suppression des éléments temporaires. Ce sont généralement des tâches qui peuvent s avérer très rébarbatives si elles sont effectuées par un webmaster. Depuis cet écran, si l utilisateur en a les droits, il doit pouvoir exécuter manuellement le traitement, et une petite fenêtre de paramétrage doit apparaître si l exécution de la tâche nécessite quelques configurations ; - Le deuxième écran correspond à la liste des déclencheurs. Un déclencheur correspond à une liste de traitements automatisés qui vont être exécutés à intervalles donnés (exemple : toutes les nuits à 1h59). Depuis cet écran, il doit être possible de modifier ou supprimer 19 Développement du module Supervision pour le logiciel «K-Sup»

un déclencheur (si l utilisateur en a les droits), et activer ou désactiver le déclencheur ; - Enfin, le troisième écran propose la configuration d un déclencheur. Il s agit d un simple formulaire de saisie d un déclencheur proposant : o La saisie d un libellé pour le déclencheur o La saisie ordonnée des tâches qu il doit effectuer (avec une petite fenêtre de paramétrage si nécessaire) o La saisie d une expression cron 22. Voici le prototype de la page principale des scripts automatisés. Notez la différence principale entre le prototype et le résultat : les deux tableaux se trouvant sur la page principale sont désormais séparés sur deux écrans distincts : Les résultats se trouvent à partir de la page suivante. 20 Développement du module Supervision pour le logiciel «K-Sup»

21 Développement du module Supervision pour le logiciel «K-Sup»

Le développement de ces écrans n a pas nécessité de conception très avancée en amont, le but étant vraiment de proposer une interface de configuration. Cependant, «K-Portal» utilise la librairie «Quartz Scheduler», développée par Terracotta, une librairie qui met à disposition toute une API 23 afin de mettre un système de déclencheurs/traitements en place. Pour parvenir à mes fins, j ai également dû me familiariser avec le système d exécution de requêtes proposé par «K-Portal». Enfin, j ai également développé un petit plugin jquery dont le but était d afficher des éléments HTML «iframe» sous forme de pop-in 24. Ici mon objectif était également de développer un plugin réutilisable dans la totalité du système, il fallait donc que la conception soit le plus généraliste possible. Malgré les difficultés d adaptation rencontrées sur cette partie du développement de «Supervision», cela s est avéré très formateur et m a permis de me familiariser avec beaucoup de notions de «K-Portal». 22 Développement du module Supervision pour le logiciel «K-Sup»

7.1.4 Gestion des fichiers journaux La gestion des fichiers journaux (autrement appelés «fichiers de logs») m a permis de me familiariser avec les notions de «clustering» et «load balancing» 25. Le but de ce module est de recenser tous les fichiers de logs présent sur la (ou les) machines mettant une installation de «K-Portal» à disposition des utilisateurs. Ces fichiers de logs sont très utiles puisqu ils recueillent les rapports d exécutions des tâches automatisées évoquées précédemment, mais aussi du site web en lui-même, et de ses extensions. Voici le prototype de l écran que j avais à développer : Le résultat se trouve sur la page suivante. 23 Développement du module Supervision pour le logiciel «K-Sup»

Comme on peut l observer dans l écran, il doit être possible de télécharger les fichiers journaux. Pour cela, j ai mis en place une nouvelle servlet dont l objectif est de gérer le téléchargement d un fichier. A l heure actuelle, les navigateurs Internet sont relativement puissants et peuvent afficher, à l intérieur-même de leur interface, beaucoup de fichiers (textes, documents, vidéos, fichiers audio, photos, etc.) Ergonomiquement parlant, ce n était pas le comportement souhaité pour le téléchargement des fichiers journaux. Le but était de «forcer» le téléchargement pour que l utilisateur obtienne le fichier directement sur son disque dur sans passer par l étape d affichage, et également pour des raisons de poids de fichiers. Pour cela, il fallait que j intervienne sur l entête de la réponse à la requête HTTP, d où la création nécessaire d une nouvelle servlet. Une fois de plus, le développement de cet écran n a pas demandé de conception très avancée, cependant j ai pu me familiariser avec divers composants de «K-Portal», notamment, lors de la conception du petit moteur de recherche en haut de l écran. Le but de ce moteur étant de proposer quelques filtrages (par date, par logger 26, et par serveur si le load balancing est actif). 24 Développement du module Supervision pour le logiciel «K-Sup»

7.1.5 Contrôle de l état du système Par manque de temps avant la sortie de la version 6 de «K-Portal», j ai dû me concentrer sur les éléments prioritaires de la conception de module : l état des caches, et l adaptation de quelques écrans de la version précédente. J aborderai tout même la conception de la vérification de l installation. L objectif de ce module est de proposer des informations et des statistiques sur l état du système au moment où le webmaster consulte les données. Le premier écran de ce module propose un tableau récapitulatif des caches de l application. Cet écran est une adaptation directe de celui présent sur «K- d école». En effet, «K-Portal», dans sa version 6, intègre la librairie «ehcache» proposée par Terracotta, et «K-d école» intégrait déjà cette solution dans sa version actuelle. Le deuxième écran de ce module propose, pour le moment, une liste de liens permettant de consulter différentes pages. Ces pages proposent des informations techniques utiles pour connaître l état de Tomcat (utilisation de la mémoire, nombre de threads, etc.) Voici le prototype de base : Le résultat obtenu se trouve sur la page suivante. 25 Développement du module Supervision pour le logiciel «K-Sup»

En plus de ces informations très techniques, un écran verra le jour dans une prochaine version, dont le but est de recenser les problèmes et les messages d information du site web. Ces messages peuvent par exemple indiquer au webmaster que son serveur SMTP n est plus joignable, ou qu un module n est pas installé correctement. A ce stade, un problème de conception s est posé : - Soit l on effectue tous les tests au chargement de la page, ce qui peut s avérer très long si l on tient compte des temps de réponses de certains systèmes (exemple : un serveur SMTP indisponible peut monopoliser l exécution du script pendant un certain temps) ; - Soit l on affiche la page, et les résultats des tests sont affichés progressivement grâce à l AJAX. Si, dans cette solution, la page est affichée directement, et prouve à l utilisateur que le site web exécute bien des requêtes, l attente de leur résultat peut s avérer aussi longue ; - La solution finalement retenue est la suivante : le but est de créer une tâche automatisée qui va interroger toutes les extensions du site web et le site lui-même, afin de collecter toutes les informations nécessaires, et les stocker en base de données, jusqu à les afficher. Si 26 Développement du module Supervision pour le logiciel «K-Sup»

Interrogations - Réponses Interrogations - Réponses Enregistrement Déclenchement l on perd un peu la notion de résultats instantanés, l utilisateur n a pas à patienter, l ergonomie, point essentiel du développement d une application, s en trouve donc grandement améliorée. Voici un schéma de conception à propos de ce système d interrogation : Script de vérifications Extension Extension Module Module Module Extension Module Base de données 7.2 Autres tâches réalisées 7.2.1 Contrôle des actions par rôle Lors du développement des différents modules de Supervision, je me suis rendu compte que certaines parties du code des processus, notamment le traitement des différentes actions en fonction des droits de l utilisateur (une action correspondant à la modification d un élément, l affichage d une liste, la recherche d un élément, etc.) Ainsi, on pouvait facilement se retrouver avec un code structuré comme celui-ci (en pseudocode) : si (action = «Afficher») alors: si (utilisateur.peut(«afficherpage»)) alors: prepareraffichage() sinon: remontererreur(«action interdite!») fin si. sinon si (action = «Modifier») alors: si (utilisateur.peut(«modifierelément»)) alors: preparermodifications() sinon: remontererreur(«action interdite!») fin si. sinon si -- etc. 27 Développement du module Supervision pour le logiciel «K-Sup»

J ai donc eu l idée d exploiter la réflexivité 27 de Java afin de clarifier le code, faciliter le développement et la maintenance. Désormais, le code des processus est nettement factorisé : ControleurDActions ctl = nouveau ControleurDActions() ctl.enregistreraction(«afficher», «AfficherPage», @prepareraffichage(), «Action interdite»).enregistreraction(«modifier», «ModifierElément», @preparermodifications(), «Action interdite») ctl.controler(action) Les exemples cités sont évidemment simplifiés. On remarque ici que le traitement s effectue en deux temps : la création d un contrôleur et l enregistrement des actions, et l appel à ce contrôleur. Automatiquement, de son côté, le contrôleur effectue les vérifications sur les droits de l utilisateur, et décidée s il faut appeler la méthode passée en paramètre ou soulever l erreur. Cela évite ainsi d avoir un code très répétitif. 7.2.2 Refonte de la page d accueil Durant mon stage, je suis également intervenu sur la refonte de la page d accueil, celle du back-office, en l occurrence. Avant la refonte, les utilisateurs du site web ayant un accès au back-office se retrouvaient face à un formulaire de recherche de fiches après s être connecté. La version 6 apportera désormais un écran divisé en plusieurs zones : une liste des dernières fiches rédigées par l utilisateur (avec un lien pour toutes les afficher), un moteur de recherche simplifié, une liste des dernières fiches à valider (avec un lien pour toutes les afficher) et un lecteur du flux RSS des dernières mises à jours de «K-Portal». La page d accueil ainsi «modularisée» 28, pourra accueillir, par exemple, un module affichant les derniers messages d erreur de l installation (se rapportant au module «État du Système» évoqué précédemment). Un aperçu de la page d accueil se trouve sur la page suivante. 28 Développement du module Supervision pour le logiciel «K-Sup»

8 Conclusion J ai beaucoup appris de ces quatre mois passés à Kosmos, et ce, dans plusieurs domaines. Tout d abord, ce deuxième stage de mon parcours étudiant, dans le milieu professionnel, m a permis de découvrir un autre type d entreprise. Par rapport à mon stage précédent, j ai travaillé dans une petite entreprise, dont les métiers vont de l édition logicielle, au conseil, et à l intégration de ses solutions. Ce qui m a beaucoup plu au sein de Kosmos, c est que le cahier des charges du produit est créé par l entreprise elle-même (même si les clients formulent des demandes). En d autres termes, toutes les initiatives sont les bienvenues, et certaines voient le jour après délibérations. De plus l équipe de Kosmos s informe régulièrement sur les dernières technologies du web (notamment sur les solutions open source), afin d être toujours à la page. Une qualité que j apprécie tout particulièrement. Ensuite, ce stage aura permis de mettre mes acquis de la licence professionnelle en action, dans un contexte concret. Si la phase d apprentissage a été rapide, c est notamment parce que les technologies et les méthodes de développement employées correspondent tout à fait à ce que j ai appris pendant mon cursus d enseignement supérieur, et par mes expériences personnelles. Enfin, ce stage aura également été un excellent enrichissement sur le plan personnel. Le fait d'avoir travaillé au sein d'une équipe sympathique, et le fait de se sentir réellement impliqué dans un vrai projet m'ont vraiment donné goût au travail, et goût au monde de l entreprise. Passer ces quatre mois chez Kosmos m a conforté dans le choix de travailler dans le monde du web, et en l occurrence, dans une entreprise jeune et dynamique. 31 Développement du module Supervision pour le logiciel «K-Sup»

9 Annexes 9.1 Découpage technique de «K-Portal» Ce découpage n est pas exhaustif. 32 Développement du module Supervision pour le logiciel «K-Sup»

9.2 Aperçu de JIRA, l outil de gestion de projets Cette vue correspond à un tableau de bord. JIRA propose des outils très puissants afin de personnaliser l aperçu des statistiques concernant le projet. Aperçu d une tâche. On aperçoit, à droite, le suivi temporel. 33 Développement du module Supervision pour le logiciel «K-Sup»

9.3 Aperçu de Mantis Bug Tracker Un outil très utilisé pour rapporter des bugs, également adapté aux smartphones. 34 Développement du module Supervision pour le logiciel «K-Sup»

9.4 Aperçu de Jenkins L outil Jenkins propose des statistiques sur l intégration continue. 35 Développement du module Supervision pour le logiciel «K-Sup»

10 Références bibliographiques La plupart des documents qui m ont permis de comprendre et développer le projet étaient fournis sur le serveur de fichiers de l entreprise (la plupart étant classés confidentiels). Le web m a également été d une grande utilité, notamment les forums tels que http://stackoverflow.com, une ressource relativement fiable lorsqu il s agit de questions de développement informatique. La «Javadoc» a également été utile occasionnellement (http://docs.oracle.com/). Enfin, les cours et mes propres expériences personnelles m ont également beaucoup aidé dans la réalisation de ce stage. 36 Développement du module Supervision pour le logiciel «K-Sup»

11 Notes et références 1 CMS : Content Management System (en français, SGC : système de gestion de contenus). Il s agit d un socle logiciel sur lequel il est possible de bâtir des sites web. Ces socles se veulent généralement souples, afin de permettre aux webmasters de réaliser un site web à leur image, avec des contenus personnalisés, sans se soucier des détails techniques. Le CMS se démarque du framework qui, lui, se veut comme étant un ensemble de librairies et de fonctionnalités, et une aide à la structuration du code, venant à l aide du développeur. Le monde du web étant très vaste et en perpétuelle évolution, il est difficile de réaliser un classement des SGC les plus utilisés, cependant on peut tout de même citer des exemples très connus tels que WordPress, Drupal, ou Joomla!. 2 Le back-office est un outil d administration des sites web. Grâce au back-office, les contributeurs peuvent publier des articles, gérer les utilisateurs inscrits sur le site web, leurs droits, installer des extensions, contrôler l état du site web, et bien d autres choses encore. 3 Ces chiffres sont susceptibles d avoir évolué. 4 Abréviation pour «Petites et Moyennes Entreprises» 5 La Tierce Maintenance Applicative (aussi abrégée TMA) correspond au service de maintenance proposée par un prestataire à son client. Cette maintenance consiste à une aide à la compréhension du produit, à son amélioration, à son adaptation et à la résolution de problèmes. 6 Abréviation pour «Environnement Numérique de Travail» 7 Voir note (3). 8 Les entreprises de consulting proposent leurs services en donnant des conseils professionnels à leurs clients, dans un ou plusieurs domaines précis. Dans le cas de Kosmos, le consulting s effectue dans le domaine de la mise en place d un site web. 9 Maven est un outil permettant de contrôler les dépendances. Il arrive souvent qu un développeur ait besoin de librairies externes pour étendre les fonctionnalités de Java (exemple : une librairie pour décoder et encoder les objets JSON). Ainsi Maven se charge tout seul de télécharger les librairies nécessaires au 38 Développement du module Supervision pour le logiciel «K-Sup»

fonctionnement d un projet. Maven permet également d effectuer des tâches récurrentes très facilement, comme la compilation d un projet, l exécution des tests unitaires, la création de la documentation, etc. 10 La modularisation consiste à diviser une application en différentes parties afin d étendre les fonctionnalités d un système. L avantage de cette solution est qu un développeur peut facilement développer de nouveaux greffons pour son programme, sans toucher au cœur de l application, et effectuer des mises à jour de ces extensions, indépendamment du reste. 11 Voir note (1). 12 L injection de dépendance propose un modèle de programmation dynamique, dans lequel les dépendances entre les classes sont gérées à l exécution du programme et non à la compilation. Plus concrètement, le développeur devra préférer l utilisation d une interface pour qu un objet de type A puisse effectuer des appels à un objet de type B. 13 Un dépôt SVN correspond à un serveur sur lequel des développeurs mettent leurs sources à disposition des autres de leur équipe. 14 La différence fondamentale entre GIT et SVN est que GIT propose une architecture distribuée. C est-à-dire qu il n y aura pas un serveur central comprenant toutes les sources, mais que chaque machine utilisant GIT est son propre dépôt. GIT propose également d autres avantages face à SVN comme le stockage des données complémentaires dans un seul dossier, contrairement à SVN qui en stocke dans chaque dossier de sources. GIT propose également un contrôle de l intégrité des sources. 15 La notion d ergonomie est une notion relativement vaste, décrivant notamment la facilité qu a un utilisateur à trouver l information qu il cherche, au sein d une interface graphique. L ergonomie englobe également la notion d accessibilité qui correspond à la possibilité de naviguer dans une interface graphique par tous les moyens possibles (clavier, souris et autres dispositifs accessibles aux personnes handicapées). 16 Un processus, au sein de «K-Portal» correspond à une classe ou un ensemble de classes Java se rapportant à une fonctionnalité précise du SGC. 39 Développement du module Supervision pour le logiciel «K-Sup»

17 Un cache est une zone de mémoire dans laquelle un système va stocker des informations pour y avoir accès plus rapidement, au lieu de requêter systématiquement une source de données plus lente. 18 L auto-complétion est un mécanisme très utilisé en informatique. Son principe est simple : suggérer des données en fonction de ce qu a saisi l utilisateur. L avantage de ce mécanisme est qu il peut proposer plusieurs suggestions et apporter des précisions sur chaque suggestion qu il effectue. 19 AJAX est l acronyme de Asynchronous JavaScript and XML. Il s agit d une architecture permettant de rendre des sites web dynamiques, notamment en y ajoutant des requêtes HTTP asynchrones. 20 Une servlet, dans un projet en Java correspond à une classe qui sera appelée suite à une requête HTTP. 21 Le modèle MVC est un modèle de développement basé sur les 3 entités suivantes : Modèle Contrôleur Vue. Le modèle correspond à la représentation programmatique des données, la vue correspond à la présentation (l interface graphique de manière générale), et le contrôleur effectue le lien entre les deux (il traite les actions que l utilisateur a demandées via la vue, en exploitant le modèle). 22 Une expression cron est une expression qui a été proposée par le programme cron disponible sur les systèmes Unix. Ces expressions peuvent permettre de définir la granularité d exécution de tâches automatisées. Avec de telles expressions il est tout à fait possible de programmer un script qui va s exécuter tous les jours, entre midi et 13h, toutes les cinq minutes, sauf le mercredi, ce qui se traduirait par l expression suivante : */5 12 * * 1,2,4,5,6,0 (ici */5 signifie littéralement «toutes les 5 minutes», 12 signifie «à 12h» (implicitement on comprend qu à 13h, l exécution ne se fera plus), les deux étoiles suivantes correspondent à «tous les jours et tous les mois», et enfin la liste 1,2,4,5,6,0 correspond à tous les jours de la semaine, en excluant le mercredi (portant le numéro 3), et en considérant que le dimanche porte le numéro 0). 23 API est l abréviation de «Application Programming Interface». Une API correspond à un ensemble de classes, méthodes et fonctions ayant un objectif particulier. Le plus souvent l API facilite la programmation de notions avancées. 40 Développement du module Supervision pour le logiciel «K-Sup»

24 Le mécanisme de pop-in est légèrement différent des pop-up (ou pop-out). Ces noms un peu arbitraires désignent tous de petites fenêtres qui s affichent pardessus la fenêtre principale, afin d afficher un message, ou proposer une saisie obligatoire avant de poursuivre un traitement. La différence entre pop-in et popout réside dans l affichage. Une fenêtre pop-in, qui a été entièrement programmée par le développeur web apparait moins intrusive pour le développeur puisqu elle se fond dans l interface du site web, contrairement aux pop-outs qui sont des fenêtres du système. Un autre avantage de la pop-in est que le développeur possède complètement la main sur son comportement et peut ainsi plus facilement interagir avec. 25 Le load balancing (répartition de charge) est une des architectures possibles du clustering. Le but du clustering est d associer le travail de plusieurs machines afin d offrir une disponibilité et une puissance de calculs plus importantes. Le principe du load balancing repose sur la redirection d un client vers une des machines du système, à son insu. Chaque machine de cette configuration travaille avec les mêmes ressources. 26 Un logger correspond à un composant de l application ayant la capacité de générer des fichiers journaux. 27 La réflexivité est une notion en programmation. Cela signifie la capacité que peut posséder un langage de programmation à examiner et modifier la structure de ses propres programmes. 28 Voir note (11) 41 Développement du module Supervision pour le logiciel «K-Sup»