Académique Documents
Professionnel Documents
Culture Documents
Rapport GesProréseaux de Communication
Rapport GesProréseaux de Communication
Ralis par :
Issam ELASLAOUI.
Hamid MAZOUAR.
Sous lencadrement de :
M. Amine AMAR (CACIOPEE).
M. Mohammed KETTANI (ENSIAS).
Ddicace
A ma chre mre,
A mon cher pre,
A mon cher petit frre,
A tout ceux qui mont aid le long de mon parcours dtudiant,
A tout mes amis,
A tout mes frres et mes surs en Palestine ainsi quen Iraq, et tout les musulmans du
monde,
A notre martyr Cheikh Ahmed YASSINE et tout ceux qui se sont sacrifis pour lamour de
lIslam et pour sa gloire.
Hamid.
Abrviation
Dsignation
API
BD
Base de donnes
BL
Business Layer
CDC
CLDC
CVM
DAL
DOM
J2EE
J2ME
J2SE
JRE
JSP
JVM
KVM
MIDlet
MIDP
MVC
OS
Operating System
PDA
PL
presentation Layer
PSP
POSE
Palm OS Emulator
RMS
SSII
UML
UI
User Interface
XML
-- 1 --
12
Tableau 2
12
Tableau 3
23
Tableau 4
24
Tableau 5
28
Tableau 6
73
Figure 1
14
Figure 2
18
Figure 3
Architectures J2ME
22
Figure 4
24
Figure 5
25
Figure 6
26
Figure 7
29
Figure 8
30
Figure 9
32
Figure 10
Diagramme de packages
34
Figure 11
35
Figure 12
36
Figure 13
37
Figure 14
Scnario didentification
38
-- 2 --
Figure 15
40
Figure 16
42
Figure 17
44
Figure 18
45
Figure 19
48
Figure 20
51
Figure 21
Fonctionnement du client PC
53
Figure 22
Ecran didentification
56
Figure 23
56
Figure 24
57
Figure 25
57
Figure 26
58
Figure 27
58
Figure 28
58
Figure 29
Le sous-menu Import
59
Figure 30
59
Figure 31
Le sous-menu Export
59
Figure 32
59
Figure 33
Le sous-menu Synchronize
60
Figure 34
60
Figure 35
Lcran de configuration
60
Figure 36
61
Figure 37
61
Figure 38
62
Figure 39
62
Figure 40
63
Figure 41
63
Figure 42
64
-- 3 --
Figure 43
64
Figure 44
65
Figure 45
72
Figure 46
74
Figure 47
81
Figure 48
82
Figure 49
83
Figure 50
84
-- 4 --
Sommaire
Liste des abrviations ..................................................................................................................... - 1 Listes des figures et tableaux ......................................................................................................... - 2 Introduction .................................................................................................................................... - 7 CHAPITRE .................................................................................................................................. - 9 Contexte Gnral du Projet.......................................................................................................... - 9 1.1. Organisme daccueil : CACIOPEE ................................................................................. - 9 1.1.1. Prsentation de CACIOPEE ..................................................................................... - 9 1.1.2. Division de CACIOPEE ............................................................................................ - 9 1.2. Prsentation du projet .................................................................................................... - 12 CHAPITRE ................................................................................................................................ - 17 Etude du projet ........................................................................................................................... - 17 2.1. Spcification des besoins................................................................................................. - 17 2.2. La solution propose ....................................................................................................... - 18 2.2.1. Description de la solution ........................................................................................ - 18 2.2.2. Le principe MVC ..................................................................................................... - 19 2.3. Etude technique ............................................................................................................... - 20 2.3.1. Etat de lart de la programmation sous Palm OS ................................................. - 20 2.3.1.1. Le POSE (Palm OS Emulator) ........................................................................ - 20 2.3.1.2. Programmation sur Desktop ............................................................................ - 21 2.3.1.3. Programmation embarque ............................................................................. - 21 2.3.2. Choix du langage Java sous la plate-forme J2ME ................................................ - 22 2.3.3. Prsentation de la plate-forme J2ME .................................................................... - 22 2.3.3.1. Gnralit........................................................................................................... - 22 2.3.3.2. Les configurations ............................................................................................. - 23 2.3.3.3. Les profiles ......................................................................................................... - 25 2.3.3.4. Les Midlets ......................................................................................................... - 26 CHAPITRE ................................................................................................................................ - 29 Analyse et conception ................................................................................................................ - 29 III ............................................................................................................ Erreur ! Signet non dfini.
3.1. Prsentation du langage de modlisation UML ........................................................... - 29 3.2. Analyse des besoins fonctionnels ................................................................................... - 30 3.2.1. Cas dutilisations ..................................................................................................... - 30 3.2.2. Diagramme de cas dutilisations ............................................................................ - 30 3.3. Spcifications techniques ................................................................................................ - 31 3.3.1. Diagramme des composants (figure8) .................................................................... - 31 3.3.2. Organisation du modle de spcification logicielle ............................................... - 33 3.3.2.1. Dfinition ........................................................................................................... - 33 Projet de Fin dEtude : ENSIAS 2004
-- 5 --
3.3.2.2. Modularit et organisation des packages ........................................................ - 33 3.3.3. Diagramme de package ........................................................................................... - 34 3.4. Modles statiques et dynamiques .................................................................................. - 36 3.4.1. Diagrammes de squences ....................................................................................... - 37 3.4.2. Diagrammes de classes ............................................................................................ - 44 CHAPITRE 4 : Ralisation et mise en uvre .......................................................................... - 50 4.1. Outils de dveloppement : .............................................................................................. - 50 4.1.1. Java Server Pages (JSP) : ........................................................................................ - 50 4.1.2. eXtensible Markup Language (XML) : ................................................................. - 51 4.2. Implmentation de lapplication .................................................................................... - 51 4.2.1. Implmentation de la partie serveur ...................................................................... - 51 4.2.2. Implmentation de la partie client PC ................................................................... - 52 4.2.3. Implmentation de la partie client Palm ................................................................ - 56 4.3. Exemple dutilisation : .................................................................................................... - 56 4.3.1. Utilisation du client pour PC : ................................................................................ - 56 4.3.2. Utilisation du client PDA ......................................................................................... - 61 4.3.3. Utilisation du module Web ...................................................................................... - 63 Conclusion ................................................................................................................................... - 66 Bibliographie................................................................................................................................ - 67 Glossaire ...................................................................................................................................... - 68 Annexes ....................................................................................................................................... - 71 Architecture Client/Serveur trois niveaux .......................................................................... - 72 Prsentation des PDA ............................................................................................................ - 75 Fichiers XML utiliss par lapplication ................................................................................ - 81 XML (eXtensible Markup Language) .................................................................................. - 85 -
-- 6 --
Introduction
Le dveloppement de tout organisme repose le plus souvent sur son aptitude grer ses ressources
humaines, matrielles, financires et ses projets. En outre, il dpend de sa capacit dassurer de
meilleures performances et de rpondre aux normes qualit et par consquent dtre plus
comptitif. Cest ainsi que loptimisation des facteurs qui contribuent la composition et la
fabrication dun produit ou dun service devient une priorit incontournable pour toute entreprise
dsireuse de bien se positionner sur le march de son activit.
La gestion efficace des projets se rvle la plus importante des dmarches que les Socits de
Services en Ingnierie Informatique (SSII) doivent entreprendre. La gestion du temps, primordiale
pour le respect des dlais, et la gestion des ressources humaines alloues aux projets doivent tre
prises en compte dans lorganisation, la planification et le contrle de ces projets. Loptimisation
du temps et lamlioration des comptences constituent donc un souci permanent. Pour ce, des
mthodes formelles, facilitant la matrise des processus d'ingnierie du logiciel, ont t labores
par des instituts de renomme internationale. De la matrise de ces processus dcoule la matrise de
la qualit des produits et des services issus de ces processus. Cette qualit mesurable est une
caractristique dmontre de la russite conomique des entreprises et de la performance des
organisations.
Dans le but de profiter des ces mthodes, lentreprise CACIOPEE nous a confi le dveloppement
dune application dont le but est de grer le suivi des tches attribues ses dveloppeurs. Cette
application aura rcolter des informations exploites par ces mthodes.
Le prsent rapport expose l'objectif et les phases du dveloppement de notre projet. Nous avons
jug ncessaire de le dcouper en quatre chapitres.
Le premier chapitre dfinit le contexte gnral du projet. Il dbute par une prsentation de
lorganisme daccueil. Ensuite, il dcrit lobjectif escompt par notre projet, et la dmarche que
nous avons adopte pour la mise en uvre de cette application.
Le deuxime chapitre explique la phase dtude du projet. Dans ce chapitre, nous dfinissons la
problmatique rsoudre et nous dsignons les modules du projet. Ces modules proposent une
solution qui rpond aux besoins de CACIOPEE.
La phase danalyse et de conception constitue le sujet du troisime chapitre. Cette phase explique,
dune manire dtaille, la solution apporte par notre projet en se basant sur le formalisme UML.
Projet de Fin dEtude : ENSIAS 2004
-- 7 --
-- 8 --
CHAPITRE 1
CHAPITRE
1
Introduction
Dans ce chapitre nous allons dcrire le cadre gnral dans lequel se droule notre projet de fin
dtude. Dabord nous allons prsenter lorganisme daccueil CACIOPEE . Puis, nous
passerons la prsentation de lapplication objet de notre projet.
Les domaines de comptences de CACIOPEE sont : Java, C, C++, Cobol, DB2, Corba, J2EE,
UML, XML, Conceptions et modlisations orientes objet.
Division de Dveloppement ;
Division de Formation ;
-- 9 --
CHAPITRE 1
Division de formation :
Le succs de lentreprise actuelle se gagne sur le terrain de la formation de ses hommes. Cela
implique pour les responsables systmes la matrise des serveurs, du rseau, de la scurit et pour
les producteurs de contenus lutilisation de mthodes et doutils pertinents.
Son offre de formation est architectur en cinq filires :
-- 10 --
CHAPITRE 1
Filire Dveloppement ;
Lutilisation quotidienne de ces technologies par les quipes de CACIOPEE fait que les
personnes suivant les cours auront acquis la fois une connaissance thorique du sujet et
galement une connaissance pratique.
Division systmes dinformation :
On groupe au sein de cette division activits de :
De prendre du recul
systmes
La formation et lassistance.
-- 11 --
CHAPITRE 1
le contrle du projet par un suivi de son avancement et une gestion efficace des
perturbations qui atteignent son droulement.
Pour arriver bien piloter les projets au sein de lorganisme daccueil, CACIOPEE a choisi de
suivre la mthode PSP (Personnal Software Process) conu par Watts Humphrey de linstitut SEI
(Software Engeneering Institute). Cette mthode a t conue afin de contrler les projets et
damliorer leur qualit. Elle vise identifier les points faibles et les points forts de lingnieur et
Projet de Fin dEtude : ENSIAS 2004
-- 12 --
CHAPITRE 1
Pour appliquer ces principes, PSP dfinit plusieurs tableaux, chacun a un objectif prcis.
Lingnieur est sollicit de remplir ces tableaux qui vont laider par la suite amliorer sa mthode
de travail. La mthode PSP englobe plusieurs niveaux. En ce qui concerne le deuxime niveau, qui
est en relation avec notre projet, il consiste enregistrer lhistorique et estimer les tches futures en
se basant sur les anciennes estimations. Il y a deux tableaux spcifiques pour ce niveau : Time
Recording Log et Job Number Log (voir les deux tableaux suivants).
Name :
Date :
Date
Start
Stop
Interruption Delta
Time
Activity Comments C
Time
Date :
Date
Process
Actual
Time
Units Rate
Estimated
To Date
Time Units
Time Units
Rate
Max
Min
Description :
Tableau 2 : Formulaire PSP pour lestimation du projet
Les informations contenues dans le premier tableau sont :
Date : la date dune activit. En gnral, cest la date dun jour ouvr ;
-- 13 --
CHAPITRE 1
Interruption Time : Le temps perdu entre le dbut et la fin de lactivit, par exemple : la
dure de la consultation du mail ;
Delta Time : le temps net consacr lachvement de lactivit, il est gal (Stop- Start
Interruption time) ;
Comments : Une note ou commentaire plus complte sur lactivit, le type dinterruption
ou toute autre chose qui serait utile quand nous analysons lhistorique ;
C : signifie Completed, elle est mise 1 une fois que la tche soit termine ;
Actual Rate: cette quantit est gale Actual Time divis par Actual Units;
To Date Time : il est gal la somme de To Date Time de la tche la plus rcente de mme
type et Actual Time de ce travail;
To Date Units : il est gal la somme de To Date Units de la tche la plus rcente de mme
type et Actual Units de ce travail;
To Date Rate: cette quantit est gale To Date Time divis par To Date Units;
Max:cest le maximum des cases Rate pour toutes les tches compltes du mme type ;
Min : cest le minimum des cases Rate pour toutes les tches compltes du mme type ;
-- 14 --
CHAPITRE 1
de clients : un client pour PDA (voir annexe B), pour permettre la mobilit de lutilisateur de notre
application surtout lorsquil sagit dune tche raliser en dehors de CACOPEE, et un autre pour
ordinateur. A ces deux clients sajoute un module qui sera hberg cot base de donnes pour
permettre la mise jour et/ou la consultation des donnes de cette base (voir figure 1). Qui plus
est, une page Web sera dveloppe pour permettre lutilisation des donnes des tableaux cits en
haut nimporte o et sans avoir installer la partie client de lapplication chez soi. Notre
application est destine satisfaire aux besoins de lorganisme daccueil. Elle se base sur le
modle de donnes adopt par CACIOPEE pour leur logiciel de gestion de projet PHOENIX
(dvelopp localement par lquipe de CACIOPEE).
Partie cliente
PDA
Serveur
dapplications
XML
Partie cliente
XML
Serveur
de BD
Internet
XML
Partie
serveur
MA J
Page Web
Pour pouvoir raliser ce projet et rpondre ses objectifs, nous avons adopt la dmarche
suivante :
Nous avons dabord entrepris une tude des besoins de CACIOPEE et dgag les modules
du projet,
Ensuite, nous avons fait une analyse et conception du projet laide du langage Unified
Modeling Langage (UML) et de loutil Rational Rose pour les diagrammes UML du projet,
Puis, nous avons commenc implmenter les diffrents modules de lapplication tout en
testant le fonctionnement de chaque module ralis.
-- 15 --
CHAPITRE 1
Conclusion
Ce chapitre reprsente un point de dpart pour llaboration de notre projet de fin dtude. La
prsentation de lorganisme daccueil a occup sa premire moiti, tandis que la deuxime a t
consacre entirement la prsentation du sujet. Dans le chapitre suivant, il sera question
dexposer ltude que nous avons faite du projet.
-- 16 --
CHAPITRE 2
CHAPITRE
2
Etude du projet
Etude du projet
Introduction
Apres avoir prsent le contexte gnral de notre PFE, nous allons dcrire dans le prsent chapitre
la phase dtude du projet. Il sera question de prsenter les besoins exprims par CACIOPEE pour
lesquels lapplication doit rpondre. La solution que nous avons propose sera expose dans la
deuxime et dernire partie de ce chapitre.
aussi dimporter des informations relatives ses tches de la base donnes. Ces
informations lui permettront de choisir la tches sur laquelle il doit travailler (lapplication aura
indiquer son utilisateur le degr durgence de chacune de ses tches). A lexception dun super
utilisateur qui aura la possibilit de consulter travers notre application toutes les tches des autres
utilisateurs, ceux-ci ne doivent avoir que la permission dimporter les informations des tches les
concernant. La mobilit de lutilisateur doit tre permise (cest pour cette raison quune version
PALM de la partie client sera dveloppe). Lutilisateur doit galement pouvoir accder ses
informations via le Web et sans avoir disposer de la partie cliente de lapplication installe chez
lui.
-- 17 --
CHAPITRE 2
Etude du projet
-- 18 --
CHAPITRE 2
Etude du projet
La vue qui est la reprsentation graphique de ces donnes, et cest ce composant qui
reprsente les couteurs du modle et qui est averti du changement des donnes.
Le contrleur qui est la partie qui traite des interactions du composant avec lutilisateur.
Cest cette partie qui demande changer une donne du modle.
En dautres termes, le but est de sparer la vue du modle afin que les modifications de la premire
naffectent pas le second et rciproquement. Le contrleur assure ce dcouplage. Le modle ne
connat rien de lUI ; il fournit simplement un ensemble de services ou dAPI permettant de lire ou
de modifier ltat du modle. Le contrleur associe ensuite, de manire standardise, le flux des
informations et des vnements entre la vue et le modle [1].
Au stade de la conception, cela signifie que des changements dans les contrles ou les lments
individuels de lUI naffectent en rien le modle. Au niveau de larchitecture, cela signifie que les
changements du client naffectent pas le modle (voir la figure 2).
-- 19 --
CHAPITRE 2
Etude du projet
Tout dabord, pour la programmation sous Palm OS, il est absolument ncessaire davoir un
mulateur de Palm. Cet lment indispensable sert raliser et tester des applications tournant
sur Palm OS directement sur PC et sans avoir ncessairement sous la main un terminal mobile de
type PALM.
Ce POSE a t suffisamment bien conu pour permettre dmuler un grand nombre de
configurations de Palm (avec des versions diffrentes du systme dexploitation et des capacits en
Projet de Fin dEtude : ENSIAS 2004
-- 20 --
CHAPITRE 2
Etude du projet
Concevoir des applications tournant sous Palm OS est possible en utilisant le POSE. Cela est grce
au fait quil est possible dutiliser nimporte laquelle des plates-formes comme environnement de
dveloppement, il est aussi possible dutiliser une grande varit de langages et doutils. Ces
environnements de construction dapplication sont, pour beaucoup, spcifiques la plate-forme
partir de laquelle on dveloppe.
Dans notre cas la plate-forme de dveloppement est Windows. En effet cest la plate-forme la plus
riche, et quon peut y trouver la plus grande diversit doutils de dveloppement.
On peut dcomposer le dveloppement sous Windows selon les langages, car en effet, il existe une
dizaine de langages utilisables. Les principaux sont le C et le Java.
Pour le langage C, le plus utilis dans le march de la programmation embarque, il existe une
suite doutils de dveloppement gratuite base sur la suite Unixy de PRC-Tools. Dautres outils
bass sur des IDE comme Visual C++ ou CodeWarrior sont aussi disponibles, et sintgrent plus
ou moins bien cet environnement de dveloppement (Wizard du CDK pour Visual C++, version
CodeWarrior for Palm OS , ).
En ce qui concerne le langage Java, il existe l aussi plusieurs solutions. Toutes requirent
linstallation dune machine virtuelle. Celle de Sun (KVM sintgre dans son projet de J2ME
sappuyant sur la technologie MIDP), celle de IBM (appele J9) ainsi que Visual Age Micro
Edition, soit VAME.
Dans le cadre du dveloppement dune petite application pour Palm OS, on peut aussi utiliser un
langage embarqu. Cette solution consiste en le codage, la mise en place, et le test dun
programme embarqu directement sur un terminal mobile quip du systme dexploitation Palm
OS. Elle a lavantage dune plus grande simplicit de mise en place et donc une rapidit de
dveloppement des applications. Cependant, dans certains cas, elle peut tre limitative et donne
des applications plus lentes.
Il existe une multitude de langages embarqus et denvironnement de dveloppement pour ces
langages destins fonctionner sous Palm OS. Parmi ces langages on cite : le C, le Visual Basic, le
Projet de Fin dEtude : ENSIAS 2004
-- 21 --
CHAPITRE 2
Etude du projet
Lexcution de notre application ne serait pas limite aux terminaux Palm OS, et
peut tre tendue vers dautres priphriques mobiles, sil y aurait des besoins
futurs.
Java 2 Micro Edition est une architecture technique dont le but est de fournir un socle de
dveloppement aux applications embarques. Lintrt tant de proposer toute la puissance
dun langage tel que Java associ aux services proposs par une version bride du Framework
J2SE (voir la figure 3). Les terminaux nayant pas les mmes capacits en terme de ressources
que les ordinateurs de bureau classiques (mmoire, disque et puissance de calcul), la solution
passe par la fourniture dun environnement allg afin de sadapter aux diffrentes contraintes
dexcution. Cependant, comment faire en sorte dintgrer la diversit de loffre un socle
Projet de Fin dEtude : ENSIAS 2004
-- 22 --
CHAPITRE 2
Etude du projet
technique dont la cible nest pas dfinie priori ? La solution propose par J2ME consiste
regrouper par catgories certaines familles de produits tout en proposant la possibilit
dimplmenter des routines spcifiques un terminal donn [2]. L'architecture J2ME se
dcoupe donc en plusieurs couches :
Les profiles : ils permettent une certaine catgorie de terminaux dutiliser des
caractristiques communes telles que la gestion de laffichage, des vnements
dentres/sorties (pointage, clavier, ) ou des mcanismes de persistance (Base de
donnes lgre intgre). Ces profiles sont soumis spcifications suivant le
principe du JCP (Java Community Process)
Les configurations : elles dfinissent une plate-forme minimale en terme de services
concernant un ou plusieurs profiles donns.
Les machines virtuelles : en fonction de la cible, la machine virtuelle pourra tre
allge afin de consommer plus ou moins de ressources (KVM, CVM, )
Le
systme
dexploitation :
Lenvironnement
doit
sadapter
au
systme
Cette architecture (J2ME) en couche a pour but de factoriser pour des familles de produits donnes
un ensemble dAPI permettant une application de sexcuter sur plusieurs terminaux sans
modification de code. Dans cette optique, la plate-forme propose deux configurations :
-- 23 --
CHAPITRE 2
Etude du projet
Cette configuration sinscrit donc dans le cadre dune architecture Java presque
complte.
CLDC (Connected Limited Device Configuration) : Cette configuration sadresse
aux terminaux lgers tels que les tlphones mobiles ou les assistants personnels.
Ces priphriques tant limits en terme de ressources, lenvironnement classique
ne permet pas de respecter les contraintes doccupation mmoire lie ces
appareils. J2ME dfinie donc un ensemble dAPI spcifique CLDC et destines
utiliser les particularits de chaque terminal dune mme famille (profile).
La liste suivante rsume lensemble de ces caractristiques :
Notons que cest au niveau de la configuration CLDC que se localise la cible de notre application.
Cette configuration sinscrit donc dans une logique dconomie de ressources avec une KVM de
40 80 Ko sexcutant 30 80% moins vite quune JVM normale. Il ny a aucun compilateur JustIn-Time ni mme de prise en charge des nombres flottants. Quant au Multi-threading et au
Ramasse miettes, ils demeurent supports. Toutefois, CLDC nintgre pas la gestion des interfaces
graphiques, la persistance ou les particularits de chaque terminal. Ces aspects ne sont pas de sa
Projet de Fin dEtude : ENSIAS 2004
-- 24 --
CHAPITRE 2
Etude du projet
responsabilit. La matrice suivante rsume les packages et classes prsentes dans cette couche :
Java.io
Java.lang
Java.util
Javax.microedition.io
Le package javax.microedition.io fait partie des briques non incluses dans J2SE tel quil est
illustr dans le schma suivant.
MIDP (Mobile Information Device Profile) est la base de limplmentation des classes lies un
profile donn. On y trouve les mthodes permettant de grer laffichage, la saisie utilisateur et la
gestion de la persistance (base de donnes). Il existe aujourdhui deux implmentations majeures
du profile MIDP. Lune, plus spcifique, destine aux Assistants de type Palm Pilot (quip dun
Palm OS) et lautre, totalement gnrique, propose par Sun comme implmentation de rfrence
(RI). Ces profiles sont en libre tlchargement sur le site de Sun et intgrent plusieurs mulateurs
permettant de tester les applications de manire logicielle. Les API lies MIDP font aussi partie
de ce package :
-- 25 --
CHAPITRE 2
Etude du projet
javax.microedition.lcdui
javax.microedition.midlet
javax.microedition.rms
Il n'y a aucune interface avec la carte SIM et avec les SMS (Short Message System) [3].
2.3.3.4. Les Midlets
Les Midlets sont l'lment principal d'une application Java embarque. Pour bien saisir leur mode
de fonctionnement, il suffit de prendre comme analogie les applets ou les servlets. Le cycle de vie
dune applet est gr par un conteneur, en loccurrence le navigateur Web dont le rle est
dinteragir
avec
celle-ci
sous
la
forme
de
mthodes
de
notifications
prdfinies
-- 26 --
CHAPITRE 2
Etude du projet
except le fait que le conteneur est un moteur de servlet (Tomcat, WebSphere, WebLogic, ).
Quant aux Midlets, ils reprsentent le pendant des applets et des servlets pour J2ME avec comme
conteneur un tlphone mobile ou un assistant personnel. Ainsi, en cas de mise jour dune
application embarque, un simple tlchargement de code Midlet est ncessaire partir dun
quelconque serveur. De cette manire, un programme dvelopp pour un profile donn est en
mesure de sexcuter sur tous les priphriques correspondant cette famille. Cest aussi une
manire de dcoupler le socle technique des applicatifs puisque le seul lien existant entre les
logiciels embarqus et le terminal est lAPI J2ME.
Une Midlet possde essentiellement trois mthodes qui permettent de grer le cycle de vie de
l'application (voir la figure 6) en fonction des trois tats possibles (active, suspendue ou dtruite) :
-- 27 --
CHAPITRE 2
Etude du projet
Conclusion
Dans ce chapitre, nous avons spcifi les besoins de lorganisme daccueil auxquels lapplication
objet de notre PFE doit rpondre. Ensuite nous avons expos brivement la solution que nous
avons adopte. Et enfin nous avons tal une tude technique pour ce qui existait en termes de
programmation pour Palm OS ainsi quune prsentation de la technologie choisie. Le chapitre
suivant sera consacr la phase danalyse et de conception et prsentera cette solution en dtail.
-- 28 --
CHAPITRE 3
Analyse et conception
CHAPITRE
3
Analyse et conception
Introduction
Apres avoir prsent la phase tude du projet, et dcrit la solution propose selon une spcification
de besoins tabli au pralable, nous ddions ce troisime chapitre la phase analyse et conception.
Nous commenons tout dabord par prsenter le langage utilis pour la conception de la solution,
et nous prsentons ensuite les diffrents parties de la conception de notre projet, entre outre les
diagrammes UML de lapplication, et ceci afin de mieux comprendre son fonctionnement.
-- 29 --
CHAPITRE 3
Analyse et conception
une analyse fonctionnelle et de se contenter d'une implmentation objet, mais il pousse penser
objet ds le dpart. En plus, il permet de dfinir les vues qui permettent de dcrire tous les aspects
d'un systme avec des concepts objets.
UML permet donc de modliser une application selon une vision objet, en possdant plusieurs
facettes. C'est une norme, un langage de modlisation objet, un support de communication et un
cadre mthodologique. UML est tout cela la fois, ce qui semble d'ailleurs engendrer quelques
confusions.
UML a t adopt (normalis) par l'OMG et intgr l'OMA, car il participe cette vision et parce
qu'il rpond la "philosophie" OMG.
Acteur
Utilisateur
Message (mis/reu)
Emis : login et password.
Reu : Ouverture de session
ou refus daccs
Suivi des tches
Utilisateur
Emis : Action relative au
suivi, ou synchronisation, ou
gestion de profile.
Import des donnes
Utilisateur
Emis : requte dimport.
Reu : fichier xml des
donnes importes.
Export des donnes
Utilisateur
Emis : fichier xml des
donnes exporter.
Reu : confirmation ou
infirmation de lexport.
Lire depuis la base de donnes
Base de donnes
Emis : requte de la lecture
Reu : rsultat
correspondant
Ecrire dans la base de donnes
Base de donnes
Emis : Ajout, ou
modification dlments de
la BD
Tableau 5 : Identification des cas dutilisation
3.2.2. Diagramme de cas dutilisations
Linteraction entre cette base de donnes et lapplication objet de notre PFE se rsume en la mise
jour et la consultation de cette base. Quant lutilisateur, il profite de toutes les possibilits de
Projet de Fin dEtude : ENSIAS 2004
-- 30 --
CHAPITRE 3
Analyse et conception
gestion de ses tches que notre application lui permet .Toutefois, il ne pourra pas en bnficier sauf
si son identification est valide, et un import de donnes est effectu. En outre, lutilisateur a aussi
la possibilit dimporter des donnes relatives ses tches de la base de donnes, ou dexporter les
donnes des suivis vers la partie de lapplication du cot serveur qui se chargera de synchroniser
avec la base de donnes(voir figure 7).
<<utilise>>
<<utilise>>
<<utilise>>
Identification
<<Etendre>>
Utilisateur
Import des donnes
<<utilise>>
<<Etendre>>
Ecrire dans la base de
donnes
Export des donnes
-- 31 --
CHAPITRE 3
Analyse et conception
DAL
SGBDR
<<Application>>
Serveur
<<Application>>
Swing
<<Application>>
XML.jar
DesktopIndicator.
DLL
<<Application>>
PDA
Web
config.xml
module Swing : ce module reprsente la version de notre application qui sera excut
sous PC, cette partie utilisera une librairie Windows, pour pouvoir afficher un icne de
lapplication dans la tray Bar .
module PDA : ce module reprsente la version de notre application qui sera ddie au
terminal mobile PDA utilisant un systme dexploitation Palm OS.
module Web : ce module va permettre un accs via le Web, pour que lutilisateur puisse
extraire les informations qui lui sont relatives, dans le cas ou seule la connexion http
sera permise.
Chacune des deux units Swing et PDA de notre projet va se baser sur un fichier de
configuration config.xml , qui lui permettra de stocker les diffrents profiles des
utilisateurs et de pouvoir les charger lors de chaque nouvel accs.
Le module de la partie serveur de notre application utilise un package gnrique DAL (Data
Access Layer), qui va permettre la communication avec la base de donnes. Alors quel e module
XML , reprsentera un package .jar , qui sera dvelopp afin dassurer la communication
avec les fichiers Xml manipuls par les diffrentes parties de notre projet.
Projet de Fin dEtude : ENSIAS 2004
-- 32 --
CHAPITRE 3
Analyse et conception
Les packages de notre application ont t organiss de telle faon sparer entre tous ce qui est
traitement et logique mtier
Business Layer , et tous ce qui est prsentation et interface utilisateur. Que ce soient des formes
swing, des pages Web, ou des servlets, cette couche est enveloppe dans le package PL
acronyme de Presentation Layer , lautre package DAL acronyme de Data Access Layer
reprsente la couche accs aux donnes tandis que le dernier package common contiendra
dautres librairies et classes dont notre application aura besoin pour son fonctionnement.
Ainsi, du cot serveur (voir figure 9) lencapsulation des classes est faite de la manire dj
dcrite, en plus cette partie de notre projet sera lors de son dploiement intgre dans le projet
phoenix de lentreprise. Cela va impliquer que notre architecture organisationnelle des
packages sera conforme celle adopte pour le projet phoenix , et cest pour cette raison l
quon trouve que les diffrentes parties de notre application sont empaquetes dans un package
com.caciopee.phoenix .
-- 33 --
CHAPITRE 3
Analyse et conception
com
caciopee
phoenix
pl
bl
dal
common
service
-- 34 --
CHAPITRE 3
Analyse et conception
provenance dun client Web (package importfromweb , dun client
Swing (package importfromswing ) ou dun client PDA (package
importfrompda ).
selon
le
client,
savoir
exportfromswing ,
exportfromweb et exportfrompdaweb .
Package com.caciopee.phoenix.bl.service.dbSide : cette entit encapsule toute la
logique mtier de notre projet concernant les traitements sur les fichiers cot
serveur, la communication avec le module DAL , lassurance de lchange des
fichiers ncessaires et la signalisation dventuels erreurs qui peuvent survenir
nimporte quel moment lors de cette phase de communication client/serveur. Elle
est divise en deux parties : importpackage , et exportpackage .
Package XML : Vue que notre application se base essentiellement sur les
fichiers XML, et dans le but de faciliter lutilisation de lAPI JAXP tout en
garantissant la lisibilit du code source de notre application, nous avons dvelopp
deux version de ce package. Ce package fournit un certain nombre de services
utiles pour le traitement des fichiers XML. Nous lavons dvelopp sous deux
versions : une version pour SWING, et une autre pour PDA, cette dernire utilise
lAPI KXML ddie principalement aux terminaux mobiles.
Package com.caciopee.tasksmanagement : Ce package englobe toutes les classes
ncessaires pour accder lapplication, effectuer les suivis et synchroniser avec le
serveur. Il contient en plus de la partie common deux autres parties savoir :
-- 35 --
CHAPITRE 3
Analyse et conception
-- 36 --
CHAPITRE 3
Analyse et conception
: Base de
donnes
DAL
FromDbToXml
DbSideReaderEntity
cration.
connexion et lecture
des donnes.
connexion et
lecture des
donnes.
gnration du
fichier XML
importer.
-- 37 --
CHAPITRE 3
Analyse et conception
DAL
FromXmlToDb
DbSideWriterEntity
: Base de
donnes
rception du fichier xml
exporter.
mise jour de la
base de donnes.
cration
cration
tat de l'opration.
Quand DbSideWriterEntity est activ (voir la figure 12), il sauvegarde le fichier XML reu puis
cre lobjet FromXmlToDb . Ce dernier utilise des objets du DAL pour effectuer la mise jour
de la base de donnes. Si une erreur survient, un message derreur est renvoy par
FromXmlToDb lobjet qui la cre. Sinon, lobjet DbSideWriterEntity rcupre un
message lui signalant que lopration a t bien excute.
Diagrammes de squences de lidentification dun utilisateur
Dans le cas dutilisation identification deux possibilits se prsente : un nouvel utilisateur qui
utilise lapplication pour la premire fois (voir la figure 13) ou un ancien utilisateur (voir la figure
14).
Quand cest la premire fois quun utilisateur veut profiter de notre application, il doit dabord
cliquer sur le bouton New User de lcran didentification. Ensuite, un cran de bienvenue
reprsent dans la figure 13 par lobjet WelcomeForm est cr et affich invitant le nouvel
utilisateur saisir son login et son mot de passe et choisir un rpertoire personnel qui contiendra
tous ses fichiers dimport et dexport. Puis lobjet BeginningDemon est cr pour dmarrer la
premire utilisation de lapplication pour ce nouvel utilisateur et dclencher le traitement li cette
premire utilisation qui consiste en un avertissement pour limport des informations relatives aux
pauses et aux tches de cet utilisateur. Finalement, lobjet SessionDemon est cr ainsi que
Projet de Fin dEtude : ENSIAS 2004
-- 38 --
CHAPITRE 3
Analyse et conception
IdentificationForm
WelcomeForm
BegenningDemon
SessionDemon TaskMgmtForm
: Utilisateur
nouvel utilisateur.
cration et affichage.
cration et affichage.
Un ancien utilisateur est un acteur dont le systme possde dj des informations qui lui sont
propres, ainsi aprs avoir valid son compte et son mot de passe, le systme active un dmon de
dmarrage afin de vrifier sil ya des avertissements dclencher, ou des anomalies signaler
lutilisateur, et de paramtrer la session avant de commencer une nouvelle utilisation de
lapplication.
-- 39 --
CHAPITRE 3
Analyse et conception
Valider login et
mot de passe.
traitement de
dmarrage.
cration et
initialisation.
cration et affichage.
Quand un utilisateur saisit son login et son mot de passe (voir la figure 14), lobjet
IdentificationForm vrifie la validit de ces deux informations. Si elles ne sont pas valides, un
message derreur est affich. Dans le cas o les informations saisies sont correctes, lobjet
IdentificationForm cre et initialise lobjet BeginningDemon . Ce dernier effectue le
traitement de dmarrage qui consiste en la recherche dans le profile de lutilisateur courant,
contenu dans le fichier de configuration users.xml de lapplication, des ventuels
avertissements possibles. Lorsque la condition de lavertissement de lexport est vrifie, lobjet
WarningXportForm est cr et affich pour prvenir lutilisateur de la ncessit dexporter ses
donnes. Il aura la possibilit de choisir entre un export immdiat et un report de lexport une
date ultrieure. Aprs avoir termin avec lexport, la condition dimport est examine. Sil faut
Projet de Fin dEtude : ENSIAS 2004
-- 40 --
CHAPITRE 3
Analyse et conception
avertir lutilisateur de la ncessit dimporter des donnes, un message davertissement est affich,
sinon rien ne se passe. Quand le traitement davertissement de limport est termin, lobjet
SessionDemon est cr ainsi que lobjet TaskMgmtForm qui reprsente lcran principal de
lapplication.
Diagramme de squences des suivis des tches (figure 15)
Aprs stre identifi entant que nouvel ou ancien utilisateur, ce dernier dbute le suivi des tches
quil va effectuer, en signalant chaque fois au systme lopration ralise, ces oprations
peuvent tre relatives soit :
Durant tout le suivi, notre systme utilise des fichiers XML pour lextraction des donnes et des
informations relatives aux tches et aux interruptions. Il gnre aussi des fichiers XML contenant
les rsultats des suivis effectus. Lutilisateur a le choix dimporter localement les fichiers XML
dimport, et dexporter le fichier rsultant pour une synchronisation par lentremise du Web ou
autre.
-- 41 --
CHAPITRE 3
Analyse et conception
TaskMgmtForm
: Utilisateur
SessionDemon
InterruptionForm
EvaluationForm
UserProfile
ConfigForm
TaskProperties
Form
dbut traitement
tche.
-- 42 --
CHAPITRE 3
Analyse et conception
ExportClass qui affiche alors un message derreur pour lutilisateur. Dans le cas contraire, le
fichier export est pass lobjet DbSideWriterEntity . Si une erreur survient lors de la mise
jour de la base de donnes, cet objet envoie un message derreur lobjet ExportClass qui le
transmettra lutilisateur sans entamer la procdure dexport. Sinon, la confirmation du succs de
la mise jour est envoye ExportClass . Ensuite lobjet TaskMgmtForm instancie lobjet
ImportClass qui sera charg de se connecter la servlet dimport reprsente par lobjet
ServletImport et dimporter un fichier XML dimport qui sera gnr selon le scnario de la
figure 11 par lobjet DbSideReaderEntity . Ce dernier objet sera cr par la servlet dimport. Si
tout va bien, le fichier XML dsir sera envoy lobjet ImportClass qui va le sauvegarder
dans le dossier personnel de lutilisateur courant. Sinon, un message derreur est transmis
ImportClass puis est affich lcran.
TaskMgmtForm
ImportClass
ExportClass
ServletImport DbSideReaderEntity
ServletXport
DbSideWriterEntity
: Utilisateur
synchro...
instanciation.
instanciation.
connexion et ordre
d'import.
fichier d'import ou
message d'erreur.
ordre d'import.
fichier d'import ou
message d'erreur.
message d'erreur
d'import s'il existe.
-- 43 --
CHAPITRE 3
Analyse et conception
CallServlet : cette classe permet dinitier les connexions http avec les servlets de la
partie serveur et de rcuprer la rponse de ce dernier. Elle est utilise par les deux
classes ImportClass et XportClass lors de la synchronisation avec le serveur.
-- 44 --
CHAPITRE 3
Analyse et conception
FromXmlToDb : comme son nom lindique, cette classe se charge de la mise jour
de la base de donnes partir des informations contenu dans le fichier XML de lexport
gnr par notre application se trouvant du cot client lors des suivis effectus par ce
dernier.
ImportClass
userPath
pwd
login
fileLength
message
current
done
ServletCall
url
response
XportClass
fileLength
message
current
done
1..n
ImportClass()
ImportFromServer()
CallServlet()
ClientSocket()
ExtractData()
ExtractConnectionVariable()
GetCurrent()
GetMessage()
IsDone()
1..n
XportClass()
XportToServer()
CallServlet()
ClientSocket()
GetCurrent()
GetMessage()
IsDone()
Xml
1..n
1..n
ReadingServletSwing
login
pwd
XmlFilePath
PortNumber
WritingServletSwing
XmlFilePath
PortNumber
DoGet()
SettingPortNumber()
ServerSocket()
DoGet()
SettingPortNumber()
ServerSocket()
0..1
0..1
DAL
1
FromDbToXml
login
pwd
FromDbToXml()
GenerateXml()
establishConnection()
accessGranted()
InitialiseXmlFile()
ExtractUserInfo()
GetUserTasks()
GetInterruptions()
SerialiseXmlFile()
CloseConnection()
1
FromXmlToDb
FromXmlToDb()
DoUpdate()
GetInterruptTime()
dateToString()
getGCalendarFromString()
getInterruptionTime()
startOfTask()
-- 45 --
CHAPITRE 3
Analyse et conception
XmlWriter : cest une classe utilitaire qui contient toutes les fonctions possibles
pour crer et modifier un fichier XML dune manire simple tout en ayant des noms
significatifs.
XmlReader : cest une classe utilitaire qui contient toutes les fonctions possibles
pour effectuer la lecture ou la recherche dans un fichier XML.
Serialiser : cest une classe utilise pour enregistrer les donnes dans un fichier
XML dune manire appropri et conforme.
XmlWriter
XmlReader
CreateXmlInstance()
Initialise()
GetRoot()
CreateTag()
CreateAttribute()
AddText()
ChangeAttribute()
ChangeText()
DeleteTag()
Serialise()
Initialise()
FindTagByChild()
FindTagByAttribute()
FindFirstElement()
GetTextTag()
GetTextAttribute()
FindAllTags()
GetText()
Serialiser
Serialiser()
Serialise()
SerialiseNode()
-- 46 --
CHAPITRE 3
Analyse et conception
BeginningDemon : cette classe contient tous les traitements que gre notre
application dans la phase didentification ou dinscription dun nouvel utilisateur avant
quune nouvelle session soit ouverte.
SysTray : cest la classe racine de lapplication, elle se charge de lancer une icne
de lapplication dans la Tray Bar et de grer toutes les actions de lutilisateur.
-- 47 --
CHAPITRE 3
Analyse et conception
WelcomeForm
INVALID
ABORT
ERROR
OK
SysTray
taskMgtForm
IdentificationForm
WelcomeForm() 1
GoBack()
GoNext()
Validate()
0..1
SelectPath()
IsPathValid()
0..1
SysTray()
CloseApplication()
NewSession()
CloseSession()
InitSysTray()
IdentificationForm()
Valider()
NewUser()
0..1
0..1
1..n
BeginningDemon
userPath
configPath
login
0..1
1..n
ProgressBar
INVALID
ABORT
ERROR
OK
0..n
1
ProgressBar()
Export()
Import()
BeginTimerImport()
BeginTimerXport()
SetTextUser()
SetCurrentProgress()
GetUserPath()
OldUser()
NewUser()
CreateNewUser()
VerifyXportWarning() 0..1
VerifyImportWarning()
ImportFromFile()
0..1
ImportData()
ImportFromServer()
IsPwdValid()
ApplicationGo()
WarningImportForm
1
1
WarningXportForm
WarningImportForm()
Validate()
WarningXportForm()
Validate()
0..1
1
0..n
SynchronisClientS
ide
Xml
InterruptionForm
InterruptionForm()
FillInterruptionsList()
Validate()
0..n
TaskMgmtForm
TaskMgmtForm()
Interrupt()
Play()
Stop()
Import()
Xport()
Synchronize()
GetConfiguration()
Clear()
GetProperties()
FillTasksList()
CloseSession()
0..n
1..n
1
SessionDemon
INVALID
ABORT
ERROR
OK
userPath
configPath
login
0..1
EvaluationForm
EvaluationForm()
Validate()
0..1
BeginSession()
BeginJobsLogs()
BeginInterruption()
EndSession()
0..n
EndJobsLogs()
EndInterruption()
ExtractInterruptions() 0..n
ExtractTasks()
FormatDate()
0..n
GetProperties()
ImportFromFile()
ImportFromServer()
Xport()
Synchronize()
Clear()
SetConfiguration()
GetConfiguration()
VerufyXportWarning()
GetCryptedPwd()
PropertiesForm
listProperties
1
PropertiesForm()
UserProfileConfigForm
UserProfileConfigForm()
Validate()
-- 48 --
CHAPITRE 3
Analyse et conception
Dans cette partie on sest content de prsenter les classes du package JobsLogsSwing (voir
figure 19), le package quivalent pour le terminal mobile est pratiquement le mme.
Conclusion
Dans ce chapitre, nous avons dcrit la phase danalyse et conception de notre projet. Nous avons
prsent le langage utilis pour modlisation savoir UML. Ensuite nous avons prsent et dfini
quelques diagrammes du formalisme UML relatifs notre projet et ce, afin dillustrer son
fonctionnement. Le chapitre suivant est ddi la phase de ralisation et implmentation de notre
application.
-- 49 --
CHAPITRE 4
CHAPITRE
4
Introduction :
Ce chapitre est consacr la phase ralisation du projet. Tout dabord, nous allons prsenter
quelques outils utiliss dans la mise en uvre de notre projet de fin dtude. Ensuite, nous
aborderons un scnario dutilisation de notre application.
Lindpendance de la plate-forme dexcution car elles sont une extension des servlets
Java, et donc hritent de tous les avantages de Java ;
La facilit dintgrer des balises JSP dans une page HTML. Ceci permet aux graphistes de
concevoir la prsentation de leur ct et aux dveloppeurs de raliser des scripts ou des
composants java rutilisables ;
La rapidit ainsi que la facilit du dploiement des fichiers JSP car le serveur Web compile
et excute automatiquement les JSP quand la premire demande arrive.
Une servlet est un programme qui s'excute ct serveur en tant qu'extension de celui-ci. Elle
reoit une requte du client, elle effectue des traitements et renvoie le rsultat. La liaison entre la
servlet et le client peut tre directe ou par un intermdiaire comme par exemple un serveur http.
Mme si pour le moment la principale utilisation des servlets est la gnration de pages html
dynamiques utilisant le protocole http et donc un serveur web, n'importe quel protocole reposant
sur le principe de requte/rponse peut faire usage d'une servlet. Ecrite en java, une servlet en
retire ses avantages : la portabilit, l'accs toutes les API de java dont JDBC pour l'accs aux
bases de donnes, ... Une servlet peut tre invoque plusieurs fois en mme temps pour rpondre
plusieurs requtes simultanes.
Projet de Fin dEtude : ENSIAS 2004
-- 50 --
CHAPITRE 4
-- 51 --
CHAPITRE 4
-- 52 --
CHAPITRE 4
de son utilisateur.
La figure 21 reprsente le fonctionnement de ce client, lexception du fonctionnement relatif aux
nouveaux utilisateurs. Ltat Accueil reprsente ltat dans lequel ce client offre son
utilisateur la possibilit de saisir son login et son mot de passe ou de crer son profile quand il
sagit dun nouvel utilisateur. Si cest le cas, cet utilisateur fournit son login, le chemin de son
rpertoire personnel et son mot de passe et ventuellement ladresse du serveur ou les chemins des
fichiers dimport. Une fois que cette opration ait termin avec succs, le fichier de configuration
de lapplication sera mis jour par lajout du profile de cet utilisateur. En plus, un dossier ayant le
login de cet utilisateur est cre dans son rpertoire personnel. Ce dossier comportera ses fichiers
dimport et ses fichiers dexport. Le profile de chaque utilisateur contient les informations
suivantes : le login de cet utilisateur, le chemin de son rpertoire personnel, ltat de
lavertissement dimport et sa dure, ltat de lavertissement dexport et sa date, ladresse du
serveur et loption de suppression automatique des fichiers exports.
Il reste noter que le mot de passe de chaque utilisateur est crypt avant dtre enregistr par
lapplication ou envoy comme argument la partie serveur. Pour cela nous avons eu recours
une mthode de cryptage adopte par CACIOPEE pour la scurisation de laccs son logiciel de
gestion de projet PHOENIX.
Une fois que lopration didentification, faite par le dmon de dmarrage, sait termin avec
succs, ce dernier consulte le profile de lutilisateur courant. Si lavertissement dimport est actif
et que sa dure est dpasse, lutilisateur sera averti de la ncessit deffectuer une opration
dimport. Ensuite, ce dmon teste ltat de lavertissement dexport. Quand il est active et que le
dlai de lexport soit dpass, une fentre davertissement de lexport sera affiche invitant
lutilisateur courant choisir entre :
exporter immdiatement ;
ne pas exporter ;
Sil choisit la premire option, lapplication procde une opration de synchronisation, c'est-dire une opration dexport vers le serveur suivi de limport des donnes mises jour dans la base
de donnes. Sil sagit de la troisime option, le dmon de dmarrage modifie le profile de
lutilisateur courant en modifiant le dlai de lexport.
Ensuite, la fentre de gestion des projets saffiche. Si les fichiers imports nexistent pas dans leurs
emplacements, la liste des tches sera vide et les boutons ainsi que les sous-menus de gestion des
Projet de Fin dEtude : ENSIAS 2004
-- 53 --
CHAPITRE 4
tches ( play , pause , stop ) seront dsactivs. Sinon, seuls les boutons pause et
stop seront dsactivs. Lorsque lutilisateur choisit une tche et clique sur play (pour
dmarrer un suivi), le dmon de session enregistre un certain nombre dinformations concernant le
suivi entam par cet utilisateur. Dans ce cas, seul le bouton play sera dsactiv. Puis, dans le
cas o lutilisateur clique sur le bouton stop , le dmon de session procde aux oprations
suivantes :
le fichier dexport sera mis jour par les informations concernant ce suivi ;
Si lutilisateur choisi de cliquer sur le bouton pause , pour effectuer une pause, le traitement li
au dbut dune pause sera effectu afin de collecter des informations la concernant et ncessaire
pour la construction du fichier de lexport. Lutilisateur ne pourra dans ce cas que mettre fin sa
pause par une clique sur le bouton play , sachant que ce dernier sera le seul bouton activ aprs
le dmarrage dune pause.
Aprs avoir termin son suivi, lutilisateur aura la possibilit de synchroniser avec le serveur via le
sous-menu Synchronize du menu Action de ce client. Lopration de synchronisation
consiste en un export du fichier des suivis vers le serveur, si une erreur survient alors un message
sera affich pour informer lutilisateur, sinon ce client procde limport des donnes du serveur.
Etant donn que cette opration peut durer plusieurs minutes, selon la taille des fichiers et le dbit
du rseau, une fentre avec une barre de progression va safficher lui permettant de visualiser
ltat davancement de cette opration, et lui donnant la possibilit de linterrompre. Lorsque
lutilisateur dsire quitter ce client, ce dernier vrifie dabord si une pause est dbute. Si cest le
cas, la fentre de fin de pause va safficher et ds que lutilisateur valide ce quil a entr, les
traitements relatifs la fin dune pause seront effectus. Ensuite, la fentre des rsultats dun suivi
sera affiche et ds que lutilisateur valide les informations quil a fournies, savoir le nombre
dunits ralises et la compltude de la tche, les traitements de la fin dun suivi vont tre
effectus. Puis, le dmon de session va tester sil faut dclencher lavertissement de lexport.
Parmi les actions possibles figure la modification du profile dun utilisateur. Quand ce dernier
valide ses modifications, le fichier XML de configuration, contenant son profile, sera modifi. De
plus, lutilisateur a la possibilit dimporter les fichiers ncessaires partir dun emplacement
local. Il peut galement exporter le fichier dexport contenant les informations de ses suivis vers
un emplacement local.
Projet de Fin dEtude : ENSIAS 2004
-- 54 --
CHAPITRE 4
La structure des fichiers de notre application (fichier de configuration, fichier dexport et fichier
dimport), ainsi quune description de leurs contenus seront dtailles dans lannexe C.
-- 55 --
CHAPITRE 4
lapplication utiliss au niveau du client PC sont remplacs au niveau du client Palm par le
stockage persistent fourni par J2ME. Il sagit de lAPI javax.microedition.rms qui contient un
ensemble de classes permettant de crer, modifier et supprimer des enregistrements (Record) dans
des blocs denregistrements (RecordStore). Ces enregistrements permettent de sauvegarder des
donnes de type tableau de byte par ce client et de les rcuprer plus tard tant donn que ce type
de stockage est persistant.
-- 56 --
CHAPITRE 4
-- 57 --
CHAPITRE 4
La dernire tape dans le processus de cration du profile dun nouvel utilisateur lui permet
dimporter les informations relatives ses tches, ainsi quaux diffrents types dinterruptions
dfinis dans la base de donnes. Cette opration dimport se fait soit en spcifiant un fichier local
pour les interruptions et un autre pour les tches soit en donnant ladresse URL du serveur et dans
ce cas lopration dimport pourra chouer si un problme de connexion survient. Il reste noter
que lutilisateur a la possibilit dachever cette dernire tape sans avoir effectuer limport de ses
donnes (voir la figure 26).
-- 58 --
CHAPITRE 4
Quand lutilisateur dsire exporter le fichier dexport contenant le suivi des tches quil a
effectues vers un emplacement local sur le disque, il aura la possibilit de choisir Export
comme le montrent les deux figures suivantes :
Projet de Fin dEtude : ENSIAS 2004
-- 59 --
CHAPITRE 4
Lorsque lutilisateur dsire effectuer limport de ses donnes avec un ventuel export de ses suivis,
lapplication lui donne la possibilit de satisfaire ses besoins en choisissant loption
Synchronize comme le montrent les figures 33 et 34.
-- 60 --
CHAPITRE 4
-- 61 --
CHAPITRE 4
Dans ce cas, le client PALM demande ce nouvel utilisateur de fournir son login, son mot de
passe, et ladresse du serveur afin de pouvoir vrifier ce mot de passe, et dimporter les donnes
ncessaires sur les tches de cet utilisateur et sur les types des pauses reconnues par lorganisme
daccueil (voir la figure 37).
-- 62 --
CHAPITRE 4
effectue ainsi que de choisir le type de pause convenable comme le montre la figure suivante :
-- 63 --
CHAPITRE 4
-- 64 --
CHAPITRE 4
Conclusion
Dans ce chapitre, nous avons prsent quelques outils utiliss pour implmenter notre application.
Ensuite, nous avons donn une brve description de limplmentation des modules du projet. Et
enfin, pour illustrer le fonctionnement de cette application, nous avons prsent quelques exemples
de son utilisation.
-- 65 --
Conclusion
-- 66 --
Bibliographie
Ouvrages
[5] R.ORFALID, D.HARKEY, J.EDWARDS, Client/Server survival guide third edition, John
Wiley & Sons, 1999.
Adresses Internet
[1] http://www.fresco.org/docs/fr/html/x234.html
[2] http://www.dotnetguru.org/articles/J2MEvsSDE/J2MEvsSDE.htm
[3] http://www.cellconcept.com/faq_midp.html#
[4] http://uml.developpez.com/lp/index-cours.html
[6] http://www.tomshardware.fr/articletendance.php?IdArticle=370&NumPage=1
[7] http://www.javaworld.com/javaworld/javatips/jw-javatip94.html
[8] http://perso.wanadoo.fr/jm.doudoux/java/tutorial/glossaire.htm
-- 67 --
Glossaire
API
CDC
Client/Serveur
CLDC
CVM
DAL
DOM
J2EE
J2ME
J2SE
JAXP
JRE
JSP
et toutes les
-- 68 --
Java. Une JSP est traduite en Servlet pour tre excute. Ceci permet
de sparer la logique de prsentation et la logique de traitement
contenu dans un composant serveur tel que des Servlets, des EJB ou
des Beans.
JVM
KVM
MIDlet
MIDP
API conue pour tirer le meilleur parti d'un type de terminal prcis
(taille de l'cran, cran tactile, type de rseau ...).
MVC
PDA
Pocket PC
POSE
PSP
RMS
SAX
Servlet
-- 69 --
WEB
XML
-- 70 --
Annexes
-- 71 --
Annexe A
ANNEXE
Notre projet a t conu et ralis selon une architecture C/S (Client/Serveur) trois niveaux. Dans la
prsente annexe, nous dcrivons cette architecture, et nous expliquons les avantages quelle offre par
rapport aux autres architectures client/serveur.
Larchitecture C/S est une architecture qui permet de subdiviser un processus informatis en, aux
moins, deux tches moins complexes (Client et Serveur) avec un moyen de communication qui
permet ces sous processus de cooprer entre eux.
Il existe plusieurs variantes de larchitecture C/S. La premire gnration du C/S est larchitecture
deux niveaux ou 2-tiers. Elle a deux approches :
Approche centre sur le client : consiste placer les parties prsentation et traitement sur
le client, et la logique daccs aux donnes sur le serveur.
Approche centre sur le serveur : consiste regrouper les parties traitement et accs aux
donnes sur le serveur, et ne garder que la partie prsentation sur le client.
Ces deux approches de larchitecture C/S 2-tiers peuvent provoquer des problmes majeurs tels
que :
La charge de traitements considrable sur le client (premire approche) ;
La perturbation du trafic rseaux sur les jeux de rsultats volumineux que peuvent
gnrer les requtes de la base de donnes (BD) ;
Labsorption complte des ressources du serveur de donnes, car chaque session ouverte
ncessite une connexion la BD ;
La difficult de la maintenance et de dploiement.
Pour remdier aux limites de cette architecture, on a pens insrer un niveau supplmentaire, entre
le client et le serveur (cf. figure 1), pour encapsuler les traitements mtier de lapplication. On a
appel ce type darchitecture, larchitecture C/S trois niveaux ou 3-tiers [5].
-- 72 --
Annexe A
T roisim e couche:
A ccs aux donnes
BD
D euxim e couche:
O bjets m tier
Prem ire couche:
Prsentation
-- 73 --
Annexe A
Critres
2-Tiers
3-Tiers
Administration
Complexe
Moins complexe
Scurit
Basse
Haute
Basse
Haute
Faible
Bonne
Faible
Excellente
Facilit de dveloppement
Base de donnes htrognes
Haute
Haute
Non
Oui
Dploiement
Complexe
Simple
-- 74 --
Annexe B
ANNEXE
Dans la prsente annexe nous allons faire tout dabord une introduction gnrale sur les PDA [6].
Ensuite nous prsenterons les principaux membres de ses familles. Et enfin, nous allons dcrire les
diffrents critres sur lesquels on peut se baser pour distinguer entre les diffrents types de PDA.
1. Introduction
La simplicit d'utilisation des PDA (Personal Digital Assistants) (voir figure 45), et la
multiplication de leurs applications ont favoris leur dmocratisation dans l'entreprise. Plannings,
agendas et carnet d'adresses restent porte de main et sont toujours jour.
Les PDA, ou agendas lectroniques, prennent l'avantage sur les blocs-notes papier. Ils savent se
synchroniser avec les outils du PC (notamment les logiciels Microsoft tel Outlook), et ce de
manire trs aise. De plus, ils offrent quelques fonctions qui peuvent tre intressantes.
Particulirement la gestion des comptes, lutilisation de la calculatrice (ou du convertisseur de
monnaies, de mesures...). Les organiseurs de poche ont pour vocation initiale de remplacer la fois
lagenda, le carnet dadresses et la bote de Post-It. Ils peuvent tre considrs comme des
appareils de lecture permettant d'apporter quelques modifications (nom, numro de tlphone ou
rendez-vous). Plusieurs dentre eux mritent aujourdhui pleinement lappellation plus honorifique
de PC de poche tant leurs caractristiques et leurs fonctions tendent les faire se rapprocher des
ordinateurs de travail.
Bien que trs diffrents les uns des autres la fois en terme de puissance et de fonctions, toutes les
familles du PDA proposent aujourdhui des logithques tendues venant complter les tches de
Projet de Fin dEtude : ENSIAS 2004
-- 75 --
Annexe B
base des organiseurs : jeux, dessin, plans de villes, et mme pour certains lecteurs de MP3 et de
vidos. Autre similitude, ils suivent tous les mmes principes de saisie dinformation et de
communication avec lordinateur :
La saisie
Pour rentrer des informations, trois moyens existent:
La premire solution impose un apprentissage car chaque lettre doit tre crite selon un
certain modle. Le systme de reconnaissance dcriture intgr les transforme au fur et
mesure en caractres dimprimerie.
Une alternative existe pour les retors cette tape dapprentissage : les Palms et les Pocket
PC proposent la possibilit de faire apparatre un clavier virtuel lcran et de simplement
cliquer sur les touches de ce mini clavier laide du stylet pour crire vos textes.
La synchronisation
Tous ont naturellement adopt des modes de navigation assez proches les uns des autres,
avec des raccourcis sous formes de touches pointant vers les applications les plus
couramment utilises (agenda, carnet dadresse), puis un classement par type
dapplication. Ils synchronisent leurs donnes (gnralement celles qui ont t modifies
dans le carnet dadresses, lagenda et la liste des tches) par lintermdiaire dun cble
srie ou USB et dun simple clic par la souris du PC avec votre gestionnaire de messagerie :
il sagit gnralement du logiciel Outlook ou dun outil propritaire quand il est livr avec
lagenda.
2. Familles de PDA
Les modles qui seront prsents par la suite sont pour le moins htroclites. Leur prix, limage
de la cadence des processeurs qui les animent ou de la taille mmoire livre en standard, varie du
simple sextuple, voire loctuple. En rsum, trois grandes familles se partagent aujourdhui un
march pour le moins concurrentiel :
-- 76 --
Annexe B
-- 77 --
Annexe B
Les crans doivent tre du type sensitif. Ils s'utilisent avec un stylet. Sur les Psion, ce
dispositif sert la slection de donnes, mais sur les modles dpourvus de clavier, Palm ou
Pocket PC, il constitue le seul moyen d'effectuer la saisie de texte. La priode
d'apprentissage pour matriser le systme de reconnaissance de l'criture est plus longue sur
Projet de Fin dEtude : ENSIAS 2004
-- 78 --
Annexe B
un Palm que sur un Pocket PC. En contrepartie, elle donne de meilleurs rsultats. Les
crans des Psion sont plus grands que ceux des ordinateurs sans clavier. Sur ces derniers,
les crans sont de tailles comparables. Chaque gamme possde des modles monochromes
et couleur. Le confort apport par la couleur est apprciable, surtout pour la navigation sur
Internet, mais, revers de la mdaille, l'autonomie de l'ordinateur en souffre.
L'autonomie
L'autonomie est l'un des points essentiels qui distinguent les ordinateurs de poche les uns
des autres. Selon les modles, elle varie de 7 heures 30 minutes 50 heures. Ces carts trs
importants s'expliquent principalement par la consommation d'nergie des diffrents types
d'crans (couleur ou monochrome, rtro clair ou non) et par la capacit des sources
d'alimentation (batteries ion-lithium, NiMH ou piles). C'est ainsi qu'un Visor avec sa grosse
batterie et son cran monochrome fonctionne jusqu' sept fois plus longtemps qu'un Pocket
PC couleur.
L'encombrement et le poids
La taille des ordinateurs de poche est fonction de la prsence du clavier. Le plus compact
des modles tests est le Palm Vx. Viennent ensuite les autres organiseurs du mme nom,
puis les Visor et les Pocket PC.
La documentation
Avec le PC
-- 79 --
Annexe B
des donnes est automatique. Ds que le Pocket PC est sur son socle, toute modification des
donnes sur l'un ou l'autre appareil est instantanment rpercute sur lautre. Avec les
Palm, cette synchronisation automatique doit tre valide par l'utilisateur.
Avec Internet
Tous les ordinateurs ne sont pas gaux devant Internet. L'cran couleur et la prsence de
Pocket Explorer avantage nettement les Pocket PC, mme si les Psion disposent d'un cran
large et d'une panoplie complte de logiciels et de priphriques. Les Palm, quand eux,
sont rellement limits. Cela dit, avec tous les modles, les utilisateurs peuvent saisir leur
courrier. Ce dernier sera envoy par les PC aprs synchronisation. De mme, les emails
reus par ces derniers sont recopis sur les organiseurs. Il reste que, pour rdiger des
emails, les modles avec clavier son prfrables.
L'quipement
Les Pocket PC disposent de nombreux logiciels. En outre, ces appareils permettent tous de
lire des fichiers MP3 (les Visor en sont aussi capables, mais l'aide d'une extension fournie
en option). De plus, ils peuvent enregistrer quelques minutes de dialogue. Les Psion et
quelques Palm font galement office de dictaphone. Et eux aussi disposent de nombreux
logiciels dont, entre autres, des logiciels d'itinraire incorporant des cartes routires. Les
modles les plus polyvalents sont les Pocket PC, puis viennent les Psion et, enfin, les Palm.
-- 80 --
Annexe C
ANNEXE
Notre application utilise deux types de fichiers XML : des fichiers pour la communication entre la
partie cliente et la partie serveur, et un fichier XML pour la configuration de la partie cliente. Les
fichiers ddis cette communication sont diviss en deux catgories :
Fichiers dimport :
Les fichiers dimport reprsentent un aliment pour la partie client, qui lui permettent de dmarrer
et dassurer les suivis des tches. De ce fait, lutilisateur est oblig de les importer immdiatement
avant tout usage de lapplication, que a soit travers le WEB ou travers la partie cliente de
notre application.
Le premier fichier import est le fichier XML import.xml (cf. figure 47). Il contient des
informations relatives lutilisateur ainsi que celles relatives ses tches qui ne sont pas encore
accomplies.
Ce fichier a comme attribut de racine la date de limport, cette date est utile pour lavertissement
de limport.
-- 81 --
Annexe C
Le deuxime fichier indispensable pour lapplication est celui des interruptions (cf. figure 48). Ces
interruptions sont extraites de la base de donnes et elles sont communes tous les utilisateurs.
Chaque interruption est caractrise par son code et son nom.
Lintrt de sparer le fichier des interruptions et celui des tches rside dans le fait que les types
dinterruptions sont indpendants des utilisateurs, ainsi ce fichier peut tre rutilis par plusieurs
utilisateurs en cas de besoins. De plus parfois lutilisateur a besoin dactualiser seulement ses
tches ou ses interruptions uniquement.
Fichier dexport :
Le fichier dexport reprsente une synthse des suivis effectus par lutilisateur (cf. figure 49), ces
suivis sont regroups par tche. Chaque suivi est caractris par sa date de dbut, sa date de fin et
son delta_time qui reprsente la dure effective du suivi. En effet, cette valeur est gale la
dure du suivi de laquelle on retranche la somme des dures des interruptions effectues pendant
ce suivi. De plus chaque suivi est valu par les deux critres : completed et units , le
premier indique si la tche a t bien complte aprs ce suivi, tandis que le deuxime nous informe
sur le nombre dunits ralises pendant ce suivi.
Chaque interruption est caractrise aussi par son nom, sa description, sa date de dbut et sa date
de fin. Les interruptions dun mme suivi sont regroupes dans une balise interruptions .
-- 82 --
Annexe C
En ce qui concerne le fichier de configuration, il contient les profiles des divers utilisateurs de
lapplication (cf. figure 50). Plusieurs proprits et variables sont dfinies pour chaque utilisateur,
savoir:
-- 83 --
Annexe C
-- 84 --
Annexe D
ANNEXE
Nous avons utilis le langage XML pour reprsenter la structure dune base de donnes. Dans cette
annexe, nous nous proposons de prsenter ce langage et quelques unes de ses caractristiques.
1. Prsentation de XML
XML (eXtensible Markup Language) est un langage HTML amlior permettant de dfinir de
nouvelles balises. Cest un sous-ensemble de SGML (Standard Generalized Markup Language),
dfini par le standard ISO8879 en 1986. XML a repris la majeure partie des fonctionnalits de
SGML et il la prsente dune manire simplifie. Contrairement HTML, qui est considrer
comme un langage dfini et fig (avec un nombre limit de balises), XML peut tre considr
comme un mtalangage permettant de dfinir d'autres langages, c'est--dire dfinir de nouvelles
balises permettant de dcrire la prsentation d'un texte.
La force de XML rside dans sa capacit dcrire n'importe quel domaine de donnes grce son
extensibilit. Il va permettre de structurer, poser le vocabulaire et la syntaxe des donnes qu'il va
contenir.
En ralit les balises XML dcrivent le contenu plutt que la prsentation. Ainsi, XML spare le
contenu de la prsentation, ce qui permet d'afficher un mme document sur diffrentes formes de
prsentation.
-- 85 --
Annexe D
5- Avantages de XML
Les principaux atouts de XML :
La lisibilit : aucune connaissance ne doit thoriquement tre ncessaire pour comprendre un
contenu d'un document XML ;
Une structure arborescente : permet de modliser la majorit des problmes informatiques ;
Universalit et portabilit : les diffrents jeux de caractres sont pris en compte ;
Lextensibilit : un document XML doit tre utilisable dans tous les domaines d'applications.
Grce ses avantages, XML est particulirement adapt l'change de donnes et de documents.
Projet de Fin dEtude : ENSIAS 2004
-- 86 --