2015 TH Belkasmi Redouane PDF
2015 TH Belkasmi Redouane PDF
______________
MEMOIRE
SPECIALITE : Informatique
BELKASMI Redouane
Jury
Président : Kamel BARKAOUI, Professeur des Universités, CNAM Paris
Membre : Claude GENIER, Ingénieur, enseignant EICNAM, Rhône-Alpes
Karim CHEIKH, Ingénieur en informatique, Casablanca
ADIL ZEAARAOUI, Responsable R&D et gérant, Mindware
Mohamed HAJJI, Ingénieur Réseau, Mindware
1
2
Dédicace
A mes chers parents,
Que nulle dédicace ne peut exprimer mes sincères sentiments,
Pour leur patience, leur encouragement, leur aide et pour leur grand sacrifice.
3
Remerciement
La réalisation de ce mémoire de fin d’étude mené sur plusieurs mois de travail me procure une
grande satisfaction mais aussi une grande gratitude pour les personnes qui m’ont beaucoup
aidé pour surmonter toutes les difficultés et entraves que j’ai rencontré durant ma période de
stage.
Je tiens spécialement à remercier M. Claude Genier mon encadrant pour tous ses conseils et
directives qui m’étaient d’un très secours.
A M. Adil ZEAARAOUI mon tuteur au sein de MindWare, pour ses orientations et ses
précieux conseils.
Un grand remerciement au CNAM qui ma offert une grande chance de finir mes études
supérieures.
4
Table des Matières
Contexte général du projet ___________________________________________________ 9
Chapitre 1 __________________________________________________________________
Etude de marché et fonctionnelle _____________________________________________ 11
1.1 Etude concurrentielle de marché ____________________________________________ 11
1.1.1 Solutions opensource : ____________________________________________________ 11
1.1.2 Solutions commerciales ___________________________________________________ 14
1.1.3 Critique des solutions _____________________________________________________ 17
1.1.4 Solution proposée ________________________________________________________ 18
1.2 Description de MindWare _________________________________________________ 18
1.2.1 Domaines d’intervention___________________________________________________ 19
a) Edition des logiciels ________________________________________________________________ 19
b) ingénierie réseau et système _________________________________________________________ 19
1.3 Méthodologies du travail ___________________________________________________ 19
1.3.1 Analyse générale ________________________________________________________________ 19
1.1.1 Analyse détaillée ________________________________________________________________ 20
1.1.2 Formation sur les technologies ____________________________________________________ 20
1.1.3 Conception du pro jet_____________________________________________________________ 20
1.1.4 Développement et tests ___________________________________________________________ 20
1.4 Conclusion ______________________________________________________________ 21
Chapitre 2 __________________________________________________________________
Analyse fonctionnelle détaillée du projet MindWare Remote, Monitoring and control
(MRMC) __________________________________________________________________ 23
2.1 Première partie : Supervision de parc informatique _____________________________ 24
2.1.1 Gestion de l’inventaire ____________________________________________________ 24
2.1.2 Gestion des alertes et erreurs_______________________________________________ 26
2.2 Deuxième partie : Gestion d’assistance _______________________________________ 27
2.3 Troisième partie : Tableau de bord __________________________________________ 30
2.4 Conclusion ______________________________________________________________ 31
Chapitre 3 __________________________________________________________________
Modélisation du MRMC _____________________________________________________ 33
3.1 Choix d’UML ____________________________________________________________ 33
3.2 Les cas d’utilisation (Use case) _______________________________________________ 34
3.2.1 Acteur client____________________________________________________________________ 35
a) Envoi de l’état de la machine ________________________________________________________ 35
b) Téléchargement de l’agent client _____________________________________________________ 35
c) Mise à jour de l’agent client _________________________________________________________ 35
3.2.2 Acteur serveur __________________________________________________________________ 36
a) identification des machines (identify machine)_________________________________________ 36
5
b) Sauvegarde dans la base de données (store machine info into DB) _________________________ 36
c) Détection des alertes et des erreurs (detect warning and error) ___________________________ 36
3.2.3 Acteur Administrateur : ___________________________________________________________ 37
a) Authentification (log in) ___________________________________________________________ 38
b) Liste des machines (list machines) ___________________________________________________ 38
c) Etat de la machine cliente (client state)_______________________________________________ 38
d) Afficher l’état de la machine cliente (get machine detail info) _____________________________ 39
e) Extraire les informations de la machine (Extract information) _____________________________ 39
f) Définir intervalle (Set timer) _______________________________________________________ 39
g) Télécharger l’agent vers le client (upload new jar) ______________________________________ 39
h) Liste des alertes et erreurs des machines (list machine warning error) ______________________ 39
3.3 Diagrammes de séquences ___________________________________________________ 40
3.3.1 Client _________________________________________________________________________ 40
Scénario1 ___________________________________________________________________________ 40
Scénario2 ___________________________________________________________________________ 40
3.3.2 Serveur ________________________________________________________________________ 41
3.3.3 Administrateur _________________________________________________________________ 42
3.4 Diagramme des classes ______________________________________________________ 43
3.4.1 package « machine » ______________________________________________________ 43
3.4.2 Package surveillance ______________________________________________________ 45
3.4.3 Package assistance « helpDesk » ____________________________________________ 48
3.5 Conclusion ________________________________________________________________ 49
Chapitre 4 __________________________________________________________________
Etude technique du projet ___________________________________________________ 51
4.1 Outils, langages et technologies utilisés ______________________________________ 51
4.1.1 Plateforme de développement : JEE_________________________________________________ 52
4.1.2 Editeur de développement : Eclipse _________________________________________________ 52
4.1.3 Le serveur d’application Tomcat ____________________________________________________ 53
4.1.4 Le langage JAVA ________________________________________________________________ 54
4.1.5 La technologie Java Server Pages (JSP) _______________________________________________ 54
4.1.6 Les Servlet______________________________________________________________________ 54
4.1.7 Le Framework Struts2 ___________________________________________________________ 55
4.1.8 JPMapper ______________________________________________________________________ 55
4.1.9 La bibliothèque SIGAR ___________________________________________________________ 56
4.1.10 Le langage XML ______________________________________________________________ 58
4.1.11 Dom4j ______________________________________________________________________ 61
4.1.12 Le langage XPATH ____________________________________________________________ 61
Exemple : ___________________________________________________________________________ 61
4.1.13 Le langage JavaScript ___________________________________________________________ 62
La technologie AJAX ___________________________________________________________________ 62
La bibliothèque Jquery ________________________________________________________________ 63
La librairie jqPlot _____________________________________________________________________ 63
4.1.14 Bibliothèque bureau à distance (jrDesktop) ________________________________________ 63
4.1.15 Méthodologie du codage : Technique MVC _________________________________________ 64
4.1.16 SVN ___________________________________________________________________________ 65
4.2 Utilisation des technologies dans MRMC ______________________________________ 65
4.2.1 Le dépôt SVN ____________________________________________________________ 65
6
4.2.2 Arborescence du projet Agent/JEE/ MVC _____________________________________ 66
4.2.3 Agent MRMC ____________________________________________________________ 68
4.2.4 Console d’administration web ______________________________________________ 70
4.3 Développement de la solution MRMC ________________________________________ 73
4.3.1 Développement de l’agent MRMC ___________________________________________ 73
4.4 Conclusion ______________________________________________________________ 83
Chapitre 5 __________________________________________________________________
Présentation de MRMC _____________________________________________________ 85
5.1 Présentation de l’agent ____________________________________________________ 85
5.1.1 Installation ______________________________________________________________ 85
5.1.2 Demande d’assistance ____________________________________________________ 87
5.2 Présentation de la Console d’administration ___________________________________ 89
5.2.1 Authentification _________________________________________________________ 89
5.2.2 Supervision du parc _______________________________________________________ 90
5.2.3 Paramétrage des alertes et erreurs __________________________________________ 96
5.2.4 Gestion de l’assistance aux utilisateurs _______________________________________ 98
5.2.5 Tableau de bord _________________________________________________________ 99
5.3 Critique et perspective de la solution________________________________________ 100
5.3.1 Fonctionnalités de l’agent_________________________________________________ 100
5.3.2 Fonctionnalités de la console d’administration ________________________________ 102
5.4 Conclusion _____________________________________________________________ 103
Chapitre 6 __________________________________________________________________
Conclusion générale ________________________________________________________ 105
Références________________________________________________________________ 107
Annexes _________________________________________________________________ 109
Struts2_______________________________________________________________________ 109
Installation et Configuration _____________________________________________________________ 109
Le fichier xml Struts.xml _______________________________________________________________ 111
Les actions ___________________________________________________________________________ 111
JPMapper ____________________________________________________________________ 114
Installation et Configuration _____________________________________________________________ 114
Remarque: _________________________________________________________________________ 116
Dom4j _______________________________________________________________________ 116
Installation et Configuration _____________________________________________________________ 116
MySQL _______________________________________________________________________ 117
Enterprise Architect_____________________________________________________________ 117
7
Pencil ________________________________________________________________________ 117
8
Contexte général du projet
1. Introduction
Depuis le développement de l’informatisation des entreprises, la question de la sécurité et de la
robustesse du système d’information est au cœur des préoccupations des administrateurs
réseau et système. Ces craintes sont à l’origine de la création et du succès des outils de
surveillance. Les logiciels de supervision permettant de faciliter la gestion des parcs
informatiques deviennent de plus en plus complexes. Leur but principal est la collecte de
données et la présentation de celles-ci pour que l’administrateur puisse consulter aisément les
écrans de contrôle pour mesurer l’état du réseau. Le travail de ce stage se focalise sur le cadre
du sujet de monitoring (surveillance) réseau et le contrôle à distance (remote control) il vise :
Mon stage est réalisé au sein de la société MindWare, mon travail consistait à réaliser la partie
console d’administration relatives aux machines d’un parc informatique.
9
2. Problématique
Pour toute entreprise, la stabilité de son système informatique est considérée comme une
brique importante et obligatoire pour son développement. Cette stabilité impose à l’entreprise
d’importants investissements matériels et humains ce qui n’est pas toujours disponible et
possible pour toute société.
Dès lors, l’utilisation d’une solution logicielle permettant d’optimiser la réactivité des équipes
techniques de maintenance devient très demandée.
Pour répondre à cette problématique et malgré l’existence de logiciel libre et propriétaire qui
permettent de réaliser la surveillance (monitoring) réseau et/ou le control distant, MindWare a
opté pour le développement d’une solution réalisant les deux fonctionnalités en même temps.
Cette double fonctionnalité optimisera le temps de réactivité et la durée des interventions de
maintenance des équipes techniques.
Aussi, la réalisation de tel logiciel entre dans une perspective générale visée par MindWare
pour le développement d’un ERP intégrant un ensemble de sous application de gestion des
entreprises. En finalité, Cette application constituera le module responsable de la gestion du
parc informatique dans une entreprise.
3. Objectifs
Ce travail compte répondre à trois objectifs principaux qui sont:
• La génération des rapports d’état et des graphes qui décrivent les états des composantes de
chaque machines du parc.
10
Chapitre 1
Dans ce chapitre, j’essaierai de réaliser une étude de marché des solutions les plus utilisées et
dont leurs fonctionnalités se rapprochent des objectifs de MRMC. En suite j’entamerai une
étude fonctionnelle qui listera les différentes tâches que MRMC intégrera.
Il existe une multitude de produit opensource spécialisé dans la gestion de parc informatique,
on peut citer parmi eux :
1
http://fr.wikipedia.org/wiki/Open_source
11
a) GLPI
GLPI (gestionnaire libre de parc informatique) est une application web permettant la gestion
de parc informatique et de gestion des services d'assistance distribué sous licence GPL. Le
projet totalement communautaire a été lancé en 2003 par l'association « Indepnet ». 2
En plus de ces fonctionnalités, GLPI dispose d’un ensemble de plugins permettant de couvrir
un large éventail de taches des équipes de maintenance. 3
b) OCS Inventory
OCS Inventory NG soit Open Computer and Software Inventory est une application
permettant de réaliser un inventaire sur la configuration matérielle des machines du réseau et
sur les logiciels qui y sont installés et de visualiser ces informations grâce à une interface
web. Il comporte également la possibilité de télé-déployer des applications sur un ensemble
de machines selon des critères de recherche. 4
En plus, Ocs Inventory peut être couplé avec GLPI pour étendre ses fonctionnalités.
c) ZABBIX
ZABBIX est un logiciel libre permettant de surveiller l'état de divers services réseau, serveurs
et autres matériels réseau et produisant des graphiques dynamiques de consommation des
ressources. C'est un logiciel open source créé par Alexei Vladishev. 5
2
http://fr.wikipedia.org/wiki/Gestion_libre_de_parc_informatique
3
http://plugins.glpi-project.org/spip.php?mot29&lang=fr
4
http://fr.wikipedia.org/wiki/OCS_Inventory
5
http://fr.wikipedia.org/wiki/Zabbix
12
• Une supervision répartie avec une administration web centralisée, afin que la récolte
des données ne soit pas interrompue en cas de problème réseau,
• Une supervision de site web avec recherche de motif et scénarios de navigation,
• Un fonctionnement en actif et/ou passif, le serveur Zabbix va récupérer les données
via des agents sur les éléments supervisés, et/ou, ce sont les éléments supervisés qui
vont envoyer au serveur Zabbix les données,
• Une interface web pour une visualisation efficace de l'état des éléments réseaux et des
données récoltées,
• La notification par e-mail, messagerie instantanée, sms, et pratiquement n'importe quel
autre moyen, pour être informé rapidement lors qu'un problème apparait,
• Le calcul de SLA, pour avoir une vue "commerciale" des services,
• Une supervision sans agent, par snmp, par ssh ou encore par ipmi, pour les serveurs ou
éléments réseaux ne permettant pas l'installation de l'agent zabbix,
• Un agent haute performance en natif (Logiciel client pour Linux, Solaris, HP-UX,
AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000,
Windows 2003, Windows XP, Windows Vista)
• Une supervision proactive, pour une interaction forte avec tous les équipements
(relance de services, extinction, reboot ...)
• La découverte automatique des serveurs et périphériques réseaux, pour surveiller les
nouveaux serveurs dés que ceux-ci sont présents sur le réseau
d) Nagios
Nagios est le standard mondial en ce qui concerne la surveillance système et réseau. Par son
architecture modulaire il permet de lancer des alertes lorsque les systèmes ont des
dysfonctionnements et quand ils repassent en fonctionnement normal. C'est un logiciel libre
sous licence GPL. 6
Nagios couvre l’ensemble des fonctionnalités demandées par les administrateurs réseau,
parmi lesquelles 7:
• Surveillance des services réseaux (SMTP, POP3, HTTP, NNTP, PING, etc.)
• Surveillance des ressources des hôtes (charge processeur, utilisation des disques, etc.)
• Système simple de plugins permettant aux utilisateurs de développer facilement leurs
propres vérifications de services.
• Parallélisassions de la vérification des services.
• Possibilité de définir la hiérarchie du réseau en utilisant des hôtes "parents", ce qui
permet la détection et la distinction entre les hôtes qui sont à l'arrêt et ceux qui sont
injoignables.
• Notifications des contacts quand un hôte ou un service a un problème et quand celui-ci
est résolu (via email, pager, sms, ou par tout autre méthode définie par l'utilisateur)
6
http://fr.wikipedia.org/wiki/Nagios
7
http://nagios.proy.org/traduction/wiki_preview/about.html
13
• Possibilité de définir des gestionnaires d'évènements qui s'exécutent pour des
évènements sur des hôtes ou des services, pour une résolution pro-active des
problèmes
• Rotation automatique des fichiers log
• Support pour l'implémentation de la surveillance redondante des hôtes
• Interface web optionnelle, pour voir l'état actuel du réseau, notification et historique
des problèmes, fichiers log, etc.
e) openNMS
OpenNMS est une application open source développée en JAVA permettant la supervision de
réseau informatique. Elle utilise le moteur d’application JETTY et PostgreSQL comme
système de gestion de base de données.
En plus de leurs prix, l’utilisation de ces produits demande dans la plus part du temps une
formation spéciale et une bonne expertise dans le domaine de supervision ce qui constitue un
investissement important pour les petites et moyennes entreprises.
a) HP OpenView
HP OpenView n’est pas un seul produit mais un ensemble de logiciels spécialisés dans la
supervision de réseau et système ou même la surveillance de logiciel spécifique. OpenView a
14
été développé de façon très modulaire ce qui lui confère une très grande souplesse
d’utilisation. Les sous logiciel OpenView peuvent êtres classés par domaine d’utilisation 8 :
Composants utilisés pour la supervision globale d’un réseau. Cette tâche est assurée par HP
OpenView Network Node Manager (NNM) qui fournit tous les services de base pour la
gestion de la plate-forme réseau. Il permet de connaître la topologie du réseau et la présenter
sous forme graphique. Pour la supervision des systèmes d’exploitation, HP OpenView
Operations Manager est utilisé.
Ces outils sont utilisés pour avoir une vu d’ensemble des performances des équipements
réseau du parc informatique. Par le biais de graphique et de rapport très riche d’indicateur,
HP OpenView Performance Manager, Agent, Monitor sont combinés pour avoir une
solution puissante et flexible de supervision et d’analyse de performance.
3) Supervision verticale
Ces outils sont utilisés pour la surveillance de produits tiers spécifiques. Par l’intermédiaire
de plugins, HP OpenView peut être utilisé pour la supervision d’une multitude d’application
verticale comme :
b) IBM Tivoli
Avant de devenir une branche de la société IBM Tivoli system est crée à Austin en 1989. En
mars 1996 elle est rachetée par IBM pour un montant de 750 million de dollars et devient du
même coup la filiale IBM dédié au développement de son logiciel de supervision et
administration réseau, de système et d’application. 9
8
http://en.wikipedia.org/wiki/HP_OpenView
9
https://prezi.com/mf8isjestdoj/presentation-ibm-tivoli/
15
A l’instar de HP OpenView IBM Trivoli est subdivisé en sous applications en fonction de leur
domaine d’utilisation. 10
Tivoli Monitoring, Tivoli Enterprise Console, Tivoli Netview, Tivoli Workload Scheduler,
Tivoli Configuration Manager, Tivoli Remote Control
2) Administration du stockage
Tivoli Storage Manager, Tivoli Storage Manager for Space Management (HSM), Tivoli
Storage Resource Manager, Tivoli Storage Area Network Manager
3) Sécurité
Tivoli Identity Manager, Tivoli Access Manager, Tivoli Privacy Manager, Tivoli Risk
Manager II.4 -Tivoli Enterprise Console (TEC) The Tivoli Enterprise Console® (TEC)
L'intégration de l'offre Service Desk fournit une communication bidirectionnelle entre IBM ®
Tivoli Enterprise Console (TEC) et le composant Service Desk d'IBM Tivoli Service Request
Manager ® 7.1. Cette section fournit une brève description du produit IBM Tivoli Enterprise
Console, les applications Service Desk qui intègrent avec TEC, ainsi que les avantages de
l'intégration TEC et la fonctionnalité Service Desk.
vRealize Hyperic est un composant de VMware vRealize Operations qui à son tour est un
composant de VMware vRealize Suite 11. Il est utilisé pour la supervision des systèmes
d’exploitation, les équipements réseau et les applications tiers.
• OS.
• serveurs web et proxys.
10
https://prezi.com/mf8isjestdoj/presentation-ibm-tivoli/
11
http://www.vmware.com/products/
12
http://wiki.monitoring-fr.org/various/hyperic-ubuntu-install
16
• serveurs d’applications.
• bases de données.
• technologies Microsoft (AD, Exchange, .NET).
• produits de virtualisation.
• ressources réseau.
• et bien d’autres comme Alfresco par exemple.
Plusieurs critères de comparaison peuvent être définis, mais toute tentative de comparaison
doit prendre en compte la stabilité, l’accessibilité, la fiabilité et la pertinence des indicateurs
de performance, et le niveau de support de la solution.
17
1.1.4 Solution proposée
Dans le domaine de surveillance de parc informatique les niveaux de performance des
solutions ci-dessus citées sont assez rapprochés. Toute fois, les logiciels libres ont acquis une
notoriété et une stabilité indiscutable.
Pour cette raison, La solution envisagée par Mindware se caractérise sa licence opensource et
sa facilité d’installation et d’utilisation. Pour sa première version, elle sera destinée aux
petites et moyennes entreprises et proposera dans sa version de base une fonctionnalité
Helpdesk avec possibilité d’utilisation d’outil de contrôle à distance
Avant de commencer la description détaillée de la solution, un petit aperçu sur la société hôte
de mon stage s’impose.
Mon stage de fin d’étude a été effectué au sein de la société MindWare qui a été crée en Avril
2010 par M. Adil ZEAARAOUI en association avec l’université Mohammed 1er, MindWare
est la première start-up crée par la dite université. MindWare siège à l’intérieur même du
complexe universitaire et plus précisément en plein centre de l’Ecole Nationale des Sciences
Appliquées d’ Oujda (ENSAO).
18
1.2.1 Domaines d’intervention
MindWare offre une gamme de services très variés et axés sur deux pôles :
MindWare offre à ses clients l’opportunité de créer des applications spécifiques répondant
exactement à leurs besoins et à leurs règles de gestion. Aussi, MindWare propose à ses
clients la maintenance et la mise à niveau de leurs applications de gestion déjà en production.
Les technologies utilisées par MindWare s’étale sur un large spectre de choix : Technologie :
OOA/D, JEE et les Framework (Struts2, JPmapper, hebernate...), PHP5 et Framework (Zend
FM), Python, XML, Jquery, Ajax SGBD : Oracle, MySQL, Postgresql
MindWare propose à ses clients l’installation et la configuration de leurs réseaux mono site et
multi site. Pour cela, MindWare couvre un large spectre de technologies : Réseaux et
configuration : routeur, passerelle, firewall, proxy, contrôleur de domaine, monitoring,
messagerie, VPN, serveur d’impression Solution VoIP: on travaille sur Asterisk Plateforme:
linux/Unix (Debian/FreeBSD), Windows.
19
réalisée. A l’issue de cette étape une idée générale prend forme et qui constituera la base de
tout le projet.
Cette étape se base sur les exigences du client pour une bonne implémentation du cahier des
charges avec génération des cas d’utilisation. Dans cette étape une étude technique des
technologies et outils à utiliser est réalisée. Cette étape est très importante pour le bon
déroulement des étapes suivante c’est pour cela que MindWare lui alloue le délai et les
ressources nécessaires.
A la fin de cette étape, l’équipe de développement est constituée et les taches sont réparties
entre ses membres.
Après la constitution de l’équipe de développement, une formation est réalisée par le chef de
projet aux nouveaux membres. Cette formation a comme objet les technologies choisies lors
de l’étape précédente et qui seront utilisées dans le développement de la solution.
Le délai imparti à cette étape est proportionnel à la difficulté et la complexité des outils à
utiliser et en fonction la nouveauté de ces outils pour les membres de l’équipe de projet.
En utilisant la méthodologie UML une analyse conceptuelle est réalisée avec la participation
de toute l’équipe de projet. En utilisant le logiciel « Entreprise Architect », Dans cette étape
les différents scénarios sont catalogués et modélisés sous forme de diagrammes de séquences.
En suite, le diagramme de classes est élaboré et affiné à plusieurs reprises. En fin et après une
multitude de réunions le chef de projet valide les différents diagrammes un planning de
développement est mis en place.
A la fin de la réunion les tâches correctement réalisées sont validées par le chef de projet et
celles présentant des problèmes reportées à la réunion suivante.
20
Les tâches validées sont affecté à l’équipe chargée des tests et sont validées ou retournées à
nouveau à l’équipe de développement en fonction de leur degrés de réponse aux exigences
fonctionnelles.
1.4 Conclusion
Dans ce chapitre j’ai présenté MindWare et ses domaines d’intervention ainsi que sa
méthodologie de travail avec la réalisation d’une étude de marché comparant un ensemble de
solution dont MRMC devra s’inspirer. Dans le chapitre suivant je présenterai une analyse
fonctionnelle de la solution proposée.
21
22
Chapitre 2
Analyse fonctionnelle détaillée du projet MindWare Remote,
MRMC est un logiciel client/serveur full web qui est en cours de réalisation au sein de
MindWare pour réaliser la surveillance et le control distant d’un réseau.
Cette application sera intégrée en finalité dans un ERP qui englobe un ensemble de module.
MindWare espère par le biais de cet ERP de couvrir l’ensemble ou du moins une grande
partie des processus de gestion d’une entreprise. Les modules en cours de développement
sont :
• Gestion comptable.
• Gestion commerciale.
• Gestion de courrier.
• Gestion de clientèle.
23
3UHPLqUHSDUWLH6XSHUYLVLRQGHSDUF
LQIRUPDWLTXH
&HWWHSDUWLHGXSURMHWFRQVLVWHHQODVXUYHLOODQFHGHVPDFKLQHVHWpTXLSHPHQWVLQVWDOOpVGDQV
XQUpVHDX&HWWHVXUYHLOODQFHHVWGLYLVpHHQGHX[SDUWLHV
*HVWLRQGHO¶LQYHQWDLUH
/¶LQYHQWDLUHGHVPDFKLQHVHWGHOHXUVFRPSRVDQWVW\SHGXSURFHVVHXUWDLOOHGHODPpPRLUH
FDSDFLWpGHVGLVTXHVGXUVOHVFDUWHVUpVHDXOHVSURFHVVXVHQFRXUVG¶H[pFXWLRQHWF
&HW LQYHQWDLUH GHYUD DIILFKHU OD OLVWH GHV PDFKLQHV VXUYHLOOpHV VRXV IRUPH GH WDEOHDX DYHF
SDJLQDWLRQ&RPPHLOOXVWUpGDQVODPDTXHWWHVXLYDQWHFHWDEOHDXGHYUDDIILFKHUOHVFRORQQHV
VXLYDQWHV
)LJXUH/LVWHGHVPDFKLQHVVXUYHLOOpHV
(Q FOLTXDQW VXU O¶DGUHVVH ,3 GH OD PDFKLQH RX HQ OH FKRLVLVVDQW GDQV OD ]RQH UHFKHUFKH
PDFKLQHOHVLQIRUPDWLRQVWHFKQLTXHVGHO¶pTXLSHPHQWVXSHUYLVpVHURQWDIILFKpHV&HWWHILFKH
WHFKQLTXHGpWDLOOHUDOHVODFRQILJXUDWLRQGX&385$0GLVTXHVGXUVFDUWHUpVHDXDLQVLTXH
G¶DXWUHVFRPSRVDQWVFRPPHLOOXVWUpGDQVODPDTXHWWHVXLYDQWH
Figure 2.2 : Fiche équipement surveillé
Dans cette fiche, deux types de d’affichage peuvent être utilisés : la disposition tableau pour
les données de type chaine de caractères (système d’exploitation installé, type du processeur,
processus monté, …) et sous forme de graphique pour les informations de type numérique
(mémoire, taille du disque dur, …)
25
Figure 2.4 : Forme d’affichage graphique
26
Figure 2.5 : Configuration des alertes et erreurs
MRMC être capable de générer des demandes assistance automatique basées sur les alertes et
erreurs détectées et remontées dans la phase supervision, ainsi que la création des demandes
d’assistance par les utilisateurs des machines et destinées à l’équipe technique.
La satisfaction des demande d’assistance pourra être réalisée soit par conférence audio, soit
par chat, soit par prise de contrôle à distance ou dans le cas échéant en se déplacement vers le
lieu d’incident
MindWare envisage dans un premier niveau intégrer une gestion de ticket de demande
d’assistance destiné aux techniciens et dont le suivi est automatisé par l’application.
27
Figure 2.6 : Gestion d’assistance à distance par conférence audio ou chat
28
Figure 2.8 : Conférence audio
29
Figure 2.10 : Prise de contrôle à distance
MRMC devra être capable de dresser un tableau de bord synthétisant l’état global du parc
informatique et devra aussi avoir la capacité de filtrer les statistique en fonction d’une
machine spécifique du réseau voir une durée ou une date précise.
30
Figure 2.11 : Tableau de bord
2.4 Conclusion
Au cours de ce chapitre, une étude fonctionnelle a été réalisée, les fonctionnalités les plus
importantes ont été décrites et détaillées. Néanmoins, d’autres fonctionnalités plus simples ont
été volontairement négligées comme par exemple l’interface d’authentification, l’interface de
paramétrage, etc.
Dans le chapitre suivant, je présenterai la conception UML détaillée de notre système.
31
32
Chapitre 3
Modélisation du MRMC
• UML est aujourd’hui un standard, adopté par les grands constructeurs de logiciel du
marché.
Trois acteurs majeurs (Grady Booch, Ivar Jacobson et Jim Rumbaugh) se sont regroupés au
sein de la société Rational pour définir le langage unifié UML (Unified Modeling Language)
La notation UML a été conçue pour servir le langage de modélisation objet, indépendamment
de la méthode de mise en œuvre.
MindWare utilise le logiciel Entreprise Architect pour la création des diagrammes UML. Ce
logiciel lui confère une souplesse et un certain niveau de professionnalisme dans cette étape du
projet.
33
La méthodologie de conception suivie par MindWare est très simple. En effet, elle se contente
de modéliser tout système à analyser en créant trois diagrammes UML qui sont :
Dans mon l’analyse conceptuelle de mon projet j’ai suivi la méthodologie MindWare. Dans ce
qui suit je vais essayer de présenter les diagrammes des cas d’utilisation avec une brève
description de chaque cas, en suite je vais passer aux diagrammes de séquences avec les
scénarios correspondants et en fin le diagramme de classes qui nous donnera une vue globale
du système MRMC.
MindWare utilise une méthode très simple pour la création des cas d’utilisation. En effet, sur
la base de l’analyse préalable des besoins, elle recense les acteurs du système d’information et
essaye de crée le cas ou les cas d’utilisation pour chaque acteur. En suite, un schéma des
interactions entre les cas d’utilisation est dressé.
• Acteur serveur.
• Acteur administrateur.
13
http://fr.wikipedia.org/wiki/Cas_d%27utilisation
34
3.2.1 Acteur client
Cet acteur représente tout les équipements et machines à superviser. Les fonctionnalités
offertes à cet acteur sont au nombre de trois.
a) Envoi de l’état de la machine
La tâche principale de cet acteur est l’envoi de l’état de la machine vers le serveur. Cette tâche
est le noyau central de tout le système puisqu’elle l’alimente de toutes les informations
techniques dont-il a besoin pour dresser l’état du réseau.
b) Téléchargement de l’agent client
35
3.2.2 Acteur serveur
Cet acteur représente le moteur d’application du système qui supervise la globalité du parc
informatique. L’acteur serveur sera en charge des tâches suivantes: identifier les machines du
parc, sauvegarder les informations de ces dernières ainsi que la détection des erreurs et des
alertes du parc.
a) identification des machines (identify machine)
En fonction d’un intervalle paramétrable par l’acteur administrateur, le serveur doit identifier
chaque machine supervisée et doit vérifie sont état connecté ou non. Si la machine est
connectée, le serveur pourra vérifier plusieurs paramètres comme par exemple la version de
l’agent installé.
b) Sauvegarde dans la base de données (store machine info into DB)
Après que le client installe l’agent, il pourra envoyer ses données techniques au serveur pour
que ces informations soient sauvegardées dans la base de données. Ces données constituent
l’état de la machine dans un instant donné.
Avant chaque enregistrement de l’état d’une machine, une vérification de son existence
préalable est réalisée. Si la machine a envoyé son état pour la première fois un nouveau
enregistrement de machine est crée.
c) Détection des alertes et des erreurs (detect warning and error)
Selon un intervalle défini par l’acteur administrateur, le serveur doit détecter les alertes ainsi
que les erreurs existantes dans les différentes machines du réseau. Ces alertes et erreurs sont
configurées par l’administrateur et sont en relation avec l’état des composants constituant les
machines surveillées.
Ces alertes et erreurs peuvent être détectées aussi lors de l’envoi de l’état des machines
supervisées.
36
Le cas d’utilisation de la partie serveur est présenté ainsi :
Cette partie explique les fonctions effectuées par l’administrateur, elle est présentée comme
suit :
37
Figure 3.3: Cas d’utilisation d’administrateur
Permet à l’administrateur d’avoir la liste des machines du réseau (avec des informations
générales).
c) Etat de la machine cliente (client state)
L’utilisateur peut à tout moment afficher l’état d’une machine supervisée comme l’état
connecté ou non. Pour accéder à cette fonctionnalité l’utilisateur doit passer par l’action liste
des machine précédemment décrite.
38
d) Afficher l’état de la machine cliente (get machine detail info)
Cette fonctionnalité donne la possibilité d’afficher les informations détaillées sur une machine
du parc informatique.
e) Extraire les informations de la machine (Extract information)
Permet de retourner les informations de la machine en cour ces informations seront utilisées
par l’action afficher l’état de la machine précédemment définie.
f) Définir intervalle (Set timer)
Cette opération permet d’installer une nouvelle version de l’agent MRMC. Pour cela
l’administrateur doit au paravent être authentifié et choisir un client déjà surveillé.
h) Liste des alertes et erreurs des machines (list machine warning error)
Comme son nom l’indique permet d’afficher la liste des machines qui présentent des alertes
et/ou des erreurs. Pour cela l’administrateur devra au préalable configurer les alertes et les
erreurs à détecter.
39
3.3 Diagrammes de séquences
Les diagrammes de séquences sont la représentation graphique des interactions entre les
acteurs et le système selon un ordre chronologique dans la formulation « Unified Modeling
Language », on y met l'accent sur la chronologie des envois de messages.
3.3.1 Client
Scénario1
Dans ce scénario le client est sensé télécharger l’application cliente pour faire partie du réseau
(pour que ce dernier soit surveillé par le serveur), une fois le téléchargement effectué, le
serveur identifiera cette machine et vérifie son adresse MAC et IP, a` ce moment l`a
l’extraction des données en local est activée.
Le diagramme de séquence de ce scénario se présente ainsi :
Scénario2
Dans ce scénario le client dispose de l’application cliente, les informations relatives à ce
dernier sont envoyées en permanence au serveur. Lors de chaque envoi, une comparaison est
40
effectuée entre la version du jar utilisé pour l’envoi (jar client) et celui utilisé dans le serveur, si
les deux versions ne sont identiques, la dernière version sera téléchargée automatiquement
dans la machine cliente.
Le diagramme de séquence relatif à cet effet se présente comme suit:
3.3.2 Serveur
Le serveur est toujours en attente des informations qui proviennent des clients du parc, une
fois les données extraites (dans la machine cliente) elles sont envoyées vers le serveur et
stockées dans une base de données hébergée dans ce dernier.
Le diagramme de séquence suivant explique cette partie :
41
Figure 3.6: Récupération et stockages dans la base des données
3.3.3 Administrateur
Apres l’authentification, l’administrateur aura la liste des machines du réseau, le
diagramme de séquence suivant est relatif au paramétrage appliqué sur toutes les machines
clientes.
42
3.4 Diagramme des classes
Alors que le diagramme de cas d'utilisation montre un système du point de vue des acteurs, le
diagramme de classes en montre la structure interne. Il permet de fournir une représentation
abstraite des objets du système qui vont interagir pour réaliser les cas d'utilisation.
Une classe est un ensemble de fonctions et de données (attributs) qui sont liées ensemble par
un champ sémantique. Les classes sont utilisées dans la programmation orientée objet. Elles
permettent de modéliser un programme et ainsi de découper une tâche complexe en plusieurs
petits travaux simples.
Maintenance je vais essayer de détailler les trois packages et décrire les différentes classes de
chacun.
43
Figure 3.9 : diagramme de classes gestion des machines
• Machine
C’est la classe principale du package et du projet. C’est cette classe qui permet d’identifier les
équipements surveillés. Les machines sont caractérisées par plusieurs attributs dont
« machineID » qui constitue l’identifiant de la machine à superviser. Les autres attributs
comme « isConnected » sont des informations sur son l’état actuel.
Cette classe contient toute les informations technique sur l’architecture matérielle et logicielle
de la machine. Ces données donne une vue statique sur l’architecture du micro processeur, le
système d’exploitation et la version de java.
44
• Interface réseau (NetworkInterface)
Comme une machine peut avoir une seule ou plusieurs cartes réseau la multiplicité de ce coté
est « 1..* ». Une interface est identifiée par son adresse MAC et contient des adresses IP pour
sa passerelle et ses serveurs DNS.
Pour des raisons de facilité de gestion des machines, la classe « machineGroup » a été ajouté
et chaque machine peut être ajoutée à un et un seul groupe. Chaque groupe est identifié par
« machineGroupID ».
Cette classe sert à configurer chaque machine en spécifiant son serveur de surveillance ainsi
que son port et son délai d’envoi des données technique. Cette classe n’est utilisée que si les
ces paramètre sont différents des paramètres généraux de l’application MRMC.
45
Figure 3.9 : diagramme de classes surveillance (monitoring)
46
Dans ce package on trouve les classes suivantes :
• Ordinateur (computer)
MRMC est une application destiné à superviser tous les types d’équipements installé dans un
réseau informatique. Mais dans cette première version, l’application se contentera de
surveiller les ordinateurs et c’est pour cette raison que la classe « computer » a été crée. Cette
classe contient des informations spécifiques à tout ordinateur comme son nom, la langue
utilisée, le total des microprocesseurs, etc.
Une machine est surveillée tant qu’elle est présente dans le parc informatique et que l’agent
MRMC est exécuté. A un intervalle bien défini, la machine envoie ses données techniques au
serveur MRMC pour qu’il les enregistre dans sa base de données et à chaque sauvegarde un
nouveau état de machine est crée en spécifiant la date et heure de création.
• Processus (Process)
Classe relative aux processus qui sont en cour d’exécution dans une machine donnée.
• Microprocesseur (CPU)
Contient toutes les données relatives au microprocesseur tel que son horloge, le pourcentage
de son exploitation à un moment donné...
• Mémoire (Memory)
Corresponds aux informations relatives à la mémoire (taille totale de la ram, mémoire utilisée,
mémoire libre...).
• Media
Cette classe nous informe sur les medias de la machine (nombre et noms des disques durs,
l’espace occupé ainsi que l’espace libre dans ces derniers)
Cette classe nous informe sur la nature du réseau établit ainsi que sur l’état de ce dernier sur la
machine en question.
47
• Règles des erreurs des machines (machineErrorRule)
Pour que les alertes et les erreurs soient détectées dans les machines surveillées,
l’administrateur doit les paramétrer en spécifiant leurs noms et leurs types, soit erreur ou
alerte, et en donnant la formule de leurs détections.
48
• Agent
Le service d’assistance est assuré par les agents techniques. La classe « Agent » est une
spécialisation de la classe « User » à fin qu’il puisse utiliser l’application MRMC pour le
suivi de ses tickets d’assistance.
Pour chaque intervention, un ticket est crée pour la machine défaillante et il affecté à un
agent. Chaque ticket à un sujet, une date de création, une priorité et un statut.
Chaque ticket a une priorité en fonction de son degré d’importance. Ce degré d’importance
est fixé par l’administrateur de MRMC.
3.5 Conclusion
Ce chapitre a été consacré à la présentation de la phase de conception UML de MRMC. Pour
des raisons de lisibilité le système a été découpé en plusieurs parties en fonction des acteurs
pour les cas d’utilisation et les diagrammes de séquences et en fonction des services offerts
pour le diagramme de classes
Le chapitre suivant, sera consacré à l’étude technique qui présentera les différents outils
utilisés pour l’élaboration du projet.
49
50
Chapitre 4
MindWare entend par étude technique une analyse de tous les aspects en relation avec les
technologies à utiliser par l’équipe de développement, commençant par l’éditeur jusqu’au
langage de programmation en passant par toutes les bibliothèques et API à utiliser. Pendant
cette étude l’équipe de projet mènent de longues discutions par fois houleuses dans le but
de choisir les bons outils.
La grande importance de cette partie vient du fait que les outils choisis seront utilisés tout
au long de la partie développement et qu’un mauvais choix technologique et la tentative de
le corriger fera subir au projet de grands préjudices en terme de délais de réalisation et de
pertes financières assez importantes.
Dans MindWare, plusieurs critères déterminent le choix d’une technologie ou une autre,
mais parmi les plus importants on peut citer la licence de l’outil, sa stabilité et sa place
dans les tendances techniques mondiale.
51
En effet, MindWare privilégie les outils opensource d’une part pour leur code ouvert et
d’autre part pour la communauté libre qui est très active. Aussi, le développement d’une
application stable nécessite obligatoirement l’utilisation de bibliothèques stables.
Dans ce chapitre on va détailler les outils, langages ainsi que les technologies utilisées pour
la réalisation du Projet MRMC et pour chaque outil je vais essayer de justifier son choix.
Citons maintenant quelques technologies.
JEE est une plateforme de développement crée pour étendre JAVA STANDAR EDITION
la plateforme de base de JAVA. L'objectif majeur de Java EE est de faciliter le
développement d'applications web robustes et distribuées, déployées et exécutées sur un
serveur d'applications.
Le choix de MindWare c’est porté sur JEE pour plusieurs raisons. En premier, la
portabilité des applications développées en JAVA donne à la société une très grande
souplesse dans le choix des plateformes d’hébergement opensource et diminue ainsi le coût
de la solution finale. La sécurité et la stabilité reconnues des applications java sont
d’importants arguments commerciaux et marketing dans toute compagne de vente. On peut
ajouter à tout cela, le grand nombre de bibliothèques opensource et gratuit ainsi que la
communauté immense dans laquelle on trouvera facilement des solutions à nos problèmes
de développement les plus complexe.
MindWare étant une société favorisant l’utilisation des produits opensource, le choix
d’Eclipse était des plus logiques.
14
http://fr.wikipedia.org/wiki/Eclipse_%28projet%29
52
4.1.3 Le serveur d’application Tomcat
Tomcat est un conteneur de Servlet et un serveur web opensource développé par la
fondation apache. Tomcat implémente plusieurs technologies JEE incluant java Servlet,
Java Server Page (jsp), Websocket, etc.15
• Coyote qui est un conteneur Web supportant le protocole http 1.1. C’est ce composant
qui permet à Tomcat de jouer un rôle de serveur web.
• Jasper le moteur JSP de Tomcat qui lui permet de compiler les pages JSP pour
produire des classes java qui peuvent être exécutées par Catalina. Jasper peut aussi
détecter toute modification dans les pages JSP afin de les recompiler.
Le but principal de Tomcat est de fournir des solutions serveur basées sur la plate-forme
Java, de qualité identique aux applications commerciales mais développées avec l’esprit
d’ouverture du logiciel libre.
15
http://en.wikipedia.org/wiki/Apache_Tomcat
53
Figure 4.1 : traitement des requêtes http par Tomcat
JSP est une technologie Java qui permet la génération de pages dynamiques sur le web. JSP
consiste en une page HTML incluant du code Java qui s’exécutera soit sur le serveur Web,
soit sur le serveur d’application. Le langage HTML décrit la manière dont s’affiche la
page, le code Java servant à effectuer un traitement, par exemple récupérer les informations
nécessaires pour effectuer une requête dans une base de données.
54
démarrage du serveur Web ou lors de la première requête du client. Une fois chargés, les
servlet restent actifs dans l’attente d’autres requêtes du client.
Apache Struts2 est élégant, extensible pour la création d’applications web Java.
Contrairement à ce que peut indiquer le nom, Struts2 n’est pas une continuation de Struts1
mais une fusion entre les Framework Struts1 et WebWork. Struts2 est crée pour répondre
aux faiblesses de Struts1.
Plusieurs Framework pouvaient être choisis pour le développement de MRMC comme JSF,
Play ou même spring. Mais le choix de cette bibliothèque était déjà fait lors du début du
développement de l’ERP de MindWare et de ce fait son utilisation pour MRMC était très
logique.
4.1.8 JPMapper
JPMapper (Java persistant Mapper) est une couche java intelligente et rapide de la
persistance de donnée. Cette solution a été crée par la société MindWare pour offrir un
service ORM à ses application JEE, il crée une relation logique entre les systèmes de bases
de données relationnelles et les objets Java. La technique JPMapper est axé sur les points
suivants : 16
• Elégance: JPMapper interroge le système de gestion de base de données et
convertit automatiquement les colonnes d’attributs de l’objet et aux données de
base de données types de types de données Java.
16
http://jpmapper.sourceforge.net/
55
4.1.9 La bibliothèque SIGAR
Dans la plus part des logiciel de surveillance réseau, l’utilisation d’un agent de supervision
à installer dans la machine cliente facilite beaucoup l’extraction et l’exploitation des
données techniques. Pour MindWare, deux solutions étaient possible soit le développement
d’un agent ou l’utilisation d’une bibliothèque déjà crée et après de longues discutions c’est
la deuxième solution qui a été choisie.
La tâche de recherche d’un agent m’a été confiée et après la comparaison entre plusieurs
bibliothèques j’ai opté pour SIGAR. Les critères qui ont déterminé ce choix sont
principalement sa licence Apache version 2, son noyau développé en java et surtout sa
documentation très bien faite.
Cette partie corresponds à l’axe pivot du projet c’est la raison pour laquelle elle va être
détaillée un peu plus que les autres parties.
SIGAR (System Information Gatherer and Reporter) a été conçu et mis en application par
Doug MacEachern chez technologies covalentes à la fin de l’année 2002 et son
développement a continué chez Hyperic comme composant de noyau du produit de QG.
SIGAR. Cette bibliothèque est une tentative qui fourni une plate-forme api (Application
Programing Interface) pour collecter des informations du système. 17
Le SIGAR api fournit une interface portative pour recueillir des informations de système
comme : La mémoire système, le fichier d’échange, unité centrale de traitement, ouvertures
mémoire des processus, environnement de travail, dossiers ouverts, détection et métrique
de système de fichiers, détection d’interface réseau, information de configuration et
métrique des tables TCP et d’UDP, table de route réseau. Ces informations sont
disponibles dans la plupart des systèmes d’exploitation, mais chaque système a ses propres
manières pour la fournir.
SIGAR fournit aux développeurs un api pour accéder à ces informations indépendamment
de la plate-forme logiciel et matériel de la machine. Le noyau api est développé en C pur
avec des attaches actuellement mises en application pour Java, Perl, rubis, python, Erlang,
PHP et C#.
17
https://support.hyperic.com/display/SIGAR/Home
56
b
57
Figure 4.3: Versions des distributions certifiées
La différence essentielle entre XML et HTML concerne la façon dont ils sont dérivés de
SGML : XML est un sous ensemble de SGML, c’est à-dire une version allégée destinée à
faciliter son utilisation sur le Web et à faire un format d’échange de données. Ces
simplifications facilitent l’écriture d’applications XML, en revanche, HTML est une
application de SGML c’est à-dire un langage spécifique qui obéit à la norme SGML.
Puisque HTML a été conçu pour échanger des données sur le Web, donc pourquoi créer un
nouveau langage ? En vérité, XML et HTML ont des objectifs différents.
58
Un document HTML comporte des balises relatives à la mise en forme du texte mais rien
sur son contenu réel. En d’autres termes, HTML concerne la présentation et non pas la
nature du contenu. XML tente de distinguer le contenu de la présentation. Sa structure est
proche de celle de HTML. La différence majeure est que l’on peut définir la structure des
données à l’aide de balises personnalisées. Supposons que nous ayons un document
contenant des informations bibliographiques. En HTML, il se présenterait ainsi :
Supposons que nous souhaitons réaliser une application qui extraie la liste des ouvrages
écrits par l’auteur1 du document HTML si dessus. La tâche est réalisable mais difficile à
faire.
Il serait difficile d’interpréter son contenu texte car la page ne comporte pas d’informations
concernant la structure des données.
59
La présentation du fichier XML dans le navigateur Internet Explorer sera comme suit
:
60
Figure 4.4: Exemple d’un fichier XML affiché par IE
L’extraction de la liste des ouvrages écrits par l’auteur1 requiert encore quelques efforts
mais il est plus aisé de mettre en œuvre une telle application car la structure des données
parle d’elle-même.
4.1.11 Dom4j
Dom4j est un Framework (API) open source pour manipuler des données XML, XSL et
Xpath. Il est entièrement développé en Java et pour Java. Il permet de lire, écrire, naviguer,
créer ou modifier un document XML et exécuter des requêtes XPATH.
Dom4j propose un modèle de représentation d’un document XML et une API pour en
faciliter l’utilisation.
Pour obtenir une telle représentation, dom4j utilise soit SAX, soit DOM. Comme il est
compatible JAXP, il est possible d’utiliser toute implémentation de parser qui implémente
cette API.
61
< ?xml version=’’1.0’’ ?>
<annuaire type=’’pages blanches’’>
<entree>
<nom>BELKASMI</nom>
<telephone>0661251220</telephone>
</entree>
<entree>
<nom>ZEAARAOUI</nom>
<telephone>0661672978</telephone>
</entree>
</annuaire>
Pour accéder par exemple à la liste des nœuds ” nom ” de l’annuaire, la syntaxe de la
requête est : /annuaire/entree/nom
Un interpréteur XPath retournera la liste des noeuds répondant à cette requête, à savoir:
<nom>Belkasmi</nom>
<nom>ZEAARAOUI</nom>
XPath permet aussi de gérer des requêtes plus complexes. Par exemple, pour rechercher le
numéro de téléphone de Belkasmi dans le document, on utilise la syntaxe suivante :
/annuaire/entree[nom=”Belkasmi”]/telephone
On utilise des expressions entre crochets pour indiquer des conditions sur les résultats
obtenus. Dans l’exemple précédent, on a mis comme condition sur les entrées obtenues
d’avoir un fichier dont le contenu de l’élément nom est égal à ” Redouane”.
Enfin, XPATH permet aussi une recherche par prédicat et fournit un ensemble de fonctions
pour des requêtes plus complexes.
Ce langage de Programmation Orientée Objet (POO), faiblement typé, est exécuté côté
client.
La technologie AJAX
62
L’avantage principal d’AJAX est la vitesse de réponse aux actions de l’utilisateur.
La bibliothèque Jquery
JQuery est une bibliothèque JS développée principalement par John Resig. Par
bibliothèque on entend donc un ensemble cohérent de fonctions permettant de s’affranchir
des tâches répétitives de façon uniforme sur les navigateurs les plus courants, elle est sous
licence GPL et MIT, et donc complètement réutilisable sur des travaux professionnels. Son
poids Compressé est de 14 Ko, ce qui est tout à fait raisonnable sur la plupart de nos
projets.
• Internet Explorer 6+
• Safari 2.0.2+
• Opera 9+
La librairie jqPlot
jqPlot est un plugin Jquery pour générer des graphiques pure JavaScript côté client dans
des pages web.
Le choix de jrDesktop a été fait pour plusieurs raison, le plus important étant son statut
multiplateforme et sa licence GPL.
63
Figure 4.5 : les fonctionnalités de JrDesktop
64
4.1.16 SVN
Subversion (en abrégé SVN) est un logiciel de gestion de versions, distribué sous licence
Apache et BSD. Il a été conçu pour remplacer CVS. Ses auteurs s'appuient volontairement
sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et
considèrent que le modèle de CVS est bon, seule son implémentation est perfectible. 18
Pour utiliser SVN, MindWare a mis en place un serveur Linux sur lequel a été installé le
serveur SVN pour que les développeurs y uploadent leurs documents ou programmes.
Ensuite un dépôt a été mis en place portant le nom du projet MRMC avec un architecture
spéciale de dossier que MindWare utilise pour tous ses projets de développement, sur ce
dépôt un ensemble d’autorisation a été crée pour les développeurs.
Pour faire un upload, le développeur doit utilisateur doit disposer d’un logiciel SVN client,
celui utilisé par MindWare est Tortoise-svn.
18
http://fr.wikipedia.org/wiki/Apache_Subversion
65
Figure 4.7 : Arborescence du dépôt SVN
Deux dossiers sont très utilisés par les développeurs. Le dossier « Design » dans lequel les
fichiers des modèles UML et base de données sont crées (cas d’utilisation, diagramme de
séquences, diagramme de classes et le modèle conceptuel de données). Le deuxième
répertoire « Sources » est utilisé pour la structure du projet JEE de MRMC où seront
enregistrés les fichiers de développement.
Deux structures sont créées, le premier pour le projet Agent MRMC qui est un projet
JAVA classique avec quelque interface SWING et basé sur la bibliothèque « Sigar » et
« jrDesktop » et la deuxième pour la console d’administration web qui est une application
JEE/Struts2.
Dans le projet JEE/Struts2, deux dossiers sont très importants dans sa structure. Le dossier
SRC qui contient le package JAVA de touts les contrôleurs et modèles utilisés
conformément aux orientations du design-pattern MVC.
66
Figure 4.8 : Les modèles et contrôleurs MRMC
Le deuxième dossier est « webContent » qui contient tous les fichiers en relation avec la
partie vue de MVC (HTML, jsp, js, images, css …).
67
Figure 4.9 : les vues MRMC
Une fois cette tâche réalisée, le tout devait être packagé dans un seul fichier java
exécutable. Pour cela, il était nécessaire d’utiliser un fichier XML descripteur « build.xml »
et une bibliothèque nommée « one-jar ».
68
Figure 4.10 : projet Eclipse de l’agent MRMC
Après la création de fichier java exécutable, il fallait mettre au point un installateur pour
facilité l’intégration et le lancement de l’agent sur les machines clientes. Pour ce faire, il
fallait utiliser un empaqueteur de déploiement et le choix c’est porté sur « InnoSetup » qui
est un utilitaire opensource et gratuit. InnoSetup utilise un script pour la création de l’auto-
installateur comme illustré dans la figure suivante :
69
Les bibliothèques (les JAR) et les classes JAVA sont compressés dans un seul fichier qui
servira d’installateur de l’agent MRMC, le plus souvent ce fichier est nommé
« Setup.exe ».
• Apache Tomcat
Pour utiliser le serveur Tomcat il suffit de l’ajouter dans le projet web dynamique. Les
fichiers de configuration sont crées et paramétrés automatiquement par Eclipse. Cette
configuration est réalisée avec des assistants Eclipse mais dans la phase d’hébergement de
l’application dans un mode production plusieurs méthodes peuvent être utilisées. Pour
héberger ses applications, MindWare crée un fichier de déploiement appelé « fichier
WAR » qui est une sorte d’archive où sont enregistrés toutes les classes JAVA, les pages
JSP, les bibliothèques, etc. Ce WAR sera déployé en utilisant « Tomcat Manager ».
• Struts2/MVC
70
Struts2 est basé sur le concept d’actions qui sont toutes les interactions entre l’application
MRMC et les utilisateurs. Ces actions sont cataloguées dans le fichier « Struts.xml » est
sont aussi définies dans les différents IHM du projet. Chaque action est traitée par une
méthode d’un contrôleur.
• ORM JPMapper
JPMapper est un ORM très facile à utiliser, il ne demande pas beaucoup de configuration,
il suffit de crée le fichier « dbInformation.properties » qui sert à lier l’application avec un
SGBDR et de mapper les modèles avec les tables. Ce mappage est réalisé avec la notion
d’annotation JAVA.
71
Figure 4.14 : utilisation de JPMapper
• XML
Le langage XML est utilisé tout au long du projet MRMC. Il est utilisé dans les fichiers de
configuration comme ceux du serveur Tomcat et de Struts2. XML est aussi utilisé dans le
développement de la console d’administration et surtout dans la partie envoi de l’état de la
machine cliente surveillée. En effet, toutes les valeurs techniques envoyées au serveur sont
sous forme de fichier XML.
72
Figure 4.15 : utilisation de XML
73
A) Extraction et envoi de données
L’extraction des données est faite automatiquement en fonction de l’intervalle défini lors
de l’installation de l’agent. Cette tâche est réalisée avec l’aide de la bibliothèque « Sigar »
et génère un fichier XML qui sera envoyé au serveur pour être traiter et enregistrer. Ce
fichier sera décortiqué et constituera un objet d’état d’une machine « MachineState » qui
sera enregistré dans la base de données avec l’aide de la bibliothèque « jpMapper ».
Le schéma suivant explique ce mécanisme :
74
a. Etape1: pré-extraction
Avant d’entamer l’étape d’extraction j’ai réalisé des classes qui correspondent aux
différentes composantes d’un pc, les noms ainsi que les variables de ces dernières étaient
choisis en se basant sur les noms qui existent dans la bibliothèque SIGAR et du diagramme
de classes UML.
La classe computer.java englobe toutes les autres classes relatives aux composantes d’un
ordinateur qui sont CPU.java, Media.java, Memory.java, NetworkConnection.java,
NetworkInterface.java, OS.java et Process.java.
Prenons à titre d’exemple la classe Memory.java, elle est composée des attributs suivants :
75
Figure 4.20 : Extraction des informations de la mémoire
Les champs cités précédemment portent les mêmes noms des méthodes existantes dans la
bibliothèque SIGAR, le but est de faire la relation entre les variables de la classe et les
valeurs de retours des méthodes de l’API
Les données collectées précédemment doivent être structurées sous un format XML puis
envoyées sous forme de fichier XML. Pour chaque objet computer des nœuds sont ajoutés
au fichier XML, La structuration est réalisée comme suit :
76
Figure 4.21 : Création du fichier XML
Cette étape consiste à mettre le contenu du fichier XML dans une variable de type chaine
de caractère, le but de cette étape est d’alléger le trafic réseau lorsque ce dernier est
composé de plusieurs machines.
Après la structuration des informations techniques sous forme de fichier XML, l’envoi est
réalisé en utilisant la classe Socket qui sont des objets permettant la gestion des flux de
données en utilisant le protocole TCP/IP.
77
Le schéma suivant visualise le rôle des sockets dans cette partie :
Après l’envoi des données, les informations sont reçues dans le serveur sous format chaine
de caractère et transformées en un fichier XML en utilisant le parseur dom4j. Après cette
étape des objets sont crées pour chaque classe et alimentés avec les informations relatives
aux machines clientes. Pour se faire, le fichier XML obtenu est parcouru en utilisant le
78
langage XPATH (outils) pour obtenir les informations relatives aux différents nœuds du
fichier.
Les informations relatives aux différentes machines du parc sont stockées dans une base de
données MySQL, les tables et les champs de cette dernière sont basés sur le diagramme des
classes présenté précédemment.
79
A l’aide de PhpMyAdmin, la base de données a été crée ainsi :
Avec JPMapper, il y a plusieurs façons d’enregistrer des données dans MySQL. C’est en
fonction de la complexité de la tâche de sauvegarde ou même de lecture qu’il faut choisir la
méthode adéquate. En effet, si la tâche est simple en utilise un accès direct à la base de
données, et en utilise les méthodes de base de JPMapper (put, get, list, delete, etc), mais si
la tâche est complexe on utilise le mode transactionnel ou même on pourra créer une classe
DBService.
Prenons l’exemple d’enregistrement de l’état d’une machine. Ainsi pour enregistrer les
données reçues d’une machine cliente, il faut simplement créer un objet Etat de la machine
« MachineState » et l’alimenter des différentes informations techniques reçues lors de
l’étape précédente. En suite, en utilisant la bibliothèque JPMapper il faut créer une
connexion au serveur MySQL et sauvegarder l’objet crée dans la table correspondante.
80
Figure 4.29 : « DBService » avec mode transactionnel
Pour afficher n’importe quelle donnée enregistrée dans la base, il faut utiliser le modèle
MVC. Toujours avec le même exemple, pour afficher l’état d’une machine, il faut passer
par le contrôleur pour accéder à la base, extraire les informations, créer l’objet
correspondant du modèle, alimenter l’objet avec les valeurs extraites et en fin faire passer
cet objet à la vue, généralement une page JSP, pour qu’elle l’affiche .
81
Figure 4.30: Présentation des données avec MVC
82
Figure 4.32 : Présentation des données avec une page JSP
4.4 Conclusion
Dans cette étude technique j’ai essayé de présenter la majorité des technologies utilisées
dans le développement de MRMC et dans laquelle j’ai suivi un classement chronologique
et par ordre d’importance. Dans le chapitre suivant je vais détailler les fonctionnalités du
projet final MRMC.
83
84
Chapitre 5
Présentation de MRMC
Dans ce chapitre je vais essayer de présenter les fonctionnalités développées dans la solution
MRMC. Dans cette démonstration je vais débuter par la partie Agent de surveillance et ensuite
passer à la console d’administration.
5.1.1 Installation
Pour pouvoir surveiller une machine du réseau, il faut installer l’agent MRMC. Cette
installation est réalisée par un auto-installeur crée avec un logiciel empaqueteur nommé
« InnoSetup ». Durant l’installation, plusieurs paramètres doivent êtres renseignés.
85
Figure 5.1 : Paramétrage de l’agent MRMC
Les autres ports sont utilisés dans la partie assistance à distance. Le port audio pour la
conversation audio, le port chat pour la conversation textuel et le port RDP est pour la prise de
contrôle. Si les paramètres par défaut lors de l’installation de l’application serveur MRMC
n’ont pas été modifié, elle faut laisser ces valeurs à leurs valeurs initiales.
Après l’installation de l’agent, la machine cliente est ajoutée à la liste des équipements
surveillés et un icône est ajouté dans la barre de tâche. Cet icône servira de point de contrôle
de l’application cliente.
86
Figure 5.2 : Agent MRMC installé
a) Création de ticket
Cette fonctionnalité est accessible en activant le menu textuel de l’agent MRMC en cliquant
avec le bouton droit de la souris et en suite choisir création ticket d’assistance. L’utilisateur de
la machine cliente doit renseigner plusieurs informations pour que le ticket soit validé, il doit
donner un sujet et description précise de l’incident, définir une priorité et choisir un agent
parmi ceux disponible. La date et le statut sont définis automatiquement et ne peuvent être
modifiés par l’utilisateur. Après la création du ticket l’agent est informé lors de son accès à la
console d’administration
87
Figure 5.4 : Création de ticket d’assistance
b) Chat textuel
Pour accéder à cette option, l’utilisateur doit choisir l’option « Discuter avec un technicien »,
en suite une fenêtre est afficher permettant le chat avec un technicien disponible.
88
5.2 Présentation de la Console d’administration
Dans cette partie, je vais présenter les fonctionnalités offertes par la console d’administration
qui constitue l’outil de contrôle mis à la disposition de tout administrateur ou technicien du
parc informatique.
5.2.1 Authentification
Dès l’exécution de la console d’administration, une fenêtre d’authentification est afficher,
après que l’utilisateur aie saisie correctement son « login » et son « mot de passe »,
l’application est afficher en mettant à la disposition de l’administrateur ou de l’agent les
fonctionnalités qui lui sont autorisées.
Il faut signaler que MRMC étant un module d’un ERP général, la partie de création des
utilisateurs et de l’affectation des droits et autorisation est accessible avec un autre module de
l’ERP nommé « MindWare Control Pannel » ou « MCP ».
89
5.2.2 Supervision du parc
La console d’administration dispose de plusieurs outils pour superviser le réseau parmi
lesquels on peut citer la liste des machines surveillées, la liste des alertes et erreur et en fin le
paramétrage de détection des incidents.
La première interface affichée après l’authentification de l’utilisateur est la liste des machines
surveillées, elle liste tous les équipements surveillés sur lesquels l’agent MRMC est installé.
Cette liste est affichée sous forme de tableau paginé avec plusieurs colonnes et une possibilité
d’impression et de rafraichissement.
La colonne statut permet de donner l’état actuel de la machine, si elle est connectée un cercle
vert est affiché sinon c’est un cercle gris qui est affiché. La même colonne offre d’autres
fonctionnalités qui seront détaillées plus tard.
Pour avoir plus de détail sur une machine précise, l’utilisateur doit cliquer sur la ligne
correspondante dans la liste des machines. Après avoir fait son choix, l’application affichera
un état complet de la machine avec des informations statiques et d’autres dynamiques.
L’onglet machine : affichant une description de la machine surveillé avec des informations
statiques sur le système d’exploitation installé, l’architecture du microprocesseur, le nom
complet, la langue, etc.
90
Figure 5.8 : description de la machine surveillée
L’onglet mémoire : affichant la taille de la mémoire vive et virtuelle installée avec des
indicateurs de chargement de la mémoire détectés lors de sa dernière supervision.
91
Figure 5.10 : Etat de la mémoire
L’onglet média : affichant la liste des disques durs de la machine surveillée avec des
indicateurs des capacités et de système de fichier des différentes partitions et leur niveau
d’espace libre et plein.
92
L’onglet interfaces réseau : affichant les différentes cartes réseau avec leur nom, adresse IP
et MAC et leur statut
L’onglet statut réseau : affichant les différentes connexions actives dans la machine
surveillée avec des indicateurs sur le protocole utilisé et les ports ouverts
93
Figure 5.13 : liste des connexions réseau
L’onglet processus : affichant la liste des processus en cours d’exécution sur la machine
surveillée avec des indicateurs sur la taille mémoire occupée, la charge du processeur, etc.
94
Figure 5.14 : liste des processus
L’onglet erreur : affichant les erreurs détectées sur la machine avec leur proportion comparé
au total des erreurs du parc
95
L’onglet des alertes : affichant la liste des alertes détectées dans la machine surveillées avec
des indicateurs de proportion comparé au reste du parc.
Prenons un exemple, si on veut détecter le niveau d’espace libre d’un disque des machines du
parc et affecter un seuil de 50% pour les alertes et 70% pour les erreurs, il suffit de créer le
paramétrage suivant :
96
Figure 5.17 : paramétrage des alertes et erreurs
Après la détection des alertes et erreurs, elles sont affichées en haut de la console
d’administration avec un indicateur du nombre de machines concernées
Si l’utilisateur veut avoir plus de détail sur les erreurs détectées sur le parc, il suffit qu’il clique
sur le lien « ERREUR » de la figure précédente. Le détail des erreurs comporte plusieurs
indicateurs de date de détection, la machine concernée, le type et le détail de l’erreur.
97
Figure 5.19 : Liste des erreurs détectées
Pour modifier le statut du ticket il suffit de cliquer sur sa ligne correspondante et l’interface
détail du ticket est affichée :
98
Figure 5.21 : détail du ticket
L’agent pour lequel a été affecté le ticket dispose de trois options pour assister l’utilisateur de
la machine. La première option est de démarrer une session de chat, la deuxième est de
démarrer une session d’audio conférence et la troisième est la prise de contrôle à distance de la
machine concernée. Ces trois options sont accessibles via l’interface « Liste des machines »
comme illustré dans la figure suivante :
99
Figure 5.23 : Tableau de bord
Le tableau de bord présente une multitude d’indicateurs et de graphes offrant une vue globale
sur l’état du parc informatique pendant une durée bien déterminée. Ces indicateurs concernent
touts les objets d’une machine que ça soit l’état de la mémoire, des médias, des erreurs, etc.
En effet, Plusieurs fonctionnalités manquent à MRMC que je pourrai grouper en deux parties,
fonctionnalités de l’agent et de la console d’administration MRMC.
100
a) Surveillance en temps réel
Jusqu’à présent l’agent MRMC ne permet que la supervision des machines en intervalle fixe,
et ne permet pas la l’auto détection d’incident. Ainsi MRMC peut facilement rater la détection
d’un problème qui s’est déclenché avant le lancement de sa routine de constitution d’état de la
machine (machineState).
Pour résoudre ce problème je pense qu’il faudrait ajouter une fonctionnalité de détection en
temps réel ce qui permettrai au administrateur de suivre le fonctionnement d’une machine
suspecte.
MRMC procède un installateur sur Microsoft Windows chose inexistante jusqu’à présent sur
Linux ce qui rond son utilisation assez difficile sur les systèmes du monde libre et demande
une intervention en Shell sur la machine sur laquelle on veut l’installer.
A fin de facilité l’utilisation de MRMC sur Linux il faudrait créer un script d’installation.
Avec l’agent MRMC, l’utilisateur de la machine surveillé peut créer facilement un ticket
d’assistance mais ne peut pas malheureusement modifier ou même simplement suivre son
statut.
L’agent MRMC est outil qui n’autorise la prise de contrôle de la machine supervisée que dans
un réseau local et ne peut être utilisé dans un réseau étendu comme Internet. Ce problème vient
tout simplement de la présence de passerelle entre les différents réseaux locaux et de
l’utilisation du de la technologie NAT (Network Address Translation) ou traduction d’adresse
réseau qui fait fait correspondre les adresses IP internes non-uniques et souvent non routables
d'un intranet à un ensemble d'adresses externes uniques et routables. Ce mécanisme permet
notamment de faire correspondre une seule adresse externe publique visible sur Internet à
toutes les adresses d'un réseau privé, et pallie ainsi l'épuisement des adresses IPv4. 19
19
http://fr.wikipedia.org/wiki/Network_address_translation
101
Pour résoudre ce problème il faudrait utiliser une solution pour outrepasser les passerelles
connue sous le nom de « NAT Traversal ». Plusieurs solutions existent mais la plus adaptée est
« ICE4J ».
MRMC ne peut gérer que les machine enregistrées sur sa base et dans le cas ou une nouvelle
machine est intégrée dans le réseau, MRMC n’a aucun moyen de la détecter et de l’ajouter
dans sa base de données.
Pour palier à ce problème, il faudrait ajouter une fonctionnalité de détection automatique des
nouvelles machine en réalisant des recherches dans le parc en se basant sur les plages
d’adresse IP existantes dans MRMC.
b) Installation à distance
Pour qu’une machine soit surveillée par MRMC il faut y installer son agent. Malheureusement
jusqu’à présent l’installation n’est possible qu’en local c'est-à-dire que le technicien doit se
déplacer vers la machine en question chose assez difficile dans les grands parcs informatiques.
La surveillance d’une machine dans MRMC est basée exclusivement sur l’installation de son
agent. Or un certain nombre d’équipement réseau n’autorise pas l’installation d’un tel
programme mais offre en contre partie d’autre solution comme l’utilisation de technologie
comme SNMP ou protocole simple de gestion de réseau qui est un protocole de
communication qui permet aux administrateurs réseau de gérer les équipements du réseau, de
superviser et de diagnostiquer des problèmes réseaux et matériels à distance. 20
L’utilisation du protocole SNMP élargira les gammes d’équipement réseau pouvant être
supervisé par MRMC comme les routeurs, imprimantes, etc.
20
http://fr.wikipedia.org/wiki/Simple_Network_Management_Protocol
102
5.4 Conclusion
MindWare a investi beaucoup de moyens financiers et humains pour le développement de
MRMC, elle a finalisé un nombre important de fonctionnalité mais d’autres sont encore en
phase de test ou même de développement. Dans ce chapitre j’ai essayé de présenter les
fonctionnalités les plus importantes de MRMC et j’ai cité quelque une que je trouve
manquantes.
103
104
Chapitre 6
Conclusion générale
MRMC est un projet très important et très large dont le développement a été lancé par
MindWare depuis l’année 2011 et qui est toujours en continuelle optimisation et de
maintenance. Ce projet répond à une nécessité que tout administrateur réseau veut satisfaire
qui est la gestion de parc informatique de façon professionnelle, structurée et extensible.
La réalisation de MRMC est passée par plusieurs phases débutant par une étude de marché et
concurrentielle des différentes solutions du marché. En suite, une étude fonctionnelle a été
menée pour fixer les différentes tâches que MRMC doit accomplir après laquelle une
modélisation UML s’est achevée par la génér ation du diagramme de classes.
105
Parmi les critiques les plus importantes qui ont été exprimées celle de l’incapacité de MRMC
de gérer des machines clientes dans un réseau étendu revenait tout le temps. En effet, cette
lacune prive MindWare d’un nombre important de grand client dont le parc informatique
dépasse les centaines d’équipement et dont le réseau est découpé en plusieurs sites
géographiques.
MRMC a constitué pour moi le premier projet réel auquel je contribue de façon
professionnelle ce qui m’a permis de concevoir une idée claire sur les procédures de
réalisation des logiciels ainsi que la complexité du travail en groupe. Aussi, ce stage m’a offert
la chance de nouer des relations et contacts avec des personnes de qualité que ça soit au niveau
professionnel que social.
Les difficultés que j’ai rencontrées résident essentiellement dans l’ampleur du projet et la
nouveauté des technologies avec lesquelles j’ai travaillé. Aussi, l’importance et des fois la
complexité des tâches dont j’étais responsable ainsi que le respect des dates de livraison ont
constitué de grands défis auxquels j’ai été confronté tout au long de ma période de stage.
Finalement, j’espère que ce rapport sera utile pour toute autre personne qui va le découvrir.
106
Références
[1] http://www.francetop.net/dictionnaire/synonymes/definition/Monitoring
[2] www.mindware.ma
[4] http://dom4j.org/download.html
[6] http://www.experts-exchange.com/Programming/Languages/Java/Q20649856.html
[7] http://www.java2s.com/Code/Java/Collections-Data-Structure/Iterate.htm
[8] http://jpmapper.sourceforge.net/
[9] http://www.jqplot.com/tests/
[10] http://www.webapart.fr/blog/tutoriauxjqplot
[11] http://struts.apache.org/download.cgistruts218
107
[12] http://kmdkaci.developpez.com/tutoriels/java/bien-debuter-avec- struts2/
[13] http://www.scribd.com/doc/56634436/49/Definition
[14] http://www.journaldunet.com/encyclopedie/definition/158/34/20/java.shtml
[15] http://www.siteduzero.com
[16] http://www.developpez.net/forums/d259570/java/generaljava/apis/java-util/modifier-
fichier-properties/
[17] http://www.zdnet.fr/telecharger/logiciel/enterprise-architect-11008543s.htm
[18] http://www.dicodunet.com/defieb/mysql.htm
[19] http://cougart.wordpress.com/2009/01/26/pencil-logiciel-gratuit-danimation-2d
[20] http://struts.apache.org/download.cgistruts218
108
Annexes
Struts2
Installation et Configuration
Pour utiliser Struts2 il faut le télécharger via http://struts.apache.org/download.cgistruts218 et
décompresser le contenu du répertoire « lib » dans un répertoire différent.
109
Figure 7.1: Configuration de Struts 2
110
Les éléments les plus importants dans le fichier « web.xml » sont « filtre » et « mapping »
utilisés pour la configuration du « FilterDispatcher » qui est la servlet de base du Framework
Struts 2, il permet de traiter toutes les requêtes en entrée, il permet l’accès aux éléments de
base. (ConfigurationManager,ActionMapper, ObjectFactory ) du Framework pour traiter les
requêtes.
Les actions
La seule contrainte pour les actions, avec Struts 2, est le fait qu’elles doivent implémenter au
moins une méthode du type « no-argument » qui doit retourner un « String » ou un objet
« Result », sinon on peut utiliser la méthode « execute() ».
Avec Struts 2, il n’est pas obligatoire d’hériter d’une action générique, mais les actions
peuvent hériter de la classe générique « ActionSupport » qui implémente la méthode
« execute() ».
111
112
Enfin on crée la page Jsp :
113
Le schéma suivant résume le concept de Struts2 :
JPMapper
Installation et Configuration
Pour configurer « JPMapper » il suffit d’ajouter les deux fichiers « jar » relatifs à
« JPMapper » dans le répertoire « lib » :
114
Figure 7.3: Configuration de JPMapper
Une fois les fichiers « .jar » qui correspondent à « JPMapper » sont mis dans le dossier
« lib », on crée dans le contrôleur un objet de type JPMapper et on affecte le chemin du
fichier « Dbinformation.properties » à ce dernier.
115
JPMapperFacade jpmapper=null;
jpmapper =
JPMapperFacade.getInstance(”C://FichierProperties/dbInformation.properties”);
Remarque:
Dom4j
Installation et Configuration
Télécharger la dernière version à l’url : http://dom4j.org/download.html.
La méthode la plus simple pour utiliser rapidement dom4j est de copier le fichier
« dom4jfull.jar » dans le répertoire « lib ».
116
MySQL
MySQL est un système de gestion de bases de données relationnelles (SGBDR). Il est
distribué sous une double licence GPL et propriétaire. Il fait partie des logiciels de gestion
de base de données les plus utilisés au monde1, autant par le grand public (applications web
principalement) que par des professionnels, en concurrence avec
Oracle, Informix et Microsoft SQL Server.
Son nom vient du prénom de la fille du cocréateur Michael Widenius, My. SQL fait allusion
au Structured Query Language, le langage de requête utilisé.
Enterprise Architect
Enterprise Architect est un outil visuel de génie logiciel assisté par ordinateur (CASE)
s’appuyant sur le langage de modélisation UML (Unified Modeling Language). Il comporte
toutes les fonctions nécessaires à la conception et au développement de systèmes logiciels
orientés objets ainsi qu’à leur documentation et gestion. Enterprise Architect combine la
puissance des spécifications de la version 2.0 d’UML avec une interface intuitive pour créer
des modélisations complètes et avancées.
Pencil
Pencil est un logiciel de graphisme et d’animation 2D (en anglais) distribué sous licence GPL.
Il permet l’utilisation de calques (bitmap ou vectoriel) et est doté de nombreux outils de
création graphique de base tel que le crayon, le pinceau, la gomme ...
117
Résumé
Tout système de surveillance de parc informatique doit être capable de superviser des
centaines de serveurs et des milliers de services. « MindWare Remote Monitoring and
Control » ou « MRMC » a été crée pour cette finalité par la société MindWare qui est une
société Marocaine d’édition logiciel et d’ingénierie réseau. MindWare a lancé le
développement de cette application depuis l’année 2011 en réponse à des besoins exprimés
par ses clients et pour l’intégrer dans son PGI.
La Création de MRMC a débuté par une étude préalable centrée sur une analyse des
besoins et s’est terminer par l’étape de programmation et test en passant par une étude de
marché, une analyse conceptuelle basée sur la méthodologie UML, une étude fonctionnelle où
toutes les fonctionnalités à développer ont été cataloguées et distribuées sur les membres de
l’équipe de développement.
Dès le départ et durant toutes ces étapes, j’ai été intégré à l’équipe de projet de MRMC
avec qui j’ai contribué à la conception et au développement des différentes fonctionnalités de
la solution. A la fin de ces phases, le résultat final est une application web développée avec
différentes technologies basées sur la plateforme JEE et fortement Ajaxisée.
Le présent rapport est une synthèse de ce travail et présente ma modeste contribution à
fin d’accomplir la mission qui m’a été confiée.
Abstract
All system monitoring enterprise machines must be able to supervise hundreds of
servers and thousands of services."MindWare Remote Monitoring and Control" or "MRMC"
was created for this purpose by Mindware Company; Mindware is a Moroccan company
specialized in software and network engineering. Mindware launched the development of this
application since 2011 responding the needs of the customer, and to be included in ERP.
The development of MRMC was started by a preliminary study focused on needs
analysis and finished by programming and test; this was by a market research, analysis and
design using UML, a functional study where all features to develop were cataloged and
distributed over team members.
From the starting and during all steps, i was integrated to the development team, i
contributed to the design and the development of the application's features. At the end the
resulted application is a web based application developed using JEE platform with Ajax.
This report is a synthesis of this work and presents my modest contribution to this in
order to fulfill the mission entrusted to me.