Tải bản đầy đủ (.pdf) (64 trang)

Développement d’un moteur de planification dans lenvironnement J2EE weblogic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.77 MB, 64 trang )

 
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 


×