Matthieu PASCAUD
IFI Solution J.S.C
P2503, building 24T‐1
Hoang Dao Thuy
Hanoi, Vietnam
Master Informatique Option Intelligence Artificielle et Multimédia ‐ IFI ‐ Vietnam
Master Ingénierie Informatique – Université de La Rochelle – France
Stage effectué du 15 février 2009 au 15 juillet 2009
Maître de stage : Monsieur DINH Van Hoan
Matthieu Pascaud, ULR‐IFI, IFI Solution
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 2
Matthieu Pascaud, ULR‐IFI, IFI Solution
Table des matières
1. Remerciements ..................................................... 7
2. Résumé ................................................................. 8
3. Abstract ................................................................ 9
4. Introduction ........................................................ 10
5. Présentation du cadre du stage ........................... 11
5.1. Présentation du Vietnam ........................................................................................... 11
5.2. Présentation de l’entreprise ...................................................................................... 12
5.3. Contexte de travail ..................................................................................................... 15
5.3.1
L’équipe .............................................................................................................. 15
5.3.2
L’environnement de travail ................................................................................ 15
5.3.3
La langue ............................................................................................................. 15
6. Présentation du projet ........................................ 16
6.1. Cahier des charges ..................................................................................................... 16
6.2. L’architecture de l’application ................................................................................... 17
6.3. Le déroulement du stage ........................................................................................... 18
6.4. Les liens entre la base de données et les fichiers clients .......................................... 19
6.5. La base de données .................................................................................................... 22
6.6. Les besoins de l’application ....................................................................................... 23
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 3
Matthieu Pascaud, ULR‐IFI, IFI Solution
6.7. Les solutions pour le projet ....................................................................................... 23
6.7.1
Les ordonnanceurs en Java................................................................................. 23
6.7.1.1
Qu’est qu’un ordonnanceur ? ..................................................................... 23
6.7.1.2
Planification de tâches avec le JDK ( API Timer) ......................................... 24
6.7.1.3
Quartz .......................................................................................................... 25
6.7.1.4
Au final, quelle solution choisir ? ................................................................ 27
6.7.1.5
Un exemple de planification avec Quartz ................................................... 28
6.7.2
L’accès à la base de données avec hibernate ..................................................... 30
6.7.2.1
Pourquoi utiliser hibernate ? ...................................................................... 31
6.7.2.2
Présentation ................................................................................................ 31
6.7.2.3
Utilisation .................................................................................................... 32
7. Le moteur PortailTV ............................................ 37
7.1. Les composants du moteur........................................................................................ 37
7.2. Les diagrammes de classes ........................................................................................ 39
7.2.1
Connexion ........................................................................................................... 39
7.2.2
Accès à la base de données (util) ....................................................................... 40
7.2.3
Le moteur ........................................................................................................... 41
7.2.4
Les servlets ......................................................................................................... 42
7.2.5
Les classes de mapping ....................................................................................... 42
7.3. La connexion au serveur FTP ..................................................................................... 43
7.4. Manipulation des fichiers CSV ................................................................................... 44
7.5. Le fonctionnement du moteur de PortailTV .............................................................. 44
7.6. Exécution des tâches sur le serveur BEA Weblogic ................................................... 45
7.7. Les fichiers de configuration ...................................................................................... 48
7.8. Les difficultés rencontrées ......................................................................................... 49
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 4
Matthieu Pascaud, ULR‐IFI, IFI Solution
8. Conclusion .......................................................... 50
9. Bibliographie ...................................................... 51
10. Annexes .......................................................... 52
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 5
Matthieu Pascaud, ULR‐IFI, IFI Solution
Table des figures
Figure 1 : compétences au sein d’IFI Solution .......................................................................... 13
Figure 2 : les secteurs dans lesquelles IFI Solution travaille ..................................................... 14
Figure 3 : architecture de l’application Portail TV .................................................................... 17
Figure 4 : description des fichiers profile clients ...................................................................... 19
Figure 5 : exemple de fichier profile client ............................................................................... 19
Figure 6 : description des fichiers « détails clients » ................................................................ 20
Figure 7 : exemple de fichier « détails clients » ....................................................................... 20
Figure 8 : description des fichiers « détails consommation » .................................................. 21
Figure 9 : exemple de fichier « détails consommations » ........................................................ 21
Figure 10 : description des fichiers « prévisions météo » ........................................................ 21
Figure 11 : exemple de fichier « prévision météo » ................................................................ 22
Figure 12 : description de fichier « météo » ............................................................................ 22
Figure 13 : exemple de fichier « météo » ................................................................................. 22
Figure 14 : Job « Hello World » ................................................................................................ 30
Figure 15 : architecture hibernate ............................................................................................ 32
Figure 16 : diagramme de classes de la connexion .................................................................. 39
Figure 17 : diagramme de classe pour l’accès à la base de données ....................................... 40
Figure 18 : diagramme de classes du moteur .......................................................................... 41
Figure 19 : diagramme de classes "servlet" ............................................................................. 42
Figure 20 : classe SuiviConsoGaz .............................................................................................. 43
Figure 21 : classes de mapping de la base de données ............................................................ 43
Figure 22 : exemple de fichier CSV ........................................................................................... 44
Figure 23 : administration pour la planification des tâches ..................................................... 48
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 6
Matthieu Pascaud, ULR‐IFI, IFI Solution
1.
Remerciements
Je tiens tout d’abord à remercier Monsieur Dinh Van Hoan, mon responsable de stage au
sein de la société IFI Solution. Il s’est montré très disponible durant cinq mois. J’ai pu, grâce à
lui, progresser, le questionner lorsque j’avais des difficultés. Mes remerciements vont
également aux employés d’IFI Solution qui m’ont apporté leur aide semaine après semaine
durant toute la durée de mon stage et plus particulièrement Mademoiselle Tran Thi Ngoc
Tram et Monsieur Quan.
Je remercie également Monsieur Alain BOUCHER, Directeur des études de l’IFI et Monsieur
Ho Tuong Vinh qui m’ont permis d’effectuer ce stage, sans oublier l’équipe enseignante pour
leur aide.
Enfin, mes remerciements vont à Monsieur Rémy Mullot à qui je dois de bénéficier de cette
expérience au Vietnam.
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 7
Matthieu Pascaud, ULR‐IFI, IFI Solution
2.
Résumé
Ce mémoire est l’aboutissement de cinq mois de stage au sein de la société IFI Solution. Il
entre dans le cadre de ma formation en Master, au sein de l’Institut de la Francophonie pour
l’Informatique, en partenariat avec l’université de La Rochelle.
Le projet sur lequel j’ai travaillé provient d’une demande effectuée par Edelia (filiale du
groupe EDF). Nommé Portail TV, il a pour but de permettre aux clients EDF de visualiser leur
consommation d’énergie (électricité, gaz, eau) via un écran de télévision ou internet. Cette
application a également pour objectif de diminuer les consommations d’énergie. En effet, le
client pourra recevoir des alertes en cas de dépassement d’un niveau de consommation fixé.
On distinguera plusieurs parties dans cette application. En effet, il faudra dans un premier
temps récupérer toutes les informations concernant les clients, traiter ces données et les
insérer dans la base centrale de données. L’objectif sera ensuite de permettre au client de
visualiser sa consommation, sa prévision et toutes les données le concernant.
Mots‐clés : Développement, J2EE, Java, Hibernate, JSP, Servlets.
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 8
Matthieu Pascaud, ULR‐IFI, IFI Solution
3.
Abstract
This memory is the result of five months spent training in the company IFI Solution. This
course falls within the framework of my Master at the French Speaking Institute for
computer sciences in partnership with the University of La Rochelle.
The project I worked on from a request made by Edelia (a subsidiary of EDF). This project is
called TV Portal. The aim of this project is to enable customers to view their EDF Energy
consumption (electricity, gas, water) via a television screen or internet. This application also
seeks to reduce energy consumption. Indeed, the client can receive alerts in case of
exceeding a fixed level of consumption.
There are several parties in this application. Indeed, it must first retrieve all information
about customers, and process the data and insert them into the central database. It will then
allow the customer to view their consumption, forecast and all the data.
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 9
Matthieu Pascaud, ULR‐IFI, IFI Solution
4.
Introduction
Ce stage de fin d’étude intervient dans le cadre de mon master 2 effectué au sein de
l’Institut de la Francophonie pour l’Informatique à Hanoi, en partenariat avec l’université de
La Rochelle. Il s’est déroulé durant cinq mois dans la société IFI Solution basée à Hanoi,
capitale du Vietnam.
Le projet réalisé, Portail TV, est une initiative d’Edelia, filiale d’EDF. A l’heure actuelle, la
consommation d’énergie est un sujet qui revient quotidiennement ; l’objectif de Portail TV
est de permettre au client de visualiser sa consommation, ou plutôt de la surveiller. En effet,
cette démarche aurait pour but de réduire la consommation des utilisateurs.
Le projet réalisé conjointement avec Thibaud FAURE devait utiliser les données des clients et
ensuite leur permettre de visualiser ses données via un écran de télévision ou internet. A la
demande du client, les contraintes imposées était d’utiliser l’architecture SOA (service‐
oriented architecture) et de le déployer sur un serveur Weblogic 8.1.
On distinguera deux parties dans le projet PortailTV :
¾ La partie récupération des données clients, traitement des données, mise à
jour de la base centrale de données,
¾ La partie client qui va lui permettre de visualiser ses données de
consommation.
Je ne parlerai principalement que de la partie récupération des données, traitements des
données, mise à jour de la base car la partie client a été réalisée par Thibaud FAURE.
Une des principales difficultés lors de ce stage était de trouver quelles technologies et
quelles solutions utiliser pour finaliser ce projet.
Je présenterai donc dans un premier temps de quelle manière j’ai abordé le stage et quelles
solutions j’ai utilisées.
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 10
Matthieu Pascaud, ULR‐IFI, IFI Solution
5.
Présentation du cadre du stage
5.1.
Présentation du Vietnam
Une des particularités de ce stage réside dans le fait qu’il s’est déroulé au Vietnam. Il me
paraît important de parler de ce pays, dont les coutumes de vie, culture d’entreprise et vie
culturelles sont différentes de ce que je connais en France.
C’est donc une expérience extrêmement enrichissante autant sur le plan de l’expérience
professionnelle que du point de vue sociologique.
Voici une présentation succincte du Vietnam :
Le Vietnam et sa République Socialiste est l'un des pays de l'Asie du Sud‐Est qui connait une
des plus importantes croissances économiques avec plus de 8% en 2007 ; une enquête socio‐
économique en Asie‐Pacifique rapporte que le Vietnam poursuivra son développement sur
le même rythme dans les prochaines années.
Avec un avenir prometteur et son entrée à l'Organisation Mondiale du Commerce (OMC),
l'investissement étranger au Vietnam augmente fortement. L'investissement direct étranger
en 2006 s'était élevé à plus de 10,2 milliards de dollars.
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 11
Matthieu Pascaud, ULR‐IFI, IFI Solution
5.2.
Présentation de l’entreprise
Fondée début 2003, la société IFI Solution, située à Hanoi au Vietnam, est spécialisée dans le
développement informatique en offshore. Ses clients sont donc principalement des
entreprises européennes souhaitant externaliser un projet à l’étranger. Elle a été créée par
des anciens étudiants de l’IFI et a donc maintenant plus de 6 ans d’expérience dans les
services de sous‐traitance de logiciel.
La société propose un éventail de services d’offshore programming qui sont divisés en trois
catégories : le développement logiciel, la certification/vérification, et le développement
Web.
Elle est bien sûr en mesure de développer tous ses projets sur plates‐formes Windows,
Linux/Unix et Mac OS. Grâce à l’accomplissement de travaux dans des domaines très variés,
IFI Solution a su acquérir de l’expérience et de la notoriété. Que ce soit dans le domaine
médical, de l’aviation, des télé‐services ou des grands groupes industriels, sa polyvalence et
ses compétences lui permettent de répondre à de nombreuses offres. Elle fait ainsi partie
des dix meilleures entreprises du Vietnam dans le domaine de la sous‐traitance de logiciels
pour des entreprises européennes. Elle est également numéro un dans la sous‐traitance de
logiciels embarqués pour le marché français.
Les différentes compétences que possèdent les employés d’IFI Solution sont répertoriées
dans le tableau ci‐dessous :
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 12
Matthieu Pascaud, ULR‐IFI, IFI Solution
Figure 1 : compétences au sein d’IFI Solution
A ce jour, l’objectif d’IFI Solution est de devenir un leader de l’offshore informatique et de
conquérir de nouveaux clients issus des petites et moyennes entreprises en Europe et aux
États‐Unis.
Les ingénieurs d’IFI Solution sont diplômés des prestigieuses universités vietnamiennes et
étrangères, dont fait partie l’IFI. Ils ont pour la plupart un Master Informatique, et ont eu
une ou plusieurs expériences professionnelles à l’étranger. De plus, au sein de l’entreprise,
tous les employés sont conduits à parler en Anglais, voire en Français pour ceux d’entre eux
l’ayant étudié au Vietnam ou pratiqué durant leur stage de fin d’études en France (de deux
mois à quatre ans).
IFI Solution et l’IFI ont ainsi une coopération active, démontrée par la cérémonie des « Top
IFI Awards » qui a lieu tous les ans et durant laquelle des étudiants de l’IFI reçoivent des prix
de la part d’IFI Solution, prix décernés aux étudiants du Master de l'IFI qui ont obtenu les
meilleurs résultats dans les modules jugés utiles pour leur réussite au sein d'une entreprise.
Ces « Awards » sont donc décernés pour les meilleurs résultats dans les cours "Génie logiciel
avancé" et "Français et communication" ainsi qu’à l’étudiant ayant eu la meilleure
progression dans le cours "Français et communication".
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 13
Matthieu Pascaud, ULR‐IFI, IFI Solution
IFI Solution a depuis 2003 acquis des connaissances dans les domaines et secteurs
répertoriés dans le tableau qui suit : [8]
Figure 2 : les secteurs dans lesquelles IFI Solution travaille
De plus, IFI Solution a obtenu la normalisation ISO 9001 : 2000 , apportant une vision
sérieuse de leur entreprise vis‐à‐vis de leurs clients actuels ou clients potentiels. En effet,
cette norme spécifie les exigences relatives au système de management de la qualité
lorsqu'un organisme :
1. doit démontrer son aptitude à fournir régulièrement un produit conforme aux exigences
des clients et aux exigences réglementaires applicables,
2. vise à accroître la satisfaction de ses clients par l'application efficace du système, y
compris les processus pour l'amélioration continue du système et l'assurance de la
conformité aux exigences des clients et aux exigences réglementaires applicables.
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 14
Matthieu Pascaud, ULR‐IFI, IFI Solution
5.3.
Contexte de travail
5.3.1
L’équipe
Mon stage s’est déroulé sous la responsabilité de Mr DINH Van Hoan, mon tuteur de stage
au sein d’IFI Solution. Dans ce cadre, il simulait les attentes du client, de sorte que, chaque
semaine, un rapport ainsi qu’une discussion à propos de l’avancement du projet soient
effectués.
Pour toutes questions techniques, je pouvais demander aux chefs de projet Melle Tram et
Mr Quan.
5.3.2
L’environnement de travail
Le développement s’est déroulé sous le système d’exploitation XP Professional.
L’environnement de développement était composé d’Eclipse 3.2 ainsi que de Weblogic 8.1.
Ce dernier nous permettait de tester l’application en local.
5.3.3
La langue
Au sein de la société IFI Solution, la communication s’effectue le plus souvent en
vietnamien, mais également en anglais ou en français, ce qui m’a conduit à utiliser les deux
et ainsi de progresser en anglais.
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 15
Matthieu Pascaud, ULR‐IFI, IFI Solution
6.
Présentation du projet
6.1.
Cahier des charges
Portail TV est une application qui a pour but d’afficher les informations de consommation
d’énergie via l’écran de la télévision.
Pour une normalisation au standard industriel, le client d’IFI Solution va immigrer cette
application en nouvelle plate‐forme. Il va convertir aussi des données en forme accessible à
travers l’Internet.
Dans le cadre du stage chez IFI Solution, le stagiaire doit :
* faire de la modélisation du moteur à planifier dans l’environnement de J2EE WebLogic
8.1 pour le traitement des données dans une base de données centrale
* participer à l’implémentation du système,
* se familiariser avec les processus du développement de logiciel qui sont appliqués au sein
IFI Solution.
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 16
Matthieu Pascaud, ULR‐IFI, IFI Solution
6.2.
L’architecture de l’application
Station météo
Fichiers
CSV
Client Edelia
Fichiers
CSV
Base de
données
MOTEUR
(application)
Figure 3 : architecture de
l’application Portail TV
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 17
Matthieu Pascaud, ULR‐IFI, IFI Solution
Le schéma de l’application désirée se compose comme suit. Le client va envoyer ses
données de consommation par l’intermédiaire d’un modem ; celles‐ci seront envoyées de
manière journalière au serveur FTP. Les données météo seront également envoyées de la
même manière. On compte en général une station météo par ville.
L’application que l’on m’a demandé de réaliser est le moteur. Celui‐ci va permettre de
récupérer les données sur le serveur FTP, traiter ces données afin de les rendre compatibles
avec la base de données pour la mettre à jour. Le client doit pouvoir visualiser sa
consommation dans un délai de 24 heures après l’envoi de ses données sur le serveur FTP.
Les seules informations que je possédais pour finaliser le projet étaient les fichiers de
consommations issues des clients enrichies d’une brève description. Voir annexe 1.
6.3.
Le déroulement du stage
Plusieurs étapes sont à distinguer lors du déroulement du stage. Premièrement, j’ai travaillé
sur un projet destiné au client Edelia. J’ai pu me familiariser avec la technologie J2EE ainsi
que les servlets dans un environnement de développement Eclipse. Cette démarche, qui
s’est déroulée sur plusieurs semaines, m’a permis de faire connaissance avec l’équipe du
projet, d’appréhender la base de données utilisée pour mon sujet de stage. Une fois cette
étape dépassée, il m’a fallu faire une présentation de la base de données et des différentes
relations entre les tables afin de savoir si je les avais bien assimilées.
Une grosse partie du travail fut ensuite d’étudier la faisabilité, de chercher les solutions
techniques adéquates pour enfin définir les spécifications du projet.
Voici le planning initialement prévu pour le déroulement du stage :
Date de début
Date de fin
15/02/2009
26/03/2009
14/04/2009
23/04/2009
23/06/2009
25/03/2009
13/04/2009
22/04/2009
22/06/2009
01/07/2009
02/07/2009
15/07/2009
Découverte de l’entreprise, des projets déjà
réalisés. Réalisation d’u planning. Travail sur
un projet Edelia (HCS).
Appréhension de la base de données.
Analyse des besoins et étude de la faisabilité
Spécification - Conception
Codage-implémentation
Tests
Déploiement sous serveur Weblogic 8.1,
livraison
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 18
Matthieu Pascaud, ULR‐IFI, IFI Solution
Le codage et le déploiement sous Weblogic 8.1 se sont avérés plus longs que prévu en
raison d’un mauvais choix de l’environnement de développement : utilisation de Java 1.5 au
lieu de Java 1.4.2.
6.4.
Les liens entre la base de données et les fichiers
clients
Voici les fichiers clients présents sur le serveur FTP qu’il faut utiliser afin de mettre à jour la
base de données :
Figure 4 : description des fichiers profile clients
Figure 5 : exemple de fichier profile client
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 19
Matthieu Pascaud, ULR‐IFI, IFI Solution
Figure 6 : description des fichiers « détails clients »
Figure 7 : exemple de fichier « détails clients »
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 20
Matthieu Pascaud, ULR‐IFI, IFI Solution
Figure 8 : description des fichiers « détails consommation »
Figure 9 : exemple de fichier « détails consommations »
Figure 10 : description des fichiers « prévisions météo »
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 21
Matthieu Pascaud, ULR‐IFI, IFI Solution
Figure 11 : exemple de fichier « prévision météo »
Figure 12 : description de fichier « météo »
Figure 13 : exemple de fichier « météo »
Comme on peut le constater les fichiers sont de type CSV, c'est‐à‐dire que chaque champ est
séparé par une virgule. Ces fichiers seront donc faciles à traiter.
6.5.
La base de données
Elle comporte un grand nombre de classes mais seules certaines nous seront utiles. Un
problème intervient assez rapidement : les fichiers d’entrées ne correspondent pas
exactement à la base de données. En effet, les fichiers exemples ne proviennent pas de
France et ne sont pas similaires aux champs de la base. Avec l’aide des chefs de projets qui
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 22
Matthieu Pascaud, ULR‐IFI, IFI Solution
travaillent sur cette base, il a finalement été possible de lier les champs des fichiers CSV avec
les champs de la base de données.
6.6.
Les besoins de l’application
Cette application est destinée au client Edelia (filiale d’EDF). Il faut donc prévoir un grand
nombre d’utilisateurs. Les fichiers présents sur le serveur FTP sont donc volumineux et
comportent un grand nombre d’enregistrements. Il y aura donc une contrainte de
performance qui va apparaître. En effet, un client Edelia doit pouvoir consulter sa
consommation dans les 24 heures suivant l’envoi de ses données de consommation.
Pour éviter de surcharger le réseau et utiliser de la bande passante inutilement, on va
planifier les tâches de téléchargement de fichiers et de mise à jour de base de données. D’où
le besoin de moteur de planification. Ceci permet également d’effectuer des tâches sans
intervention humaines.
Un autre point important est la réutilisabilité de l’application. En effet, les fichiers en entrée
peuvent être changés ainsi que la base de données. Le code doit donc être réutilisable
facilement. C’est pour cela qu’il faut choisir les solutions adéquates.
6.7.
Les solutions pour le projet
Une des fonctionnalités de l’application était la planification de tâches. Plusieurs solutions se
sont donc présentées à moi. Une précision qu’il est utile de rajouter est que la méthode
choisie devait être gratuite. J’ai donc effectué une longue recherche sur les solutions les plus
adéquates afin de planifier des tâches en Java, l’objectif final étant de choisir la mieux
adaptée à l’application.
6.7.1
Les ordonnanceurs en Java
6.7.1.1 Qu’est qu’un ordonnanceur ?
Beaucoup d'applications d'entreprise nécessitent des traitements souvent longs et coûteux
en ressources système. Lorsque ces traitements ne nécessitent pas d'interaction avec
l'utilisateur, leur déclenchement peut être différé sur une période de charge faible, afin de
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 23
Matthieu Pascaud, ULR‐IFI, IFI Solution
ne pas détériorer les temps de réponse. Depuis la version 1.4, java permet d'effectuer des
planifications de tâche simples. Cependant les applications d'entreprise exigent des
possibilités de reprise après panne, haute disponibilité, etc… C'est ce que propose Quartz,
une librairie open‐source. [1]
Voici la liste des ordonnanceurs candidats pour l’utilisation de ceux‐ci au sein du projet :
•
Quartz : />
•
Timer Java API : java.util.Timer, java.util.TimerTask
Nous allons maintenant commenter les différents avantages et inconvénients de chaque
méthode.
6.7.1.2 Planification de tâches avec le JDK ( API Timer)
La version 1.3, l’API standard de Java propose un système de planification de tâches basique
au travers des classes java.util.Timer et java.util.TimerTask. La classe Timer représente le
scheduler et TimerTask, une tâche à exécuter. On définit une tâche avec une classe qui
dérive de TimerTask et implémente la méthode run(). Une instance de la tâche est ensuite
passée au Timer en spécifiant des paramètres de planification. Ce dernier exécute ensuite la
méthode run() à la date programmée.[2]
Le Timer, comme tous les scheduler ne peut pas empêcher l’apparition des retards. Mais
généralement les schedulers proposent des solutions pour les minimiser ou les contourner
en amortissant le retard d’une tâche sur les suivantes, quitte à ne pas respecter un intervalle
défini. De plus la probabilité et le temps moyen des retards augmentent avec le nombre de
tâches, surtout si plusieurs sont programmées en même temps. Et dans ce cas, le Timer n’est
pas adapté. La raison réside dans son implémentation. Il dispose d’une file d’attente de
tâches ordonnées par date croissante de prochain démarrage et d’un thread de traitement.
L’algorithme implémenté est simple : le thread se met en attente de la première tâche de la
file. Lorsque la date d’exécution est atteinte, le thread appelle la méthode run(), met à jour
la prochaine date d’exécution de la tâche et se remet en attente. La présence d’un seul
thread de traitement interdit d’optimiser les exécutions concurrentes de tâches.
Malheureusement ce mode d’utilisation est fréquent sur les applications d’entreprise,
généralement distribuées. Dans une application distribuée plusieurs tâches peuvent
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 24
Matthieu Pascaud, ULR‐IFI, IFI Solution
facilement s’exécuter en parallèle pour optimiser l’utilisation des ressources. Une tâche peut
effectuer un calcul tandis qu’une seconde effectue des requêtes sur une base de données, et
une troisième effectue un transfert de fichier… Le Timer n’est donc pas optimal dans ce
genre d’application, mais tel n’est pas son but, d’autant qu’il existe une spécification pour un
Timer « j2ee » géré par un conteneur de serveur d’application. D’autres points font du Timer
un composant pour des applications standards et non « entreprise » :
•
pas de planification sophistiquée,
•
pas de persistance des tâches,
•
pas de système de gestion des tâches évolué.
Cependant les cas d’utilisation du Timer sont multiples et ce dernier reste intéressant pour
sa grande simplicité et son intégration dans l’API standard. Cet ordonnanceur a l’avantage
d’être simple et peut fonctionner sur toutes les plateformes car inclus dans l’API Java depuis
la version 1.3.
6.7.1.3 Quartz
Quartz est une librairie java offrant des fonctions de planification de tâches. Elle est
développée par le projet open source OpenSymphony qui est responsable d’une dizaine
d’autres sous‐projets tel que WebWork. Ces sous‐projets sont principalement dans le
domaine du développement de composants J2EE en recherchant avant tout la simplicité
d’intégration et d’utilisation.
Il peut être autant utilisé sur des projets de grande envergure que sur de petits projets et
permet la planification simple et complexe de tâches. A titre d’exemple, vous pouvez définir
qu’une tâche soit exécutée tous les jours à telle heure, toutes les 24 heures, ou bien encore
tous les lundis et mercredis de chaque semaine. Dès lors, Quartz permet un large éventail
de possibilités au niveau des planifications et peut répondre ainsi aux besoins de chacun, au
cas par cas.
Master Informatique option I.A. & Multimédia, Février – Juillet 2009
Page 25