RAPPORT DE STAGE : " Centreon Status Map " - Conception et développement d'une application

La page est créée Vanessa Barbe
 
CONTINUER À LIRE
RAPPORT DE STAGE : " Centreon Status Map " - Conception et développement d'une application
RAPPORT DE STAGE :
            « Centreon Status Map »
   Conception et développement d’une application
                                   j2se
                Du Mardi 1 mai au Mercredi 31 octobre 2007.

                           Jean-Baptiste Lamotte
                                 lamott_j

Effectué à :
       Société Merethis
       12 avenue Raspail
       94270 Gentilly – France
RAPPORT DE STAGE : " Centreon Status Map " - Conception et développement d'une application
Origine :
                                       Société Merethis
                                                                                 LAMOTTE Jean-
                                                                                    Baptiste
                                                                                      Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se        Mémoire de stage

                                   Remerciements :

Je remercie toute l’équipe et ses responsables qui m’ont permis d’effectuer ce stage dans de
bonnes conditions :

   -   Romain Lemerlus, mon tuteur de stage, directeur des projets, et cofondateur de
       Merethis
   -   Julien Mathis, directeur technique, et cofondateur de Merethis
   -   Cedric Facon, architecte web et formateur,
   -   Mathavarajan Sugumaran, formateur,
   -   William Lienard, développeur,
   -   Sylvestre Ho-Tam-Chay, web designer,
   -   Thierry Bernardini, administrateur.

                              Mémoire de stage de 3e année.                       Page 2 sur 54
RAPPORT DE STAGE : " Centreon Status Map " - Conception et développement d'une application
Origine :
                                                          Société Merethis
                                                                                                                          LAMOTTE Jean-
                                                                                                                             Baptiste
                                                                                                                                  Domaine :
                                           « Centreon Status Map »
                               Conception et développement d’une application j2se                                        Mémoire de stage

Table des matières
Remerciements : ................................................................................................................... 2

1.     Résumé ......................................................................................................................... 4

2.     Présentation de l’entreprise ........................................................................................... 6

     2.1.    Secteur d’activité ..................................................................................................... 6

     2.2.    L’entreprise ............................................................................................................. 6

     2.3.    Les services ............................................................................................................ 7

       2.3.1.      Formation ......................................................................................................... 7

       2.3.1.      Support ............................................................................................................ 7

       2.3.2.      Edition .............................................................................................................. 7

     2.4.    Le positionnement du stage dans l’entreprise.......................................................... 8

3.     Travail effectué .............................................................................................................. 9

     3.1.    Cahier des charges ................................................................................................. 9

       3.1.1.      But général....................................................................................................... 9

       3.1.2.      Explication détaillée des résultats à obtenir .....................................................10

     3.2.    Compte rendu d’activité ..........................................................................................12

       3.2.1.      Axe d’étude et de recherche choisis ................................................................12

       3.2.2.      Déroulement concrets des études. ..................................................................15

       3.2.3.      Interprétation et critique des résultats ..............................................................49

4.     Conclusion générale .....................................................................................................50

5.     Bibliographie & webographie ........................................................................................51

     5.1.    Bibliographie ..........................................................................................................51

     5.2.    Webographie ..........................................................................................................51

6.     Glossaire ......................................................................................................................52

                                            Mémoire de stage de 3e année.                                                   Page 3 sur 54
Origine :
                                          Société Merethis
                                                                                    LAMOTTE Jean-
                                                                                       Baptiste
                                                                                          Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se            Mémoire de stage

1. Résumé

   Le stage de 6 mois a été effectué chez Merethis, société créée en 2005 par d’anciens
élèves d’Epitech, spécialisée dans la supervision réseau open source.

       La supervision réseau est un domaine en pleine expansion. En effet, toutes les
entreprises ont aujourd’hui un besoin croissant en informatique, et le nombre d’équipements
ne cesse d’augmenter. De même, les réseaux transmettent de plus en plus d’informations.
Cela permet à l’informatique d’occuper une place décisive dans les entreprises. Toutefois,
cela rend les infrastructures plus sensibles.

       La supervision réseau permet de surveiller le bon fonctionnement de ces ressources
et ainsi de prévenir d’éventuelles pannes, ou de les détecter dans les plus brefs délais, avant
qu’elles n’aient des répercutions plus importantes.

       Merethis a initialement créé Oreon, une solution de monitoring complète et open
source. Ce logiciel open source tire sa force d’une grande communauté d’utilisateurs des
logiciels, mais créé aussi une faiblesse pour l’entreprise qui ne génère des bénéfices que par
son support.

       Le but du stage était de reprendre le développement d’une application de
cartographie avancée, visant à rendre la supervision accessible à un néophyte une fois le
parc informatique correctement configuré dans Centreon, et optimiser le temps d’accès à
l’information via une application centralisant tout ce qui concerne le monitoring et laissant de
coté la configuration à Centreon. Cette application se nomme Centreon Status Map.

       Cette première application possédait malheureusement de nombreux défauts et
n’était pas commercialisable en l’état.

       De nombreuses phases d’études, de tests, et de tâtonnements permirent d’aboutir à
une version finale de Centreon Status Map 2.
       Il y eu 4 phases directives qui composèrent ce stage.
                               Mémoire de stage de 3e année.                         Page 4 sur 54
Origine :
                                        Société Merethis
                                                                                      LAMOTTE Jean-
                                                                                         Baptiste
                                                                                           Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se              Mémoire de stage

       Apres une première phase d’étude de Centreon Status Map 1.x, il était évident que
toute la conception était à revoir. L’application fut recommencée. Le but était de reproduire
toutes les fonctionnalités présentes, de les améliorer, et d’en créer de nouvelles, sans les
problèmes de performances, et bug de cette première version.

       La seconde phase fut d’étudier le framework eclipse RCP, et de démarrer le
développement de Centreon Status Map 2.x. La richesse de ce framework n’est pas encore
épuisée, mais tout au long du stage, mes connaissances se sont améliorées.

       La troisième phase d’étude fut consacrée à l’exploration des technologies XML avec
JAVA. Je conçus plusieurs modèles de flux XML permettant de transférer l’information entre
le serveur de supervision utilisant Centreon, et l’application Centreon Status Map.

       La dernière phase fut d’implémenter un éditeur graphique reposant sur le framework
GEF. Ce framework aux multiples possibilités est malheureusement très mal documenté.
Son étude demanda beaucoup d’assiduité afin d’aboutir à un résultat exploitable.

       Après de nombreuses phases de test, la version 2.0.0 de Centreon Status Map était
enfin disponible. Cette version fut testée par plusieurs grands groupes (souhaitant garder
l’anonymat), utilisant Centreon comme base de monitoring. Il y eu des retours, sur des
améliorations fonctionnelles.
       Chacune des demandes de ces entreprises fut satisfaite, afin d’aboutir aujourd’hui à
Centreon Status Map 2.1.1. Un produit leur apportant pleine satisfaction.

       L’entreprise Merethis m’a proposé un contrat en alternance après le stage, et m’a
placé à la tète ce projet. Il comptera très bientôt de nouveaux développeurs afin d’accélérer
son évolution. Le développement de Centreon Status Map a encore un bel avenir devant lui,
afin de répondre à tous les nouveaux besoins des entreprises.

                                Mémoire de stage de 3e année.                          Page 5 sur 54
Origine :
                                         Société Merethis
                                                                                     LAMOTTE Jean-
                                                                                        Baptiste
                                                                                            Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se           Mémoire de stage

2. Présentation de l’entreprise

Le stage a été effectué durant 6 mois à la société Merethis.

   2.1. Secteur d’activité

   Les entreprises et organisation ont aujourd’hui de plus en plus d’équipement informatique
et électronique, et leurs surveillances (état de fonctionnement, qualité de fonctionnement
etc..) ne peuvent être effectuées manuellement tant leur nombre est élevé. C’est pourquoi il
existe des solutions de monitoring réseau.

   Merethis se place au cœur de ces systèmes de surveillance, en proposant de nombreux
outils, afin de surveiller efficacement l’ensemble de ces équipements.

   2.2. L’entreprise

   Merethis a été créé en 2005, à la suite d’un projet de fin d’étude effectué par 5 étudiants
de l’Epitech.

   Le projet initial consistait à créer une surcouche au célèbre ordonnanceur Nagios afin de
simplifier sa configuration. Ce projet s’appelle Oreon, puis deviendra Centreon en 2007. Ce
projet est open source, et dispose d’une forte communauté.

Seul 2 anciens étudiants ont souhaité continuer le projet, et créer la société Merethis :

      Romain Lemerlus
      Julien Mathis

   Aujourd’hui, Merethis développe toujours Centreon, pour la communauté open-source,
mais propose également des applications payantes, complémentaires à Centreon, pour les
entreprises nécessitant des résultats plus poussé de leur monitoring.

          Cartographie avancé (Centreon Status Map)
          Qualité de service (Meta service)

                               Mémoire de stage de 3e année.                          Page 6 sur 54
Origine :
                                           Société Merethis
                                                                                    LAMOTTE Jean-
                                                                                       Baptiste
                                                                                         Domaine :
                                     « Centreon Status Map »
                         Conception et développement d’une application j2se        Mémoire de stage

   Merethis propose également des solutions complètes préinstallées, pour surveiller tout
un parc informatique, avec sa « Meribox ».

   Enfin, Merethis propose un support et des formations à Centreon, afin d’aider les
entreprises à utiliser Centreon plus efficacement.

   2.3. Les services

          2.3.1. Formation

      Merethis propose toute une gamme de formations dédiées à la supervision réseau
Open Source.

          Il existe actuellement 4 types de formation :

                Exploitation Centreon Nagios – 2 jours
                Bases de la supervision – 3 jours
                Supervision avancée – 3 jours
                Expert Centreon Nagios – 5 jours

          2.3.1. Support
          Merethis propose un support afin de résoudre des problèmes d’utilisation et/ou bug
          d’Oreon.

Problème                                   Mineur             Majeur              Bloquant

Délai d'acquittement - contournement       8 heures           4 heures            2 heures
Solution corrective                        5 jours            48 heures           24 heures
Crédits                                    6 crédits          10 crédits          16 crédits

          Ce support fonctionne par un système de crédits qui s’achètent au forfait, par lot de
          50, 100, 200, 400, 500.

          2.3.2. Edition

          Merethis a depuis peu, un service d’édition, s’occupant de créer des logiciels et
complément à Centreon, répondant aux besoins des entreprises.

                                  Mémoire de stage de 3e année.                      Page 7 sur 54
Origine :
                                             Société Merethis
                                                                                      LAMOTTE Jean-
                                                                                         Baptiste
                                                                                              Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se             Mémoire de stage

           2.3.2.1. Cartographie avancée (Centreon Status Map)

       Centreon Status Map, aussi appelé OSM dans le jargon de Merethis, est une
application Java permettant de surveiller efficacement l’état d’un ensemble d’équipements
que ce soit à l’échelle locale ou mondiale, via un système d’arborescence.
       Les différents types d’éléments (host, hostgroup, service, servicegroup, metaservice,
osl) possèdent des formes simples rendant leurs identifications faciles, et un système de
coloration selon leurs états.
       On peut y ajouter facilement des éléments graphiques, pour rendre la visualisation
plus explicite, tels que des cartes, des plans etc.

           2.3.2.2. Qualité de service (Meta Service)

       La mesure de la qualité de service n'est pas une fonctionnalité native de Nagios ;
agréger   au    sein    de   l'outil   les   états   des   éléments   supervisés   n'existe     pas.

       L'outil Centreon propose une solution pour exploiter les données de performance
entre elles avec le plugin des Meta Services, il propose également de suivre dans le temps
l'évolution des métriques, mais pas d'informations sur des états agrégés.

   2.4. Le positionnement du stage dans l’entreprise

       Merethis avait jusque là une faible activité dans le domaine de l’édition. Le
développement d’applicatifs permet à Merethis de diversifier ses offres, en proposant autre
chose que du service.

       Le stage s’inscrit donc au cœur de l’activité Merethis, permettant de répondre à ce
manque dans l’édition, par le développement de Centreon Status Map.

                                 Mémoire de stage de 3e année.                         Page 8 sur 54
Origine :
                                        Société Merethis
                                                                                  LAMOTTE Jean-
                                                                                     Baptiste
                                                                                        Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se          Mémoire de stage

3. Travail effectué

   3.1. Cahier des charges

       3.1.1. But général

Le cahier des charges détaillé n’existait pas au départ, et s’est construit au fur et à mesure
de l’avancement de la mission.

       La mission comportait 2 objectifs :

              Analyser une application dont Merethis est propriétaire : Oreon Status Map 1.x
               (OSM 1.x)
              Reprendre le développement d’OSM 1.x afin d’optimiser les performances, et
               y ajouter de nouvelles fonctionnalités.

       Le second objectif deviendra après l’analyse :

              Développer OSM 2.x “from scratch” (à partir de rien), afin d’avoir un cœur
               d’applications plus performant que la précédente mouture.

    Note : Oreon Status Map 2.x deviendra Centreon Status Map 2.x (que l’on surnomme
       toujours OSM 2.x)

                               Mémoire de stage de 3e année.                        Page 9 sur 54
Origine :
                                          Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                         Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se         Mémoire de stage

       3.1.2. Explication détaillée des résultats à obtenir

           3.1.2.1. Analyser l’existant

       Ce premier objectif consistait à prendre connaissance de l’application OSM 1.x.
OSM 1.x souffrait de problèmes de performance, et d’un manque de certaines
fonctionnalités :

                     Très grande lenteur lorsque beaucoup d’éléments étaient présents
                     « Freeze » de l’application lors des rafraîchissements de statuts et des
                       téléchargements d’images
                     Stockage des informations sur la structuration de la cartographie en
                       local (via un import / export)
                     Problème de synchronisation des données (un élément supprimé dans
                       Oreon toujours présent dans Oreon Status Map)
                     Problème de duplication de données
                     Nombreux petits bugs non bloquants

Apres cette première analyse, il était évident que ces problèmes étaient liés à la conception
même d’OSM 1.x. Il fallait reprendre le développement depuis le début.

           3.1.2.2. Développement de l’application Centreon Status Map 2.x

   Apres cette première analyse, ce second objectif visait à corriger les différents problèmes
   d’OSM 1.x, et d’y ajouter de nouvelles fonctionnalités :

                        Développer une application multithreadé où tous les traitements
                           sont effectués en tâche de fond
                        Stocker les informations du côté serveur afin d’avoir l’information
                           toujours disponible où que l’on se trouve.
                        Etablir un protocole de communication pour l’échange de données
                           client / serveur, en utilisant un flux XML pour le transfert de
                           données.

                                Mémoire de stage de 3e année.                      Page 10 sur 54
Origine :
                 Société Merethis
                                                      LAMOTTE Jean-
                                                         Baptiste
                                                          Domaine :
            « Centreon Status Map »
Conception et développement d’une application j2se   Mémoire de stage

 Retrouver toutes les fonctionnalités présentes dans la version
   précédente d’OSM.
 Ajouter de nouvelles fonctionnalités.

        Mémoire de stage de 3e année.                 Page 11 sur 54
Origine :
                                          Société Merethis
                                                                                     LAMOTTE Jean-
                                                                                        Baptiste
                                                                                          Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se           Mémoire de stage

   3.2. Compte rendu d’activité

   Tout d’abord, quelques chiffres : Centreon Status Map 2.x, c’est 49 packages, 261
classes, 1628 méthodes, et 18 277 lignes de code, par conséquent, seul un regard
conceptuel sera porté sur le projet.

       3.2.1. Axe d’étude et de recherche choisis

       Il y eu plusieurs phase d’étude, et d’expérimentation avant d’aboutir à un produit final,
vendable.
       Toutes ces phases d’étude furent effectuées plus ou moins en même temps, chacune
se complétant et s’enrichissant mutuellement.

            3.2.1.1. Etude d’Oreon Status Map 1.x

       L’étude de cette application fut brève. Un peu de manipulation du programme, afin de
voir ce qu’il permet de faire, de trouver ses limitations, et ses bugs.
       Cette étude va mener à la décision de reprendre le développement de Centreon
Status Map au point de départ.
       Je suis revenu plusieurs fois dessus, afin de garder le même esprit de
fonctionnement de l’application.

            3.2.1.2. Etude du Framework Eclipse RCP

       L’étude de ce framework se fera après l’étude d’Oreon Status Map 1.x, et durant
toute la durée du stage.

       Le Framework Eclipse RCP est un puissant Framework, simplifiant la tâche de
création d’application de type client lourd, ou client riche. Il dispose de nombreuses librairies
permettant d’implémenter rapidement des boites de dialogue, des menus, etc.…
       C’est cette richesse qui va permettre de découvrir de jour en jour de nouveaux
concepts, devenant par la suite indispensable.

                                Mémoire de stage de 3e année.                         Page 12 sur 54
Origine :
                                        Société Merethis
                                                                             LAMOTTE Jean-
                                                                                Baptiste
                                                                                  Domaine :
                                 « Centreon Status Map »
                     Conception et développement d’une application j2se      Mémoire de stage

                       Eclipse, basé sur le Framework Eclipse RCP.

          3.2.1.3. Etude du Framework JDom

       Quelques temps après la découverte du framework Eclipse RCP, il fallut se pencher
sur le problème d’un bon framework permettant de manipuler du XML. C’est le framework
JDom qui sera élu après la lecture de documentation sur divers forums, pour ses
performances, et son api performante.

                             Mémoire de stage de 3e année.                    Page 13 sur 54
Origine :
                                        Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                            Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se           Mémoire de stage

           3.2.1.4. Etude du Framework GEF

       Enfin, la dernière phase d’étude se fit quelques mois après la création de la majeure
partie de l’application. Il ne manquait que l’éditeur, contenant des éléments graphiques.
Ce Framework graphique de type MVC (modèle-vue-contrôleur) correspondait parfaitement
au besoin graphique de l’application. De plus, celui-ci a fait ses preuves dans de
nombreuses applications, aussi bien chez IBM que de petites entreprises.

                               Mémoire de stage de 3e année.                        Page 14 sur 54
Origine :
                                            Société Merethis
                                                                               LAMOTTE Jean-
                                                                                  Baptiste
                                                                                    Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se     Mémoire de stage

        3.2.2. Déroulement concrets des études.

            3.2.2.1. Etude et test d’Oreon Status Map 1.x

       Au départ, le développement d’Oreon Status Map 1.x devait être repris. Une phase
de test s’imposa, afin de déterminer les problèmes de performance, limitation, problème
d’évolutivité, et enfin les bugs.

                3.2.2.1.1. Test de performance

Divers tests de montée en charge permirent de mettre à jour de graves problèmes de
performances. En voici des exemples :

               Test de montée en charge

Le premier test effectué, fut d’ajouter de très nombreux « host » dans Oreon, afin de voir
comment réagissait l’application :

     Lancement de l’application
     Identification
     Téléchargement des ressources
     Blocage de l’application le temps du téléchargement des ressources
     Plantage si interaction de la part de l’utilisateur

     Conclusion : un thread effectuant cette tâche en arrière plan pourrait corriger le
        problème.

                                    Mémoire de stage de 3e année.              Page 15 sur 54
Origine :
                                           Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                         Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se          Mémoire de stage

               Test de téléchargement d’images volumineuses

Le second test, fut d’ajouter des cartes de grande taille, demandant plus de temps à
télécharger :

    Lancement de l’application
    Identification
    Téléchargement des images
    Blocage de l’application le temps du téléchargement des ressources
    Plantage si interaction de la part de l’utilisateur

    Conclusion : un thread effectuant cette tache en arrière plan pourrait corriger le
       problème.

               Test d’ajout de nombreux éléments sur la carte

Le troisième test fut d’ajouter de très nombreux éléments sur la carte, tout en gardant un très
petit nombre de ressources :

    Lancement de l’application
    Identification
    Téléchargement des images
    Blocage de l’application le temps du téléchargement des ressources
    Plantage si interaction de la part de l’utilisateur

    Conclusion : un thread effectuant cette tâche en arrière plan pourrait corriger ce
       problème.

Tous les tests mirent en évidence la nécessité d’avoir une application multithreadé afin
d’effectuer les traitements en tâche de fond, sans que l’application ne bloque, ou plante à la
moindre action de l’utilisateur.

                                   Mémoire de stage de 3e année.                    Page 16 sur 54
Origine :
                                           Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                         Domaine :
                                     « Centreon Status Map »
                         Conception et développement d’une application j2se        Mémoire de stage

                  3.2.2.1.2. Limitation

                 Gestion des « vues »
OSM 1.x avait une gestion des vues relativement basique. Chaque vue était importée et
exportée dans un fichier XML, qui pouvait ne plus correspondre du tout à ce qu’il y a dans
Oreon, après de nombreuses modifications, non répercutées sur ces fichiers XML.

                 Impossibilité d’ajouter plusieurs images à un éditeur
Chaque éditeur était limité à une seule image, affichée en arrière plan, impossible à
déplacer.

                 Remontée des statuts
La remontée des statuts était imprécise, « confondant » aussi bien un statut « WARNING »
qu’un statut « CRITICAL ».

                 Mémorisation d’un seul utilisateur et/ou proxy
L’interface d’accueil ne permettait de mémoriser que les paramètres de connexion du dernier
utilisateur. Le même problème se posait pour la gestion du proxy.

La nature même de l’implémentation d’OSM 1.x rendait difficile l’évolution de ces limitations.

                  3.2.2.1.3. Bug

                 Gestion des « vues »
       La gestion des vues posait un double problème, à la fois d’évolutivité, mais aussi
génératrice de bug. En effet, la moindre suppression d’un élément dans Oreon rendait
inexploitable OSM 1.x, celui-ci « cherchant » des éléments qu’il ne trouvait pas, lors de la
mise à jour des statuts, provocant une erreur qui ne permettait pas de finir cette mise à jour
de statuts.

                 Montée en charge
OSM 1.x finissait systématiquement par planter, lorsqu’il y avait trop de ressources,
d’éléments, ou de cartes volumineuses.
                                   Mémoire de stage de 3e année.                    Page 17 sur 54
Origine :
                                        Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                         Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se           Mémoire de stage

              Drag-n-Drop
Le drag-n-drop des ressources dans l’éditeur se retrouvaient au mauvais endroit lorsque le
zoom était activé.

              XML non valide
Les flux XML utilisés pour le transfert de ressource, et le stockage de la vue courante
n’étaient pas normalisés, provocant des erreurs aléatoires, dans certains cas particuliers.

La correction de tous ces bugs aurait demandé beaucoup de temps à être localisés
précisément dans le code, puis corrigés.

                                Mémoire de stage de 3e année.                       Page 18 sur 54
Origine :
                                      Société Merethis
                                                                                LAMOTTE Jean-
                                                                                   Baptiste
                                                                                     Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se       Mémoire de stage

             3.2.2.1.4. Bilan sur Oreon Status Map 1.x
       OSM 1.x souffrait de nombreux défauts, tant sur le plan de la conception que sur le
plan de l’implémentation :
       Le pire défaut était bien évidemment le fait que l’application soit mono threadée,
provocant des blocages et plantages lorsqu’on montait légèrement en charge.

       C’est après cette analyse, que je pris la décision de baser Oreon Status Map 2.x sur
une nouvelle base.

       Le choix des Framework suivant est conservé :
              Eclipse RCP
              GEF
Le Framework permettant de gérer le XML est en revanche remplacé par JDom.

                              Mémoire de stage de 3e année.                     Page 19 sur 54
Origine :
                                        Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                           Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se           Mémoire de stage

           3.2.2.2. Etude du Framework Eclipse RCP

       Le Framework eclipse rcp est une puissante collection d’objets, permettant de créer
rapidement une application java. C’est un peu la réponse de java, aux solutions que propose
Microsoft dans son IDE visual studio.
C’est à partir du célèbre IDE Eclipse, que le Framework Eclipse RCP a été créé.

               3.2.2.2.1. Le choix d’Eclipse RCP

       Ce choix s’est imposé de lui-même. Il avait permis de créer la version précédente
d’Oreon Status Map.

               3.2.2.2.2. Une première application Eclipse RCP

       Apres avoir étudié en profondeur les défauts d’OSM 1.x, il était temps de se lancer
dans le développement d’OSM 2.x, en tenant compte des problèmes de la précédente
version.

Une simple application « hello world » fut alors créée :

           C’est sur cette petite application que reposera par la suite tout OSM 2.x

                               Mémoire de stage de 3e année.                           Page 20 sur 54
Origine :
                                           Société Merethis
                                                                                  LAMOTTE Jean-
                                                                                     Baptiste
                                                                                       Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se        Mémoire de stage

               3.2.2.2.3. L’étude des perspectives d’eclipse RCP.

       Eclipse RCP propose une notion appelée perspective. Il s’agit d’une représentation
des éléments que l’ont peut voir à l’écran.
       Les perspectives sont des conteneurs de vue et d’éditeur. Ils permettent de
positionner où bon lui semble, au développeur, les différents éléments visibles dans la
perspective. Le but originel des perspectives est de permettre à l’utilisateur de switcher de
l’une à l’autre, en gardant les mêmes fenêtres ouvertes, mais placé à des endroits
radicalement différents.

       C’est l’utilisation de ces perspectives qui va permettre de créer les différents
morceaux de l’application :

              La perspective d’accueil,
              La perspective de sélection des vues,
              La perspective de monitoring.

               3.2.2.2.4.   L’étude des éditeurs et vues d’Eclipse RCP

Afin de peupler les perspectives, il existe 2 types de « fenêtre » :

      Les éditeurs,
      Les vues.

Les éditeurs sont des fenêtres plutôt destinées à l’édition, c'est-à-dire à contenir des
éléments destinés à être déplacés, modifiés et c…
Les vues quant à elles servent plutôt à afficher des éléments. Il est évidemment possible
comme pour les éditeurs d’y mettre des éléments modifiables, mais ce n’est pas le but
premier.

                                Mémoire de stage de 3e année.                     Page 21 sur 54
Origine :
                                            Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                         Domaine :
                                     « Centreon Status Map »
                         Conception et développement d’une application j2se        Mémoire de stage

                 3.2.2.2.1.   La première perspective, et sa première vue

Après avoir compris ces notions clé de perspective, éditeur et vue, il était temps de créer une
première perspective, peuplée par une vue.
Cela se déroula sans encombre grâce à l’api bien documenté d’Eclipse RCP, et quelques
jours de test.
L’application ressemblait désormais à ceci :

     L’application finale, sur la perspective d’accueil, avec la vue Centreon Status Map.

Il n’y avait pas encore de menu ni de barre d’outils, mais il n’était pas encore temps de se
pencher sur ce problème.

                                  Mémoire de stage de 3e année.                     Page 22 sur 54
Origine :
                                          Société Merethis
                                                                                     LAMOTTE Jean-
                                                                                        Baptiste
                                                                                           Domaine :
                                     « Centreon Status Map »
                         Conception et développement d’une application j2se          Mémoire de stage

            3.2.2.3. Etude du Framework JDom

                3.2.2.3.1. Le choix de JDom

         Le Framework JDom est un ensemble de classes permettant de manipuler des
données de type XML.

         Ses avantages sont les suivants :

               Plus simple à utiliser que les API Sun grâce à une abstraction de plus haut
                niveau
               Respecte les spécifications DOM du W3C, rendant son utilisation facile à tout
                développeur objet ayant déjà utilisé une api respectant ces spécifications dans
                un autre langage.

Ce sont principalement ces 2 caractéristiques qui ont motivé le choix de ce Framework plutôt
qu’un autre.

                3.2.2.3.2. Une première implémentation de JDom

         La première utilisation de JDom fut pour le stockage des profils de connexion en
local.
         L’objectif était simple, avoir un conteneur (XML) ordonné, et extensible à volonté.

Ce modèle sera par la suite étendu afin d’enregistrer les proxys.
Grâce à ce modèle, la fenêtre de dialogue de connexion allait pouvoir être créée.

                                 Mémoire de stage de 3e année.                        Page 23 sur 54
Origine :
                                          Société Merethis
                                                                                 LAMOTTE Jean-
                                                                                    Baptiste
                                                                                      Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se       Mémoire de stage

           3.2.2.4. La fenêtre de dialogue de connexion

               3.2.2.4.1. Implémentation du menu de connexion

       La fenêtre dialogue de connexion corrige les erreurs de la précédente version. Celle-
ci permet d’enregistrer des profils de serveur et/ou d’utilisateur.

                           La boite de dialogue de connexion finale

Chacune des informations visibles dans la boite de dialogue est enregistrée dans le fichier
XML créé précédemment.

Différentes fonctionnalités y seront ajoutées au cour du projet :
   -   Le mode administrateur,
   -   Le proxy,
   -   Le Timer

                                Mémoire de stage de 3e année.                    Page 24 sur 54
Origine :
                                          Société Merethis
                                                                                      LAMOTTE Jean-
                                                                                         Baptiste
                                                                                           Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se             Mémoire de stage

           3.2.2.5. Création d’une méthodologie pour la transmission de données

       Afin de pallier aux problèmes de la précédente version, qui enregistrait ses
informations dans un fichier XML stocké en local, il fallut réfléchir à comment échanger les
données avec le serveur, afin que celles-ci soient gardées sur celui-ci.

               3.2.2.5.1.   Choix du protocole

Le choix du protocole http, avec l’envoi de xml fut rapide pour plusieurs raisons :
      Centreon a besoin d’un serveur Apache (serveur http) pour fonctionner.
      Le xml transite facilement par le protocole http
      Le xml est un excellent conteneur de données ordonnées.

               3.2.2.5.2.   Normalisation des échanges via XML

       Afin de créer un parseur générique, il fallait définir un certain nombre de balises
communes à tous les flux XML.
       Des modifications seront apportées tout au long du projet à ces balises, afin de
répondre aux besoins croissants d’informations de l’application.
Les spécifications finales seront les suivantes :

              Balise  encapsulant tout flux
              Balise , qui décrit le type de flux envoyé
                   o   Host, Hostgroup, ServiceGroup, MetaService, OSL, Image pour les
                       listes des ressources
                   o   all, add, rem, mod, pour l’arborescence et les modifications liées à
                       cette arborescence.
              Balise , qui décrit l’élément ainsi que tous ses attributs.
              Chaque balise  peut avoir une infinité d’enfants, aussi bien pour les
               ressources que pour l’arborescence.

                                Mémoire de stage de 3e année.                         Page 25 sur 54
Origine :
                                            Société Merethis
                                                                                LAMOTTE Jean-
                                                                                   Baptiste
                                                                                       Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se       Mémoire de stage

                 3.2.2.5.3. Récupération des ressources

                    3.2.2.5.3.1. Flux XML

       Centreon Status Map est composé des mêmes éléments que ceux contenus dans
Centreon. (Host, hostgroup, service, servicegroup, metaservice, osl).

Pour chacune de ces ressources, il fallut donc créer 5 modèles XML, permettant d’envoyer
ces informations, basés sur les spécifications précédentes.

Chacune des ressources possède une balise « ctn », composée de plusieurs attributs :
   -   Nom,
   -    alias,
   -   adresse IP,
   -   ID,
   -   type d’éléments

Ces ressources ont également des enfants, qui sont encapsulé dans la première balise
« ctn ». Seuls les enfants du niveau immédiatement en dessous sont renvoyés.

La requête permettant d’obtenir les hosts retourne donc une liste d’host, et ses services
enfants.

Il en va de même pour les autres éléments :

    Liste d’hostgroup et leurs host enfants
    Liste de servicegroup et leurs services enfants
    Liste de metaservice, sans les enfants (qui ne doivent pas être affiché dans OSM)
    Liste d’osl, sans les enfants (qui ne doivent pas être affiché dans OSM)

Il n’existe pas de requête permettant de récupérer la liste des services, ceux-ci étant
envoyés via la requête de récupération des hosts.

                                Mémoire de stage de 3e année.                   Page 26 sur 54
Origine :
                                            Société Merethis
                                                                                 LAMOTTE Jean-
                                                                                    Baptiste
                                                                                      Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se       Mémoire de stage

                    3.2.2.5.3.2. Méthode de récupération des flux XML

       Afin d’envoyer ces flux XML, un fichier PHP fut mis en place du côté du serveur par
Romain Lemerlus en respectant les spécifications que j’avais établies.
Une requête web simple de type GET est effectuée, prenant en paramètre une clé indiquant
le type de ressources à récupérer.

Exemple : getOSMResources.php?key=200 permet de récupérer la liste d’host et leurs
services enfants.

              3.2.2.5.4. Récupération des éléments d’une vue

                    3.2.2.5.4.1. Flux XML

Comme pour la récupération des ressources il fallait créer un modèle de flux XML. Cette fois
ci, tous les enfants devaient être renvoyés quel que soit l’élément, afin de construire une
arborescence dans OSM 2.x.

On passe simplement une clé en paramètre, et un argument correspondant à l’id de
l’élément à récupérer.

                                Mémoire de stage de 3e année.                    Page 27 sur 54
Origine :
                                       Société Merethis
                                                                           LAMOTTE Jean-
                                                                              Baptiste
                                                                               Domaine :
                                 « Centreon Status Map »
                     Conception et développement d’une application j2se   Mémoire de stage

Exemple :
http://192.168.1.240:80/oreon/modules/osm/webServices/getOSMTopology.php?ke
y=100&args[0]=152

Le flux xml renvoyé est parfaitement structuré. Chaque niveau d’indentation montre un
niveau dans l’arbre qui sera créé dans la perspective de monitoring.

                              Mémoire de stage de 3e année.                Page 28 sur 54
Origine :
                                            Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                        Domaine :
                                    « Centreon Status Map »
                        Conception et développement d’une application j2se        Mémoire de stage

           3.2.2.6. Création de la perspective de sélection des vues

                3.2.2.6.1.   Objectif de cette perspective

Cette perspective permet de sélectionner la vue que l’on souhaite afficher, dans la
perspective de monitoring.
Aucune fonctionnalité similaire n’était présente dans la version précédente.

Cette perspective a plusieurs avantages :

      Possibilité de changer radicalement d’environnement de monitoring en quelques
       clics.
      Possibilité pour un « super » administrateur, de visualiser l’ensemble des vues,
       disponible aux différents sous-administrateurs surveillant leurs domaines spécifiques
       (base de données, réseau, etc.)
      Corrige le défaut de la version précédente, qui obligeait à charger / décharger
       manuellement un fichier XML, pour changer de vue.

                3.2.2.6.2.   Composition

                    3.2.2.6.2.1. Vue

Cette perspective est composée d’une unique vue (RCP), contenant une liste de vues (de
monitoring). Un double click permet d’ouvrir la perspective de monitoring, basé sur cette vue.

         La vue (RCP) de sélection des vues (de monitoring) de l’application finale.
                            Mémoire de stage de 3e année.                          Page 29 sur 54
Origine :
                                          Société Merethis
                                                                                      LAMOTTE Jean-
                                                                                         Baptiste
                                                                                           Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se             Mémoire de stage

    Note : les vues du Framework eclipse rcp ne sont pas à confondre avec le nom choisi
       pour les vues (de monitoring).

Cette vue récupère son contenu via le flux XML établi précédemment.
Afin de ne pas ralentir l’exécution de l’affichage, un thread est utilisé pour le chargement du
flux XML, palliant au problème d’OSM 1.x qui ralentissait ou bloquait, lorsqu’il y avait trop
d’informations à récupérer.

                   3.2.2.6.2.2. Menu

Différents menus sont également ajoutés à cette perspective afin d’effectuer les actions
courantes de l’application.

                                   Menu de l’application finale.

La fonctionnalité permettant de rafraîchir les informations est utilisée dans le cas où 2
administrateurs ou plus effectuent des créations de vue.

                   3.2.2.6.2.3. Barre d’outils

Afin de satisfaire les utilisateurs les plus pressés, une barre d’outils contenant les actions les
plus courantes est ajoutée.

                              Barre d’outils de l’application finale.

                                Mémoire de stage de 3e année.                         Page 30 sur 54
Origine :
                                         Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                         Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se           Mémoire de stage

                  3.2.2.6.2.4. La fenêtre de création des vues

La fenêtre de création des vues va à l’essentiel. Elle permet de créer 3 types de vue.
A l’heure actuelle, il n’existe que la perspective géographique, c’est pourquoi les vues métier
et network sont désactivées (grisé). Celles-ci seront implémentées dans les mois à venir,
après le stage.
Cette fenêtre subira également un « relooking ».

                             La fenêtre de création de vue finale.

                               Mémoire de stage de 3e année.                        Page 31 sur 54
Origine :
                                          Société Merethis
                                                                             LAMOTTE Jean-
                                                                                Baptiste
                                                                                  Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se     Mémoire de stage

          3.2.2.7. Création de la perspective de monitoring (géographique)

              3.2.2.7.1.   Objectif de cette perspective

       La perspective de monitoring est la plus importante. C’est dans celle-ci que l’on
pourra observer les états des différents équipements supervisés.

              3.2.2.7.2.   Composition

                      La perspective de monitoring finale, et ses vues.

                                Mémoire de stage de 3e année.                 Page 32 sur 54
Origine :
                                        Société Merethis
                                                                                  LAMOTTE Jean-
                                                                                     Baptiste
                                                                                       Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se        Mémoire de stage

Cette dernière contient tous les éléments nécessaires au monitoring :

               Un arbre (en haut à gauche) pour se déplacer dans les éléments
               Une minimap (au milieu à gauche) pour se repérer lorsque les cartes sont trop
                grandes
               Plusieurs vues contenant les ressources à dropper dans l’éditeur (en bas à
                gauche)
               Une vue synthétique (en haut à droite)
               Une vue avec les graphes (historiques) de l’état de fonctionnement des
                éléments supervisés (à droite)
               Un éditeur qui contient les images, et les différentes ressources surveillées
                (également présentes dans l’arbre).

Cette perspective représente la phase la plus difficile du stage, mais également la plus
intéressante.

                               Mémoire de stage de 3e année.                      Page 33 sur 54
Origine :
                                         Société Merethis
                                                                                   LAMOTTE Jean-
                                                                                      Baptiste
                                                                                         Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se           Mémoire de stage

                  3.2.2.7.2.1. Les vues de ressources

Ces vues sont au nombre de 6. Ce sont elles qui contiennent tous les éléments présents
dans Oreon, que l’on peut drag-n-dropper dans l’éditeur et l’arbre.

                               Les vues de ressources finales.

Cette vue récupère son contenu via le flux XML établie précédemment.

Au départ, ces vues n’affichent que la liste brut de chaque catégorie d’éléments. Par la suite,
elle fut modifiée, afin d’afficher leurs enfants respectifs, et le flux XML modifié en
conséquence, afin de renvoyer ces informations complémentaires.
Le flux XML est récupéré via un thread, en arrière plan, afin de ne pas ralentir l’exécution de
l’application et provoquer des blocages.

                               Mémoire de stage de 3e année.                        Page 34 sur 54
Origine :
                                         Société Merethis
                                                                                    LAMOTTE Jean-
                                                                                       Baptiste
                                                                                         Domaine :
                                  « Centreon Status Map »
                      Conception et développement d’une application j2se           Mémoire de stage

                   3.2.2.7.2.2. La vue arborescente

Cette vue permet de visualiser rapidement la liste de toutes les ressources monitorées. Elle
permettra de se repérer dans l’éditeur, et via un menu contextuel, lancer différentes actions.

                                  La vue arborescente finale.

Cette vue, comme les précédentes, récupère ses informations via un flux XML, en arrière
plan, grâce à un thread.

       Une erreur sera commise lors de sa création : elle est créée en implémentant un
arbre reposant sur JFace, une surcouche de SWT, l’environnement graphique du framework
Eclipse RCP. L’éditeur à ce moment-là n’existe pas encore, mais celui-ci repose sur le
framework GEF, il fut alors nécessaire de refaire cet arbre, en se reposant également sur le
même framework, afin de synchroniser la sélection dans l’éditeur, et l’arbre. (Le menu se
déroule alors tout seul, en se déplaçant dans l’éditeur).
Cette erreur fit perdre 1 semaine de développement.

                               Mémoire de stage de 3e année.                        Page 35 sur 54
Origine :
                                           Société Merethis
                                                                                       LAMOTTE Jean-
                                                                                          Baptiste
                                                                                            Domaine :
                                     « Centreon Status Map »
                         Conception et développement d’une application j2se           Mémoire de stage

                    3.2.2.7.2.3. La vue tableau synthétique

        L’éditeur graphique est la fonctionnalité la plus intéressante pour visualiser où se
trouvent les éléments défaillants, mais certaines sociétés possèdent des parcs informatiques
énormes, et il peut parfois être difficile de trouver rapidement tous les éléments défectueux.

        Il fallait donc pallier à ce manque, en créant une vue synthétique. Cette vue contient
les mêmes informations que celles contenues dans l’éditeur, mais organisées en colonne.
On peut trier les éléments par nom, alias, type d’élément, statut, et statut des enfants.
Le principal intérêt étant de pouvoir trouver immédiatement les éléments ayant un statut
critique, grâce au tri par statut.

                                 La vue tableau synthétique finale.

Par la suite, une petite fonctionnalité fut ajoutée, afin de simplifier la navigation : un cadenas,
permettant de verrouiller ou déverrouiller la vue.
Lorsque la vue est déverrouillée, le simple click sur un élément dans l’arbre ou l’éditeur
permet de changer le contenu de cette vue, en affichant instantanément les enfants de
l’élément sélectionné.

                                 Mémoire de stage de 3e année.                         Page 36 sur 54
Origine :
                                        Société Merethis
                                                                                 LAMOTTE Jean-
                                                                                    Baptiste
                                                                                      Domaine :
                                 « Centreon Status Map »
                     Conception et développement d’une application j2se         Mémoire de stage

                  3.2.2.7.2.4. La vue des graphes

       Il existe dans Centreon, une page permettant d’afficher des graphes sur l’état de
fonctionnement dans le temps d’un service. L’intégrer à Centreon Status Map semblait une
excellente idée, et très « simple » à mettre en œuvre. Il suffisait simplement d’appeler un
navigateur web embarqué dans l’application, et d’appeler l’adresse permettant d’afficher le
graphe correspondant.

                                  La vue des graphes finale
Comme pour la vue synthétique, une fonctionnalité permettant de verrouiller et déverrouiller
la vue fut implémentée.

                              Mémoire de stage de 3e année.                      Page 37 sur 54
Origine :
                                            Société Merethis
                                                                                     LAMOTTE Jean-
                                                                                        Baptiste
                                                                                          Domaine :
                                   « Centreon Status Map »
                       Conception et développement d’une application j2se           Mémoire de stage

                   3.2.2.7.2.5. Les menus

       Le menu général permettant d’effectuer la navigation standard fut ajouté, comme
pour la perspective de sélection des vues.
Un menu option, contenant une action permettant de forcer le rafraîchissement manuel des
statuts, fut également ajouté.
Enfin, une action permettant de rafraîchir tous les éléments en rechargeant toute la liste fut
ajoutée, afin de permettre à 2 administrateurs d’effectuer simultanément des modifications
sur la même vue, sans devoir relancer l’application.

                     Les différents menus de la perspective de monitoring.

Un menu contextuel fut également créé, réagissant au click droit sur un élément, que ce soit
dans l’éditeur ou l’arbre.

                    Le menu contextuel d’un host, dans l’application finale.
Ce menu est créé dynamiquement, son contenu variant selon que l’action peut être effectuée
sur l’élément ou non. La détermination de la possibilité d’utiliser une action ou non se fait
grâce aux editpolicy du framework GEF. Ce menu n’est au départ pas dynamique, et affiche
toutes les actions pour tous les éléments, même si cela n’est pas possible. Le problème était
le même que pour la vue arborescente, créé via JFace, et non GEF.

                                 Mémoire de stage de 3e année.                       Page 38 sur 54
Origine :
                                             Société Merethis
                                                                                LAMOTTE Jean-
                                                                                   Baptiste
                                                                                     Domaine :
                                    « Centreon Status Map »
                        Conception et développement d’une application j2se     Mémoire de stage

                    3.2.2.7.2.6. La barre d’outils

Comme pour la vue de sélection des vues, une barre d’outils pour les utilisateurs pressés
(« power users ») est créée.
Celle-ci contient les actions les plus couramment utilisées.
Des outils supplémentaires sont également disponibles. Ceux-ci n’effectuent que des actions
qui influent sur l’affichage de l’éditeur.

                        La barre d’outils de la perspective de monitoring.

                                 Mémoire de stage de 3e année.                  Page 39 sur 54
Vous pouvez aussi lire